@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/client/hooks.mjs
CHANGED
|
@@ -463,6 +463,25 @@ function validateBookingPaymentOptionKinds(kinds) {
|
|
|
463
463
|
return ok(void 0);
|
|
464
464
|
}
|
|
465
465
|
//#endregion
|
|
466
|
+
//#region ../core/src/date-time-formatter.ts
|
|
467
|
+
/** Shared Intl engine, internal to core's date presentation owners. */
|
|
468
|
+
const FORMATTER_CACHE_LIMIT = 100;
|
|
469
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
470
|
+
function getDateTimeFormatter(locale, timeZone, format) {
|
|
471
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
472
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
473
|
+
if (cached !== void 0) return cached;
|
|
474
|
+
if (typeof locale !== "string" || Intl.DateTimeFormat.supportedLocalesOf([locale]).length === 0) throw new RangeError("An explicit supported locale is required");
|
|
475
|
+
if (typeof timeZone !== "string" || timeZone.length === 0) throw new RangeError("An explicit time zone is required");
|
|
476
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
477
|
+
...format,
|
|
478
|
+
timeZone
|
|
479
|
+
});
|
|
480
|
+
if (dateTimeFormatterCache.size >= FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
481
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
482
|
+
return formatter;
|
|
483
|
+
}
|
|
484
|
+
//#endregion
|
|
466
485
|
//#region ../core/src/booking-time-zone.ts
|
|
467
486
|
const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
|
|
468
487
|
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
@@ -499,8 +518,6 @@ const START_OF_DAY = {
|
|
|
499
518
|
second: 0
|
|
500
519
|
};
|
|
501
520
|
const LOCAL_DATE_PATTERN = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
502
|
-
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
503
|
-
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
504
521
|
function getSafeTimeZone(timeZone) {
|
|
505
522
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
506
523
|
return normalized.length > 0 && isValidBookingTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
@@ -517,19 +534,7 @@ function formatParseError(error) {
|
|
|
517
534
|
}
|
|
518
535
|
}
|
|
519
536
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
520
|
-
return new Map(
|
|
521
|
-
}
|
|
522
|
-
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
523
|
-
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
524
|
-
const cached = dateTimeFormatterCache.get(key);
|
|
525
|
-
if (cached !== void 0) return cached;
|
|
526
|
-
const formatter = new Intl.DateTimeFormat(locale, {
|
|
527
|
-
...format,
|
|
528
|
-
timeZone
|
|
529
|
-
});
|
|
530
|
-
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
531
|
-
dateTimeFormatterCache.set(key, formatter);
|
|
532
|
-
return formatter;
|
|
537
|
+
return new Map(getDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
533
538
|
}
|
|
534
539
|
function getZonedDateTimeParts(date, timeZone) {
|
|
535
540
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -617,7 +622,7 @@ function toScheduledBookingDateTime(input) {
|
|
|
617
622
|
function formatBookingInstant(isoString, options) {
|
|
618
623
|
const date = new Date(isoString);
|
|
619
624
|
if (Number.isNaN(date.getTime())) return isoString;
|
|
620
|
-
return
|
|
625
|
+
return getDateTimeFormatter(options.locale ?? DEFAULT_LOCALE, getSafeTimeZone(options.timeZone), options.format).format(date);
|
|
621
626
|
}
|
|
622
627
|
function formatBookingDate(input, format = {
|
|
623
628
|
weekday: "long",
|
|
@@ -742,6 +747,17 @@ function localScheduleDateTimeToUtcDate(localDate, localTime, timeZone) {
|
|
|
742
747
|
return new Date(guess);
|
|
743
748
|
}
|
|
744
749
|
//#endregion
|
|
750
|
+
//#region ../core/src/date-display.ts
|
|
751
|
+
/** Site-language policy, shared by customer emails and public event adapters. */
|
|
752
|
+
function inferSiteDateLocale(siteTimeZone) {
|
|
753
|
+
if (siteTimeZone === null || siteTimeZone === void 0 || siteTimeZone === "") return "en-US";
|
|
754
|
+
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
755
|
+
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
756
|
+
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
757
|
+
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
758
|
+
return "en-US";
|
|
759
|
+
}
|
|
760
|
+
//#endregion
|
|
745
761
|
//#region ../core/src/location.ts
|
|
746
762
|
function normalizeLocationAddressText(value) {
|
|
747
763
|
if (typeof value !== "string") return null;
|
|
@@ -879,6 +895,10 @@ function parseGlobalFields(value) {
|
|
|
879
895
|
preset: "emailName",
|
|
880
896
|
name: value.name
|
|
881
897
|
} : null;
|
|
898
|
+
case "emailFirstName": return isRequirement(value.firstName) ? {
|
|
899
|
+
preset: "emailFirstName",
|
|
900
|
+
firstName: value.firstName
|
|
901
|
+
} : null;
|
|
882
902
|
case "emailFirstLast": return isRequirement(value.firstName) && isRequirement(value.lastName) ? {
|
|
883
903
|
preset: "emailFirstLast",
|
|
884
904
|
firstName: value.firstName,
|
|
@@ -5398,6 +5418,129 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
5398
5418
|
tags: ["billing"],
|
|
5399
5419
|
auth: "user",
|
|
5400
5420
|
responseKind: "json"
|
|
5421
|
+
},
|
|
5422
|
+
stripeConnectSetupStart: {
|
|
5423
|
+
path: "/sites/{siteId}/billing/connect/setup",
|
|
5424
|
+
method: "POST",
|
|
5425
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5426
|
+
auth: "user",
|
|
5427
|
+
responseKind: "json",
|
|
5428
|
+
errors: [
|
|
5429
|
+
"validation:invalid_input",
|
|
5430
|
+
"auth:forbidden",
|
|
5431
|
+
"resource:conflict",
|
|
5432
|
+
"server:internal_error"
|
|
5433
|
+
]
|
|
5434
|
+
},
|
|
5435
|
+
stripeConnectSetupDiscard: {
|
|
5436
|
+
path: "/sites/{siteId}/billing/connect/setup",
|
|
5437
|
+
method: "DELETE",
|
|
5438
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5439
|
+
auth: "user",
|
|
5440
|
+
responseKind: "json",
|
|
5441
|
+
errors: [
|
|
5442
|
+
"validation:invalid_input",
|
|
5443
|
+
"auth:forbidden",
|
|
5444
|
+
"resource:conflict",
|
|
5445
|
+
"server:internal_error"
|
|
5446
|
+
]
|
|
5447
|
+
},
|
|
5448
|
+
stripeConnectSetupSave: {
|
|
5449
|
+
path: "/sites/{siteId}/billing/connect/setup/save",
|
|
5450
|
+
method: "POST",
|
|
5451
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5452
|
+
auth: "user",
|
|
5453
|
+
responseKind: "json",
|
|
5454
|
+
errors: [
|
|
5455
|
+
"validation:invalid_input",
|
|
5456
|
+
"auth:forbidden",
|
|
5457
|
+
"resource:conflict",
|
|
5458
|
+
"server:internal_error"
|
|
5459
|
+
]
|
|
5460
|
+
},
|
|
5461
|
+
stripeConnectAccountSession: {
|
|
5462
|
+
path: "/sites/{siteId}/billing/connect/session",
|
|
5463
|
+
method: "POST",
|
|
5464
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5465
|
+
auth: "user",
|
|
5466
|
+
responseKind: "json",
|
|
5467
|
+
errors: [
|
|
5468
|
+
"validation:invalid_input",
|
|
5469
|
+
"auth:forbidden",
|
|
5470
|
+
"resource:conflict",
|
|
5471
|
+
"server:internal_error"
|
|
5472
|
+
]
|
|
5473
|
+
},
|
|
5474
|
+
stripeConnectStart: {
|
|
5475
|
+
path: "/sites/{siteId}/billing/connect/start",
|
|
5476
|
+
method: "POST",
|
|
5477
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5478
|
+
auth: "user",
|
|
5479
|
+
responseKind: "json",
|
|
5480
|
+
errors: [
|
|
5481
|
+
"validation:invalid_input",
|
|
5482
|
+
"auth:forbidden",
|
|
5483
|
+
"resource:conflict",
|
|
5484
|
+
"server:internal_error"
|
|
5485
|
+
]
|
|
5486
|
+
},
|
|
5487
|
+
stripeConnectStatus: {
|
|
5488
|
+
path: "/sites/{siteId}/billing/connect/status",
|
|
5489
|
+
method: "GET",
|
|
5490
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5491
|
+
auth: "user",
|
|
5492
|
+
responseKind: "json",
|
|
5493
|
+
errors: [
|
|
5494
|
+
"validation:invalid_input",
|
|
5495
|
+
"auth:forbidden",
|
|
5496
|
+
"resource:conflict",
|
|
5497
|
+
"server:internal_error"
|
|
5498
|
+
]
|
|
5499
|
+
},
|
|
5500
|
+
stripeAutomaticTaxUpdate: {
|
|
5501
|
+
path: "/sites/{siteId}/billing/automatic-tax",
|
|
5502
|
+
method: "POST",
|
|
5503
|
+
tags: [
|
|
5504
|
+
"site-{siteId}",
|
|
5505
|
+
"billing",
|
|
5506
|
+
"stripe-tax"
|
|
5507
|
+
],
|
|
5508
|
+
auth: "user",
|
|
5509
|
+
responseKind: "json",
|
|
5510
|
+
errors: [
|
|
5511
|
+
"validation:invalid_input",
|
|
5512
|
+
"auth:forbidden",
|
|
5513
|
+
"resource:not_found",
|
|
5514
|
+
"server:unavailable",
|
|
5515
|
+
"server:internal_error"
|
|
5516
|
+
]
|
|
5517
|
+
},
|
|
5518
|
+
stripeConnectDisconnect: {
|
|
5519
|
+
path: "/sites/{siteId}/billing/connect/disconnect",
|
|
5520
|
+
method: "DELETE",
|
|
5521
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
5522
|
+
auth: "user",
|
|
5523
|
+
responseKind: "json",
|
|
5524
|
+
errors: [
|
|
5525
|
+
"validation:invalid_input",
|
|
5526
|
+
"auth:forbidden",
|
|
5527
|
+
"resource:conflict",
|
|
5528
|
+
"server:internal_error"
|
|
5529
|
+
]
|
|
5530
|
+
},
|
|
5531
|
+
billingConnectReturn: {
|
|
5532
|
+
path: "/billing/connect/return",
|
|
5533
|
+
method: "GET",
|
|
5534
|
+
auth: "user",
|
|
5535
|
+
responseKind: "void",
|
|
5536
|
+
errors: []
|
|
5537
|
+
},
|
|
5538
|
+
billingConnectRefresh: {
|
|
5539
|
+
path: "/billing/connect/refresh",
|
|
5540
|
+
method: "GET",
|
|
5541
|
+
auth: "user",
|
|
5542
|
+
responseKind: "void",
|
|
5543
|
+
errors: []
|
|
5401
5544
|
}
|
|
5402
5545
|
});
|
|
5403
5546
|
//#endregion
|
|
@@ -5562,6 +5705,14 @@ const PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS = {
|
|
|
5562
5705
|
* person when nothing is attached to them.
|
|
5563
5706
|
*/
|
|
5564
5707
|
const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
5708
|
+
getBookingPerson: {
|
|
5709
|
+
path: "/sites/{siteId}/bookings/people/{personId}",
|
|
5710
|
+
method: "GET",
|
|
5711
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
5712
|
+
auth: "user",
|
|
5713
|
+
responseKind: "json",
|
|
5714
|
+
errors: ["resource:not_found", "server:internal_error"]
|
|
5715
|
+
},
|
|
5565
5716
|
listPeople: {
|
|
5566
5717
|
path: "/sites/{siteId}/bookings/people",
|
|
5567
5718
|
method: "GET",
|
|
@@ -5902,6 +6053,19 @@ const footerModeSchema = z.enum([
|
|
|
5902
6053
|
"default+blocks",
|
|
5903
6054
|
"none"
|
|
5904
6055
|
]);
|
|
6056
|
+
z.object({
|
|
6057
|
+
variant: z.enum([
|
|
6058
|
+
"simple",
|
|
6059
|
+
"columns",
|
|
6060
|
+
"split",
|
|
6061
|
+
"centred"
|
|
6062
|
+
]),
|
|
6063
|
+
showLogoText: z.boolean().optional(),
|
|
6064
|
+
logo: z.object({
|
|
6065
|
+
showLogo: z.boolean().optional(),
|
|
6066
|
+
showLogoText: z.boolean().optional()
|
|
6067
|
+
}).optional()
|
|
6068
|
+
});
|
|
5905
6069
|
//#endregion
|
|
5906
6070
|
//#region ../theme-core/src/palette/utils/colorConversion.ts
|
|
5907
6071
|
const clamp01 = (x) => Math.max(0, Math.min(1, x));
|
|
@@ -9101,6 +9265,29 @@ const paletteSchema = z.object({
|
|
|
9101
9265
|
};
|
|
9102
9266
|
});
|
|
9103
9267
|
//#endregion
|
|
9268
|
+
//#region ../theme-core/src/buttons/typography.ts
|
|
9269
|
+
const textTransformSchema = z.enum([
|
|
9270
|
+
"none",
|
|
9271
|
+
"uppercase",
|
|
9272
|
+
"lowercase",
|
|
9273
|
+
"capitalize"
|
|
9274
|
+
]);
|
|
9275
|
+
const fontWeightSchema = z.union([
|
|
9276
|
+
z.literal(400),
|
|
9277
|
+
z.literal(500),
|
|
9278
|
+
z.literal(600),
|
|
9279
|
+
z.literal(700),
|
|
9280
|
+
z.literal(800)
|
|
9281
|
+
]);
|
|
9282
|
+
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
9283
|
+
const letterSpacingSchema = z.enum([
|
|
9284
|
+
"tight",
|
|
9285
|
+
"normal",
|
|
9286
|
+
"slight",
|
|
9287
|
+
"loose",
|
|
9288
|
+
"wide"
|
|
9289
|
+
]);
|
|
9290
|
+
//#endregion
|
|
9104
9291
|
//#region ../theme-core/src/buttons/types.ts
|
|
9105
9292
|
/**
|
|
9106
9293
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -9216,6 +9403,7 @@ const buttonEffectApplicationSchema = z.discriminatedUnion("effectId", [
|
|
|
9216
9403
|
z.strictObject({
|
|
9217
9404
|
effectId: z.literal("lift"),
|
|
9218
9405
|
options: z.strictObject({ amount: z.enum([
|
|
9406
|
+
"0.125",
|
|
9219
9407
|
"0.25",
|
|
9220
9408
|
"0.5",
|
|
9221
9409
|
"1"
|
|
@@ -9262,24 +9450,6 @@ const shadowSizeSchema = z.enum([
|
|
|
9262
9450
|
"medium",
|
|
9263
9451
|
"high"
|
|
9264
9452
|
]);
|
|
9265
|
-
const textTransformSchema = z.enum([
|
|
9266
|
-
"none",
|
|
9267
|
-
"uppercase",
|
|
9268
|
-
"lowercase",
|
|
9269
|
-
"capitalize"
|
|
9270
|
-
]);
|
|
9271
|
-
const fontWeightSchema = z.union([
|
|
9272
|
-
z.literal(500),
|
|
9273
|
-
z.literal(600),
|
|
9274
|
-
z.literal(700),
|
|
9275
|
-
z.literal(800)
|
|
9276
|
-
]);
|
|
9277
|
-
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
9278
|
-
const letterSpacingSchema = z.enum([
|
|
9279
|
-
"tight",
|
|
9280
|
-
"normal",
|
|
9281
|
-
"loose"
|
|
9282
|
-
]);
|
|
9283
9453
|
const hoverTransformSchema = z.enum([
|
|
9284
9454
|
"none",
|
|
9285
9455
|
"lift",
|
|
@@ -9351,7 +9521,8 @@ const paddingShorthandSchema = z.string().refine((value) => {
|
|
|
9351
9521
|
}, { message: "Padding must be two space-separated CSS length tokens (e.g. \"0.5rem 1rem\"). Use `0` for zero." });
|
|
9352
9522
|
const buttonSizeConfigSchema = z.object({
|
|
9353
9523
|
padding: paddingShorthandSchema,
|
|
9354
|
-
fontSize: z.string().optional()
|
|
9524
|
+
fontSize: z.string().optional(),
|
|
9525
|
+
borderRadius: z.string().optional()
|
|
9355
9526
|
});
|
|
9356
9527
|
/**
|
|
9357
9528
|
* `xl` is optional on the wire so themes persisted before the `xl` size was
|
|
@@ -9474,12 +9645,20 @@ const buttonVisualAppearanceSchema = z.strictObject({
|
|
|
9474
9645
|
textTransform: textTransformSchema
|
|
9475
9646
|
}),
|
|
9476
9647
|
effects: z.array(buttonEffectApplicationSchema),
|
|
9648
|
+
transform: z.literal("none").optional(),
|
|
9477
9649
|
contextualHover: contextualButtonHoverSchema.optional()
|
|
9478
9650
|
});
|
|
9479
9651
|
const buttonVisualStatesSchema = z.strictObject({
|
|
9480
9652
|
base: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
9481
9653
|
hover: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
9482
|
-
focus: buttonVisualAppearanceSchema.extend({
|
|
9654
|
+
focus: buttonVisualAppearanceSchema.extend({
|
|
9655
|
+
shadow: z.literal("focus-indicator"),
|
|
9656
|
+
indicator: z.strictObject({
|
|
9657
|
+
kind: z.literal("surface-ink"),
|
|
9658
|
+
width: z.union([z.literal(2), z.literal(3)]),
|
|
9659
|
+
offset: z.union([z.literal(3), z.literal(4)])
|
|
9660
|
+
}).optional()
|
|
9661
|
+
}),
|
|
9483
9662
|
active: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
9484
9663
|
disabled: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema })
|
|
9485
9664
|
});
|
|
@@ -9946,6 +10125,10 @@ function validateButtonTextContrast(input) {
|
|
|
9946
10125
|
}
|
|
9947
10126
|
};
|
|
9948
10127
|
}
|
|
10128
|
+
/** A text-token slab inverts the palette's text/background pair, including text shades. */
|
|
10129
|
+
function solidForegroundToken(backgroundToken) {
|
|
10130
|
+
return /^text(?:-\d+)?$/.test(backgroundToken) ? "background" : onColorTokenName(backgroundToken);
|
|
10131
|
+
}
|
|
9949
10132
|
//#endregion
|
|
9950
10133
|
//#region ../theme-core/src/buttons/contextualHover.ts
|
|
9951
10134
|
function resolveContextualHoverPreference(input) {
|
|
@@ -10043,7 +10226,7 @@ function candidate(family, shade, currentShade, direction, seedHex, palette) {
|
|
|
10043
10226
|
}
|
|
10044
10227
|
function hasSafeTextContrast(token, palette) {
|
|
10045
10228
|
const background = palette[token];
|
|
10046
|
-
const foreground = palette[
|
|
10229
|
+
const foreground = palette[solidForegroundToken(token)];
|
|
10047
10230
|
return typeof background === "string" && typeof foreground === "string" && contrastRatio(background, foreground) >= BUTTON_CONTRAST_POLICY.textMinimumRatio;
|
|
10048
10231
|
}
|
|
10049
10232
|
function isSafeCandidate(token, palette, surface) {
|
|
@@ -10138,6 +10321,13 @@ function compileDeclaredVisualStates(input, states) {
|
|
|
10138
10321
|
const colours = collectStateColours(mapVisualStates((state) => compileDeclaredVisualState(input, states, state, state === "hover" ? hover.treatment : states[state].background)));
|
|
10139
10322
|
return colours.ok ? {
|
|
10140
10323
|
...colours,
|
|
10324
|
+
focusIndicator: states.focus.indicator ? {
|
|
10325
|
+
kind: "surface-role",
|
|
10326
|
+
colorCss: input.surface?.foregroundCss ?? surfaceForegroundValue("text"),
|
|
10327
|
+
width: states.focus.indicator.width,
|
|
10328
|
+
offset: states.focus.indicator.offset,
|
|
10329
|
+
minimumSurfaceContrast: BUTTON_CONTRAST_POLICY.nonTextMinimumRatio
|
|
10330
|
+
} : colours.focusIndicator,
|
|
10141
10331
|
contextualHoverRepair: hover.repair
|
|
10142
10332
|
} : colours;
|
|
10143
10333
|
}
|
|
@@ -10275,7 +10465,7 @@ function resolveFocusIndicator(colour) {
|
|
|
10275
10465
|
function resolveSolid(input, backgroundToken, edge) {
|
|
10276
10466
|
const backgroundHex = paletteHex(input, backgroundToken);
|
|
10277
10467
|
if (!backgroundHex.ok) return backgroundHex;
|
|
10278
|
-
const foregroundToken = unsafeAsOpaqueButtonColourToken(
|
|
10468
|
+
const foregroundToken = unsafeAsOpaqueButtonColourToken(solidForegroundToken(backgroundToken));
|
|
10279
10469
|
const foregroundHex = input.palette[foregroundToken];
|
|
10280
10470
|
if (typeof foregroundHex !== "string") return {
|
|
10281
10471
|
ok: false,
|
|
@@ -11550,6 +11740,287 @@ function normalizeAppearance(appearance) {
|
|
|
11550
11740
|
};
|
|
11551
11741
|
}
|
|
11552
11742
|
//#endregion
|
|
11743
|
+
//#region ../theme-core/src/buttons/styles/recipes/lanternRecipes.ts
|
|
11744
|
+
const flatShadow = {
|
|
11745
|
+
elevation: "none",
|
|
11746
|
+
softness: null,
|
|
11747
|
+
position: "bottom"
|
|
11748
|
+
};
|
|
11749
|
+
const lift$1 = {
|
|
11750
|
+
effectId: "lift",
|
|
11751
|
+
options: { amount: "0.125" }
|
|
11752
|
+
};
|
|
11753
|
+
const tags = {
|
|
11754
|
+
tone: "classic",
|
|
11755
|
+
energy: "calm",
|
|
11756
|
+
motion: "subtle",
|
|
11757
|
+
era: "editorial"
|
|
11758
|
+
};
|
|
11759
|
+
/** Each role supplies complete states, including a flat surface-ink focus ring. */
|
|
11760
|
+
function states(base, hover, offset = 4, width = 2) {
|
|
11761
|
+
return {
|
|
11762
|
+
base,
|
|
11763
|
+
hover,
|
|
11764
|
+
focus: {
|
|
11765
|
+
...base,
|
|
11766
|
+
shadow: "focus-indicator",
|
|
11767
|
+
indicator: {
|
|
11768
|
+
kind: "surface-ink",
|
|
11769
|
+
width,
|
|
11770
|
+
offset
|
|
11771
|
+
}
|
|
11772
|
+
},
|
|
11773
|
+
active: {
|
|
11774
|
+
...base,
|
|
11775
|
+
transform: "none"
|
|
11776
|
+
},
|
|
11777
|
+
disabled: {
|
|
11778
|
+
...base,
|
|
11779
|
+
effects: []
|
|
11780
|
+
}
|
|
11781
|
+
};
|
|
11782
|
+
}
|
|
11783
|
+
const gilt = {
|
|
11784
|
+
text: "treatment",
|
|
11785
|
+
border: "none",
|
|
11786
|
+
borderRadius: "rounded-10px",
|
|
11787
|
+
shadow: flatShadow,
|
|
11788
|
+
sizes: {
|
|
11789
|
+
sm: {
|
|
11790
|
+
padding: "10px 20px",
|
|
11791
|
+
fontSize: "text-base",
|
|
11792
|
+
borderRadius: "rounded-lg"
|
|
11793
|
+
},
|
|
11794
|
+
md: {
|
|
11795
|
+
padding: "18px 36px",
|
|
11796
|
+
fontSize: "text-19px"
|
|
11797
|
+
},
|
|
11798
|
+
lg: {
|
|
11799
|
+
padding: "18px 36px",
|
|
11800
|
+
fontSize: "text-19px"
|
|
11801
|
+
},
|
|
11802
|
+
xl: {
|
|
11803
|
+
padding: "18px 36px",
|
|
11804
|
+
fontSize: "text-19px"
|
|
11805
|
+
}
|
|
11806
|
+
},
|
|
11807
|
+
typography: {
|
|
11808
|
+
fontWeight: 400,
|
|
11809
|
+
typography: "heading",
|
|
11810
|
+
fontSize: "text-19px",
|
|
11811
|
+
letterSpacing: "slight",
|
|
11812
|
+
italic: false,
|
|
11813
|
+
textTransform: "none"
|
|
11814
|
+
},
|
|
11815
|
+
effects: []
|
|
11816
|
+
};
|
|
11817
|
+
const giltPrimary = {
|
|
11818
|
+
...gilt,
|
|
11819
|
+
background: {
|
|
11820
|
+
type: "gradient",
|
|
11821
|
+
stops: ["accent", "primary"],
|
|
11822
|
+
direction: "to-br",
|
|
11823
|
+
foregroundToken: "onAccent"
|
|
11824
|
+
}
|
|
11825
|
+
};
|
|
11826
|
+
const giltPrimaryHover = {
|
|
11827
|
+
...giltPrimary,
|
|
11828
|
+
background: {
|
|
11829
|
+
...giltPrimary.background,
|
|
11830
|
+
stops: ["accent-400", "primary-400"],
|
|
11831
|
+
foregroundToken: "secondary-950"
|
|
11832
|
+
},
|
|
11833
|
+
effects: [lift$1]
|
|
11834
|
+
};
|
|
11835
|
+
const giltSecondary = {
|
|
11836
|
+
...gilt,
|
|
11837
|
+
background: {
|
|
11838
|
+
type: "solid",
|
|
11839
|
+
colorToken: "text"
|
|
11840
|
+
}
|
|
11841
|
+
};
|
|
11842
|
+
const giltSecondaryHover = {
|
|
11843
|
+
...giltSecondary,
|
|
11844
|
+
effects: [lift$1],
|
|
11845
|
+
contextualHover: {
|
|
11846
|
+
kind: "shade-shift",
|
|
11847
|
+
seedToken: unsafeAsOpaqueButtonColourToken("text"),
|
|
11848
|
+
fallbackDirection: "lighter"
|
|
11849
|
+
}
|
|
11850
|
+
};
|
|
11851
|
+
const giltPrimaryStates = states(giltPrimary, giltPrimaryHover);
|
|
11852
|
+
const giltSecondaryStates = states(giltSecondary, giltSecondaryHover);
|
|
11853
|
+
const giltSlabRecipe = defineStaticButtonStyleRecipe({
|
|
11854
|
+
id: "gilt-slab",
|
|
11855
|
+
accessibilityLabel: "Gilt slab",
|
|
11856
|
+
tags,
|
|
11857
|
+
system: { roles: {
|
|
11858
|
+
primary: { states: giltPrimaryStates },
|
|
11859
|
+
secondary: { states: giltSecondaryStates },
|
|
11860
|
+
outline: { states: giltSecondaryStates },
|
|
11861
|
+
ghost: { states: giltSecondaryStates },
|
|
11862
|
+
accent: { states: giltPrimaryStates }
|
|
11863
|
+
} }
|
|
11864
|
+
});
|
|
11865
|
+
const hairline = {
|
|
11866
|
+
text: "treatment",
|
|
11867
|
+
borderRadius: "rounded-3px",
|
|
11868
|
+
shadow: flatShadow,
|
|
11869
|
+
sizes: {
|
|
11870
|
+
sm: {
|
|
11871
|
+
padding: "9px 16px",
|
|
11872
|
+
fontSize: "text-xs"
|
|
11873
|
+
},
|
|
11874
|
+
md: {
|
|
11875
|
+
padding: "15px 28px",
|
|
11876
|
+
fontSize: "text-13px"
|
|
11877
|
+
},
|
|
11878
|
+
lg: {
|
|
11879
|
+
padding: "15px 28px",
|
|
11880
|
+
fontSize: "text-13px"
|
|
11881
|
+
},
|
|
11882
|
+
xl: {
|
|
11883
|
+
padding: "15px 28px",
|
|
11884
|
+
fontSize: "text-13px"
|
|
11885
|
+
}
|
|
11886
|
+
},
|
|
11887
|
+
typography: {
|
|
11888
|
+
fontWeight: 700,
|
|
11889
|
+
typography: "body",
|
|
11890
|
+
fontSize: "text-13px",
|
|
11891
|
+
letterSpacing: "wide",
|
|
11892
|
+
italic: false,
|
|
11893
|
+
textTransform: "uppercase"
|
|
11894
|
+
},
|
|
11895
|
+
effects: []
|
|
11896
|
+
};
|
|
11897
|
+
const hairlinePrimary = {
|
|
11898
|
+
...hairline,
|
|
11899
|
+
background: {
|
|
11900
|
+
type: "solid",
|
|
11901
|
+
colorToken: "primary"
|
|
11902
|
+
},
|
|
11903
|
+
border: {
|
|
11904
|
+
widthClass: "border",
|
|
11905
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11906
|
+
}
|
|
11907
|
+
};
|
|
11908
|
+
const hairlineOutline = {
|
|
11909
|
+
...hairline,
|
|
11910
|
+
background: {
|
|
11911
|
+
type: "surface",
|
|
11912
|
+
role: "link"
|
|
11913
|
+
},
|
|
11914
|
+
border: {
|
|
11915
|
+
widthClass: "border",
|
|
11916
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11917
|
+
}
|
|
11918
|
+
};
|
|
11919
|
+
const hairlineSecondary = {
|
|
11920
|
+
...hairlineOutline,
|
|
11921
|
+
border: {
|
|
11922
|
+
widthClass: "border",
|
|
11923
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
11924
|
+
}
|
|
11925
|
+
};
|
|
11926
|
+
const hairlineFilled = {
|
|
11927
|
+
...hairlineSecondary,
|
|
11928
|
+
background: {
|
|
11929
|
+
type: "solid",
|
|
11930
|
+
colorToken: "accent"
|
|
11931
|
+
}
|
|
11932
|
+
};
|
|
11933
|
+
const hairlinePrimaryStates = states(hairlinePrimary, hairlineOutline, 3);
|
|
11934
|
+
const hairlineSecondaryStates = states(hairlineSecondary, hairlineFilled, 3);
|
|
11935
|
+
const hairlineTabRecipe = defineStaticButtonStyleRecipe({
|
|
11936
|
+
id: "hairline-tab",
|
|
11937
|
+
accessibilityLabel: "Hairline tab",
|
|
11938
|
+
tags,
|
|
11939
|
+
system: { roles: {
|
|
11940
|
+
primary: { states: hairlinePrimaryStates },
|
|
11941
|
+
secondary: { states: hairlineSecondaryStates },
|
|
11942
|
+
outline: { states: hairlineSecondaryStates },
|
|
11943
|
+
ghost: { states: hairlineSecondaryStates },
|
|
11944
|
+
accent: { states: states(hairlineFilled, hairlineSecondary, 3) }
|
|
11945
|
+
} }
|
|
11946
|
+
});
|
|
11947
|
+
const marqueeAccent = {
|
|
11948
|
+
text: "treatment",
|
|
11949
|
+
borderRadius: "rounded-none",
|
|
11950
|
+
shadow: flatShadow,
|
|
11951
|
+
sizes: {
|
|
11952
|
+
sm: {
|
|
11953
|
+
padding: "8px 17px",
|
|
11954
|
+
fontSize: "text-15px"
|
|
11955
|
+
},
|
|
11956
|
+
md: {
|
|
11957
|
+
padding: "14px 25px",
|
|
11958
|
+
fontSize: "text-17px"
|
|
11959
|
+
},
|
|
11960
|
+
lg: {
|
|
11961
|
+
padding: "14px 25px",
|
|
11962
|
+
fontSize: "text-17px"
|
|
11963
|
+
},
|
|
11964
|
+
xl: {
|
|
11965
|
+
padding: "14px 25px",
|
|
11966
|
+
fontSize: "text-17px"
|
|
11967
|
+
}
|
|
11968
|
+
},
|
|
11969
|
+
typography: {
|
|
11970
|
+
fontWeight: 800,
|
|
11971
|
+
typography: "body",
|
|
11972
|
+
fontSize: "text-17px",
|
|
11973
|
+
letterSpacing: "loose",
|
|
11974
|
+
italic: false,
|
|
11975
|
+
textTransform: "uppercase"
|
|
11976
|
+
},
|
|
11977
|
+
effects: [],
|
|
11978
|
+
background: {
|
|
11979
|
+
type: "solid",
|
|
11980
|
+
colorToken: "accent"
|
|
11981
|
+
},
|
|
11982
|
+
border: {
|
|
11983
|
+
widthClass: "border-2",
|
|
11984
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
11985
|
+
}
|
|
11986
|
+
};
|
|
11987
|
+
const marqueePrimary = {
|
|
11988
|
+
...marqueeAccent,
|
|
11989
|
+
background: {
|
|
11990
|
+
type: "solid",
|
|
11991
|
+
colorToken: "primary"
|
|
11992
|
+
},
|
|
11993
|
+
border: {
|
|
11994
|
+
widthClass: "border-2",
|
|
11995
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11996
|
+
}
|
|
11997
|
+
};
|
|
11998
|
+
const marqueeSecondary = {
|
|
11999
|
+
...marqueeAccent,
|
|
12000
|
+
background: {
|
|
12001
|
+
type: "solid",
|
|
12002
|
+
colorToken: "text"
|
|
12003
|
+
},
|
|
12004
|
+
border: {
|
|
12005
|
+
widthClass: "border-2",
|
|
12006
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("text")
|
|
12007
|
+
}
|
|
12008
|
+
};
|
|
12009
|
+
const marqueePrimaryStates = states(marqueeAccent, marqueePrimary, 4, 3);
|
|
12010
|
+
const marqueeSecondaryStates = states(marqueeSecondary, marqueeAccent, 4, 3);
|
|
12011
|
+
const marqueeRecipe = defineStaticButtonStyleRecipe({
|
|
12012
|
+
id: "marquee",
|
|
12013
|
+
accessibilityLabel: "Marquee",
|
|
12014
|
+
tags,
|
|
12015
|
+
system: { roles: {
|
|
12016
|
+
primary: { states: marqueePrimaryStates },
|
|
12017
|
+
secondary: { states: marqueeSecondaryStates },
|
|
12018
|
+
outline: { states: marqueeSecondaryStates },
|
|
12019
|
+
ghost: { states: marqueeSecondaryStates },
|
|
12020
|
+
accent: { states: marqueePrimaryStates }
|
|
12021
|
+
} }
|
|
12022
|
+
});
|
|
12023
|
+
//#endregion
|
|
11553
12024
|
//#region ../theme-core/src/buttons/styles/recipes/fulcrumRecipe.ts
|
|
11554
12025
|
const fulcrumSizes = {
|
|
11555
12026
|
sm: {
|
|
@@ -12291,7 +12762,10 @@ const BUTTON_STYLE_IDS = [
|
|
|
12291
12762
|
"offset-block",
|
|
12292
12763
|
"ringed-pill",
|
|
12293
12764
|
"square-outline",
|
|
12294
|
-
"fulcrum"
|
|
12765
|
+
"fulcrum",
|
|
12766
|
+
"gilt-slab",
|
|
12767
|
+
"hairline-tab",
|
|
12768
|
+
"marquee"
|
|
12295
12769
|
];
|
|
12296
12770
|
const quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
|
|
12297
12771
|
const flatInkHoverTreatmentSchema = z.enum([
|
|
@@ -12328,7 +12802,10 @@ const buttonStyleSelectionSchema = z.discriminatedUnion("styleId", [
|
|
|
12328
12802
|
selectionBranch("offset-block", emptyParametersSchema),
|
|
12329
12803
|
selectionBranch("ringed-pill", emptyParametersSchema),
|
|
12330
12804
|
selectionBranch("square-outline", emptyParametersSchema),
|
|
12331
|
-
selectionBranch("fulcrum", emptyParametersSchema)
|
|
12805
|
+
selectionBranch("fulcrum", emptyParametersSchema),
|
|
12806
|
+
selectionBranch("gilt-slab", emptyParametersSchema),
|
|
12807
|
+
selectionBranch("hairline-tab", emptyParametersSchema),
|
|
12808
|
+
selectionBranch("marquee", emptyParametersSchema)
|
|
12332
12809
|
]);
|
|
12333
12810
|
//#endregion
|
|
12334
12811
|
//#region ../theme-core/src/buttons/styles/recipes/quietArrow.ts
|
|
@@ -15844,7 +16321,10 @@ const buttonStyleRecipes = [
|
|
|
15844
16321
|
offsetBlockRecipe,
|
|
15845
16322
|
ringedPillRecipe,
|
|
15846
16323
|
squareOutlineRecipe,
|
|
15847
|
-
fulcrumRecipe
|
|
16324
|
+
fulcrumRecipe,
|
|
16325
|
+
giltSlabRecipe,
|
|
16326
|
+
hairlineTabRecipe,
|
|
16327
|
+
marqueeRecipe
|
|
15848
16328
|
];
|
|
15849
16329
|
const recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
|
|
15850
16330
|
function findButtonStyleRecipe(id) {
|
|
@@ -15860,6 +16340,9 @@ function resolveButtonStyleSelection(selection) {
|
|
|
15860
16340
|
case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
|
|
15861
16341
|
case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
|
|
15862
16342
|
case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
|
|
16343
|
+
case "gilt-slab": return resolveButtonStyleRecipe(giltSlabRecipe, selection.parameters);
|
|
16344
|
+
case "hairline-tab": return resolveButtonStyleRecipe(hairlineTabRecipe, selection.parameters);
|
|
16345
|
+
case "marquee": return resolveButtonStyleRecipe(marqueeRecipe, selection.parameters);
|
|
15863
16346
|
case "fulcrum": return resolveButtonStyleRecipe(fulcrumRecipe, selection.parameters);
|
|
15864
16347
|
case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
|
|
15865
16348
|
case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
|
|
@@ -18091,20 +18574,15 @@ const headerSchema = z.object({
|
|
|
18091
18574
|
const footerVariant = z.enum([
|
|
18092
18575
|
"simple",
|
|
18093
18576
|
"columns",
|
|
18094
|
-
"split"
|
|
18095
|
-
|
|
18577
|
+
"split",
|
|
18578
|
+
"centred"
|
|
18579
|
+
]).transform((value) => value === "columns" ? "simple" : value);
|
|
18096
18580
|
const footerMaxWidth = z.enum(["container", "full"]);
|
|
18097
18581
|
const footerNavLayoutMode = z.enum([
|
|
18098
18582
|
"stack",
|
|
18099
18583
|
"inline",
|
|
18100
18584
|
"inline-wrap"
|
|
18101
18585
|
]);
|
|
18102
|
-
const footerNavLayoutAlign = z.enum([
|
|
18103
|
-
"start",
|
|
18104
|
-
"center",
|
|
18105
|
-
"end",
|
|
18106
|
-
"space-between"
|
|
18107
|
-
]);
|
|
18108
18586
|
const footerSpacing = z.enum([
|
|
18109
18587
|
"none",
|
|
18110
18588
|
"tight",
|
|
@@ -18113,12 +18591,6 @@ const footerSpacing = z.enum([
|
|
|
18113
18591
|
"relaxed",
|
|
18114
18592
|
"spacious"
|
|
18115
18593
|
]);
|
|
18116
|
-
const footerLogoPlacement = z.enum([
|
|
18117
|
-
"left",
|
|
18118
|
-
"right",
|
|
18119
|
-
"above",
|
|
18120
|
-
"below"
|
|
18121
|
-
]);
|
|
18122
18594
|
const footerLogoSize = z.enum([
|
|
18123
18595
|
"sm",
|
|
18124
18596
|
"md",
|
|
@@ -18159,17 +18631,8 @@ const footerBottomBarSchema = z.object({
|
|
|
18159
18631
|
]).optional()
|
|
18160
18632
|
}).optional()
|
|
18161
18633
|
});
|
|
18162
|
-
const footerNavLayoutSchema = z.object({
|
|
18163
|
-
layout: footerNavLayoutMode.optional(),
|
|
18164
|
-
align: footerNavLayoutAlign.optional(),
|
|
18165
|
-
gapX: footerSpacing.optional(),
|
|
18166
|
-
gapY: footerSpacing.optional(),
|
|
18167
|
-
columns: z.number().int().min(1).max(6).optional()
|
|
18168
|
-
});
|
|
18634
|
+
const footerNavLayoutSchema = z.object({ layout: footerNavLayoutMode.optional() });
|
|
18169
18635
|
const footerLogoSchema = z.object({
|
|
18170
|
-
showLogo: z.boolean().default(true),
|
|
18171
|
-
showLogoText: z.boolean().optional(),
|
|
18172
|
-
placement: footerLogoPlacement.optional(),
|
|
18173
18636
|
size: footerLogoSize.optional(),
|
|
18174
18637
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
18175
18638
|
align: z.enum([
|
|
@@ -18179,15 +18642,8 @@ const footerLogoSchema = z.object({
|
|
|
18179
18642
|
]).optional()
|
|
18180
18643
|
});
|
|
18181
18644
|
const footerSchema = z.object({
|
|
18182
|
-
/**
|
|
18183
|
-
* SDK-only footer rendering mode.
|
|
18184
|
-
*
|
|
18185
|
-
* Historical persisted field; SDK rendering mode now lives in layout.footerMode.
|
|
18186
|
-
*/
|
|
18187
|
-
mode: footerModeSchema.optional(),
|
|
18188
18645
|
variant: footerVariant,
|
|
18189
18646
|
maxWidth: footerMaxWidth,
|
|
18190
|
-
showLogoText: z.boolean().optional(),
|
|
18191
18647
|
background: headerBackgroundSchema.default({
|
|
18192
18648
|
type: "color",
|
|
18193
18649
|
color: "surface"
|
|
@@ -18370,7 +18826,9 @@ const cardListKnobBlocks = [...cardListFamilyBlocks, "block.event-calendar"];
|
|
|
18370
18826
|
const lookKnobBlocks = {
|
|
18371
18827
|
actionStyle: cardListKnobBlocks,
|
|
18372
18828
|
titleSize: "block.hero",
|
|
18373
|
-
imagePosition: "block.hero",
|
|
18829
|
+
imagePosition: ["block.hero", "block.media-text"],
|
|
18830
|
+
imageShape: "block.media-text",
|
|
18831
|
+
aspectRatio: "block.media-text",
|
|
18374
18832
|
stickerLine: "block.hero",
|
|
18375
18833
|
smallCaption: "block.hero",
|
|
18376
18834
|
candleGlow: "block.hero",
|
|
@@ -18380,7 +18838,11 @@ const lookKnobBlocks = {
|
|
|
18380
18838
|
dates: "block.offerings-preview",
|
|
18381
18839
|
showCapacity: "block.event-calendar",
|
|
18382
18840
|
quoteCount: "block.testimonials",
|
|
18383
|
-
archFrame:
|
|
18841
|
+
archFrame: [
|
|
18842
|
+
"block.testimonials",
|
|
18843
|
+
"block.newsletter-signup",
|
|
18844
|
+
"block.form"
|
|
18845
|
+
],
|
|
18384
18846
|
tilt: "block.testimonials"
|
|
18385
18847
|
};
|
|
18386
18848
|
function isArrangementAppearancePreset(preset) {
|
|
@@ -18407,13 +18869,25 @@ function cardListKnobDefaults(block, arrangement, knobs, defaults) {
|
|
|
18407
18869
|
}
|
|
18408
18870
|
};
|
|
18409
18871
|
}
|
|
18872
|
+
const arrangementLookTargets = {
|
|
18873
|
+
hero: "hero",
|
|
18874
|
+
"feature-cards": "feature-cards",
|
|
18875
|
+
"event-calendar": "events",
|
|
18876
|
+
testimonials: "testimonials",
|
|
18877
|
+
"event-details": "events",
|
|
18878
|
+
"media-text": "media-text",
|
|
18879
|
+
"image-gallery": "image-gallery",
|
|
18880
|
+
"newsletter-signup": "newsletter",
|
|
18881
|
+
form: "contact-form",
|
|
18882
|
+
"body-text": "body-text"
|
|
18883
|
+
};
|
|
18410
18884
|
function defineArrangementLook(id, block, name, arrangement, knobs, input = {}) {
|
|
18411
18885
|
const mode = block === "event-calendar" ? "list" : null;
|
|
18412
18886
|
return {
|
|
18413
18887
|
id: asAppearancePresetId(id),
|
|
18414
18888
|
blockKinds: [`block.${block}`],
|
|
18415
18889
|
label: name,
|
|
18416
|
-
target: block
|
|
18890
|
+
target: arrangementLookTargets[block],
|
|
18417
18891
|
structure: {
|
|
18418
18892
|
kind: "arrangement",
|
|
18419
18893
|
byMode: { [mode ?? "default"]: arrangement },
|
|
@@ -19302,6 +19776,15 @@ const appearancePresets = [
|
|
|
19302
19776
|
eyebrowTreatment: "accent"
|
|
19303
19777
|
}
|
|
19304
19778
|
}),
|
|
19779
|
+
defineArrangementLook("body-text-reading-column", "body-text", "Reading column", "prose", []),
|
|
19780
|
+
defineArrangementLook("form-beside-introduction-arched-panel", "form", "Introduction beside an arched form", "two-column", [], { slotRoles: { panel: "card" } }),
|
|
19781
|
+
defineArrangementLook("newsletter-signup-in-arch", "newsletter-signup", "Signup in an arch", "arch", []),
|
|
19782
|
+
defineArrangementLook("image-gallery-square-tiles", "image-gallery", "Square tiles", "tiles", []),
|
|
19783
|
+
defineArrangementLook("image-gallery-arched-captions", "image-gallery", "Arched photos with captions", "tiles", [], { styleFallback: [id$1("image-gallery-square-tiles")] }),
|
|
19784
|
+
defineArrangementLook("media-text-circle-beside-text", "media-text", "Circle beside the text", "circle-beside", ["imagePosition"], { forcedKnobs: {
|
|
19785
|
+
imageShape: "circle",
|
|
19786
|
+
aspectRatio: "1/1"
|
|
19787
|
+
} }),
|
|
19305
19788
|
defineArrangementLook("hero-photo-beside-text", "hero", "Photo beside the text", "split", heroKnobs, { slotRoles: { sticker: "highlight" } }),
|
|
19306
19789
|
defineArrangementLook("hero-headline-row", "hero", "Big headline, then text and photo", "headline-row", heroKnobs, {
|
|
19307
19790
|
slotRoles: { sticker: "highlight" },
|
|
@@ -19887,6 +20370,49 @@ function requireThemeColorToken$1(value) {
|
|
|
19887
20370
|
return token;
|
|
19888
20371
|
}
|
|
19889
20372
|
//#endregion
|
|
20373
|
+
//#region ../theme-core/src/header/rootPaint.ts
|
|
20374
|
+
/** The nav container takes precedence when a floating header also has one. */
|
|
20375
|
+
function headerRootPaint(header) {
|
|
20376
|
+
const navContainerType = header?.navContainer?.type ?? "none";
|
|
20377
|
+
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
20378
|
+
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
20379
|
+
}
|
|
20380
|
+
//#endregion
|
|
20381
|
+
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
20382
|
+
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
20383
|
+
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
20384
|
+
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
20385
|
+
function parseSiteChromeBackgroundColorToken(value) {
|
|
20386
|
+
const token = parseBackgroundAppearanceColorToken(value);
|
|
20387
|
+
return token ? token : null;
|
|
20388
|
+
}
|
|
20389
|
+
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
20390
|
+
return tokenNames.flatMap((name) => {
|
|
20391
|
+
const token = parseSiteChromeBackgroundColorToken(name);
|
|
20392
|
+
return token ? [token] : [];
|
|
20393
|
+
});
|
|
20394
|
+
}
|
|
20395
|
+
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
20396
|
+
const token = parseSiteChromeBackgroundColorToken(value);
|
|
20397
|
+
if (token === null) {
|
|
20398
|
+
ctx.addIssue({
|
|
20399
|
+
code: "custom",
|
|
20400
|
+
message: "Unknown site chrome background colour token"
|
|
20401
|
+
});
|
|
20402
|
+
return z.NEVER;
|
|
20403
|
+
}
|
|
20404
|
+
return token;
|
|
20405
|
+
});
|
|
20406
|
+
const siteChromeBackgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
20407
|
+
kind: z.literal("color"),
|
|
20408
|
+
token: backgroundColorTokenSchema
|
|
20409
|
+
}).strict()]);
|
|
20410
|
+
z.object({
|
|
20411
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
20412
|
+
navigationLayout: z.enum(["inline-wrap", "stack"])
|
|
20413
|
+
}).strict();
|
|
20414
|
+
z.object({ background: siteChromeBackgroundOverrideSchema }).strict();
|
|
20415
|
+
//#endregion
|
|
19890
20416
|
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
19891
20417
|
const defaultHeaderBrandPreferences = {
|
|
19892
20418
|
brandDisplay: "auto",
|
|
@@ -20047,6 +20573,9 @@ function fallbackEndsAtOffer(entry, mode, style, catalogue, visited) {
|
|
|
20047
20573
|
appearancePresets.filter(isArrangementAppearancePreset);
|
|
20048
20574
|
/** Closed structural hooks shared by block arrangements and bounded skins. */
|
|
20049
20575
|
const arrangementSlotNames = [
|
|
20576
|
+
"contact",
|
|
20577
|
+
"social",
|
|
20578
|
+
"base",
|
|
20050
20579
|
"section",
|
|
20051
20580
|
"stack",
|
|
20052
20581
|
"inline",
|
|
@@ -20133,6 +20662,238 @@ function validateOfferKnobs(style, catalogue) {
|
|
|
20133
20662
|
});
|
|
20134
20663
|
}
|
|
20135
20664
|
//#endregion
|
|
20665
|
+
//#region ../theme-core/src/site-styles/footerLookDefaults.ts
|
|
20666
|
+
const defaultFooterLookRecipes = {
|
|
20667
|
+
"footer-centred-name": {
|
|
20668
|
+
arrangement: "centred",
|
|
20669
|
+
ground: {
|
|
20670
|
+
kind: "token",
|
|
20671
|
+
token: "surface"
|
|
20672
|
+
},
|
|
20673
|
+
nav: {
|
|
20674
|
+
weight: "regular",
|
|
20675
|
+
colorToken: "text",
|
|
20676
|
+
hoverColorToken: "primary",
|
|
20677
|
+
typography: "body"
|
|
20678
|
+
},
|
|
20679
|
+
legal: {
|
|
20680
|
+
kind: "separate",
|
|
20681
|
+
bar: null
|
|
20682
|
+
},
|
|
20683
|
+
brandAlign: "center"
|
|
20684
|
+
},
|
|
20685
|
+
"footer-links-row": {
|
|
20686
|
+
arrangement: "simple",
|
|
20687
|
+
ground: {
|
|
20688
|
+
kind: "token",
|
|
20689
|
+
token: "surface"
|
|
20690
|
+
},
|
|
20691
|
+
nav: {
|
|
20692
|
+
weight: "regular",
|
|
20693
|
+
colorToken: "text",
|
|
20694
|
+
hoverColorToken: "primary",
|
|
20695
|
+
typography: "body"
|
|
20696
|
+
},
|
|
20697
|
+
legal: { kind: "integrated" },
|
|
20698
|
+
brandAlign: "start"
|
|
20699
|
+
}
|
|
20700
|
+
};
|
|
20701
|
+
/** A whole authored recipe replaces the default; facets are never deep-merged. */
|
|
20702
|
+
function resolveFooterLookRecipe(style, id) {
|
|
20703
|
+
return style?.footerLookRecipes?.[id] ?? defaultFooterLookRecipes[id];
|
|
20704
|
+
}
|
|
20705
|
+
//#endregion
|
|
20706
|
+
//#region ../theme-core/src/navigation/presets.ts
|
|
20707
|
+
/**
|
|
20708
|
+
* Built-in nav link style presets
|
|
20709
|
+
*
|
|
20710
|
+
* Each preset uses composable effects to achieve its look.
|
|
20711
|
+
*/
|
|
20712
|
+
const NAV_LINK_PRESETS = {
|
|
20713
|
+
/**
|
|
20714
|
+
* Minimal - subtle color change on hover
|
|
20715
|
+
*/
|
|
20716
|
+
minimal: {
|
|
20717
|
+
name: "Minimal",
|
|
20718
|
+
typography: "body",
|
|
20719
|
+
fontWeight: "medium",
|
|
20720
|
+
textTransform: "none",
|
|
20721
|
+
italic: false,
|
|
20722
|
+
colorToken: "text",
|
|
20723
|
+
hoverColorToken: "primary",
|
|
20724
|
+
padding: "none",
|
|
20725
|
+
borderRadius: "none",
|
|
20726
|
+
effects: { hover: [{
|
|
20727
|
+
effectId: "text-color-change",
|
|
20728
|
+
options: { hoverColorToken: "primary" }
|
|
20729
|
+
}] }
|
|
20730
|
+
},
|
|
20731
|
+
/**
|
|
20732
|
+
* Underline - static underline appears on hover
|
|
20733
|
+
*/
|
|
20734
|
+
underline: {
|
|
20735
|
+
name: "Underline",
|
|
20736
|
+
typography: "body",
|
|
20737
|
+
fontWeight: "medium",
|
|
20738
|
+
textTransform: "none",
|
|
20739
|
+
italic: false,
|
|
20740
|
+
colorToken: "text",
|
|
20741
|
+
padding: "none",
|
|
20742
|
+
borderRadius: "none",
|
|
20743
|
+
effects: { hover: [{
|
|
20744
|
+
effectId: "nav-underline",
|
|
20745
|
+
options: { style: "static" }
|
|
20746
|
+
}] }
|
|
20747
|
+
},
|
|
20748
|
+
/**
|
|
20749
|
+
* Underline Grow - animated underline grows from center on hover
|
|
20750
|
+
*/
|
|
20751
|
+
"underline-grow": {
|
|
20752
|
+
name: "Underline Grow",
|
|
20753
|
+
typography: "body",
|
|
20754
|
+
fontWeight: "medium",
|
|
20755
|
+
textTransform: "none",
|
|
20756
|
+
italic: false,
|
|
20757
|
+
colorToken: "text",
|
|
20758
|
+
padding: "none",
|
|
20759
|
+
borderRadius: "none",
|
|
20760
|
+
effects: { hover: [{
|
|
20761
|
+
effectId: "nav-underline",
|
|
20762
|
+
options: { style: "grow" }
|
|
20763
|
+
}] }
|
|
20764
|
+
},
|
|
20765
|
+
/**
|
|
20766
|
+
* Capsule - pill-shaped background on hover
|
|
20767
|
+
*/
|
|
20768
|
+
capsule: {
|
|
20769
|
+
name: "Capsule",
|
|
20770
|
+
typography: "body",
|
|
20771
|
+
fontWeight: "medium",
|
|
20772
|
+
textTransform: "none",
|
|
20773
|
+
italic: false,
|
|
20774
|
+
colorToken: "text",
|
|
20775
|
+
padding: "compact",
|
|
20776
|
+
borderRadius: "full",
|
|
20777
|
+
effects: {
|
|
20778
|
+
hover: [{
|
|
20779
|
+
effectId: "background-on-hover-alpha",
|
|
20780
|
+
options: {
|
|
20781
|
+
colorToken: "primary",
|
|
20782
|
+
opacity: 10
|
|
20783
|
+
}
|
|
20784
|
+
}],
|
|
20785
|
+
active: [{
|
|
20786
|
+
effectId: "background-on-hover-alpha",
|
|
20787
|
+
options: {
|
|
20788
|
+
colorToken: "primary",
|
|
20789
|
+
opacity: 15
|
|
20790
|
+
}
|
|
20791
|
+
}]
|
|
20792
|
+
}
|
|
20793
|
+
},
|
|
20794
|
+
/**
|
|
20795
|
+
* Solid - solid background color on hover
|
|
20796
|
+
*/
|
|
20797
|
+
solid: {
|
|
20798
|
+
name: "Solid",
|
|
20799
|
+
typography: "body",
|
|
20800
|
+
fontWeight: "medium",
|
|
20801
|
+
textTransform: "none",
|
|
20802
|
+
italic: false,
|
|
20803
|
+
colorToken: "text",
|
|
20804
|
+
padding: "compact",
|
|
20805
|
+
borderRadius: "none",
|
|
20806
|
+
effects: {
|
|
20807
|
+
hover: [{
|
|
20808
|
+
effectId: "background-on-hover",
|
|
20809
|
+
options: {
|
|
20810
|
+
colorToken: "primary",
|
|
20811
|
+
textColorToken: "primaryForeground"
|
|
20812
|
+
}
|
|
20813
|
+
}],
|
|
20814
|
+
active: [{
|
|
20815
|
+
effectId: "background-on-hover",
|
|
20816
|
+
options: {
|
|
20817
|
+
colorToken: "primary",
|
|
20818
|
+
textColorToken: "primaryForeground"
|
|
20819
|
+
}
|
|
20820
|
+
}]
|
|
20821
|
+
}
|
|
20822
|
+
},
|
|
20823
|
+
/**
|
|
20824
|
+
* Scale - gentle scale-up on hover
|
|
20825
|
+
*/
|
|
20826
|
+
scale: {
|
|
20827
|
+
name: "Scale",
|
|
20828
|
+
typography: "body",
|
|
20829
|
+
fontWeight: "medium",
|
|
20830
|
+
textTransform: "none",
|
|
20831
|
+
italic: false,
|
|
20832
|
+
colorToken: "text",
|
|
20833
|
+
padding: "none",
|
|
20834
|
+
borderRadius: "none",
|
|
20835
|
+
effects: { hover: [{
|
|
20836
|
+
effectId: "scale-up",
|
|
20837
|
+
options: { scale: 1.05 }
|
|
20838
|
+
}] }
|
|
20839
|
+
},
|
|
20840
|
+
/**
|
|
20841
|
+
* Frosted - semi-transparent glass-like background
|
|
20842
|
+
*/
|
|
20843
|
+
frosted: {
|
|
20844
|
+
name: "Frosted",
|
|
20845
|
+
typography: "body",
|
|
20846
|
+
fontWeight: "medium",
|
|
20847
|
+
textTransform: "none",
|
|
20848
|
+
italic: false,
|
|
20849
|
+
colorToken: "text",
|
|
20850
|
+
padding: "compact",
|
|
20851
|
+
borderRadius: "md",
|
|
20852
|
+
effects: {
|
|
20853
|
+
base: [{ effectId: "nav-frosted-base" }],
|
|
20854
|
+
hover: [{ effectId: "nav-frosted-hover" }],
|
|
20855
|
+
active: [{ effectId: "nav-frosted-active" }]
|
|
20856
|
+
}
|
|
20857
|
+
}
|
|
20858
|
+
};
|
|
20859
|
+
/**
|
|
20860
|
+
* Get a nav link style preset by ID
|
|
20861
|
+
*/
|
|
20862
|
+
function getNavLinkPreset(presetId) {
|
|
20863
|
+
return NAV_LINK_PRESETS[presetId];
|
|
20864
|
+
}
|
|
20865
|
+
Object.keys(NAV_LINK_PRESETS);
|
|
20866
|
+
//#endregion
|
|
20867
|
+
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
20868
|
+
function effectiveFooterNavLinkStyle(footer) {
|
|
20869
|
+
if (!footer) return null;
|
|
20870
|
+
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
20871
|
+
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
20872
|
+
if (!basePreset) return null;
|
|
20873
|
+
return {
|
|
20874
|
+
...basePreset,
|
|
20875
|
+
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
20876
|
+
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
20877
|
+
};
|
|
20878
|
+
}
|
|
20879
|
+
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
20880
|
+
if (!footer) return {};
|
|
20881
|
+
const style = effectiveFooterNavLinkStyle(footer);
|
|
20882
|
+
return {
|
|
20883
|
+
text: footer.background?.textColor ?? (footer.variant === "centred" ? "text" : void 0),
|
|
20884
|
+
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
20885
|
+
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
20886
|
+
};
|
|
20887
|
+
}
|
|
20888
|
+
//#endregion
|
|
20889
|
+
//#region ../theme-core/src/site-styles/footerLookRecipe.ts
|
|
20890
|
+
/** Reject undeclared references when the curated catalogue is loaded, before rendering. */
|
|
20891
|
+
function validateFooterRecipeSurfaces(style, recipe) {
|
|
20892
|
+
[recipe.ground, ...recipe.legal.kind === "separate" && recipe.legal.bar ? [recipe.legal.bar.background] : []].forEach((ground) => {
|
|
20893
|
+
if (ground.kind === "style-surface" && (style.looks.kind !== "offers" || !style.looks.surfaces[ground.surface])) throw new Error(`Undeclared footer surface: ${ground.surface}`);
|
|
20894
|
+
});
|
|
20895
|
+
}
|
|
20896
|
+
//#endregion
|
|
20136
20897
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
20137
20898
|
/**
|
|
20138
20899
|
* Reusable accordion "looks" for curated site styles.
|
|
@@ -20860,52 +21621,14 @@ defineLookOptionGroup({
|
|
|
20860
21621
|
function asFooterLookId(value) {
|
|
20861
21622
|
return value;
|
|
20862
21623
|
}
|
|
20863
|
-
function quietFooterLinks(theme) {
|
|
20864
|
-
return {
|
|
20865
|
-
...theme.footer,
|
|
20866
|
-
navStyle: "minimal",
|
|
20867
|
-
navWeight: "regular",
|
|
20868
|
-
navColor: "text",
|
|
20869
|
-
navLinkStyle: {
|
|
20870
|
-
typography: "body",
|
|
20871
|
-
fontWeight: "regular",
|
|
20872
|
-
textTransform: "none",
|
|
20873
|
-
italic: false,
|
|
20874
|
-
colorToken: "text",
|
|
20875
|
-
hoverColorToken: "primary",
|
|
20876
|
-
padding: "none",
|
|
20877
|
-
borderRadius: "none"
|
|
20878
|
-
}
|
|
20879
|
-
};
|
|
20880
|
-
}
|
|
20881
|
-
function emphasizedFooterLinks(theme) {
|
|
20882
|
-
return {
|
|
20883
|
-
...theme.footer,
|
|
20884
|
-
navStyle: "minimal",
|
|
20885
|
-
navWeight: "medium",
|
|
20886
|
-
navColor: "text",
|
|
20887
|
-
navLinkStyle: {
|
|
20888
|
-
typography: "body",
|
|
20889
|
-
fontWeight: "medium",
|
|
20890
|
-
textTransform: "none",
|
|
20891
|
-
italic: false,
|
|
20892
|
-
colorToken: "text",
|
|
20893
|
-
hoverColorToken: "primary",
|
|
20894
|
-
padding: "none",
|
|
20895
|
-
borderRadius: "none"
|
|
20896
|
-
}
|
|
20897
|
-
};
|
|
20898
|
-
}
|
|
20899
21624
|
const footerLookCatalog = defineExactCatalog()([{
|
|
20900
|
-
id: asFooterLookId("footer-links-
|
|
20901
|
-
label: "
|
|
20902
|
-
description: "
|
|
20903
|
-
compile: quietFooterLinks
|
|
21625
|
+
id: asFooterLookId("footer-links-row"),
|
|
21626
|
+
label: "Links in a row",
|
|
21627
|
+
description: "Your links in a row, with the other footer sections in columns beside them."
|
|
20904
21628
|
}, {
|
|
20905
|
-
id: asFooterLookId("footer-
|
|
20906
|
-
label: "
|
|
20907
|
-
description: "
|
|
20908
|
-
compile: emphasizedFooterLinks
|
|
21629
|
+
id: asFooterLookId("footer-centred-name"),
|
|
21630
|
+
label: "Centred name, links beneath",
|
|
21631
|
+
description: "Your site name centred, with your links, contact details and social links beneath it."
|
|
20909
21632
|
}]);
|
|
20910
21633
|
new Map(footerLookCatalog.map((look) => [look.id, look]));
|
|
20911
21634
|
//#endregion
|
|
@@ -22322,6 +23045,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
22322
23045
|
recommendedAppearancePresetIds
|
|
22323
23046
|
},
|
|
22324
23047
|
headerCuration: headerCurationBySiteStyle[input.id],
|
|
23048
|
+
footerLookRecipes: input.footerLookRecipes,
|
|
22325
23049
|
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
|
|
22326
23050
|
buttonStyleChoices: input.buttonStyleChoices,
|
|
22327
23051
|
paletteRecommendations: input.paletteRecommendations,
|
|
@@ -22807,7 +23531,11 @@ const lanternLooks = {
|
|
|
22807
23531
|
margin: "40px"
|
|
22808
23532
|
},
|
|
22809
23533
|
fontLoading: {
|
|
22810
|
-
extraBodyFontWeights: [
|
|
23534
|
+
extraBodyFontWeights: [
|
|
23535
|
+
500,
|
|
23536
|
+
700,
|
|
23537
|
+
800
|
|
23538
|
+
],
|
|
22811
23539
|
italicBodyFontWeights: [400]
|
|
22812
23540
|
},
|
|
22813
23541
|
surfaces: {
|
|
@@ -22857,6 +23585,38 @@ const lanternLooks = {
|
|
|
22857
23585
|
]
|
|
22858
23586
|
},
|
|
22859
23587
|
offers: [
|
|
23588
|
+
{
|
|
23589
|
+
id: id("body-text-reading-column"),
|
|
23590
|
+
treatment: "reading-column",
|
|
23591
|
+
roleMap: lanternRoles
|
|
23592
|
+
},
|
|
23593
|
+
{
|
|
23594
|
+
id: id("form-beside-introduction-arched-panel"),
|
|
23595
|
+
treatment: "arched-panel",
|
|
23596
|
+
addKnobs: ["archFrame"],
|
|
23597
|
+
roleMap: lanternRoles
|
|
23598
|
+
},
|
|
23599
|
+
{
|
|
23600
|
+
id: id("newsletter-signup-in-arch"),
|
|
23601
|
+
treatment: "signup-arch",
|
|
23602
|
+
addKnobs: ["archFrame"],
|
|
23603
|
+
roleMap: lanternRoles
|
|
23604
|
+
},
|
|
23605
|
+
{
|
|
23606
|
+
id: id("image-gallery-square-tiles"),
|
|
23607
|
+
treatment: "square-tiles",
|
|
23608
|
+
roleMap: lanternRoles
|
|
23609
|
+
},
|
|
23610
|
+
{
|
|
23611
|
+
id: id("image-gallery-arched-captions"),
|
|
23612
|
+
treatment: "arched-captions",
|
|
23613
|
+
roleMap: lanternRoles
|
|
23614
|
+
},
|
|
23615
|
+
{
|
|
23616
|
+
id: id("media-text-circle-beside-text"),
|
|
23617
|
+
treatment: "circle-beside",
|
|
23618
|
+
roleMap: lanternRoles
|
|
23619
|
+
},
|
|
22860
23620
|
{
|
|
22861
23621
|
id: id("event-details-panel"),
|
|
22862
23622
|
treatment: "quiet",
|
|
@@ -23295,7 +24055,7 @@ const curatedSiteStyles = [
|
|
|
23295
24055
|
"faq-contained-help",
|
|
23296
24056
|
"contact-form-panel"
|
|
23297
24057
|
],
|
|
23298
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24058
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23299
24059
|
buttonStyleChoices: [
|
|
23300
24060
|
buttonChoice("soft-pill"),
|
|
23301
24061
|
buttonChoice("pebble"),
|
|
@@ -23414,7 +24174,7 @@ const curatedSiteStyles = [
|
|
|
23414
24174
|
"testimonials-non-carded",
|
|
23415
24175
|
"contact-form-panel"
|
|
23416
24176
|
],
|
|
23417
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24177
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23418
24178
|
buttonStyleChoices: [
|
|
23419
24179
|
buttonChoice("earth-pill"),
|
|
23420
24180
|
buttonChoice("soft-pill"),
|
|
@@ -23469,7 +24229,41 @@ const curatedSiteStyles = [
|
|
|
23469
24229
|
"testimonials-brand-statement-cards",
|
|
23470
24230
|
"contact-form-panel"
|
|
23471
24231
|
],
|
|
23472
|
-
|
|
24232
|
+
footerLookRecipes: { "footer-links-row": {
|
|
24233
|
+
arrangement: "split",
|
|
24234
|
+
ground: {
|
|
24235
|
+
kind: "token",
|
|
24236
|
+
token: "primary-800"
|
|
24237
|
+
},
|
|
24238
|
+
nav: {
|
|
24239
|
+
weight: "medium",
|
|
24240
|
+
colorToken: "primaryForeground",
|
|
24241
|
+
hoverColorToken: "secondary",
|
|
24242
|
+
typography: "body"
|
|
24243
|
+
},
|
|
24244
|
+
legal: {
|
|
24245
|
+
kind: "separate",
|
|
24246
|
+
bar: {
|
|
24247
|
+
fullBleed: true,
|
|
24248
|
+
background: {
|
|
24249
|
+
kind: "token",
|
|
24250
|
+
token: "primary-900"
|
|
24251
|
+
},
|
|
24252
|
+
textColor: "primaryForeground",
|
|
24253
|
+
textAlign: "center",
|
|
24254
|
+
paddingY: "compact",
|
|
24255
|
+
paddingX: "default",
|
|
24256
|
+
borderTop: { width: "none" }
|
|
24257
|
+
},
|
|
24258
|
+
linkStyle: {
|
|
24259
|
+
colorToken: "secondary",
|
|
24260
|
+
decorationColorToken: "secondary"
|
|
24261
|
+
}
|
|
24262
|
+
},
|
|
24263
|
+
brandAlign: "start",
|
|
24264
|
+
brandLogoSize: "sm"
|
|
24265
|
+
} },
|
|
24266
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23473
24267
|
buttonStyleChoices: [
|
|
23474
24268
|
buttonChoice("showtime-pill"),
|
|
23475
24269
|
buttonChoice("confident-chip"),
|
|
@@ -23540,7 +24334,7 @@ const curatedSiteStyles = [
|
|
|
23540
24334
|
"testimonials-statement-cards",
|
|
23541
24335
|
"contact-form-panel"
|
|
23542
24336
|
],
|
|
23543
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24337
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23544
24338
|
buttonStyleChoices: [
|
|
23545
24339
|
buttonChoice("ornate-ritual"),
|
|
23546
24340
|
buttonChoice("joy-stamp"),
|
|
@@ -23587,7 +24381,22 @@ const curatedSiteStyles = [
|
|
|
23587
24381
|
} }
|
|
23588
24382
|
},
|
|
23589
24383
|
recommendedAppearancePresetIds: ["feature-cards-bold-colors", "testimonials-statement-cards"],
|
|
23590
|
-
|
|
24384
|
+
footerLookRecipes: { "footer-links-row": {
|
|
24385
|
+
arrangement: "simple",
|
|
24386
|
+
ground: {
|
|
24387
|
+
kind: "token",
|
|
24388
|
+
token: "surface"
|
|
24389
|
+
},
|
|
24390
|
+
nav: {
|
|
24391
|
+
weight: "medium",
|
|
24392
|
+
colorToken: "text",
|
|
24393
|
+
hoverColorToken: "primary",
|
|
24394
|
+
typography: "body"
|
|
24395
|
+
},
|
|
24396
|
+
legal: { kind: "integrated" },
|
|
24397
|
+
brandAlign: "start"
|
|
24398
|
+
} },
|
|
24399
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23591
24400
|
buttonStyleChoices: [
|
|
23592
24401
|
buttonChoice("joy-stamp"),
|
|
23593
24402
|
buttonChoice("ink-stamp"),
|
|
@@ -23639,7 +24448,7 @@ const curatedSiteStyles = [
|
|
|
23639
24448
|
},
|
|
23640
24449
|
testimonialQuote: serifDisplayQuote
|
|
23641
24450
|
},
|
|
23642
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24451
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23643
24452
|
buttonStyleChoices: [
|
|
23644
24453
|
buttonChoice("fulcrum"),
|
|
23645
24454
|
buttonChoice("editorial-link"),
|
|
@@ -23716,7 +24525,7 @@ const curatedSiteStyles = [
|
|
|
23716
24525
|
"faq-base-accordion",
|
|
23717
24526
|
"booking-brand-band"
|
|
23718
24527
|
],
|
|
23719
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24528
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23720
24529
|
buttonStyleChoices: [
|
|
23721
24530
|
buttonChoice("quiet-arrow", void 0, { secondaryTreatment: "solid-accent" }),
|
|
23722
24531
|
buttonChoice("flat-ink"),
|
|
@@ -23754,7 +24563,22 @@ const curatedSiteStyles = [
|
|
|
23754
24563
|
accordions: boldBorderedAccordionSystem,
|
|
23755
24564
|
testimonialQuote: accentGlyphQuote
|
|
23756
24565
|
},
|
|
23757
|
-
|
|
24566
|
+
footerLookRecipes: { "footer-links-row": {
|
|
24567
|
+
arrangement: "simple",
|
|
24568
|
+
ground: {
|
|
24569
|
+
kind: "token",
|
|
24570
|
+
token: "surface"
|
|
24571
|
+
},
|
|
24572
|
+
nav: {
|
|
24573
|
+
weight: "medium",
|
|
24574
|
+
colorToken: "text",
|
|
24575
|
+
hoverColorToken: "primary",
|
|
24576
|
+
typography: "body"
|
|
24577
|
+
},
|
|
24578
|
+
legal: { kind: "integrated" },
|
|
24579
|
+
brandAlign: "start"
|
|
24580
|
+
} },
|
|
24581
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23758
24582
|
buttonStyleChoices: [
|
|
23759
24583
|
buttonChoice("offset-block"),
|
|
23760
24584
|
buttonChoice("ink-stamp"),
|
|
@@ -23793,8 +24617,29 @@ const curatedSiteStyles = [
|
|
|
23793
24617
|
accordions: warmInsetAccordionSystem,
|
|
23794
24618
|
testimonialQuote: serifDisplayQuote
|
|
23795
24619
|
},
|
|
23796
|
-
|
|
24620
|
+
footerLookRecipes: { "footer-centred-name": {
|
|
24621
|
+
arrangement: "centred",
|
|
24622
|
+
ground: {
|
|
24623
|
+
kind: "style-surface",
|
|
24624
|
+
surface: "deep"
|
|
24625
|
+
},
|
|
24626
|
+
nav: {
|
|
24627
|
+
weight: "regular",
|
|
24628
|
+
colorToken: "text",
|
|
24629
|
+
hoverColorToken: "primary",
|
|
24630
|
+
typography: "heading"
|
|
24631
|
+
},
|
|
24632
|
+
legal: {
|
|
24633
|
+
kind: "separate",
|
|
24634
|
+
bar: null
|
|
24635
|
+
},
|
|
24636
|
+
brandAlign: "center"
|
|
24637
|
+
} },
|
|
24638
|
+
recommendedFooterLookIds: ["footer-centred-name", "footer-links-row"],
|
|
23797
24639
|
buttonStyleChoices: [
|
|
24640
|
+
buttonChoice("gilt-slab"),
|
|
24641
|
+
buttonChoice("hairline-tab"),
|
|
24642
|
+
buttonChoice("marquee"),
|
|
23798
24643
|
buttonChoice("ringed-pill"),
|
|
23799
24644
|
buttonChoice("earth-pill"),
|
|
23800
24645
|
buttonChoice("editorial-link")
|
|
@@ -23829,7 +24674,7 @@ const curatedSiteStyles = [
|
|
|
23829
24674
|
accordions: editorialDividedAccordionSystem,
|
|
23830
24675
|
testimonialQuote: serifDisplayQuote
|
|
23831
24676
|
},
|
|
23832
|
-
recommendedFooterLookIds: ["footer-links-
|
|
24677
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
23833
24678
|
buttonStyleChoices: [
|
|
23834
24679
|
buttonChoice("flat-ink", void 0, { corners: "square" }),
|
|
23835
24680
|
buttonChoice("editorial-link"),
|
|
@@ -23857,6 +24702,7 @@ function curatedStyleTemplate(input) {
|
|
|
23857
24702
|
}
|
|
23858
24703
|
curatedSiteStyles.forEach((style) => {
|
|
23859
24704
|
if (style.looks.kind === "offers") validateLookFallbacks(style.looks);
|
|
24705
|
+
(/* @__PURE__ */ new Set([...Object.values(style.footerLookRecipes ?? {}), ...style.recommendedFooterLookIds.map((id) => resolveFooterLookRecipe(style, id))])).forEach((recipe) => validateFooterRecipeSurfaces(style, recipe));
|
|
23860
24706
|
});
|
|
23861
24707
|
//#endregion
|
|
23862
24708
|
//#region ../theme-core/src/site-styles/effectiveArrangement.ts
|
|
@@ -23954,29 +24800,6 @@ const blockDesignFallback = {
|
|
|
23954
24800
|
};
|
|
23955
24801
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
23956
24802
|
//#endregion
|
|
23957
|
-
//#region ../theme-core/src/header/rootPaint.ts
|
|
23958
|
-
/** The nav container takes precedence when a floating header also has one. */
|
|
23959
|
-
function headerRootPaint(header) {
|
|
23960
|
-
const navContainerType = header?.navContainer?.type ?? "none";
|
|
23961
|
-
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
23962
|
-
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
23963
|
-
}
|
|
23964
|
-
//#endregion
|
|
23965
|
-
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
23966
|
-
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
23967
|
-
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
23968
|
-
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
23969
|
-
function parseSiteChromeBackgroundColorToken(value) {
|
|
23970
|
-
const token = parseBackgroundAppearanceColorToken(value);
|
|
23971
|
-
return token ? token : null;
|
|
23972
|
-
}
|
|
23973
|
-
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
23974
|
-
return tokenNames.flatMap((name) => {
|
|
23975
|
-
const token = parseSiteChromeBackgroundColorToken(name);
|
|
23976
|
-
return token ? [token] : [];
|
|
23977
|
-
});
|
|
23978
|
-
}
|
|
23979
|
-
//#endregion
|
|
23980
24803
|
//#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
|
|
23981
24804
|
const headerNavTypographyPreferenceValues = [
|
|
23982
24805
|
"inherit",
|
|
@@ -24092,21 +24915,6 @@ z.object({
|
|
|
24092
24915
|
}).strict();
|
|
24093
24916
|
//#endregion
|
|
24094
24917
|
//#region ../theme-core/src/site-styles/headerPreferencesPersistence.ts
|
|
24095
|
-
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
24096
|
-
const token = parseSiteChromeBackgroundColorToken(value);
|
|
24097
|
-
if (token === null) {
|
|
24098
|
-
ctx.addIssue({
|
|
24099
|
-
code: "custom",
|
|
24100
|
-
message: "Unknown site chrome background colour token"
|
|
24101
|
-
});
|
|
24102
|
-
return z.NEVER;
|
|
24103
|
-
}
|
|
24104
|
-
return token;
|
|
24105
|
-
});
|
|
24106
|
-
const backgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
24107
|
-
kind: z.literal("color"),
|
|
24108
|
-
token: backgroundColorTokenSchema
|
|
24109
|
-
}).strict()]);
|
|
24110
24918
|
const logoTextIntentSchema = z.object({
|
|
24111
24919
|
mobileMaxWidth: z.enum([
|
|
24112
24920
|
"xs",
|
|
@@ -24132,7 +24940,7 @@ const headerPreferencesShape = {
|
|
|
24132
24940
|
navFontRole: z.enum(headerNavTypographyPreferenceValues),
|
|
24133
24941
|
navTextSize: z.enum(headerNavFontSizePreferenceValues),
|
|
24134
24942
|
interactionPalette: z.union([z.literal("recommended"), z.enum(headerInteractionPaletteValues)]),
|
|
24135
|
-
background:
|
|
24943
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
24136
24944
|
structure: structureSchema
|
|
24137
24945
|
};
|
|
24138
24946
|
z.object(headerPreferencesShape).strict();
|
|
@@ -24141,167 +24949,6 @@ z.object(headerPreferencesShape).omit({
|
|
|
24141
24949
|
structure: true
|
|
24142
24950
|
}).strict();
|
|
24143
24951
|
//#endregion
|
|
24144
|
-
//#region ../theme-core/src/navigation/presets.ts
|
|
24145
|
-
/**
|
|
24146
|
-
* Built-in nav link style presets
|
|
24147
|
-
*
|
|
24148
|
-
* Each preset uses composable effects to achieve its look.
|
|
24149
|
-
*/
|
|
24150
|
-
const NAV_LINK_PRESETS = {
|
|
24151
|
-
/**
|
|
24152
|
-
* Minimal - subtle color change on hover
|
|
24153
|
-
*/
|
|
24154
|
-
minimal: {
|
|
24155
|
-
name: "Minimal",
|
|
24156
|
-
typography: "body",
|
|
24157
|
-
fontWeight: "medium",
|
|
24158
|
-
textTransform: "none",
|
|
24159
|
-
italic: false,
|
|
24160
|
-
colorToken: "text",
|
|
24161
|
-
hoverColorToken: "primary",
|
|
24162
|
-
padding: "none",
|
|
24163
|
-
borderRadius: "none",
|
|
24164
|
-
effects: { hover: [{
|
|
24165
|
-
effectId: "text-color-change",
|
|
24166
|
-
options: { hoverColorToken: "primary" }
|
|
24167
|
-
}] }
|
|
24168
|
-
},
|
|
24169
|
-
/**
|
|
24170
|
-
* Underline - static underline appears on hover
|
|
24171
|
-
*/
|
|
24172
|
-
underline: {
|
|
24173
|
-
name: "Underline",
|
|
24174
|
-
typography: "body",
|
|
24175
|
-
fontWeight: "medium",
|
|
24176
|
-
textTransform: "none",
|
|
24177
|
-
italic: false,
|
|
24178
|
-
colorToken: "text",
|
|
24179
|
-
padding: "none",
|
|
24180
|
-
borderRadius: "none",
|
|
24181
|
-
effects: { hover: [{
|
|
24182
|
-
effectId: "nav-underline",
|
|
24183
|
-
options: { style: "static" }
|
|
24184
|
-
}] }
|
|
24185
|
-
},
|
|
24186
|
-
/**
|
|
24187
|
-
* Underline Grow - animated underline grows from center on hover
|
|
24188
|
-
*/
|
|
24189
|
-
"underline-grow": {
|
|
24190
|
-
name: "Underline Grow",
|
|
24191
|
-
typography: "body",
|
|
24192
|
-
fontWeight: "medium",
|
|
24193
|
-
textTransform: "none",
|
|
24194
|
-
italic: false,
|
|
24195
|
-
colorToken: "text",
|
|
24196
|
-
padding: "none",
|
|
24197
|
-
borderRadius: "none",
|
|
24198
|
-
effects: { hover: [{
|
|
24199
|
-
effectId: "nav-underline",
|
|
24200
|
-
options: { style: "grow" }
|
|
24201
|
-
}] }
|
|
24202
|
-
},
|
|
24203
|
-
/**
|
|
24204
|
-
* Capsule - pill-shaped background on hover
|
|
24205
|
-
*/
|
|
24206
|
-
capsule: {
|
|
24207
|
-
name: "Capsule",
|
|
24208
|
-
typography: "body",
|
|
24209
|
-
fontWeight: "medium",
|
|
24210
|
-
textTransform: "none",
|
|
24211
|
-
italic: false,
|
|
24212
|
-
colorToken: "text",
|
|
24213
|
-
padding: "compact",
|
|
24214
|
-
borderRadius: "full",
|
|
24215
|
-
effects: {
|
|
24216
|
-
hover: [{
|
|
24217
|
-
effectId: "background-on-hover-alpha",
|
|
24218
|
-
options: {
|
|
24219
|
-
colorToken: "primary",
|
|
24220
|
-
opacity: 10
|
|
24221
|
-
}
|
|
24222
|
-
}],
|
|
24223
|
-
active: [{
|
|
24224
|
-
effectId: "background-on-hover-alpha",
|
|
24225
|
-
options: {
|
|
24226
|
-
colorToken: "primary",
|
|
24227
|
-
opacity: 15
|
|
24228
|
-
}
|
|
24229
|
-
}]
|
|
24230
|
-
}
|
|
24231
|
-
},
|
|
24232
|
-
/**
|
|
24233
|
-
* Solid - solid background color on hover
|
|
24234
|
-
*/
|
|
24235
|
-
solid: {
|
|
24236
|
-
name: "Solid",
|
|
24237
|
-
typography: "body",
|
|
24238
|
-
fontWeight: "medium",
|
|
24239
|
-
textTransform: "none",
|
|
24240
|
-
italic: false,
|
|
24241
|
-
colorToken: "text",
|
|
24242
|
-
padding: "compact",
|
|
24243
|
-
borderRadius: "none",
|
|
24244
|
-
effects: {
|
|
24245
|
-
hover: [{
|
|
24246
|
-
effectId: "background-on-hover",
|
|
24247
|
-
options: {
|
|
24248
|
-
colorToken: "primary",
|
|
24249
|
-
textColorToken: "primaryForeground"
|
|
24250
|
-
}
|
|
24251
|
-
}],
|
|
24252
|
-
active: [{
|
|
24253
|
-
effectId: "background-on-hover",
|
|
24254
|
-
options: {
|
|
24255
|
-
colorToken: "primary",
|
|
24256
|
-
textColorToken: "primaryForeground"
|
|
24257
|
-
}
|
|
24258
|
-
}]
|
|
24259
|
-
}
|
|
24260
|
-
},
|
|
24261
|
-
/**
|
|
24262
|
-
* Scale - gentle scale-up on hover
|
|
24263
|
-
*/
|
|
24264
|
-
scale: {
|
|
24265
|
-
name: "Scale",
|
|
24266
|
-
typography: "body",
|
|
24267
|
-
fontWeight: "medium",
|
|
24268
|
-
textTransform: "none",
|
|
24269
|
-
italic: false,
|
|
24270
|
-
colorToken: "text",
|
|
24271
|
-
padding: "none",
|
|
24272
|
-
borderRadius: "none",
|
|
24273
|
-
effects: { hover: [{
|
|
24274
|
-
effectId: "scale-up",
|
|
24275
|
-
options: { scale: 1.05 }
|
|
24276
|
-
}] }
|
|
24277
|
-
},
|
|
24278
|
-
/**
|
|
24279
|
-
* Frosted - semi-transparent glass-like background
|
|
24280
|
-
*/
|
|
24281
|
-
frosted: {
|
|
24282
|
-
name: "Frosted",
|
|
24283
|
-
typography: "body",
|
|
24284
|
-
fontWeight: "medium",
|
|
24285
|
-
textTransform: "none",
|
|
24286
|
-
italic: false,
|
|
24287
|
-
colorToken: "text",
|
|
24288
|
-
padding: "compact",
|
|
24289
|
-
borderRadius: "md",
|
|
24290
|
-
effects: {
|
|
24291
|
-
base: [{ effectId: "nav-frosted-base" }],
|
|
24292
|
-
hover: [{ effectId: "nav-frosted-hover" }],
|
|
24293
|
-
active: [{ effectId: "nav-frosted-active" }]
|
|
24294
|
-
}
|
|
24295
|
-
}
|
|
24296
|
-
};
|
|
24297
|
-
/**
|
|
24298
|
-
* Get a nav link style preset by ID
|
|
24299
|
-
*/
|
|
24300
|
-
function getNavLinkPreset(presetId) {
|
|
24301
|
-
return NAV_LINK_PRESETS[presetId];
|
|
24302
|
-
}
|
|
24303
|
-
Object.keys(NAV_LINK_PRESETS);
|
|
24304
|
-
//#endregion
|
|
24305
24952
|
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
24306
24953
|
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
24307
24954
|
const navStyle = header.navStyle ?? "minimal";
|
|
@@ -24546,28 +25193,6 @@ z.object({
|
|
|
24546
25193
|
motion: z.enum(themeTokenRecipeOptions.motion)
|
|
24547
25194
|
});
|
|
24548
25195
|
//#endregion
|
|
24549
|
-
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
24550
|
-
function effectiveFooterNavLinkStyle(footer) {
|
|
24551
|
-
if (!footer) return null;
|
|
24552
|
-
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
24553
|
-
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
24554
|
-
if (!basePreset) return null;
|
|
24555
|
-
return {
|
|
24556
|
-
...basePreset,
|
|
24557
|
-
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
24558
|
-
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
24559
|
-
};
|
|
24560
|
-
}
|
|
24561
|
-
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
24562
|
-
if (!footer) return {};
|
|
24563
|
-
const style = effectiveFooterNavLinkStyle(footer);
|
|
24564
|
-
return {
|
|
24565
|
-
text: footer.background?.textColor,
|
|
24566
|
-
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
24567
|
-
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
24568
|
-
};
|
|
24569
|
-
}
|
|
24570
|
-
//#endregion
|
|
24571
25196
|
//#region ../theme-core/src/siteChromeOverlayClearance.ts
|
|
24572
25197
|
const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
24573
25198
|
//#endregion
|
|
@@ -29410,7 +30035,12 @@ function resolveRuntimeSectionSurface(value, context, options) {
|
|
|
29410
30035
|
}
|
|
29411
30036
|
function arrangementSurfaceInk(foreground, context) {
|
|
29412
30037
|
if (context.data?._lookSlots === void 0) return {};
|
|
29413
|
-
|
|
30038
|
+
return surfaceInkStyles(foreground, context.theme.palette);
|
|
30039
|
+
}
|
|
30040
|
+
/** Decoration roles already resolved by the surface owner, shared with footer arrangements. */
|
|
30041
|
+
function surfaceInkStyles(foreground, palette) {
|
|
30042
|
+
if (foreground.kind === "unknown") return {};
|
|
30043
|
+
const decorations = surfaceDecorationColors(foreground, palette);
|
|
29414
30044
|
return {
|
|
29415
30045
|
"--rb-surface-muted-color": foreground.roles.muted ?? foreground.roles.text,
|
|
29416
30046
|
...decorations ? {
|
|
@@ -30017,48 +30647,50 @@ const boxStylesTransforms = [
|
|
|
30017
30647
|
];
|
|
30018
30648
|
//#endregion
|
|
30019
30649
|
//#region ../blocks/src/system/node/fragments/responsiveTwoColumn.ts
|
|
30020
|
-
|
|
30021
|
-
|
|
30022
|
-
|
|
30023
|
-
|
|
30024
|
-
|
|
30025
|
-
|
|
30026
|
-
|
|
30027
|
-
|
|
30028
|
-
|
|
30029
|
-
|
|
30030
|
-
|
|
30031
|
-
fallback: baseClass
|
|
30032
|
-
} } };
|
|
30033
|
-
if (gapFrom) props.style = { gap: { $bind: {
|
|
30034
|
-
from: gapFrom,
|
|
30035
|
-
transforms: [{
|
|
30036
|
-
id: "boxStyles.semanticGapValue",
|
|
30037
|
-
options: { fallback: gapFallback }
|
|
30038
|
-
}],
|
|
30039
|
-
fallback: GAP_VALUE_MAP[gapFallback]
|
|
30040
|
-
} } };
|
|
30041
|
-
return el("div", props, [el("div", {
|
|
30042
|
-
className: imageWrapperClassName,
|
|
30043
|
-
style: { flexBasis: { $bind: {
|
|
30044
|
-
from: ratioFrom,
|
|
30650
|
+
/** The shared two-column shell keeps Look hooks opt-in and absent for legacy content. */
|
|
30651
|
+
function responsiveTwoColumn(config) {
|
|
30652
|
+
return el("div", twoColumnProps(config), [twoColumnWrapper(config, "image", config.image), twoColumnWrapper(config, "text", config.text)]);
|
|
30653
|
+
}
|
|
30654
|
+
function twoColumnProps(config) {
|
|
30655
|
+
const base = `${config.containerClassName ?? "rb-flex rb-flex-col rb-md-flex-row"} ${config.gapFrom ? "" : config.gapClassName ?? "rb-gap-6"}`.trim();
|
|
30656
|
+
const fallback = config.gapFallback ?? "comfortable";
|
|
30657
|
+
return {
|
|
30658
|
+
...config.lookSlots ? lookSlot("frame") : {},
|
|
30659
|
+
className: { $bind: {
|
|
30660
|
+
from: config.imagePositionFrom,
|
|
30045
30661
|
transforms: [{
|
|
30046
|
-
id: "ui.
|
|
30047
|
-
options: {
|
|
30662
|
+
id: "ui.twoColumnContainerClass",
|
|
30663
|
+
options: {
|
|
30664
|
+
base,
|
|
30665
|
+
reverseClass: "rb-md-flex-row-reverse"
|
|
30666
|
+
}
|
|
30048
30667
|
}],
|
|
30049
|
-
fallback:
|
|
30050
|
-
} }
|
|
30051
|
-
|
|
30052
|
-
|
|
30668
|
+
fallback: base
|
|
30669
|
+
} },
|
|
30670
|
+
...config.gapFrom ? { style: { gap: { $bind: {
|
|
30671
|
+
from: config.gapFrom,
|
|
30672
|
+
transforms: [{
|
|
30673
|
+
id: "boxStyles.semanticGapValue",
|
|
30674
|
+
options: { fallback }
|
|
30675
|
+
}],
|
|
30676
|
+
fallback: GAP_VALUE_MAP[fallback]
|
|
30677
|
+
} } } } : {}
|
|
30678
|
+
};
|
|
30679
|
+
}
|
|
30680
|
+
function twoColumnWrapper(config, side, child) {
|
|
30681
|
+
const className = side === "image" ? config.imageWrapperClassName ?? "rb-w-full rb-shrink-0" : config.textWrapperClassName ?? "rb-w-full rb-min-w-0 rb-flex-1";
|
|
30682
|
+
return el("div", {
|
|
30683
|
+
...config.lookSlots ? lookSlot(side === "image" ? "media" : "copy") : {},
|
|
30684
|
+
className,
|
|
30053
30685
|
style: { flexBasis: { $bind: {
|
|
30054
|
-
from: ratioFrom,
|
|
30686
|
+
from: config.ratioFrom,
|
|
30055
30687
|
transforms: [{
|
|
30056
30688
|
id: "ui.twoColumnFlexBasis",
|
|
30057
|
-
options: { side
|
|
30689
|
+
options: { side }
|
|
30058
30690
|
}],
|
|
30059
30691
|
fallback: "50%"
|
|
30060
30692
|
} } }
|
|
30061
|
-
}, [
|
|
30693
|
+
}, [child]);
|
|
30062
30694
|
}
|
|
30063
30695
|
//#endregion
|
|
30064
30696
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
@@ -30245,6 +30877,47 @@ function sectionState(opts) {
|
|
|
30245
30877
|
})]);
|
|
30246
30878
|
}
|
|
30247
30879
|
//#endregion
|
|
30880
|
+
//#region ../blocks/src/system/node/fragments/sectionHead.ts
|
|
30881
|
+
const recoverEmptyHeadingWhenActive = {
|
|
30882
|
+
kind: "recover-empty-when-active",
|
|
30883
|
+
placeholder: "Add heading"
|
|
30884
|
+
};
|
|
30885
|
+
const recoverEmptyDescriptionWhenActive = {
|
|
30886
|
+
kind: "recover-empty-when-active",
|
|
30887
|
+
placeholder: "Add description"
|
|
30888
|
+
};
|
|
30889
|
+
function sectionHeaderLayoutNodes(options = {}) {
|
|
30890
|
+
const headingNode = text({
|
|
30891
|
+
as: "h2",
|
|
30892
|
+
...lookSlot("heading")
|
|
30893
|
+
}, bind("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
|
|
30894
|
+
const descriptionNode = richText({
|
|
30895
|
+
className: "rb-prose rb-max-w-none",
|
|
30896
|
+
...lookSlot("intro")
|
|
30897
|
+
}, bind("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
|
|
30898
|
+
if (options.splitClassName) return [el("div", {
|
|
30899
|
+
className: options.splitClassName,
|
|
30900
|
+
...lookSlot("head")
|
|
30901
|
+
}, [headingNode, descriptionNode])];
|
|
30902
|
+
return [headingNode, descriptionNode];
|
|
30903
|
+
}
|
|
30904
|
+
/** Shared optional section copy. Existing consumers keep their description ID. */
|
|
30905
|
+
const sectionHeaderFields = (defaultHeading, introLabel = "Description") => [{
|
|
30906
|
+
id: "heading",
|
|
30907
|
+
type: "text",
|
|
30908
|
+
label: "Heading",
|
|
30909
|
+
description: "Main heading for the section",
|
|
30910
|
+
required: false,
|
|
30911
|
+
multiline: false,
|
|
30912
|
+
...defaultHeading === void 0 ? {} : { defaultValue: defaultHeading }
|
|
30913
|
+
}, {
|
|
30914
|
+
id: "description",
|
|
30915
|
+
type: "richText",
|
|
30916
|
+
label: introLabel,
|
|
30917
|
+
description: "Optional introductory text",
|
|
30918
|
+
required: false
|
|
30919
|
+
}];
|
|
30920
|
+
//#endregion
|
|
30248
30921
|
//#region ../blocks/src/system/fragments/types.ts
|
|
30249
30922
|
const FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
30250
30923
|
const FIELD_ID_PATTERN = /^[a-z][a-zA-Z0-9_-]*$/;
|
|
@@ -30577,6 +31250,7 @@ const bodyCopyFragment = defineFragment({
|
|
|
30577
31250
|
],
|
|
30578
31251
|
layout: stack({
|
|
30579
31252
|
gap: "md",
|
|
31253
|
+
...lookSlot("copy"),
|
|
30580
31254
|
className: "body-copy-container",
|
|
30581
31255
|
align: { $bind: {
|
|
30582
31256
|
from: "content.alignment",
|
|
@@ -30585,6 +31259,7 @@ const bodyCopyFragment = defineFragment({
|
|
|
30585
31259
|
} }
|
|
30586
31260
|
}, [text({
|
|
30587
31261
|
as: "h2",
|
|
31262
|
+
...lookSlot("heading"),
|
|
30588
31263
|
className: { $bind: {
|
|
30589
31264
|
from: "content.alignment",
|
|
30590
31265
|
transforms: [{
|
|
@@ -30593,14 +31268,22 @@ const bodyCopyFragment = defineFragment({
|
|
|
30593
31268
|
}],
|
|
30594
31269
|
fallback: "body-copy-heading"
|
|
30595
31270
|
} }
|
|
30596
|
-
}, when("content.heading"
|
|
30597
|
-
|
|
30598
|
-
|
|
30599
|
-
|
|
30600
|
-
|
|
30601
|
-
}
|
|
30602
|
-
|
|
30603
|
-
|
|
31271
|
+
}, when("content.heading", { authoringPresence: {
|
|
31272
|
+
kind: "recover-empty-when-active",
|
|
31273
|
+
placeholder: "Add heading"
|
|
31274
|
+
} }), bind("content.heading")), richText({
|
|
31275
|
+
...lookSlot("item-body"),
|
|
31276
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } },
|
|
31277
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
31278
|
+
className: { $bind: {
|
|
31279
|
+
from: "content.alignment",
|
|
31280
|
+
transforms: [{
|
|
31281
|
+
id: "ui.bodyClassFromAlignment",
|
|
31282
|
+
options: { base: "body-copy-body rb-prose rb-max-w-none" }
|
|
31283
|
+
}],
|
|
31284
|
+
fallback: "body-copy-body rb-prose rb-max-w-none"
|
|
31285
|
+
} }
|
|
31286
|
+
}, bind("content.body"))])
|
|
30604
31287
|
});
|
|
30605
31288
|
//#endregion
|
|
30606
31289
|
//#region ../blocks/src/system/fragments/library/heroCopy.ts
|
|
@@ -31616,8 +32299,19 @@ const formCopyFragment = defineFragment({
|
|
|
31616
32299
|
}],
|
|
31617
32300
|
layout: [text({
|
|
31618
32301
|
as: "h2",
|
|
32302
|
+
...lookSlot("heading"),
|
|
31619
32303
|
className: "form-copy-title"
|
|
31620
|
-
}, when("content.title"
|
|
32304
|
+
}, when("content.title", { authoringPresence: {
|
|
32305
|
+
kind: "recover-empty-when-active",
|
|
32306
|
+
placeholder: "Add heading"
|
|
32307
|
+
} }), bind("content.title")), richText({
|
|
32308
|
+
className: "form-copy-intro rb-prose rb-max-w-none",
|
|
32309
|
+
...lookSlot("intro"),
|
|
32310
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } }
|
|
32311
|
+
}, when("content.intro", { authoringPresence: {
|
|
32312
|
+
kind: "recover-empty-when-active",
|
|
32313
|
+
placeholder: "Add introduction"
|
|
32314
|
+
} }), bind("content.intro"))]
|
|
31621
32315
|
});
|
|
31622
32316
|
//#endregion
|
|
31623
32317
|
//#region ../blocks/src/system/helpers/api-bindings.ts
|
|
@@ -31666,6 +32360,7 @@ const formEmbedFragment = defineFragment({
|
|
|
31666
32360
|
}
|
|
31667
32361
|
],
|
|
31668
32362
|
layout: [form(withApiBindings({
|
|
32363
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
31669
32364
|
spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } },
|
|
31670
32365
|
submitLabel: { $bind: { from: "submitLabel" } },
|
|
31671
32366
|
successMessage: { $bind: { from: "successMessage" } }
|
|
@@ -31919,8 +32614,18 @@ const newsletterCopyFragment = defineFragment({
|
|
|
31919
32614
|
}],
|
|
31920
32615
|
layout: [text({
|
|
31921
32616
|
as: "h2",
|
|
31922
|
-
className: "newsletter-copy-title"
|
|
31923
|
-
|
|
32617
|
+
className: "newsletter-copy-title",
|
|
32618
|
+
...lookSlot("heading")
|
|
32619
|
+
}, when("content.title", { authoringPresence: {
|
|
32620
|
+
kind: "recover-empty-when-active",
|
|
32621
|
+
placeholder: "Add heading"
|
|
32622
|
+
} }), bind("content.title")), richText({
|
|
32623
|
+
className: "newsletter-copy-subtitle rb-prose rb-max-w-none",
|
|
32624
|
+
...lookSlot("intro")
|
|
32625
|
+
}, when("content.subtitle", { authoringPresence: {
|
|
32626
|
+
kind: "recover-empty-when-active",
|
|
32627
|
+
placeholder: "Add introduction"
|
|
32628
|
+
} }), bind("content.subtitle"))]
|
|
31924
32629
|
});
|
|
31925
32630
|
//#endregion
|
|
31926
32631
|
//#region ../blocks/src/system/fragments/library/newsletterForm.ts
|
|
@@ -31988,6 +32693,7 @@ const newsletterFormFragment = defineFragment({
|
|
|
31988
32693
|
}
|
|
31989
32694
|
],
|
|
31990
32695
|
layout: [el("newsletter-form", withApiBindings({
|
|
32696
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
31991
32697
|
source: { $bind: {
|
|
31992
32698
|
from: "mailingListSource",
|
|
31993
32699
|
fallback: "block"
|
|
@@ -33480,18 +34186,11 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
33480
34186
|
//#endregion
|
|
33481
34187
|
//#region ../blocks/src/system/blocks/body-text.ts
|
|
33482
34188
|
const bodyCopyComposition = composeFragments([{ fragment: bodyCopyFragment }]);
|
|
33483
|
-
const
|
|
33484
|
-
children: stack({
|
|
33485
|
-
|
|
33486
|
-
|
|
33487
|
-
})
|
|
33488
|
-
const introLayout = styledSection({
|
|
33489
|
-
children: stack({ className: "rb-container" }, bodyCopyComposition.layout),
|
|
33490
|
-
spacing: "medium",
|
|
33491
|
-
baseClass: ""
|
|
33492
|
-
});
|
|
33493
|
-
const narrowLayout = styledSection({
|
|
33494
|
-
children: stack({ className: "rb-container" }, bodyCopyComposition.layout),
|
|
34189
|
+
const bodyTextLayout = styledSection({
|
|
34190
|
+
children: stack({
|
|
34191
|
+
className: "rb-container",
|
|
34192
|
+
...lookSlot("frame")
|
|
34193
|
+
}, bodyCopyComposition.layout),
|
|
33495
34194
|
spacing: "medium",
|
|
33496
34195
|
baseClass: ""
|
|
33497
34196
|
});
|
|
@@ -33505,11 +34204,11 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
33505
34204
|
fragment: bodyCopyFragment,
|
|
33506
34205
|
fieldPriority: 0
|
|
33507
34206
|
}],
|
|
33508
|
-
layout:
|
|
34207
|
+
layout: bodyTextLayout,
|
|
33509
34208
|
variants: {
|
|
33510
|
-
prose:
|
|
33511
|
-
intro:
|
|
33512
|
-
narrow:
|
|
34209
|
+
prose: bodyTextLayout,
|
|
34210
|
+
intro: bodyTextLayout,
|
|
34211
|
+
narrow: bodyTextLayout
|
|
33513
34212
|
},
|
|
33514
34213
|
variantMeaning: { kind: "arrangement" },
|
|
33515
34214
|
defaultVariant: "prose",
|
|
@@ -33957,6 +34656,52 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
33957
34656
|
styleTokens: { spacing: "md" }
|
|
33958
34657
|
}) };
|
|
33959
34658
|
//#endregion
|
|
34659
|
+
//#region ../blocks/src/system/runtime/lookSurfaces.ts
|
|
34660
|
+
const isPlainObject$2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
34661
|
+
const lookListPresentationSchemaShape = {
|
|
34662
|
+
sectionAction: z.object({
|
|
34663
|
+
label: z.string(),
|
|
34664
|
+
href: z.string()
|
|
34665
|
+
}).optional(),
|
|
34666
|
+
actionSize: z.enum([
|
|
34667
|
+
"sm",
|
|
34668
|
+
"md",
|
|
34669
|
+
"lg"
|
|
34670
|
+
]).optional(),
|
|
34671
|
+
itemActionStyle: z.enum(["button", "link"]).optional(),
|
|
34672
|
+
itemRoles: z.object({
|
|
34673
|
+
container: z.enum([
|
|
34674
|
+
"card",
|
|
34675
|
+
"statement",
|
|
34676
|
+
"highlight"
|
|
34677
|
+
]).optional(),
|
|
34678
|
+
items: z.enum([
|
|
34679
|
+
"card",
|
|
34680
|
+
"statement",
|
|
34681
|
+
"highlight"
|
|
34682
|
+
]).optional(),
|
|
34683
|
+
at: z.partialRecord(z.enum([
|
|
34684
|
+
"first",
|
|
34685
|
+
"last",
|
|
34686
|
+
"middle",
|
|
34687
|
+
"odd",
|
|
34688
|
+
"even"
|
|
34689
|
+
]), z.enum([
|
|
34690
|
+
"card",
|
|
34691
|
+
"statement",
|
|
34692
|
+
"highlight"
|
|
34693
|
+
])).optional()
|
|
34694
|
+
}).optional(),
|
|
34695
|
+
roleSurfaces: z.record(z.enum([
|
|
34696
|
+
"card",
|
|
34697
|
+
"statement",
|
|
34698
|
+
"highlight"
|
|
34699
|
+
]), z.custom((value) => isPlainObject$2(value) && (value.kind === "inherit" || value.kind === "owned"))).optional(),
|
|
34700
|
+
panelHeading: z.string().optional(),
|
|
34701
|
+
lookSlots: z.partialRecord(z.enum(arrangementSlotNames), z.enum(arrangementSlotNames)).optional(),
|
|
34702
|
+
itemSurfaces: z.record(z.string(), z.custom((value) => isPlainObject$2(value) && (value.kind === "inherit" || value.kind === "owned"))).optional()
|
|
34703
|
+
};
|
|
34704
|
+
//#endregion
|
|
33960
34705
|
//#region ../blocks/src/contracts/runtime.ts
|
|
33961
34706
|
function decodeSuccess(value) {
|
|
33962
34707
|
return {
|
|
@@ -34063,6 +34808,7 @@ const formFieldGroupSchema = z.discriminatedUnion("type", [z.object({
|
|
|
34063
34808
|
fields: z.tuple([formFieldSchema, formFieldSchema])
|
|
34064
34809
|
})]);
|
|
34065
34810
|
const formSourceSchema = z.object({
|
|
34811
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
34066
34812
|
value: formRecordSchema.optional(),
|
|
34067
34813
|
siteId: z.string().optional(),
|
|
34068
34814
|
apiBaseUrl: z.string().optional(),
|
|
@@ -34072,6 +34818,7 @@ const formSourceSchema = z.object({
|
|
|
34072
34818
|
spamProtectionEnabled: z.boolean().optional()
|
|
34073
34819
|
});
|
|
34074
34820
|
const formDisplaySchema = z.object({
|
|
34821
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
34075
34822
|
kind: z.literal("form"),
|
|
34076
34823
|
state: z.enum(["missing", "ready"]),
|
|
34077
34824
|
className: z.string().nullable(),
|
|
@@ -34092,17 +34839,30 @@ z.object({
|
|
|
34092
34839
|
});
|
|
34093
34840
|
function buildFormDisplay(source) {
|
|
34094
34841
|
const form = source.value ?? null;
|
|
34095
|
-
const fields = form
|
|
34096
|
-
const groups = Array.isArray(fields) ? groupFormFields(fields) : [];
|
|
34842
|
+
const fields = formDisplayFields(form);
|
|
34097
34843
|
return {
|
|
34098
34844
|
kind: "form",
|
|
34099
|
-
|
|
34845
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
34846
|
+
state: fields.state,
|
|
34100
34847
|
className: source.className ?? null,
|
|
34101
|
-
formId:
|
|
34848
|
+
formId: fields.formId,
|
|
34102
34849
|
submitLabel: source.submitLabel?.trim() || "Submit",
|
|
34103
34850
|
successMessage: source.successMessage ?? null,
|
|
34104
34851
|
form,
|
|
34105
|
-
groups
|
|
34852
|
+
groups: fields.groups
|
|
34853
|
+
};
|
|
34854
|
+
}
|
|
34855
|
+
function formDisplayFields(form) {
|
|
34856
|
+
if (!form) return {
|
|
34857
|
+
state: "missing",
|
|
34858
|
+
formId: null,
|
|
34859
|
+
groups: []
|
|
34860
|
+
};
|
|
34861
|
+
const fields = form.schemaJson?.fields;
|
|
34862
|
+
return {
|
|
34863
|
+
state: "ready",
|
|
34864
|
+
formId: form.id,
|
|
34865
|
+
groups: Array.isArray(fields) ? groupFormFields(fields) : []
|
|
34106
34866
|
};
|
|
34107
34867
|
}
|
|
34108
34868
|
const formBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -34125,18 +34885,27 @@ function fragmentLayoutNode$1(layout) {
|
|
|
34125
34885
|
function isNodeDefinitionArray$1(layout) {
|
|
34126
34886
|
return Array.isArray(layout);
|
|
34127
34887
|
}
|
|
34128
|
-
const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
34888
|
+
const copyLayout = props(lookSlot("head"))(fragmentLayoutNode$1(formCopyFragment.layout));
|
|
34889
|
+
const embedLayout$1 = fragmentLayoutNode$1(formEmbedFragment.layout);
|
|
34129
34890
|
const formSurface = styledContainer({
|
|
34891
|
+
rootProps: lookSlot("panel"),
|
|
34130
34892
|
bindFrom: "_containerStyles",
|
|
34131
34893
|
constrainWidth: false,
|
|
34132
34894
|
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
34133
|
-
children:
|
|
34895
|
+
children: embedLayout$1
|
|
34134
34896
|
});
|
|
34135
34897
|
function createFormLayout(variant) {
|
|
34136
34898
|
if (variant === "two-column") return styledSection({
|
|
34137
|
-
children: el("div", {
|
|
34899
|
+
children: el("div", {
|
|
34900
|
+
className: "rb-container",
|
|
34901
|
+
...lookSlot("layout")
|
|
34902
|
+
}, [el("div", {
|
|
34903
|
+
className: "rb-form-two-column rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start",
|
|
34904
|
+
...lookSlot("frame")
|
|
34905
|
+
}, [stack({
|
|
34138
34906
|
gap: "md",
|
|
34139
|
-
className: "rb-form-copy-column"
|
|
34907
|
+
className: "rb-form-copy-column",
|
|
34908
|
+
...lookSlot("copy")
|
|
34140
34909
|
}, [copyLayout]), formSurface])]),
|
|
34141
34910
|
baseClass: "",
|
|
34142
34911
|
spacing: "medium",
|
|
@@ -34164,6 +34933,15 @@ const formManifest = createBlockManifest({
|
|
|
34164
34933
|
description: "Renders a saved form definition with server-side submit.",
|
|
34165
34934
|
includeContainerStyles: true,
|
|
34166
34935
|
fragments: [{ fragment: formCopyFragment }, { fragment: formEmbedFragment }],
|
|
34936
|
+
additionalFields: [{
|
|
34937
|
+
id: "archFrame",
|
|
34938
|
+
type: "boolean",
|
|
34939
|
+
label: "Arch frame",
|
|
34940
|
+
ui: {
|
|
34941
|
+
intent: "display",
|
|
34942
|
+
hidden: true
|
|
34943
|
+
}
|
|
34944
|
+
}],
|
|
34167
34945
|
layout: formLayout,
|
|
34168
34946
|
variants: {
|
|
34169
34947
|
default: formLayout,
|
|
@@ -34783,7 +35561,7 @@ const heroTitleLengthThresholds = {
|
|
|
34783
35561
|
maxWords: 11
|
|
34784
35562
|
}
|
|
34785
35563
|
};
|
|
34786
|
-
function isPlainObject$
|
|
35564
|
+
function isPlainObject$1(value) {
|
|
34787
35565
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
34788
35566
|
}
|
|
34789
35567
|
function readString(obj, key) {
|
|
@@ -34792,7 +35570,7 @@ function readString(obj, key) {
|
|
|
34792
35570
|
}
|
|
34793
35571
|
function resolveGeneratedHeroLayoutStyles(content) {
|
|
34794
35572
|
const raw = content._heroLayoutStyles;
|
|
34795
|
-
return isPlainObject$
|
|
35573
|
+
return isPlainObject$1(raw) ? raw : null;
|
|
34796
35574
|
}
|
|
34797
35575
|
function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
|
|
34798
35576
|
const explicitValue = readString(content, fallbackKey);
|
|
@@ -34850,7 +35628,7 @@ const heroContentWrapperClassTransform = {
|
|
|
34850
35628
|
summary: "Resolve hero content wrapper className from alignment + max width controls",
|
|
34851
35629
|
schema: z.object({ base: z.string().optional() }),
|
|
34852
35630
|
run: (value, options, context) => {
|
|
34853
|
-
const content = isPlainObject$
|
|
35631
|
+
const content = isPlainObject$1(value) ? value : isPlainObject$1(context.data) ? context.data : {};
|
|
34854
35632
|
const alignment = resolveHeroContentAlignment(content);
|
|
34855
35633
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
34856
35634
|
const typographyScale = resolveHeroTypographyScale(content);
|
|
@@ -34872,7 +35650,7 @@ const heroCtaJustifyTransform = {
|
|
|
34872
35650
|
kind: "string",
|
|
34873
35651
|
summary: "Map hero contentAlignment to CTA row justify value",
|
|
34874
35652
|
run: (value, _options, context) => {
|
|
34875
|
-
const alignment = resolveHeroContentAlignment(isPlainObject$
|
|
35653
|
+
const alignment = resolveHeroContentAlignment(isPlainObject$1(value) ? value : isPlainObject$1(context.data) ? context.data : {});
|
|
34876
35654
|
return alignment === "left" ? "start" : alignment === "right" ? "end" : "center";
|
|
34877
35655
|
}
|
|
34878
35656
|
};
|
|
@@ -34881,7 +35659,7 @@ const heroStackJustifyFromVerticalAlignmentTransform = {
|
|
|
34881
35659
|
kind: "string",
|
|
34882
35660
|
summary: "Map hero verticalAlignment to stack justify value",
|
|
34883
35661
|
run: (value, _options, context) => {
|
|
34884
|
-
const vertical = resolveHeroVerticalAlignment(isPlainObject$
|
|
35662
|
+
const vertical = resolveHeroVerticalAlignment(isPlainObject$1(value) ? value : isPlainObject$1(context.data) ? context.data : {});
|
|
34885
35663
|
return vertical === "top" ? "start" : vertical === "bottom" ? "end" : "center";
|
|
34886
35664
|
}
|
|
34887
35665
|
};
|
|
@@ -34891,7 +35669,7 @@ const heroGridClassFromVerticalAlignmentTransform = {
|
|
|
34891
35669
|
summary: "Append align-items class for hero split layouts based on verticalAlignment",
|
|
34892
35670
|
schema: z.object({ base: z.string() }),
|
|
34893
35671
|
run: (value, options, context) => {
|
|
34894
|
-
const vertical = resolveHeroVerticalAlignment(isPlainObject$
|
|
35672
|
+
const vertical = resolveHeroVerticalAlignment(isPlainObject$1(value) ? value : isPlainObject$1(context.data) ? context.data : {});
|
|
34895
35673
|
const itemsClass = vertical === "top" ? "rb-items-start" : vertical === "bottom" ? "rb-items-end" : "rb-items-center";
|
|
34896
35674
|
return joinClasses$1([options.base, itemsClass]);
|
|
34897
35675
|
}
|
|
@@ -35179,6 +35957,25 @@ function heroHeadlineText(content, policy) {
|
|
|
35179
35957
|
return policy === "look" ? inlineTextToPlainText(coerceInlineTextWithFallback(content.headlineInline, plain)).trim() : plain?.trim() ?? "";
|
|
35180
35958
|
}
|
|
35181
35959
|
//#endregion
|
|
35960
|
+
//#region ../blocks/src/system/transforms/registry/footerArrangement.ts
|
|
35961
|
+
const footerBrandArrangementTransform = {
|
|
35962
|
+
id: "layout.footerBrandArrangement",
|
|
35963
|
+
kind: "string",
|
|
35964
|
+
run: (value) => {
|
|
35965
|
+
const module = asPartialObject(value);
|
|
35966
|
+
return module?.kind === "brand" ? module.slots ? "centred" : "row" : void 0;
|
|
35967
|
+
}
|
|
35968
|
+
};
|
|
35969
|
+
const footerModuleInkStyleTransform = {
|
|
35970
|
+
id: "layout.footerModuleInkStyle",
|
|
35971
|
+
kind: "formatter",
|
|
35972
|
+
run: (value, options) => value === "centred" ? void 0 : textColorStyle(asPartialObject(options)?.opacity === 70 ? "text/70" : "text/80")
|
|
35973
|
+
};
|
|
35974
|
+
/** A centred base without authored bar paint inherits its measured surface line. */
|
|
35975
|
+
function footerBottomBarBorderColorStyle(footer) {
|
|
35976
|
+
return footer?.variant === "centred" && !footer.bottomBar ? { borderColor: "var(--rb-surface-line-color)" } : borderColorStyle(footer?.bottomBar?.borderTop?.colorToken ?? "border");
|
|
35977
|
+
}
|
|
35978
|
+
//#endregion
|
|
35182
35979
|
//#region ../blocks/src/system/runtime/header/runtimeContract.ts
|
|
35183
35980
|
const headerScrollRuntimeSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("none") }), z.object({ kind: z.literal("threshold") })]);
|
|
35184
35981
|
z.object({ scroll: headerScrollRuntimeSchema });
|
|
@@ -35410,6 +36207,7 @@ const footerRootStyleTransform = {
|
|
|
35410
36207
|
}
|
|
35411
36208
|
}
|
|
35412
36209
|
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
|
|
36210
|
+
if (footer?.variant === "centred") styleParts.push(surfaceInkStyles(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate), context.theme.palette));
|
|
35413
36211
|
styleParts.push(borderColorStyle("border"));
|
|
35414
36212
|
return mergeStyles(...styleParts);
|
|
35415
36213
|
}
|
|
@@ -35471,7 +36269,7 @@ const footerBottomBarStyleTransform = {
|
|
|
35471
36269
|
run: (value, _options, context) => {
|
|
35472
36270
|
const footer = asPartialObject(value);
|
|
35473
36271
|
const bottomBar = footer?.bottomBar;
|
|
35474
|
-
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0,
|
|
36272
|
+
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0, footerBottomBarBorderColorStyle(footer), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width), footerBottomBarForegroundStyle(footer, context.theme.palette));
|
|
35475
36273
|
}
|
|
35476
36274
|
};
|
|
35477
36275
|
function footerBottomBarForegroundStyle(footer, palette) {
|
|
@@ -35493,62 +36291,15 @@ function measuredFooterBackdrop(footer, palette) {
|
|
|
35493
36291
|
const foreground = resolveFooterRootForeground(footer, palette);
|
|
35494
36292
|
return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
|
|
35495
36293
|
}
|
|
35496
|
-
const footerSplitMainClassTransform = {
|
|
35497
|
-
id: "layout.footerSplitMainClass",
|
|
35498
|
-
kind: "string",
|
|
35499
|
-
summary: "Compose split-footer main row classes from footer logo placement",
|
|
35500
|
-
schema: z.object({
|
|
35501
|
-
base: z.string().optional(),
|
|
35502
|
-
reverseClass: z.string().optional()
|
|
35503
|
-
}),
|
|
35504
|
-
run: (value, options) => {
|
|
35505
|
-
const placement = asPartialObject(value)?.placement ?? "right";
|
|
35506
|
-
const shouldPlaceLogoFirst = placement === "left" || placement === "above";
|
|
35507
|
-
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";
|
|
35508
|
-
return joinClasses([options.base ?? baseClass, shouldPlaceLogoFirst ? options.reverseClass ?? "rb-md-flex-row-reverse" : null]);
|
|
35509
|
-
}
|
|
35510
|
-
};
|
|
35511
36294
|
const footerLogoClassTransform = {
|
|
35512
36295
|
id: "layout.footerLogoClass",
|
|
35513
36296
|
kind: "string",
|
|
35514
36297
|
summary: "Compose split-footer logo wrapper classes from footer.logo controls",
|
|
35515
|
-
schema: z.object({
|
|
35516
|
-
base: z.string().optional(),
|
|
35517
|
-
requireExplicitShow: z.boolean().optional()
|
|
35518
|
-
}),
|
|
36298
|
+
schema: z.object({ base: z.string().optional() }),
|
|
35519
36299
|
run: (value, options) => {
|
|
35520
|
-
const
|
|
35521
|
-
const align = logo?.align ?? "end";
|
|
35522
|
-
const hiddenClass = options.requireExplicitShow ? logo?.showLogo === true ? null : "rb-hidden" : logo?.showLogo === false ? "rb-hidden" : null;
|
|
36300
|
+
const align = asPartialObject(value)?.align ?? "end";
|
|
35523
36301
|
const selfAlignClass = align === "start" ? "rb-self-start rb-text-left" : align === "center" ? "rb-self-center rb-text-center" : "rb-self-end rb-text-right";
|
|
35524
|
-
return joinClasses([
|
|
35525
|
-
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",
|
|
35526
|
-
selfAlignClass,
|
|
35527
|
-
hiddenClass
|
|
35528
|
-
]);
|
|
35529
|
-
}
|
|
35530
|
-
};
|
|
35531
|
-
const footerLogoMediaClassTransform = {
|
|
35532
|
-
id: "layout.footerLogoMediaClass",
|
|
35533
|
-
kind: "string",
|
|
35534
|
-
summary: "Compose footer logo image classes from size controls",
|
|
35535
|
-
schema: z.object({ base: z.string().optional() }),
|
|
35536
|
-
run: (_value, options) => {
|
|
35537
|
-
return joinClasses([options.base ?? "rb-w-auto"]);
|
|
35538
|
-
}
|
|
35539
|
-
};
|
|
35540
|
-
function shouldShowFooterLogoText(footer) {
|
|
35541
|
-
if (!footer) return false;
|
|
35542
|
-
const explicit = footer.logo?.showLogoText;
|
|
35543
|
-
const legacy = footer.showLogoText === true;
|
|
35544
|
-
return explicit === true || explicit === void 0 && legacy;
|
|
35545
|
-
}
|
|
35546
|
-
const footerLogoTextVisibleTransform = {
|
|
35547
|
-
id: "layout.footerLogoTextVisible",
|
|
35548
|
-
kind: "formatter",
|
|
35549
|
-
summary: "Return whether footer logo text should render",
|
|
35550
|
-
run: (value) => {
|
|
35551
|
-
return shouldShowFooterLogoText(asPartialObject(value));
|
|
36302
|
+
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]);
|
|
35552
36303
|
}
|
|
35553
36304
|
};
|
|
35554
36305
|
function extractBackgroundColorToken(background, fallback) {
|
|
@@ -35567,13 +36318,12 @@ const layoutTransforms = [
|
|
|
35567
36318
|
headerRootStyleTransform,
|
|
35568
36319
|
headerSectionBackgroundTransform,
|
|
35569
36320
|
footerRootStyleTransform,
|
|
36321
|
+
footerModuleInkStyleTransform,
|
|
36322
|
+
footerBrandArrangementTransform,
|
|
35570
36323
|
footerBottomBarClassTransform,
|
|
35571
36324
|
footerBottomBarContainerClassTransform,
|
|
35572
36325
|
footerBottomBarStyleTransform,
|
|
35573
|
-
|
|
35574
|
-
footerLogoClassTransform,
|
|
35575
|
-
footerLogoMediaClassTransform,
|
|
35576
|
-
footerLogoTextVisibleTransform
|
|
36326
|
+
footerLogoClassTransform
|
|
35577
36327
|
];
|
|
35578
36328
|
//#endregion
|
|
35579
36329
|
//#region ../blocks/src/system/transforms/registry/chromeLogo.ts
|
|
@@ -36069,7 +36819,14 @@ const footerNavGroupsLayout = stack({
|
|
|
36069
36819
|
}, [text({
|
|
36070
36820
|
as: "h3",
|
|
36071
36821
|
className: "rb-label",
|
|
36072
|
-
|
|
36822
|
+
"data-slot": { $bind: { from: "content.footerRuntime.slots.group-label" } },
|
|
36823
|
+
style: { $bind: {
|
|
36824
|
+
from: "content.footerRuntime.arrangement",
|
|
36825
|
+
transforms: [{
|
|
36826
|
+
id: "layout.footerModuleInkStyle",
|
|
36827
|
+
options: { opacity: 70 }
|
|
36828
|
+
}]
|
|
36829
|
+
} }
|
|
36073
36830
|
}, when("group.label"), bind("group.label")), stack({
|
|
36074
36831
|
gap: "sm",
|
|
36075
36832
|
align: "start",
|
|
@@ -36099,6 +36856,14 @@ const footerMailingListBindings = {
|
|
|
36099
36856
|
targeting: { $bind: { from: "module.engagement.runtime.targeting" } }
|
|
36100
36857
|
};
|
|
36101
36858
|
const footerSpamProtectionBinding = { spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } } };
|
|
36859
|
+
const brandMedia = media({ className: "rb-h-10 rb-w-auto" }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
|
|
36860
|
+
id: "layout.chromeLogo",
|
|
36861
|
+
options: { surface: "footer-root" }
|
|
36862
|
+
}] }));
|
|
36863
|
+
const brandTitle = text({
|
|
36864
|
+
as: "strong",
|
|
36865
|
+
className: "footer-logo-text rb-nav-text"
|
|
36866
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }));
|
|
36102
36867
|
const brandLogo = link({
|
|
36103
36868
|
href: "/",
|
|
36104
36869
|
className: { $bind: {
|
|
@@ -36109,20 +36874,39 @@ const brandLogo = link({
|
|
|
36109
36874
|
}],
|
|
36110
36875
|
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
36111
36876
|
} }
|
|
36112
|
-
}, [
|
|
36113
|
-
|
|
36114
|
-
|
|
36115
|
-
|
|
36116
|
-
|
|
36117
|
-
|
|
36118
|
-
|
|
36119
|
-
|
|
36120
|
-
|
|
36121
|
-
|
|
36122
|
-
|
|
36123
|
-
|
|
36124
|
-
|
|
36125
|
-
},
|
|
36877
|
+
}, [brandMedia, brandTitle], (node) => ({
|
|
36878
|
+
...node,
|
|
36879
|
+
$when: {
|
|
36880
|
+
when: {
|
|
36881
|
+
from: "module",
|
|
36882
|
+
transforms: [{ id: "layout.footerBrandArrangement" }]
|
|
36883
|
+
},
|
|
36884
|
+
equals: "row"
|
|
36885
|
+
}
|
|
36886
|
+
}));
|
|
36887
|
+
const centredBrand = stack({
|
|
36888
|
+
gap: "md",
|
|
36889
|
+
align: "center"
|
|
36890
|
+
}, [link({
|
|
36891
|
+
href: "/",
|
|
36892
|
+
"data-slot": { $bind: { from: "module.slots.media" } },
|
|
36893
|
+
className: "footer-logo rb-inline-flex rb-items-center rb-no-underline"
|
|
36894
|
+
}, [brandMedia], when("module.slots.media")), {
|
|
36895
|
+
...brandTitle,
|
|
36896
|
+
props: {
|
|
36897
|
+
...brandTitle.props,
|
|
36898
|
+
"data-slot": { $bind: { from: "module.slots.heading" } }
|
|
36899
|
+
}
|
|
36900
|
+
}], (node) => ({
|
|
36901
|
+
...node,
|
|
36902
|
+
$when: {
|
|
36903
|
+
when: {
|
|
36904
|
+
from: "module",
|
|
36905
|
+
transforms: [{ id: "layout.footerBrandArrangement" }]
|
|
36906
|
+
},
|
|
36907
|
+
equals: "centred"
|
|
36908
|
+
}
|
|
36909
|
+
}));
|
|
36126
36910
|
const navigation = stack({
|
|
36127
36911
|
gap: "md",
|
|
36128
36912
|
className: "rb-w-full"
|
|
@@ -36147,14 +36931,18 @@ const address = text({
|
|
|
36147
36931
|
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
36148
36932
|
const contact = stack({
|
|
36149
36933
|
gap: "sm",
|
|
36150
|
-
className:
|
|
36934
|
+
className: { $bind: {
|
|
36935
|
+
from: "module.contactClassName",
|
|
36936
|
+
fallback: "rb-items-start"
|
|
36937
|
+
} }
|
|
36151
36938
|
}, [link({
|
|
36152
36939
|
href: { $bind: { from: "contactLink.href" } },
|
|
36153
36940
|
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
36154
36941
|
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
36155
36942
|
const hours = stack({
|
|
36156
36943
|
gap: "sm",
|
|
36157
|
-
className: "rb-w-full"
|
|
36944
|
+
className: "rb-w-full",
|
|
36945
|
+
"data-slot": { $bind: { from: "module.slots.schedule" } }
|
|
36158
36946
|
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
36159
36947
|
as: "span",
|
|
36160
36948
|
className: "rb-label"
|
|
@@ -36165,7 +36953,10 @@ const hours = stack({
|
|
|
36165
36953
|
as: "p",
|
|
36166
36954
|
className: "rb-caption rb-opacity-70"
|
|
36167
36955
|
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
36168
|
-
const socials = inline({
|
|
36956
|
+
const socials = inline({
|
|
36957
|
+
className: "rb-footer-socials",
|
|
36958
|
+
"data-slot": { $bind: { from: "module.slots.social" } }
|
|
36959
|
+
}, [link({
|
|
36169
36960
|
href: { $bind: { from: "social.href" } },
|
|
36170
36961
|
target: "_blank",
|
|
36171
36962
|
rel: "noreferrer noopener",
|
|
@@ -36174,7 +36965,14 @@ const socials = inline({ className: "rb-footer-socials" }, [link({
|
|
|
36174
36965
|
}, [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" }));
|
|
36175
36966
|
const authoredCopy = richText({
|
|
36176
36967
|
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
36177
|
-
|
|
36968
|
+
"data-slot": { $bind: { from: "module.slots.copy" } },
|
|
36969
|
+
style: { $bind: {
|
|
36970
|
+
from: "content.footerRuntime.arrangement",
|
|
36971
|
+
transforms: [{
|
|
36972
|
+
id: "layout.footerModuleInkStyle",
|
|
36973
|
+
options: { opacity: 80 }
|
|
36974
|
+
}]
|
|
36975
|
+
} }
|
|
36178
36976
|
}, when("module.content"), bind("module.content", { transforms: [{
|
|
36179
36977
|
id: "content.interpolateRichTextTokens",
|
|
36180
36978
|
options: { tokens: ["year", "site_name"] }
|
|
@@ -36212,27 +37010,44 @@ const platformAttribution = el("div", {
|
|
|
36212
37010
|
], when("module.kind", { equals: "attribution" }));
|
|
36213
37011
|
const footerGroup = stack({
|
|
36214
37012
|
gap: "md",
|
|
36215
|
-
align:
|
|
37013
|
+
align: { $bind: {
|
|
37014
|
+
from: "group.align",
|
|
37015
|
+
fallback: "stretch"
|
|
37016
|
+
} },
|
|
36216
37017
|
className: { $bind: {
|
|
36217
37018
|
from: "group.className",
|
|
36218
37019
|
fallback: "rb-min-w-0"
|
|
36219
37020
|
} },
|
|
37021
|
+
"data-slot": { $bind: { from: "group.slot" } },
|
|
36220
37022
|
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
36221
37023
|
}, [stack({
|
|
36222
37024
|
gap: "md",
|
|
36223
|
-
align:
|
|
37025
|
+
align: { $bind: {
|
|
37026
|
+
from: "module.align",
|
|
37027
|
+
fallback: "start"
|
|
37028
|
+
} },
|
|
37029
|
+
className: { $bind: { from: "module.className" } },
|
|
36224
37030
|
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
36225
37031
|
}, [
|
|
36226
37032
|
text({
|
|
36227
37033
|
as: "h2",
|
|
36228
37034
|
className: "rb-label",
|
|
36229
|
-
|
|
37035
|
+
"data-slot": { $bind: { from: "module.slots.group-label" } },
|
|
37036
|
+
style: { $bind: {
|
|
37037
|
+
from: "content.footerRuntime.arrangement",
|
|
37038
|
+
transforms: [{
|
|
37039
|
+
id: "layout.footerModuleInkStyle",
|
|
37040
|
+
options: { opacity: 70 }
|
|
37041
|
+
}]
|
|
37042
|
+
} }
|
|
36230
37043
|
}, bind("module.heading"), when("module.heading")),
|
|
36231
37044
|
brandLogo,
|
|
37045
|
+
centredBrand,
|
|
36232
37046
|
navigation,
|
|
36233
37047
|
stack({
|
|
36234
37048
|
gap: "sm",
|
|
36235
|
-
className: "rb-w-full"
|
|
37049
|
+
className: "rb-w-full",
|
|
37050
|
+
"data-slot": { $bind: { from: "module.slots.navigation" } }
|
|
36236
37051
|
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
36237
37052
|
address,
|
|
36238
37053
|
contact,
|
|
@@ -36245,10 +37060,12 @@ const footerGroup = stack({
|
|
|
36245
37060
|
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
36246
37061
|
const footerMainRegion = stack({
|
|
36247
37062
|
className: { $bind: { from: "region.className" } },
|
|
37063
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
36248
37064
|
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
36249
37065
|
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
36250
37066
|
const footerEngagementRegion = stack({
|
|
36251
37067
|
className: { $bind: { from: "region.className" } },
|
|
37068
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
36252
37069
|
"data-footer-region": "engagement-row"
|
|
36253
37070
|
}, [footerGroup], when("region.kind", { equals: "engagement-row" }), repeat("content.footerRuntime.regions", "region"));
|
|
36254
37071
|
const footerBottomRegion = stack({ className: { $bind: {
|
|
@@ -36265,6 +37082,7 @@ const footerBottomRegion = stack({ className: { $bind: {
|
|
|
36265
37082
|
from: "$root.theme.footer",
|
|
36266
37083
|
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
36267
37084
|
} },
|
|
37085
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
36268
37086
|
"data-footer-region": "bottom"
|
|
36269
37087
|
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
36270
37088
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
@@ -36286,6 +37104,7 @@ const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
|
36286
37104
|
transforms: [{ id: "layout.footerRootStyle" }],
|
|
36287
37105
|
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
36288
37106
|
} },
|
|
37107
|
+
"data-arrangement": { $bind: { from: "content.footerRuntime.arrangementHook" } },
|
|
36289
37108
|
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
36290
37109
|
}, [
|
|
36291
37110
|
footerEngagementRegion,
|
|
@@ -37887,17 +38706,30 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
37887
38706
|
}],
|
|
37888
38707
|
fallback: ""
|
|
37889
38708
|
} };
|
|
37890
|
-
const copyHeading = el("div", {
|
|
38709
|
+
const copyHeading = el("div", {
|
|
38710
|
+
className: titleClassNameFromAlignment,
|
|
38711
|
+
...lookSlot("head")
|
|
38712
|
+
}, [text({
|
|
37891
38713
|
as: "p",
|
|
37892
|
-
className: eyebrowClassName("rb-eyebrow heading-eyebrow")
|
|
37893
|
-
|
|
37894
|
-
|
|
37895
|
-
|
|
37896
|
-
|
|
37897
|
-
|
|
37898
|
-
|
|
37899
|
-
|
|
38714
|
+
className: eyebrowClassName("rb-eyebrow heading-eyebrow"),
|
|
38715
|
+
...lookSlot("eyebrow")
|
|
38716
|
+
}, when("content.eyebrow"), bind("content.eyebrow")), text({
|
|
38717
|
+
as: "h2",
|
|
38718
|
+
...lookSlot("heading")
|
|
38719
|
+
}, bind("content.title"))], when("content.title"));
|
|
38720
|
+
const textContentNodes = (className) => {
|
|
38721
|
+
const props = {
|
|
38722
|
+
className,
|
|
38723
|
+
...lookSlot("intro"),
|
|
38724
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } },
|
|
38725
|
+
lookSlots: { $bind: { from: "content._lookSlots" } }
|
|
38726
|
+
};
|
|
38727
|
+
return [styledCard([richText(props, bind("content.text"))], mediaTextCardOptions, when("content.wrapTextInCard")), richText(props, when("content.wrapTextInCard", { not: true }), bind("content.text"))];
|
|
38728
|
+
};
|
|
38729
|
+
const defaultTextColumn = el("div", {}, textContentNodes("rb-prose rb-max-w-none"));
|
|
38730
|
+
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)]);
|
|
37900
38731
|
const defaultImageCommonProps = {
|
|
38732
|
+
...lookSlot("photo"),
|
|
37901
38733
|
className: { $bind: {
|
|
37902
38734
|
from: "content.imageShape",
|
|
37903
38735
|
transforms: [{
|
|
@@ -37937,6 +38769,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
37937
38769
|
slidesToShow: 1
|
|
37938
38770
|
}, [media(defaultImageCommonProps, bind("item.image"), repeat("content.images", "item"))]);
|
|
37939
38771
|
const defaultImagesLayout = el("div", {}, [responsiveTwoColumn({
|
|
38772
|
+
lookSlots: true,
|
|
37940
38773
|
image: el("div", {}, [el("div", {}, [defaultSingleImage], whenImagesLength(1)), el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
|
|
37941
38774
|
text: defaultTextColumn,
|
|
37942
38775
|
ratioFrom: "content.ratio",
|
|
@@ -37948,6 +38781,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
37948
38781
|
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1"
|
|
37949
38782
|
})], whenImagesLength(0, { not: true }));
|
|
37950
38783
|
const bioImagesLayout = el("div", {}, [responsiveTwoColumn({
|
|
38784
|
+
lookSlots: true,
|
|
37951
38785
|
image: el("div", {}, [el("div", {}, [defaultSingleImage], whenImagesLength(1)), el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
|
|
37952
38786
|
text: bioTextColumn,
|
|
37953
38787
|
ratioFrom: "content.ratio",
|
|
@@ -37958,15 +38792,15 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
37958
38792
|
imageWrapperClassName: "rb-w-full rb-shrink-0",
|
|
37959
38793
|
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1 rb-self-stretch"
|
|
37960
38794
|
})], whenImagesLength(0, { not: true }));
|
|
37961
|
-
const defaultTextOnlyLayout = el("div",
|
|
37962
|
-
const bioTextOnlyLayout = el("div", {
|
|
37963
|
-
|
|
37964
|
-
|
|
37965
|
-
|
|
37966
|
-
|
|
37967
|
-
|
|
37968
|
-
|
|
37969
|
-
], whenImagesLength(0));
|
|
38795
|
+
const defaultTextOnlyLayout = el("div", lookSlot("copy"), textContentNodes("rb-prose rb-max-w-none"), whenImagesLength(0));
|
|
38796
|
+
const bioTextOnlyLayout = el("div", {
|
|
38797
|
+
className: "rb-flex rb-w-full rb-max-w-prose rb-flex-col rb-gap-5",
|
|
38798
|
+
...lookSlot("copy")
|
|
38799
|
+
}, [text({
|
|
38800
|
+
as: "h2",
|
|
38801
|
+
className: titleClassNameFromAlignment,
|
|
38802
|
+
...lookSlot("heading")
|
|
38803
|
+
}, when("content.title"), bind("content.title")), ...textContentNodes(bodyClassNameFromAlignment)], whenImagesLength(0));
|
|
37970
38804
|
const defaultInner = el("div", {}, [defaultImagesLayout, defaultTextOnlyLayout]);
|
|
37971
38805
|
const bioInner = el("div", {}, [bioImagesLayout, bioTextOnlyLayout]);
|
|
37972
38806
|
const defaultLayout = styledSection({
|
|
@@ -37990,9 +38824,31 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
37990
38824
|
}),
|
|
37991
38825
|
baseClass: "",
|
|
37992
38826
|
spacing: "medium"
|
|
38827
|
+
}),
|
|
38828
|
+
"circle-beside": styledSection({
|
|
38829
|
+
baseClass: "",
|
|
38830
|
+
spacing: "medium",
|
|
38831
|
+
children: styledContainer({ children: el("div", lookSlot("frame"), [el("div", lookSlot("media"), [
|
|
38832
|
+
el("div", {}, [when("content.images[0].image")(defaultSingleImage)], whenImagesLength(1)),
|
|
38833
|
+
el("div", {}, [el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))], whenImagesLength(0, { not: true })),
|
|
38834
|
+
el("div", {}, [when("content.images[0].image")(defaultSingleImage)], whenImagesLength(0))
|
|
38835
|
+
]), el("div", lookSlot("copy"), [el("div", lookSlot("head"), [text({
|
|
38836
|
+
as: "p",
|
|
38837
|
+
className: eyebrowClassName("rb-eyebrow heading-eyebrow"),
|
|
38838
|
+
...lookSlot("eyebrow")
|
|
38839
|
+
}, when("content.eyebrow"), bind("content.eyebrow")), text({
|
|
38840
|
+
as: "h2",
|
|
38841
|
+
...lookSlot("heading")
|
|
38842
|
+
}, bind("content.title"), when("content.title", { authoringPresence: {
|
|
38843
|
+
kind: "recover-empty-when-active",
|
|
38844
|
+
placeholder: "Add heading"
|
|
38845
|
+
} }))]), defaultTextColumn])]) })
|
|
37993
38846
|
})
|
|
37994
38847
|
},
|
|
37995
|
-
variantMeaning: {
|
|
38848
|
+
variantMeaning: {
|
|
38849
|
+
kind: "arrangement",
|
|
38850
|
+
lookOnlyKeys: ["circle-beside"]
|
|
38851
|
+
},
|
|
37996
38852
|
defaultVariant: "default",
|
|
37997
38853
|
variantOptions: {
|
|
37998
38854
|
default: { label: "Default" },
|
|
@@ -38585,24 +39441,6 @@ const emptyStateField = {
|
|
|
38585
39441
|
ui: { intent: "display" }
|
|
38586
39442
|
};
|
|
38587
39443
|
/**
|
|
38588
|
-
* Section heading and description fields
|
|
38589
|
-
*/
|
|
38590
|
-
const sectionHeaderFields = (defaultHeading) => [{
|
|
38591
|
-
id: "heading",
|
|
38592
|
-
type: "text",
|
|
38593
|
-
label: "Heading",
|
|
38594
|
-
description: "Main heading for the events section",
|
|
38595
|
-
required: false,
|
|
38596
|
-
multiline: false,
|
|
38597
|
-
defaultValue: defaultHeading
|
|
38598
|
-
}, {
|
|
38599
|
-
id: "description",
|
|
38600
|
-
type: "richText",
|
|
38601
|
-
label: "Description",
|
|
38602
|
-
description: "Optional introductory text",
|
|
38603
|
-
required: false
|
|
38604
|
-
}];
|
|
38605
|
-
/**
|
|
38606
39444
|
* Layout selection field with grid/stack options
|
|
38607
39445
|
*/
|
|
38608
39446
|
const layoutField = {
|
|
@@ -38650,31 +39488,6 @@ const columnsField = (options = [
|
|
|
38650
39488
|
}))
|
|
38651
39489
|
});
|
|
38652
39490
|
//#endregion
|
|
38653
|
-
//#region ../blocks/src/system/blocks/events/shared/layout.ts
|
|
38654
|
-
const recoverEmptyHeadingWhenActive = {
|
|
38655
|
-
kind: "recover-empty-when-active",
|
|
38656
|
-
placeholder: "Add heading"
|
|
38657
|
-
};
|
|
38658
|
-
const recoverEmptyDescriptionWhenActive = {
|
|
38659
|
-
kind: "recover-empty-when-active",
|
|
38660
|
-
placeholder: "Add description"
|
|
38661
|
-
};
|
|
38662
|
-
function eventSectionHeaderLayoutNodes(options = {}) {
|
|
38663
|
-
const headingNode = text({
|
|
38664
|
-
as: "h2",
|
|
38665
|
-
...lookSlot("heading")
|
|
38666
|
-
}, bind("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
|
|
38667
|
-
const descriptionNode = richText({
|
|
38668
|
-
className: "rb-prose rb-max-w-none",
|
|
38669
|
-
...lookSlot("intro")
|
|
38670
|
-
}, bind("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
|
|
38671
|
-
if (options.splitClassName) return [el("div", {
|
|
38672
|
-
className: options.splitClassName,
|
|
38673
|
-
...lookSlot("head")
|
|
38674
|
-
}, [headingNode, descriptionNode])];
|
|
38675
|
-
return [headingNode, descriptionNode];
|
|
38676
|
-
}
|
|
38677
|
-
//#endregion
|
|
38678
39491
|
//#region ../blocks/src/system/blocks/shop.shared.ts
|
|
38679
39492
|
/**
|
|
38680
39493
|
* Public pass product for shop display
|
|
@@ -39015,19 +39828,14 @@ const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind
|
|
|
39015
39828
|
*
|
|
39016
39829
|
* Sites don't store a locale, and every public word around a date is English,
|
|
39017
39830
|
* so the only open question is which English conventions to follow: day or
|
|
39018
|
-
* month first
|
|
39831
|
+
* month first. The site's time zone is the one
|
|
39019
39832
|
* fact every site carries about where it is. It is the site's, never an
|
|
39020
39833
|
* event's: a venue left at UTC must not turn a UK site's dates American.
|
|
39021
39834
|
* Anywhere this can't place (UTC, the Americas, Asia) keeps US English, which
|
|
39022
39835
|
* is what these helpers wrote before sites were placed at all.
|
|
39023
39836
|
*/
|
|
39024
39837
|
function eventDateLocale(siteTimeZone) {
|
|
39025
|
-
|
|
39026
|
-
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
39027
|
-
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
39028
|
-
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
39029
|
-
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
39030
|
-
return "en-US";
|
|
39838
|
+
return inferSiteDateLocale(siteTimeZone);
|
|
39031
39839
|
}
|
|
39032
39840
|
function formatEventCompactDateRail(isoTimestamp, options, letterCase = "capitals") {
|
|
39033
39841
|
const locale = options?.locale ?? "en-US";
|
|
@@ -40637,7 +41445,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
40637
41445
|
],
|
|
40638
41446
|
icon: "Star",
|
|
40639
41447
|
layout: [styledSection({
|
|
40640
|
-
children: sectionContainer([...
|
|
41448
|
+
children: sectionContainer([...sectionHeaderLayoutNodes(), el("event-spotlight", {
|
|
40641
41449
|
events: { $bind: { from: "data.events" } },
|
|
40642
41450
|
layout: { $bind: {
|
|
40643
41451
|
from: "content.layout",
|
|
@@ -40693,52 +41501,6 @@ const eventSpotlightBlockDefinition = {
|
|
|
40693
41501
|
} }
|
|
40694
41502
|
};
|
|
40695
41503
|
//#endregion
|
|
40696
|
-
//#region ../blocks/src/system/runtime/lookSurfaces.ts
|
|
40697
|
-
const isPlainObject$1 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
40698
|
-
const lookListPresentationSchemaShape = {
|
|
40699
|
-
sectionAction: z.object({
|
|
40700
|
-
label: z.string(),
|
|
40701
|
-
href: z.string()
|
|
40702
|
-
}).optional(),
|
|
40703
|
-
actionSize: z.enum([
|
|
40704
|
-
"sm",
|
|
40705
|
-
"md",
|
|
40706
|
-
"lg"
|
|
40707
|
-
]).optional(),
|
|
40708
|
-
itemActionStyle: z.enum(["button", "link"]).optional(),
|
|
40709
|
-
itemRoles: z.object({
|
|
40710
|
-
container: z.enum([
|
|
40711
|
-
"card",
|
|
40712
|
-
"statement",
|
|
40713
|
-
"highlight"
|
|
40714
|
-
]).optional(),
|
|
40715
|
-
items: z.enum([
|
|
40716
|
-
"card",
|
|
40717
|
-
"statement",
|
|
40718
|
-
"highlight"
|
|
40719
|
-
]).optional(),
|
|
40720
|
-
at: z.partialRecord(z.enum([
|
|
40721
|
-
"first",
|
|
40722
|
-
"last",
|
|
40723
|
-
"middle",
|
|
40724
|
-
"odd",
|
|
40725
|
-
"even"
|
|
40726
|
-
]), z.enum([
|
|
40727
|
-
"card",
|
|
40728
|
-
"statement",
|
|
40729
|
-
"highlight"
|
|
40730
|
-
])).optional()
|
|
40731
|
-
}).optional(),
|
|
40732
|
-
roleSurfaces: z.record(z.enum([
|
|
40733
|
-
"card",
|
|
40734
|
-
"statement",
|
|
40735
|
-
"highlight"
|
|
40736
|
-
]), z.custom((value) => isPlainObject$1(value) && (value.kind === "inherit" || value.kind === "owned"))).optional(),
|
|
40737
|
-
panelHeading: z.string().optional(),
|
|
40738
|
-
lookSlots: z.partialRecord(z.enum(arrangementSlotNames), z.enum(arrangementSlotNames)).optional(),
|
|
40739
|
-
itemSurfaces: z.record(z.string(), z.custom((value) => isPlainObject$1(value) && (value.kind === "inherit" || value.kind === "owned"))).optional()
|
|
40740
|
-
};
|
|
40741
|
-
//#endregion
|
|
40742
41504
|
//#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
|
|
40743
41505
|
/** Invalid saved selections fail closed rather than widening discovery. */
|
|
40744
41506
|
function resolveEventSelection(mode, value) {
|
|
@@ -41422,7 +42184,7 @@ const eventListingBlockDefinition = {
|
|
|
41422
42184
|
children: styledContainer({
|
|
41423
42185
|
rootType: "stack",
|
|
41424
42186
|
rootProps: { gap: "lg" },
|
|
41425
|
-
children: [...
|
|
42187
|
+
children: [...sectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
|
|
41426
42188
|
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
41427
42189
|
events: { $bind: { from: "data.events" } },
|
|
41428
42190
|
stage: { $bind: {
|
|
@@ -41862,7 +42624,7 @@ const eventCalendarLayout = [styledSection({
|
|
|
41862
42624
|
gap: "lg",
|
|
41863
42625
|
...lookSlot("layout")
|
|
41864
42626
|
},
|
|
41865
|
-
children: [...
|
|
42627
|
+
children: [...sectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
|
|
41866
42628
|
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
41867
42629
|
events: { $bind: { from: "data.events" } },
|
|
41868
42630
|
effectiveListArrangementKey: { $bind: { from: "$root.effectiveListArrangementKey" } },
|
|
@@ -44042,6 +44804,511 @@ const embedBlockDefinition = {
|
|
|
44042
44804
|
} }
|
|
44043
44805
|
};
|
|
44044
44806
|
//#endregion
|
|
44807
|
+
//#region ../blocks/src/system/blocks/image-gallery/fields.ts
|
|
44808
|
+
const imageGalleryFields = parseFieldDefinitions([
|
|
44809
|
+
...sectionHeaderFields(void 0, "Intro"),
|
|
44810
|
+
{
|
|
44811
|
+
id: "images",
|
|
44812
|
+
type: "repeater",
|
|
44813
|
+
label: "Images",
|
|
44814
|
+
itemLabel: "Image",
|
|
44815
|
+
minItems: 0,
|
|
44816
|
+
maxItems: 24,
|
|
44817
|
+
ui: {
|
|
44818
|
+
repeaterPreset: "thumbnailGrid",
|
|
44819
|
+
thumbnailField: "image",
|
|
44820
|
+
thumbnailAltField: "caption",
|
|
44821
|
+
thumbnailLabelField: "caption",
|
|
44822
|
+
thumbnailCardDensity: "compact"
|
|
44823
|
+
},
|
|
44824
|
+
schema: { fields: [{
|
|
44825
|
+
id: "image",
|
|
44826
|
+
type: "media",
|
|
44827
|
+
label: "Image",
|
|
44828
|
+
required: true,
|
|
44829
|
+
mediaKinds: ["image"]
|
|
44830
|
+
}, {
|
|
44831
|
+
id: "caption",
|
|
44832
|
+
type: "text",
|
|
44833
|
+
label: "Caption",
|
|
44834
|
+
description: "Optional caption displayed below the image and used as the editor card label",
|
|
44835
|
+
maxLength: 200
|
|
44836
|
+
}] }
|
|
44837
|
+
},
|
|
44838
|
+
{
|
|
44839
|
+
id: "fullBleed",
|
|
44840
|
+
type: "boolean",
|
|
44841
|
+
label: "Full bleed",
|
|
44842
|
+
description: "Extend the gallery edge-to-edge by removing section side padding and container max-width.",
|
|
44843
|
+
defaultValue: false,
|
|
44844
|
+
ui: {
|
|
44845
|
+
intent: "display",
|
|
44846
|
+
visibleWhen: {
|
|
44847
|
+
field: "variant",
|
|
44848
|
+
notIn: ["marquee"]
|
|
44849
|
+
}
|
|
44850
|
+
}
|
|
44851
|
+
},
|
|
44852
|
+
{
|
|
44853
|
+
id: "aspectRatio",
|
|
44854
|
+
type: "select",
|
|
44855
|
+
label: "Aspect ratio",
|
|
44856
|
+
description: "Crop images to a consistent aspect ratio.",
|
|
44857
|
+
defaultValue: "1/1",
|
|
44858
|
+
options: [
|
|
44859
|
+
{
|
|
44860
|
+
value: "auto",
|
|
44861
|
+
label: "Original"
|
|
44862
|
+
},
|
|
44863
|
+
{
|
|
44864
|
+
value: "1/1",
|
|
44865
|
+
label: "1:1 (Square)"
|
|
44866
|
+
},
|
|
44867
|
+
{
|
|
44868
|
+
value: "4/3",
|
|
44869
|
+
label: "4:3 (Standard)"
|
|
44870
|
+
},
|
|
44871
|
+
{
|
|
44872
|
+
value: "16/9",
|
|
44873
|
+
label: "16:9 (Widescreen)"
|
|
44874
|
+
},
|
|
44875
|
+
{
|
|
44876
|
+
value: "3/2",
|
|
44877
|
+
label: "3:2 (Classic)"
|
|
44878
|
+
},
|
|
44879
|
+
{
|
|
44880
|
+
value: "3/4",
|
|
44881
|
+
label: "3:4 (Portrait)"
|
|
44882
|
+
}
|
|
44883
|
+
],
|
|
44884
|
+
ui: {
|
|
44885
|
+
intent: "display",
|
|
44886
|
+
visibleWhen: {
|
|
44887
|
+
field: "variant",
|
|
44888
|
+
notIn: ["masonry", "marquee"]
|
|
44889
|
+
}
|
|
44890
|
+
}
|
|
44891
|
+
},
|
|
44892
|
+
{
|
|
44893
|
+
id: "slidesToShow",
|
|
44894
|
+
type: "select",
|
|
44895
|
+
label: "Images per view (mobile)",
|
|
44896
|
+
description: "Number of images visible at once on small screens.",
|
|
44897
|
+
defaultValue: "1",
|
|
44898
|
+
options: [
|
|
44899
|
+
{
|
|
44900
|
+
value: "1",
|
|
44901
|
+
label: "One at a time"
|
|
44902
|
+
},
|
|
44903
|
+
{
|
|
44904
|
+
value: "2",
|
|
44905
|
+
label: "Two at a time"
|
|
44906
|
+
},
|
|
44907
|
+
{
|
|
44908
|
+
value: "3",
|
|
44909
|
+
label: "Three at a time"
|
|
44910
|
+
}
|
|
44911
|
+
],
|
|
44912
|
+
ui: {
|
|
44913
|
+
intent: "display",
|
|
44914
|
+
visibleWhen: {
|
|
44915
|
+
field: "variant",
|
|
44916
|
+
equals: "carousel"
|
|
44917
|
+
}
|
|
44918
|
+
}
|
|
44919
|
+
},
|
|
44920
|
+
{
|
|
44921
|
+
id: "slidesToShowTablet",
|
|
44922
|
+
type: "select",
|
|
44923
|
+
label: "Images per view (tablet)",
|
|
44924
|
+
description: "Number of images visible on medium screens.",
|
|
44925
|
+
options: [
|
|
44926
|
+
{
|
|
44927
|
+
value: "",
|
|
44928
|
+
label: "Same as mobile"
|
|
44929
|
+
},
|
|
44930
|
+
{
|
|
44931
|
+
value: "1",
|
|
44932
|
+
label: "One at a time"
|
|
44933
|
+
},
|
|
44934
|
+
{
|
|
44935
|
+
value: "2",
|
|
44936
|
+
label: "Two at a time"
|
|
44937
|
+
},
|
|
44938
|
+
{
|
|
44939
|
+
value: "3",
|
|
44940
|
+
label: "Three at a time"
|
|
44941
|
+
}
|
|
44942
|
+
],
|
|
44943
|
+
ui: {
|
|
44944
|
+
intent: "display",
|
|
44945
|
+
visibleWhen: {
|
|
44946
|
+
field: "variant",
|
|
44947
|
+
equals: "carousel"
|
|
44948
|
+
}
|
|
44949
|
+
}
|
|
44950
|
+
},
|
|
44951
|
+
{
|
|
44952
|
+
id: "slidesToShowDesktop",
|
|
44953
|
+
type: "select",
|
|
44954
|
+
label: "Images per view (desktop)",
|
|
44955
|
+
description: "Number of images visible on large screens.",
|
|
44956
|
+
options: [
|
|
44957
|
+
{
|
|
44958
|
+
value: "",
|
|
44959
|
+
label: "Same as tablet"
|
|
44960
|
+
},
|
|
44961
|
+
{
|
|
44962
|
+
value: "1",
|
|
44963
|
+
label: "One at a time"
|
|
44964
|
+
},
|
|
44965
|
+
{
|
|
44966
|
+
value: "2",
|
|
44967
|
+
label: "Two at a time"
|
|
44968
|
+
},
|
|
44969
|
+
{
|
|
44970
|
+
value: "3",
|
|
44971
|
+
label: "Three at a time"
|
|
44972
|
+
}
|
|
44973
|
+
],
|
|
44974
|
+
ui: {
|
|
44975
|
+
intent: "display",
|
|
44976
|
+
visibleWhen: {
|
|
44977
|
+
field: "variant",
|
|
44978
|
+
equals: "carousel"
|
|
44979
|
+
}
|
|
44980
|
+
}
|
|
44981
|
+
},
|
|
44982
|
+
{
|
|
44983
|
+
id: "transition",
|
|
44984
|
+
type: "select",
|
|
44985
|
+
label: "Transition",
|
|
44986
|
+
description: "Animation style between slides.",
|
|
44987
|
+
defaultValue: "slide",
|
|
44988
|
+
options: [{
|
|
44989
|
+
value: "slide",
|
|
44990
|
+
label: "Slide"
|
|
44991
|
+
}, {
|
|
44992
|
+
value: "fade",
|
|
44993
|
+
label: "Fade"
|
|
44994
|
+
}],
|
|
44995
|
+
ui: {
|
|
44996
|
+
intent: "display",
|
|
44997
|
+
visibleWhen: {
|
|
44998
|
+
field: "variant",
|
|
44999
|
+
equals: "carousel"
|
|
45000
|
+
}
|
|
45001
|
+
}
|
|
45002
|
+
},
|
|
45003
|
+
{
|
|
45004
|
+
id: "showControls",
|
|
45005
|
+
type: "boolean",
|
|
45006
|
+
label: "Show arrows",
|
|
45007
|
+
defaultValue: true,
|
|
45008
|
+
ui: {
|
|
45009
|
+
intent: "behavior",
|
|
45010
|
+
visibleWhen: {
|
|
45011
|
+
field: "variant",
|
|
45012
|
+
equals: "carousel"
|
|
45013
|
+
}
|
|
45014
|
+
}
|
|
45015
|
+
},
|
|
45016
|
+
{
|
|
45017
|
+
id: "showDots",
|
|
45018
|
+
type: "boolean",
|
|
45019
|
+
label: "Show dots",
|
|
45020
|
+
defaultValue: false,
|
|
45021
|
+
ui: {
|
|
45022
|
+
intent: "behavior",
|
|
45023
|
+
visibleWhen: {
|
|
45024
|
+
field: "variant",
|
|
45025
|
+
equals: "carousel"
|
|
45026
|
+
}
|
|
45027
|
+
}
|
|
45028
|
+
},
|
|
45029
|
+
{
|
|
45030
|
+
id: "autoplay",
|
|
45031
|
+
type: "boolean",
|
|
45032
|
+
label: "Autoplay",
|
|
45033
|
+
defaultValue: false,
|
|
45034
|
+
ui: {
|
|
45035
|
+
intent: "behavior",
|
|
45036
|
+
visibleWhen: {
|
|
45037
|
+
field: "variant",
|
|
45038
|
+
equals: "carousel"
|
|
45039
|
+
}
|
|
45040
|
+
}
|
|
45041
|
+
},
|
|
45042
|
+
{
|
|
45043
|
+
id: "autoplayDelay",
|
|
45044
|
+
type: "select",
|
|
45045
|
+
label: "Autoplay delay",
|
|
45046
|
+
defaultValue: "5000",
|
|
45047
|
+
options: [
|
|
45048
|
+
{
|
|
45049
|
+
value: "3000",
|
|
45050
|
+
label: "3 seconds"
|
|
45051
|
+
},
|
|
45052
|
+
{
|
|
45053
|
+
value: "5000",
|
|
45054
|
+
label: "5 seconds"
|
|
45055
|
+
},
|
|
45056
|
+
{
|
|
45057
|
+
value: "7000",
|
|
45058
|
+
label: "7 seconds"
|
|
45059
|
+
},
|
|
45060
|
+
{
|
|
45061
|
+
value: "10000",
|
|
45062
|
+
label: "10 seconds"
|
|
45063
|
+
}
|
|
45064
|
+
],
|
|
45065
|
+
ui: {
|
|
45066
|
+
intent: "behavior",
|
|
45067
|
+
visibleWhen: {
|
|
45068
|
+
field: "variant",
|
|
45069
|
+
equals: "carousel"
|
|
45070
|
+
}
|
|
45071
|
+
}
|
|
45072
|
+
},
|
|
45073
|
+
{
|
|
45074
|
+
id: "arrowVisibility",
|
|
45075
|
+
type: "select",
|
|
45076
|
+
label: "Arrow visibility",
|
|
45077
|
+
defaultValue: "always",
|
|
45078
|
+
options: [{
|
|
45079
|
+
value: "always",
|
|
45080
|
+
label: "Always visible"
|
|
45081
|
+
}, {
|
|
45082
|
+
value: "hover",
|
|
45083
|
+
label: "Show on hover"
|
|
45084
|
+
}],
|
|
45085
|
+
ui: {
|
|
45086
|
+
intent: "behavior",
|
|
45087
|
+
visibleWhen: {
|
|
45088
|
+
field: "variant",
|
|
45089
|
+
equals: "carousel"
|
|
45090
|
+
}
|
|
45091
|
+
}
|
|
45092
|
+
},
|
|
45093
|
+
{
|
|
45094
|
+
id: "loop",
|
|
45095
|
+
type: "boolean",
|
|
45096
|
+
label: "Loop slides",
|
|
45097
|
+
defaultValue: true,
|
|
45098
|
+
ui: {
|
|
45099
|
+
intent: "behavior",
|
|
45100
|
+
visibleWhen: {
|
|
45101
|
+
field: "variant",
|
|
45102
|
+
equals: "carousel"
|
|
45103
|
+
}
|
|
45104
|
+
}
|
|
45105
|
+
},
|
|
45106
|
+
{
|
|
45107
|
+
id: "marqueeDirection",
|
|
45108
|
+
type: "select",
|
|
45109
|
+
label: "Scroll direction",
|
|
45110
|
+
options: [{
|
|
45111
|
+
value: "left",
|
|
45112
|
+
label: "Left"
|
|
45113
|
+
}, {
|
|
45114
|
+
value: "right",
|
|
45115
|
+
label: "Right"
|
|
45116
|
+
}],
|
|
45117
|
+
defaultValue: "left",
|
|
45118
|
+
ui: {
|
|
45119
|
+
intent: "display",
|
|
45120
|
+
visibleWhen: {
|
|
45121
|
+
field: "variant",
|
|
45122
|
+
equals: "marquee"
|
|
45123
|
+
}
|
|
45124
|
+
}
|
|
45125
|
+
},
|
|
45126
|
+
{
|
|
45127
|
+
id: "marqueeSpeed",
|
|
45128
|
+
type: "select",
|
|
45129
|
+
label: "Scroll speed",
|
|
45130
|
+
options: [
|
|
45131
|
+
{
|
|
45132
|
+
value: "slow",
|
|
45133
|
+
label: "Slow (60s)"
|
|
45134
|
+
},
|
|
45135
|
+
{
|
|
45136
|
+
value: "medium",
|
|
45137
|
+
label: "Medium (40s)"
|
|
45138
|
+
},
|
|
45139
|
+
{
|
|
45140
|
+
value: "fast",
|
|
45141
|
+
label: "Fast (20s)"
|
|
45142
|
+
}
|
|
45143
|
+
],
|
|
45144
|
+
defaultValue: "medium",
|
|
45145
|
+
ui: {
|
|
45146
|
+
intent: "display",
|
|
45147
|
+
visibleWhen: {
|
|
45148
|
+
field: "variant",
|
|
45149
|
+
equals: "marquee"
|
|
45150
|
+
}
|
|
45151
|
+
}
|
|
45152
|
+
},
|
|
45153
|
+
{
|
|
45154
|
+
id: "marqueePauseOnHover",
|
|
45155
|
+
type: "boolean",
|
|
45156
|
+
label: "Pause on hover",
|
|
45157
|
+
defaultValue: true,
|
|
45158
|
+
ui: {
|
|
45159
|
+
intent: "behavior",
|
|
45160
|
+
visibleWhen: {
|
|
45161
|
+
field: "variant",
|
|
45162
|
+
equals: "marquee"
|
|
45163
|
+
}
|
|
45164
|
+
}
|
|
45165
|
+
},
|
|
45166
|
+
{
|
|
45167
|
+
id: "marqueeImageSize",
|
|
45168
|
+
type: "select",
|
|
45169
|
+
label: "Image size",
|
|
45170
|
+
options: [
|
|
45171
|
+
{
|
|
45172
|
+
value: "sm",
|
|
45173
|
+
label: "Small (200px)"
|
|
45174
|
+
},
|
|
45175
|
+
{
|
|
45176
|
+
value: "md",
|
|
45177
|
+
label: "Medium (256px)"
|
|
45178
|
+
},
|
|
45179
|
+
{
|
|
45180
|
+
value: "lg",
|
|
45181
|
+
label: "Large (320px)"
|
|
45182
|
+
},
|
|
45183
|
+
{
|
|
45184
|
+
value: "xl",
|
|
45185
|
+
label: "Extra large (400px)"
|
|
45186
|
+
}
|
|
45187
|
+
],
|
|
45188
|
+
defaultValue: "md",
|
|
45189
|
+
ui: {
|
|
45190
|
+
intent: "display",
|
|
45191
|
+
visibleWhen: {
|
|
45192
|
+
field: "variant",
|
|
45193
|
+
equals: "marquee"
|
|
45194
|
+
}
|
|
45195
|
+
}
|
|
45196
|
+
},
|
|
45197
|
+
{
|
|
45198
|
+
id: "imageFilter",
|
|
45199
|
+
type: "select",
|
|
45200
|
+
label: "Image filter",
|
|
45201
|
+
options: [
|
|
45202
|
+
{
|
|
45203
|
+
value: "none",
|
|
45204
|
+
label: "None"
|
|
45205
|
+
},
|
|
45206
|
+
{
|
|
45207
|
+
value: "grayscale",
|
|
45208
|
+
label: "Grayscale"
|
|
45209
|
+
},
|
|
45210
|
+
{
|
|
45211
|
+
value: "grayscale-hover-reveal",
|
|
45212
|
+
label: "Grayscale (color on hover)"
|
|
45213
|
+
},
|
|
45214
|
+
{
|
|
45215
|
+
value: "sepia",
|
|
45216
|
+
label: "Sepia"
|
|
45217
|
+
}
|
|
45218
|
+
],
|
|
45219
|
+
defaultValue: "grayscale-hover-reveal",
|
|
45220
|
+
ui: { intent: "style" }
|
|
45221
|
+
},
|
|
45222
|
+
{
|
|
45223
|
+
id: "imageBorder",
|
|
45224
|
+
type: "group",
|
|
45225
|
+
label: "Image border",
|
|
45226
|
+
schema: { fields: [
|
|
45227
|
+
{
|
|
45228
|
+
id: "enabled",
|
|
45229
|
+
type: "boolean",
|
|
45230
|
+
label: "Show border",
|
|
45231
|
+
defaultValue: true
|
|
45232
|
+
},
|
|
45233
|
+
{
|
|
45234
|
+
id: "colorToken",
|
|
45235
|
+
type: "text",
|
|
45236
|
+
label: "Border color",
|
|
45237
|
+
defaultValue: "accent",
|
|
45238
|
+
ui: { widget: "backgroundColor" }
|
|
45239
|
+
},
|
|
45240
|
+
{
|
|
45241
|
+
id: "opacity",
|
|
45242
|
+
type: "number",
|
|
45243
|
+
label: "Border opacity",
|
|
45244
|
+
defaultValue: 30,
|
|
45245
|
+
ui: {
|
|
45246
|
+
min: 0,
|
|
45247
|
+
max: 100
|
|
45248
|
+
}
|
|
45249
|
+
},
|
|
45250
|
+
{
|
|
45251
|
+
id: "width",
|
|
45252
|
+
type: "select",
|
|
45253
|
+
label: "Border width",
|
|
45254
|
+
options: [
|
|
45255
|
+
{
|
|
45256
|
+
value: "1",
|
|
45257
|
+
label: "Thin (1px)"
|
|
45258
|
+
},
|
|
45259
|
+
{
|
|
45260
|
+
value: "2",
|
|
45261
|
+
label: "Medium (2px)"
|
|
45262
|
+
},
|
|
45263
|
+
{
|
|
45264
|
+
value: "3",
|
|
45265
|
+
label: "Thick (3px)"
|
|
45266
|
+
}
|
|
45267
|
+
],
|
|
45268
|
+
defaultValue: "2"
|
|
45269
|
+
}
|
|
45270
|
+
] },
|
|
45271
|
+
ui: { intent: "style" }
|
|
45272
|
+
},
|
|
45273
|
+
{
|
|
45274
|
+
id: "imageCorners",
|
|
45275
|
+
type: "select",
|
|
45276
|
+
label: "Image corners",
|
|
45277
|
+
options: [
|
|
45278
|
+
{
|
|
45279
|
+
value: "none",
|
|
45280
|
+
label: "Square"
|
|
45281
|
+
},
|
|
45282
|
+
{
|
|
45283
|
+
value: "sm",
|
|
45284
|
+
label: "Slightly rounded"
|
|
45285
|
+
},
|
|
45286
|
+
{
|
|
45287
|
+
value: "md",
|
|
45288
|
+
label: "Rounded"
|
|
45289
|
+
},
|
|
45290
|
+
{
|
|
45291
|
+
value: "lg",
|
|
45292
|
+
label: "More rounded"
|
|
45293
|
+
},
|
|
45294
|
+
{
|
|
45295
|
+
value: "xl",
|
|
45296
|
+
label: "Very rounded"
|
|
45297
|
+
},
|
|
45298
|
+
{
|
|
45299
|
+
value: "2xl",
|
|
45300
|
+
label: "Extra rounded"
|
|
45301
|
+
},
|
|
45302
|
+
{
|
|
45303
|
+
value: "3xl",
|
|
45304
|
+
label: "Maximum rounded"
|
|
45305
|
+
}
|
|
45306
|
+
],
|
|
45307
|
+
defaultValue: "3xl",
|
|
45308
|
+
ui: { intent: "style" }
|
|
45309
|
+
}
|
|
45310
|
+
]);
|
|
45311
|
+
//#endregion
|
|
44045
45312
|
//#region ../blocks/src/system/blocks/image-gallery.ts
|
|
44046
45313
|
const grid$1 = (props, children, ...mods) => el("grid", props ?? void 0, children ?? void 0, ...mods);
|
|
44047
45314
|
const galleryContainer = (children, opts) => {
|
|
@@ -44256,7 +45523,11 @@ const emptyState$1 = {
|
|
|
44256
45523
|
}
|
|
44257
45524
|
};
|
|
44258
45525
|
const wrapVariant$1 = (layout, opts) => styledSection({
|
|
44259
|
-
children: galleryContainer([
|
|
45526
|
+
children: galleryContainer([
|
|
45527
|
+
...sectionHeaderLayoutNodes(),
|
|
45528
|
+
layout,
|
|
45529
|
+
emptyState$1
|
|
45530
|
+
], {
|
|
44260
45531
|
gap: "md",
|
|
44261
45532
|
fullWidth: opts?.fullWidth,
|
|
44262
45533
|
className: opts?.className
|
|
@@ -44265,6 +45536,28 @@ const wrapVariant$1 = (layout, opts) => styledSection({
|
|
|
44265
45536
|
spacing: "medium",
|
|
44266
45537
|
background: "background"
|
|
44267
45538
|
});
|
|
45539
|
+
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({
|
|
45540
|
+
as: "figcaption",
|
|
45541
|
+
...lookSlot("caption")
|
|
45542
|
+
}, bind(captionFrom), when(captionFrom))])], ...mods);
|
|
45543
|
+
const tilesLayout = styledSection({
|
|
45544
|
+
children: el("div", {
|
|
45545
|
+
className: "rb-container",
|
|
45546
|
+
...lookSlot("layout")
|
|
45547
|
+
}, [...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) => ({
|
|
45548
|
+
...node,
|
|
45549
|
+
$when: {
|
|
45550
|
+
when: {
|
|
45551
|
+
from: "content.images",
|
|
45552
|
+
transforms: [{ id: "array.length" }]
|
|
45553
|
+
},
|
|
45554
|
+
equals: 0
|
|
45555
|
+
}
|
|
45556
|
+
}))])]),
|
|
45557
|
+
baseClass: "",
|
|
45558
|
+
spacing: "medium",
|
|
45559
|
+
background: "background"
|
|
45560
|
+
});
|
|
44268
45561
|
const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
44269
45562
|
id: "block.image-gallery",
|
|
44270
45563
|
title: "Image Gallery",
|
|
@@ -44277,510 +45570,10 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
44277
45570
|
"marqueeSpeed",
|
|
44278
45571
|
"marqueePauseOnHover"
|
|
44279
45572
|
] },
|
|
44280
|
-
additionalFields:
|
|
44281
|
-
{
|
|
44282
|
-
id: "images",
|
|
44283
|
-
type: "repeater",
|
|
44284
|
-
label: "Images",
|
|
44285
|
-
itemLabel: "Image",
|
|
44286
|
-
minItems: 0,
|
|
44287
|
-
maxItems: 24,
|
|
44288
|
-
ui: {
|
|
44289
|
-
repeaterPreset: "thumbnailGrid",
|
|
44290
|
-
thumbnailField: "image",
|
|
44291
|
-
thumbnailAltField: "caption",
|
|
44292
|
-
thumbnailLabelField: "caption",
|
|
44293
|
-
thumbnailCardDensity: "compact"
|
|
44294
|
-
},
|
|
44295
|
-
schema: { fields: [{
|
|
44296
|
-
id: "image",
|
|
44297
|
-
type: "media",
|
|
44298
|
-
label: "Image",
|
|
44299
|
-
required: true,
|
|
44300
|
-
mediaKinds: ["image"]
|
|
44301
|
-
}, {
|
|
44302
|
-
id: "caption",
|
|
44303
|
-
type: "text",
|
|
44304
|
-
label: "Caption",
|
|
44305
|
-
description: "Optional caption displayed below the image and used as the editor card label",
|
|
44306
|
-
maxLength: 200
|
|
44307
|
-
}] }
|
|
44308
|
-
},
|
|
44309
|
-
{
|
|
44310
|
-
id: "fullBleed",
|
|
44311
|
-
type: "boolean",
|
|
44312
|
-
label: "Full bleed",
|
|
44313
|
-
description: "Extend the gallery edge-to-edge by removing section side padding and container max-width.",
|
|
44314
|
-
defaultValue: false,
|
|
44315
|
-
ui: {
|
|
44316
|
-
intent: "display",
|
|
44317
|
-
visibleWhen: {
|
|
44318
|
-
field: "variant",
|
|
44319
|
-
notIn: ["marquee"]
|
|
44320
|
-
}
|
|
44321
|
-
}
|
|
44322
|
-
},
|
|
44323
|
-
{
|
|
44324
|
-
id: "aspectRatio",
|
|
44325
|
-
type: "select",
|
|
44326
|
-
label: "Aspect ratio",
|
|
44327
|
-
description: "Crop images to a consistent aspect ratio.",
|
|
44328
|
-
defaultValue: "1/1",
|
|
44329
|
-
options: [
|
|
44330
|
-
{
|
|
44331
|
-
value: "auto",
|
|
44332
|
-
label: "Original"
|
|
44333
|
-
},
|
|
44334
|
-
{
|
|
44335
|
-
value: "1/1",
|
|
44336
|
-
label: "1:1 (Square)"
|
|
44337
|
-
},
|
|
44338
|
-
{
|
|
44339
|
-
value: "4/3",
|
|
44340
|
-
label: "4:3 (Standard)"
|
|
44341
|
-
},
|
|
44342
|
-
{
|
|
44343
|
-
value: "16/9",
|
|
44344
|
-
label: "16:9 (Widescreen)"
|
|
44345
|
-
},
|
|
44346
|
-
{
|
|
44347
|
-
value: "3/2",
|
|
44348
|
-
label: "3:2 (Classic)"
|
|
44349
|
-
},
|
|
44350
|
-
{
|
|
44351
|
-
value: "3/4",
|
|
44352
|
-
label: "3:4 (Portrait)"
|
|
44353
|
-
}
|
|
44354
|
-
],
|
|
44355
|
-
ui: {
|
|
44356
|
-
intent: "display",
|
|
44357
|
-
visibleWhen: {
|
|
44358
|
-
field: "variant",
|
|
44359
|
-
notIn: ["masonry", "marquee"]
|
|
44360
|
-
}
|
|
44361
|
-
}
|
|
44362
|
-
},
|
|
44363
|
-
{
|
|
44364
|
-
id: "slidesToShow",
|
|
44365
|
-
type: "select",
|
|
44366
|
-
label: "Images per view (mobile)",
|
|
44367
|
-
description: "Number of images visible at once on small screens.",
|
|
44368
|
-
defaultValue: "1",
|
|
44369
|
-
options: [
|
|
44370
|
-
{
|
|
44371
|
-
value: "1",
|
|
44372
|
-
label: "One at a time"
|
|
44373
|
-
},
|
|
44374
|
-
{
|
|
44375
|
-
value: "2",
|
|
44376
|
-
label: "Two at a time"
|
|
44377
|
-
},
|
|
44378
|
-
{
|
|
44379
|
-
value: "3",
|
|
44380
|
-
label: "Three at a time"
|
|
44381
|
-
}
|
|
44382
|
-
],
|
|
44383
|
-
ui: {
|
|
44384
|
-
intent: "display",
|
|
44385
|
-
visibleWhen: {
|
|
44386
|
-
field: "variant",
|
|
44387
|
-
equals: "carousel"
|
|
44388
|
-
}
|
|
44389
|
-
}
|
|
44390
|
-
},
|
|
44391
|
-
{
|
|
44392
|
-
id: "slidesToShowTablet",
|
|
44393
|
-
type: "select",
|
|
44394
|
-
label: "Images per view (tablet)",
|
|
44395
|
-
description: "Number of images visible on medium screens.",
|
|
44396
|
-
options: [
|
|
44397
|
-
{
|
|
44398
|
-
value: "",
|
|
44399
|
-
label: "Same as mobile"
|
|
44400
|
-
},
|
|
44401
|
-
{
|
|
44402
|
-
value: "1",
|
|
44403
|
-
label: "One at a time"
|
|
44404
|
-
},
|
|
44405
|
-
{
|
|
44406
|
-
value: "2",
|
|
44407
|
-
label: "Two at a time"
|
|
44408
|
-
},
|
|
44409
|
-
{
|
|
44410
|
-
value: "3",
|
|
44411
|
-
label: "Three at a time"
|
|
44412
|
-
}
|
|
44413
|
-
],
|
|
44414
|
-
ui: {
|
|
44415
|
-
intent: "display",
|
|
44416
|
-
visibleWhen: {
|
|
44417
|
-
field: "variant",
|
|
44418
|
-
equals: "carousel"
|
|
44419
|
-
}
|
|
44420
|
-
}
|
|
44421
|
-
},
|
|
44422
|
-
{
|
|
44423
|
-
id: "slidesToShowDesktop",
|
|
44424
|
-
type: "select",
|
|
44425
|
-
label: "Images per view (desktop)",
|
|
44426
|
-
description: "Number of images visible on large screens.",
|
|
44427
|
-
options: [
|
|
44428
|
-
{
|
|
44429
|
-
value: "",
|
|
44430
|
-
label: "Same as tablet"
|
|
44431
|
-
},
|
|
44432
|
-
{
|
|
44433
|
-
value: "1",
|
|
44434
|
-
label: "One at a time"
|
|
44435
|
-
},
|
|
44436
|
-
{
|
|
44437
|
-
value: "2",
|
|
44438
|
-
label: "Two at a time"
|
|
44439
|
-
},
|
|
44440
|
-
{
|
|
44441
|
-
value: "3",
|
|
44442
|
-
label: "Three at a time"
|
|
44443
|
-
}
|
|
44444
|
-
],
|
|
44445
|
-
ui: {
|
|
44446
|
-
intent: "display",
|
|
44447
|
-
visibleWhen: {
|
|
44448
|
-
field: "variant",
|
|
44449
|
-
equals: "carousel"
|
|
44450
|
-
}
|
|
44451
|
-
}
|
|
44452
|
-
},
|
|
44453
|
-
{
|
|
44454
|
-
id: "transition",
|
|
44455
|
-
type: "select",
|
|
44456
|
-
label: "Transition",
|
|
44457
|
-
description: "Animation style between slides.",
|
|
44458
|
-
defaultValue: "slide",
|
|
44459
|
-
options: [{
|
|
44460
|
-
value: "slide",
|
|
44461
|
-
label: "Slide"
|
|
44462
|
-
}, {
|
|
44463
|
-
value: "fade",
|
|
44464
|
-
label: "Fade"
|
|
44465
|
-
}],
|
|
44466
|
-
ui: {
|
|
44467
|
-
intent: "display",
|
|
44468
|
-
visibleWhen: {
|
|
44469
|
-
field: "variant",
|
|
44470
|
-
equals: "carousel"
|
|
44471
|
-
}
|
|
44472
|
-
}
|
|
44473
|
-
},
|
|
44474
|
-
{
|
|
44475
|
-
id: "showControls",
|
|
44476
|
-
type: "boolean",
|
|
44477
|
-
label: "Show arrows",
|
|
44478
|
-
defaultValue: true,
|
|
44479
|
-
ui: {
|
|
44480
|
-
intent: "behavior",
|
|
44481
|
-
visibleWhen: {
|
|
44482
|
-
field: "variant",
|
|
44483
|
-
equals: "carousel"
|
|
44484
|
-
}
|
|
44485
|
-
}
|
|
44486
|
-
},
|
|
44487
|
-
{
|
|
44488
|
-
id: "showDots",
|
|
44489
|
-
type: "boolean",
|
|
44490
|
-
label: "Show dots",
|
|
44491
|
-
defaultValue: false,
|
|
44492
|
-
ui: {
|
|
44493
|
-
intent: "behavior",
|
|
44494
|
-
visibleWhen: {
|
|
44495
|
-
field: "variant",
|
|
44496
|
-
equals: "carousel"
|
|
44497
|
-
}
|
|
44498
|
-
}
|
|
44499
|
-
},
|
|
44500
|
-
{
|
|
44501
|
-
id: "autoplay",
|
|
44502
|
-
type: "boolean",
|
|
44503
|
-
label: "Autoplay",
|
|
44504
|
-
defaultValue: false,
|
|
44505
|
-
ui: {
|
|
44506
|
-
intent: "behavior",
|
|
44507
|
-
visibleWhen: {
|
|
44508
|
-
field: "variant",
|
|
44509
|
-
equals: "carousel"
|
|
44510
|
-
}
|
|
44511
|
-
}
|
|
44512
|
-
},
|
|
44513
|
-
{
|
|
44514
|
-
id: "autoplayDelay",
|
|
44515
|
-
type: "select",
|
|
44516
|
-
label: "Autoplay delay",
|
|
44517
|
-
defaultValue: "5000",
|
|
44518
|
-
options: [
|
|
44519
|
-
{
|
|
44520
|
-
value: "3000",
|
|
44521
|
-
label: "3 seconds"
|
|
44522
|
-
},
|
|
44523
|
-
{
|
|
44524
|
-
value: "5000",
|
|
44525
|
-
label: "5 seconds"
|
|
44526
|
-
},
|
|
44527
|
-
{
|
|
44528
|
-
value: "7000",
|
|
44529
|
-
label: "7 seconds"
|
|
44530
|
-
},
|
|
44531
|
-
{
|
|
44532
|
-
value: "10000",
|
|
44533
|
-
label: "10 seconds"
|
|
44534
|
-
}
|
|
44535
|
-
],
|
|
44536
|
-
ui: {
|
|
44537
|
-
intent: "behavior",
|
|
44538
|
-
visibleWhen: {
|
|
44539
|
-
field: "variant",
|
|
44540
|
-
equals: "carousel"
|
|
44541
|
-
}
|
|
44542
|
-
}
|
|
44543
|
-
},
|
|
44544
|
-
{
|
|
44545
|
-
id: "arrowVisibility",
|
|
44546
|
-
type: "select",
|
|
44547
|
-
label: "Arrow visibility",
|
|
44548
|
-
defaultValue: "always",
|
|
44549
|
-
options: [{
|
|
44550
|
-
value: "always",
|
|
44551
|
-
label: "Always visible"
|
|
44552
|
-
}, {
|
|
44553
|
-
value: "hover",
|
|
44554
|
-
label: "Show on hover"
|
|
44555
|
-
}],
|
|
44556
|
-
ui: {
|
|
44557
|
-
intent: "behavior",
|
|
44558
|
-
visibleWhen: {
|
|
44559
|
-
field: "variant",
|
|
44560
|
-
equals: "carousel"
|
|
44561
|
-
}
|
|
44562
|
-
}
|
|
44563
|
-
},
|
|
44564
|
-
{
|
|
44565
|
-
id: "loop",
|
|
44566
|
-
type: "boolean",
|
|
44567
|
-
label: "Loop slides",
|
|
44568
|
-
defaultValue: true,
|
|
44569
|
-
ui: {
|
|
44570
|
-
intent: "behavior",
|
|
44571
|
-
visibleWhen: {
|
|
44572
|
-
field: "variant",
|
|
44573
|
-
equals: "carousel"
|
|
44574
|
-
}
|
|
44575
|
-
}
|
|
44576
|
-
},
|
|
44577
|
-
{
|
|
44578
|
-
id: "marqueeDirection",
|
|
44579
|
-
type: "select",
|
|
44580
|
-
label: "Scroll direction",
|
|
44581
|
-
options: [{
|
|
44582
|
-
value: "left",
|
|
44583
|
-
label: "Left"
|
|
44584
|
-
}, {
|
|
44585
|
-
value: "right",
|
|
44586
|
-
label: "Right"
|
|
44587
|
-
}],
|
|
44588
|
-
defaultValue: "left",
|
|
44589
|
-
ui: {
|
|
44590
|
-
intent: "display",
|
|
44591
|
-
visibleWhen: {
|
|
44592
|
-
field: "variant",
|
|
44593
|
-
equals: "marquee"
|
|
44594
|
-
}
|
|
44595
|
-
}
|
|
44596
|
-
},
|
|
44597
|
-
{
|
|
44598
|
-
id: "marqueeSpeed",
|
|
44599
|
-
type: "select",
|
|
44600
|
-
label: "Scroll speed",
|
|
44601
|
-
options: [
|
|
44602
|
-
{
|
|
44603
|
-
value: "slow",
|
|
44604
|
-
label: "Slow (60s)"
|
|
44605
|
-
},
|
|
44606
|
-
{
|
|
44607
|
-
value: "medium",
|
|
44608
|
-
label: "Medium (40s)"
|
|
44609
|
-
},
|
|
44610
|
-
{
|
|
44611
|
-
value: "fast",
|
|
44612
|
-
label: "Fast (20s)"
|
|
44613
|
-
}
|
|
44614
|
-
],
|
|
44615
|
-
defaultValue: "medium",
|
|
44616
|
-
ui: {
|
|
44617
|
-
intent: "display",
|
|
44618
|
-
visibleWhen: {
|
|
44619
|
-
field: "variant",
|
|
44620
|
-
equals: "marquee"
|
|
44621
|
-
}
|
|
44622
|
-
}
|
|
44623
|
-
},
|
|
44624
|
-
{
|
|
44625
|
-
id: "marqueePauseOnHover",
|
|
44626
|
-
type: "boolean",
|
|
44627
|
-
label: "Pause on hover",
|
|
44628
|
-
defaultValue: true,
|
|
44629
|
-
ui: {
|
|
44630
|
-
intent: "behavior",
|
|
44631
|
-
visibleWhen: {
|
|
44632
|
-
field: "variant",
|
|
44633
|
-
equals: "marquee"
|
|
44634
|
-
}
|
|
44635
|
-
}
|
|
44636
|
-
},
|
|
44637
|
-
{
|
|
44638
|
-
id: "marqueeImageSize",
|
|
44639
|
-
type: "select",
|
|
44640
|
-
label: "Image size",
|
|
44641
|
-
options: [
|
|
44642
|
-
{
|
|
44643
|
-
value: "sm",
|
|
44644
|
-
label: "Small (200px)"
|
|
44645
|
-
},
|
|
44646
|
-
{
|
|
44647
|
-
value: "md",
|
|
44648
|
-
label: "Medium (256px)"
|
|
44649
|
-
},
|
|
44650
|
-
{
|
|
44651
|
-
value: "lg",
|
|
44652
|
-
label: "Large (320px)"
|
|
44653
|
-
},
|
|
44654
|
-
{
|
|
44655
|
-
value: "xl",
|
|
44656
|
-
label: "Extra large (400px)"
|
|
44657
|
-
}
|
|
44658
|
-
],
|
|
44659
|
-
defaultValue: "md",
|
|
44660
|
-
ui: {
|
|
44661
|
-
intent: "display",
|
|
44662
|
-
visibleWhen: {
|
|
44663
|
-
field: "variant",
|
|
44664
|
-
equals: "marquee"
|
|
44665
|
-
}
|
|
44666
|
-
}
|
|
44667
|
-
},
|
|
44668
|
-
{
|
|
44669
|
-
id: "imageFilter",
|
|
44670
|
-
type: "select",
|
|
44671
|
-
label: "Image filter",
|
|
44672
|
-
options: [
|
|
44673
|
-
{
|
|
44674
|
-
value: "none",
|
|
44675
|
-
label: "None"
|
|
44676
|
-
},
|
|
44677
|
-
{
|
|
44678
|
-
value: "grayscale",
|
|
44679
|
-
label: "Grayscale"
|
|
44680
|
-
},
|
|
44681
|
-
{
|
|
44682
|
-
value: "grayscale-hover-reveal",
|
|
44683
|
-
label: "Grayscale (color on hover)"
|
|
44684
|
-
},
|
|
44685
|
-
{
|
|
44686
|
-
value: "sepia",
|
|
44687
|
-
label: "Sepia"
|
|
44688
|
-
}
|
|
44689
|
-
],
|
|
44690
|
-
defaultValue: "grayscale-hover-reveal",
|
|
44691
|
-
ui: { intent: "style" }
|
|
44692
|
-
},
|
|
44693
|
-
{
|
|
44694
|
-
id: "imageBorder",
|
|
44695
|
-
type: "group",
|
|
44696
|
-
label: "Image border",
|
|
44697
|
-
schema: { fields: [
|
|
44698
|
-
{
|
|
44699
|
-
id: "enabled",
|
|
44700
|
-
type: "boolean",
|
|
44701
|
-
label: "Show border",
|
|
44702
|
-
defaultValue: true
|
|
44703
|
-
},
|
|
44704
|
-
{
|
|
44705
|
-
id: "colorToken",
|
|
44706
|
-
type: "text",
|
|
44707
|
-
label: "Border color",
|
|
44708
|
-
defaultValue: "accent",
|
|
44709
|
-
ui: { widget: "backgroundColor" }
|
|
44710
|
-
},
|
|
44711
|
-
{
|
|
44712
|
-
id: "opacity",
|
|
44713
|
-
type: "number",
|
|
44714
|
-
label: "Border opacity",
|
|
44715
|
-
defaultValue: 30,
|
|
44716
|
-
ui: {
|
|
44717
|
-
min: 0,
|
|
44718
|
-
max: 100
|
|
44719
|
-
}
|
|
44720
|
-
},
|
|
44721
|
-
{
|
|
44722
|
-
id: "width",
|
|
44723
|
-
type: "select",
|
|
44724
|
-
label: "Border width",
|
|
44725
|
-
options: [
|
|
44726
|
-
{
|
|
44727
|
-
value: "1",
|
|
44728
|
-
label: "Thin (1px)"
|
|
44729
|
-
},
|
|
44730
|
-
{
|
|
44731
|
-
value: "2",
|
|
44732
|
-
label: "Medium (2px)"
|
|
44733
|
-
},
|
|
44734
|
-
{
|
|
44735
|
-
value: "3",
|
|
44736
|
-
label: "Thick (3px)"
|
|
44737
|
-
}
|
|
44738
|
-
],
|
|
44739
|
-
defaultValue: "2"
|
|
44740
|
-
}
|
|
44741
|
-
] },
|
|
44742
|
-
ui: { intent: "style" }
|
|
44743
|
-
},
|
|
44744
|
-
{
|
|
44745
|
-
id: "imageCorners",
|
|
44746
|
-
type: "select",
|
|
44747
|
-
label: "Image corners",
|
|
44748
|
-
options: [
|
|
44749
|
-
{
|
|
44750
|
-
value: "none",
|
|
44751
|
-
label: "Square"
|
|
44752
|
-
},
|
|
44753
|
-
{
|
|
44754
|
-
value: "sm",
|
|
44755
|
-
label: "Slightly rounded"
|
|
44756
|
-
},
|
|
44757
|
-
{
|
|
44758
|
-
value: "md",
|
|
44759
|
-
label: "Rounded"
|
|
44760
|
-
},
|
|
44761
|
-
{
|
|
44762
|
-
value: "lg",
|
|
44763
|
-
label: "More rounded"
|
|
44764
|
-
},
|
|
44765
|
-
{
|
|
44766
|
-
value: "xl",
|
|
44767
|
-
label: "Very rounded"
|
|
44768
|
-
},
|
|
44769
|
-
{
|
|
44770
|
-
value: "2xl",
|
|
44771
|
-
label: "Extra rounded"
|
|
44772
|
-
},
|
|
44773
|
-
{
|
|
44774
|
-
value: "3xl",
|
|
44775
|
-
label: "Maximum rounded"
|
|
44776
|
-
}
|
|
44777
|
-
],
|
|
44778
|
-
defaultValue: "3xl",
|
|
44779
|
-
ui: { intent: "style" }
|
|
44780
|
-
}
|
|
44781
|
-
]),
|
|
45573
|
+
additionalFields: imageGalleryFields,
|
|
44782
45574
|
layout: wrapVariant$1(gridLayout),
|
|
44783
45575
|
variants: {
|
|
45576
|
+
tiles: tilesLayout,
|
|
44784
45577
|
grid: wrapVariant$1(gridLayout),
|
|
44785
45578
|
carousel: wrapVariant$1(carouselLayout),
|
|
44786
45579
|
masonry: wrapVariant$1(masonryLayout),
|
|
@@ -44789,7 +45582,10 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
44789
45582
|
className: "rb-image-gallery-marquee-container"
|
|
44790
45583
|
})
|
|
44791
45584
|
},
|
|
44792
|
-
variantMeaning: {
|
|
45585
|
+
variantMeaning: {
|
|
45586
|
+
kind: "arrangement",
|
|
45587
|
+
lookOnlyKeys: ["tiles"]
|
|
45588
|
+
},
|
|
44793
45589
|
defaultVariant: "grid",
|
|
44794
45590
|
variantOptions: {
|
|
44795
45591
|
grid: {
|
|
@@ -47001,76 +47797,74 @@ const giftingBlockDefinition = {
|
|
|
47001
47797
|
/**
|
|
47002
47798
|
* Get form fields based on preset configuration.
|
|
47003
47799
|
*/
|
|
47004
|
-
function getGlobalFormFields(form) {
|
|
47005
|
-
const
|
|
47006
|
-
|
|
47007
|
-
|
|
47008
|
-
|
|
47009
|
-
|
|
47010
|
-
|
|
47011
|
-
|
|
47012
|
-
|
|
47013
|
-
|
|
47014
|
-
case "
|
|
47015
|
-
|
|
47016
|
-
|
|
47017
|
-
|
|
47018
|
-
|
|
47019
|
-
|
|
47020
|
-
|
|
47800
|
+
function getGlobalFormFields(form, presentation = {}) {
|
|
47801
|
+
const fields = withOptionalPhone(newsletterPresetFields(form.fields), form.includeOptionalPhone);
|
|
47802
|
+
return presentation.lookSlots ? fields.map((field) => ({
|
|
47803
|
+
...field,
|
|
47804
|
+
label: lookFieldLabel(field)
|
|
47805
|
+
})) : fields;
|
|
47806
|
+
}
|
|
47807
|
+
function lookFieldLabel(field) {
|
|
47808
|
+
switch (field.id) {
|
|
47809
|
+
case "firstName": return "First name";
|
|
47810
|
+
case "lastName": return "Last name";
|
|
47811
|
+
default: return field.label;
|
|
47812
|
+
}
|
|
47813
|
+
}
|
|
47814
|
+
const emailField = {
|
|
47815
|
+
id: "email",
|
|
47816
|
+
type: "email",
|
|
47817
|
+
label: "Email",
|
|
47818
|
+
required: true,
|
|
47819
|
+
placeholder: "your@email.com"
|
|
47820
|
+
};
|
|
47821
|
+
const firstNameField = (required) => ({
|
|
47822
|
+
id: "firstName",
|
|
47823
|
+
type: "text",
|
|
47824
|
+
label: "First Name",
|
|
47825
|
+
required,
|
|
47826
|
+
placeholder: "First name"
|
|
47827
|
+
});
|
|
47828
|
+
function newsletterPresetFields(fields) {
|
|
47829
|
+
switch (fields.preset) {
|
|
47830
|
+
case "emailOnly": return [emailField];
|
|
47831
|
+
case "emailName": return [emailField, {
|
|
47021
47832
|
id: "name",
|
|
47022
47833
|
type: "text",
|
|
47023
47834
|
label: "Name",
|
|
47024
|
-
required:
|
|
47835
|
+
required: fields.name === "required",
|
|
47025
47836
|
placeholder: "Your name"
|
|
47026
|
-
}]
|
|
47027
|
-
case "
|
|
47028
|
-
|
|
47029
|
-
|
|
47030
|
-
|
|
47031
|
-
label: "Email",
|
|
47032
|
-
required: true,
|
|
47033
|
-
placeholder: "your@email.com"
|
|
47034
|
-
},
|
|
47035
|
-
{
|
|
47036
|
-
id: "firstName",
|
|
47037
|
-
type: "text",
|
|
47038
|
-
label: "First Name",
|
|
47039
|
-
required: form.fields.firstName === "required",
|
|
47040
|
-
placeholder: "First name"
|
|
47041
|
-
},
|
|
47837
|
+
}];
|
|
47838
|
+
case "emailFirstName": return [emailField, firstNameField(fields.firstName === "required")];
|
|
47839
|
+
case "emailFirstLast": return [
|
|
47840
|
+
emailField,
|
|
47841
|
+
firstNameField(fields.firstName === "required"),
|
|
47042
47842
|
{
|
|
47043
47843
|
id: "lastName",
|
|
47044
47844
|
type: "text",
|
|
47045
47845
|
label: "Last Name",
|
|
47046
|
-
required:
|
|
47846
|
+
required: fields.lastName === "required",
|
|
47047
47847
|
placeholder: "Last name"
|
|
47048
47848
|
}
|
|
47049
|
-
]
|
|
47050
|
-
case "emailNameCompany": return
|
|
47051
|
-
|
|
47052
|
-
id: "email",
|
|
47053
|
-
type: "email",
|
|
47054
|
-
label: "Email",
|
|
47055
|
-
required: true,
|
|
47056
|
-
placeholder: "your@email.com"
|
|
47057
|
-
},
|
|
47849
|
+
];
|
|
47850
|
+
case "emailNameCompany": return [
|
|
47851
|
+
emailField,
|
|
47058
47852
|
{
|
|
47059
47853
|
id: "name",
|
|
47060
47854
|
type: "text",
|
|
47061
47855
|
label: "Name",
|
|
47062
|
-
required:
|
|
47856
|
+
required: fields.name === "required",
|
|
47063
47857
|
placeholder: "Your name"
|
|
47064
47858
|
},
|
|
47065
47859
|
{
|
|
47066
47860
|
id: "company",
|
|
47067
47861
|
type: "text",
|
|
47068
47862
|
label: "Company",
|
|
47069
|
-
required:
|
|
47863
|
+
required: fields.company === "required",
|
|
47070
47864
|
placeholder: "Company name"
|
|
47071
47865
|
}
|
|
47072
|
-
]
|
|
47073
|
-
default:
|
|
47866
|
+
];
|
|
47867
|
+
default: return assertNever$3(fields);
|
|
47074
47868
|
}
|
|
47075
47869
|
}
|
|
47076
47870
|
function withOptionalPhone(fields, includePhone) {
|
|
@@ -47132,6 +47926,7 @@ const mailingListSignupBlockSourceRefSchema = z.object({
|
|
|
47132
47926
|
});
|
|
47133
47927
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
47134
47928
|
const newsletterSourceCommonSchema = z.object({
|
|
47929
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
47135
47930
|
siteId: z.string().optional(),
|
|
47136
47931
|
apiBaseUrl: z.string().optional(),
|
|
47137
47932
|
mailingList: mailingListContextSchema.optional(),
|
|
@@ -47164,6 +47959,7 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
|
47164
47959
|
newsletterSourceCommonSchema.extend({ source: z.literal("preview") })
|
|
47165
47960
|
]);
|
|
47166
47961
|
const newsletterDisplaySchema = z.object({
|
|
47962
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
47167
47963
|
kind: z.literal("newsletter-form"),
|
|
47168
47964
|
availability: z.enum(["ready", "unavailable"]),
|
|
47169
47965
|
className: z.string().nullable(),
|
|
@@ -47230,13 +48026,14 @@ function buildNewsletterDisplay(source) {
|
|
|
47230
48026
|
const choices = resolveRuntimeChoices(assessment);
|
|
47231
48027
|
return {
|
|
47232
48028
|
kind: "newsletter-form",
|
|
48029
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
47233
48030
|
availability: assessment.tag === "available" ? "ready" : "unavailable",
|
|
47234
48031
|
className: source.className ?? null,
|
|
47235
48032
|
buttonLabel: form.buttonLabel,
|
|
47236
48033
|
successMessage: form.successMessage,
|
|
47237
48034
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
47238
48035
|
privacyNote: form.privacyNote,
|
|
47239
|
-
fields: getGlobalFormFields(form),
|
|
48036
|
+
fields: getGlobalFormFields(form, source),
|
|
47240
48037
|
choices
|
|
47241
48038
|
};
|
|
47242
48039
|
}
|
|
@@ -47308,32 +48105,50 @@ function parseRequiredMailingListSignedSourceToken(value) {
|
|
|
47308
48105
|
//#region ../blocks/src/system/blocks/newsletter-signup.ts
|
|
47309
48106
|
const stackedComposition = composeFragments([{ fragment: newsletterCopyFragment }, { fragment: newsletterFormFragment }]);
|
|
47310
48107
|
const stackedLayout = styledSection({
|
|
47311
|
-
children: sectionContainer(stackedComposition.layout, {
|
|
48108
|
+
children: props(lookSlot("layout"))(sectionContainer(stackedComposition.layout, {
|
|
47312
48109
|
gap: "md",
|
|
47313
48110
|
className: "rb-text-center newsletter-stacked"
|
|
47314
|
-
}),
|
|
48111
|
+
})),
|
|
47315
48112
|
baseClass: "",
|
|
47316
48113
|
spacing: "medium",
|
|
47317
48114
|
background: "surface"
|
|
47318
48115
|
});
|
|
47319
48116
|
const inlineLayout = styledSection({
|
|
47320
|
-
children: sectionContainer(stackedComposition.layout, {
|
|
48117
|
+
children: props(lookSlot("layout"))(sectionContainer(stackedComposition.layout, {
|
|
47321
48118
|
gap: "md",
|
|
47322
48119
|
className: "newsletter-inline"
|
|
47323
|
-
}),
|
|
48120
|
+
})),
|
|
47324
48121
|
baseClass: "",
|
|
47325
48122
|
spacing: "medium",
|
|
47326
48123
|
background: "surface"
|
|
47327
48124
|
});
|
|
47328
48125
|
const editorialSplitLayout = styledSection({
|
|
47329
|
-
children:
|
|
48126
|
+
children: props(lookSlot("layout"))(sectionContainer([el("div", {
|
|
48127
|
+
className: "newsletter-editorial-split-copy",
|
|
48128
|
+
...lookSlot("head")
|
|
48129
|
+
}, newsletterCopyFragment.layout), el("div", {
|
|
48130
|
+
className: "newsletter-editorial-split-form",
|
|
48131
|
+
...lookSlot("panel")
|
|
48132
|
+
}, newsletterFormFragment.layout)], {
|
|
47330
48133
|
gap: "lg",
|
|
47331
48134
|
className: "newsletter-editorial-split"
|
|
47332
|
-
}),
|
|
48135
|
+
})),
|
|
47333
48136
|
baseClass: "",
|
|
47334
48137
|
spacing: "comfortable",
|
|
47335
48138
|
background: "surface"
|
|
47336
48139
|
});
|
|
48140
|
+
const archLayout = styledSection({
|
|
48141
|
+
children: el("div", {
|
|
48142
|
+
className: "rb-container",
|
|
48143
|
+
...lookSlot("layout")
|
|
48144
|
+
}, [el("div", lookSlot("frame"), [el("div", {
|
|
48145
|
+
className: "rb-grid",
|
|
48146
|
+
...lookSlot("head")
|
|
48147
|
+
}, newsletterCopyFragment.layout), ...newsletterFormFragment.layout])]),
|
|
48148
|
+
baseClass: "",
|
|
48149
|
+
spacing: "medium",
|
|
48150
|
+
background: "surface"
|
|
48151
|
+
});
|
|
47337
48152
|
const newsletterSignupManifest = createBlockManifest({
|
|
47338
48153
|
id: "block.newsletter-signup",
|
|
47339
48154
|
title: "Newsletter Signup",
|
|
@@ -47348,13 +48163,26 @@ const newsletterSignupManifest = createBlockManifest({
|
|
|
47348
48163
|
fragment: newsletterFormFragment,
|
|
47349
48164
|
fieldPriority: 1
|
|
47350
48165
|
}],
|
|
48166
|
+
additionalFields: [{
|
|
48167
|
+
id: "archFrame",
|
|
48168
|
+
type: "boolean",
|
|
48169
|
+
label: "Arch frame",
|
|
48170
|
+
ui: {
|
|
48171
|
+
intent: "display",
|
|
48172
|
+
hidden: true
|
|
48173
|
+
}
|
|
48174
|
+
}],
|
|
47351
48175
|
layout: stackedLayout,
|
|
47352
48176
|
variants: {
|
|
48177
|
+
arch: archLayout,
|
|
47353
48178
|
stacked: stackedLayout,
|
|
47354
48179
|
inline: inlineLayout,
|
|
47355
48180
|
"editorial-split": editorialSplitLayout
|
|
47356
48181
|
},
|
|
47357
|
-
variantMeaning: {
|
|
48182
|
+
variantMeaning: {
|
|
48183
|
+
kind: "arrangement",
|
|
48184
|
+
lookOnlyKeys: ["arch"]
|
|
48185
|
+
},
|
|
47358
48186
|
defaultVariant: "stacked",
|
|
47359
48187
|
variantOptions: {
|
|
47360
48188
|
stacked: {
|
|
@@ -48446,7 +49274,7 @@ const systemBlockDefinitions = [
|
|
|
48446
49274
|
})
|
|
48447
49275
|
]
|
|
48448
49276
|
})),
|
|
48449
|
-
withDesignCapability("block.body-text", bodyTextBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
49277
|
+
withDesignCapability("block.body-text", bodyTextBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
48450
49278
|
flow: bodyFlow,
|
|
48451
49279
|
layoutProfiles: [
|
|
48452
49280
|
layoutProfile({
|
|
@@ -48821,7 +49649,7 @@ const systemBlockDefinitions = [
|
|
|
48821
49649
|
weight: "quiet"
|
|
48822
49650
|
})]
|
|
48823
49651
|
})),
|
|
48824
|
-
withDesignCapability("block.image-gallery", imageGalleryBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
49652
|
+
withDesignCapability("block.image-gallery", imageGalleryBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
48825
49653
|
flow: mediaFlow,
|
|
48826
49654
|
layoutProfiles: [
|
|
48827
49655
|
layoutProfile({
|
|
@@ -48910,7 +49738,7 @@ const systemBlockDefinitions = [
|
|
|
48910
49738
|
weight: "standard"
|
|
48911
49739
|
})]
|
|
48912
49740
|
})),
|
|
48913
|
-
withDesignCapability("block.newsletter-signup", newsletterSignupBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
49741
|
+
withDesignCapability("block.newsletter-signup", newsletterSignupBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
48914
49742
|
flow: conversionFlow,
|
|
48915
49743
|
layoutProfiles: [
|
|
48916
49744
|
layoutProfile({
|
|
@@ -49689,7 +50517,14 @@ const systemCustomizeFacetDefinitions = [
|
|
|
49689
50517
|
}
|
|
49690
50518
|
], "3", true),
|
|
49691
50519
|
fixedKnob("block.testimonials", "tilt", "Tilt the small cards", onOff, "true", false, true),
|
|
49692
|
-
|
|
50520
|
+
{
|
|
50521
|
+
...fixedKnob("block.testimonials", "archFrame", "Arch frame", onOff, "true", false, true),
|
|
50522
|
+
blockKinds: [
|
|
50523
|
+
"block.testimonials",
|
|
50524
|
+
"block.newsletter-signup",
|
|
50525
|
+
"block.form"
|
|
50526
|
+
]
|
|
50527
|
+
},
|
|
49693
50528
|
fixedKnob("block.hero", "candleGlow", "Candle glow", onOff, "true", false, true),
|
|
49694
50529
|
fixedKnob("block.hero", "columnGuides", "Column guides", onOff, "true", false, true),
|
|
49695
50530
|
fixedKnob("block.hero", "titleSize", "Headline size", [
|
|
@@ -49713,6 +50548,15 @@ const systemCustomizeFacetDefinitions = [
|
|
|
49713
50548
|
value: "right",
|
|
49714
50549
|
label: "Right"
|
|
49715
50550
|
}], "right"),
|
|
50551
|
+
fixedKnob("block.media-text", "imagePosition", "Photo side", [{
|
|
50552
|
+
value: "left",
|
|
50553
|
+
label: "Left"
|
|
50554
|
+
}, {
|
|
50555
|
+
value: "right",
|
|
50556
|
+
label: "Right"
|
|
50557
|
+
}], "left"),
|
|
50558
|
+
fixedKnob("block.media-text", "imageShape", "Media shape", standardImageShapeOptions, "default"),
|
|
50559
|
+
fixedKnob("block.media-text", "aspectRatio", "Media aspect ratio", standardAspectRatioOptions, "auto"),
|
|
49716
50560
|
textKnob("stickerLine", "Sticker line", 32),
|
|
49717
50561
|
textKnob("smallCaption", "Small caption", 24),
|
|
49718
50562
|
{
|
|
@@ -49901,10 +50745,7 @@ function arrangementPhotoContent(content, knobs) {
|
|
|
49901
50745
|
}) };
|
|
49902
50746
|
}
|
|
49903
50747
|
function arrangementContentFacts(content) {
|
|
49904
|
-
const
|
|
49905
|
-
const background = isObjectRecord$1(section.background) ? section.background : {};
|
|
49906
|
-
const itemPhotos = Array.isArray(content.cards) ? content.cards.filter((card) => isObjectRecord$1(card) && isObjectRecord$1(card.media)).length : 0;
|
|
49907
|
-
const photoCount = Array.isArray(content.cards) ? itemPhotos : isObjectRecord$1(background.image) ? 1 : 0;
|
|
50748
|
+
const photoCount = arrangementPhotoCount(content);
|
|
49908
50749
|
return {
|
|
49909
50750
|
photoCount,
|
|
49910
50751
|
facts: {
|
|
@@ -49915,6 +50756,13 @@ function arrangementContentFacts(content) {
|
|
|
49915
50756
|
}
|
|
49916
50757
|
};
|
|
49917
50758
|
}
|
|
50759
|
+
/** The content stage owns media presence for every arrangement consumer. */
|
|
50760
|
+
function arrangementPhotoCount(content) {
|
|
50761
|
+
if (Array.isArray(content.cards)) return content.cards.filter((card) => isObjectRecord$1(card) && isObjectRecord$1(card.media)).length;
|
|
50762
|
+
if (Array.isArray(content.images)) return content.images.filter((item) => isObjectRecord$1(item) && isObjectRecord$1(item.image)).length;
|
|
50763
|
+
const section = isObjectRecord$1(content._sectionStyles) ? content._sectionStyles : {};
|
|
50764
|
+
return isObjectRecord$1((isObjectRecord$1(section.background) ? section.background : {}).image) ? 1 : 0;
|
|
50765
|
+
}
|
|
49918
50766
|
function effectiveContentKnobValue(blockKind, key, value) {
|
|
49919
50767
|
const facet = systemCustomizeFacetDefinitionsForBlock(blockKind).find((entry) => entry.target.kind === "content-field" && entry.target.field === key);
|
|
49920
50768
|
return facet?.target.kind === "content-field" && facet.target.boolean ? value === "true" : value;
|