@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/data.mjs
CHANGED
|
@@ -462,6 +462,25 @@ function validateBookingPaymentOptionKinds(kinds) {
|
|
|
462
462
|
return ok(void 0);
|
|
463
463
|
}
|
|
464
464
|
//#endregion
|
|
465
|
+
//#region ../core/src/date-time-formatter.ts
|
|
466
|
+
/** Shared Intl engine, internal to core's date presentation owners. */
|
|
467
|
+
const FORMATTER_CACHE_LIMIT = 100;
|
|
468
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
469
|
+
function getDateTimeFormatter(locale, timeZone, format) {
|
|
470
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
471
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
472
|
+
if (cached !== void 0) return cached;
|
|
473
|
+
if (typeof locale !== "string" || Intl.DateTimeFormat.supportedLocalesOf([locale]).length === 0) throw new RangeError("An explicit supported locale is required");
|
|
474
|
+
if (typeof timeZone !== "string" || timeZone.length === 0) throw new RangeError("An explicit time zone is required");
|
|
475
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
476
|
+
...format,
|
|
477
|
+
timeZone
|
|
478
|
+
});
|
|
479
|
+
if (dateTimeFormatterCache.size >= FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
480
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
481
|
+
return formatter;
|
|
482
|
+
}
|
|
483
|
+
//#endregion
|
|
465
484
|
//#region ../core/src/booking-time-zone.ts
|
|
466
485
|
const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
|
|
467
486
|
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
@@ -498,8 +517,6 @@ const START_OF_DAY = {
|
|
|
498
517
|
second: 0
|
|
499
518
|
};
|
|
500
519
|
const LOCAL_DATE_PATTERN = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
501
|
-
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
502
|
-
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
503
520
|
function getSafeTimeZone(timeZone) {
|
|
504
521
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
505
522
|
return normalized.length > 0 && isValidBookingTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
@@ -516,19 +533,7 @@ function formatParseError(error) {
|
|
|
516
533
|
}
|
|
517
534
|
}
|
|
518
535
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
519
|
-
return new Map(
|
|
520
|
-
}
|
|
521
|
-
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
522
|
-
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
523
|
-
const cached = dateTimeFormatterCache.get(key);
|
|
524
|
-
if (cached !== void 0) return cached;
|
|
525
|
-
const formatter = new Intl.DateTimeFormat(locale, {
|
|
526
|
-
...format,
|
|
527
|
-
timeZone
|
|
528
|
-
});
|
|
529
|
-
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
530
|
-
dateTimeFormatterCache.set(key, formatter);
|
|
531
|
-
return formatter;
|
|
536
|
+
return new Map(getDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
532
537
|
}
|
|
533
538
|
function getZonedDateTimeParts(date, timeZone) {
|
|
534
539
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -616,7 +621,7 @@ function toScheduledBookingDateTime(input) {
|
|
|
616
621
|
function formatBookingInstant(isoString, options) {
|
|
617
622
|
const date = new Date(isoString);
|
|
618
623
|
if (Number.isNaN(date.getTime())) return isoString;
|
|
619
|
-
return
|
|
624
|
+
return getDateTimeFormatter(options.locale ?? DEFAULT_LOCALE, getSafeTimeZone(options.timeZone), options.format).format(date);
|
|
620
625
|
}
|
|
621
626
|
function formatBookingDate(input, format = {
|
|
622
627
|
weekday: "long",
|
|
@@ -741,6 +746,17 @@ function localScheduleDateTimeToUtcDate(localDate, localTime, timeZone) {
|
|
|
741
746
|
return new Date(guess);
|
|
742
747
|
}
|
|
743
748
|
//#endregion
|
|
749
|
+
//#region ../core/src/date-display.ts
|
|
750
|
+
/** Site-language policy, shared by customer emails and public event adapters. */
|
|
751
|
+
function inferSiteDateLocale(siteTimeZone) {
|
|
752
|
+
if (siteTimeZone === null || siteTimeZone === void 0 || siteTimeZone === "") return "en-US";
|
|
753
|
+
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
754
|
+
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
755
|
+
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
756
|
+
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
757
|
+
return "en-US";
|
|
758
|
+
}
|
|
759
|
+
//#endregion
|
|
744
760
|
//#region ../core/src/location.ts
|
|
745
761
|
function normalizeLocationAddressText(value) {
|
|
746
762
|
if (typeof value !== "string") return null;
|
|
@@ -858,6 +874,10 @@ function parseGlobalFields(value) {
|
|
|
858
874
|
preset: "emailName",
|
|
859
875
|
name: value.name
|
|
860
876
|
} : null;
|
|
877
|
+
case "emailFirstName": return isRequirement(value.firstName) ? {
|
|
878
|
+
preset: "emailFirstName",
|
|
879
|
+
firstName: value.firstName
|
|
880
|
+
} : null;
|
|
861
881
|
case "emailFirstLast": return isRequirement(value.firstName) && isRequirement(value.lastName) ? {
|
|
862
882
|
preset: "emailFirstLast",
|
|
863
883
|
firstName: value.firstName,
|
|
@@ -5331,6 +5351,129 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
5331
5351
|
tags: ["billing"],
|
|
5332
5352
|
auth: "user",
|
|
5333
5353
|
responseKind: "json"
|
|
5354
|
+
},
|
|
5355
|
+
stripeConnectSetupStart: {
|
|
5356
|
+
path: "/sites/{siteId}/billing/connect/setup",
|
|
5357
|
+
method: "POST",
|
|
5358
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5359
|
+
auth: "user",
|
|
5360
|
+
responseKind: "json",
|
|
5361
|
+
errors: [
|
|
5362
|
+
"validation:invalid_input",
|
|
5363
|
+
"auth:forbidden",
|
|
5364
|
+
"resource:conflict",
|
|
5365
|
+
"server:internal_error"
|
|
5366
|
+
]
|
|
5367
|
+
},
|
|
5368
|
+
stripeConnectSetupDiscard: {
|
|
5369
|
+
path: "/sites/{siteId}/billing/connect/setup",
|
|
5370
|
+
method: "DELETE",
|
|
5371
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5372
|
+
auth: "user",
|
|
5373
|
+
responseKind: "json",
|
|
5374
|
+
errors: [
|
|
5375
|
+
"validation:invalid_input",
|
|
5376
|
+
"auth:forbidden",
|
|
5377
|
+
"resource:conflict",
|
|
5378
|
+
"server:internal_error"
|
|
5379
|
+
]
|
|
5380
|
+
},
|
|
5381
|
+
stripeConnectSetupSave: {
|
|
5382
|
+
path: "/sites/{siteId}/billing/connect/setup/save",
|
|
5383
|
+
method: "POST",
|
|
5384
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5385
|
+
auth: "user",
|
|
5386
|
+
responseKind: "json",
|
|
5387
|
+
errors: [
|
|
5388
|
+
"validation:invalid_input",
|
|
5389
|
+
"auth:forbidden",
|
|
5390
|
+
"resource:conflict",
|
|
5391
|
+
"server:internal_error"
|
|
5392
|
+
]
|
|
5393
|
+
},
|
|
5394
|
+
stripeConnectAccountSession: {
|
|
5395
|
+
path: "/sites/{siteId}/billing/connect/session",
|
|
5396
|
+
method: "POST",
|
|
5397
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5398
|
+
auth: "user",
|
|
5399
|
+
responseKind: "json",
|
|
5400
|
+
errors: [
|
|
5401
|
+
"validation:invalid_input",
|
|
5402
|
+
"auth:forbidden",
|
|
5403
|
+
"resource:conflict",
|
|
5404
|
+
"server:internal_error"
|
|
5405
|
+
]
|
|
5406
|
+
},
|
|
5407
|
+
stripeConnectStart: {
|
|
5408
|
+
path: "/sites/{siteId}/billing/connect/start",
|
|
5409
|
+
method: "POST",
|
|
5410
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5411
|
+
auth: "user",
|
|
5412
|
+
responseKind: "json",
|
|
5413
|
+
errors: [
|
|
5414
|
+
"validation:invalid_input",
|
|
5415
|
+
"auth:forbidden",
|
|
5416
|
+
"resource:conflict",
|
|
5417
|
+
"server:internal_error"
|
|
5418
|
+
]
|
|
5419
|
+
},
|
|
5420
|
+
stripeConnectStatus: {
|
|
5421
|
+
path: "/sites/{siteId}/billing/connect/status",
|
|
5422
|
+
method: "GET",
|
|
5423
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5424
|
+
auth: "user",
|
|
5425
|
+
responseKind: "json",
|
|
5426
|
+
errors: [
|
|
5427
|
+
"validation:invalid_input",
|
|
5428
|
+
"auth:forbidden",
|
|
5429
|
+
"resource:conflict",
|
|
5430
|
+
"server:internal_error"
|
|
5431
|
+
]
|
|
5432
|
+
},
|
|
5433
|
+
stripeAutomaticTaxUpdate: {
|
|
5434
|
+
path: "/sites/{siteId}/billing/automatic-tax",
|
|
5435
|
+
method: "POST",
|
|
5436
|
+
tags: [
|
|
5437
|
+
"site-{siteId}",
|
|
5438
|
+
"billing",
|
|
5439
|
+
"stripe-tax"
|
|
5440
|
+
],
|
|
5441
|
+
auth: "user",
|
|
5442
|
+
responseKind: "json",
|
|
5443
|
+
errors: [
|
|
5444
|
+
"validation:invalid_input",
|
|
5445
|
+
"auth:forbidden",
|
|
5446
|
+
"resource:not_found",
|
|
5447
|
+
"server:unavailable",
|
|
5448
|
+
"server:internal_error"
|
|
5449
|
+
]
|
|
5450
|
+
},
|
|
5451
|
+
stripeConnectDisconnect: {
|
|
5452
|
+
path: "/sites/{siteId}/billing/connect/disconnect",
|
|
5453
|
+
method: "DELETE",
|
|
5454
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5455
|
+
auth: "user",
|
|
5456
|
+
responseKind: "json",
|
|
5457
|
+
errors: [
|
|
5458
|
+
"validation:invalid_input",
|
|
5459
|
+
"auth:forbidden",
|
|
5460
|
+
"resource:conflict",
|
|
5461
|
+
"server:internal_error"
|
|
5462
|
+
]
|
|
5463
|
+
},
|
|
5464
|
+
billingConnectReturn: {
|
|
5465
|
+
path: "/billing/connect/return",
|
|
5466
|
+
method: "GET",
|
|
5467
|
+
auth: "user",
|
|
5468
|
+
responseKind: "void",
|
|
5469
|
+
errors: []
|
|
5470
|
+
},
|
|
5471
|
+
billingConnectRefresh: {
|
|
5472
|
+
path: "/billing/connect/refresh",
|
|
5473
|
+
method: "GET",
|
|
5474
|
+
auth: "user",
|
|
5475
|
+
responseKind: "void",
|
|
5476
|
+
errors: []
|
|
5334
5477
|
}
|
|
5335
5478
|
});
|
|
5336
5479
|
//#endregion
|
|
@@ -5495,6 +5638,14 @@ const PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS = {
|
|
|
5495
5638
|
* person when nothing is attached to them.
|
|
5496
5639
|
*/
|
|
5497
5640
|
const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
5641
|
+
getBookingPerson: {
|
|
5642
|
+
path: "/sites/{siteId}/bookings/people/{personId}",
|
|
5643
|
+
method: "GET",
|
|
5644
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
5645
|
+
auth: "user",
|
|
5646
|
+
responseKind: "json",
|
|
5647
|
+
errors: ["resource:not_found", "server:internal_error"]
|
|
5648
|
+
},
|
|
5498
5649
|
listPeople: {
|
|
5499
5650
|
path: "/sites/{siteId}/bookings/people",
|
|
5500
5651
|
method: "GET",
|
|
@@ -5835,6 +5986,19 @@ const footerModeSchema = z.enum([
|
|
|
5835
5986
|
"default+blocks",
|
|
5836
5987
|
"none"
|
|
5837
5988
|
]);
|
|
5989
|
+
z.object({
|
|
5990
|
+
variant: z.enum([
|
|
5991
|
+
"simple",
|
|
5992
|
+
"columns",
|
|
5993
|
+
"split",
|
|
5994
|
+
"centred"
|
|
5995
|
+
]),
|
|
5996
|
+
showLogoText: z.boolean().optional(),
|
|
5997
|
+
logo: z.object({
|
|
5998
|
+
showLogo: z.boolean().optional(),
|
|
5999
|
+
showLogoText: z.boolean().optional()
|
|
6000
|
+
}).optional()
|
|
6001
|
+
});
|
|
5838
6002
|
//#endregion
|
|
5839
6003
|
//#region ../theme-core/src/palette/utils/colorConversion.ts
|
|
5840
6004
|
const clamp01 = (x) => Math.max(0, Math.min(1, x));
|
|
@@ -9034,6 +9198,29 @@ const paletteSchema = z.object({
|
|
|
9034
9198
|
};
|
|
9035
9199
|
});
|
|
9036
9200
|
//#endregion
|
|
9201
|
+
//#region ../theme-core/src/buttons/typography.ts
|
|
9202
|
+
const textTransformSchema = z.enum([
|
|
9203
|
+
"none",
|
|
9204
|
+
"uppercase",
|
|
9205
|
+
"lowercase",
|
|
9206
|
+
"capitalize"
|
|
9207
|
+
]);
|
|
9208
|
+
const fontWeightSchema = z.union([
|
|
9209
|
+
z.literal(400),
|
|
9210
|
+
z.literal(500),
|
|
9211
|
+
z.literal(600),
|
|
9212
|
+
z.literal(700),
|
|
9213
|
+
z.literal(800)
|
|
9214
|
+
]);
|
|
9215
|
+
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
9216
|
+
const letterSpacingSchema = z.enum([
|
|
9217
|
+
"tight",
|
|
9218
|
+
"normal",
|
|
9219
|
+
"slight",
|
|
9220
|
+
"loose",
|
|
9221
|
+
"wide"
|
|
9222
|
+
]);
|
|
9223
|
+
//#endregion
|
|
9037
9224
|
//#region ../theme-core/src/buttons/types.ts
|
|
9038
9225
|
/**
|
|
9039
9226
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -9149,6 +9336,7 @@ const buttonEffectApplicationSchema = z.discriminatedUnion("effectId", [
|
|
|
9149
9336
|
z.strictObject({
|
|
9150
9337
|
effectId: z.literal("lift"),
|
|
9151
9338
|
options: z.strictObject({ amount: z.enum([
|
|
9339
|
+
"0.125",
|
|
9152
9340
|
"0.25",
|
|
9153
9341
|
"0.5",
|
|
9154
9342
|
"1"
|
|
@@ -9195,24 +9383,6 @@ const shadowSizeSchema = z.enum([
|
|
|
9195
9383
|
"medium",
|
|
9196
9384
|
"high"
|
|
9197
9385
|
]);
|
|
9198
|
-
const textTransformSchema = z.enum([
|
|
9199
|
-
"none",
|
|
9200
|
-
"uppercase",
|
|
9201
|
-
"lowercase",
|
|
9202
|
-
"capitalize"
|
|
9203
|
-
]);
|
|
9204
|
-
const fontWeightSchema = z.union([
|
|
9205
|
-
z.literal(500),
|
|
9206
|
-
z.literal(600),
|
|
9207
|
-
z.literal(700),
|
|
9208
|
-
z.literal(800)
|
|
9209
|
-
]);
|
|
9210
|
-
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
9211
|
-
const letterSpacingSchema = z.enum([
|
|
9212
|
-
"tight",
|
|
9213
|
-
"normal",
|
|
9214
|
-
"loose"
|
|
9215
|
-
]);
|
|
9216
9386
|
const hoverTransformSchema = z.enum([
|
|
9217
9387
|
"none",
|
|
9218
9388
|
"lift",
|
|
@@ -9284,7 +9454,8 @@ const paddingShorthandSchema = z.string().refine((value) => {
|
|
|
9284
9454
|
}, { message: "Padding must be two space-separated CSS length tokens (e.g. \"0.5rem 1rem\"). Use `0` for zero." });
|
|
9285
9455
|
const buttonSizeConfigSchema = z.object({
|
|
9286
9456
|
padding: paddingShorthandSchema,
|
|
9287
|
-
fontSize: z.string().optional()
|
|
9457
|
+
fontSize: z.string().optional(),
|
|
9458
|
+
borderRadius: z.string().optional()
|
|
9288
9459
|
});
|
|
9289
9460
|
/**
|
|
9290
9461
|
* `xl` is optional on the wire so themes persisted before the `xl` size was
|
|
@@ -9407,12 +9578,20 @@ const buttonVisualAppearanceSchema = z.strictObject({
|
|
|
9407
9578
|
textTransform: textTransformSchema
|
|
9408
9579
|
}),
|
|
9409
9580
|
effects: z.array(buttonEffectApplicationSchema),
|
|
9581
|
+
transform: z.literal("none").optional(),
|
|
9410
9582
|
contextualHover: contextualButtonHoverSchema.optional()
|
|
9411
9583
|
});
|
|
9412
9584
|
const buttonVisualStatesSchema = z.strictObject({
|
|
9413
9585
|
base: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
9414
9586
|
hover: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
9415
|
-
focus: buttonVisualAppearanceSchema.extend({
|
|
9587
|
+
focus: buttonVisualAppearanceSchema.extend({
|
|
9588
|
+
shadow: z.literal("focus-indicator"),
|
|
9589
|
+
indicator: z.strictObject({
|
|
9590
|
+
kind: z.literal("surface-ink"),
|
|
9591
|
+
width: z.union([z.literal(2), z.literal(3)]),
|
|
9592
|
+
offset: z.union([z.literal(3), z.literal(4)])
|
|
9593
|
+
}).optional()
|
|
9594
|
+
}),
|
|
9416
9595
|
active: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
9417
9596
|
disabled: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema })
|
|
9418
9597
|
});
|
|
@@ -9879,6 +10058,10 @@ function validateButtonTextContrast(input) {
|
|
|
9879
10058
|
}
|
|
9880
10059
|
};
|
|
9881
10060
|
}
|
|
10061
|
+
/** A text-token slab inverts the palette's text/background pair, including text shades. */
|
|
10062
|
+
function solidForegroundToken(backgroundToken) {
|
|
10063
|
+
return /^text(?:-\d+)?$/.test(backgroundToken) ? "background" : onColorTokenName(backgroundToken);
|
|
10064
|
+
}
|
|
9882
10065
|
//#endregion
|
|
9883
10066
|
//#region ../theme-core/src/buttons/contextualHover.ts
|
|
9884
10067
|
function resolveContextualHoverPreference(input) {
|
|
@@ -9976,7 +10159,7 @@ function candidate(family, shade, currentShade, direction, seedHex, palette) {
|
|
|
9976
10159
|
}
|
|
9977
10160
|
function hasSafeTextContrast(token, palette) {
|
|
9978
10161
|
const background = palette[token];
|
|
9979
|
-
const foreground = palette[
|
|
10162
|
+
const foreground = palette[solidForegroundToken(token)];
|
|
9980
10163
|
return typeof background === "string" && typeof foreground === "string" && contrastRatio(background, foreground) >= BUTTON_CONTRAST_POLICY.textMinimumRatio;
|
|
9981
10164
|
}
|
|
9982
10165
|
function isSafeCandidate(token, palette, surface) {
|
|
@@ -10071,6 +10254,13 @@ function compileDeclaredVisualStates(input, states) {
|
|
|
10071
10254
|
const colours = collectStateColours(mapVisualStates((state) => compileDeclaredVisualState(input, states, state, state === "hover" ? hover.treatment : states[state].background)));
|
|
10072
10255
|
return colours.ok ? {
|
|
10073
10256
|
...colours,
|
|
10257
|
+
focusIndicator: states.focus.indicator ? {
|
|
10258
|
+
kind: "surface-role",
|
|
10259
|
+
colorCss: input.surface?.foregroundCss ?? surfaceForegroundValue("text"),
|
|
10260
|
+
width: states.focus.indicator.width,
|
|
10261
|
+
offset: states.focus.indicator.offset,
|
|
10262
|
+
minimumSurfaceContrast: BUTTON_CONTRAST_POLICY.nonTextMinimumRatio
|
|
10263
|
+
} : colours.focusIndicator,
|
|
10074
10264
|
contextualHoverRepair: hover.repair
|
|
10075
10265
|
} : colours;
|
|
10076
10266
|
}
|
|
@@ -10208,7 +10398,7 @@ function resolveFocusIndicator(colour) {
|
|
|
10208
10398
|
function resolveSolid(input, backgroundToken, edge) {
|
|
10209
10399
|
const backgroundHex = paletteHex(input, backgroundToken);
|
|
10210
10400
|
if (!backgroundHex.ok) return backgroundHex;
|
|
10211
|
-
const foregroundToken = unsafeAsOpaqueButtonColourToken(
|
|
10401
|
+
const foregroundToken = unsafeAsOpaqueButtonColourToken(solidForegroundToken(backgroundToken));
|
|
10212
10402
|
const foregroundHex = input.palette[foregroundToken];
|
|
10213
10403
|
if (typeof foregroundHex !== "string") return {
|
|
10214
10404
|
ok: false,
|
|
@@ -11484,6 +11674,287 @@ function normalizeAppearance(appearance) {
|
|
|
11484
11674
|
};
|
|
11485
11675
|
}
|
|
11486
11676
|
//#endregion
|
|
11677
|
+
//#region ../theme-core/src/buttons/styles/recipes/lanternRecipes.ts
|
|
11678
|
+
const flatShadow = {
|
|
11679
|
+
elevation: "none",
|
|
11680
|
+
softness: null,
|
|
11681
|
+
position: "bottom"
|
|
11682
|
+
};
|
|
11683
|
+
const lift$1 = {
|
|
11684
|
+
effectId: "lift",
|
|
11685
|
+
options: { amount: "0.125" }
|
|
11686
|
+
};
|
|
11687
|
+
const tags = {
|
|
11688
|
+
tone: "classic",
|
|
11689
|
+
energy: "calm",
|
|
11690
|
+
motion: "subtle",
|
|
11691
|
+
era: "editorial"
|
|
11692
|
+
};
|
|
11693
|
+
/** Each role supplies complete states, including a flat surface-ink focus ring. */
|
|
11694
|
+
function states(base, hover, offset = 4, width = 2) {
|
|
11695
|
+
return {
|
|
11696
|
+
base,
|
|
11697
|
+
hover,
|
|
11698
|
+
focus: {
|
|
11699
|
+
...base,
|
|
11700
|
+
shadow: "focus-indicator",
|
|
11701
|
+
indicator: {
|
|
11702
|
+
kind: "surface-ink",
|
|
11703
|
+
width,
|
|
11704
|
+
offset
|
|
11705
|
+
}
|
|
11706
|
+
},
|
|
11707
|
+
active: {
|
|
11708
|
+
...base,
|
|
11709
|
+
transform: "none"
|
|
11710
|
+
},
|
|
11711
|
+
disabled: {
|
|
11712
|
+
...base,
|
|
11713
|
+
effects: []
|
|
11714
|
+
}
|
|
11715
|
+
};
|
|
11716
|
+
}
|
|
11717
|
+
const gilt = {
|
|
11718
|
+
text: "treatment",
|
|
11719
|
+
border: "none",
|
|
11720
|
+
borderRadius: "rounded-10px",
|
|
11721
|
+
shadow: flatShadow,
|
|
11722
|
+
sizes: {
|
|
11723
|
+
sm: {
|
|
11724
|
+
padding: "10px 20px",
|
|
11725
|
+
fontSize: "text-base",
|
|
11726
|
+
borderRadius: "rounded-lg"
|
|
11727
|
+
},
|
|
11728
|
+
md: {
|
|
11729
|
+
padding: "18px 36px",
|
|
11730
|
+
fontSize: "text-19px"
|
|
11731
|
+
},
|
|
11732
|
+
lg: {
|
|
11733
|
+
padding: "18px 36px",
|
|
11734
|
+
fontSize: "text-19px"
|
|
11735
|
+
},
|
|
11736
|
+
xl: {
|
|
11737
|
+
padding: "18px 36px",
|
|
11738
|
+
fontSize: "text-19px"
|
|
11739
|
+
}
|
|
11740
|
+
},
|
|
11741
|
+
typography: {
|
|
11742
|
+
fontWeight: 400,
|
|
11743
|
+
typography: "heading",
|
|
11744
|
+
fontSize: "text-19px",
|
|
11745
|
+
letterSpacing: "slight",
|
|
11746
|
+
italic: false,
|
|
11747
|
+
textTransform: "none"
|
|
11748
|
+
},
|
|
11749
|
+
effects: []
|
|
11750
|
+
};
|
|
11751
|
+
const giltPrimary = {
|
|
11752
|
+
...gilt,
|
|
11753
|
+
background: {
|
|
11754
|
+
type: "gradient",
|
|
11755
|
+
stops: ["accent", "primary"],
|
|
11756
|
+
direction: "to-br",
|
|
11757
|
+
foregroundToken: "onAccent"
|
|
11758
|
+
}
|
|
11759
|
+
};
|
|
11760
|
+
const giltPrimaryHover = {
|
|
11761
|
+
...giltPrimary,
|
|
11762
|
+
background: {
|
|
11763
|
+
...giltPrimary.background,
|
|
11764
|
+
stops: ["accent-400", "primary-400"],
|
|
11765
|
+
foregroundToken: "secondary-950"
|
|
11766
|
+
},
|
|
11767
|
+
effects: [lift$1]
|
|
11768
|
+
};
|
|
11769
|
+
const giltSecondary = {
|
|
11770
|
+
...gilt,
|
|
11771
|
+
background: {
|
|
11772
|
+
type: "solid",
|
|
11773
|
+
colorToken: "text"
|
|
11774
|
+
}
|
|
11775
|
+
};
|
|
11776
|
+
const giltSecondaryHover = {
|
|
11777
|
+
...giltSecondary,
|
|
11778
|
+
effects: [lift$1],
|
|
11779
|
+
contextualHover: {
|
|
11780
|
+
kind: "shade-shift",
|
|
11781
|
+
seedToken: unsafeAsOpaqueButtonColourToken("text"),
|
|
11782
|
+
fallbackDirection: "lighter"
|
|
11783
|
+
}
|
|
11784
|
+
};
|
|
11785
|
+
const giltPrimaryStates = states(giltPrimary, giltPrimaryHover);
|
|
11786
|
+
const giltSecondaryStates = states(giltSecondary, giltSecondaryHover);
|
|
11787
|
+
const giltSlabRecipe = defineStaticButtonStyleRecipe({
|
|
11788
|
+
id: "gilt-slab",
|
|
11789
|
+
accessibilityLabel: "Gilt slab",
|
|
11790
|
+
tags,
|
|
11791
|
+
system: { roles: {
|
|
11792
|
+
primary: { states: giltPrimaryStates },
|
|
11793
|
+
secondary: { states: giltSecondaryStates },
|
|
11794
|
+
outline: { states: giltSecondaryStates },
|
|
11795
|
+
ghost: { states: giltSecondaryStates },
|
|
11796
|
+
accent: { states: giltPrimaryStates }
|
|
11797
|
+
} }
|
|
11798
|
+
});
|
|
11799
|
+
const hairline = {
|
|
11800
|
+
text: "treatment",
|
|
11801
|
+
borderRadius: "rounded-3px",
|
|
11802
|
+
shadow: flatShadow,
|
|
11803
|
+
sizes: {
|
|
11804
|
+
sm: {
|
|
11805
|
+
padding: "9px 16px",
|
|
11806
|
+
fontSize: "text-xs"
|
|
11807
|
+
},
|
|
11808
|
+
md: {
|
|
11809
|
+
padding: "15px 28px",
|
|
11810
|
+
fontSize: "text-13px"
|
|
11811
|
+
},
|
|
11812
|
+
lg: {
|
|
11813
|
+
padding: "15px 28px",
|
|
11814
|
+
fontSize: "text-13px"
|
|
11815
|
+
},
|
|
11816
|
+
xl: {
|
|
11817
|
+
padding: "15px 28px",
|
|
11818
|
+
fontSize: "text-13px"
|
|
11819
|
+
}
|
|
11820
|
+
},
|
|
11821
|
+
typography: {
|
|
11822
|
+
fontWeight: 700,
|
|
11823
|
+
typography: "body",
|
|
11824
|
+
fontSize: "text-13px",
|
|
11825
|
+
letterSpacing: "wide",
|
|
11826
|
+
italic: false,
|
|
11827
|
+
textTransform: "uppercase"
|
|
11828
|
+
},
|
|
11829
|
+
effects: []
|
|
11830
|
+
};
|
|
11831
|
+
const hairlinePrimary = {
|
|
11832
|
+
...hairline,
|
|
11833
|
+
background: {
|
|
11834
|
+
type: "solid",
|
|
11835
|
+
colorToken: "primary"
|
|
11836
|
+
},
|
|
11837
|
+
border: {
|
|
11838
|
+
widthClass: "border",
|
|
11839
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11840
|
+
}
|
|
11841
|
+
};
|
|
11842
|
+
const hairlineOutline = {
|
|
11843
|
+
...hairline,
|
|
11844
|
+
background: {
|
|
11845
|
+
type: "surface",
|
|
11846
|
+
role: "link"
|
|
11847
|
+
},
|
|
11848
|
+
border: {
|
|
11849
|
+
widthClass: "border",
|
|
11850
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11851
|
+
}
|
|
11852
|
+
};
|
|
11853
|
+
const hairlineSecondary = {
|
|
11854
|
+
...hairlineOutline,
|
|
11855
|
+
border: {
|
|
11856
|
+
widthClass: "border",
|
|
11857
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
11858
|
+
}
|
|
11859
|
+
};
|
|
11860
|
+
const hairlineFilled = {
|
|
11861
|
+
...hairlineSecondary,
|
|
11862
|
+
background: {
|
|
11863
|
+
type: "solid",
|
|
11864
|
+
colorToken: "accent"
|
|
11865
|
+
}
|
|
11866
|
+
};
|
|
11867
|
+
const hairlinePrimaryStates = states(hairlinePrimary, hairlineOutline, 3);
|
|
11868
|
+
const hairlineSecondaryStates = states(hairlineSecondary, hairlineFilled, 3);
|
|
11869
|
+
const hairlineTabRecipe = defineStaticButtonStyleRecipe({
|
|
11870
|
+
id: "hairline-tab",
|
|
11871
|
+
accessibilityLabel: "Hairline tab",
|
|
11872
|
+
tags,
|
|
11873
|
+
system: { roles: {
|
|
11874
|
+
primary: { states: hairlinePrimaryStates },
|
|
11875
|
+
secondary: { states: hairlineSecondaryStates },
|
|
11876
|
+
outline: { states: hairlineSecondaryStates },
|
|
11877
|
+
ghost: { states: hairlineSecondaryStates },
|
|
11878
|
+
accent: { states: states(hairlineFilled, hairlineSecondary, 3) }
|
|
11879
|
+
} }
|
|
11880
|
+
});
|
|
11881
|
+
const marqueeAccent = {
|
|
11882
|
+
text: "treatment",
|
|
11883
|
+
borderRadius: "rounded-none",
|
|
11884
|
+
shadow: flatShadow,
|
|
11885
|
+
sizes: {
|
|
11886
|
+
sm: {
|
|
11887
|
+
padding: "8px 17px",
|
|
11888
|
+
fontSize: "text-15px"
|
|
11889
|
+
},
|
|
11890
|
+
md: {
|
|
11891
|
+
padding: "14px 25px",
|
|
11892
|
+
fontSize: "text-17px"
|
|
11893
|
+
},
|
|
11894
|
+
lg: {
|
|
11895
|
+
padding: "14px 25px",
|
|
11896
|
+
fontSize: "text-17px"
|
|
11897
|
+
},
|
|
11898
|
+
xl: {
|
|
11899
|
+
padding: "14px 25px",
|
|
11900
|
+
fontSize: "text-17px"
|
|
11901
|
+
}
|
|
11902
|
+
},
|
|
11903
|
+
typography: {
|
|
11904
|
+
fontWeight: 800,
|
|
11905
|
+
typography: "body",
|
|
11906
|
+
fontSize: "text-17px",
|
|
11907
|
+
letterSpacing: "loose",
|
|
11908
|
+
italic: false,
|
|
11909
|
+
textTransform: "uppercase"
|
|
11910
|
+
},
|
|
11911
|
+
effects: [],
|
|
11912
|
+
background: {
|
|
11913
|
+
type: "solid",
|
|
11914
|
+
colorToken: "accent"
|
|
11915
|
+
},
|
|
11916
|
+
border: {
|
|
11917
|
+
widthClass: "border-2",
|
|
11918
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
11919
|
+
}
|
|
11920
|
+
};
|
|
11921
|
+
const marqueePrimary = {
|
|
11922
|
+
...marqueeAccent,
|
|
11923
|
+
background: {
|
|
11924
|
+
type: "solid",
|
|
11925
|
+
colorToken: "primary"
|
|
11926
|
+
},
|
|
11927
|
+
border: {
|
|
11928
|
+
widthClass: "border-2",
|
|
11929
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11930
|
+
}
|
|
11931
|
+
};
|
|
11932
|
+
const marqueeSecondary = {
|
|
11933
|
+
...marqueeAccent,
|
|
11934
|
+
background: {
|
|
11935
|
+
type: "solid",
|
|
11936
|
+
colorToken: "text"
|
|
11937
|
+
},
|
|
11938
|
+
border: {
|
|
11939
|
+
widthClass: "border-2",
|
|
11940
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("text")
|
|
11941
|
+
}
|
|
11942
|
+
};
|
|
11943
|
+
const marqueePrimaryStates = states(marqueeAccent, marqueePrimary, 4, 3);
|
|
11944
|
+
const marqueeSecondaryStates = states(marqueeSecondary, marqueeAccent, 4, 3);
|
|
11945
|
+
const marqueeRecipe = defineStaticButtonStyleRecipe({
|
|
11946
|
+
id: "marquee",
|
|
11947
|
+
accessibilityLabel: "Marquee",
|
|
11948
|
+
tags,
|
|
11949
|
+
system: { roles: {
|
|
11950
|
+
primary: { states: marqueePrimaryStates },
|
|
11951
|
+
secondary: { states: marqueeSecondaryStates },
|
|
11952
|
+
outline: { states: marqueeSecondaryStates },
|
|
11953
|
+
ghost: { states: marqueeSecondaryStates },
|
|
11954
|
+
accent: { states: marqueePrimaryStates }
|
|
11955
|
+
} }
|
|
11956
|
+
});
|
|
11957
|
+
//#endregion
|
|
11487
11958
|
//#region ../theme-core/src/buttons/styles/recipes/fulcrumRecipe.ts
|
|
11488
11959
|
const fulcrumSizes = {
|
|
11489
11960
|
sm: {
|
|
@@ -12225,7 +12696,10 @@ const BUTTON_STYLE_IDS = [
|
|
|
12225
12696
|
"offset-block",
|
|
12226
12697
|
"ringed-pill",
|
|
12227
12698
|
"square-outline",
|
|
12228
|
-
"fulcrum"
|
|
12699
|
+
"fulcrum",
|
|
12700
|
+
"gilt-slab",
|
|
12701
|
+
"hairline-tab",
|
|
12702
|
+
"marquee"
|
|
12229
12703
|
];
|
|
12230
12704
|
const quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
|
|
12231
12705
|
const flatInkHoverTreatmentSchema = z.enum([
|
|
@@ -12262,7 +12736,10 @@ const buttonStyleSelectionSchema = z.discriminatedUnion("styleId", [
|
|
|
12262
12736
|
selectionBranch("offset-block", emptyParametersSchema),
|
|
12263
12737
|
selectionBranch("ringed-pill", emptyParametersSchema),
|
|
12264
12738
|
selectionBranch("square-outline", emptyParametersSchema),
|
|
12265
|
-
selectionBranch("fulcrum", emptyParametersSchema)
|
|
12739
|
+
selectionBranch("fulcrum", emptyParametersSchema),
|
|
12740
|
+
selectionBranch("gilt-slab", emptyParametersSchema),
|
|
12741
|
+
selectionBranch("hairline-tab", emptyParametersSchema),
|
|
12742
|
+
selectionBranch("marquee", emptyParametersSchema)
|
|
12266
12743
|
]);
|
|
12267
12744
|
//#endregion
|
|
12268
12745
|
//#region ../theme-core/src/buttons/styles/recipes/quietArrow.ts
|
|
@@ -15778,7 +16255,10 @@ const buttonStyleRecipes = [
|
|
|
15778
16255
|
offsetBlockRecipe,
|
|
15779
16256
|
ringedPillRecipe,
|
|
15780
16257
|
squareOutlineRecipe,
|
|
15781
|
-
fulcrumRecipe
|
|
16258
|
+
fulcrumRecipe,
|
|
16259
|
+
giltSlabRecipe,
|
|
16260
|
+
hairlineTabRecipe,
|
|
16261
|
+
marqueeRecipe
|
|
15782
16262
|
];
|
|
15783
16263
|
const recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
|
|
15784
16264
|
function findButtonStyleRecipe(id) {
|
|
@@ -15794,6 +16274,9 @@ function resolveButtonStyleSelection(selection) {
|
|
|
15794
16274
|
case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
|
|
15795
16275
|
case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
|
|
15796
16276
|
case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
|
|
16277
|
+
case "gilt-slab": return resolveButtonStyleRecipe(giltSlabRecipe, selection.parameters);
|
|
16278
|
+
case "hairline-tab": return resolveButtonStyleRecipe(hairlineTabRecipe, selection.parameters);
|
|
16279
|
+
case "marquee": return resolveButtonStyleRecipe(marqueeRecipe, selection.parameters);
|
|
15797
16280
|
case "fulcrum": return resolveButtonStyleRecipe(fulcrumRecipe, selection.parameters);
|
|
15798
16281
|
case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
|
|
15799
16282
|
case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
|
|
@@ -18025,20 +18508,15 @@ const headerSchema = z.object({
|
|
|
18025
18508
|
const footerVariant = z.enum([
|
|
18026
18509
|
"simple",
|
|
18027
18510
|
"columns",
|
|
18028
|
-
"split"
|
|
18029
|
-
|
|
18511
|
+
"split",
|
|
18512
|
+
"centred"
|
|
18513
|
+
]).transform((value) => value === "columns" ? "simple" : value);
|
|
18030
18514
|
const footerMaxWidth = z.enum(["container", "full"]);
|
|
18031
18515
|
const footerNavLayoutMode = z.enum([
|
|
18032
18516
|
"stack",
|
|
18033
18517
|
"inline",
|
|
18034
18518
|
"inline-wrap"
|
|
18035
18519
|
]);
|
|
18036
|
-
const footerNavLayoutAlign = z.enum([
|
|
18037
|
-
"start",
|
|
18038
|
-
"center",
|
|
18039
|
-
"end",
|
|
18040
|
-
"space-between"
|
|
18041
|
-
]);
|
|
18042
18520
|
const footerSpacing = z.enum([
|
|
18043
18521
|
"none",
|
|
18044
18522
|
"tight",
|
|
@@ -18047,12 +18525,6 @@ const footerSpacing = z.enum([
|
|
|
18047
18525
|
"relaxed",
|
|
18048
18526
|
"spacious"
|
|
18049
18527
|
]);
|
|
18050
|
-
const footerLogoPlacement = z.enum([
|
|
18051
|
-
"left",
|
|
18052
|
-
"right",
|
|
18053
|
-
"above",
|
|
18054
|
-
"below"
|
|
18055
|
-
]);
|
|
18056
18528
|
const footerLogoSize = z.enum([
|
|
18057
18529
|
"sm",
|
|
18058
18530
|
"md",
|
|
@@ -18093,17 +18565,8 @@ const footerBottomBarSchema = z.object({
|
|
|
18093
18565
|
]).optional()
|
|
18094
18566
|
}).optional()
|
|
18095
18567
|
});
|
|
18096
|
-
const footerNavLayoutSchema = z.object({
|
|
18097
|
-
layout: footerNavLayoutMode.optional(),
|
|
18098
|
-
align: footerNavLayoutAlign.optional(),
|
|
18099
|
-
gapX: footerSpacing.optional(),
|
|
18100
|
-
gapY: footerSpacing.optional(),
|
|
18101
|
-
columns: z.number().int().min(1).max(6).optional()
|
|
18102
|
-
});
|
|
18568
|
+
const footerNavLayoutSchema = z.object({ layout: footerNavLayoutMode.optional() });
|
|
18103
18569
|
const footerLogoSchema = z.object({
|
|
18104
|
-
showLogo: z.boolean().default(true),
|
|
18105
|
-
showLogoText: z.boolean().optional(),
|
|
18106
|
-
placement: footerLogoPlacement.optional(),
|
|
18107
18570
|
size: footerLogoSize.optional(),
|
|
18108
18571
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
18109
18572
|
align: z.enum([
|
|
@@ -18113,15 +18576,8 @@ const footerLogoSchema = z.object({
|
|
|
18113
18576
|
]).optional()
|
|
18114
18577
|
});
|
|
18115
18578
|
const footerSchema = z.object({
|
|
18116
|
-
/**
|
|
18117
|
-
* SDK-only footer rendering mode.
|
|
18118
|
-
*
|
|
18119
|
-
* Historical persisted field; SDK rendering mode now lives in layout.footerMode.
|
|
18120
|
-
*/
|
|
18121
|
-
mode: footerModeSchema.optional(),
|
|
18122
18579
|
variant: footerVariant,
|
|
18123
18580
|
maxWidth: footerMaxWidth,
|
|
18124
|
-
showLogoText: z.boolean().optional(),
|
|
18125
18581
|
background: headerBackgroundSchema.default({
|
|
18126
18582
|
type: "color",
|
|
18127
18583
|
color: "surface"
|
|
@@ -18304,7 +18760,9 @@ const cardListKnobBlocks = [...cardListFamilyBlocks, "block.event-calendar"];
|
|
|
18304
18760
|
const lookKnobBlocks = {
|
|
18305
18761
|
actionStyle: cardListKnobBlocks,
|
|
18306
18762
|
titleSize: "block.hero",
|
|
18307
|
-
imagePosition: "block.hero",
|
|
18763
|
+
imagePosition: ["block.hero", "block.media-text"],
|
|
18764
|
+
imageShape: "block.media-text",
|
|
18765
|
+
aspectRatio: "block.media-text",
|
|
18308
18766
|
stickerLine: "block.hero",
|
|
18309
18767
|
smallCaption: "block.hero",
|
|
18310
18768
|
candleGlow: "block.hero",
|
|
@@ -18314,7 +18772,11 @@ const lookKnobBlocks = {
|
|
|
18314
18772
|
dates: "block.offerings-preview",
|
|
18315
18773
|
showCapacity: "block.event-calendar",
|
|
18316
18774
|
quoteCount: "block.testimonials",
|
|
18317
|
-
archFrame:
|
|
18775
|
+
archFrame: [
|
|
18776
|
+
"block.testimonials",
|
|
18777
|
+
"block.newsletter-signup",
|
|
18778
|
+
"block.form"
|
|
18779
|
+
],
|
|
18318
18780
|
tilt: "block.testimonials"
|
|
18319
18781
|
};
|
|
18320
18782
|
function isArrangementAppearancePreset(preset) {
|
|
@@ -18341,13 +18803,25 @@ function cardListKnobDefaults(block, arrangement, knobs, defaults) {
|
|
|
18341
18803
|
}
|
|
18342
18804
|
};
|
|
18343
18805
|
}
|
|
18806
|
+
const arrangementLookTargets = {
|
|
18807
|
+
hero: "hero",
|
|
18808
|
+
"feature-cards": "feature-cards",
|
|
18809
|
+
"event-calendar": "events",
|
|
18810
|
+
testimonials: "testimonials",
|
|
18811
|
+
"event-details": "events",
|
|
18812
|
+
"media-text": "media-text",
|
|
18813
|
+
"image-gallery": "image-gallery",
|
|
18814
|
+
"newsletter-signup": "newsletter",
|
|
18815
|
+
form: "contact-form",
|
|
18816
|
+
"body-text": "body-text"
|
|
18817
|
+
};
|
|
18344
18818
|
function defineArrangementLook(id, block, name, arrangement, knobs, input = {}) {
|
|
18345
18819
|
const mode = block === "event-calendar" ? "list" : null;
|
|
18346
18820
|
return {
|
|
18347
18821
|
id: asAppearancePresetId(id),
|
|
18348
18822
|
blockKinds: [`block.${block}`],
|
|
18349
18823
|
label: name,
|
|
18350
|
-
target: block
|
|
18824
|
+
target: arrangementLookTargets[block],
|
|
18351
18825
|
structure: {
|
|
18352
18826
|
kind: "arrangement",
|
|
18353
18827
|
byMode: { [mode ?? "default"]: arrangement },
|
|
@@ -19236,6 +19710,15 @@ const appearancePresets = [
|
|
|
19236
19710
|
eyebrowTreatment: "accent"
|
|
19237
19711
|
}
|
|
19238
19712
|
}),
|
|
19713
|
+
defineArrangementLook("body-text-reading-column", "body-text", "Reading column", "prose", []),
|
|
19714
|
+
defineArrangementLook("form-beside-introduction-arched-panel", "form", "Introduction beside an arched form", "two-column", [], { slotRoles: { panel: "card" } }),
|
|
19715
|
+
defineArrangementLook("newsletter-signup-in-arch", "newsletter-signup", "Signup in an arch", "arch", []),
|
|
19716
|
+
defineArrangementLook("image-gallery-square-tiles", "image-gallery", "Square tiles", "tiles", []),
|
|
19717
|
+
defineArrangementLook("image-gallery-arched-captions", "image-gallery", "Arched photos with captions", "tiles", [], { styleFallback: [id$1("image-gallery-square-tiles")] }),
|
|
19718
|
+
defineArrangementLook("media-text-circle-beside-text", "media-text", "Circle beside the text", "circle-beside", ["imagePosition"], { forcedKnobs: {
|
|
19719
|
+
imageShape: "circle",
|
|
19720
|
+
aspectRatio: "1/1"
|
|
19721
|
+
} }),
|
|
19239
19722
|
defineArrangementLook("hero-photo-beside-text", "hero", "Photo beside the text", "split", heroKnobs, { slotRoles: { sticker: "highlight" } }),
|
|
19240
19723
|
defineArrangementLook("hero-headline-row", "hero", "Big headline, then text and photo", "headline-row", heroKnobs, {
|
|
19241
19724
|
slotRoles: { sticker: "highlight" },
|
|
@@ -19821,6 +20304,49 @@ function requireThemeColorToken$1(value) {
|
|
|
19821
20304
|
return token;
|
|
19822
20305
|
}
|
|
19823
20306
|
//#endregion
|
|
20307
|
+
//#region ../theme-core/src/header/rootPaint.ts
|
|
20308
|
+
/** The nav container takes precedence when a floating header also has one. */
|
|
20309
|
+
function headerRootPaint(header) {
|
|
20310
|
+
const navContainerType = header?.navContainer?.type ?? "none";
|
|
20311
|
+
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
20312
|
+
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
20313
|
+
}
|
|
20314
|
+
//#endregion
|
|
20315
|
+
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
20316
|
+
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
20317
|
+
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
20318
|
+
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
20319
|
+
function parseSiteChromeBackgroundColorToken(value) {
|
|
20320
|
+
const token = parseBackgroundAppearanceColorToken(value);
|
|
20321
|
+
return token ? token : null;
|
|
20322
|
+
}
|
|
20323
|
+
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
20324
|
+
return tokenNames.flatMap((name) => {
|
|
20325
|
+
const token = parseSiteChromeBackgroundColorToken(name);
|
|
20326
|
+
return token ? [token] : [];
|
|
20327
|
+
});
|
|
20328
|
+
}
|
|
20329
|
+
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
20330
|
+
const token = parseSiteChromeBackgroundColorToken(value);
|
|
20331
|
+
if (token === null) {
|
|
20332
|
+
ctx.addIssue({
|
|
20333
|
+
code: "custom",
|
|
20334
|
+
message: "Unknown site chrome background colour token"
|
|
20335
|
+
});
|
|
20336
|
+
return z.NEVER;
|
|
20337
|
+
}
|
|
20338
|
+
return token;
|
|
20339
|
+
});
|
|
20340
|
+
const siteChromeBackgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
20341
|
+
kind: z.literal("color"),
|
|
20342
|
+
token: backgroundColorTokenSchema
|
|
20343
|
+
}).strict()]);
|
|
20344
|
+
z.object({
|
|
20345
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
20346
|
+
navigationLayout: z.enum(["inline-wrap", "stack"])
|
|
20347
|
+
}).strict();
|
|
20348
|
+
z.object({ background: siteChromeBackgroundOverrideSchema }).strict();
|
|
20349
|
+
//#endregion
|
|
19824
20350
|
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
19825
20351
|
const defaultHeaderBrandPreferences = {
|
|
19826
20352
|
brandDisplay: "auto",
|
|
@@ -19981,6 +20507,9 @@ function fallbackEndsAtOffer(entry, mode, style, catalogue, visited) {
|
|
|
19981
20507
|
appearancePresets.filter(isArrangementAppearancePreset);
|
|
19982
20508
|
/** Closed structural hooks shared by block arrangements and bounded skins. */
|
|
19983
20509
|
const arrangementSlotNames = [
|
|
20510
|
+
"contact",
|
|
20511
|
+
"social",
|
|
20512
|
+
"base",
|
|
19984
20513
|
"section",
|
|
19985
20514
|
"stack",
|
|
19986
20515
|
"inline",
|
|
@@ -20067,6 +20596,238 @@ function validateOfferKnobs(style, catalogue) {
|
|
|
20067
20596
|
});
|
|
20068
20597
|
}
|
|
20069
20598
|
//#endregion
|
|
20599
|
+
//#region ../theme-core/src/site-styles/footerLookDefaults.ts
|
|
20600
|
+
const defaultFooterLookRecipes = {
|
|
20601
|
+
"footer-centred-name": {
|
|
20602
|
+
arrangement: "centred",
|
|
20603
|
+
ground: {
|
|
20604
|
+
kind: "token",
|
|
20605
|
+
token: "surface"
|
|
20606
|
+
},
|
|
20607
|
+
nav: {
|
|
20608
|
+
weight: "regular",
|
|
20609
|
+
colorToken: "text",
|
|
20610
|
+
hoverColorToken: "primary",
|
|
20611
|
+
typography: "body"
|
|
20612
|
+
},
|
|
20613
|
+
legal: {
|
|
20614
|
+
kind: "separate",
|
|
20615
|
+
bar: null
|
|
20616
|
+
},
|
|
20617
|
+
brandAlign: "center"
|
|
20618
|
+
},
|
|
20619
|
+
"footer-links-row": {
|
|
20620
|
+
arrangement: "simple",
|
|
20621
|
+
ground: {
|
|
20622
|
+
kind: "token",
|
|
20623
|
+
token: "surface"
|
|
20624
|
+
},
|
|
20625
|
+
nav: {
|
|
20626
|
+
weight: "regular",
|
|
20627
|
+
colorToken: "text",
|
|
20628
|
+
hoverColorToken: "primary",
|
|
20629
|
+
typography: "body"
|
|
20630
|
+
},
|
|
20631
|
+
legal: { kind: "integrated" },
|
|
20632
|
+
brandAlign: "start"
|
|
20633
|
+
}
|
|
20634
|
+
};
|
|
20635
|
+
/** A whole authored recipe replaces the default; facets are never deep-merged. */
|
|
20636
|
+
function resolveFooterLookRecipe(style, id) {
|
|
20637
|
+
return style?.footerLookRecipes?.[id] ?? defaultFooterLookRecipes[id];
|
|
20638
|
+
}
|
|
20639
|
+
//#endregion
|
|
20640
|
+
//#region ../theme-core/src/navigation/presets.ts
|
|
20641
|
+
/**
|
|
20642
|
+
* Built-in nav link style presets
|
|
20643
|
+
*
|
|
20644
|
+
* Each preset uses composable effects to achieve its look.
|
|
20645
|
+
*/
|
|
20646
|
+
const NAV_LINK_PRESETS = {
|
|
20647
|
+
/**
|
|
20648
|
+
* Minimal - subtle color change on hover
|
|
20649
|
+
*/
|
|
20650
|
+
minimal: {
|
|
20651
|
+
name: "Minimal",
|
|
20652
|
+
typography: "body",
|
|
20653
|
+
fontWeight: "medium",
|
|
20654
|
+
textTransform: "none",
|
|
20655
|
+
italic: false,
|
|
20656
|
+
colorToken: "text",
|
|
20657
|
+
hoverColorToken: "primary",
|
|
20658
|
+
padding: "none",
|
|
20659
|
+
borderRadius: "none",
|
|
20660
|
+
effects: { hover: [{
|
|
20661
|
+
effectId: "text-color-change",
|
|
20662
|
+
options: { hoverColorToken: "primary" }
|
|
20663
|
+
}] }
|
|
20664
|
+
},
|
|
20665
|
+
/**
|
|
20666
|
+
* Underline - static underline appears on hover
|
|
20667
|
+
*/
|
|
20668
|
+
underline: {
|
|
20669
|
+
name: "Underline",
|
|
20670
|
+
typography: "body",
|
|
20671
|
+
fontWeight: "medium",
|
|
20672
|
+
textTransform: "none",
|
|
20673
|
+
italic: false,
|
|
20674
|
+
colorToken: "text",
|
|
20675
|
+
padding: "none",
|
|
20676
|
+
borderRadius: "none",
|
|
20677
|
+
effects: { hover: [{
|
|
20678
|
+
effectId: "nav-underline",
|
|
20679
|
+
options: { style: "static" }
|
|
20680
|
+
}] }
|
|
20681
|
+
},
|
|
20682
|
+
/**
|
|
20683
|
+
* Underline Grow - animated underline grows from center on hover
|
|
20684
|
+
*/
|
|
20685
|
+
"underline-grow": {
|
|
20686
|
+
name: "Underline Grow",
|
|
20687
|
+
typography: "body",
|
|
20688
|
+
fontWeight: "medium",
|
|
20689
|
+
textTransform: "none",
|
|
20690
|
+
italic: false,
|
|
20691
|
+
colorToken: "text",
|
|
20692
|
+
padding: "none",
|
|
20693
|
+
borderRadius: "none",
|
|
20694
|
+
effects: { hover: [{
|
|
20695
|
+
effectId: "nav-underline",
|
|
20696
|
+
options: { style: "grow" }
|
|
20697
|
+
}] }
|
|
20698
|
+
},
|
|
20699
|
+
/**
|
|
20700
|
+
* Capsule - pill-shaped background on hover
|
|
20701
|
+
*/
|
|
20702
|
+
capsule: {
|
|
20703
|
+
name: "Capsule",
|
|
20704
|
+
typography: "body",
|
|
20705
|
+
fontWeight: "medium",
|
|
20706
|
+
textTransform: "none",
|
|
20707
|
+
italic: false,
|
|
20708
|
+
colorToken: "text",
|
|
20709
|
+
padding: "compact",
|
|
20710
|
+
borderRadius: "full",
|
|
20711
|
+
effects: {
|
|
20712
|
+
hover: [{
|
|
20713
|
+
effectId: "background-on-hover-alpha",
|
|
20714
|
+
options: {
|
|
20715
|
+
colorToken: "primary",
|
|
20716
|
+
opacity: 10
|
|
20717
|
+
}
|
|
20718
|
+
}],
|
|
20719
|
+
active: [{
|
|
20720
|
+
effectId: "background-on-hover-alpha",
|
|
20721
|
+
options: {
|
|
20722
|
+
colorToken: "primary",
|
|
20723
|
+
opacity: 15
|
|
20724
|
+
}
|
|
20725
|
+
}]
|
|
20726
|
+
}
|
|
20727
|
+
},
|
|
20728
|
+
/**
|
|
20729
|
+
* Solid - solid background color on hover
|
|
20730
|
+
*/
|
|
20731
|
+
solid: {
|
|
20732
|
+
name: "Solid",
|
|
20733
|
+
typography: "body",
|
|
20734
|
+
fontWeight: "medium",
|
|
20735
|
+
textTransform: "none",
|
|
20736
|
+
italic: false,
|
|
20737
|
+
colorToken: "text",
|
|
20738
|
+
padding: "compact",
|
|
20739
|
+
borderRadius: "none",
|
|
20740
|
+
effects: {
|
|
20741
|
+
hover: [{
|
|
20742
|
+
effectId: "background-on-hover",
|
|
20743
|
+
options: {
|
|
20744
|
+
colorToken: "primary",
|
|
20745
|
+
textColorToken: "primaryForeground"
|
|
20746
|
+
}
|
|
20747
|
+
}],
|
|
20748
|
+
active: [{
|
|
20749
|
+
effectId: "background-on-hover",
|
|
20750
|
+
options: {
|
|
20751
|
+
colorToken: "primary",
|
|
20752
|
+
textColorToken: "primaryForeground"
|
|
20753
|
+
}
|
|
20754
|
+
}]
|
|
20755
|
+
}
|
|
20756
|
+
},
|
|
20757
|
+
/**
|
|
20758
|
+
* Scale - gentle scale-up on hover
|
|
20759
|
+
*/
|
|
20760
|
+
scale: {
|
|
20761
|
+
name: "Scale",
|
|
20762
|
+
typography: "body",
|
|
20763
|
+
fontWeight: "medium",
|
|
20764
|
+
textTransform: "none",
|
|
20765
|
+
italic: false,
|
|
20766
|
+
colorToken: "text",
|
|
20767
|
+
padding: "none",
|
|
20768
|
+
borderRadius: "none",
|
|
20769
|
+
effects: { hover: [{
|
|
20770
|
+
effectId: "scale-up",
|
|
20771
|
+
options: { scale: 1.05 }
|
|
20772
|
+
}] }
|
|
20773
|
+
},
|
|
20774
|
+
/**
|
|
20775
|
+
* Frosted - semi-transparent glass-like background
|
|
20776
|
+
*/
|
|
20777
|
+
frosted: {
|
|
20778
|
+
name: "Frosted",
|
|
20779
|
+
typography: "body",
|
|
20780
|
+
fontWeight: "medium",
|
|
20781
|
+
textTransform: "none",
|
|
20782
|
+
italic: false,
|
|
20783
|
+
colorToken: "text",
|
|
20784
|
+
padding: "compact",
|
|
20785
|
+
borderRadius: "md",
|
|
20786
|
+
effects: {
|
|
20787
|
+
base: [{ effectId: "nav-frosted-base" }],
|
|
20788
|
+
hover: [{ effectId: "nav-frosted-hover" }],
|
|
20789
|
+
active: [{ effectId: "nav-frosted-active" }]
|
|
20790
|
+
}
|
|
20791
|
+
}
|
|
20792
|
+
};
|
|
20793
|
+
/**
|
|
20794
|
+
* Get a nav link style preset by ID
|
|
20795
|
+
*/
|
|
20796
|
+
function getNavLinkPreset(presetId) {
|
|
20797
|
+
return NAV_LINK_PRESETS[presetId];
|
|
20798
|
+
}
|
|
20799
|
+
Object.keys(NAV_LINK_PRESETS);
|
|
20800
|
+
//#endregion
|
|
20801
|
+
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
20802
|
+
function effectiveFooterNavLinkStyle(footer) {
|
|
20803
|
+
if (!footer) return null;
|
|
20804
|
+
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
20805
|
+
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
20806
|
+
if (!basePreset) return null;
|
|
20807
|
+
return {
|
|
20808
|
+
...basePreset,
|
|
20809
|
+
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
20810
|
+
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
20811
|
+
};
|
|
20812
|
+
}
|
|
20813
|
+
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
20814
|
+
if (!footer) return {};
|
|
20815
|
+
const style = effectiveFooterNavLinkStyle(footer);
|
|
20816
|
+
return {
|
|
20817
|
+
text: footer.background?.textColor ?? (footer.variant === "centred" ? "text" : void 0),
|
|
20818
|
+
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
20819
|
+
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
20820
|
+
};
|
|
20821
|
+
}
|
|
20822
|
+
//#endregion
|
|
20823
|
+
//#region ../theme-core/src/site-styles/footerLookRecipe.ts
|
|
20824
|
+
/** Reject undeclared references when the curated catalogue is loaded, before rendering. */
|
|
20825
|
+
function validateFooterRecipeSurfaces(style, recipe) {
|
|
20826
|
+
[recipe.ground, ...recipe.legal.kind === "separate" && recipe.legal.bar ? [recipe.legal.bar.background] : []].forEach((ground) => {
|
|
20827
|
+
if (ground.kind === "style-surface" && (style.looks.kind !== "offers" || !style.looks.surfaces[ground.surface])) throw new Error(`Undeclared footer surface: ${ground.surface}`);
|
|
20828
|
+
});
|
|
20829
|
+
}
|
|
20830
|
+
//#endregion
|
|
20070
20831
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
20071
20832
|
/**
|
|
20072
20833
|
* Reusable accordion "looks" for curated site styles.
|
|
@@ -20794,52 +21555,14 @@ defineLookOptionGroup({
|
|
|
20794
21555
|
function asFooterLookId(value) {
|
|
20795
21556
|
return value;
|
|
20796
21557
|
}
|
|
20797
|
-
function quietFooterLinks(theme) {
|
|
20798
|
-
return {
|
|
20799
|
-
...theme.footer,
|
|
20800
|
-
navStyle: "minimal",
|
|
20801
|
-
navWeight: "regular",
|
|
20802
|
-
navColor: "text",
|
|
20803
|
-
navLinkStyle: {
|
|
20804
|
-
typography: "body",
|
|
20805
|
-
fontWeight: "regular",
|
|
20806
|
-
textTransform: "none",
|
|
20807
|
-
italic: false,
|
|
20808
|
-
colorToken: "text",
|
|
20809
|
-
hoverColorToken: "primary",
|
|
20810
|
-
padding: "none",
|
|
20811
|
-
borderRadius: "none"
|
|
20812
|
-
}
|
|
20813
|
-
};
|
|
20814
|
-
}
|
|
20815
|
-
function emphasizedFooterLinks(theme) {
|
|
20816
|
-
return {
|
|
20817
|
-
...theme.footer,
|
|
20818
|
-
navStyle: "minimal",
|
|
20819
|
-
navWeight: "medium",
|
|
20820
|
-
navColor: "text",
|
|
20821
|
-
navLinkStyle: {
|
|
20822
|
-
typography: "body",
|
|
20823
|
-
fontWeight: "medium",
|
|
20824
|
-
textTransform: "none",
|
|
20825
|
-
italic: false,
|
|
20826
|
-
colorToken: "text",
|
|
20827
|
-
hoverColorToken: "primary",
|
|
20828
|
-
padding: "none",
|
|
20829
|
-
borderRadius: "none"
|
|
20830
|
-
}
|
|
20831
|
-
};
|
|
20832
|
-
}
|
|
20833
21558
|
const footerLookCatalog = defineExactCatalog()([{
|
|
20834
|
-
id: asFooterLookId("footer-links-
|
|
20835
|
-
label: "
|
|
20836
|
-
description: "
|
|
20837
|
-
compile: quietFooterLinks
|
|
21559
|
+
id: asFooterLookId("footer-links-row"),
|
|
21560
|
+
label: "Links in a row",
|
|
21561
|
+
description: "Your links in a row, with the other footer sections in columns beside them."
|
|
20838
21562
|
}, {
|
|
20839
|
-
id: asFooterLookId("footer-
|
|
20840
|
-
label: "
|
|
20841
|
-
description: "
|
|
20842
|
-
compile: emphasizedFooterLinks
|
|
21563
|
+
id: asFooterLookId("footer-centred-name"),
|
|
21564
|
+
label: "Centred name, links beneath",
|
|
21565
|
+
description: "Your site name centred, with your links, contact details and social links beneath it."
|
|
20843
21566
|
}]);
|
|
20844
21567
|
new Map(footerLookCatalog.map((look) => [look.id, look]));
|
|
20845
21568
|
//#endregion
|
|
@@ -22256,6 +22979,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
22256
22979
|
recommendedAppearancePresetIds
|
|
22257
22980
|
},
|
|
22258
22981
|
headerCuration: headerCurationBySiteStyle[input.id],
|
|
22982
|
+
footerLookRecipes: input.footerLookRecipes,
|
|
22259
22983
|
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
|
|
22260
22984
|
buttonStyleChoices: input.buttonStyleChoices,
|
|
22261
22985
|
paletteRecommendations: input.paletteRecommendations,
|
|
@@ -22741,7 +23465,11 @@ const lanternLooks = {
|
|
|
22741
23465
|
margin: "40px"
|
|
22742
23466
|
},
|
|
22743
23467
|
fontLoading: {
|
|
22744
|
-
extraBodyFontWeights: [
|
|
23468
|
+
extraBodyFontWeights: [
|
|
23469
|
+
500,
|
|
23470
|
+
700,
|
|
23471
|
+
800
|
|
23472
|
+
],
|
|
22745
23473
|
italicBodyFontWeights: [400]
|
|
22746
23474
|
},
|
|
22747
23475
|
surfaces: {
|
|
@@ -22791,6 +23519,38 @@ const lanternLooks = {
|
|
|
22791
23519
|
]
|
|
22792
23520
|
},
|
|
22793
23521
|
offers: [
|
|
23522
|
+
{
|
|
23523
|
+
id: id("body-text-reading-column"),
|
|
23524
|
+
treatment: "reading-column",
|
|
23525
|
+
roleMap: lanternRoles
|
|
23526
|
+
},
|
|
23527
|
+
{
|
|
23528
|
+
id: id("form-beside-introduction-arched-panel"),
|
|
23529
|
+
treatment: "arched-panel",
|
|
23530
|
+
addKnobs: ["archFrame"],
|
|
23531
|
+
roleMap: lanternRoles
|
|
23532
|
+
},
|
|
23533
|
+
{
|
|
23534
|
+
id: id("newsletter-signup-in-arch"),
|
|
23535
|
+
treatment: "signup-arch",
|
|
23536
|
+
addKnobs: ["archFrame"],
|
|
23537
|
+
roleMap: lanternRoles
|
|
23538
|
+
},
|
|
23539
|
+
{
|
|
23540
|
+
id: id("image-gallery-square-tiles"),
|
|
23541
|
+
treatment: "square-tiles",
|
|
23542
|
+
roleMap: lanternRoles
|
|
23543
|
+
},
|
|
23544
|
+
{
|
|
23545
|
+
id: id("image-gallery-arched-captions"),
|
|
23546
|
+
treatment: "arched-captions",
|
|
23547
|
+
roleMap: lanternRoles
|
|
23548
|
+
},
|
|
23549
|
+
{
|
|
23550
|
+
id: id("media-text-circle-beside-text"),
|
|
23551
|
+
treatment: "circle-beside",
|
|
23552
|
+
roleMap: lanternRoles
|
|
23553
|
+
},
|
|
22794
23554
|
{
|
|
22795
23555
|
id: id("event-details-panel"),
|
|
22796
23556
|
treatment: "quiet",
|
|
@@ -23229,7 +23989,7 @@ const curatedSiteStyles = [
|
|
|
23229
23989
|
"faq-contained-help",
|
|
23230
23990
|
"contact-form-panel"
|
|
23231
23991
|
],
|
|
23232
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23992
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23233
23993
|
buttonStyleChoices: [
|
|
23234
23994
|
buttonChoice("soft-pill"),
|
|
23235
23995
|
buttonChoice("pebble"),
|
|
@@ -23348,7 +24108,7 @@ const curatedSiteStyles = [
|
|
|
23348
24108
|
"testimonials-non-carded",
|
|
23349
24109
|
"contact-form-panel"
|
|
23350
24110
|
],
|
|
23351
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24111
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23352
24112
|
buttonStyleChoices: [
|
|
23353
24113
|
buttonChoice("earth-pill"),
|
|
23354
24114
|
buttonChoice("soft-pill"),
|
|
@@ -23403,7 +24163,41 @@ const curatedSiteStyles = [
|
|
|
23403
24163
|
"testimonials-brand-statement-cards",
|
|
23404
24164
|
"contact-form-panel"
|
|
23405
24165
|
],
|
|
23406
|
-
|
|
24166
|
+
footerLookRecipes: { "footer-links-row": {
|
|
24167
|
+
arrangement: "split",
|
|
24168
|
+
ground: {
|
|
24169
|
+
kind: "token",
|
|
24170
|
+
token: "primary-800"
|
|
24171
|
+
},
|
|
24172
|
+
nav: {
|
|
24173
|
+
weight: "medium",
|
|
24174
|
+
colorToken: "primaryForeground",
|
|
24175
|
+
hoverColorToken: "secondary",
|
|
24176
|
+
typography: "body"
|
|
24177
|
+
},
|
|
24178
|
+
legal: {
|
|
24179
|
+
kind: "separate",
|
|
24180
|
+
bar: {
|
|
24181
|
+
fullBleed: true,
|
|
24182
|
+
background: {
|
|
24183
|
+
kind: "token",
|
|
24184
|
+
token: "primary-900"
|
|
24185
|
+
},
|
|
24186
|
+
textColor: "primaryForeground",
|
|
24187
|
+
textAlign: "center",
|
|
24188
|
+
paddingY: "compact",
|
|
24189
|
+
paddingX: "default",
|
|
24190
|
+
borderTop: { width: "none" }
|
|
24191
|
+
},
|
|
24192
|
+
linkStyle: {
|
|
24193
|
+
colorToken: "secondary",
|
|
24194
|
+
decorationColorToken: "secondary"
|
|
24195
|
+
}
|
|
24196
|
+
},
|
|
24197
|
+
brandAlign: "start",
|
|
24198
|
+
brandLogoSize: "sm"
|
|
24199
|
+
} },
|
|
24200
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23407
24201
|
buttonStyleChoices: [
|
|
23408
24202
|
buttonChoice("showtime-pill"),
|
|
23409
24203
|
buttonChoice("confident-chip"),
|
|
@@ -23474,7 +24268,7 @@ const curatedSiteStyles = [
|
|
|
23474
24268
|
"testimonials-statement-cards",
|
|
23475
24269
|
"contact-form-panel"
|
|
23476
24270
|
],
|
|
23477
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24271
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23478
24272
|
buttonStyleChoices: [
|
|
23479
24273
|
buttonChoice("ornate-ritual"),
|
|
23480
24274
|
buttonChoice("joy-stamp"),
|
|
@@ -23521,7 +24315,22 @@ const curatedSiteStyles = [
|
|
|
23521
24315
|
} }
|
|
23522
24316
|
},
|
|
23523
24317
|
recommendedAppearancePresetIds: ["feature-cards-bold-colors", "testimonials-statement-cards"],
|
|
23524
|
-
|
|
24318
|
+
footerLookRecipes: { "footer-links-row": {
|
|
24319
|
+
arrangement: "simple",
|
|
24320
|
+
ground: {
|
|
24321
|
+
kind: "token",
|
|
24322
|
+
token: "surface"
|
|
24323
|
+
},
|
|
24324
|
+
nav: {
|
|
24325
|
+
weight: "medium",
|
|
24326
|
+
colorToken: "text",
|
|
24327
|
+
hoverColorToken: "primary",
|
|
24328
|
+
typography: "body"
|
|
24329
|
+
},
|
|
24330
|
+
legal: { kind: "integrated" },
|
|
24331
|
+
brandAlign: "start"
|
|
24332
|
+
} },
|
|
24333
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23525
24334
|
buttonStyleChoices: [
|
|
23526
24335
|
buttonChoice("joy-stamp"),
|
|
23527
24336
|
buttonChoice("ink-stamp"),
|
|
@@ -23573,7 +24382,7 @@ const curatedSiteStyles = [
|
|
|
23573
24382
|
},
|
|
23574
24383
|
testimonialQuote: serifDisplayQuote
|
|
23575
24384
|
},
|
|
23576
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24385
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23577
24386
|
buttonStyleChoices: [
|
|
23578
24387
|
buttonChoice("fulcrum"),
|
|
23579
24388
|
buttonChoice("editorial-link"),
|
|
@@ -23650,7 +24459,7 @@ const curatedSiteStyles = [
|
|
|
23650
24459
|
"faq-base-accordion",
|
|
23651
24460
|
"booking-brand-band"
|
|
23652
24461
|
],
|
|
23653
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24462
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23654
24463
|
buttonStyleChoices: [
|
|
23655
24464
|
buttonChoice("quiet-arrow", void 0, { secondaryTreatment: "solid-accent" }),
|
|
23656
24465
|
buttonChoice("flat-ink"),
|
|
@@ -23688,7 +24497,22 @@ const curatedSiteStyles = [
|
|
|
23688
24497
|
accordions: boldBorderedAccordionSystem,
|
|
23689
24498
|
testimonialQuote: accentGlyphQuote
|
|
23690
24499
|
},
|
|
23691
|
-
|
|
24500
|
+
footerLookRecipes: { "footer-links-row": {
|
|
24501
|
+
arrangement: "simple",
|
|
24502
|
+
ground: {
|
|
24503
|
+
kind: "token",
|
|
24504
|
+
token: "surface"
|
|
24505
|
+
},
|
|
24506
|
+
nav: {
|
|
24507
|
+
weight: "medium",
|
|
24508
|
+
colorToken: "text",
|
|
24509
|
+
hoverColorToken: "primary",
|
|
24510
|
+
typography: "body"
|
|
24511
|
+
},
|
|
24512
|
+
legal: { kind: "integrated" },
|
|
24513
|
+
brandAlign: "start"
|
|
24514
|
+
} },
|
|
24515
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23692
24516
|
buttonStyleChoices: [
|
|
23693
24517
|
buttonChoice("offset-block"),
|
|
23694
24518
|
buttonChoice("ink-stamp"),
|
|
@@ -23727,8 +24551,29 @@ const curatedSiteStyles = [
|
|
|
23727
24551
|
accordions: warmInsetAccordionSystem,
|
|
23728
24552
|
testimonialQuote: serifDisplayQuote
|
|
23729
24553
|
},
|
|
23730
|
-
|
|
24554
|
+
footerLookRecipes: { "footer-centred-name": {
|
|
24555
|
+
arrangement: "centred",
|
|
24556
|
+
ground: {
|
|
24557
|
+
kind: "style-surface",
|
|
24558
|
+
surface: "deep"
|
|
24559
|
+
},
|
|
24560
|
+
nav: {
|
|
24561
|
+
weight: "regular",
|
|
24562
|
+
colorToken: "text",
|
|
24563
|
+
hoverColorToken: "primary",
|
|
24564
|
+
typography: "heading"
|
|
24565
|
+
},
|
|
24566
|
+
legal: {
|
|
24567
|
+
kind: "separate",
|
|
24568
|
+
bar: null
|
|
24569
|
+
},
|
|
24570
|
+
brandAlign: "center"
|
|
24571
|
+
} },
|
|
24572
|
+
recommendedFooterLookIds: ["footer-centred-name", "footer-links-row"],
|
|
23731
24573
|
buttonStyleChoices: [
|
|
24574
|
+
buttonChoice("gilt-slab"),
|
|
24575
|
+
buttonChoice("hairline-tab"),
|
|
24576
|
+
buttonChoice("marquee"),
|
|
23732
24577
|
buttonChoice("ringed-pill"),
|
|
23733
24578
|
buttonChoice("earth-pill"),
|
|
23734
24579
|
buttonChoice("editorial-link")
|
|
@@ -23763,7 +24608,7 @@ const curatedSiteStyles = [
|
|
|
23763
24608
|
accordions: editorialDividedAccordionSystem,
|
|
23764
24609
|
testimonialQuote: serifDisplayQuote
|
|
23765
24610
|
},
|
|
23766
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24611
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23767
24612
|
buttonStyleChoices: [
|
|
23768
24613
|
buttonChoice("flat-ink", void 0, { corners: "square" }),
|
|
23769
24614
|
buttonChoice("editorial-link"),
|
|
@@ -23791,6 +24636,7 @@ function curatedStyleTemplate(input) {
|
|
|
23791
24636
|
}
|
|
23792
24637
|
curatedSiteStyles.forEach((style) => {
|
|
23793
24638
|
if (style.looks.kind === "offers") validateLookFallbacks(style.looks);
|
|
24639
|
+
(/* @__PURE__ */ new Set([...Object.values(style.footerLookRecipes ?? {}), ...style.recommendedFooterLookIds.map((id) => resolveFooterLookRecipe(style, id))])).forEach((recipe) => validateFooterRecipeSurfaces(style, recipe));
|
|
23794
24640
|
});
|
|
23795
24641
|
//#endregion
|
|
23796
24642
|
//#region ../theme-core/src/site-styles/effectiveArrangement.ts
|
|
@@ -23888,29 +24734,6 @@ const blockDesignFallback = {
|
|
|
23888
24734
|
};
|
|
23889
24735
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
23890
24736
|
//#endregion
|
|
23891
|
-
//#region ../theme-core/src/header/rootPaint.ts
|
|
23892
|
-
/** The nav container takes precedence when a floating header also has one. */
|
|
23893
|
-
function headerRootPaint(header) {
|
|
23894
|
-
const navContainerType = header?.navContainer?.type ?? "none";
|
|
23895
|
-
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
23896
|
-
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
23897
|
-
}
|
|
23898
|
-
//#endregion
|
|
23899
|
-
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
23900
|
-
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
23901
|
-
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
23902
|
-
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
23903
|
-
function parseSiteChromeBackgroundColorToken(value) {
|
|
23904
|
-
const token = parseBackgroundAppearanceColorToken(value);
|
|
23905
|
-
return token ? token : null;
|
|
23906
|
-
}
|
|
23907
|
-
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
23908
|
-
return tokenNames.flatMap((name) => {
|
|
23909
|
-
const token = parseSiteChromeBackgroundColorToken(name);
|
|
23910
|
-
return token ? [token] : [];
|
|
23911
|
-
});
|
|
23912
|
-
}
|
|
23913
|
-
//#endregion
|
|
23914
24737
|
//#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
|
|
23915
24738
|
const headerNavTypographyPreferenceValues = [
|
|
23916
24739
|
"inherit",
|
|
@@ -24026,21 +24849,6 @@ z.object({
|
|
|
24026
24849
|
}).strict();
|
|
24027
24850
|
//#endregion
|
|
24028
24851
|
//#region ../theme-core/src/site-styles/headerPreferencesPersistence.ts
|
|
24029
|
-
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
24030
|
-
const token = parseSiteChromeBackgroundColorToken(value);
|
|
24031
|
-
if (token === null) {
|
|
24032
|
-
ctx.addIssue({
|
|
24033
|
-
code: "custom",
|
|
24034
|
-
message: "Unknown site chrome background colour token"
|
|
24035
|
-
});
|
|
24036
|
-
return z.NEVER;
|
|
24037
|
-
}
|
|
24038
|
-
return token;
|
|
24039
|
-
});
|
|
24040
|
-
const backgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
24041
|
-
kind: z.literal("color"),
|
|
24042
|
-
token: backgroundColorTokenSchema
|
|
24043
|
-
}).strict()]);
|
|
24044
24852
|
const logoTextIntentSchema = z.object({
|
|
24045
24853
|
mobileMaxWidth: z.enum([
|
|
24046
24854
|
"xs",
|
|
@@ -24066,7 +24874,7 @@ const headerPreferencesShape = {
|
|
|
24066
24874
|
navFontRole: z.enum(headerNavTypographyPreferenceValues),
|
|
24067
24875
|
navTextSize: z.enum(headerNavFontSizePreferenceValues),
|
|
24068
24876
|
interactionPalette: z.union([z.literal("recommended"), z.enum(headerInteractionPaletteValues)]),
|
|
24069
|
-
background:
|
|
24877
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
24070
24878
|
structure: structureSchema
|
|
24071
24879
|
};
|
|
24072
24880
|
z.object(headerPreferencesShape).strict();
|
|
@@ -24075,167 +24883,6 @@ z.object(headerPreferencesShape).omit({
|
|
|
24075
24883
|
structure: true
|
|
24076
24884
|
}).strict();
|
|
24077
24885
|
//#endregion
|
|
24078
|
-
//#region ../theme-core/src/navigation/presets.ts
|
|
24079
|
-
/**
|
|
24080
|
-
* Built-in nav link style presets
|
|
24081
|
-
*
|
|
24082
|
-
* Each preset uses composable effects to achieve its look.
|
|
24083
|
-
*/
|
|
24084
|
-
const NAV_LINK_PRESETS = {
|
|
24085
|
-
/**
|
|
24086
|
-
* Minimal - subtle color change on hover
|
|
24087
|
-
*/
|
|
24088
|
-
minimal: {
|
|
24089
|
-
name: "Minimal",
|
|
24090
|
-
typography: "body",
|
|
24091
|
-
fontWeight: "medium",
|
|
24092
|
-
textTransform: "none",
|
|
24093
|
-
italic: false,
|
|
24094
|
-
colorToken: "text",
|
|
24095
|
-
hoverColorToken: "primary",
|
|
24096
|
-
padding: "none",
|
|
24097
|
-
borderRadius: "none",
|
|
24098
|
-
effects: { hover: [{
|
|
24099
|
-
effectId: "text-color-change",
|
|
24100
|
-
options: { hoverColorToken: "primary" }
|
|
24101
|
-
}] }
|
|
24102
|
-
},
|
|
24103
|
-
/**
|
|
24104
|
-
* Underline - static underline appears on hover
|
|
24105
|
-
*/
|
|
24106
|
-
underline: {
|
|
24107
|
-
name: "Underline",
|
|
24108
|
-
typography: "body",
|
|
24109
|
-
fontWeight: "medium",
|
|
24110
|
-
textTransform: "none",
|
|
24111
|
-
italic: false,
|
|
24112
|
-
colorToken: "text",
|
|
24113
|
-
padding: "none",
|
|
24114
|
-
borderRadius: "none",
|
|
24115
|
-
effects: { hover: [{
|
|
24116
|
-
effectId: "nav-underline",
|
|
24117
|
-
options: { style: "static" }
|
|
24118
|
-
}] }
|
|
24119
|
-
},
|
|
24120
|
-
/**
|
|
24121
|
-
* Underline Grow - animated underline grows from center on hover
|
|
24122
|
-
*/
|
|
24123
|
-
"underline-grow": {
|
|
24124
|
-
name: "Underline Grow",
|
|
24125
|
-
typography: "body",
|
|
24126
|
-
fontWeight: "medium",
|
|
24127
|
-
textTransform: "none",
|
|
24128
|
-
italic: false,
|
|
24129
|
-
colorToken: "text",
|
|
24130
|
-
padding: "none",
|
|
24131
|
-
borderRadius: "none",
|
|
24132
|
-
effects: { hover: [{
|
|
24133
|
-
effectId: "nav-underline",
|
|
24134
|
-
options: { style: "grow" }
|
|
24135
|
-
}] }
|
|
24136
|
-
},
|
|
24137
|
-
/**
|
|
24138
|
-
* Capsule - pill-shaped background on hover
|
|
24139
|
-
*/
|
|
24140
|
-
capsule: {
|
|
24141
|
-
name: "Capsule",
|
|
24142
|
-
typography: "body",
|
|
24143
|
-
fontWeight: "medium",
|
|
24144
|
-
textTransform: "none",
|
|
24145
|
-
italic: false,
|
|
24146
|
-
colorToken: "text",
|
|
24147
|
-
padding: "compact",
|
|
24148
|
-
borderRadius: "full",
|
|
24149
|
-
effects: {
|
|
24150
|
-
hover: [{
|
|
24151
|
-
effectId: "background-on-hover-alpha",
|
|
24152
|
-
options: {
|
|
24153
|
-
colorToken: "primary",
|
|
24154
|
-
opacity: 10
|
|
24155
|
-
}
|
|
24156
|
-
}],
|
|
24157
|
-
active: [{
|
|
24158
|
-
effectId: "background-on-hover-alpha",
|
|
24159
|
-
options: {
|
|
24160
|
-
colorToken: "primary",
|
|
24161
|
-
opacity: 15
|
|
24162
|
-
}
|
|
24163
|
-
}]
|
|
24164
|
-
}
|
|
24165
|
-
},
|
|
24166
|
-
/**
|
|
24167
|
-
* Solid - solid background color on hover
|
|
24168
|
-
*/
|
|
24169
|
-
solid: {
|
|
24170
|
-
name: "Solid",
|
|
24171
|
-
typography: "body",
|
|
24172
|
-
fontWeight: "medium",
|
|
24173
|
-
textTransform: "none",
|
|
24174
|
-
italic: false,
|
|
24175
|
-
colorToken: "text",
|
|
24176
|
-
padding: "compact",
|
|
24177
|
-
borderRadius: "none",
|
|
24178
|
-
effects: {
|
|
24179
|
-
hover: [{
|
|
24180
|
-
effectId: "background-on-hover",
|
|
24181
|
-
options: {
|
|
24182
|
-
colorToken: "primary",
|
|
24183
|
-
textColorToken: "primaryForeground"
|
|
24184
|
-
}
|
|
24185
|
-
}],
|
|
24186
|
-
active: [{
|
|
24187
|
-
effectId: "background-on-hover",
|
|
24188
|
-
options: {
|
|
24189
|
-
colorToken: "primary",
|
|
24190
|
-
textColorToken: "primaryForeground"
|
|
24191
|
-
}
|
|
24192
|
-
}]
|
|
24193
|
-
}
|
|
24194
|
-
},
|
|
24195
|
-
/**
|
|
24196
|
-
* Scale - gentle scale-up on hover
|
|
24197
|
-
*/
|
|
24198
|
-
scale: {
|
|
24199
|
-
name: "Scale",
|
|
24200
|
-
typography: "body",
|
|
24201
|
-
fontWeight: "medium",
|
|
24202
|
-
textTransform: "none",
|
|
24203
|
-
italic: false,
|
|
24204
|
-
colorToken: "text",
|
|
24205
|
-
padding: "none",
|
|
24206
|
-
borderRadius: "none",
|
|
24207
|
-
effects: { hover: [{
|
|
24208
|
-
effectId: "scale-up",
|
|
24209
|
-
options: { scale: 1.05 }
|
|
24210
|
-
}] }
|
|
24211
|
-
},
|
|
24212
|
-
/**
|
|
24213
|
-
* Frosted - semi-transparent glass-like background
|
|
24214
|
-
*/
|
|
24215
|
-
frosted: {
|
|
24216
|
-
name: "Frosted",
|
|
24217
|
-
typography: "body",
|
|
24218
|
-
fontWeight: "medium",
|
|
24219
|
-
textTransform: "none",
|
|
24220
|
-
italic: false,
|
|
24221
|
-
colorToken: "text",
|
|
24222
|
-
padding: "compact",
|
|
24223
|
-
borderRadius: "md",
|
|
24224
|
-
effects: {
|
|
24225
|
-
base: [{ effectId: "nav-frosted-base" }],
|
|
24226
|
-
hover: [{ effectId: "nav-frosted-hover" }],
|
|
24227
|
-
active: [{ effectId: "nav-frosted-active" }]
|
|
24228
|
-
}
|
|
24229
|
-
}
|
|
24230
|
-
};
|
|
24231
|
-
/**
|
|
24232
|
-
* Get a nav link style preset by ID
|
|
24233
|
-
*/
|
|
24234
|
-
function getNavLinkPreset(presetId) {
|
|
24235
|
-
return NAV_LINK_PRESETS[presetId];
|
|
24236
|
-
}
|
|
24237
|
-
Object.keys(NAV_LINK_PRESETS);
|
|
24238
|
-
//#endregion
|
|
24239
24886
|
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
24240
24887
|
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
24241
24888
|
const navStyle = header.navStyle ?? "minimal";
|
|
@@ -24480,28 +25127,6 @@ z.object({
|
|
|
24480
25127
|
motion: z.enum(themeTokenRecipeOptions.motion)
|
|
24481
25128
|
});
|
|
24482
25129
|
//#endregion
|
|
24483
|
-
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
24484
|
-
function effectiveFooterNavLinkStyle(footer) {
|
|
24485
|
-
if (!footer) return null;
|
|
24486
|
-
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
24487
|
-
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
24488
|
-
if (!basePreset) return null;
|
|
24489
|
-
return {
|
|
24490
|
-
...basePreset,
|
|
24491
|
-
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
24492
|
-
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
24493
|
-
};
|
|
24494
|
-
}
|
|
24495
|
-
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
24496
|
-
if (!footer) return {};
|
|
24497
|
-
const style = effectiveFooterNavLinkStyle(footer);
|
|
24498
|
-
return {
|
|
24499
|
-
text: footer.background?.textColor,
|
|
24500
|
-
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
24501
|
-
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
24502
|
-
};
|
|
24503
|
-
}
|
|
24504
|
-
//#endregion
|
|
24505
25130
|
//#region ../theme-core/src/siteChromeOverlayClearance.ts
|
|
24506
25131
|
const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
24507
25132
|
//#endregion
|
|
@@ -27480,7 +28105,12 @@ function resolveRuntimeSectionSurface(value, context, options) {
|
|
|
27480
28105
|
}
|
|
27481
28106
|
function arrangementSurfaceInk(foreground, context) {
|
|
27482
28107
|
if (context.data?._lookSlots === void 0) return {};
|
|
27483
|
-
|
|
28108
|
+
return surfaceInkStyles(foreground, context.theme.palette);
|
|
28109
|
+
}
|
|
28110
|
+
/** Decoration roles already resolved by the surface owner, shared with footer arrangements. */
|
|
28111
|
+
function surfaceInkStyles(foreground, palette) {
|
|
28112
|
+
if (foreground.kind === "unknown") return {};
|
|
28113
|
+
const decorations = surfaceDecorationColors(foreground, palette);
|
|
27484
28114
|
return {
|
|
27485
28115
|
"--rb-surface-muted-color": foreground.roles.muted ?? foreground.roles.text,
|
|
27486
28116
|
...decorations ? {
|
|
@@ -28091,48 +28721,50 @@ const boxStylesTransforms = [
|
|
|
28091
28721
|
];
|
|
28092
28722
|
//#endregion
|
|
28093
28723
|
//#region ../blocks/src/system/node/fragments/responsiveTwoColumn.ts
|
|
28094
|
-
|
|
28095
|
-
|
|
28096
|
-
|
|
28097
|
-
|
|
28098
|
-
|
|
28099
|
-
|
|
28100
|
-
|
|
28101
|
-
|
|
28102
|
-
|
|
28103
|
-
|
|
28104
|
-
|
|
28105
|
-
fallback: baseClass
|
|
28106
|
-
} } };
|
|
28107
|
-
if (gapFrom) props.style = { gap: { $bind: {
|
|
28108
|
-
from: gapFrom,
|
|
28109
|
-
transforms: [{
|
|
28110
|
-
id: "boxStyles.semanticGapValue",
|
|
28111
|
-
options: { fallback: gapFallback }
|
|
28112
|
-
}],
|
|
28113
|
-
fallback: GAP_VALUE_MAP[gapFallback]
|
|
28114
|
-
} } };
|
|
28115
|
-
return el("div", props, [el("div", {
|
|
28116
|
-
className: imageWrapperClassName,
|
|
28117
|
-
style: { flexBasis: { $bind: {
|
|
28118
|
-
from: ratioFrom,
|
|
28724
|
+
/** The shared two-column shell keeps Look hooks opt-in and absent for legacy content. */
|
|
28725
|
+
function responsiveTwoColumn(config) {
|
|
28726
|
+
return el("div", twoColumnProps(config), [twoColumnWrapper(config, "image", config.image), twoColumnWrapper(config, "text", config.text)]);
|
|
28727
|
+
}
|
|
28728
|
+
function twoColumnProps(config) {
|
|
28729
|
+
const base = `${config.containerClassName ?? "rb-flex rb-flex-col rb-md-flex-row"} ${config.gapFrom ? "" : config.gapClassName ?? "rb-gap-6"}`.trim();
|
|
28730
|
+
const fallback = config.gapFallback ?? "comfortable";
|
|
28731
|
+
return {
|
|
28732
|
+
...config.lookSlots ? lookSlot("frame") : {},
|
|
28733
|
+
className: { $bind: {
|
|
28734
|
+
from: config.imagePositionFrom,
|
|
28119
28735
|
transforms: [{
|
|
28120
|
-
id: "ui.
|
|
28121
|
-
options: {
|
|
28736
|
+
id: "ui.twoColumnContainerClass",
|
|
28737
|
+
options: {
|
|
28738
|
+
base,
|
|
28739
|
+
reverseClass: "rb-md-flex-row-reverse"
|
|
28740
|
+
}
|
|
28122
28741
|
}],
|
|
28123
|
-
fallback:
|
|
28124
|
-
} }
|
|
28125
|
-
|
|
28126
|
-
|
|
28742
|
+
fallback: base
|
|
28743
|
+
} },
|
|
28744
|
+
...config.gapFrom ? { style: { gap: { $bind: {
|
|
28745
|
+
from: config.gapFrom,
|
|
28746
|
+
transforms: [{
|
|
28747
|
+
id: "boxStyles.semanticGapValue",
|
|
28748
|
+
options: { fallback }
|
|
28749
|
+
}],
|
|
28750
|
+
fallback: GAP_VALUE_MAP[fallback]
|
|
28751
|
+
} } } } : {}
|
|
28752
|
+
};
|
|
28753
|
+
}
|
|
28754
|
+
function twoColumnWrapper(config, side, child) {
|
|
28755
|
+
const className = side === "image" ? config.imageWrapperClassName ?? "rb-w-full rb-shrink-0" : config.textWrapperClassName ?? "rb-w-full rb-min-w-0 rb-flex-1";
|
|
28756
|
+
return el("div", {
|
|
28757
|
+
...config.lookSlots ? lookSlot(side === "image" ? "media" : "copy") : {},
|
|
28758
|
+
className,
|
|
28127
28759
|
style: { flexBasis: { $bind: {
|
|
28128
|
-
from: ratioFrom,
|
|
28760
|
+
from: config.ratioFrom,
|
|
28129
28761
|
transforms: [{
|
|
28130
28762
|
id: "ui.twoColumnFlexBasis",
|
|
28131
|
-
options: { side
|
|
28763
|
+
options: { side }
|
|
28132
28764
|
}],
|
|
28133
28765
|
fallback: "50%"
|
|
28134
28766
|
} } }
|
|
28135
|
-
}, [
|
|
28767
|
+
}, [child]);
|
|
28136
28768
|
}
|
|
28137
28769
|
//#endregion
|
|
28138
28770
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
@@ -28319,6 +28951,47 @@ function sectionState(opts) {
|
|
|
28319
28951
|
})]);
|
|
28320
28952
|
}
|
|
28321
28953
|
//#endregion
|
|
28954
|
+
//#region ../blocks/src/system/node/fragments/sectionHead.ts
|
|
28955
|
+
const recoverEmptyHeadingWhenActive = {
|
|
28956
|
+
kind: "recover-empty-when-active",
|
|
28957
|
+
placeholder: "Add heading"
|
|
28958
|
+
};
|
|
28959
|
+
const recoverEmptyDescriptionWhenActive = {
|
|
28960
|
+
kind: "recover-empty-when-active",
|
|
28961
|
+
placeholder: "Add description"
|
|
28962
|
+
};
|
|
28963
|
+
function sectionHeaderLayoutNodes(options = {}) {
|
|
28964
|
+
const headingNode = text({
|
|
28965
|
+
as: "h2",
|
|
28966
|
+
...lookSlot("heading")
|
|
28967
|
+
}, bind("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
|
|
28968
|
+
const descriptionNode = richText({
|
|
28969
|
+
className: "rb-prose rb-max-w-none",
|
|
28970
|
+
...lookSlot("intro")
|
|
28971
|
+
}, bind("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
|
|
28972
|
+
if (options.splitClassName) return [el("div", {
|
|
28973
|
+
className: options.splitClassName,
|
|
28974
|
+
...lookSlot("head")
|
|
28975
|
+
}, [headingNode, descriptionNode])];
|
|
28976
|
+
return [headingNode, descriptionNode];
|
|
28977
|
+
}
|
|
28978
|
+
/** Shared optional section copy. Existing consumers keep their description ID. */
|
|
28979
|
+
const sectionHeaderFields = (defaultHeading, introLabel = "Description") => [{
|
|
28980
|
+
id: "heading",
|
|
28981
|
+
type: "text",
|
|
28982
|
+
label: "Heading",
|
|
28983
|
+
description: "Main heading for the section",
|
|
28984
|
+
required: false,
|
|
28985
|
+
multiline: false,
|
|
28986
|
+
...defaultHeading === void 0 ? {} : { defaultValue: defaultHeading }
|
|
28987
|
+
}, {
|
|
28988
|
+
id: "description",
|
|
28989
|
+
type: "richText",
|
|
28990
|
+
label: introLabel,
|
|
28991
|
+
description: "Optional introductory text",
|
|
28992
|
+
required: false
|
|
28993
|
+
}];
|
|
28994
|
+
//#endregion
|
|
28322
28995
|
//#region ../blocks/src/system/fragments/types.ts
|
|
28323
28996
|
const FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
28324
28997
|
const FIELD_ID_PATTERN = /^[a-z][a-zA-Z0-9_-]*$/;
|
|
@@ -28651,6 +29324,7 @@ const bodyCopyFragment = defineFragment({
|
|
|
28651
29324
|
],
|
|
28652
29325
|
layout: stack({
|
|
28653
29326
|
gap: "md",
|
|
29327
|
+
...lookSlot("copy"),
|
|
28654
29328
|
className: "body-copy-container",
|
|
28655
29329
|
align: { $bind: {
|
|
28656
29330
|
from: "content.alignment",
|
|
@@ -28659,6 +29333,7 @@ const bodyCopyFragment = defineFragment({
|
|
|
28659
29333
|
} }
|
|
28660
29334
|
}, [text({
|
|
28661
29335
|
as: "h2",
|
|
29336
|
+
...lookSlot("heading"),
|
|
28662
29337
|
className: { $bind: {
|
|
28663
29338
|
from: "content.alignment",
|
|
28664
29339
|
transforms: [{
|
|
@@ -28667,14 +29342,22 @@ const bodyCopyFragment = defineFragment({
|
|
|
28667
29342
|
}],
|
|
28668
29343
|
fallback: "body-copy-heading"
|
|
28669
29344
|
} }
|
|
28670
|
-
}, when("content.heading"
|
|
28671
|
-
|
|
28672
|
-
|
|
28673
|
-
|
|
28674
|
-
|
|
28675
|
-
}
|
|
28676
|
-
|
|
28677
|
-
|
|
29345
|
+
}, when("content.heading", { authoringPresence: {
|
|
29346
|
+
kind: "recover-empty-when-active",
|
|
29347
|
+
placeholder: "Add heading"
|
|
29348
|
+
} }), bind("content.heading")), richText({
|
|
29349
|
+
...lookSlot("item-body"),
|
|
29350
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } },
|
|
29351
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
29352
|
+
className: { $bind: {
|
|
29353
|
+
from: "content.alignment",
|
|
29354
|
+
transforms: [{
|
|
29355
|
+
id: "ui.bodyClassFromAlignment",
|
|
29356
|
+
options: { base: "body-copy-body rb-prose rb-max-w-none" }
|
|
29357
|
+
}],
|
|
29358
|
+
fallback: "body-copy-body rb-prose rb-max-w-none"
|
|
29359
|
+
} }
|
|
29360
|
+
}, bind("content.body"))])
|
|
28678
29361
|
});
|
|
28679
29362
|
//#endregion
|
|
28680
29363
|
//#region ../blocks/src/system/fragments/library/heroCopy.ts
|
|
@@ -29690,8 +30373,19 @@ const formCopyFragment = defineFragment({
|
|
|
29690
30373
|
}],
|
|
29691
30374
|
layout: [text({
|
|
29692
30375
|
as: "h2",
|
|
30376
|
+
...lookSlot("heading"),
|
|
29693
30377
|
className: "form-copy-title"
|
|
29694
|
-
}, when("content.title"
|
|
30378
|
+
}, when("content.title", { authoringPresence: {
|
|
30379
|
+
kind: "recover-empty-when-active",
|
|
30380
|
+
placeholder: "Add heading"
|
|
30381
|
+
} }), bind("content.title")), richText({
|
|
30382
|
+
className: "form-copy-intro rb-prose rb-max-w-none",
|
|
30383
|
+
...lookSlot("intro"),
|
|
30384
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } }
|
|
30385
|
+
}, when("content.intro", { authoringPresence: {
|
|
30386
|
+
kind: "recover-empty-when-active",
|
|
30387
|
+
placeholder: "Add introduction"
|
|
30388
|
+
} }), bind("content.intro"))]
|
|
29695
30389
|
});
|
|
29696
30390
|
//#endregion
|
|
29697
30391
|
//#region ../blocks/src/system/helpers/api-bindings.ts
|
|
@@ -29740,6 +30434,7 @@ const formEmbedFragment = defineFragment({
|
|
|
29740
30434
|
}
|
|
29741
30435
|
],
|
|
29742
30436
|
layout: [form(withApiBindings({
|
|
30437
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
29743
30438
|
spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } },
|
|
29744
30439
|
submitLabel: { $bind: { from: "submitLabel" } },
|
|
29745
30440
|
successMessage: { $bind: { from: "successMessage" } }
|
|
@@ -29993,8 +30688,18 @@ const newsletterCopyFragment = defineFragment({
|
|
|
29993
30688
|
}],
|
|
29994
30689
|
layout: [text({
|
|
29995
30690
|
as: "h2",
|
|
29996
|
-
className: "newsletter-copy-title"
|
|
29997
|
-
|
|
30691
|
+
className: "newsletter-copy-title",
|
|
30692
|
+
...lookSlot("heading")
|
|
30693
|
+
}, when("content.title", { authoringPresence: {
|
|
30694
|
+
kind: "recover-empty-when-active",
|
|
30695
|
+
placeholder: "Add heading"
|
|
30696
|
+
} }), bind("content.title")), richText({
|
|
30697
|
+
className: "newsletter-copy-subtitle rb-prose rb-max-w-none",
|
|
30698
|
+
...lookSlot("intro")
|
|
30699
|
+
}, when("content.subtitle", { authoringPresence: {
|
|
30700
|
+
kind: "recover-empty-when-active",
|
|
30701
|
+
placeholder: "Add introduction"
|
|
30702
|
+
} }), bind("content.subtitle"))]
|
|
29998
30703
|
});
|
|
29999
30704
|
//#endregion
|
|
30000
30705
|
//#region ../blocks/src/system/fragments/library/newsletterForm.ts
|
|
@@ -30062,6 +30767,7 @@ const newsletterFormFragment = defineFragment({
|
|
|
30062
30767
|
}
|
|
30063
30768
|
],
|
|
30064
30769
|
layout: [el("newsletter-form", withApiBindings({
|
|
30770
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
30065
30771
|
source: { $bind: {
|
|
30066
30772
|
from: "mailingListSource",
|
|
30067
30773
|
fallback: "block"
|
|
@@ -31554,18 +32260,11 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
31554
32260
|
//#endregion
|
|
31555
32261
|
//#region ../blocks/src/system/blocks/body-text.ts
|
|
31556
32262
|
const bodyCopyComposition = composeFragments([{ fragment: bodyCopyFragment }]);
|
|
31557
|
-
const
|
|
31558
|
-
children: stack({
|
|
31559
|
-
|
|
31560
|
-
|
|
31561
|
-
})
|
|
31562
|
-
const introLayout = styledSection({
|
|
31563
|
-
children: stack({ className: "rb-container" }, bodyCopyComposition.layout),
|
|
31564
|
-
spacing: "medium",
|
|
31565
|
-
baseClass: ""
|
|
31566
|
-
});
|
|
31567
|
-
const narrowLayout = styledSection({
|
|
31568
|
-
children: stack({ className: "rb-container" }, bodyCopyComposition.layout),
|
|
32263
|
+
const bodyTextLayout = styledSection({
|
|
32264
|
+
children: stack({
|
|
32265
|
+
className: "rb-container",
|
|
32266
|
+
...lookSlot("frame")
|
|
32267
|
+
}, bodyCopyComposition.layout),
|
|
31569
32268
|
spacing: "medium",
|
|
31570
32269
|
baseClass: ""
|
|
31571
32270
|
});
|
|
@@ -31579,11 +32278,11 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
31579
32278
|
fragment: bodyCopyFragment,
|
|
31580
32279
|
fieldPriority: 0
|
|
31581
32280
|
}],
|
|
31582
|
-
layout:
|
|
32281
|
+
layout: bodyTextLayout,
|
|
31583
32282
|
variants: {
|
|
31584
|
-
prose:
|
|
31585
|
-
intro:
|
|
31586
|
-
narrow:
|
|
32283
|
+
prose: bodyTextLayout,
|
|
32284
|
+
intro: bodyTextLayout,
|
|
32285
|
+
narrow: bodyTextLayout
|
|
31587
32286
|
},
|
|
31588
32287
|
variantMeaning: { kind: "arrangement" },
|
|
31589
32288
|
defaultVariant: "prose",
|
|
@@ -32031,6 +32730,52 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
32031
32730
|
styleTokens: { spacing: "md" }
|
|
32032
32731
|
}) };
|
|
32033
32732
|
//#endregion
|
|
32733
|
+
//#region ../blocks/src/system/runtime/lookSurfaces.ts
|
|
32734
|
+
const isPlainObject$2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
32735
|
+
const lookListPresentationSchemaShape = {
|
|
32736
|
+
sectionAction: z.object({
|
|
32737
|
+
label: z.string(),
|
|
32738
|
+
href: z.string()
|
|
32739
|
+
}).optional(),
|
|
32740
|
+
actionSize: z.enum([
|
|
32741
|
+
"sm",
|
|
32742
|
+
"md",
|
|
32743
|
+
"lg"
|
|
32744
|
+
]).optional(),
|
|
32745
|
+
itemActionStyle: z.enum(["button", "link"]).optional(),
|
|
32746
|
+
itemRoles: z.object({
|
|
32747
|
+
container: z.enum([
|
|
32748
|
+
"card",
|
|
32749
|
+
"statement",
|
|
32750
|
+
"highlight"
|
|
32751
|
+
]).optional(),
|
|
32752
|
+
items: z.enum([
|
|
32753
|
+
"card",
|
|
32754
|
+
"statement",
|
|
32755
|
+
"highlight"
|
|
32756
|
+
]).optional(),
|
|
32757
|
+
at: z.partialRecord(z.enum([
|
|
32758
|
+
"first",
|
|
32759
|
+
"last",
|
|
32760
|
+
"middle",
|
|
32761
|
+
"odd",
|
|
32762
|
+
"even"
|
|
32763
|
+
]), z.enum([
|
|
32764
|
+
"card",
|
|
32765
|
+
"statement",
|
|
32766
|
+
"highlight"
|
|
32767
|
+
])).optional()
|
|
32768
|
+
}).optional(),
|
|
32769
|
+
roleSurfaces: z.record(z.enum([
|
|
32770
|
+
"card",
|
|
32771
|
+
"statement",
|
|
32772
|
+
"highlight"
|
|
32773
|
+
]), z.custom((value) => isPlainObject$2(value) && (value.kind === "inherit" || value.kind === "owned"))).optional(),
|
|
32774
|
+
panelHeading: z.string().optional(),
|
|
32775
|
+
lookSlots: z.partialRecord(z.enum(arrangementSlotNames), z.enum(arrangementSlotNames)).optional(),
|
|
32776
|
+
itemSurfaces: z.record(z.string(), z.custom((value) => isPlainObject$2(value) && (value.kind === "inherit" || value.kind === "owned"))).optional()
|
|
32777
|
+
};
|
|
32778
|
+
//#endregion
|
|
32034
32779
|
//#region ../blocks/src/contracts/runtime.ts
|
|
32035
32780
|
function decodeSuccess(value) {
|
|
32036
32781
|
return {
|
|
@@ -32137,6 +32882,7 @@ const formFieldGroupSchema = z.discriminatedUnion("type", [z.object({
|
|
|
32137
32882
|
fields: z.tuple([formFieldSchema, formFieldSchema])
|
|
32138
32883
|
})]);
|
|
32139
32884
|
const formSourceSchema = z.object({
|
|
32885
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
32140
32886
|
value: formRecordSchema.optional(),
|
|
32141
32887
|
siteId: z.string().optional(),
|
|
32142
32888
|
apiBaseUrl: z.string().optional(),
|
|
@@ -32146,6 +32892,7 @@ const formSourceSchema = z.object({
|
|
|
32146
32892
|
spamProtectionEnabled: z.boolean().optional()
|
|
32147
32893
|
});
|
|
32148
32894
|
const formDisplaySchema = z.object({
|
|
32895
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
32149
32896
|
kind: z.literal("form"),
|
|
32150
32897
|
state: z.enum(["missing", "ready"]),
|
|
32151
32898
|
className: z.string().nullable(),
|
|
@@ -32166,17 +32913,30 @@ z.object({
|
|
|
32166
32913
|
});
|
|
32167
32914
|
function buildFormDisplay(source) {
|
|
32168
32915
|
const form = source.value ?? null;
|
|
32169
|
-
const fields = form
|
|
32170
|
-
const groups = Array.isArray(fields) ? groupFormFields(fields) : [];
|
|
32916
|
+
const fields = formDisplayFields(form);
|
|
32171
32917
|
return {
|
|
32172
32918
|
kind: "form",
|
|
32173
|
-
|
|
32919
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
32920
|
+
state: fields.state,
|
|
32174
32921
|
className: source.className ?? null,
|
|
32175
|
-
formId:
|
|
32922
|
+
formId: fields.formId,
|
|
32176
32923
|
submitLabel: source.submitLabel?.trim() || "Submit",
|
|
32177
32924
|
successMessage: source.successMessage ?? null,
|
|
32178
32925
|
form,
|
|
32179
|
-
groups
|
|
32926
|
+
groups: fields.groups
|
|
32927
|
+
};
|
|
32928
|
+
}
|
|
32929
|
+
function formDisplayFields(form) {
|
|
32930
|
+
if (!form) return {
|
|
32931
|
+
state: "missing",
|
|
32932
|
+
formId: null,
|
|
32933
|
+
groups: []
|
|
32934
|
+
};
|
|
32935
|
+
const fields = form.schemaJson?.fields;
|
|
32936
|
+
return {
|
|
32937
|
+
state: "ready",
|
|
32938
|
+
formId: form.id,
|
|
32939
|
+
groups: Array.isArray(fields) ? groupFormFields(fields) : []
|
|
32180
32940
|
};
|
|
32181
32941
|
}
|
|
32182
32942
|
const formBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -32199,18 +32959,27 @@ function fragmentLayoutNode$1(layout) {
|
|
|
32199
32959
|
function isNodeDefinitionArray$1(layout) {
|
|
32200
32960
|
return Array.isArray(layout);
|
|
32201
32961
|
}
|
|
32202
|
-
const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
32962
|
+
const copyLayout = props(lookSlot("head"))(fragmentLayoutNode$1(formCopyFragment.layout));
|
|
32963
|
+
const embedLayout$1 = fragmentLayoutNode$1(formEmbedFragment.layout);
|
|
32203
32964
|
const formSurface = styledContainer({
|
|
32965
|
+
rootProps: lookSlot("panel"),
|
|
32204
32966
|
bindFrom: "_containerStyles",
|
|
32205
32967
|
constrainWidth: false,
|
|
32206
32968
|
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
32207
|
-
children:
|
|
32969
|
+
children: embedLayout$1
|
|
32208
32970
|
});
|
|
32209
32971
|
function createFormLayout(variant) {
|
|
32210
32972
|
if (variant === "two-column") return styledSection({
|
|
32211
|
-
children: el("div", {
|
|
32973
|
+
children: el("div", {
|
|
32974
|
+
className: "rb-container",
|
|
32975
|
+
...lookSlot("layout")
|
|
32976
|
+
}, [el("div", {
|
|
32977
|
+
className: "rb-form-two-column rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start",
|
|
32978
|
+
...lookSlot("frame")
|
|
32979
|
+
}, [stack({
|
|
32212
32980
|
gap: "md",
|
|
32213
|
-
className: "rb-form-copy-column"
|
|
32981
|
+
className: "rb-form-copy-column",
|
|
32982
|
+
...lookSlot("copy")
|
|
32214
32983
|
}, [copyLayout]), formSurface])]),
|
|
32215
32984
|
baseClass: "",
|
|
32216
32985
|
spacing: "medium",
|
|
@@ -32238,6 +33007,15 @@ const formManifest = createBlockManifest({
|
|
|
32238
33007
|
description: "Renders a saved form definition with server-side submit.",
|
|
32239
33008
|
includeContainerStyles: true,
|
|
32240
33009
|
fragments: [{ fragment: formCopyFragment }, { fragment: formEmbedFragment }],
|
|
33010
|
+
additionalFields: [{
|
|
33011
|
+
id: "archFrame",
|
|
33012
|
+
type: "boolean",
|
|
33013
|
+
label: "Arch frame",
|
|
33014
|
+
ui: {
|
|
33015
|
+
intent: "display",
|
|
33016
|
+
hidden: true
|
|
33017
|
+
}
|
|
33018
|
+
}],
|
|
32241
33019
|
layout: formLayout,
|
|
32242
33020
|
variants: {
|
|
32243
33021
|
default: formLayout,
|
|
@@ -32993,7 +33771,7 @@ const heroTitleLengthThresholds = {
|
|
|
32993
33771
|
maxWords: 11
|
|
32994
33772
|
}
|
|
32995
33773
|
};
|
|
32996
|
-
function isPlainObject$
|
|
33774
|
+
function isPlainObject$1(value) {
|
|
32997
33775
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
32998
33776
|
}
|
|
32999
33777
|
function readString(obj, key) {
|
|
@@ -33002,7 +33780,7 @@ function readString(obj, key) {
|
|
|
33002
33780
|
}
|
|
33003
33781
|
function resolveGeneratedHeroLayoutStyles(content) {
|
|
33004
33782
|
const raw = content._heroLayoutStyles;
|
|
33005
|
-
return isPlainObject$
|
|
33783
|
+
return isPlainObject$1(raw) ? raw : null;
|
|
33006
33784
|
}
|
|
33007
33785
|
function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
|
|
33008
33786
|
const explicitValue = readString(content, fallbackKey);
|
|
@@ -33060,7 +33838,7 @@ const heroContentWrapperClassTransform = {
|
|
|
33060
33838
|
summary: "Resolve hero content wrapper className from alignment + max width controls",
|
|
33061
33839
|
schema: z.object({ base: z.string().optional() }),
|
|
33062
33840
|
run: (value, options, context) => {
|
|
33063
|
-
const content = isPlainObject$
|
|
33841
|
+
const content = isPlainObject$1(value) ? value : isPlainObject$1(context.data) ? context.data : {};
|
|
33064
33842
|
const alignment = resolveHeroContentAlignment(content);
|
|
33065
33843
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
33066
33844
|
const typographyScale = resolveHeroTypographyScale(content);
|
|
@@ -33082,7 +33860,7 @@ const heroCtaJustifyTransform = {
|
|
|
33082
33860
|
kind: "string",
|
|
33083
33861
|
summary: "Map hero contentAlignment to CTA row justify value",
|
|
33084
33862
|
run: (value, _options, context) => {
|
|
33085
|
-
const alignment = resolveHeroContentAlignment(isPlainObject$
|
|
33863
|
+
const alignment = resolveHeroContentAlignment(isPlainObject$1(value) ? value : isPlainObject$1(context.data) ? context.data : {});
|
|
33086
33864
|
return alignment === "left" ? "start" : alignment === "right" ? "end" : "center";
|
|
33087
33865
|
}
|
|
33088
33866
|
};
|
|
@@ -33091,7 +33869,7 @@ const heroStackJustifyFromVerticalAlignmentTransform = {
|
|
|
33091
33869
|
kind: "string",
|
|
33092
33870
|
summary: "Map hero verticalAlignment to stack justify value",
|
|
33093
33871
|
run: (value, _options, context) => {
|
|
33094
|
-
const vertical = resolveHeroVerticalAlignment(isPlainObject$
|
|
33872
|
+
const vertical = resolveHeroVerticalAlignment(isPlainObject$1(value) ? value : isPlainObject$1(context.data) ? context.data : {});
|
|
33095
33873
|
return vertical === "top" ? "start" : vertical === "bottom" ? "end" : "center";
|
|
33096
33874
|
}
|
|
33097
33875
|
};
|
|
@@ -33101,7 +33879,7 @@ const heroGridClassFromVerticalAlignmentTransform = {
|
|
|
33101
33879
|
summary: "Append align-items class for hero split layouts based on verticalAlignment",
|
|
33102
33880
|
schema: z.object({ base: z.string() }),
|
|
33103
33881
|
run: (value, options, context) => {
|
|
33104
|
-
const vertical = resolveHeroVerticalAlignment(isPlainObject$
|
|
33882
|
+
const vertical = resolveHeroVerticalAlignment(isPlainObject$1(value) ? value : isPlainObject$1(context.data) ? context.data : {});
|
|
33105
33883
|
const itemsClass = vertical === "top" ? "rb-items-start" : vertical === "bottom" ? "rb-items-end" : "rb-items-center";
|
|
33106
33884
|
return joinClasses$1([options.base, itemsClass]);
|
|
33107
33885
|
}
|
|
@@ -33389,6 +34167,25 @@ function heroHeadlineText(content, policy) {
|
|
|
33389
34167
|
return policy === "look" ? inlineTextToPlainText(coerceInlineTextWithFallback(content.headlineInline, plain)).trim() : plain?.trim() ?? "";
|
|
33390
34168
|
}
|
|
33391
34169
|
//#endregion
|
|
34170
|
+
//#region ../blocks/src/system/transforms/registry/footerArrangement.ts
|
|
34171
|
+
const footerBrandArrangementTransform = {
|
|
34172
|
+
id: "layout.footerBrandArrangement",
|
|
34173
|
+
kind: "string",
|
|
34174
|
+
run: (value) => {
|
|
34175
|
+
const module = asPartialObject(value);
|
|
34176
|
+
return module?.kind === "brand" ? module.slots ? "centred" : "row" : void 0;
|
|
34177
|
+
}
|
|
34178
|
+
};
|
|
34179
|
+
const footerModuleInkStyleTransform = {
|
|
34180
|
+
id: "layout.footerModuleInkStyle",
|
|
34181
|
+
kind: "formatter",
|
|
34182
|
+
run: (value, options) => value === "centred" ? void 0 : textColorStyle(asPartialObject(options)?.opacity === 70 ? "text/70" : "text/80")
|
|
34183
|
+
};
|
|
34184
|
+
/** A centred base without authored bar paint inherits its measured surface line. */
|
|
34185
|
+
function footerBottomBarBorderColorStyle(footer) {
|
|
34186
|
+
return footer?.variant === "centred" && !footer.bottomBar ? { borderColor: "var(--rb-surface-line-color)" } : borderColorStyle(footer?.bottomBar?.borderTop?.colorToken ?? "border");
|
|
34187
|
+
}
|
|
34188
|
+
//#endregion
|
|
33392
34189
|
//#region ../blocks/src/system/runtime/header/runtimeContract.ts
|
|
33393
34190
|
const headerScrollRuntimeSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("none") }), z.object({ kind: z.literal("threshold") })]);
|
|
33394
34191
|
z.object({ scroll: headerScrollRuntimeSchema });
|
|
@@ -33620,6 +34417,7 @@ const footerRootStyleTransform = {
|
|
|
33620
34417
|
}
|
|
33621
34418
|
}
|
|
33622
34419
|
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
|
|
34420
|
+
if (footer?.variant === "centred") styleParts.push(surfaceInkStyles(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate), context.theme.palette));
|
|
33623
34421
|
styleParts.push(borderColorStyle("border"));
|
|
33624
34422
|
return mergeStyles(...styleParts);
|
|
33625
34423
|
}
|
|
@@ -33681,7 +34479,7 @@ const footerBottomBarStyleTransform = {
|
|
|
33681
34479
|
run: (value, _options, context) => {
|
|
33682
34480
|
const footer = asPartialObject(value);
|
|
33683
34481
|
const bottomBar = footer?.bottomBar;
|
|
33684
|
-
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0,
|
|
34482
|
+
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0, footerBottomBarBorderColorStyle(footer), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width), footerBottomBarForegroundStyle(footer, context.theme.palette));
|
|
33685
34483
|
}
|
|
33686
34484
|
};
|
|
33687
34485
|
function footerBottomBarForegroundStyle(footer, palette) {
|
|
@@ -33703,62 +34501,15 @@ function measuredFooterBackdrop(footer, palette) {
|
|
|
33703
34501
|
const foreground = resolveFooterRootForeground(footer, palette);
|
|
33704
34502
|
return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
|
|
33705
34503
|
}
|
|
33706
|
-
const footerSplitMainClassTransform = {
|
|
33707
|
-
id: "layout.footerSplitMainClass",
|
|
33708
|
-
kind: "string",
|
|
33709
|
-
summary: "Compose split-footer main row classes from footer logo placement",
|
|
33710
|
-
schema: z.object({
|
|
33711
|
-
base: z.string().optional(),
|
|
33712
|
-
reverseClass: z.string().optional()
|
|
33713
|
-
}),
|
|
33714
|
-
run: (value, options) => {
|
|
33715
|
-
const placement = asPartialObject(value)?.placement ?? "right";
|
|
33716
|
-
const shouldPlaceLogoFirst = placement === "left" || placement === "above";
|
|
33717
|
-
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";
|
|
33718
|
-
return joinClasses([options.base ?? baseClass, shouldPlaceLogoFirst ? options.reverseClass ?? "rb-md-flex-row-reverse" : null]);
|
|
33719
|
-
}
|
|
33720
|
-
};
|
|
33721
34504
|
const footerLogoClassTransform = {
|
|
33722
34505
|
id: "layout.footerLogoClass",
|
|
33723
34506
|
kind: "string",
|
|
33724
34507
|
summary: "Compose split-footer logo wrapper classes from footer.logo controls",
|
|
33725
|
-
schema: z.object({
|
|
33726
|
-
base: z.string().optional(),
|
|
33727
|
-
requireExplicitShow: z.boolean().optional()
|
|
33728
|
-
}),
|
|
34508
|
+
schema: z.object({ base: z.string().optional() }),
|
|
33729
34509
|
run: (value, options) => {
|
|
33730
|
-
const
|
|
33731
|
-
const align = logo?.align ?? "end";
|
|
33732
|
-
const hiddenClass = options.requireExplicitShow ? logo?.showLogo === true ? null : "rb-hidden" : logo?.showLogo === false ? "rb-hidden" : null;
|
|
34510
|
+
const align = asPartialObject(value)?.align ?? "end";
|
|
33733
34511
|
const selfAlignClass = align === "start" ? "rb-self-start rb-text-left" : align === "center" ? "rb-self-center rb-text-center" : "rb-self-end rb-text-right";
|
|
33734
|
-
return joinClasses([
|
|
33735
|
-
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",
|
|
33736
|
-
selfAlignClass,
|
|
33737
|
-
hiddenClass
|
|
33738
|
-
]);
|
|
33739
|
-
}
|
|
33740
|
-
};
|
|
33741
|
-
const footerLogoMediaClassTransform = {
|
|
33742
|
-
id: "layout.footerLogoMediaClass",
|
|
33743
|
-
kind: "string",
|
|
33744
|
-
summary: "Compose footer logo image classes from size controls",
|
|
33745
|
-
schema: z.object({ base: z.string().optional() }),
|
|
33746
|
-
run: (_value, options) => {
|
|
33747
|
-
return joinClasses([options.base ?? "rb-w-auto"]);
|
|
33748
|
-
}
|
|
33749
|
-
};
|
|
33750
|
-
function shouldShowFooterLogoText(footer) {
|
|
33751
|
-
if (!footer) return false;
|
|
33752
|
-
const explicit = footer.logo?.showLogoText;
|
|
33753
|
-
const legacy = footer.showLogoText === true;
|
|
33754
|
-
return explicit === true || explicit === void 0 && legacy;
|
|
33755
|
-
}
|
|
33756
|
-
const footerLogoTextVisibleTransform = {
|
|
33757
|
-
id: "layout.footerLogoTextVisible",
|
|
33758
|
-
kind: "formatter",
|
|
33759
|
-
summary: "Return whether footer logo text should render",
|
|
33760
|
-
run: (value) => {
|
|
33761
|
-
return shouldShowFooterLogoText(asPartialObject(value));
|
|
34512
|
+
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]);
|
|
33762
34513
|
}
|
|
33763
34514
|
};
|
|
33764
34515
|
function extractBackgroundColorToken(background, fallback) {
|
|
@@ -33777,13 +34528,12 @@ const layoutTransforms = [
|
|
|
33777
34528
|
headerRootStyleTransform,
|
|
33778
34529
|
headerSectionBackgroundTransform,
|
|
33779
34530
|
footerRootStyleTransform,
|
|
34531
|
+
footerModuleInkStyleTransform,
|
|
34532
|
+
footerBrandArrangementTransform,
|
|
33780
34533
|
footerBottomBarClassTransform,
|
|
33781
34534
|
footerBottomBarContainerClassTransform,
|
|
33782
34535
|
footerBottomBarStyleTransform,
|
|
33783
|
-
|
|
33784
|
-
footerLogoClassTransform,
|
|
33785
|
-
footerLogoMediaClassTransform,
|
|
33786
|
-
footerLogoTextVisibleTransform
|
|
34536
|
+
footerLogoClassTransform
|
|
33787
34537
|
];
|
|
33788
34538
|
//#endregion
|
|
33789
34539
|
//#region ../blocks/src/system/transforms/registry/chromeLogo.ts
|
|
@@ -34279,7 +35029,14 @@ const footerNavGroupsLayout = stack({
|
|
|
34279
35029
|
}, [text({
|
|
34280
35030
|
as: "h3",
|
|
34281
35031
|
className: "rb-label",
|
|
34282
|
-
|
|
35032
|
+
"data-slot": { $bind: { from: "content.footerRuntime.slots.group-label" } },
|
|
35033
|
+
style: { $bind: {
|
|
35034
|
+
from: "content.footerRuntime.arrangement",
|
|
35035
|
+
transforms: [{
|
|
35036
|
+
id: "layout.footerModuleInkStyle",
|
|
35037
|
+
options: { opacity: 70 }
|
|
35038
|
+
}]
|
|
35039
|
+
} }
|
|
34283
35040
|
}, when("group.label"), bind("group.label")), stack({
|
|
34284
35041
|
gap: "sm",
|
|
34285
35042
|
align: "start",
|
|
@@ -34309,6 +35066,14 @@ const footerMailingListBindings = {
|
|
|
34309
35066
|
targeting: { $bind: { from: "module.engagement.runtime.targeting" } }
|
|
34310
35067
|
};
|
|
34311
35068
|
const footerSpamProtectionBinding = { spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } } };
|
|
35069
|
+
const brandMedia = media({ className: "rb-h-10 rb-w-auto" }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
|
|
35070
|
+
id: "layout.chromeLogo",
|
|
35071
|
+
options: { surface: "footer-root" }
|
|
35072
|
+
}] }));
|
|
35073
|
+
const brandTitle = text({
|
|
35074
|
+
as: "strong",
|
|
35075
|
+
className: "footer-logo-text rb-nav-text"
|
|
35076
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }));
|
|
34312
35077
|
const brandLogo = link({
|
|
34313
35078
|
href: "/",
|
|
34314
35079
|
className: { $bind: {
|
|
@@ -34319,20 +35084,39 @@ const brandLogo = link({
|
|
|
34319
35084
|
}],
|
|
34320
35085
|
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
34321
35086
|
} }
|
|
34322
|
-
}, [
|
|
34323
|
-
|
|
34324
|
-
|
|
34325
|
-
|
|
34326
|
-
|
|
34327
|
-
|
|
34328
|
-
|
|
34329
|
-
|
|
34330
|
-
|
|
34331
|
-
|
|
34332
|
-
|
|
34333
|
-
|
|
34334
|
-
|
|
34335
|
-
},
|
|
35087
|
+
}, [brandMedia, brandTitle], (node) => ({
|
|
35088
|
+
...node,
|
|
35089
|
+
$when: {
|
|
35090
|
+
when: {
|
|
35091
|
+
from: "module",
|
|
35092
|
+
transforms: [{ id: "layout.footerBrandArrangement" }]
|
|
35093
|
+
},
|
|
35094
|
+
equals: "row"
|
|
35095
|
+
}
|
|
35096
|
+
}));
|
|
35097
|
+
const centredBrand = stack({
|
|
35098
|
+
gap: "md",
|
|
35099
|
+
align: "center"
|
|
35100
|
+
}, [link({
|
|
35101
|
+
href: "/",
|
|
35102
|
+
"data-slot": { $bind: { from: "module.slots.media" } },
|
|
35103
|
+
className: "footer-logo rb-inline-flex rb-items-center rb-no-underline"
|
|
35104
|
+
}, [brandMedia], when("module.slots.media")), {
|
|
35105
|
+
...brandTitle,
|
|
35106
|
+
props: {
|
|
35107
|
+
...brandTitle.props,
|
|
35108
|
+
"data-slot": { $bind: { from: "module.slots.heading" } }
|
|
35109
|
+
}
|
|
35110
|
+
}], (node) => ({
|
|
35111
|
+
...node,
|
|
35112
|
+
$when: {
|
|
35113
|
+
when: {
|
|
35114
|
+
from: "module",
|
|
35115
|
+
transforms: [{ id: "layout.footerBrandArrangement" }]
|
|
35116
|
+
},
|
|
35117
|
+
equals: "centred"
|
|
35118
|
+
}
|
|
35119
|
+
}));
|
|
34336
35120
|
const navigation = stack({
|
|
34337
35121
|
gap: "md",
|
|
34338
35122
|
className: "rb-w-full"
|
|
@@ -34357,14 +35141,18 @@ const address = text({
|
|
|
34357
35141
|
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
34358
35142
|
const contact = stack({
|
|
34359
35143
|
gap: "sm",
|
|
34360
|
-
className:
|
|
35144
|
+
className: { $bind: {
|
|
35145
|
+
from: "module.contactClassName",
|
|
35146
|
+
fallback: "rb-items-start"
|
|
35147
|
+
} }
|
|
34361
35148
|
}, [link({
|
|
34362
35149
|
href: { $bind: { from: "contactLink.href" } },
|
|
34363
35150
|
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
34364
35151
|
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
34365
35152
|
const hours = stack({
|
|
34366
35153
|
gap: "sm",
|
|
34367
|
-
className: "rb-w-full"
|
|
35154
|
+
className: "rb-w-full",
|
|
35155
|
+
"data-slot": { $bind: { from: "module.slots.schedule" } }
|
|
34368
35156
|
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
34369
35157
|
as: "span",
|
|
34370
35158
|
className: "rb-label"
|
|
@@ -34375,7 +35163,10 @@ const hours = stack({
|
|
|
34375
35163
|
as: "p",
|
|
34376
35164
|
className: "rb-caption rb-opacity-70"
|
|
34377
35165
|
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
34378
|
-
const socials = inline({
|
|
35166
|
+
const socials = inline({
|
|
35167
|
+
className: "rb-footer-socials",
|
|
35168
|
+
"data-slot": { $bind: { from: "module.slots.social" } }
|
|
35169
|
+
}, [link({
|
|
34379
35170
|
href: { $bind: { from: "social.href" } },
|
|
34380
35171
|
target: "_blank",
|
|
34381
35172
|
rel: "noreferrer noopener",
|
|
@@ -34384,7 +35175,14 @@ const socials = inline({ className: "rb-footer-socials" }, [link({
|
|
|
34384
35175
|
}, [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" }));
|
|
34385
35176
|
const authoredCopy = richText({
|
|
34386
35177
|
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
34387
|
-
|
|
35178
|
+
"data-slot": { $bind: { from: "module.slots.copy" } },
|
|
35179
|
+
style: { $bind: {
|
|
35180
|
+
from: "content.footerRuntime.arrangement",
|
|
35181
|
+
transforms: [{
|
|
35182
|
+
id: "layout.footerModuleInkStyle",
|
|
35183
|
+
options: { opacity: 80 }
|
|
35184
|
+
}]
|
|
35185
|
+
} }
|
|
34388
35186
|
}, when("module.content"), bind("module.content", { transforms: [{
|
|
34389
35187
|
id: "content.interpolateRichTextTokens",
|
|
34390
35188
|
options: { tokens: ["year", "site_name"] }
|
|
@@ -34422,27 +35220,44 @@ const platformAttribution = el("div", {
|
|
|
34422
35220
|
], when("module.kind", { equals: "attribution" }));
|
|
34423
35221
|
const footerGroup = stack({
|
|
34424
35222
|
gap: "md",
|
|
34425
|
-
align:
|
|
35223
|
+
align: { $bind: {
|
|
35224
|
+
from: "group.align",
|
|
35225
|
+
fallback: "stretch"
|
|
35226
|
+
} },
|
|
34426
35227
|
className: { $bind: {
|
|
34427
35228
|
from: "group.className",
|
|
34428
35229
|
fallback: "rb-min-w-0"
|
|
34429
35230
|
} },
|
|
35231
|
+
"data-slot": { $bind: { from: "group.slot" } },
|
|
34430
35232
|
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
34431
35233
|
}, [stack({
|
|
34432
35234
|
gap: "md",
|
|
34433
|
-
align:
|
|
35235
|
+
align: { $bind: {
|
|
35236
|
+
from: "module.align",
|
|
35237
|
+
fallback: "start"
|
|
35238
|
+
} },
|
|
35239
|
+
className: { $bind: { from: "module.className" } },
|
|
34434
35240
|
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
34435
35241
|
}, [
|
|
34436
35242
|
text({
|
|
34437
35243
|
as: "h2",
|
|
34438
35244
|
className: "rb-label",
|
|
34439
|
-
|
|
35245
|
+
"data-slot": { $bind: { from: "module.slots.group-label" } },
|
|
35246
|
+
style: { $bind: {
|
|
35247
|
+
from: "content.footerRuntime.arrangement",
|
|
35248
|
+
transforms: [{
|
|
35249
|
+
id: "layout.footerModuleInkStyle",
|
|
35250
|
+
options: { opacity: 70 }
|
|
35251
|
+
}]
|
|
35252
|
+
} }
|
|
34440
35253
|
}, bind("module.heading"), when("module.heading")),
|
|
34441
35254
|
brandLogo,
|
|
35255
|
+
centredBrand,
|
|
34442
35256
|
navigation,
|
|
34443
35257
|
stack({
|
|
34444
35258
|
gap: "sm",
|
|
34445
|
-
className: "rb-w-full"
|
|
35259
|
+
className: "rb-w-full",
|
|
35260
|
+
"data-slot": { $bind: { from: "module.slots.navigation" } }
|
|
34446
35261
|
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
34447
35262
|
address,
|
|
34448
35263
|
contact,
|
|
@@ -34455,10 +35270,12 @@ const footerGroup = stack({
|
|
|
34455
35270
|
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
34456
35271
|
const footerMainRegion = stack({
|
|
34457
35272
|
className: { $bind: { from: "region.className" } },
|
|
35273
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
34458
35274
|
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
34459
35275
|
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
34460
35276
|
const footerEngagementRegion = stack({
|
|
34461
35277
|
className: { $bind: { from: "region.className" } },
|
|
35278
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
34462
35279
|
"data-footer-region": "engagement-row"
|
|
34463
35280
|
}, [footerGroup], when("region.kind", { equals: "engagement-row" }), repeat("content.footerRuntime.regions", "region"));
|
|
34464
35281
|
const footerBottomRegion = stack({ className: { $bind: {
|
|
@@ -34475,6 +35292,7 @@ const footerBottomRegion = stack({ className: { $bind: {
|
|
|
34475
35292
|
from: "$root.theme.footer",
|
|
34476
35293
|
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
34477
35294
|
} },
|
|
35295
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
34478
35296
|
"data-footer-region": "bottom"
|
|
34479
35297
|
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
34480
35298
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
@@ -34496,6 +35314,7 @@ const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
|
34496
35314
|
transforms: [{ id: "layout.footerRootStyle" }],
|
|
34497
35315
|
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
34498
35316
|
} },
|
|
35317
|
+
"data-arrangement": { $bind: { from: "content.footerRuntime.arrangementHook" } },
|
|
34499
35318
|
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
34500
35319
|
}, [
|
|
34501
35320
|
footerEngagementRegion,
|
|
@@ -36097,17 +36916,30 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
36097
36916
|
}],
|
|
36098
36917
|
fallback: ""
|
|
36099
36918
|
} };
|
|
36100
|
-
const copyHeading = el("div", {
|
|
36919
|
+
const copyHeading = el("div", {
|
|
36920
|
+
className: titleClassNameFromAlignment,
|
|
36921
|
+
...lookSlot("head")
|
|
36922
|
+
}, [text({
|
|
36101
36923
|
as: "p",
|
|
36102
|
-
className: eyebrowClassName("rb-eyebrow heading-eyebrow")
|
|
36103
|
-
|
|
36104
|
-
|
|
36105
|
-
|
|
36106
|
-
|
|
36107
|
-
|
|
36108
|
-
|
|
36109
|
-
|
|
36924
|
+
className: eyebrowClassName("rb-eyebrow heading-eyebrow"),
|
|
36925
|
+
...lookSlot("eyebrow")
|
|
36926
|
+
}, when("content.eyebrow"), bind("content.eyebrow")), text({
|
|
36927
|
+
as: "h2",
|
|
36928
|
+
...lookSlot("heading")
|
|
36929
|
+
}, bind("content.title"))], when("content.title"));
|
|
36930
|
+
const textContentNodes = (className) => {
|
|
36931
|
+
const props = {
|
|
36932
|
+
className,
|
|
36933
|
+
...lookSlot("intro"),
|
|
36934
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } },
|
|
36935
|
+
lookSlots: { $bind: { from: "content._lookSlots" } }
|
|
36936
|
+
};
|
|
36937
|
+
return [styledCard([richText(props, bind("content.text"))], mediaTextCardOptions, when("content.wrapTextInCard")), richText(props, when("content.wrapTextInCard", { not: true }), bind("content.text"))];
|
|
36938
|
+
};
|
|
36939
|
+
const defaultTextColumn = el("div", {}, textContentNodes("rb-prose rb-max-w-none"));
|
|
36940
|
+
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)]);
|
|
36110
36941
|
const defaultImageCommonProps = {
|
|
36942
|
+
...lookSlot("photo"),
|
|
36111
36943
|
className: { $bind: {
|
|
36112
36944
|
from: "content.imageShape",
|
|
36113
36945
|
transforms: [{
|
|
@@ -36147,6 +36979,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
36147
36979
|
slidesToShow: 1
|
|
36148
36980
|
}, [media(defaultImageCommonProps, bind("item.image"), repeat("content.images", "item"))]);
|
|
36149
36981
|
const defaultImagesLayout = el("div", {}, [responsiveTwoColumn({
|
|
36982
|
+
lookSlots: true,
|
|
36150
36983
|
image: el("div", {}, [el("div", {}, [defaultSingleImage], whenImagesLength(1)), el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
|
|
36151
36984
|
text: defaultTextColumn,
|
|
36152
36985
|
ratioFrom: "content.ratio",
|
|
@@ -36158,6 +36991,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
36158
36991
|
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1"
|
|
36159
36992
|
})], whenImagesLength(0, { not: true }));
|
|
36160
36993
|
const bioImagesLayout = el("div", {}, [responsiveTwoColumn({
|
|
36994
|
+
lookSlots: true,
|
|
36161
36995
|
image: el("div", {}, [el("div", {}, [defaultSingleImage], whenImagesLength(1)), el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
|
|
36162
36996
|
text: bioTextColumn,
|
|
36163
36997
|
ratioFrom: "content.ratio",
|
|
@@ -36168,15 +37002,15 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
36168
37002
|
imageWrapperClassName: "rb-w-full rb-shrink-0",
|
|
36169
37003
|
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1 rb-self-stretch"
|
|
36170
37004
|
})], whenImagesLength(0, { not: true }));
|
|
36171
|
-
const defaultTextOnlyLayout = el("div",
|
|
36172
|
-
const bioTextOnlyLayout = el("div", {
|
|
36173
|
-
|
|
36174
|
-
|
|
36175
|
-
|
|
36176
|
-
|
|
36177
|
-
|
|
36178
|
-
|
|
36179
|
-
], whenImagesLength(0));
|
|
37005
|
+
const defaultTextOnlyLayout = el("div", lookSlot("copy"), textContentNodes("rb-prose rb-max-w-none"), whenImagesLength(0));
|
|
37006
|
+
const bioTextOnlyLayout = el("div", {
|
|
37007
|
+
className: "rb-flex rb-w-full rb-max-w-prose rb-flex-col rb-gap-5",
|
|
37008
|
+
...lookSlot("copy")
|
|
37009
|
+
}, [text({
|
|
37010
|
+
as: "h2",
|
|
37011
|
+
className: titleClassNameFromAlignment,
|
|
37012
|
+
...lookSlot("heading")
|
|
37013
|
+
}, when("content.title"), bind("content.title")), ...textContentNodes(bodyClassNameFromAlignment)], whenImagesLength(0));
|
|
36180
37014
|
const defaultInner = el("div", {}, [defaultImagesLayout, defaultTextOnlyLayout]);
|
|
36181
37015
|
const bioInner = el("div", {}, [bioImagesLayout, bioTextOnlyLayout]);
|
|
36182
37016
|
const defaultLayout = styledSection({
|
|
@@ -36200,9 +37034,31 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
36200
37034
|
}),
|
|
36201
37035
|
baseClass: "",
|
|
36202
37036
|
spacing: "medium"
|
|
37037
|
+
}),
|
|
37038
|
+
"circle-beside": styledSection({
|
|
37039
|
+
baseClass: "",
|
|
37040
|
+
spacing: "medium",
|
|
37041
|
+
children: styledContainer({ children: el("div", lookSlot("frame"), [el("div", lookSlot("media"), [
|
|
37042
|
+
el("div", {}, [when("content.images[0].image")(defaultSingleImage)], whenImagesLength(1)),
|
|
37043
|
+
el("div", {}, [el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))], whenImagesLength(0, { not: true })),
|
|
37044
|
+
el("div", {}, [when("content.images[0].image")(defaultSingleImage)], whenImagesLength(0))
|
|
37045
|
+
]), el("div", lookSlot("copy"), [el("div", lookSlot("head"), [text({
|
|
37046
|
+
as: "p",
|
|
37047
|
+
className: eyebrowClassName("rb-eyebrow heading-eyebrow"),
|
|
37048
|
+
...lookSlot("eyebrow")
|
|
37049
|
+
}, when("content.eyebrow"), bind("content.eyebrow")), text({
|
|
37050
|
+
as: "h2",
|
|
37051
|
+
...lookSlot("heading")
|
|
37052
|
+
}, bind("content.title"), when("content.title", { authoringPresence: {
|
|
37053
|
+
kind: "recover-empty-when-active",
|
|
37054
|
+
placeholder: "Add heading"
|
|
37055
|
+
} }))]), defaultTextColumn])]) })
|
|
36203
37056
|
})
|
|
36204
37057
|
},
|
|
36205
|
-
variantMeaning: {
|
|
37058
|
+
variantMeaning: {
|
|
37059
|
+
kind: "arrangement",
|
|
37060
|
+
lookOnlyKeys: ["circle-beside"]
|
|
37061
|
+
},
|
|
36206
37062
|
defaultVariant: "default",
|
|
36207
37063
|
variantOptions: {
|
|
36208
37064
|
default: { label: "Default" },
|
|
@@ -36795,24 +37651,6 @@ const emptyStateField = {
|
|
|
36795
37651
|
ui: { intent: "display" }
|
|
36796
37652
|
};
|
|
36797
37653
|
/**
|
|
36798
|
-
* Section heading and description fields
|
|
36799
|
-
*/
|
|
36800
|
-
const sectionHeaderFields = (defaultHeading) => [{
|
|
36801
|
-
id: "heading",
|
|
36802
|
-
type: "text",
|
|
36803
|
-
label: "Heading",
|
|
36804
|
-
description: "Main heading for the events section",
|
|
36805
|
-
required: false,
|
|
36806
|
-
multiline: false,
|
|
36807
|
-
defaultValue: defaultHeading
|
|
36808
|
-
}, {
|
|
36809
|
-
id: "description",
|
|
36810
|
-
type: "richText",
|
|
36811
|
-
label: "Description",
|
|
36812
|
-
description: "Optional introductory text",
|
|
36813
|
-
required: false
|
|
36814
|
-
}];
|
|
36815
|
-
/**
|
|
36816
37654
|
* Layout selection field with grid/stack options
|
|
36817
37655
|
*/
|
|
36818
37656
|
const layoutField = {
|
|
@@ -36860,31 +37698,6 @@ const columnsField = (options = [
|
|
|
36860
37698
|
}))
|
|
36861
37699
|
});
|
|
36862
37700
|
//#endregion
|
|
36863
|
-
//#region ../blocks/src/system/blocks/events/shared/layout.ts
|
|
36864
|
-
const recoverEmptyHeadingWhenActive = {
|
|
36865
|
-
kind: "recover-empty-when-active",
|
|
36866
|
-
placeholder: "Add heading"
|
|
36867
|
-
};
|
|
36868
|
-
const recoverEmptyDescriptionWhenActive = {
|
|
36869
|
-
kind: "recover-empty-when-active",
|
|
36870
|
-
placeholder: "Add description"
|
|
36871
|
-
};
|
|
36872
|
-
function eventSectionHeaderLayoutNodes(options = {}) {
|
|
36873
|
-
const headingNode = text({
|
|
36874
|
-
as: "h2",
|
|
36875
|
-
...lookSlot("heading")
|
|
36876
|
-
}, bind("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
|
|
36877
|
-
const descriptionNode = richText({
|
|
36878
|
-
className: "rb-prose rb-max-w-none",
|
|
36879
|
-
...lookSlot("intro")
|
|
36880
|
-
}, bind("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
|
|
36881
|
-
if (options.splitClassName) return [el("div", {
|
|
36882
|
-
className: options.splitClassName,
|
|
36883
|
-
...lookSlot("head")
|
|
36884
|
-
}, [headingNode, descriptionNode])];
|
|
36885
|
-
return [headingNode, descriptionNode];
|
|
36886
|
-
}
|
|
36887
|
-
//#endregion
|
|
36888
37701
|
//#region ../blocks/src/system/blocks/shop.shared.ts
|
|
36889
37702
|
/**
|
|
36890
37703
|
* Public pass product for shop display
|
|
@@ -37225,19 +38038,14 @@ const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind
|
|
|
37225
38038
|
*
|
|
37226
38039
|
* Sites don't store a locale, and every public word around a date is English,
|
|
37227
38040
|
* so the only open question is which English conventions to follow: day or
|
|
37228
|
-
* month first
|
|
38041
|
+
* month first. The site's time zone is the one
|
|
37229
38042
|
* fact every site carries about where it is. It is the site's, never an
|
|
37230
38043
|
* event's: a venue left at UTC must not turn a UK site's dates American.
|
|
37231
38044
|
* Anywhere this can't place (UTC, the Americas, Asia) keeps US English, which
|
|
37232
38045
|
* is what these helpers wrote before sites were placed at all.
|
|
37233
38046
|
*/
|
|
37234
38047
|
function eventDateLocale(siteTimeZone) {
|
|
37235
|
-
|
|
37236
|
-
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
37237
|
-
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
37238
|
-
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
37239
|
-
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
37240
|
-
return "en-US";
|
|
38048
|
+
return inferSiteDateLocale(siteTimeZone);
|
|
37241
38049
|
}
|
|
37242
38050
|
function formatEventCompactDateRail(isoTimestamp, options, letterCase = "capitals") {
|
|
37243
38051
|
const locale = options?.locale ?? "en-US";
|
|
@@ -38847,7 +39655,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
38847
39655
|
],
|
|
38848
39656
|
icon: "Star",
|
|
38849
39657
|
layout: [styledSection({
|
|
38850
|
-
children: sectionContainer([...
|
|
39658
|
+
children: sectionContainer([...sectionHeaderLayoutNodes(), el("event-spotlight", {
|
|
38851
39659
|
events: { $bind: { from: "data.events" } },
|
|
38852
39660
|
layout: { $bind: {
|
|
38853
39661
|
from: "content.layout",
|
|
@@ -38903,52 +39711,6 @@ const eventSpotlightBlockDefinition = {
|
|
|
38903
39711
|
} }
|
|
38904
39712
|
};
|
|
38905
39713
|
//#endregion
|
|
38906
|
-
//#region ../blocks/src/system/runtime/lookSurfaces.ts
|
|
38907
|
-
const isPlainObject$1 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
38908
|
-
const lookListPresentationSchemaShape = {
|
|
38909
|
-
sectionAction: z.object({
|
|
38910
|
-
label: z.string(),
|
|
38911
|
-
href: z.string()
|
|
38912
|
-
}).optional(),
|
|
38913
|
-
actionSize: z.enum([
|
|
38914
|
-
"sm",
|
|
38915
|
-
"md",
|
|
38916
|
-
"lg"
|
|
38917
|
-
]).optional(),
|
|
38918
|
-
itemActionStyle: z.enum(["button", "link"]).optional(),
|
|
38919
|
-
itemRoles: z.object({
|
|
38920
|
-
container: z.enum([
|
|
38921
|
-
"card",
|
|
38922
|
-
"statement",
|
|
38923
|
-
"highlight"
|
|
38924
|
-
]).optional(),
|
|
38925
|
-
items: z.enum([
|
|
38926
|
-
"card",
|
|
38927
|
-
"statement",
|
|
38928
|
-
"highlight"
|
|
38929
|
-
]).optional(),
|
|
38930
|
-
at: z.partialRecord(z.enum([
|
|
38931
|
-
"first",
|
|
38932
|
-
"last",
|
|
38933
|
-
"middle",
|
|
38934
|
-
"odd",
|
|
38935
|
-
"even"
|
|
38936
|
-
]), z.enum([
|
|
38937
|
-
"card",
|
|
38938
|
-
"statement",
|
|
38939
|
-
"highlight"
|
|
38940
|
-
])).optional()
|
|
38941
|
-
}).optional(),
|
|
38942
|
-
roleSurfaces: z.record(z.enum([
|
|
38943
|
-
"card",
|
|
38944
|
-
"statement",
|
|
38945
|
-
"highlight"
|
|
38946
|
-
]), z.custom((value) => isPlainObject$1(value) && (value.kind === "inherit" || value.kind === "owned"))).optional(),
|
|
38947
|
-
panelHeading: z.string().optional(),
|
|
38948
|
-
lookSlots: z.partialRecord(z.enum(arrangementSlotNames), z.enum(arrangementSlotNames)).optional(),
|
|
38949
|
-
itemSurfaces: z.record(z.string(), z.custom((value) => isPlainObject$1(value) && (value.kind === "inherit" || value.kind === "owned"))).optional()
|
|
38950
|
-
};
|
|
38951
|
-
//#endregion
|
|
38952
39714
|
//#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
|
|
38953
39715
|
/** Invalid saved selections fail closed rather than widening discovery. */
|
|
38954
39716
|
function resolveEventSelection(mode, value) {
|
|
@@ -39632,7 +40394,7 @@ const eventListingBlockDefinition = {
|
|
|
39632
40394
|
children: styledContainer({
|
|
39633
40395
|
rootType: "stack",
|
|
39634
40396
|
rootProps: { gap: "lg" },
|
|
39635
|
-
children: [...
|
|
40397
|
+
children: [...sectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
|
|
39636
40398
|
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
39637
40399
|
events: { $bind: { from: "data.events" } },
|
|
39638
40400
|
stage: { $bind: {
|
|
@@ -40072,7 +40834,7 @@ const eventCalendarLayout = [styledSection({
|
|
|
40072
40834
|
gap: "lg",
|
|
40073
40835
|
...lookSlot("layout")
|
|
40074
40836
|
},
|
|
40075
|
-
children: [...
|
|
40837
|
+
children: [...sectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
|
|
40076
40838
|
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
40077
40839
|
events: { $bind: { from: "data.events" } },
|
|
40078
40840
|
effectiveListArrangementKey: { $bind: { from: "$root.effectiveListArrangementKey" } },
|
|
@@ -42252,6 +43014,511 @@ const embedBlockDefinition = {
|
|
|
42252
43014
|
} }
|
|
42253
43015
|
};
|
|
42254
43016
|
//#endregion
|
|
43017
|
+
//#region ../blocks/src/system/blocks/image-gallery/fields.ts
|
|
43018
|
+
const imageGalleryFields = parseFieldDefinitions([
|
|
43019
|
+
...sectionHeaderFields(void 0, "Intro"),
|
|
43020
|
+
{
|
|
43021
|
+
id: "images",
|
|
43022
|
+
type: "repeater",
|
|
43023
|
+
label: "Images",
|
|
43024
|
+
itemLabel: "Image",
|
|
43025
|
+
minItems: 0,
|
|
43026
|
+
maxItems: 24,
|
|
43027
|
+
ui: {
|
|
43028
|
+
repeaterPreset: "thumbnailGrid",
|
|
43029
|
+
thumbnailField: "image",
|
|
43030
|
+
thumbnailAltField: "caption",
|
|
43031
|
+
thumbnailLabelField: "caption",
|
|
43032
|
+
thumbnailCardDensity: "compact"
|
|
43033
|
+
},
|
|
43034
|
+
schema: { fields: [{
|
|
43035
|
+
id: "image",
|
|
43036
|
+
type: "media",
|
|
43037
|
+
label: "Image",
|
|
43038
|
+
required: true,
|
|
43039
|
+
mediaKinds: ["image"]
|
|
43040
|
+
}, {
|
|
43041
|
+
id: "caption",
|
|
43042
|
+
type: "text",
|
|
43043
|
+
label: "Caption",
|
|
43044
|
+
description: "Optional caption displayed below the image and used as the editor card label",
|
|
43045
|
+
maxLength: 200
|
|
43046
|
+
}] }
|
|
43047
|
+
},
|
|
43048
|
+
{
|
|
43049
|
+
id: "fullBleed",
|
|
43050
|
+
type: "boolean",
|
|
43051
|
+
label: "Full bleed",
|
|
43052
|
+
description: "Extend the gallery edge-to-edge by removing section side padding and container max-width.",
|
|
43053
|
+
defaultValue: false,
|
|
43054
|
+
ui: {
|
|
43055
|
+
intent: "display",
|
|
43056
|
+
visibleWhen: {
|
|
43057
|
+
field: "variant",
|
|
43058
|
+
notIn: ["marquee"]
|
|
43059
|
+
}
|
|
43060
|
+
}
|
|
43061
|
+
},
|
|
43062
|
+
{
|
|
43063
|
+
id: "aspectRatio",
|
|
43064
|
+
type: "select",
|
|
43065
|
+
label: "Aspect ratio",
|
|
43066
|
+
description: "Crop images to a consistent aspect ratio.",
|
|
43067
|
+
defaultValue: "1/1",
|
|
43068
|
+
options: [
|
|
43069
|
+
{
|
|
43070
|
+
value: "auto",
|
|
43071
|
+
label: "Original"
|
|
43072
|
+
},
|
|
43073
|
+
{
|
|
43074
|
+
value: "1/1",
|
|
43075
|
+
label: "1:1 (Square)"
|
|
43076
|
+
},
|
|
43077
|
+
{
|
|
43078
|
+
value: "4/3",
|
|
43079
|
+
label: "4:3 (Standard)"
|
|
43080
|
+
},
|
|
43081
|
+
{
|
|
43082
|
+
value: "16/9",
|
|
43083
|
+
label: "16:9 (Widescreen)"
|
|
43084
|
+
},
|
|
43085
|
+
{
|
|
43086
|
+
value: "3/2",
|
|
43087
|
+
label: "3:2 (Classic)"
|
|
43088
|
+
},
|
|
43089
|
+
{
|
|
43090
|
+
value: "3/4",
|
|
43091
|
+
label: "3:4 (Portrait)"
|
|
43092
|
+
}
|
|
43093
|
+
],
|
|
43094
|
+
ui: {
|
|
43095
|
+
intent: "display",
|
|
43096
|
+
visibleWhen: {
|
|
43097
|
+
field: "variant",
|
|
43098
|
+
notIn: ["masonry", "marquee"]
|
|
43099
|
+
}
|
|
43100
|
+
}
|
|
43101
|
+
},
|
|
43102
|
+
{
|
|
43103
|
+
id: "slidesToShow",
|
|
43104
|
+
type: "select",
|
|
43105
|
+
label: "Images per view (mobile)",
|
|
43106
|
+
description: "Number of images visible at once on small screens.",
|
|
43107
|
+
defaultValue: "1",
|
|
43108
|
+
options: [
|
|
43109
|
+
{
|
|
43110
|
+
value: "1",
|
|
43111
|
+
label: "One at a time"
|
|
43112
|
+
},
|
|
43113
|
+
{
|
|
43114
|
+
value: "2",
|
|
43115
|
+
label: "Two at a time"
|
|
43116
|
+
},
|
|
43117
|
+
{
|
|
43118
|
+
value: "3",
|
|
43119
|
+
label: "Three at a time"
|
|
43120
|
+
}
|
|
43121
|
+
],
|
|
43122
|
+
ui: {
|
|
43123
|
+
intent: "display",
|
|
43124
|
+
visibleWhen: {
|
|
43125
|
+
field: "variant",
|
|
43126
|
+
equals: "carousel"
|
|
43127
|
+
}
|
|
43128
|
+
}
|
|
43129
|
+
},
|
|
43130
|
+
{
|
|
43131
|
+
id: "slidesToShowTablet",
|
|
43132
|
+
type: "select",
|
|
43133
|
+
label: "Images per view (tablet)",
|
|
43134
|
+
description: "Number of images visible on medium screens.",
|
|
43135
|
+
options: [
|
|
43136
|
+
{
|
|
43137
|
+
value: "",
|
|
43138
|
+
label: "Same as mobile"
|
|
43139
|
+
},
|
|
43140
|
+
{
|
|
43141
|
+
value: "1",
|
|
43142
|
+
label: "One at a time"
|
|
43143
|
+
},
|
|
43144
|
+
{
|
|
43145
|
+
value: "2",
|
|
43146
|
+
label: "Two at a time"
|
|
43147
|
+
},
|
|
43148
|
+
{
|
|
43149
|
+
value: "3",
|
|
43150
|
+
label: "Three at a time"
|
|
43151
|
+
}
|
|
43152
|
+
],
|
|
43153
|
+
ui: {
|
|
43154
|
+
intent: "display",
|
|
43155
|
+
visibleWhen: {
|
|
43156
|
+
field: "variant",
|
|
43157
|
+
equals: "carousel"
|
|
43158
|
+
}
|
|
43159
|
+
}
|
|
43160
|
+
},
|
|
43161
|
+
{
|
|
43162
|
+
id: "slidesToShowDesktop",
|
|
43163
|
+
type: "select",
|
|
43164
|
+
label: "Images per view (desktop)",
|
|
43165
|
+
description: "Number of images visible on large screens.",
|
|
43166
|
+
options: [
|
|
43167
|
+
{
|
|
43168
|
+
value: "",
|
|
43169
|
+
label: "Same as tablet"
|
|
43170
|
+
},
|
|
43171
|
+
{
|
|
43172
|
+
value: "1",
|
|
43173
|
+
label: "One at a time"
|
|
43174
|
+
},
|
|
43175
|
+
{
|
|
43176
|
+
value: "2",
|
|
43177
|
+
label: "Two at a time"
|
|
43178
|
+
},
|
|
43179
|
+
{
|
|
43180
|
+
value: "3",
|
|
43181
|
+
label: "Three at a time"
|
|
43182
|
+
}
|
|
43183
|
+
],
|
|
43184
|
+
ui: {
|
|
43185
|
+
intent: "display",
|
|
43186
|
+
visibleWhen: {
|
|
43187
|
+
field: "variant",
|
|
43188
|
+
equals: "carousel"
|
|
43189
|
+
}
|
|
43190
|
+
}
|
|
43191
|
+
},
|
|
43192
|
+
{
|
|
43193
|
+
id: "transition",
|
|
43194
|
+
type: "select",
|
|
43195
|
+
label: "Transition",
|
|
43196
|
+
description: "Animation style between slides.",
|
|
43197
|
+
defaultValue: "slide",
|
|
43198
|
+
options: [{
|
|
43199
|
+
value: "slide",
|
|
43200
|
+
label: "Slide"
|
|
43201
|
+
}, {
|
|
43202
|
+
value: "fade",
|
|
43203
|
+
label: "Fade"
|
|
43204
|
+
}],
|
|
43205
|
+
ui: {
|
|
43206
|
+
intent: "display",
|
|
43207
|
+
visibleWhen: {
|
|
43208
|
+
field: "variant",
|
|
43209
|
+
equals: "carousel"
|
|
43210
|
+
}
|
|
43211
|
+
}
|
|
43212
|
+
},
|
|
43213
|
+
{
|
|
43214
|
+
id: "showControls",
|
|
43215
|
+
type: "boolean",
|
|
43216
|
+
label: "Show arrows",
|
|
43217
|
+
defaultValue: true,
|
|
43218
|
+
ui: {
|
|
43219
|
+
intent: "behavior",
|
|
43220
|
+
visibleWhen: {
|
|
43221
|
+
field: "variant",
|
|
43222
|
+
equals: "carousel"
|
|
43223
|
+
}
|
|
43224
|
+
}
|
|
43225
|
+
},
|
|
43226
|
+
{
|
|
43227
|
+
id: "showDots",
|
|
43228
|
+
type: "boolean",
|
|
43229
|
+
label: "Show dots",
|
|
43230
|
+
defaultValue: false,
|
|
43231
|
+
ui: {
|
|
43232
|
+
intent: "behavior",
|
|
43233
|
+
visibleWhen: {
|
|
43234
|
+
field: "variant",
|
|
43235
|
+
equals: "carousel"
|
|
43236
|
+
}
|
|
43237
|
+
}
|
|
43238
|
+
},
|
|
43239
|
+
{
|
|
43240
|
+
id: "autoplay",
|
|
43241
|
+
type: "boolean",
|
|
43242
|
+
label: "Autoplay",
|
|
43243
|
+
defaultValue: false,
|
|
43244
|
+
ui: {
|
|
43245
|
+
intent: "behavior",
|
|
43246
|
+
visibleWhen: {
|
|
43247
|
+
field: "variant",
|
|
43248
|
+
equals: "carousel"
|
|
43249
|
+
}
|
|
43250
|
+
}
|
|
43251
|
+
},
|
|
43252
|
+
{
|
|
43253
|
+
id: "autoplayDelay",
|
|
43254
|
+
type: "select",
|
|
43255
|
+
label: "Autoplay delay",
|
|
43256
|
+
defaultValue: "5000",
|
|
43257
|
+
options: [
|
|
43258
|
+
{
|
|
43259
|
+
value: "3000",
|
|
43260
|
+
label: "3 seconds"
|
|
43261
|
+
},
|
|
43262
|
+
{
|
|
43263
|
+
value: "5000",
|
|
43264
|
+
label: "5 seconds"
|
|
43265
|
+
},
|
|
43266
|
+
{
|
|
43267
|
+
value: "7000",
|
|
43268
|
+
label: "7 seconds"
|
|
43269
|
+
},
|
|
43270
|
+
{
|
|
43271
|
+
value: "10000",
|
|
43272
|
+
label: "10 seconds"
|
|
43273
|
+
}
|
|
43274
|
+
],
|
|
43275
|
+
ui: {
|
|
43276
|
+
intent: "behavior",
|
|
43277
|
+
visibleWhen: {
|
|
43278
|
+
field: "variant",
|
|
43279
|
+
equals: "carousel"
|
|
43280
|
+
}
|
|
43281
|
+
}
|
|
43282
|
+
},
|
|
43283
|
+
{
|
|
43284
|
+
id: "arrowVisibility",
|
|
43285
|
+
type: "select",
|
|
43286
|
+
label: "Arrow visibility",
|
|
43287
|
+
defaultValue: "always",
|
|
43288
|
+
options: [{
|
|
43289
|
+
value: "always",
|
|
43290
|
+
label: "Always visible"
|
|
43291
|
+
}, {
|
|
43292
|
+
value: "hover",
|
|
43293
|
+
label: "Show on hover"
|
|
43294
|
+
}],
|
|
43295
|
+
ui: {
|
|
43296
|
+
intent: "behavior",
|
|
43297
|
+
visibleWhen: {
|
|
43298
|
+
field: "variant",
|
|
43299
|
+
equals: "carousel"
|
|
43300
|
+
}
|
|
43301
|
+
}
|
|
43302
|
+
},
|
|
43303
|
+
{
|
|
43304
|
+
id: "loop",
|
|
43305
|
+
type: "boolean",
|
|
43306
|
+
label: "Loop slides",
|
|
43307
|
+
defaultValue: true,
|
|
43308
|
+
ui: {
|
|
43309
|
+
intent: "behavior",
|
|
43310
|
+
visibleWhen: {
|
|
43311
|
+
field: "variant",
|
|
43312
|
+
equals: "carousel"
|
|
43313
|
+
}
|
|
43314
|
+
}
|
|
43315
|
+
},
|
|
43316
|
+
{
|
|
43317
|
+
id: "marqueeDirection",
|
|
43318
|
+
type: "select",
|
|
43319
|
+
label: "Scroll direction",
|
|
43320
|
+
options: [{
|
|
43321
|
+
value: "left",
|
|
43322
|
+
label: "Left"
|
|
43323
|
+
}, {
|
|
43324
|
+
value: "right",
|
|
43325
|
+
label: "Right"
|
|
43326
|
+
}],
|
|
43327
|
+
defaultValue: "left",
|
|
43328
|
+
ui: {
|
|
43329
|
+
intent: "display",
|
|
43330
|
+
visibleWhen: {
|
|
43331
|
+
field: "variant",
|
|
43332
|
+
equals: "marquee"
|
|
43333
|
+
}
|
|
43334
|
+
}
|
|
43335
|
+
},
|
|
43336
|
+
{
|
|
43337
|
+
id: "marqueeSpeed",
|
|
43338
|
+
type: "select",
|
|
43339
|
+
label: "Scroll speed",
|
|
43340
|
+
options: [
|
|
43341
|
+
{
|
|
43342
|
+
value: "slow",
|
|
43343
|
+
label: "Slow (60s)"
|
|
43344
|
+
},
|
|
43345
|
+
{
|
|
43346
|
+
value: "medium",
|
|
43347
|
+
label: "Medium (40s)"
|
|
43348
|
+
},
|
|
43349
|
+
{
|
|
43350
|
+
value: "fast",
|
|
43351
|
+
label: "Fast (20s)"
|
|
43352
|
+
}
|
|
43353
|
+
],
|
|
43354
|
+
defaultValue: "medium",
|
|
43355
|
+
ui: {
|
|
43356
|
+
intent: "display",
|
|
43357
|
+
visibleWhen: {
|
|
43358
|
+
field: "variant",
|
|
43359
|
+
equals: "marquee"
|
|
43360
|
+
}
|
|
43361
|
+
}
|
|
43362
|
+
},
|
|
43363
|
+
{
|
|
43364
|
+
id: "marqueePauseOnHover",
|
|
43365
|
+
type: "boolean",
|
|
43366
|
+
label: "Pause on hover",
|
|
43367
|
+
defaultValue: true,
|
|
43368
|
+
ui: {
|
|
43369
|
+
intent: "behavior",
|
|
43370
|
+
visibleWhen: {
|
|
43371
|
+
field: "variant",
|
|
43372
|
+
equals: "marquee"
|
|
43373
|
+
}
|
|
43374
|
+
}
|
|
43375
|
+
},
|
|
43376
|
+
{
|
|
43377
|
+
id: "marqueeImageSize",
|
|
43378
|
+
type: "select",
|
|
43379
|
+
label: "Image size",
|
|
43380
|
+
options: [
|
|
43381
|
+
{
|
|
43382
|
+
value: "sm",
|
|
43383
|
+
label: "Small (200px)"
|
|
43384
|
+
},
|
|
43385
|
+
{
|
|
43386
|
+
value: "md",
|
|
43387
|
+
label: "Medium (256px)"
|
|
43388
|
+
},
|
|
43389
|
+
{
|
|
43390
|
+
value: "lg",
|
|
43391
|
+
label: "Large (320px)"
|
|
43392
|
+
},
|
|
43393
|
+
{
|
|
43394
|
+
value: "xl",
|
|
43395
|
+
label: "Extra large (400px)"
|
|
43396
|
+
}
|
|
43397
|
+
],
|
|
43398
|
+
defaultValue: "md",
|
|
43399
|
+
ui: {
|
|
43400
|
+
intent: "display",
|
|
43401
|
+
visibleWhen: {
|
|
43402
|
+
field: "variant",
|
|
43403
|
+
equals: "marquee"
|
|
43404
|
+
}
|
|
43405
|
+
}
|
|
43406
|
+
},
|
|
43407
|
+
{
|
|
43408
|
+
id: "imageFilter",
|
|
43409
|
+
type: "select",
|
|
43410
|
+
label: "Image filter",
|
|
43411
|
+
options: [
|
|
43412
|
+
{
|
|
43413
|
+
value: "none",
|
|
43414
|
+
label: "None"
|
|
43415
|
+
},
|
|
43416
|
+
{
|
|
43417
|
+
value: "grayscale",
|
|
43418
|
+
label: "Grayscale"
|
|
43419
|
+
},
|
|
43420
|
+
{
|
|
43421
|
+
value: "grayscale-hover-reveal",
|
|
43422
|
+
label: "Grayscale (color on hover)"
|
|
43423
|
+
},
|
|
43424
|
+
{
|
|
43425
|
+
value: "sepia",
|
|
43426
|
+
label: "Sepia"
|
|
43427
|
+
}
|
|
43428
|
+
],
|
|
43429
|
+
defaultValue: "grayscale-hover-reveal",
|
|
43430
|
+
ui: { intent: "style" }
|
|
43431
|
+
},
|
|
43432
|
+
{
|
|
43433
|
+
id: "imageBorder",
|
|
43434
|
+
type: "group",
|
|
43435
|
+
label: "Image border",
|
|
43436
|
+
schema: { fields: [
|
|
43437
|
+
{
|
|
43438
|
+
id: "enabled",
|
|
43439
|
+
type: "boolean",
|
|
43440
|
+
label: "Show border",
|
|
43441
|
+
defaultValue: true
|
|
43442
|
+
},
|
|
43443
|
+
{
|
|
43444
|
+
id: "colorToken",
|
|
43445
|
+
type: "text",
|
|
43446
|
+
label: "Border color",
|
|
43447
|
+
defaultValue: "accent",
|
|
43448
|
+
ui: { widget: "backgroundColor" }
|
|
43449
|
+
},
|
|
43450
|
+
{
|
|
43451
|
+
id: "opacity",
|
|
43452
|
+
type: "number",
|
|
43453
|
+
label: "Border opacity",
|
|
43454
|
+
defaultValue: 30,
|
|
43455
|
+
ui: {
|
|
43456
|
+
min: 0,
|
|
43457
|
+
max: 100
|
|
43458
|
+
}
|
|
43459
|
+
},
|
|
43460
|
+
{
|
|
43461
|
+
id: "width",
|
|
43462
|
+
type: "select",
|
|
43463
|
+
label: "Border width",
|
|
43464
|
+
options: [
|
|
43465
|
+
{
|
|
43466
|
+
value: "1",
|
|
43467
|
+
label: "Thin (1px)"
|
|
43468
|
+
},
|
|
43469
|
+
{
|
|
43470
|
+
value: "2",
|
|
43471
|
+
label: "Medium (2px)"
|
|
43472
|
+
},
|
|
43473
|
+
{
|
|
43474
|
+
value: "3",
|
|
43475
|
+
label: "Thick (3px)"
|
|
43476
|
+
}
|
|
43477
|
+
],
|
|
43478
|
+
defaultValue: "2"
|
|
43479
|
+
}
|
|
43480
|
+
] },
|
|
43481
|
+
ui: { intent: "style" }
|
|
43482
|
+
},
|
|
43483
|
+
{
|
|
43484
|
+
id: "imageCorners",
|
|
43485
|
+
type: "select",
|
|
43486
|
+
label: "Image corners",
|
|
43487
|
+
options: [
|
|
43488
|
+
{
|
|
43489
|
+
value: "none",
|
|
43490
|
+
label: "Square"
|
|
43491
|
+
},
|
|
43492
|
+
{
|
|
43493
|
+
value: "sm",
|
|
43494
|
+
label: "Slightly rounded"
|
|
43495
|
+
},
|
|
43496
|
+
{
|
|
43497
|
+
value: "md",
|
|
43498
|
+
label: "Rounded"
|
|
43499
|
+
},
|
|
43500
|
+
{
|
|
43501
|
+
value: "lg",
|
|
43502
|
+
label: "More rounded"
|
|
43503
|
+
},
|
|
43504
|
+
{
|
|
43505
|
+
value: "xl",
|
|
43506
|
+
label: "Very rounded"
|
|
43507
|
+
},
|
|
43508
|
+
{
|
|
43509
|
+
value: "2xl",
|
|
43510
|
+
label: "Extra rounded"
|
|
43511
|
+
},
|
|
43512
|
+
{
|
|
43513
|
+
value: "3xl",
|
|
43514
|
+
label: "Maximum rounded"
|
|
43515
|
+
}
|
|
43516
|
+
],
|
|
43517
|
+
defaultValue: "3xl",
|
|
43518
|
+
ui: { intent: "style" }
|
|
43519
|
+
}
|
|
43520
|
+
]);
|
|
43521
|
+
//#endregion
|
|
42255
43522
|
//#region ../blocks/src/system/blocks/image-gallery.ts
|
|
42256
43523
|
const grid$1 = (props, children, ...mods) => el("grid", props ?? void 0, children ?? void 0, ...mods);
|
|
42257
43524
|
const galleryContainer = (children, opts) => {
|
|
@@ -42466,7 +43733,11 @@ const emptyState$1 = {
|
|
|
42466
43733
|
}
|
|
42467
43734
|
};
|
|
42468
43735
|
const wrapVariant$1 = (layout, opts) => styledSection({
|
|
42469
|
-
children: galleryContainer([
|
|
43736
|
+
children: galleryContainer([
|
|
43737
|
+
...sectionHeaderLayoutNodes(),
|
|
43738
|
+
layout,
|
|
43739
|
+
emptyState$1
|
|
43740
|
+
], {
|
|
42470
43741
|
gap: "md",
|
|
42471
43742
|
fullWidth: opts?.fullWidth,
|
|
42472
43743
|
className: opts?.className
|
|
@@ -42475,6 +43746,28 @@ const wrapVariant$1 = (layout, opts) => styledSection({
|
|
|
42475
43746
|
spacing: "medium",
|
|
42476
43747
|
background: "background"
|
|
42477
43748
|
});
|
|
43749
|
+
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({
|
|
43750
|
+
as: "figcaption",
|
|
43751
|
+
...lookSlot("caption")
|
|
43752
|
+
}, bind(captionFrom), when(captionFrom))])], ...mods);
|
|
43753
|
+
const tilesLayout = styledSection({
|
|
43754
|
+
children: el("div", {
|
|
43755
|
+
className: "rb-container",
|
|
43756
|
+
...lookSlot("layout")
|
|
43757
|
+
}, [...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) => ({
|
|
43758
|
+
...node,
|
|
43759
|
+
$when: {
|
|
43760
|
+
when: {
|
|
43761
|
+
from: "content.images",
|
|
43762
|
+
transforms: [{ id: "array.length" }]
|
|
43763
|
+
},
|
|
43764
|
+
equals: 0
|
|
43765
|
+
}
|
|
43766
|
+
}))])]),
|
|
43767
|
+
baseClass: "",
|
|
43768
|
+
spacing: "medium",
|
|
43769
|
+
background: "background"
|
|
43770
|
+
});
|
|
42478
43771
|
const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
42479
43772
|
id: "block.image-gallery",
|
|
42480
43773
|
title: "Image Gallery",
|
|
@@ -42487,510 +43780,10 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
42487
43780
|
"marqueeSpeed",
|
|
42488
43781
|
"marqueePauseOnHover"
|
|
42489
43782
|
] },
|
|
42490
|
-
additionalFields:
|
|
42491
|
-
{
|
|
42492
|
-
id: "images",
|
|
42493
|
-
type: "repeater",
|
|
42494
|
-
label: "Images",
|
|
42495
|
-
itemLabel: "Image",
|
|
42496
|
-
minItems: 0,
|
|
42497
|
-
maxItems: 24,
|
|
42498
|
-
ui: {
|
|
42499
|
-
repeaterPreset: "thumbnailGrid",
|
|
42500
|
-
thumbnailField: "image",
|
|
42501
|
-
thumbnailAltField: "caption",
|
|
42502
|
-
thumbnailLabelField: "caption",
|
|
42503
|
-
thumbnailCardDensity: "compact"
|
|
42504
|
-
},
|
|
42505
|
-
schema: { fields: [{
|
|
42506
|
-
id: "image",
|
|
42507
|
-
type: "media",
|
|
42508
|
-
label: "Image",
|
|
42509
|
-
required: true,
|
|
42510
|
-
mediaKinds: ["image"]
|
|
42511
|
-
}, {
|
|
42512
|
-
id: "caption",
|
|
42513
|
-
type: "text",
|
|
42514
|
-
label: "Caption",
|
|
42515
|
-
description: "Optional caption displayed below the image and used as the editor card label",
|
|
42516
|
-
maxLength: 200
|
|
42517
|
-
}] }
|
|
42518
|
-
},
|
|
42519
|
-
{
|
|
42520
|
-
id: "fullBleed",
|
|
42521
|
-
type: "boolean",
|
|
42522
|
-
label: "Full bleed",
|
|
42523
|
-
description: "Extend the gallery edge-to-edge by removing section side padding and container max-width.",
|
|
42524
|
-
defaultValue: false,
|
|
42525
|
-
ui: {
|
|
42526
|
-
intent: "display",
|
|
42527
|
-
visibleWhen: {
|
|
42528
|
-
field: "variant",
|
|
42529
|
-
notIn: ["marquee"]
|
|
42530
|
-
}
|
|
42531
|
-
}
|
|
42532
|
-
},
|
|
42533
|
-
{
|
|
42534
|
-
id: "aspectRatio",
|
|
42535
|
-
type: "select",
|
|
42536
|
-
label: "Aspect ratio",
|
|
42537
|
-
description: "Crop images to a consistent aspect ratio.",
|
|
42538
|
-
defaultValue: "1/1",
|
|
42539
|
-
options: [
|
|
42540
|
-
{
|
|
42541
|
-
value: "auto",
|
|
42542
|
-
label: "Original"
|
|
42543
|
-
},
|
|
42544
|
-
{
|
|
42545
|
-
value: "1/1",
|
|
42546
|
-
label: "1:1 (Square)"
|
|
42547
|
-
},
|
|
42548
|
-
{
|
|
42549
|
-
value: "4/3",
|
|
42550
|
-
label: "4:3 (Standard)"
|
|
42551
|
-
},
|
|
42552
|
-
{
|
|
42553
|
-
value: "16/9",
|
|
42554
|
-
label: "16:9 (Widescreen)"
|
|
42555
|
-
},
|
|
42556
|
-
{
|
|
42557
|
-
value: "3/2",
|
|
42558
|
-
label: "3:2 (Classic)"
|
|
42559
|
-
},
|
|
42560
|
-
{
|
|
42561
|
-
value: "3/4",
|
|
42562
|
-
label: "3:4 (Portrait)"
|
|
42563
|
-
}
|
|
42564
|
-
],
|
|
42565
|
-
ui: {
|
|
42566
|
-
intent: "display",
|
|
42567
|
-
visibleWhen: {
|
|
42568
|
-
field: "variant",
|
|
42569
|
-
notIn: ["masonry", "marquee"]
|
|
42570
|
-
}
|
|
42571
|
-
}
|
|
42572
|
-
},
|
|
42573
|
-
{
|
|
42574
|
-
id: "slidesToShow",
|
|
42575
|
-
type: "select",
|
|
42576
|
-
label: "Images per view (mobile)",
|
|
42577
|
-
description: "Number of images visible at once on small screens.",
|
|
42578
|
-
defaultValue: "1",
|
|
42579
|
-
options: [
|
|
42580
|
-
{
|
|
42581
|
-
value: "1",
|
|
42582
|
-
label: "One at a time"
|
|
42583
|
-
},
|
|
42584
|
-
{
|
|
42585
|
-
value: "2",
|
|
42586
|
-
label: "Two at a time"
|
|
42587
|
-
},
|
|
42588
|
-
{
|
|
42589
|
-
value: "3",
|
|
42590
|
-
label: "Three at a time"
|
|
42591
|
-
}
|
|
42592
|
-
],
|
|
42593
|
-
ui: {
|
|
42594
|
-
intent: "display",
|
|
42595
|
-
visibleWhen: {
|
|
42596
|
-
field: "variant",
|
|
42597
|
-
equals: "carousel"
|
|
42598
|
-
}
|
|
42599
|
-
}
|
|
42600
|
-
},
|
|
42601
|
-
{
|
|
42602
|
-
id: "slidesToShowTablet",
|
|
42603
|
-
type: "select",
|
|
42604
|
-
label: "Images per view (tablet)",
|
|
42605
|
-
description: "Number of images visible on medium screens.",
|
|
42606
|
-
options: [
|
|
42607
|
-
{
|
|
42608
|
-
value: "",
|
|
42609
|
-
label: "Same as mobile"
|
|
42610
|
-
},
|
|
42611
|
-
{
|
|
42612
|
-
value: "1",
|
|
42613
|
-
label: "One at a time"
|
|
42614
|
-
},
|
|
42615
|
-
{
|
|
42616
|
-
value: "2",
|
|
42617
|
-
label: "Two at a time"
|
|
42618
|
-
},
|
|
42619
|
-
{
|
|
42620
|
-
value: "3",
|
|
42621
|
-
label: "Three at a time"
|
|
42622
|
-
}
|
|
42623
|
-
],
|
|
42624
|
-
ui: {
|
|
42625
|
-
intent: "display",
|
|
42626
|
-
visibleWhen: {
|
|
42627
|
-
field: "variant",
|
|
42628
|
-
equals: "carousel"
|
|
42629
|
-
}
|
|
42630
|
-
}
|
|
42631
|
-
},
|
|
42632
|
-
{
|
|
42633
|
-
id: "slidesToShowDesktop",
|
|
42634
|
-
type: "select",
|
|
42635
|
-
label: "Images per view (desktop)",
|
|
42636
|
-
description: "Number of images visible on large screens.",
|
|
42637
|
-
options: [
|
|
42638
|
-
{
|
|
42639
|
-
value: "",
|
|
42640
|
-
label: "Same as tablet"
|
|
42641
|
-
},
|
|
42642
|
-
{
|
|
42643
|
-
value: "1",
|
|
42644
|
-
label: "One at a time"
|
|
42645
|
-
},
|
|
42646
|
-
{
|
|
42647
|
-
value: "2",
|
|
42648
|
-
label: "Two at a time"
|
|
42649
|
-
},
|
|
42650
|
-
{
|
|
42651
|
-
value: "3",
|
|
42652
|
-
label: "Three at a time"
|
|
42653
|
-
}
|
|
42654
|
-
],
|
|
42655
|
-
ui: {
|
|
42656
|
-
intent: "display",
|
|
42657
|
-
visibleWhen: {
|
|
42658
|
-
field: "variant",
|
|
42659
|
-
equals: "carousel"
|
|
42660
|
-
}
|
|
42661
|
-
}
|
|
42662
|
-
},
|
|
42663
|
-
{
|
|
42664
|
-
id: "transition",
|
|
42665
|
-
type: "select",
|
|
42666
|
-
label: "Transition",
|
|
42667
|
-
description: "Animation style between slides.",
|
|
42668
|
-
defaultValue: "slide",
|
|
42669
|
-
options: [{
|
|
42670
|
-
value: "slide",
|
|
42671
|
-
label: "Slide"
|
|
42672
|
-
}, {
|
|
42673
|
-
value: "fade",
|
|
42674
|
-
label: "Fade"
|
|
42675
|
-
}],
|
|
42676
|
-
ui: {
|
|
42677
|
-
intent: "display",
|
|
42678
|
-
visibleWhen: {
|
|
42679
|
-
field: "variant",
|
|
42680
|
-
equals: "carousel"
|
|
42681
|
-
}
|
|
42682
|
-
}
|
|
42683
|
-
},
|
|
42684
|
-
{
|
|
42685
|
-
id: "showControls",
|
|
42686
|
-
type: "boolean",
|
|
42687
|
-
label: "Show arrows",
|
|
42688
|
-
defaultValue: true,
|
|
42689
|
-
ui: {
|
|
42690
|
-
intent: "behavior",
|
|
42691
|
-
visibleWhen: {
|
|
42692
|
-
field: "variant",
|
|
42693
|
-
equals: "carousel"
|
|
42694
|
-
}
|
|
42695
|
-
}
|
|
42696
|
-
},
|
|
42697
|
-
{
|
|
42698
|
-
id: "showDots",
|
|
42699
|
-
type: "boolean",
|
|
42700
|
-
label: "Show dots",
|
|
42701
|
-
defaultValue: false,
|
|
42702
|
-
ui: {
|
|
42703
|
-
intent: "behavior",
|
|
42704
|
-
visibleWhen: {
|
|
42705
|
-
field: "variant",
|
|
42706
|
-
equals: "carousel"
|
|
42707
|
-
}
|
|
42708
|
-
}
|
|
42709
|
-
},
|
|
42710
|
-
{
|
|
42711
|
-
id: "autoplay",
|
|
42712
|
-
type: "boolean",
|
|
42713
|
-
label: "Autoplay",
|
|
42714
|
-
defaultValue: false,
|
|
42715
|
-
ui: {
|
|
42716
|
-
intent: "behavior",
|
|
42717
|
-
visibleWhen: {
|
|
42718
|
-
field: "variant",
|
|
42719
|
-
equals: "carousel"
|
|
42720
|
-
}
|
|
42721
|
-
}
|
|
42722
|
-
},
|
|
42723
|
-
{
|
|
42724
|
-
id: "autoplayDelay",
|
|
42725
|
-
type: "select",
|
|
42726
|
-
label: "Autoplay delay",
|
|
42727
|
-
defaultValue: "5000",
|
|
42728
|
-
options: [
|
|
42729
|
-
{
|
|
42730
|
-
value: "3000",
|
|
42731
|
-
label: "3 seconds"
|
|
42732
|
-
},
|
|
42733
|
-
{
|
|
42734
|
-
value: "5000",
|
|
42735
|
-
label: "5 seconds"
|
|
42736
|
-
},
|
|
42737
|
-
{
|
|
42738
|
-
value: "7000",
|
|
42739
|
-
label: "7 seconds"
|
|
42740
|
-
},
|
|
42741
|
-
{
|
|
42742
|
-
value: "10000",
|
|
42743
|
-
label: "10 seconds"
|
|
42744
|
-
}
|
|
42745
|
-
],
|
|
42746
|
-
ui: {
|
|
42747
|
-
intent: "behavior",
|
|
42748
|
-
visibleWhen: {
|
|
42749
|
-
field: "variant",
|
|
42750
|
-
equals: "carousel"
|
|
42751
|
-
}
|
|
42752
|
-
}
|
|
42753
|
-
},
|
|
42754
|
-
{
|
|
42755
|
-
id: "arrowVisibility",
|
|
42756
|
-
type: "select",
|
|
42757
|
-
label: "Arrow visibility",
|
|
42758
|
-
defaultValue: "always",
|
|
42759
|
-
options: [{
|
|
42760
|
-
value: "always",
|
|
42761
|
-
label: "Always visible"
|
|
42762
|
-
}, {
|
|
42763
|
-
value: "hover",
|
|
42764
|
-
label: "Show on hover"
|
|
42765
|
-
}],
|
|
42766
|
-
ui: {
|
|
42767
|
-
intent: "behavior",
|
|
42768
|
-
visibleWhen: {
|
|
42769
|
-
field: "variant",
|
|
42770
|
-
equals: "carousel"
|
|
42771
|
-
}
|
|
42772
|
-
}
|
|
42773
|
-
},
|
|
42774
|
-
{
|
|
42775
|
-
id: "loop",
|
|
42776
|
-
type: "boolean",
|
|
42777
|
-
label: "Loop slides",
|
|
42778
|
-
defaultValue: true,
|
|
42779
|
-
ui: {
|
|
42780
|
-
intent: "behavior",
|
|
42781
|
-
visibleWhen: {
|
|
42782
|
-
field: "variant",
|
|
42783
|
-
equals: "carousel"
|
|
42784
|
-
}
|
|
42785
|
-
}
|
|
42786
|
-
},
|
|
42787
|
-
{
|
|
42788
|
-
id: "marqueeDirection",
|
|
42789
|
-
type: "select",
|
|
42790
|
-
label: "Scroll direction",
|
|
42791
|
-
options: [{
|
|
42792
|
-
value: "left",
|
|
42793
|
-
label: "Left"
|
|
42794
|
-
}, {
|
|
42795
|
-
value: "right",
|
|
42796
|
-
label: "Right"
|
|
42797
|
-
}],
|
|
42798
|
-
defaultValue: "left",
|
|
42799
|
-
ui: {
|
|
42800
|
-
intent: "display",
|
|
42801
|
-
visibleWhen: {
|
|
42802
|
-
field: "variant",
|
|
42803
|
-
equals: "marquee"
|
|
42804
|
-
}
|
|
42805
|
-
}
|
|
42806
|
-
},
|
|
42807
|
-
{
|
|
42808
|
-
id: "marqueeSpeed",
|
|
42809
|
-
type: "select",
|
|
42810
|
-
label: "Scroll speed",
|
|
42811
|
-
options: [
|
|
42812
|
-
{
|
|
42813
|
-
value: "slow",
|
|
42814
|
-
label: "Slow (60s)"
|
|
42815
|
-
},
|
|
42816
|
-
{
|
|
42817
|
-
value: "medium",
|
|
42818
|
-
label: "Medium (40s)"
|
|
42819
|
-
},
|
|
42820
|
-
{
|
|
42821
|
-
value: "fast",
|
|
42822
|
-
label: "Fast (20s)"
|
|
42823
|
-
}
|
|
42824
|
-
],
|
|
42825
|
-
defaultValue: "medium",
|
|
42826
|
-
ui: {
|
|
42827
|
-
intent: "display",
|
|
42828
|
-
visibleWhen: {
|
|
42829
|
-
field: "variant",
|
|
42830
|
-
equals: "marquee"
|
|
42831
|
-
}
|
|
42832
|
-
}
|
|
42833
|
-
},
|
|
42834
|
-
{
|
|
42835
|
-
id: "marqueePauseOnHover",
|
|
42836
|
-
type: "boolean",
|
|
42837
|
-
label: "Pause on hover",
|
|
42838
|
-
defaultValue: true,
|
|
42839
|
-
ui: {
|
|
42840
|
-
intent: "behavior",
|
|
42841
|
-
visibleWhen: {
|
|
42842
|
-
field: "variant",
|
|
42843
|
-
equals: "marquee"
|
|
42844
|
-
}
|
|
42845
|
-
}
|
|
42846
|
-
},
|
|
42847
|
-
{
|
|
42848
|
-
id: "marqueeImageSize",
|
|
42849
|
-
type: "select",
|
|
42850
|
-
label: "Image size",
|
|
42851
|
-
options: [
|
|
42852
|
-
{
|
|
42853
|
-
value: "sm",
|
|
42854
|
-
label: "Small (200px)"
|
|
42855
|
-
},
|
|
42856
|
-
{
|
|
42857
|
-
value: "md",
|
|
42858
|
-
label: "Medium (256px)"
|
|
42859
|
-
},
|
|
42860
|
-
{
|
|
42861
|
-
value: "lg",
|
|
42862
|
-
label: "Large (320px)"
|
|
42863
|
-
},
|
|
42864
|
-
{
|
|
42865
|
-
value: "xl",
|
|
42866
|
-
label: "Extra large (400px)"
|
|
42867
|
-
}
|
|
42868
|
-
],
|
|
42869
|
-
defaultValue: "md",
|
|
42870
|
-
ui: {
|
|
42871
|
-
intent: "display",
|
|
42872
|
-
visibleWhen: {
|
|
42873
|
-
field: "variant",
|
|
42874
|
-
equals: "marquee"
|
|
42875
|
-
}
|
|
42876
|
-
}
|
|
42877
|
-
},
|
|
42878
|
-
{
|
|
42879
|
-
id: "imageFilter",
|
|
42880
|
-
type: "select",
|
|
42881
|
-
label: "Image filter",
|
|
42882
|
-
options: [
|
|
42883
|
-
{
|
|
42884
|
-
value: "none",
|
|
42885
|
-
label: "None"
|
|
42886
|
-
},
|
|
42887
|
-
{
|
|
42888
|
-
value: "grayscale",
|
|
42889
|
-
label: "Grayscale"
|
|
42890
|
-
},
|
|
42891
|
-
{
|
|
42892
|
-
value: "grayscale-hover-reveal",
|
|
42893
|
-
label: "Grayscale (color on hover)"
|
|
42894
|
-
},
|
|
42895
|
-
{
|
|
42896
|
-
value: "sepia",
|
|
42897
|
-
label: "Sepia"
|
|
42898
|
-
}
|
|
42899
|
-
],
|
|
42900
|
-
defaultValue: "grayscale-hover-reveal",
|
|
42901
|
-
ui: { intent: "style" }
|
|
42902
|
-
},
|
|
42903
|
-
{
|
|
42904
|
-
id: "imageBorder",
|
|
42905
|
-
type: "group",
|
|
42906
|
-
label: "Image border",
|
|
42907
|
-
schema: { fields: [
|
|
42908
|
-
{
|
|
42909
|
-
id: "enabled",
|
|
42910
|
-
type: "boolean",
|
|
42911
|
-
label: "Show border",
|
|
42912
|
-
defaultValue: true
|
|
42913
|
-
},
|
|
42914
|
-
{
|
|
42915
|
-
id: "colorToken",
|
|
42916
|
-
type: "text",
|
|
42917
|
-
label: "Border color",
|
|
42918
|
-
defaultValue: "accent",
|
|
42919
|
-
ui: { widget: "backgroundColor" }
|
|
42920
|
-
},
|
|
42921
|
-
{
|
|
42922
|
-
id: "opacity",
|
|
42923
|
-
type: "number",
|
|
42924
|
-
label: "Border opacity",
|
|
42925
|
-
defaultValue: 30,
|
|
42926
|
-
ui: {
|
|
42927
|
-
min: 0,
|
|
42928
|
-
max: 100
|
|
42929
|
-
}
|
|
42930
|
-
},
|
|
42931
|
-
{
|
|
42932
|
-
id: "width",
|
|
42933
|
-
type: "select",
|
|
42934
|
-
label: "Border width",
|
|
42935
|
-
options: [
|
|
42936
|
-
{
|
|
42937
|
-
value: "1",
|
|
42938
|
-
label: "Thin (1px)"
|
|
42939
|
-
},
|
|
42940
|
-
{
|
|
42941
|
-
value: "2",
|
|
42942
|
-
label: "Medium (2px)"
|
|
42943
|
-
},
|
|
42944
|
-
{
|
|
42945
|
-
value: "3",
|
|
42946
|
-
label: "Thick (3px)"
|
|
42947
|
-
}
|
|
42948
|
-
],
|
|
42949
|
-
defaultValue: "2"
|
|
42950
|
-
}
|
|
42951
|
-
] },
|
|
42952
|
-
ui: { intent: "style" }
|
|
42953
|
-
},
|
|
42954
|
-
{
|
|
42955
|
-
id: "imageCorners",
|
|
42956
|
-
type: "select",
|
|
42957
|
-
label: "Image corners",
|
|
42958
|
-
options: [
|
|
42959
|
-
{
|
|
42960
|
-
value: "none",
|
|
42961
|
-
label: "Square"
|
|
42962
|
-
},
|
|
42963
|
-
{
|
|
42964
|
-
value: "sm",
|
|
42965
|
-
label: "Slightly rounded"
|
|
42966
|
-
},
|
|
42967
|
-
{
|
|
42968
|
-
value: "md",
|
|
42969
|
-
label: "Rounded"
|
|
42970
|
-
},
|
|
42971
|
-
{
|
|
42972
|
-
value: "lg",
|
|
42973
|
-
label: "More rounded"
|
|
42974
|
-
},
|
|
42975
|
-
{
|
|
42976
|
-
value: "xl",
|
|
42977
|
-
label: "Very rounded"
|
|
42978
|
-
},
|
|
42979
|
-
{
|
|
42980
|
-
value: "2xl",
|
|
42981
|
-
label: "Extra rounded"
|
|
42982
|
-
},
|
|
42983
|
-
{
|
|
42984
|
-
value: "3xl",
|
|
42985
|
-
label: "Maximum rounded"
|
|
42986
|
-
}
|
|
42987
|
-
],
|
|
42988
|
-
defaultValue: "3xl",
|
|
42989
|
-
ui: { intent: "style" }
|
|
42990
|
-
}
|
|
42991
|
-
]),
|
|
43783
|
+
additionalFields: imageGalleryFields,
|
|
42992
43784
|
layout: wrapVariant$1(gridLayout),
|
|
42993
43785
|
variants: {
|
|
43786
|
+
tiles: tilesLayout,
|
|
42994
43787
|
grid: wrapVariant$1(gridLayout),
|
|
42995
43788
|
carousel: wrapVariant$1(carouselLayout),
|
|
42996
43789
|
masonry: wrapVariant$1(masonryLayout),
|
|
@@ -42999,7 +43792,10 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
42999
43792
|
className: "rb-image-gallery-marquee-container"
|
|
43000
43793
|
})
|
|
43001
43794
|
},
|
|
43002
|
-
variantMeaning: {
|
|
43795
|
+
variantMeaning: {
|
|
43796
|
+
kind: "arrangement",
|
|
43797
|
+
lookOnlyKeys: ["tiles"]
|
|
43798
|
+
},
|
|
43003
43799
|
defaultVariant: "grid",
|
|
43004
43800
|
variantOptions: {
|
|
43005
43801
|
grid: {
|
|
@@ -45219,76 +46015,74 @@ const giftingBlockDefinition = {
|
|
|
45219
46015
|
/**
|
|
45220
46016
|
* Get form fields based on preset configuration.
|
|
45221
46017
|
*/
|
|
45222
|
-
function getGlobalFormFields(form) {
|
|
45223
|
-
const
|
|
45224
|
-
|
|
45225
|
-
|
|
45226
|
-
|
|
45227
|
-
|
|
45228
|
-
|
|
45229
|
-
|
|
45230
|
-
|
|
45231
|
-
|
|
45232
|
-
case "
|
|
45233
|
-
|
|
45234
|
-
|
|
45235
|
-
|
|
45236
|
-
|
|
45237
|
-
|
|
45238
|
-
|
|
46018
|
+
function getGlobalFormFields(form, presentation = {}) {
|
|
46019
|
+
const fields = withOptionalPhone(newsletterPresetFields(form.fields), form.includeOptionalPhone);
|
|
46020
|
+
return presentation.lookSlots ? fields.map((field) => ({
|
|
46021
|
+
...field,
|
|
46022
|
+
label: lookFieldLabel(field)
|
|
46023
|
+
})) : fields;
|
|
46024
|
+
}
|
|
46025
|
+
function lookFieldLabel(field) {
|
|
46026
|
+
switch (field.id) {
|
|
46027
|
+
case "firstName": return "First name";
|
|
46028
|
+
case "lastName": return "Last name";
|
|
46029
|
+
default: return field.label;
|
|
46030
|
+
}
|
|
46031
|
+
}
|
|
46032
|
+
const emailField = {
|
|
46033
|
+
id: "email",
|
|
46034
|
+
type: "email",
|
|
46035
|
+
label: "Email",
|
|
46036
|
+
required: true,
|
|
46037
|
+
placeholder: "your@email.com"
|
|
46038
|
+
};
|
|
46039
|
+
const firstNameField = (required) => ({
|
|
46040
|
+
id: "firstName",
|
|
46041
|
+
type: "text",
|
|
46042
|
+
label: "First Name",
|
|
46043
|
+
required,
|
|
46044
|
+
placeholder: "First name"
|
|
46045
|
+
});
|
|
46046
|
+
function newsletterPresetFields(fields) {
|
|
46047
|
+
switch (fields.preset) {
|
|
46048
|
+
case "emailOnly": return [emailField];
|
|
46049
|
+
case "emailName": return [emailField, {
|
|
45239
46050
|
id: "name",
|
|
45240
46051
|
type: "text",
|
|
45241
46052
|
label: "Name",
|
|
45242
|
-
required:
|
|
46053
|
+
required: fields.name === "required",
|
|
45243
46054
|
placeholder: "Your name"
|
|
45244
|
-
}]
|
|
45245
|
-
case "
|
|
45246
|
-
|
|
45247
|
-
|
|
45248
|
-
|
|
45249
|
-
label: "Email",
|
|
45250
|
-
required: true,
|
|
45251
|
-
placeholder: "your@email.com"
|
|
45252
|
-
},
|
|
45253
|
-
{
|
|
45254
|
-
id: "firstName",
|
|
45255
|
-
type: "text",
|
|
45256
|
-
label: "First Name",
|
|
45257
|
-
required: form.fields.firstName === "required",
|
|
45258
|
-
placeholder: "First name"
|
|
45259
|
-
},
|
|
46055
|
+
}];
|
|
46056
|
+
case "emailFirstName": return [emailField, firstNameField(fields.firstName === "required")];
|
|
46057
|
+
case "emailFirstLast": return [
|
|
46058
|
+
emailField,
|
|
46059
|
+
firstNameField(fields.firstName === "required"),
|
|
45260
46060
|
{
|
|
45261
46061
|
id: "lastName",
|
|
45262
46062
|
type: "text",
|
|
45263
46063
|
label: "Last Name",
|
|
45264
|
-
required:
|
|
46064
|
+
required: fields.lastName === "required",
|
|
45265
46065
|
placeholder: "Last name"
|
|
45266
46066
|
}
|
|
45267
|
-
]
|
|
45268
|
-
case "emailNameCompany": return
|
|
45269
|
-
|
|
45270
|
-
id: "email",
|
|
45271
|
-
type: "email",
|
|
45272
|
-
label: "Email",
|
|
45273
|
-
required: true,
|
|
45274
|
-
placeholder: "your@email.com"
|
|
45275
|
-
},
|
|
46067
|
+
];
|
|
46068
|
+
case "emailNameCompany": return [
|
|
46069
|
+
emailField,
|
|
45276
46070
|
{
|
|
45277
46071
|
id: "name",
|
|
45278
46072
|
type: "text",
|
|
45279
46073
|
label: "Name",
|
|
45280
|
-
required:
|
|
46074
|
+
required: fields.name === "required",
|
|
45281
46075
|
placeholder: "Your name"
|
|
45282
46076
|
},
|
|
45283
46077
|
{
|
|
45284
46078
|
id: "company",
|
|
45285
46079
|
type: "text",
|
|
45286
46080
|
label: "Company",
|
|
45287
|
-
required:
|
|
46081
|
+
required: fields.company === "required",
|
|
45288
46082
|
placeholder: "Company name"
|
|
45289
46083
|
}
|
|
45290
|
-
]
|
|
45291
|
-
default:
|
|
46084
|
+
];
|
|
46085
|
+
default: return assertNever$3(fields);
|
|
45292
46086
|
}
|
|
45293
46087
|
}
|
|
45294
46088
|
function withOptionalPhone(fields, includePhone) {
|
|
@@ -45350,6 +46144,7 @@ const mailingListSignupBlockSourceRefSchema = z.object({
|
|
|
45350
46144
|
});
|
|
45351
46145
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
45352
46146
|
const newsletterSourceCommonSchema = z.object({
|
|
46147
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
45353
46148
|
siteId: z.string().optional(),
|
|
45354
46149
|
apiBaseUrl: z.string().optional(),
|
|
45355
46150
|
mailingList: mailingListContextSchema.optional(),
|
|
@@ -45382,6 +46177,7 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
|
45382
46177
|
newsletterSourceCommonSchema.extend({ source: z.literal("preview") })
|
|
45383
46178
|
]);
|
|
45384
46179
|
const newsletterDisplaySchema = z.object({
|
|
46180
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
45385
46181
|
kind: z.literal("newsletter-form"),
|
|
45386
46182
|
availability: z.enum(["ready", "unavailable"]),
|
|
45387
46183
|
className: z.string().nullable(),
|
|
@@ -45448,13 +46244,14 @@ function buildNewsletterDisplay(source) {
|
|
|
45448
46244
|
const choices = resolveRuntimeChoices(assessment);
|
|
45449
46245
|
return {
|
|
45450
46246
|
kind: "newsletter-form",
|
|
46247
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
45451
46248
|
availability: assessment.tag === "available" ? "ready" : "unavailable",
|
|
45452
46249
|
className: source.className ?? null,
|
|
45453
46250
|
buttonLabel: form.buttonLabel,
|
|
45454
46251
|
successMessage: form.successMessage,
|
|
45455
46252
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
45456
46253
|
privacyNote: form.privacyNote,
|
|
45457
|
-
fields: getGlobalFormFields(form),
|
|
46254
|
+
fields: getGlobalFormFields(form, source),
|
|
45458
46255
|
choices
|
|
45459
46256
|
};
|
|
45460
46257
|
}
|
|
@@ -45526,32 +46323,50 @@ function parseRequiredMailingListSignedSourceToken(value) {
|
|
|
45526
46323
|
//#region ../blocks/src/system/blocks/newsletter-signup.ts
|
|
45527
46324
|
const stackedComposition = composeFragments([{ fragment: newsletterCopyFragment }, { fragment: newsletterFormFragment }]);
|
|
45528
46325
|
const stackedLayout = styledSection({
|
|
45529
|
-
children: sectionContainer(stackedComposition.layout, {
|
|
46326
|
+
children: props(lookSlot("layout"))(sectionContainer(stackedComposition.layout, {
|
|
45530
46327
|
gap: "md",
|
|
45531
46328
|
className: "rb-text-center newsletter-stacked"
|
|
45532
|
-
}),
|
|
46329
|
+
})),
|
|
45533
46330
|
baseClass: "",
|
|
45534
46331
|
spacing: "medium",
|
|
45535
46332
|
background: "surface"
|
|
45536
46333
|
});
|
|
45537
46334
|
const inlineLayout = styledSection({
|
|
45538
|
-
children: sectionContainer(stackedComposition.layout, {
|
|
46335
|
+
children: props(lookSlot("layout"))(sectionContainer(stackedComposition.layout, {
|
|
45539
46336
|
gap: "md",
|
|
45540
46337
|
className: "newsletter-inline"
|
|
45541
|
-
}),
|
|
46338
|
+
})),
|
|
45542
46339
|
baseClass: "",
|
|
45543
46340
|
spacing: "medium",
|
|
45544
46341
|
background: "surface"
|
|
45545
46342
|
});
|
|
45546
46343
|
const editorialSplitLayout = styledSection({
|
|
45547
|
-
children:
|
|
46344
|
+
children: props(lookSlot("layout"))(sectionContainer([el("div", {
|
|
46345
|
+
className: "newsletter-editorial-split-copy",
|
|
46346
|
+
...lookSlot("head")
|
|
46347
|
+
}, newsletterCopyFragment.layout), el("div", {
|
|
46348
|
+
className: "newsletter-editorial-split-form",
|
|
46349
|
+
...lookSlot("panel")
|
|
46350
|
+
}, newsletterFormFragment.layout)], {
|
|
45548
46351
|
gap: "lg",
|
|
45549
46352
|
className: "newsletter-editorial-split"
|
|
45550
|
-
}),
|
|
46353
|
+
})),
|
|
45551
46354
|
baseClass: "",
|
|
45552
46355
|
spacing: "comfortable",
|
|
45553
46356
|
background: "surface"
|
|
45554
46357
|
});
|
|
46358
|
+
const archLayout = styledSection({
|
|
46359
|
+
children: el("div", {
|
|
46360
|
+
className: "rb-container",
|
|
46361
|
+
...lookSlot("layout")
|
|
46362
|
+
}, [el("div", lookSlot("frame"), [el("div", {
|
|
46363
|
+
className: "rb-grid",
|
|
46364
|
+
...lookSlot("head")
|
|
46365
|
+
}, newsletterCopyFragment.layout), ...newsletterFormFragment.layout])]),
|
|
46366
|
+
baseClass: "",
|
|
46367
|
+
spacing: "medium",
|
|
46368
|
+
background: "surface"
|
|
46369
|
+
});
|
|
45555
46370
|
const newsletterSignupManifest = createBlockManifest({
|
|
45556
46371
|
id: "block.newsletter-signup",
|
|
45557
46372
|
title: "Newsletter Signup",
|
|
@@ -45566,13 +46381,26 @@ const newsletterSignupManifest = createBlockManifest({
|
|
|
45566
46381
|
fragment: newsletterFormFragment,
|
|
45567
46382
|
fieldPriority: 1
|
|
45568
46383
|
}],
|
|
46384
|
+
additionalFields: [{
|
|
46385
|
+
id: "archFrame",
|
|
46386
|
+
type: "boolean",
|
|
46387
|
+
label: "Arch frame",
|
|
46388
|
+
ui: {
|
|
46389
|
+
intent: "display",
|
|
46390
|
+
hidden: true
|
|
46391
|
+
}
|
|
46392
|
+
}],
|
|
45569
46393
|
layout: stackedLayout,
|
|
45570
46394
|
variants: {
|
|
46395
|
+
arch: archLayout,
|
|
45571
46396
|
stacked: stackedLayout,
|
|
45572
46397
|
inline: inlineLayout,
|
|
45573
46398
|
"editorial-split": editorialSplitLayout
|
|
45574
46399
|
},
|
|
45575
|
-
variantMeaning: {
|
|
46400
|
+
variantMeaning: {
|
|
46401
|
+
kind: "arrangement",
|
|
46402
|
+
lookOnlyKeys: ["arch"]
|
|
46403
|
+
},
|
|
45576
46404
|
defaultVariant: "stacked",
|
|
45577
46405
|
variantOptions: {
|
|
45578
46406
|
stacked: {
|
|
@@ -46659,7 +47487,7 @@ const systemBlockDefinitions = [
|
|
|
46659
47487
|
})
|
|
46660
47488
|
]
|
|
46661
47489
|
})),
|
|
46662
|
-
withDesignCapability("block.body-text", bodyTextBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47490
|
+
withDesignCapability("block.body-text", bodyTextBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
46663
47491
|
flow: bodyFlow,
|
|
46664
47492
|
layoutProfiles: [
|
|
46665
47493
|
layoutProfile({
|
|
@@ -47034,7 +47862,7 @@ const systemBlockDefinitions = [
|
|
|
47034
47862
|
weight: "quiet"
|
|
47035
47863
|
})]
|
|
47036
47864
|
})),
|
|
47037
|
-
withDesignCapability("block.image-gallery", imageGalleryBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47865
|
+
withDesignCapability("block.image-gallery", imageGalleryBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
47038
47866
|
flow: mediaFlow,
|
|
47039
47867
|
layoutProfiles: [
|
|
47040
47868
|
layoutProfile({
|
|
@@ -47123,7 +47951,7 @@ const systemBlockDefinitions = [
|
|
|
47123
47951
|
weight: "standard"
|
|
47124
47952
|
})]
|
|
47125
47953
|
})),
|
|
47126
|
-
withDesignCapability("block.newsletter-signup", newsletterSignupBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47954
|
+
withDesignCapability("block.newsletter-signup", newsletterSignupBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
47127
47955
|
flow: conversionFlow,
|
|
47128
47956
|
layoutProfiles: [
|
|
47129
47957
|
layoutProfile({
|
|
@@ -47902,7 +48730,14 @@ const systemCustomizeFacetDefinitions = [
|
|
|
47902
48730
|
}
|
|
47903
48731
|
], "3", true),
|
|
47904
48732
|
fixedKnob("block.testimonials", "tilt", "Tilt the small cards", onOff, "true", false, true),
|
|
47905
|
-
|
|
48733
|
+
{
|
|
48734
|
+
...fixedKnob("block.testimonials", "archFrame", "Arch frame", onOff, "true", false, true),
|
|
48735
|
+
blockKinds: [
|
|
48736
|
+
"block.testimonials",
|
|
48737
|
+
"block.newsletter-signup",
|
|
48738
|
+
"block.form"
|
|
48739
|
+
]
|
|
48740
|
+
},
|
|
47906
48741
|
fixedKnob("block.hero", "candleGlow", "Candle glow", onOff, "true", false, true),
|
|
47907
48742
|
fixedKnob("block.hero", "columnGuides", "Column guides", onOff, "true", false, true),
|
|
47908
48743
|
fixedKnob("block.hero", "titleSize", "Headline size", [
|
|
@@ -47926,6 +48761,15 @@ const systemCustomizeFacetDefinitions = [
|
|
|
47926
48761
|
value: "right",
|
|
47927
48762
|
label: "Right"
|
|
47928
48763
|
}], "right"),
|
|
48764
|
+
fixedKnob("block.media-text", "imagePosition", "Photo side", [{
|
|
48765
|
+
value: "left",
|
|
48766
|
+
label: "Left"
|
|
48767
|
+
}, {
|
|
48768
|
+
value: "right",
|
|
48769
|
+
label: "Right"
|
|
48770
|
+
}], "left"),
|
|
48771
|
+
fixedKnob("block.media-text", "imageShape", "Media shape", standardImageShapeOptions, "default"),
|
|
48772
|
+
fixedKnob("block.media-text", "aspectRatio", "Media aspect ratio", standardAspectRatioOptions, "auto"),
|
|
47929
48773
|
textKnob("stickerLine", "Sticker line", 32),
|
|
47930
48774
|
textKnob("smallCaption", "Small caption", 24),
|
|
47931
48775
|
{
|
|
@@ -48114,10 +48958,7 @@ function arrangementPhotoContent(content, knobs) {
|
|
|
48114
48958
|
}) };
|
|
48115
48959
|
}
|
|
48116
48960
|
function arrangementContentFacts(content) {
|
|
48117
|
-
const
|
|
48118
|
-
const background = isObjectRecord$1(section.background) ? section.background : {};
|
|
48119
|
-
const itemPhotos = Array.isArray(content.cards) ? content.cards.filter((card) => isObjectRecord$1(card) && isObjectRecord$1(card.media)).length : 0;
|
|
48120
|
-
const photoCount = Array.isArray(content.cards) ? itemPhotos : isObjectRecord$1(background.image) ? 1 : 0;
|
|
48961
|
+
const photoCount = arrangementPhotoCount(content);
|
|
48121
48962
|
return {
|
|
48122
48963
|
photoCount,
|
|
48123
48964
|
facts: {
|
|
@@ -48128,6 +48969,13 @@ function arrangementContentFacts(content) {
|
|
|
48128
48969
|
}
|
|
48129
48970
|
};
|
|
48130
48971
|
}
|
|
48972
|
+
/** The content stage owns media presence for every arrangement consumer. */
|
|
48973
|
+
function arrangementPhotoCount(content) {
|
|
48974
|
+
if (Array.isArray(content.cards)) return content.cards.filter((card) => isObjectRecord$1(card) && isObjectRecord$1(card.media)).length;
|
|
48975
|
+
if (Array.isArray(content.images)) return content.images.filter((item) => isObjectRecord$1(item) && isObjectRecord$1(item.image)).length;
|
|
48976
|
+
const section = isObjectRecord$1(content._sectionStyles) ? content._sectionStyles : {};
|
|
48977
|
+
return isObjectRecord$1((isObjectRecord$1(section.background) ? section.background : {}).image) ? 1 : 0;
|
|
48978
|
+
}
|
|
48131
48979
|
function effectiveContentKnobValue(blockKind, key, value) {
|
|
48132
48980
|
const facet = systemCustomizeFacetDefinitionsForBlock(blockKind).find((entry) => entry.target.kind === "content-field" && entry.target.field === key);
|
|
48133
48981
|
return facet?.target.kind === "content-field" && facet.target.boolean ? value === "true" : value;
|