@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
|
@@ -495,6 +495,25 @@ function validateBookingPaymentOptionKinds(kinds) {
|
|
|
495
495
|
return ok$1(void 0);
|
|
496
496
|
}
|
|
497
497
|
//#endregion
|
|
498
|
+
//#region ../core/src/date-time-formatter.ts
|
|
499
|
+
/** Shared Intl engine, internal to core's date presentation owners. */
|
|
500
|
+
const FORMATTER_CACHE_LIMIT = 100;
|
|
501
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
502
|
+
function getDateTimeFormatter(locale, timeZone, format) {
|
|
503
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
504
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
505
|
+
if (cached !== void 0) return cached;
|
|
506
|
+
if (typeof locale !== "string" || Intl.DateTimeFormat.supportedLocalesOf([locale]).length === 0) throw new RangeError("An explicit supported locale is required");
|
|
507
|
+
if (typeof timeZone !== "string" || timeZone.length === 0) throw new RangeError("An explicit time zone is required");
|
|
508
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
509
|
+
...format,
|
|
510
|
+
timeZone
|
|
511
|
+
});
|
|
512
|
+
if (dateTimeFormatterCache.size >= FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
513
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
514
|
+
return formatter;
|
|
515
|
+
}
|
|
516
|
+
//#endregion
|
|
498
517
|
//#region ../core/src/booking-time-zone.ts
|
|
499
518
|
const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
|
|
500
519
|
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
@@ -531,8 +550,6 @@ const START_OF_DAY = {
|
|
|
531
550
|
second: 0
|
|
532
551
|
};
|
|
533
552
|
const LOCAL_DATE_PATTERN = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
534
|
-
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
535
|
-
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
536
553
|
function getSafeTimeZone(timeZone) {
|
|
537
554
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
538
555
|
return normalized.length > 0 && isValidBookingTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
@@ -549,19 +566,7 @@ function formatParseError(error) {
|
|
|
549
566
|
}
|
|
550
567
|
}
|
|
551
568
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
552
|
-
return new Map(
|
|
553
|
-
}
|
|
554
|
-
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
555
|
-
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
556
|
-
const cached = dateTimeFormatterCache.get(key);
|
|
557
|
-
if (cached !== void 0) return cached;
|
|
558
|
-
const formatter = new Intl.DateTimeFormat(locale, {
|
|
559
|
-
...format,
|
|
560
|
-
timeZone
|
|
561
|
-
});
|
|
562
|
-
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
563
|
-
dateTimeFormatterCache.set(key, formatter);
|
|
564
|
-
return formatter;
|
|
569
|
+
return new Map(getDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
565
570
|
}
|
|
566
571
|
function getZonedDateTimeParts(date, timeZone) {
|
|
567
572
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -678,7 +683,7 @@ function toScheduledBookingDateRange(input) {
|
|
|
678
683
|
function formatBookingInstant(isoString, options) {
|
|
679
684
|
const date = new Date(isoString);
|
|
680
685
|
if (Number.isNaN(date.getTime())) return isoString;
|
|
681
|
-
return
|
|
686
|
+
return getDateTimeFormatter(options.locale ?? DEFAULT_LOCALE, getSafeTimeZone(options.timeZone), options.format).format(date);
|
|
682
687
|
}
|
|
683
688
|
function formatBookingDate(input, format = {
|
|
684
689
|
weekday: "long",
|
|
@@ -821,6 +826,17 @@ function localScheduleDateTimeToUtcDate(localDate, localTime, timeZone) {
|
|
|
821
826
|
return new Date(guess);
|
|
822
827
|
}
|
|
823
828
|
//#endregion
|
|
829
|
+
//#region ../core/src/date-display.ts
|
|
830
|
+
/** Site-language policy, shared by customer emails and public event adapters. */
|
|
831
|
+
function inferSiteDateLocale(siteTimeZone) {
|
|
832
|
+
if (siteTimeZone === null || siteTimeZone === void 0 || siteTimeZone === "") return "en-US";
|
|
833
|
+
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
834
|
+
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
835
|
+
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
836
|
+
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
837
|
+
return "en-US";
|
|
838
|
+
}
|
|
839
|
+
//#endregion
|
|
824
840
|
//#region ../core/src/mailing-list-identifiers.ts
|
|
825
841
|
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu;
|
|
826
842
|
const OPAQUE_ID_PATTERN = /^[A-Za-z0-9_-]{1,100}$/u;
|
|
@@ -893,6 +909,10 @@ function parseGlobalFields(value) {
|
|
|
893
909
|
preset: "emailName",
|
|
894
910
|
name: value.name
|
|
895
911
|
} : null;
|
|
912
|
+
case "emailFirstName": return isRequirement(value.firstName) ? {
|
|
913
|
+
preset: "emailFirstName",
|
|
914
|
+
firstName: value.firstName
|
|
915
|
+
} : null;
|
|
896
916
|
case "emailFirstLast": return isRequirement(value.firstName) && isRequirement(value.lastName) ? {
|
|
897
917
|
preset: "emailFirstLast",
|
|
898
918
|
firstName: value.firstName,
|
|
@@ -2244,6 +2264,29 @@ function clsx() {
|
|
|
2244
2264
|
return n;
|
|
2245
2265
|
}
|
|
2246
2266
|
//#endregion
|
|
2267
|
+
//#region ../theme-core/src/buttons/typography.ts
|
|
2268
|
+
const textTransformSchema = z.enum([
|
|
2269
|
+
"none",
|
|
2270
|
+
"uppercase",
|
|
2271
|
+
"lowercase",
|
|
2272
|
+
"capitalize"
|
|
2273
|
+
]);
|
|
2274
|
+
const fontWeightSchema = z.union([
|
|
2275
|
+
z.literal(400),
|
|
2276
|
+
z.literal(500),
|
|
2277
|
+
z.literal(600),
|
|
2278
|
+
z.literal(700),
|
|
2279
|
+
z.literal(800)
|
|
2280
|
+
]);
|
|
2281
|
+
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
2282
|
+
const letterSpacingSchema = z.enum([
|
|
2283
|
+
"tight",
|
|
2284
|
+
"normal",
|
|
2285
|
+
"slight",
|
|
2286
|
+
"loose",
|
|
2287
|
+
"wide"
|
|
2288
|
+
]);
|
|
2289
|
+
//#endregion
|
|
2247
2290
|
//#region ../theme-core/src/tokens/colorTokenParts.ts
|
|
2248
2291
|
function parseOpacityPercent(source) {
|
|
2249
2292
|
const trimmed = source.trim();
|
|
@@ -2498,6 +2541,7 @@ const buttonEffectApplicationSchema = z.discriminatedUnion("effectId", [
|
|
|
2498
2541
|
z.strictObject({
|
|
2499
2542
|
effectId: z.literal("lift"),
|
|
2500
2543
|
options: z.strictObject({ amount: z.enum([
|
|
2544
|
+
"0.125",
|
|
2501
2545
|
"0.25",
|
|
2502
2546
|
"0.5",
|
|
2503
2547
|
"1"
|
|
@@ -2544,24 +2588,6 @@ const shadowSizeSchema = z.enum([
|
|
|
2544
2588
|
"medium",
|
|
2545
2589
|
"high"
|
|
2546
2590
|
]);
|
|
2547
|
-
const textTransformSchema = z.enum([
|
|
2548
|
-
"none",
|
|
2549
|
-
"uppercase",
|
|
2550
|
-
"lowercase",
|
|
2551
|
-
"capitalize"
|
|
2552
|
-
]);
|
|
2553
|
-
const fontWeightSchema = z.union([
|
|
2554
|
-
z.literal(500),
|
|
2555
|
-
z.literal(600),
|
|
2556
|
-
z.literal(700),
|
|
2557
|
-
z.literal(800)
|
|
2558
|
-
]);
|
|
2559
|
-
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
2560
|
-
const letterSpacingSchema = z.enum([
|
|
2561
|
-
"tight",
|
|
2562
|
-
"normal",
|
|
2563
|
-
"loose"
|
|
2564
|
-
]);
|
|
2565
2591
|
const hoverTransformSchema = z.enum([
|
|
2566
2592
|
"none",
|
|
2567
2593
|
"lift",
|
|
@@ -2633,7 +2659,8 @@ const paddingShorthandSchema = z.string().refine((value) => {
|
|
|
2633
2659
|
}, { message: "Padding must be two space-separated CSS length tokens (e.g. \"0.5rem 1rem\"). Use `0` for zero." });
|
|
2634
2660
|
const buttonSizeConfigSchema = z.object({
|
|
2635
2661
|
padding: paddingShorthandSchema,
|
|
2636
|
-
fontSize: z.string().optional()
|
|
2662
|
+
fontSize: z.string().optional(),
|
|
2663
|
+
borderRadius: z.string().optional()
|
|
2637
2664
|
});
|
|
2638
2665
|
/**
|
|
2639
2666
|
* `xl` is optional on the wire so themes persisted before the `xl` size was
|
|
@@ -2756,12 +2783,20 @@ const buttonVisualAppearanceSchema = z.strictObject({
|
|
|
2756
2783
|
textTransform: textTransformSchema
|
|
2757
2784
|
}),
|
|
2758
2785
|
effects: z.array(buttonEffectApplicationSchema),
|
|
2786
|
+
transform: z.literal("none").optional(),
|
|
2759
2787
|
contextualHover: contextualButtonHoverSchema.optional()
|
|
2760
2788
|
});
|
|
2761
2789
|
const buttonVisualStatesSchema = z.strictObject({
|
|
2762
2790
|
base: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
2763
2791
|
hover: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
2764
|
-
focus: buttonVisualAppearanceSchema.extend({
|
|
2792
|
+
focus: buttonVisualAppearanceSchema.extend({
|
|
2793
|
+
shadow: z.literal("focus-indicator"),
|
|
2794
|
+
indicator: z.strictObject({
|
|
2795
|
+
kind: z.literal("surface-ink"),
|
|
2796
|
+
width: z.union([z.literal(2), z.literal(3)]),
|
|
2797
|
+
offset: z.union([z.literal(3), z.literal(4)])
|
|
2798
|
+
}).optional()
|
|
2799
|
+
}),
|
|
2765
2800
|
active: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
2766
2801
|
disabled: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema })
|
|
2767
2802
|
});
|
|
@@ -3212,14 +3247,6 @@ const themeLookMetadataSchema = z.object({
|
|
|
3212
3247
|
skinMarks: skinMarksSchema.optional()
|
|
3213
3248
|
});
|
|
3214
3249
|
//#endregion
|
|
3215
|
-
//#region ../theme-core/src/footer/mode.ts
|
|
3216
|
-
const footerModeSchema = z.enum([
|
|
3217
|
-
"default",
|
|
3218
|
-
"blocks",
|
|
3219
|
-
"default+blocks",
|
|
3220
|
-
"none"
|
|
3221
|
-
]);
|
|
3222
|
-
//#endregion
|
|
3223
3250
|
//#region ../theme-core/src/palette/colors.ts
|
|
3224
3251
|
const HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
|
|
3225
3252
|
const NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
|
|
@@ -5485,20 +5512,15 @@ const headerSchema = z.object({
|
|
|
5485
5512
|
const footerVariant = z.enum([
|
|
5486
5513
|
"simple",
|
|
5487
5514
|
"columns",
|
|
5488
|
-
"split"
|
|
5489
|
-
|
|
5515
|
+
"split",
|
|
5516
|
+
"centred"
|
|
5517
|
+
]).transform((value) => value === "columns" ? "simple" : value);
|
|
5490
5518
|
const footerMaxWidth = z.enum(["container", "full"]);
|
|
5491
5519
|
const footerNavLayoutMode = z.enum([
|
|
5492
5520
|
"stack",
|
|
5493
5521
|
"inline",
|
|
5494
5522
|
"inline-wrap"
|
|
5495
5523
|
]);
|
|
5496
|
-
const footerNavLayoutAlign = z.enum([
|
|
5497
|
-
"start",
|
|
5498
|
-
"center",
|
|
5499
|
-
"end",
|
|
5500
|
-
"space-between"
|
|
5501
|
-
]);
|
|
5502
5524
|
const footerSpacing = z.enum([
|
|
5503
5525
|
"none",
|
|
5504
5526
|
"tight",
|
|
@@ -5507,12 +5529,6 @@ const footerSpacing = z.enum([
|
|
|
5507
5529
|
"relaxed",
|
|
5508
5530
|
"spacious"
|
|
5509
5531
|
]);
|
|
5510
|
-
const footerLogoPlacement = z.enum([
|
|
5511
|
-
"left",
|
|
5512
|
-
"right",
|
|
5513
|
-
"above",
|
|
5514
|
-
"below"
|
|
5515
|
-
]);
|
|
5516
5532
|
const footerLogoSize = z.enum([
|
|
5517
5533
|
"sm",
|
|
5518
5534
|
"md",
|
|
@@ -5553,17 +5569,8 @@ const footerBottomBarSchema = z.object({
|
|
|
5553
5569
|
]).optional()
|
|
5554
5570
|
}).optional()
|
|
5555
5571
|
});
|
|
5556
|
-
const footerNavLayoutSchema = z.object({
|
|
5557
|
-
layout: footerNavLayoutMode.optional(),
|
|
5558
|
-
align: footerNavLayoutAlign.optional(),
|
|
5559
|
-
gapX: footerSpacing.optional(),
|
|
5560
|
-
gapY: footerSpacing.optional(),
|
|
5561
|
-
columns: z.number().int().min(1).max(6).optional()
|
|
5562
|
-
});
|
|
5572
|
+
const footerNavLayoutSchema = z.object({ layout: footerNavLayoutMode.optional() });
|
|
5563
5573
|
const footerLogoSchema = z.object({
|
|
5564
|
-
showLogo: z.boolean().default(true),
|
|
5565
|
-
showLogoText: z.boolean().optional(),
|
|
5566
|
-
placement: footerLogoPlacement.optional(),
|
|
5567
5574
|
size: footerLogoSize.optional(),
|
|
5568
5575
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
5569
5576
|
align: z.enum([
|
|
@@ -5573,15 +5580,8 @@ const footerLogoSchema = z.object({
|
|
|
5573
5580
|
]).optional()
|
|
5574
5581
|
});
|
|
5575
5582
|
const footerSchema = z.object({
|
|
5576
|
-
/**
|
|
5577
|
-
* SDK-only footer rendering mode.
|
|
5578
|
-
*
|
|
5579
|
-
* Historical persisted field; SDK rendering mode now lives in layout.footerMode.
|
|
5580
|
-
*/
|
|
5581
|
-
mode: footerModeSchema.optional(),
|
|
5582
5583
|
variant: footerVariant,
|
|
5583
5584
|
maxWidth: footerMaxWidth,
|
|
5584
|
-
showLogoText: z.boolean().optional(),
|
|
5585
5585
|
background: headerBackgroundSchema.default({
|
|
5586
5586
|
type: "color",
|
|
5587
5587
|
color: "surface"
|
|
@@ -5822,6 +5822,287 @@ function normalizeAppearance(appearance) {
|
|
|
5822
5822
|
};
|
|
5823
5823
|
}
|
|
5824
5824
|
//#endregion
|
|
5825
|
+
//#region ../theme-core/src/buttons/styles/recipes/lanternRecipes.ts
|
|
5826
|
+
const flatShadow = {
|
|
5827
|
+
elevation: "none",
|
|
5828
|
+
softness: null,
|
|
5829
|
+
position: "bottom"
|
|
5830
|
+
};
|
|
5831
|
+
const lift$1 = {
|
|
5832
|
+
effectId: "lift",
|
|
5833
|
+
options: { amount: "0.125" }
|
|
5834
|
+
};
|
|
5835
|
+
const tags = {
|
|
5836
|
+
tone: "classic",
|
|
5837
|
+
energy: "calm",
|
|
5838
|
+
motion: "subtle",
|
|
5839
|
+
era: "editorial"
|
|
5840
|
+
};
|
|
5841
|
+
/** Each role supplies complete states, including a flat surface-ink focus ring. */
|
|
5842
|
+
function states(base, hover, offset = 4, width = 2) {
|
|
5843
|
+
return {
|
|
5844
|
+
base,
|
|
5845
|
+
hover,
|
|
5846
|
+
focus: {
|
|
5847
|
+
...base,
|
|
5848
|
+
shadow: "focus-indicator",
|
|
5849
|
+
indicator: {
|
|
5850
|
+
kind: "surface-ink",
|
|
5851
|
+
width,
|
|
5852
|
+
offset
|
|
5853
|
+
}
|
|
5854
|
+
},
|
|
5855
|
+
active: {
|
|
5856
|
+
...base,
|
|
5857
|
+
transform: "none"
|
|
5858
|
+
},
|
|
5859
|
+
disabled: {
|
|
5860
|
+
...base,
|
|
5861
|
+
effects: []
|
|
5862
|
+
}
|
|
5863
|
+
};
|
|
5864
|
+
}
|
|
5865
|
+
const gilt = {
|
|
5866
|
+
text: "treatment",
|
|
5867
|
+
border: "none",
|
|
5868
|
+
borderRadius: "rounded-10px",
|
|
5869
|
+
shadow: flatShadow,
|
|
5870
|
+
sizes: {
|
|
5871
|
+
sm: {
|
|
5872
|
+
padding: "10px 20px",
|
|
5873
|
+
fontSize: "text-base",
|
|
5874
|
+
borderRadius: "rounded-lg"
|
|
5875
|
+
},
|
|
5876
|
+
md: {
|
|
5877
|
+
padding: "18px 36px",
|
|
5878
|
+
fontSize: "text-19px"
|
|
5879
|
+
},
|
|
5880
|
+
lg: {
|
|
5881
|
+
padding: "18px 36px",
|
|
5882
|
+
fontSize: "text-19px"
|
|
5883
|
+
},
|
|
5884
|
+
xl: {
|
|
5885
|
+
padding: "18px 36px",
|
|
5886
|
+
fontSize: "text-19px"
|
|
5887
|
+
}
|
|
5888
|
+
},
|
|
5889
|
+
typography: {
|
|
5890
|
+
fontWeight: 400,
|
|
5891
|
+
typography: "heading",
|
|
5892
|
+
fontSize: "text-19px",
|
|
5893
|
+
letterSpacing: "slight",
|
|
5894
|
+
italic: false,
|
|
5895
|
+
textTransform: "none"
|
|
5896
|
+
},
|
|
5897
|
+
effects: []
|
|
5898
|
+
};
|
|
5899
|
+
const giltPrimary = {
|
|
5900
|
+
...gilt,
|
|
5901
|
+
background: {
|
|
5902
|
+
type: "gradient",
|
|
5903
|
+
stops: ["accent", "primary"],
|
|
5904
|
+
direction: "to-br",
|
|
5905
|
+
foregroundToken: "onAccent"
|
|
5906
|
+
}
|
|
5907
|
+
};
|
|
5908
|
+
const giltPrimaryHover = {
|
|
5909
|
+
...giltPrimary,
|
|
5910
|
+
background: {
|
|
5911
|
+
...giltPrimary.background,
|
|
5912
|
+
stops: ["accent-400", "primary-400"],
|
|
5913
|
+
foregroundToken: "secondary-950"
|
|
5914
|
+
},
|
|
5915
|
+
effects: [lift$1]
|
|
5916
|
+
};
|
|
5917
|
+
const giltSecondary = {
|
|
5918
|
+
...gilt,
|
|
5919
|
+
background: {
|
|
5920
|
+
type: "solid",
|
|
5921
|
+
colorToken: "text"
|
|
5922
|
+
}
|
|
5923
|
+
};
|
|
5924
|
+
const giltSecondaryHover = {
|
|
5925
|
+
...giltSecondary,
|
|
5926
|
+
effects: [lift$1],
|
|
5927
|
+
contextualHover: {
|
|
5928
|
+
kind: "shade-shift",
|
|
5929
|
+
seedToken: unsafeAsOpaqueButtonColourToken("text"),
|
|
5930
|
+
fallbackDirection: "lighter"
|
|
5931
|
+
}
|
|
5932
|
+
};
|
|
5933
|
+
const giltPrimaryStates = states(giltPrimary, giltPrimaryHover);
|
|
5934
|
+
const giltSecondaryStates = states(giltSecondary, giltSecondaryHover);
|
|
5935
|
+
const giltSlabRecipe = defineStaticButtonStyleRecipe({
|
|
5936
|
+
id: "gilt-slab",
|
|
5937
|
+
accessibilityLabel: "Gilt slab",
|
|
5938
|
+
tags,
|
|
5939
|
+
system: { roles: {
|
|
5940
|
+
primary: { states: giltPrimaryStates },
|
|
5941
|
+
secondary: { states: giltSecondaryStates },
|
|
5942
|
+
outline: { states: giltSecondaryStates },
|
|
5943
|
+
ghost: { states: giltSecondaryStates },
|
|
5944
|
+
accent: { states: giltPrimaryStates }
|
|
5945
|
+
} }
|
|
5946
|
+
});
|
|
5947
|
+
const hairline = {
|
|
5948
|
+
text: "treatment",
|
|
5949
|
+
borderRadius: "rounded-3px",
|
|
5950
|
+
shadow: flatShadow,
|
|
5951
|
+
sizes: {
|
|
5952
|
+
sm: {
|
|
5953
|
+
padding: "9px 16px",
|
|
5954
|
+
fontSize: "text-xs"
|
|
5955
|
+
},
|
|
5956
|
+
md: {
|
|
5957
|
+
padding: "15px 28px",
|
|
5958
|
+
fontSize: "text-13px"
|
|
5959
|
+
},
|
|
5960
|
+
lg: {
|
|
5961
|
+
padding: "15px 28px",
|
|
5962
|
+
fontSize: "text-13px"
|
|
5963
|
+
},
|
|
5964
|
+
xl: {
|
|
5965
|
+
padding: "15px 28px",
|
|
5966
|
+
fontSize: "text-13px"
|
|
5967
|
+
}
|
|
5968
|
+
},
|
|
5969
|
+
typography: {
|
|
5970
|
+
fontWeight: 700,
|
|
5971
|
+
typography: "body",
|
|
5972
|
+
fontSize: "text-13px",
|
|
5973
|
+
letterSpacing: "wide",
|
|
5974
|
+
italic: false,
|
|
5975
|
+
textTransform: "uppercase"
|
|
5976
|
+
},
|
|
5977
|
+
effects: []
|
|
5978
|
+
};
|
|
5979
|
+
const hairlinePrimary = {
|
|
5980
|
+
...hairline,
|
|
5981
|
+
background: {
|
|
5982
|
+
type: "solid",
|
|
5983
|
+
colorToken: "primary"
|
|
5984
|
+
},
|
|
5985
|
+
border: {
|
|
5986
|
+
widthClass: "border",
|
|
5987
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
5988
|
+
}
|
|
5989
|
+
};
|
|
5990
|
+
const hairlineOutline = {
|
|
5991
|
+
...hairline,
|
|
5992
|
+
background: {
|
|
5993
|
+
type: "surface",
|
|
5994
|
+
role: "link"
|
|
5995
|
+
},
|
|
5996
|
+
border: {
|
|
5997
|
+
widthClass: "border",
|
|
5998
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
5999
|
+
}
|
|
6000
|
+
};
|
|
6001
|
+
const hairlineSecondary = {
|
|
6002
|
+
...hairlineOutline,
|
|
6003
|
+
border: {
|
|
6004
|
+
widthClass: "border",
|
|
6005
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
6006
|
+
}
|
|
6007
|
+
};
|
|
6008
|
+
const hairlineFilled = {
|
|
6009
|
+
...hairlineSecondary,
|
|
6010
|
+
background: {
|
|
6011
|
+
type: "solid",
|
|
6012
|
+
colorToken: "accent"
|
|
6013
|
+
}
|
|
6014
|
+
};
|
|
6015
|
+
const hairlinePrimaryStates = states(hairlinePrimary, hairlineOutline, 3);
|
|
6016
|
+
const hairlineSecondaryStates = states(hairlineSecondary, hairlineFilled, 3);
|
|
6017
|
+
const hairlineTabRecipe = defineStaticButtonStyleRecipe({
|
|
6018
|
+
id: "hairline-tab",
|
|
6019
|
+
accessibilityLabel: "Hairline tab",
|
|
6020
|
+
tags,
|
|
6021
|
+
system: { roles: {
|
|
6022
|
+
primary: { states: hairlinePrimaryStates },
|
|
6023
|
+
secondary: { states: hairlineSecondaryStates },
|
|
6024
|
+
outline: { states: hairlineSecondaryStates },
|
|
6025
|
+
ghost: { states: hairlineSecondaryStates },
|
|
6026
|
+
accent: { states: states(hairlineFilled, hairlineSecondary, 3) }
|
|
6027
|
+
} }
|
|
6028
|
+
});
|
|
6029
|
+
const marqueeAccent = {
|
|
6030
|
+
text: "treatment",
|
|
6031
|
+
borderRadius: "rounded-none",
|
|
6032
|
+
shadow: flatShadow,
|
|
6033
|
+
sizes: {
|
|
6034
|
+
sm: {
|
|
6035
|
+
padding: "8px 17px",
|
|
6036
|
+
fontSize: "text-15px"
|
|
6037
|
+
},
|
|
6038
|
+
md: {
|
|
6039
|
+
padding: "14px 25px",
|
|
6040
|
+
fontSize: "text-17px"
|
|
6041
|
+
},
|
|
6042
|
+
lg: {
|
|
6043
|
+
padding: "14px 25px",
|
|
6044
|
+
fontSize: "text-17px"
|
|
6045
|
+
},
|
|
6046
|
+
xl: {
|
|
6047
|
+
padding: "14px 25px",
|
|
6048
|
+
fontSize: "text-17px"
|
|
6049
|
+
}
|
|
6050
|
+
},
|
|
6051
|
+
typography: {
|
|
6052
|
+
fontWeight: 800,
|
|
6053
|
+
typography: "body",
|
|
6054
|
+
fontSize: "text-17px",
|
|
6055
|
+
letterSpacing: "loose",
|
|
6056
|
+
italic: false,
|
|
6057
|
+
textTransform: "uppercase"
|
|
6058
|
+
},
|
|
6059
|
+
effects: [],
|
|
6060
|
+
background: {
|
|
6061
|
+
type: "solid",
|
|
6062
|
+
colorToken: "accent"
|
|
6063
|
+
},
|
|
6064
|
+
border: {
|
|
6065
|
+
widthClass: "border-2",
|
|
6066
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
6067
|
+
}
|
|
6068
|
+
};
|
|
6069
|
+
const marqueePrimary = {
|
|
6070
|
+
...marqueeAccent,
|
|
6071
|
+
background: {
|
|
6072
|
+
type: "solid",
|
|
6073
|
+
colorToken: "primary"
|
|
6074
|
+
},
|
|
6075
|
+
border: {
|
|
6076
|
+
widthClass: "border-2",
|
|
6077
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
6078
|
+
}
|
|
6079
|
+
};
|
|
6080
|
+
const marqueeSecondary = {
|
|
6081
|
+
...marqueeAccent,
|
|
6082
|
+
background: {
|
|
6083
|
+
type: "solid",
|
|
6084
|
+
colorToken: "text"
|
|
6085
|
+
},
|
|
6086
|
+
border: {
|
|
6087
|
+
widthClass: "border-2",
|
|
6088
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("text")
|
|
6089
|
+
}
|
|
6090
|
+
};
|
|
6091
|
+
const marqueePrimaryStates = states(marqueeAccent, marqueePrimary, 4, 3);
|
|
6092
|
+
const marqueeSecondaryStates = states(marqueeSecondary, marqueeAccent, 4, 3);
|
|
6093
|
+
const marqueeRecipe = defineStaticButtonStyleRecipe({
|
|
6094
|
+
id: "marquee",
|
|
6095
|
+
accessibilityLabel: "Marquee",
|
|
6096
|
+
tags,
|
|
6097
|
+
system: { roles: {
|
|
6098
|
+
primary: { states: marqueePrimaryStates },
|
|
6099
|
+
secondary: { states: marqueeSecondaryStates },
|
|
6100
|
+
outline: { states: marqueeSecondaryStates },
|
|
6101
|
+
ghost: { states: marqueeSecondaryStates },
|
|
6102
|
+
accent: { states: marqueePrimaryStates }
|
|
6103
|
+
} }
|
|
6104
|
+
});
|
|
6105
|
+
//#endregion
|
|
5825
6106
|
//#region ../theme-core/src/buttons/styles/recipes/fulcrumRecipe.ts
|
|
5826
6107
|
const fulcrumSizes = {
|
|
5827
6108
|
sm: {
|
|
@@ -6563,7 +6844,10 @@ const BUTTON_STYLE_IDS = [
|
|
|
6563
6844
|
"offset-block",
|
|
6564
6845
|
"ringed-pill",
|
|
6565
6846
|
"square-outline",
|
|
6566
|
-
"fulcrum"
|
|
6847
|
+
"fulcrum",
|
|
6848
|
+
"gilt-slab",
|
|
6849
|
+
"hairline-tab",
|
|
6850
|
+
"marquee"
|
|
6567
6851
|
];
|
|
6568
6852
|
const quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
|
|
6569
6853
|
const flatInkHoverTreatmentSchema = z.enum([
|
|
@@ -6600,7 +6884,10 @@ const buttonStyleSelectionSchema = z.discriminatedUnion("styleId", [
|
|
|
6600
6884
|
selectionBranch("offset-block", emptyParametersSchema),
|
|
6601
6885
|
selectionBranch("ringed-pill", emptyParametersSchema),
|
|
6602
6886
|
selectionBranch("square-outline", emptyParametersSchema),
|
|
6603
|
-
selectionBranch("fulcrum", emptyParametersSchema)
|
|
6887
|
+
selectionBranch("fulcrum", emptyParametersSchema),
|
|
6888
|
+
selectionBranch("gilt-slab", emptyParametersSchema),
|
|
6889
|
+
selectionBranch("hairline-tab", emptyParametersSchema),
|
|
6890
|
+
selectionBranch("marquee", emptyParametersSchema)
|
|
6604
6891
|
]);
|
|
6605
6892
|
//#endregion
|
|
6606
6893
|
//#region ../theme-core/src/buttons/styles/recipes/quietArrow.ts
|
|
@@ -10116,7 +10403,10 @@ const buttonStyleRecipes = [
|
|
|
10116
10403
|
offsetBlockRecipe,
|
|
10117
10404
|
ringedPillRecipe,
|
|
10118
10405
|
squareOutlineRecipe,
|
|
10119
|
-
fulcrumRecipe
|
|
10406
|
+
fulcrumRecipe,
|
|
10407
|
+
giltSlabRecipe,
|
|
10408
|
+
hairlineTabRecipe,
|
|
10409
|
+
marqueeRecipe
|
|
10120
10410
|
];
|
|
10121
10411
|
const recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
|
|
10122
10412
|
function findButtonStyleRecipe(id) {
|
|
@@ -10132,6 +10422,9 @@ function resolveButtonStyleSelection(selection) {
|
|
|
10132
10422
|
case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
|
|
10133
10423
|
case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
|
|
10134
10424
|
case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
|
|
10425
|
+
case "gilt-slab": return resolveButtonStyleRecipe(giltSlabRecipe, selection.parameters);
|
|
10426
|
+
case "hairline-tab": return resolveButtonStyleRecipe(hairlineTabRecipe, selection.parameters);
|
|
10427
|
+
case "marquee": return resolveButtonStyleRecipe(marqueeRecipe, selection.parameters);
|
|
10135
10428
|
case "fulcrum": return resolveButtonStyleRecipe(fulcrumRecipe, selection.parameters);
|
|
10136
10429
|
case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
|
|
10137
10430
|
case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
|
|
@@ -11473,7 +11766,9 @@ const cardListKnobBlocks = [...cardListFamilyBlocks, "block.event-calendar"];
|
|
|
11473
11766
|
const lookKnobBlocks = {
|
|
11474
11767
|
actionStyle: cardListKnobBlocks,
|
|
11475
11768
|
titleSize: "block.hero",
|
|
11476
|
-
imagePosition: "block.hero",
|
|
11769
|
+
imagePosition: ["block.hero", "block.media-text"],
|
|
11770
|
+
imageShape: "block.media-text",
|
|
11771
|
+
aspectRatio: "block.media-text",
|
|
11477
11772
|
stickerLine: "block.hero",
|
|
11478
11773
|
smallCaption: "block.hero",
|
|
11479
11774
|
candleGlow: "block.hero",
|
|
@@ -11483,7 +11778,11 @@ const lookKnobBlocks = {
|
|
|
11483
11778
|
dates: "block.offerings-preview",
|
|
11484
11779
|
showCapacity: "block.event-calendar",
|
|
11485
11780
|
quoteCount: "block.testimonials",
|
|
11486
|
-
archFrame:
|
|
11781
|
+
archFrame: [
|
|
11782
|
+
"block.testimonials",
|
|
11783
|
+
"block.newsletter-signup",
|
|
11784
|
+
"block.form"
|
|
11785
|
+
],
|
|
11487
11786
|
tilt: "block.testimonials"
|
|
11488
11787
|
};
|
|
11489
11788
|
function isArrangementAppearancePreset(preset) {
|
|
@@ -11510,13 +11809,25 @@ function cardListKnobDefaults(block, arrangement, knobs, defaults) {
|
|
|
11510
11809
|
}
|
|
11511
11810
|
};
|
|
11512
11811
|
}
|
|
11812
|
+
const arrangementLookTargets = {
|
|
11813
|
+
hero: "hero",
|
|
11814
|
+
"feature-cards": "feature-cards",
|
|
11815
|
+
"event-calendar": "events",
|
|
11816
|
+
testimonials: "testimonials",
|
|
11817
|
+
"event-details": "events",
|
|
11818
|
+
"media-text": "media-text",
|
|
11819
|
+
"image-gallery": "image-gallery",
|
|
11820
|
+
"newsletter-signup": "newsletter",
|
|
11821
|
+
form: "contact-form",
|
|
11822
|
+
"body-text": "body-text"
|
|
11823
|
+
};
|
|
11513
11824
|
function defineArrangementLook(id, block, name, arrangement, knobs, input = {}) {
|
|
11514
11825
|
const mode = block === "event-calendar" ? "list" : null;
|
|
11515
11826
|
return {
|
|
11516
11827
|
id: asAppearancePresetId(id),
|
|
11517
11828
|
blockKinds: [`block.${block}`],
|
|
11518
11829
|
label: name,
|
|
11519
|
-
target: block
|
|
11830
|
+
target: arrangementLookTargets[block],
|
|
11520
11831
|
structure: {
|
|
11521
11832
|
kind: "arrangement",
|
|
11522
11833
|
byMode: { [mode ?? "default"]: arrangement },
|
|
@@ -12336,6 +12647,15 @@ const appearancePresets = [
|
|
|
12336
12647
|
eyebrowTreatment: "accent"
|
|
12337
12648
|
}
|
|
12338
12649
|
}),
|
|
12650
|
+
defineArrangementLook("body-text-reading-column", "body-text", "Reading column", "prose", []),
|
|
12651
|
+
defineArrangementLook("form-beside-introduction-arched-panel", "form", "Introduction beside an arched form", "two-column", [], { slotRoles: { panel: "card" } }),
|
|
12652
|
+
defineArrangementLook("newsletter-signup-in-arch", "newsletter-signup", "Signup in an arch", "arch", []),
|
|
12653
|
+
defineArrangementLook("image-gallery-square-tiles", "image-gallery", "Square tiles", "tiles", []),
|
|
12654
|
+
defineArrangementLook("image-gallery-arched-captions", "image-gallery", "Arched photos with captions", "tiles", [], { styleFallback: [id$1("image-gallery-square-tiles")] }),
|
|
12655
|
+
defineArrangementLook("media-text-circle-beside-text", "media-text", "Circle beside the text", "circle-beside", ["imagePosition"], { forcedKnobs: {
|
|
12656
|
+
imageShape: "circle",
|
|
12657
|
+
aspectRatio: "1/1"
|
|
12658
|
+
} }),
|
|
12339
12659
|
defineArrangementLook("hero-photo-beside-text", "hero", "Photo beside the text", "split", heroKnobs, { slotRoles: { sticker: "highlight" } }),
|
|
12340
12660
|
defineArrangementLook("hero-headline-row", "hero", "Big headline, then text and photo", "headline-row", heroKnobs, {
|
|
12341
12661
|
slotRoles: { sticker: "highlight" },
|
|
@@ -12899,6 +13219,41 @@ function requireThemeColorToken$1(value) {
|
|
|
12899
13219
|
return token;
|
|
12900
13220
|
}
|
|
12901
13221
|
//#endregion
|
|
13222
|
+
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
13223
|
+
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
13224
|
+
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
13225
|
+
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
13226
|
+
function parseSiteChromeBackgroundColorToken(value) {
|
|
13227
|
+
const token = parseBackgroundAppearanceColorToken(value);
|
|
13228
|
+
return token ? token : null;
|
|
13229
|
+
}
|
|
13230
|
+
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
13231
|
+
return tokenNames.flatMap((name) => {
|
|
13232
|
+
const token = parseSiteChromeBackgroundColorToken(name);
|
|
13233
|
+
return token ? [token] : [];
|
|
13234
|
+
});
|
|
13235
|
+
}
|
|
13236
|
+
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
13237
|
+
const token = parseSiteChromeBackgroundColorToken(value);
|
|
13238
|
+
if (token === null) {
|
|
13239
|
+
ctx.addIssue({
|
|
13240
|
+
code: "custom",
|
|
13241
|
+
message: "Unknown site chrome background colour token"
|
|
13242
|
+
});
|
|
13243
|
+
return z.NEVER;
|
|
13244
|
+
}
|
|
13245
|
+
return token;
|
|
13246
|
+
});
|
|
13247
|
+
const siteChromeBackgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
13248
|
+
kind: z.literal("color"),
|
|
13249
|
+
token: backgroundColorTokenSchema
|
|
13250
|
+
}).strict()]);
|
|
13251
|
+
z.object({
|
|
13252
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
13253
|
+
navigationLayout: z.enum(["inline-wrap", "stack"])
|
|
13254
|
+
}).strict();
|
|
13255
|
+
z.object({ background: siteChromeBackgroundOverrideSchema }).strict();
|
|
13256
|
+
//#endregion
|
|
12902
13257
|
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
12903
13258
|
const defaultHeaderBrandPreferences = {
|
|
12904
13259
|
brandDisplay: "auto",
|
|
@@ -13059,6 +13414,9 @@ function fallbackEndsAtOffer(entry, mode, style, catalogue, visited) {
|
|
|
13059
13414
|
appearancePresets.filter(isArrangementAppearancePreset);
|
|
13060
13415
|
/** Closed structural hooks shared by block arrangements and bounded skins. */
|
|
13061
13416
|
const arrangementSlotNames = [
|
|
13417
|
+
"contact",
|
|
13418
|
+
"social",
|
|
13419
|
+
"base",
|
|
13062
13420
|
"section",
|
|
13063
13421
|
"stack",
|
|
13064
13422
|
"inline",
|
|
@@ -13145,6 +13503,55 @@ function validateOfferKnobs(style, catalogue) {
|
|
|
13145
13503
|
});
|
|
13146
13504
|
}
|
|
13147
13505
|
//#endregion
|
|
13506
|
+
//#region ../theme-core/src/site-styles/footerLookDefaults.ts
|
|
13507
|
+
const defaultFooterLookRecipes = {
|
|
13508
|
+
"footer-centred-name": {
|
|
13509
|
+
arrangement: "centred",
|
|
13510
|
+
ground: {
|
|
13511
|
+
kind: "token",
|
|
13512
|
+
token: "surface"
|
|
13513
|
+
},
|
|
13514
|
+
nav: {
|
|
13515
|
+
weight: "regular",
|
|
13516
|
+
colorToken: "text",
|
|
13517
|
+
hoverColorToken: "primary",
|
|
13518
|
+
typography: "body"
|
|
13519
|
+
},
|
|
13520
|
+
legal: {
|
|
13521
|
+
kind: "separate",
|
|
13522
|
+
bar: null
|
|
13523
|
+
},
|
|
13524
|
+
brandAlign: "center"
|
|
13525
|
+
},
|
|
13526
|
+
"footer-links-row": {
|
|
13527
|
+
arrangement: "simple",
|
|
13528
|
+
ground: {
|
|
13529
|
+
kind: "token",
|
|
13530
|
+
token: "surface"
|
|
13531
|
+
},
|
|
13532
|
+
nav: {
|
|
13533
|
+
weight: "regular",
|
|
13534
|
+
colorToken: "text",
|
|
13535
|
+
hoverColorToken: "primary",
|
|
13536
|
+
typography: "body"
|
|
13537
|
+
},
|
|
13538
|
+
legal: { kind: "integrated" },
|
|
13539
|
+
brandAlign: "start"
|
|
13540
|
+
}
|
|
13541
|
+
};
|
|
13542
|
+
/** A whole authored recipe replaces the default; facets are never deep-merged. */
|
|
13543
|
+
function resolveFooterLookRecipe(style, id) {
|
|
13544
|
+
return style?.footerLookRecipes?.[id] ?? defaultFooterLookRecipes[id];
|
|
13545
|
+
}
|
|
13546
|
+
//#endregion
|
|
13547
|
+
//#region ../theme-core/src/site-styles/footerLookRecipe.ts
|
|
13548
|
+
/** Reject undeclared references when the curated catalogue is loaded, before rendering. */
|
|
13549
|
+
function validateFooterRecipeSurfaces(style, recipe) {
|
|
13550
|
+
[recipe.ground, ...recipe.legal.kind === "separate" && recipe.legal.bar ? [recipe.legal.bar.background] : []].forEach((ground) => {
|
|
13551
|
+
if (ground.kind === "style-surface" && (style.looks.kind !== "offers" || !style.looks.surfaces[ground.surface])) throw new Error(`Undeclared footer surface: ${ground.surface}`);
|
|
13552
|
+
});
|
|
13553
|
+
}
|
|
13554
|
+
//#endregion
|
|
13148
13555
|
//#region ../theme-core/src/site-styles/styleTags.ts
|
|
13149
13556
|
/**
|
|
13150
13557
|
* Descriptive style-axis metadata for button personalities and palette
|
|
@@ -16051,52 +16458,14 @@ defineLookOptionGroup({
|
|
|
16051
16458
|
function asFooterLookId(value) {
|
|
16052
16459
|
return value;
|
|
16053
16460
|
}
|
|
16054
|
-
function quietFooterLinks(theme) {
|
|
16055
|
-
return {
|
|
16056
|
-
...theme.footer,
|
|
16057
|
-
navStyle: "minimal",
|
|
16058
|
-
navWeight: "regular",
|
|
16059
|
-
navColor: "text",
|
|
16060
|
-
navLinkStyle: {
|
|
16061
|
-
typography: "body",
|
|
16062
|
-
fontWeight: "regular",
|
|
16063
|
-
textTransform: "none",
|
|
16064
|
-
italic: false,
|
|
16065
|
-
colorToken: "text",
|
|
16066
|
-
hoverColorToken: "primary",
|
|
16067
|
-
padding: "none",
|
|
16068
|
-
borderRadius: "none"
|
|
16069
|
-
}
|
|
16070
|
-
};
|
|
16071
|
-
}
|
|
16072
|
-
function emphasizedFooterLinks(theme) {
|
|
16073
|
-
return {
|
|
16074
|
-
...theme.footer,
|
|
16075
|
-
navStyle: "minimal",
|
|
16076
|
-
navWeight: "medium",
|
|
16077
|
-
navColor: "text",
|
|
16078
|
-
navLinkStyle: {
|
|
16079
|
-
typography: "body",
|
|
16080
|
-
fontWeight: "medium",
|
|
16081
|
-
textTransform: "none",
|
|
16082
|
-
italic: false,
|
|
16083
|
-
colorToken: "text",
|
|
16084
|
-
hoverColorToken: "primary",
|
|
16085
|
-
padding: "none",
|
|
16086
|
-
borderRadius: "none"
|
|
16087
|
-
}
|
|
16088
|
-
};
|
|
16089
|
-
}
|
|
16090
16461
|
const footerLookCatalog = defineExactCatalog()([{
|
|
16091
|
-
id: asFooterLookId("footer-links-
|
|
16092
|
-
label: "
|
|
16093
|
-
description: "
|
|
16094
|
-
compile: quietFooterLinks
|
|
16462
|
+
id: asFooterLookId("footer-links-row"),
|
|
16463
|
+
label: "Links in a row",
|
|
16464
|
+
description: "Your links in a row, with the other footer sections in columns beside them."
|
|
16095
16465
|
}, {
|
|
16096
|
-
id: asFooterLookId("footer-
|
|
16097
|
-
label: "
|
|
16098
|
-
description: "
|
|
16099
|
-
compile: emphasizedFooterLinks
|
|
16466
|
+
id: asFooterLookId("footer-centred-name"),
|
|
16467
|
+
label: "Centred name, links beneath",
|
|
16468
|
+
description: "Your site name centred, with your links, contact details and social links beneath it."
|
|
16100
16469
|
}]);
|
|
16101
16470
|
new Map(footerLookCatalog.map((look) => [look.id, look]));
|
|
16102
16471
|
//#endregion
|
|
@@ -17480,6 +17849,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
17480
17849
|
recommendedAppearancePresetIds
|
|
17481
17850
|
},
|
|
17482
17851
|
headerCuration: headerCurationBySiteStyle[input.id],
|
|
17852
|
+
footerLookRecipes: input.footerLookRecipes,
|
|
17483
17853
|
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
|
|
17484
17854
|
buttonStyleChoices: input.buttonStyleChoices,
|
|
17485
17855
|
paletteRecommendations: input.paletteRecommendations,
|
|
@@ -17965,7 +18335,11 @@ const lanternLooks = {
|
|
|
17965
18335
|
margin: "40px"
|
|
17966
18336
|
},
|
|
17967
18337
|
fontLoading: {
|
|
17968
|
-
extraBodyFontWeights: [
|
|
18338
|
+
extraBodyFontWeights: [
|
|
18339
|
+
500,
|
|
18340
|
+
700,
|
|
18341
|
+
800
|
|
18342
|
+
],
|
|
17969
18343
|
italicBodyFontWeights: [400]
|
|
17970
18344
|
},
|
|
17971
18345
|
surfaces: {
|
|
@@ -18015,6 +18389,38 @@ const lanternLooks = {
|
|
|
18015
18389
|
]
|
|
18016
18390
|
},
|
|
18017
18391
|
offers: [
|
|
18392
|
+
{
|
|
18393
|
+
id: id("body-text-reading-column"),
|
|
18394
|
+
treatment: "reading-column",
|
|
18395
|
+
roleMap: lanternRoles
|
|
18396
|
+
},
|
|
18397
|
+
{
|
|
18398
|
+
id: id("form-beside-introduction-arched-panel"),
|
|
18399
|
+
treatment: "arched-panel",
|
|
18400
|
+
addKnobs: ["archFrame"],
|
|
18401
|
+
roleMap: lanternRoles
|
|
18402
|
+
},
|
|
18403
|
+
{
|
|
18404
|
+
id: id("newsletter-signup-in-arch"),
|
|
18405
|
+
treatment: "signup-arch",
|
|
18406
|
+
addKnobs: ["archFrame"],
|
|
18407
|
+
roleMap: lanternRoles
|
|
18408
|
+
},
|
|
18409
|
+
{
|
|
18410
|
+
id: id("image-gallery-square-tiles"),
|
|
18411
|
+
treatment: "square-tiles",
|
|
18412
|
+
roleMap: lanternRoles
|
|
18413
|
+
},
|
|
18414
|
+
{
|
|
18415
|
+
id: id("image-gallery-arched-captions"),
|
|
18416
|
+
treatment: "arched-captions",
|
|
18417
|
+
roleMap: lanternRoles
|
|
18418
|
+
},
|
|
18419
|
+
{
|
|
18420
|
+
id: id("media-text-circle-beside-text"),
|
|
18421
|
+
treatment: "circle-beside",
|
|
18422
|
+
roleMap: lanternRoles
|
|
18423
|
+
},
|
|
18018
18424
|
{
|
|
18019
18425
|
id: id("event-details-panel"),
|
|
18020
18426
|
treatment: "quiet",
|
|
@@ -18453,7 +18859,7 @@ const curatedSiteStyles = [
|
|
|
18453
18859
|
"faq-contained-help",
|
|
18454
18860
|
"contact-form-panel"
|
|
18455
18861
|
],
|
|
18456
|
-
recommendedFooterLookIds: ["footer-links-
|
|
18862
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18457
18863
|
buttonStyleChoices: [
|
|
18458
18864
|
buttonChoice("soft-pill"),
|
|
18459
18865
|
buttonChoice("pebble"),
|
|
@@ -18572,7 +18978,7 @@ const curatedSiteStyles = [
|
|
|
18572
18978
|
"testimonials-non-carded",
|
|
18573
18979
|
"contact-form-panel"
|
|
18574
18980
|
],
|
|
18575
|
-
recommendedFooterLookIds: ["footer-links-
|
|
18981
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18576
18982
|
buttonStyleChoices: [
|
|
18577
18983
|
buttonChoice("earth-pill"),
|
|
18578
18984
|
buttonChoice("soft-pill"),
|
|
@@ -18627,7 +19033,41 @@ const curatedSiteStyles = [
|
|
|
18627
19033
|
"testimonials-brand-statement-cards",
|
|
18628
19034
|
"contact-form-panel"
|
|
18629
19035
|
],
|
|
18630
|
-
|
|
19036
|
+
footerLookRecipes: { "footer-links-row": {
|
|
19037
|
+
arrangement: "split",
|
|
19038
|
+
ground: {
|
|
19039
|
+
kind: "token",
|
|
19040
|
+
token: "primary-800"
|
|
19041
|
+
},
|
|
19042
|
+
nav: {
|
|
19043
|
+
weight: "medium",
|
|
19044
|
+
colorToken: "primaryForeground",
|
|
19045
|
+
hoverColorToken: "secondary",
|
|
19046
|
+
typography: "body"
|
|
19047
|
+
},
|
|
19048
|
+
legal: {
|
|
19049
|
+
kind: "separate",
|
|
19050
|
+
bar: {
|
|
19051
|
+
fullBleed: true,
|
|
19052
|
+
background: {
|
|
19053
|
+
kind: "token",
|
|
19054
|
+
token: "primary-900"
|
|
19055
|
+
},
|
|
19056
|
+
textColor: "primaryForeground",
|
|
19057
|
+
textAlign: "center",
|
|
19058
|
+
paddingY: "compact",
|
|
19059
|
+
paddingX: "default",
|
|
19060
|
+
borderTop: { width: "none" }
|
|
19061
|
+
},
|
|
19062
|
+
linkStyle: {
|
|
19063
|
+
colorToken: "secondary",
|
|
19064
|
+
decorationColorToken: "secondary"
|
|
19065
|
+
}
|
|
19066
|
+
},
|
|
19067
|
+
brandAlign: "start",
|
|
19068
|
+
brandLogoSize: "sm"
|
|
19069
|
+
} },
|
|
19070
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18631
19071
|
buttonStyleChoices: [
|
|
18632
19072
|
buttonChoice("showtime-pill"),
|
|
18633
19073
|
buttonChoice("confident-chip"),
|
|
@@ -18698,7 +19138,7 @@ const curatedSiteStyles = [
|
|
|
18698
19138
|
"testimonials-statement-cards",
|
|
18699
19139
|
"contact-form-panel"
|
|
18700
19140
|
],
|
|
18701
|
-
recommendedFooterLookIds: ["footer-links-
|
|
19141
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18702
19142
|
buttonStyleChoices: [
|
|
18703
19143
|
buttonChoice("ornate-ritual"),
|
|
18704
19144
|
buttonChoice("joy-stamp"),
|
|
@@ -18745,7 +19185,22 @@ const curatedSiteStyles = [
|
|
|
18745
19185
|
} }
|
|
18746
19186
|
},
|
|
18747
19187
|
recommendedAppearancePresetIds: ["feature-cards-bold-colors", "testimonials-statement-cards"],
|
|
18748
|
-
|
|
19188
|
+
footerLookRecipes: { "footer-links-row": {
|
|
19189
|
+
arrangement: "simple",
|
|
19190
|
+
ground: {
|
|
19191
|
+
kind: "token",
|
|
19192
|
+
token: "surface"
|
|
19193
|
+
},
|
|
19194
|
+
nav: {
|
|
19195
|
+
weight: "medium",
|
|
19196
|
+
colorToken: "text",
|
|
19197
|
+
hoverColorToken: "primary",
|
|
19198
|
+
typography: "body"
|
|
19199
|
+
},
|
|
19200
|
+
legal: { kind: "integrated" },
|
|
19201
|
+
brandAlign: "start"
|
|
19202
|
+
} },
|
|
19203
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18749
19204
|
buttonStyleChoices: [
|
|
18750
19205
|
buttonChoice("joy-stamp"),
|
|
18751
19206
|
buttonChoice("ink-stamp"),
|
|
@@ -18797,7 +19252,7 @@ const curatedSiteStyles = [
|
|
|
18797
19252
|
},
|
|
18798
19253
|
testimonialQuote: serifDisplayQuote
|
|
18799
19254
|
},
|
|
18800
|
-
recommendedFooterLookIds: ["footer-links-
|
|
19255
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18801
19256
|
buttonStyleChoices: [
|
|
18802
19257
|
buttonChoice("fulcrum"),
|
|
18803
19258
|
buttonChoice("editorial-link"),
|
|
@@ -18874,7 +19329,7 @@ const curatedSiteStyles = [
|
|
|
18874
19329
|
"faq-base-accordion",
|
|
18875
19330
|
"booking-brand-band"
|
|
18876
19331
|
],
|
|
18877
|
-
recommendedFooterLookIds: ["footer-links-
|
|
19332
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18878
19333
|
buttonStyleChoices: [
|
|
18879
19334
|
buttonChoice("quiet-arrow", void 0, { secondaryTreatment: "solid-accent" }),
|
|
18880
19335
|
buttonChoice("flat-ink"),
|
|
@@ -18912,7 +19367,22 @@ const curatedSiteStyles = [
|
|
|
18912
19367
|
accordions: boldBorderedAccordionSystem,
|
|
18913
19368
|
testimonialQuote: accentGlyphQuote
|
|
18914
19369
|
},
|
|
18915
|
-
|
|
19370
|
+
footerLookRecipes: { "footer-links-row": {
|
|
19371
|
+
arrangement: "simple",
|
|
19372
|
+
ground: {
|
|
19373
|
+
kind: "token",
|
|
19374
|
+
token: "surface"
|
|
19375
|
+
},
|
|
19376
|
+
nav: {
|
|
19377
|
+
weight: "medium",
|
|
19378
|
+
colorToken: "text",
|
|
19379
|
+
hoverColorToken: "primary",
|
|
19380
|
+
typography: "body"
|
|
19381
|
+
},
|
|
19382
|
+
legal: { kind: "integrated" },
|
|
19383
|
+
brandAlign: "start"
|
|
19384
|
+
} },
|
|
19385
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18916
19386
|
buttonStyleChoices: [
|
|
18917
19387
|
buttonChoice("offset-block"),
|
|
18918
19388
|
buttonChoice("ink-stamp"),
|
|
@@ -18951,8 +19421,29 @@ const curatedSiteStyles = [
|
|
|
18951
19421
|
accordions: warmInsetAccordionSystem,
|
|
18952
19422
|
testimonialQuote: serifDisplayQuote
|
|
18953
19423
|
},
|
|
18954
|
-
|
|
19424
|
+
footerLookRecipes: { "footer-centred-name": {
|
|
19425
|
+
arrangement: "centred",
|
|
19426
|
+
ground: {
|
|
19427
|
+
kind: "style-surface",
|
|
19428
|
+
surface: "deep"
|
|
19429
|
+
},
|
|
19430
|
+
nav: {
|
|
19431
|
+
weight: "regular",
|
|
19432
|
+
colorToken: "text",
|
|
19433
|
+
hoverColorToken: "primary",
|
|
19434
|
+
typography: "heading"
|
|
19435
|
+
},
|
|
19436
|
+
legal: {
|
|
19437
|
+
kind: "separate",
|
|
19438
|
+
bar: null
|
|
19439
|
+
},
|
|
19440
|
+
brandAlign: "center"
|
|
19441
|
+
} },
|
|
19442
|
+
recommendedFooterLookIds: ["footer-centred-name", "footer-links-row"],
|
|
18955
19443
|
buttonStyleChoices: [
|
|
19444
|
+
buttonChoice("gilt-slab"),
|
|
19445
|
+
buttonChoice("hairline-tab"),
|
|
19446
|
+
buttonChoice("marquee"),
|
|
18956
19447
|
buttonChoice("ringed-pill"),
|
|
18957
19448
|
buttonChoice("earth-pill"),
|
|
18958
19449
|
buttonChoice("editorial-link")
|
|
@@ -18987,7 +19478,7 @@ const curatedSiteStyles = [
|
|
|
18987
19478
|
accordions: editorialDividedAccordionSystem,
|
|
18988
19479
|
testimonialQuote: serifDisplayQuote
|
|
18989
19480
|
},
|
|
18990
|
-
recommendedFooterLookIds: ["footer-links-
|
|
19481
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
18991
19482
|
buttonStyleChoices: [
|
|
18992
19483
|
buttonChoice("flat-ink", void 0, { corners: "square" }),
|
|
18993
19484
|
buttonChoice("editorial-link"),
|
|
@@ -19015,6 +19506,7 @@ function curatedStyleTemplate(input) {
|
|
|
19015
19506
|
}
|
|
19016
19507
|
curatedSiteStyles.forEach((style) => {
|
|
19017
19508
|
if (style.looks.kind === "offers") validateLookFallbacks(style.looks);
|
|
19509
|
+
(/* @__PURE__ */ new Set([...Object.values(style.footerLookRecipes ?? {}), ...style.recommendedFooterLookIds.map((id) => resolveFooterLookRecipe(style, id))])).forEach((recipe) => validateFooterRecipeSurfaces(style, recipe));
|
|
19018
19510
|
});
|
|
19019
19511
|
//#endregion
|
|
19020
19512
|
//#region ../theme-core/src/site-styles/effectiveArrangement.ts
|
|
@@ -19090,21 +19582,6 @@ const blockDesignFallback = {
|
|
|
19090
19582
|
};
|
|
19091
19583
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
19092
19584
|
//#endregion
|
|
19093
|
-
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
19094
|
-
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
19095
|
-
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
19096
|
-
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
19097
|
-
function parseSiteChromeBackgroundColorToken(value) {
|
|
19098
|
-
const token = parseBackgroundAppearanceColorToken(value);
|
|
19099
|
-
return token ? token : null;
|
|
19100
|
-
}
|
|
19101
|
-
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
19102
|
-
return tokenNames.flatMap((name) => {
|
|
19103
|
-
const token = parseSiteChromeBackgroundColorToken(name);
|
|
19104
|
-
return token ? [token] : [];
|
|
19105
|
-
});
|
|
19106
|
-
}
|
|
19107
|
-
//#endregion
|
|
19108
19585
|
//#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
|
|
19109
19586
|
const headerNavTypographyPreferenceValues = [
|
|
19110
19587
|
"inherit",
|
|
@@ -19220,21 +19697,6 @@ z.object({
|
|
|
19220
19697
|
}).strict();
|
|
19221
19698
|
//#endregion
|
|
19222
19699
|
//#region ../theme-core/src/site-styles/headerPreferencesPersistence.ts
|
|
19223
|
-
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
19224
|
-
const token = parseSiteChromeBackgroundColorToken(value);
|
|
19225
|
-
if (token === null) {
|
|
19226
|
-
ctx.addIssue({
|
|
19227
|
-
code: "custom",
|
|
19228
|
-
message: "Unknown site chrome background colour token"
|
|
19229
|
-
});
|
|
19230
|
-
return z.NEVER;
|
|
19231
|
-
}
|
|
19232
|
-
return token;
|
|
19233
|
-
});
|
|
19234
|
-
const backgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
19235
|
-
kind: z.literal("color"),
|
|
19236
|
-
token: backgroundColorTokenSchema
|
|
19237
|
-
}).strict()]);
|
|
19238
19700
|
const logoTextIntentSchema = z.object({
|
|
19239
19701
|
mobileMaxWidth: z.enum([
|
|
19240
19702
|
"xs",
|
|
@@ -19260,7 +19722,7 @@ const headerPreferencesShape = {
|
|
|
19260
19722
|
navFontRole: z.enum(headerNavTypographyPreferenceValues),
|
|
19261
19723
|
navTextSize: z.enum(headerNavFontSizePreferenceValues),
|
|
19262
19724
|
interactionPalette: z.union([z.literal("recommended"), z.enum(headerInteractionPaletteValues)]),
|
|
19263
|
-
background:
|
|
19725
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
19264
19726
|
structure: structureSchema
|
|
19265
19727
|
};
|
|
19266
19728
|
z.object(headerPreferencesShape).strict();
|
|
@@ -19491,6 +19953,10 @@ function listLookSlot(presentation, slot) {
|
|
|
19491
19953
|
...surface === void 0 ? { "data-surface": "section" } : resolvedItemSurfaceProps(surface, slot)
|
|
19492
19954
|
};
|
|
19493
19955
|
}
|
|
19956
|
+
/** Control kind is semantic; legacy markup receives no extra attributes. */
|
|
19957
|
+
function listLookControl(presentation, kind) {
|
|
19958
|
+
return presentation.lookSlots === void 0 ? {} : { "data-control": kind };
|
|
19959
|
+
}
|
|
19494
19960
|
function resolvedSurfaceBackground(surface, token) {
|
|
19495
19961
|
const color = token.startsWith("#") ? token : `rgb(var(--tb-${token}))`;
|
|
19496
19962
|
const base = surface.kind === "owned" ? surface.tintBase : void 0;
|
|
@@ -20514,19 +20980,14 @@ function groupItemsByDate(items, accessors) {
|
|
|
20514
20980
|
*
|
|
20515
20981
|
* Sites don't store a locale, and every public word around a date is English,
|
|
20516
20982
|
* so the only open question is which English conventions to follow: day or
|
|
20517
|
-
* month first
|
|
20983
|
+
* month first. The site's time zone is the one
|
|
20518
20984
|
* fact every site carries about where it is. It is the site's, never an
|
|
20519
20985
|
* event's: a venue left at UTC must not turn a UK site's dates American.
|
|
20520
20986
|
* Anywhere this can't place (UTC, the Americas, Asia) keeps US English, which
|
|
20521
20987
|
* is what these helpers wrote before sites were placed at all.
|
|
20522
20988
|
*/
|
|
20523
20989
|
function eventDateLocale(siteTimeZone) {
|
|
20524
|
-
|
|
20525
|
-
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
20526
|
-
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
20527
|
-
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
20528
|
-
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
20529
|
-
return "en-US";
|
|
20990
|
+
return inferSiteDateLocale(siteTimeZone);
|
|
20530
20991
|
}
|
|
20531
20992
|
/**
|
|
20532
20993
|
* Formatting options for an event's dates: the times in the event's own zone,
|
|
@@ -27298,6 +27759,7 @@ const formFieldGroupSchema = z.discriminatedUnion("type", [z.object({
|
|
|
27298
27759
|
fields: z.tuple([formFieldSchema, formFieldSchema])
|
|
27299
27760
|
})]);
|
|
27300
27761
|
const formSourceSchema = z.object({
|
|
27762
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
27301
27763
|
value: formRecordSchema.optional(),
|
|
27302
27764
|
siteId: z.string().optional(),
|
|
27303
27765
|
apiBaseUrl: z.string().optional(),
|
|
@@ -27307,6 +27769,7 @@ const formSourceSchema = z.object({
|
|
|
27307
27769
|
spamProtectionEnabled: z.boolean().optional()
|
|
27308
27770
|
});
|
|
27309
27771
|
const formDisplaySchema = z.object({
|
|
27772
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
27310
27773
|
kind: z.literal("form"),
|
|
27311
27774
|
state: z.enum(["missing", "ready"]),
|
|
27312
27775
|
className: z.string().nullable(),
|
|
@@ -27328,17 +27791,30 @@ const formIslandMetaCodec = createZodCodec(z.object({
|
|
|
27328
27791
|
const formIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
|
|
27329
27792
|
function buildFormDisplay(source) {
|
|
27330
27793
|
const form = source.value ?? null;
|
|
27331
|
-
const fields = form
|
|
27332
|
-
const groups = Array.isArray(fields) ? groupFormFields(fields) : [];
|
|
27794
|
+
const fields = formDisplayFields(form);
|
|
27333
27795
|
return {
|
|
27334
27796
|
kind: "form",
|
|
27335
|
-
|
|
27797
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
27798
|
+
state: fields.state,
|
|
27336
27799
|
className: source.className ?? null,
|
|
27337
|
-
formId:
|
|
27800
|
+
formId: fields.formId,
|
|
27338
27801
|
submitLabel: source.submitLabel?.trim() || "Submit",
|
|
27339
27802
|
successMessage: source.successMessage ?? null,
|
|
27340
27803
|
form,
|
|
27341
|
-
groups
|
|
27804
|
+
groups: fields.groups
|
|
27805
|
+
};
|
|
27806
|
+
}
|
|
27807
|
+
function formDisplayFields(form) {
|
|
27808
|
+
if (!form) return {
|
|
27809
|
+
state: "missing",
|
|
27810
|
+
formId: null,
|
|
27811
|
+
groups: []
|
|
27812
|
+
};
|
|
27813
|
+
const fields = form.schemaJson?.fields;
|
|
27814
|
+
return {
|
|
27815
|
+
state: "ready",
|
|
27816
|
+
formId: form.id,
|
|
27817
|
+
groups: Array.isArray(fields) ? groupFormFields(fields) : []
|
|
27342
27818
|
};
|
|
27343
27819
|
}
|
|
27344
27820
|
const formInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
@@ -27469,76 +27945,74 @@ const giftingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
27469
27945
|
/**
|
|
27470
27946
|
* Get form fields based on preset configuration.
|
|
27471
27947
|
*/
|
|
27472
|
-
function getGlobalFormFields(form) {
|
|
27473
|
-
const
|
|
27474
|
-
|
|
27475
|
-
|
|
27476
|
-
|
|
27477
|
-
|
|
27478
|
-
|
|
27479
|
-
|
|
27480
|
-
|
|
27481
|
-
|
|
27482
|
-
case "
|
|
27483
|
-
|
|
27484
|
-
|
|
27485
|
-
|
|
27486
|
-
|
|
27487
|
-
|
|
27488
|
-
|
|
27948
|
+
function getGlobalFormFields(form, presentation = {}) {
|
|
27949
|
+
const fields = withOptionalPhone(newsletterPresetFields(form.fields), form.includeOptionalPhone);
|
|
27950
|
+
return presentation.lookSlots ? fields.map((field) => ({
|
|
27951
|
+
...field,
|
|
27952
|
+
label: lookFieldLabel(field)
|
|
27953
|
+
})) : fields;
|
|
27954
|
+
}
|
|
27955
|
+
function lookFieldLabel(field) {
|
|
27956
|
+
switch (field.id) {
|
|
27957
|
+
case "firstName": return "First name";
|
|
27958
|
+
case "lastName": return "Last name";
|
|
27959
|
+
default: return field.label;
|
|
27960
|
+
}
|
|
27961
|
+
}
|
|
27962
|
+
const emailField = {
|
|
27963
|
+
id: "email",
|
|
27964
|
+
type: "email",
|
|
27965
|
+
label: "Email",
|
|
27966
|
+
required: true,
|
|
27967
|
+
placeholder: "your@email.com"
|
|
27968
|
+
};
|
|
27969
|
+
const firstNameField = (required) => ({
|
|
27970
|
+
id: "firstName",
|
|
27971
|
+
type: "text",
|
|
27972
|
+
label: "First Name",
|
|
27973
|
+
required,
|
|
27974
|
+
placeholder: "First name"
|
|
27975
|
+
});
|
|
27976
|
+
function newsletterPresetFields(fields) {
|
|
27977
|
+
switch (fields.preset) {
|
|
27978
|
+
case "emailOnly": return [emailField];
|
|
27979
|
+
case "emailName": return [emailField, {
|
|
27489
27980
|
id: "name",
|
|
27490
27981
|
type: "text",
|
|
27491
27982
|
label: "Name",
|
|
27492
|
-
required:
|
|
27983
|
+
required: fields.name === "required",
|
|
27493
27984
|
placeholder: "Your name"
|
|
27494
|
-
}]
|
|
27495
|
-
case "
|
|
27496
|
-
|
|
27497
|
-
|
|
27498
|
-
|
|
27499
|
-
label: "Email",
|
|
27500
|
-
required: true,
|
|
27501
|
-
placeholder: "your@email.com"
|
|
27502
|
-
},
|
|
27503
|
-
{
|
|
27504
|
-
id: "firstName",
|
|
27505
|
-
type: "text",
|
|
27506
|
-
label: "First Name",
|
|
27507
|
-
required: form.fields.firstName === "required",
|
|
27508
|
-
placeholder: "First name"
|
|
27509
|
-
},
|
|
27985
|
+
}];
|
|
27986
|
+
case "emailFirstName": return [emailField, firstNameField(fields.firstName === "required")];
|
|
27987
|
+
case "emailFirstLast": return [
|
|
27988
|
+
emailField,
|
|
27989
|
+
firstNameField(fields.firstName === "required"),
|
|
27510
27990
|
{
|
|
27511
27991
|
id: "lastName",
|
|
27512
27992
|
type: "text",
|
|
27513
27993
|
label: "Last Name",
|
|
27514
|
-
required:
|
|
27994
|
+
required: fields.lastName === "required",
|
|
27515
27995
|
placeholder: "Last name"
|
|
27516
27996
|
}
|
|
27517
|
-
]
|
|
27518
|
-
case "emailNameCompany": return
|
|
27519
|
-
|
|
27520
|
-
id: "email",
|
|
27521
|
-
type: "email",
|
|
27522
|
-
label: "Email",
|
|
27523
|
-
required: true,
|
|
27524
|
-
placeholder: "your@email.com"
|
|
27525
|
-
},
|
|
27997
|
+
];
|
|
27998
|
+
case "emailNameCompany": return [
|
|
27999
|
+
emailField,
|
|
27526
28000
|
{
|
|
27527
28001
|
id: "name",
|
|
27528
28002
|
type: "text",
|
|
27529
28003
|
label: "Name",
|
|
27530
|
-
required:
|
|
28004
|
+
required: fields.name === "required",
|
|
27531
28005
|
placeholder: "Your name"
|
|
27532
28006
|
},
|
|
27533
28007
|
{
|
|
27534
28008
|
id: "company",
|
|
27535
28009
|
type: "text",
|
|
27536
28010
|
label: "Company",
|
|
27537
|
-
required:
|
|
28011
|
+
required: fields.company === "required",
|
|
27538
28012
|
placeholder: "Company name"
|
|
27539
28013
|
}
|
|
27540
|
-
]
|
|
27541
|
-
default:
|
|
28014
|
+
];
|
|
28015
|
+
default: return assertNever$6(fields);
|
|
27542
28016
|
}
|
|
27543
28017
|
}
|
|
27544
28018
|
function withOptionalPhone(fields, includePhone) {
|
|
@@ -27606,6 +28080,7 @@ const mailingListSignupBlockSourceRefSchema = z.object({
|
|
|
27606
28080
|
});
|
|
27607
28081
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
27608
28082
|
const newsletterSourceCommonSchema = z.object({
|
|
28083
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
27609
28084
|
siteId: z.string().optional(),
|
|
27610
28085
|
apiBaseUrl: z.string().optional(),
|
|
27611
28086
|
mailingList: mailingListContextSchema.optional(),
|
|
@@ -27638,6 +28113,7 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
|
27638
28113
|
newsletterSourceCommonSchema.extend({ source: z.literal("preview") })
|
|
27639
28114
|
]);
|
|
27640
28115
|
const newsletterDisplaySchema = z.object({
|
|
28116
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
27641
28117
|
kind: z.literal("newsletter-form"),
|
|
27642
28118
|
availability: z.enum(["ready", "unavailable"]),
|
|
27643
28119
|
className: z.string().nullable(),
|
|
@@ -27705,13 +28181,14 @@ function buildNewsletterDisplay(source) {
|
|
|
27705
28181
|
const choices = resolveRuntimeChoices(assessment);
|
|
27706
28182
|
return {
|
|
27707
28183
|
kind: "newsletter-form",
|
|
28184
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
27708
28185
|
availability: assessment.tag === "available" ? "ready" : "unavailable",
|
|
27709
28186
|
className: source.className ?? null,
|
|
27710
28187
|
buttonLabel: form.buttonLabel,
|
|
27711
28188
|
successMessage: form.successMessage,
|
|
27712
28189
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
27713
28190
|
privacyNote: form.privacyNote,
|
|
27714
|
-
fields: getGlobalFormFields(form),
|
|
28191
|
+
fields: getGlobalFormFields(form, source),
|
|
27715
28192
|
choices
|
|
27716
28193
|
};
|
|
27717
28194
|
}
|
|
@@ -28715,4 +29192,4 @@ function defineIslandPropsDecoder(kind) {
|
|
|
28715
29192
|
};
|
|
28716
29193
|
}
|
|
28717
29194
|
//#endregion
|
|
28718
|
-
export { formatRegistrationSchedule as $, resolveRuntimeEventDestination as $n,
|
|
29195
|
+
export { formatRegistrationSchedule as $, resolveRuntimeEventDestination as $n, resolveTokenOrCssColorValue as $r, placesLeftLabel as $t, getEventSelectionMode as A, publicEventPricingType as Ai, eventDateOptions as An, selectedBookingCollectionOptionKind as Ar, buildBookingPaymentSelectionViewModel as At, getDeclinedPass as B, getLocalDateKey as Bn, err as Br, resolveRouteRequiresPayment as Bt, offeringNounForEvent as C, toBookingTimeZone as Ci, normalizeCsvString as Cn, isBookingServiceSlidingAmountInRange as Cr, resolveRegistrationTicketContinuation as Ct, bookingEntry as D, publicEventPricingCurrency as Di, formatEventPriceAmount as Dn, resolveBookingPaymentStep as Dr, normalizeEventRegistrationMaxTickets as Dt, bookingCardEntry as E, isPublicEventPricingOptionDisplayable as Ei, formatEventPrice as En, resolveAppointmentCheckoutVerificationState as Er, isEventRegistrationAvailable as Et, registrationStepLabel as F, formatEventNextDateFact as Fn, isBookingRequirementConsentFieldId as Fr, OFFLINE_BOOKING_PAYMENT_INSTRUCTIONS as Ft, shouldPromptForLogin as G, buildCalendarViewport as Gn, themeButtonSizeClassName as Gr, formatCentsAsCurrencyInput as Gt, registrationFlowReducer as H, MONTH_NAMES as Hn, okWith as Hr, beginWaitlistInvitation as Ht, registrationStepLabelContext as I, formatEventTimeRange as In, RichTextDocSchema as Ir, findPreSelectedEvent as It, findSelectedTicketType as J, getOrderedDayNames as Jn, backgroundColorStyle as Jr, getSlidingScaleForEvent as Jt, ENTITLEMENT_SINGLE_TICKET_TOOLTIP as K, formatDateKey as Kn, themeButtonVariantClassNames as Kr, getEligibilityFlowFlags as Kt, areEventRegistrationPaymentSelectionsEqual as L, formatTime$1 as Ln, isRecord$4 as Lr, resolveDiscountContext as Lt, registrationPaymentRoute as M, assertNever$6 as Mi, formatDate$1 as Mn, projectSelectedAppointmentConsentIntoForm as Mr, paymentChoiceDetails as Mt, registrationPresentation as N, formatEventCompactDateRail as Nn, resolveSelectedAppointmentConsent as Nr, paymentChoicePrice as Nt, bookingEntryProgress as O, publicEventPricingDisplay as Oi, formatEventPriceDisplay as On, resolveBookingSiteId as Or, resolveEventRegistrationSubmitPlan as Ot, registrationRoute as P, formatEventDateParts as Pn, BOOKING_FORM_DATA_RESERVED_KEYS as Pr, formatPrice as Pt, formatPassCreditUsageLabel as Q, shiftCalendarAnchorDate as Qn, resolveOnColorForThemeToken as Qr, validateFormData as Qt, createInitialRegistrationFlowState as R, groupEventsByDate as Rn, assertNever$1 as Rr, resolveEventRequiresPayment as Rt, toWholeSeriesRegistrationEvents as S, resolveBookingTimeZoneId as Si, normalizeCsvIds as Sn, getShopSuccessCopy as Sr, resolveRegistrationAvailabilityBlocker as St, bookingBarPlacement as T, formatBookingPriceDisplay as Ti, buildEventListWeek as Tn, prepareBookingSubmission as Tr, visitorHoldsOwnPlace as Tt, buildEventRegistrationPaymentOptionsViewModel as U, addDays as Un, reportWorkflowError as Ur, createRegistrationDraftData as Ut, isRegistrationLocked as V, getLocalMinuteOfDay as Vn, ok as Vr, toRegistrationRequestSubject as Vt, decideEventRegistrationPayment as W, addMonths as Wn, reportWorkflowSuccess as Wr, invitationSubmission as Wt, formatDate as X, isSameCalendarDay as Xn, textColorStyle as Xr, parseCurrencyInputToCents as Xt, formatBookingWhen as Y, getWeekCalendarDays as Yn, mergeStyles as Yr, getSlidingScaleSelectionMessage as Yt, formatEventDateTime as Z, isToday as Zn, isCssColorLiteral as Zr, shouldLoadRegistrationOptions as Zt, buildEventRegistrationDisplayFromScopedEvents as _, formatBookingInstant as _i, resolveCalendarReadProfile as _n, formatBookingSubmissionPreparationError as _r, placeCountCeiling as _t, buildProductDetailDisplay as a, eventRegistrationErrors as ai, isSemanticSpacing as an, getEventAvailabilityStatus as ar, occurrenceTitleOverride as at, getRegistrationStartAt as b, getLocalScheduleDate as bi, buildEventRuntimeFilters as bn, getBookingSuccessCopy as br, resolveGuestNextStepCheck as bt, EMPTY_COMMERCE_CART_STATE as c, isExplicitRectCrop as ci, eventListingBlockRuntime as cn, selectEventCapacitySource as cr, canRequestTicketOption as ct, deriveCommerceCheckoutState as d, CANCELLED_SESSION_STATUS as di, calendarPageResponseError as dn, listItemPresentation as dr, getTicketSelectionTotal as dt, relativeLuminance as ei, shownVenue as en, canJoinEventWaitlist as er, formatTime as et, parseStoredCommerceCartState as f, orderedLiveRunSessions as fi, calendarQueryKey as fn, listLookControl as fr, getTicketTypeLineMax as ft, newsletterBlockSubmissionMessage as g, addLocalScheduleDays as gi, planCalendarMonthRanges as gn, formatBookingCentsAsCurrencyInput as gr, fullyBookedLabel as gt, NEWSLETTER_SIGNUPS_PAUSED_MESSAGE as h, resolveBookingSignupOffer as hi, calendarWindowPageSchema as hn, deriveBookingFormViewState as hr, setTicketLineQuantity as ht, buildProductCardDisplay as i, checkBrowserStripeKey as ii, SEMANTIC_SPACING_VALUES as in, getEventAvailability as ir, getVisibleTicketTypes as it, panelShouldOpen as j, formatCurrencyAmount as ji, eventLocalDateKey as jn, toSelectedCollectionOptionKind as jr, buildReviewedBookingPaymentViewModel as jt, bookingPanelHeading as k, publicEventPricingStrategy as ki, eventDateLocale as kn, resolveDefaultBookingServiceId as kr, calculateEventRegistrationPreviewTotal as kt, buildPassCartItem as l, parseAspectRatioValue as li, calendarMonthDate as ln, selectMostOpenCapacitySource as lr, getSingleSelectedPricingOptionId as lt, reduceCommerceCart as m, parseMailingListVisitorSelection as mi, calendarWindowMonths as mn, logger as mr, normalizeTicketSelectionLines as mt, getShopDisplayForItems as n, normalizeCardRole as ni, staticHeaderChromeRuntime as nn, formatEventRemainingPlaces as nr, getPortalSubjectEmail as nt, formatCommercePrice as o, parseEventRegistrationErrorReason as oi, resolveSpacing as on, getRemainingPlaces as or, transformRegistrationOptionsResponse as ot, productItemKey as p, resolveWholeSeriesBookingPhase as pi, calendarWindowBounds as pn, listLookSlot as pr, hasValidPricingOptionSelection as pt, areEntitlementsDisabledForTicketCount as q, getDayOfWeek as qn, boxBackgroundSchema as qr, getRegistrationOccurrenceId as qt, buildCartDisplay as r, clsx as ri, resolveEventRegistrationScopedEvents as rn, formatTotalCapacity as rr, getTicketTypeAvailabilityLabel as rt, formatInterval as s, confirmationPaymentSchema as si, asPartialObject as sn, isEventFull as sr, withOccurrenceTitle as st, defineIslandPropsDecoder as t, hexToRgb as ti, buildEventCalendarListingRender as tn, canJoinEventWaitlistOnAnyMode as tr, getImplicitSingleTicketType as tt, buildProductCartItem as u, resolveMediaTransformForAspect as ui, calendarMonthKey as un, groupPublicEventsByRun as ur, getTicketLineQuantity as ut, displayButtonText as v, formatLocalScheduleDate as vi, createHostedBlockApiConfig as vn, getBookingRedirectStateFromLocation as vr, planRegistrationDetailsCheck as vt, DEFAULT_BOOKING_BUTTON_TEXT as w, toScheduledBookingDateTime as wi, normalizeOptionalId as wn, parseBookingCurrencyInputToCents as wr, settledRemainingPlaces as wt, toRegistrationEvents as x, parseBookingLocalDate as xi, getEventRuntimeFiltersKey as xn, getRegistrationSuccessCopy as xr, resolveRegistrationAdmission as xt, findBookedEvent as y, getBookingLocalDateKey as yi, getBlockApiReadStage as yn, getBookingServiceSlidingScale as yr, planRegistrationDetailsContinuation as yt, decideEventChoice as z, resolveEventTimeZone as zn, clearWorkflowFeedback as zr, resolveRegistrationTarget as zt };
|