@riverbankcms/sdk 0.135.1 → 0.137.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/CHANGELOG.md +114 -0
- package/README.md +4 -8
- package/dist/{PreviewEditorSidebar-D4p_5TdY.mjs → PreviewEditorSidebar-Bn6cONPa.mjs} +8 -8
- package/dist/{PreviewEditorUI-D0cRoTX1.mjs → PreviewEditorUI-LAwXZPSx.mjs} +3 -3
- package/dist/{PreviewQueryProvider-DcgaESkm.mjs → PreviewQueryProvider-ztQUdsNo.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BKLtM3Nz.mjs → SdkPreviewModeRuntime-BbbGsI_v.mjs} +621 -238
- package/dist/{SiteChromeCustomizeContext-61X2m7QV.mjs → SiteChromeCustomizeContext-BbkNSt5a.mjs} +5041 -2407
- package/dist/_dts/ai/src/contracts/proposals.d.ts +18 -850
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +412 -2316
- package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
- package/dist/_dts/api/src/accessAdmin.d.ts +1 -9
- package/dist/_dts/api/src/accountApi.d.ts +49 -2
- package/dist/_dts/api/src/contentRuntime.d.ts +7 -4
- package/dist/_dts/api/src/domainConnection.d.ts +41 -0
- package/dist/_dts/api/src/endpoints.d.ts +201 -181
- package/dist/_dts/api/src/index.d.ts +5 -3
- package/dist/_dts/api/src/media.d.ts +19 -2
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +26 -0
- package/dist/_dts/api/src/sdkBlockContentAdmission.d.ts +5 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -15
- package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
- package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +61 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +21 -436
- package/dist/_dts/api/src/siteInfrastructure.d.ts +17 -23
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +7 -21
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +27 -3
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +2 -3
- package/dist/_dts/block-form/src/utils/slug.d.ts +6 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +13 -7
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -0
- package/dist/_dts/blocks/src/definitions.d.ts +14 -0
- package/dist/_dts/blocks/src/index.d.ts +4 -3
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +49 -0
- package/dist/_dts/blocks/src/pageRendererBlockSupport.d.ts +75 -0
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +2 -0
- package/dist/_dts/blocks/src/server.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +78 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +2 -18
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +103 -16
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +19 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +52 -0
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +47 -21
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +38 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +8 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +40 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +43 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarNavigationChevron.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModalContext.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +31 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +4 -3
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -1
- package/dist/_dts/calendar/src/grid.d.ts +24 -66
- package/dist/_dts/calendar/src/index.d.ts +2 -2
- package/dist/_dts/calendar/src/timetable.d.ts +5 -9
- package/dist/_dts/commerce/src/purchase/allocation.d.ts +11 -0
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +3 -0
- package/dist/_dts/commerce/src/purchase/settlement.d.ts +33 -0
- package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +8 -0
- package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -0
- package/dist/_dts/core/src/slug.d.ts +20 -5
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +8 -40
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
- package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +1 -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 +3 -2
- package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
- package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +6 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -2
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +10 -6
- package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +0 -1
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +17 -0
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +9 -3
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +7 -4
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
- package/dist/_dts/theme-core/src/data.d.ts +12 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +25 -2
- package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -6
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -810
- package/dist/_dts/theme-core/src/schema.d.ts +460 -1285
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +223 -1
- package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
- package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
- package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -38
- package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +10 -0
- package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +8 -5
- package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
- package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +25 -2
- package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +465 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +168 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
- package/dist/client/{BookingConsentAgreement-Bz9znbpn.mjs → BookingConsentAgreement--_fUCZe-.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-35Ru8yB9.mjs → DiscountCodeDisclosure-BMipSoDJ.mjs} +1 -1
- package/dist/client/{EventCombined.client-BKB0ZxRR.mjs → EventCombined.client-CwJOxn7A.mjs} +274 -278
- package/dist/client/{EventListing.client-Dx8I21ok.mjs → EventListing.client-eVwiylPW.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CEWx-Bhe.mjs → LeafletStaticMap-IKenna5u.mjs} +1 -1
- package/dist/client/{accordion-KIDsKTwS.mjs → accordion-MGAO3PuE.mjs} +1 -1
- package/dist/client/{bookingForm-D96Rmp-5.mjs → bookingForm-CudlQPUu.mjs} +5 -5
- package/dist/client/bookings.mjs +476 -98
- package/dist/client/capacity-BW00PO7s.mjs +271 -0
- package/dist/client/{carousel-YwUgyL66.mjs → carousel-BrbGJ2Jl.mjs} +1 -1
- package/dist/client/{cart-BbwuNrUT.mjs → cart-Bq5eU0xZ.mjs} +3 -3
- package/dist/client/{checkout-hp1ucmEY.mjs → checkout-BAFVRdrK.mjs} +3 -3
- package/dist/client/client.mjs +4641 -2721
- package/dist/client/{context-DljQn8L5.mjs → context-DCkiHVdD.mjs} +20 -5
- package/dist/client/dates-2RPXHQy4.mjs +264 -0
- package/dist/client/{eventCalendar-DU4iNLpo.mjs → eventCalendar-B0O-hPF7.mjs} +261 -126
- package/dist/client/{eventCombined-CZuupW8m.mjs → eventCombined-DCkDaoDI.mjs} +3 -3
- package/dist/client/{eventDetails-DPQWwCIi.mjs → eventDetails-D8GG2dnD.mjs} +7 -4
- package/dist/client/{eventListing-C7oMidwS.mjs → eventListing-3ssV_bxz.mjs} +3 -3
- package/dist/client/{eventRegistration-zEiunlUs.mjs → eventRegistration-bPQo3kVw.mjs} +610 -313
- package/dist/client/{form-D2KIyCVJ.mjs → form-qMv8RDkk.mjs} +2 -2
- package/dist/client/{headerSection-CK5uChUK.mjs → headerSection-CH0Sc5hX.mjs} +2 -2
- package/dist/client/hooks.mjs +2514 -308
- package/dist/client/{locationMap-DLQNH1ln.mjs → locationMap-0_xlBnNI.mjs} +2 -2
- package/dist/client/{newsletterForm-ZuhIG7fZ.mjs → newsletterForm-NUW7m9RI.mjs} +2 -2
- package/dist/client/{productDetail-7hIcGeae.mjs → productDetail-FBEOM7jW.mjs} +3 -3
- package/dist/client/{productList-T4Cii1ot.mjs → productList-R0OSGhnn.mjs} +3 -3
- package/dist/client/{propsDecoder-mB0aC_Fi.mjs → propsDecoder-pYvx_Srl.mjs} +179 -401
- package/dist/client/rendering/client.mjs +3496 -2223
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +4400 -2510
- package/dist/client/{scrollToBlock-Du5mHgvL.mjs → scrollToBlock-ByQv96M2.mjs} +1 -1
- package/dist/client/{shop-B5zAcKZn.mjs → shop-RUG9DmRE.mjs} +6 -6
- package/dist/client/{shop-commerce-BKBZB6l5.mjs → shop-commerce-B76Jz23B.mjs} +5 -5
- package/dist/client/{shop-commerce-store-Cq4qlNtQ.mjs → shop-commerce-store-QuQNdDsD.mjs} +1 -1
- package/dist/client/{shopShared-DYGzEs9D.mjs → shopShared-vXU1omwJ.mjs} +3 -3
- package/dist/client/{useEventFilters-Bphkda8m.mjs → useEventFilters-ByuU6HLA.mjs} +33 -18
- package/dist/preview-next/before-render.mjs +86 -51
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +86 -51
- package/dist/preview-next/middleware.mjs +86 -51
- package/dist/{previewAuthStore-C7ksxt5b.mjs → previewAuthStore-L_cKW8Sb.mjs} +86 -51
- package/dist/{sdk-runtime-BbIC8G4J.mjs → sdk-runtime-sUMr5d70.mjs} +2 -2
- package/dist/{separator-CadhAtI7.mjs → separator-BIHkie5i.mjs} +1 -1
- package/dist/server/components.mjs +4397 -2960
- package/dist/server/config-validation.mjs +354 -145
- package/dist/server/config.mjs +354 -145
- package/dist/server/data.mjs +354 -144
- package/dist/server/index.mjs +201 -55
- package/dist/server/manifest.mjs +0 -1
- package/dist/server/next.mjs +4046 -2611
- package/dist/server/page-converter.mjs +225 -122
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4105 -2636
- package/dist/server/rendering.mjs +4522 -3087
- package/dist/server/routing.mjs +3289 -1637
- package/dist/server/server.mjs +23175 -21079
- package/dist/server/theme-bridge.mjs +708 -272
- package/dist/server/theme.mjs +29 -25
- package/dist/styles/index.css +624 -181
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
- /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
|
@@ -4568,6 +4568,11 @@ const gradientConfigSchema = z.object({
|
|
|
4568
4568
|
position: z.string().optional(),
|
|
4569
4569
|
stops: z.array(gradientStopSchema).min(2)
|
|
4570
4570
|
});
|
|
4571
|
+
const gradientsSchema = z.object({
|
|
4572
|
+
button: z.string().min(1).nullable().optional(),
|
|
4573
|
+
hero: z.string().min(1).nullable().optional(),
|
|
4574
|
+
background: z.string().min(1).nullable().optional()
|
|
4575
|
+
});
|
|
4571
4576
|
//#endregion
|
|
4572
4577
|
//#region ../theme-core/src/interactive/baseSchema.ts
|
|
4573
4578
|
/**
|
|
@@ -5265,12 +5270,8 @@ const legacyHeaderVariantValues = Object.keys(legacyHeaderVariants);
|
|
|
5265
5270
|
* `@riverbankcms/api` is `z.input<typeof themeSchema>`, so a widened input here
|
|
5266
5271
|
* would leak straight into a public type.
|
|
5267
5272
|
*
|
|
5268
|
-
*
|
|
5269
|
-
*
|
|
5270
|
-
* `apps/dashboard/src/server/services/sites/runtimeSiteResponse.ts` returns the
|
|
5271
|
-
* raw database JSON asserted as `Theme` with no parse, so a theme still
|
|
5272
|
-
* carrying a legacy spelling reaches the theme editor un-aliased. That gap
|
|
5273
|
-
* predates this alias and is harmless while persisted usage is zero.
|
|
5273
|
+
* Persisted runtime themes are admitted through `parseThemeForPersistence`
|
|
5274
|
+
* before reaching consumers, so legacy spellings normalize at that boundary.
|
|
5274
5275
|
*/
|
|
5275
5276
|
const headerVariantWithLegacyAliasSchema = z.enum([...headerVariantValues, ...legacyHeaderVariantValues]).transform((value) => value in legacyHeaderVariants ? legacyHeaderVariants[value] : value);
|
|
5276
5277
|
const BREAKPOINT_LG = 1024;
|
|
@@ -5322,11 +5323,30 @@ const headerContainerSchema = z.object({
|
|
|
5322
5323
|
tint: z.string().nullable().optional(),
|
|
5323
5324
|
opacity: z.number().min(0).max(1).default(.12)
|
|
5324
5325
|
}).optional();
|
|
5325
|
-
|
|
5326
|
+
//#endregion
|
|
5327
|
+
//#region ../theme-core/src/header/interactionPalette.ts
|
|
5328
|
+
/**
|
|
5329
|
+
* The palettes that fill the nav link with a colour on hover and focus. Each
|
|
5330
|
+
* one names a background/foreground token pair.
|
|
5331
|
+
*/
|
|
5332
|
+
const headerInteractionPillPaletteValues = [
|
|
5326
5333
|
"primary",
|
|
5327
5334
|
"secondary",
|
|
5328
5335
|
"accent"
|
|
5329
|
-
]
|
|
5336
|
+
];
|
|
5337
|
+
/**
|
|
5338
|
+
* "No pill": the nav link keeps whatever hover treatment its recipe compiled,
|
|
5339
|
+
* and the palette step writes nothing at all (#1318 Phase 4c decision 2).
|
|
5340
|
+
*
|
|
5341
|
+
* It exists because "a colour change on hover, no filled background" was not
|
|
5342
|
+
* expressible in the vocabulary, and it is what
|
|
5343
|
+
* `anna-raven-therapy-and-yoga` and `kirtan-lucy` have rendered since before
|
|
5344
|
+
* the palette existed. Without it those two rows can only be classified as a
|
|
5345
|
+
* conscious visual change.
|
|
5346
|
+
*/
|
|
5347
|
+
const headerInteractionQuietPalette = "quiet";
|
|
5348
|
+
const headerInteractionPaletteValues = [...headerInteractionPillPaletteValues, headerInteractionQuietPalette];
|
|
5349
|
+
const headerInteractionPaletteSchema = z.enum(headerInteractionPaletteValues);
|
|
5330
5350
|
//#endregion
|
|
5331
5351
|
//#region ../theme-core/src/boxBackgroundSchema.ts
|
|
5332
5352
|
const boxBackgroundOverlaySchema = z.preprocess(normalizeAuthoringOpacity, z.discriminatedUnion("type", [
|
|
@@ -5708,11 +5728,12 @@ const inputStyle = z.object({
|
|
|
5708
5728
|
]),
|
|
5709
5729
|
label: z.enum(["inside", "above"])
|
|
5710
5730
|
});
|
|
5711
|
-
const
|
|
5731
|
+
const headerPositioningValues = [
|
|
5712
5732
|
"static",
|
|
5713
5733
|
"sticky",
|
|
5714
5734
|
"fixed"
|
|
5715
|
-
]
|
|
5735
|
+
];
|
|
5736
|
+
const headerPositioning = z.enum(headerPositioningValues);
|
|
5716
5737
|
const headerNavStyle = z.enum([
|
|
5717
5738
|
"minimal",
|
|
5718
5739
|
"underline",
|
|
@@ -5729,7 +5750,6 @@ const navFontWeight = z.enum([
|
|
|
5729
5750
|
"bold"
|
|
5730
5751
|
]);
|
|
5731
5752
|
const headerMaxWidth = z.enum(["container", "full"]);
|
|
5732
|
-
const headerBarFrame = z.enum(["full-bleed", "inset-shell"]);
|
|
5733
5753
|
const headerBorderSchema = componentBorderSchema.extend({ position: z.enum([
|
|
5734
5754
|
"bottom",
|
|
5735
5755
|
"top",
|
|
@@ -5758,12 +5778,6 @@ const headerLogoTextSchema = z.object({
|
|
|
5758
5778
|
]).optional(),
|
|
5759
5779
|
hideOnShrink: z.boolean().optional()
|
|
5760
5780
|
}).optional();
|
|
5761
|
-
const navEffectsSchema = z.object({
|
|
5762
|
-
underlineGradient: z.boolean().default(false),
|
|
5763
|
-
glow: z.boolean().default(false),
|
|
5764
|
-
glowColor: z.string().optional(),
|
|
5765
|
-
neumorphic: z.boolean().default(false)
|
|
5766
|
-
}).optional();
|
|
5767
5781
|
const dropdownStyleSchema = z.object({
|
|
5768
5782
|
background: themeColorTokenSchema.default("surface"),
|
|
5769
5783
|
textColor: themeColorTokenSchema.default("text"),
|
|
@@ -5854,10 +5868,8 @@ const headerSchema = z.object({
|
|
|
5854
5868
|
variant: headerVariantWithLegacyAliasSchema,
|
|
5855
5869
|
positioning: headerPositioning,
|
|
5856
5870
|
shrinkOnScroll: z.boolean(),
|
|
5857
|
-
maxWidth: headerMaxWidth,
|
|
5858
|
-
barFrame: headerBarFrame.optional(),
|
|
5871
|
+
maxWidth: headerMaxWidth.default("container"),
|
|
5859
5872
|
scrollTreatment: headerScrollTreatmentSchema,
|
|
5860
|
-
logoOverride: mediaSchema.nullable().optional(),
|
|
5861
5873
|
background: headerBackgroundSchema.default({
|
|
5862
5874
|
type: "color",
|
|
5863
5875
|
color: "surface"
|
|
@@ -5869,13 +5881,11 @@ const headerSchema = z.object({
|
|
|
5869
5881
|
navFontRole: z.enum(["body", "heading"]).optional(),
|
|
5870
5882
|
navTextSize: navLinkStyleSchema.shape.textSize,
|
|
5871
5883
|
interactionPalette: headerInteractionPaletteSchema.optional(),
|
|
5872
|
-
navPlacement: z.enum(["end", "center"]).optional(),
|
|
5873
5884
|
container: headerContainerSchema,
|
|
5874
5885
|
border: headerBorderSchema,
|
|
5875
5886
|
shadow: componentShadowSchema.optional(),
|
|
5876
5887
|
logo: logoStyleSchema,
|
|
5877
5888
|
logoText: headerLogoTextSchema,
|
|
5878
|
-
navEffects: navEffectsSchema,
|
|
5879
5889
|
navContainer: navContainerSchema,
|
|
5880
5890
|
navLinkStyle: navLinkStyleSchema.optional(),
|
|
5881
5891
|
ctaGap: headerCtaGapSchema.optional(),
|
|
@@ -6057,11 +6067,6 @@ const bodyTextSchema = z.object({ intro: z.object({
|
|
|
6057
6067
|
paragraphSize: bodyTextIntroTypographySizeSchema.optional(),
|
|
6058
6068
|
headingSize: bodyTextIntroTypographySizeSchema.optional()
|
|
6059
6069
|
}).optional() }).optional();
|
|
6060
|
-
const gradientsSchema = z.object({
|
|
6061
|
-
button: z.string().min(1).nullable().optional(),
|
|
6062
|
-
hero: z.string().min(1).nullable().optional(),
|
|
6063
|
-
background: z.string().min(1).nullable().optional()
|
|
6064
|
-
});
|
|
6065
6070
|
/**
|
|
6066
6071
|
* Testimonial quote-mark treatment, owned by the site style (analogous to the
|
|
6067
6072
|
* accordion icon). `style` is the coarse selector; the optional fields fine-tune
|
|
@@ -6942,6 +6947,12 @@ function cardRoleFromLegacyVocabulary(value) {
|
|
|
6942
6947
|
*/
|
|
6943
6948
|
const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
|
|
6944
6949
|
//#endregion
|
|
6950
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
6951
|
+
const defaultHeaderBrandPreferences = {
|
|
6952
|
+
brandDisplay: "auto",
|
|
6953
|
+
logoSize: "auto"
|
|
6954
|
+
};
|
|
6955
|
+
//#endregion
|
|
6945
6956
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
6946
6957
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
6947
6958
|
return {
|
|
@@ -7841,27 +7852,6 @@ function asHeaderStyleId(value) {
|
|
|
7841
7852
|
return value;
|
|
7842
7853
|
}
|
|
7843
7854
|
//#endregion
|
|
7844
|
-
//#region ../theme-core/src/site-styles/headerInteractionPalette.ts
|
|
7845
|
-
const clearSplitInteractionPalette = defineLookOptionGroup({
|
|
7846
|
-
id: "interaction-palette",
|
|
7847
|
-
label: "Hover colour",
|
|
7848
|
-
defaultOptionId: "accent",
|
|
7849
|
-
options: [
|
|
7850
|
-
{
|
|
7851
|
-
id: "accent",
|
|
7852
|
-
label: "Accent"
|
|
7853
|
-
},
|
|
7854
|
-
{
|
|
7855
|
-
id: "primary",
|
|
7856
|
-
label: "Primary"
|
|
7857
|
-
},
|
|
7858
|
-
{
|
|
7859
|
-
id: "secondary",
|
|
7860
|
-
label: "Secondary"
|
|
7861
|
-
}
|
|
7862
|
-
]
|
|
7863
|
-
});
|
|
7864
|
-
//#endregion
|
|
7865
7855
|
//#region ../theme-core/src/site-styles/headerLayoutCatalog.ts
|
|
7866
7856
|
const titleOnlyLogoAccommodation = {
|
|
7867
7857
|
pattern: "title-only",
|
|
@@ -7981,6 +7971,12 @@ const overlayLogoAccommodations = [
|
|
|
7981
7971
|
inlineMarkWithTitleLogoAccommodation,
|
|
7982
7972
|
unbackedOverlayLogoAccommodation
|
|
7983
7973
|
];
|
|
7974
|
+
const allCuratedLogoAccommodations = [
|
|
7975
|
+
...inlineClassicLogoAccommodations,
|
|
7976
|
+
...centeredLogoAccommodations,
|
|
7977
|
+
...overlayLogoAccommodations
|
|
7978
|
+
];
|
|
7979
|
+
new Set(allCuratedLogoAccommodations.filter((option) => option.providesBacking === true).map((option) => option.pattern));
|
|
7984
7980
|
const headerLayoutCatalog = defineExactCatalog()([
|
|
7985
7981
|
{
|
|
7986
7982
|
id: asHeaderLayoutId("classic"),
|
|
@@ -8021,43 +8017,37 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
8021
8017
|
id: asHeaderStyleId("minimal"),
|
|
8022
8018
|
label: "Minimal",
|
|
8023
8019
|
description: "Quiet surface with simple color-change navigation.",
|
|
8024
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8025
|
-
navTypography: "plain"
|
|
8020
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8026
8021
|
},
|
|
8027
8022
|
{
|
|
8028
8023
|
id: asHeaderStyleId("fine-line"),
|
|
8029
8024
|
label: "Seamless",
|
|
8030
8025
|
description: "Borderless surface with underline hover for a quieter page transition.",
|
|
8031
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8032
|
-
navTypography: "plain"
|
|
8026
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8033
8027
|
},
|
|
8034
8028
|
{
|
|
8035
8029
|
id: asHeaderStyleId("soft-bar"),
|
|
8036
8030
|
label: "Soft Bar",
|
|
8037
8031
|
description: "Soft tinted surface with gentle pill hover states.",
|
|
8038
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8039
|
-
navTypography: "plain"
|
|
8032
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8040
8033
|
},
|
|
8041
8034
|
{
|
|
8042
8035
|
id: asHeaderStyleId("pill-nav"),
|
|
8043
8036
|
label: "Pill Nav",
|
|
8044
8037
|
description: "A calm pill navigation rail over a neutral header.",
|
|
8045
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8046
|
-
navTypography: "plain"
|
|
8038
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8047
8039
|
},
|
|
8048
8040
|
{
|
|
8049
8041
|
id: asHeaderStyleId("brand-bar"),
|
|
8050
8042
|
label: "Brand Bar",
|
|
8051
8043
|
description: "Solid brand surface with high-contrast navigation.",
|
|
8052
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8053
|
-
navTypography: "brand-caps"
|
|
8044
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8054
8045
|
},
|
|
8055
8046
|
{
|
|
8056
8047
|
id: asHeaderStyleId("brand-underline"),
|
|
8057
8048
|
label: "Brand Underline",
|
|
8058
8049
|
description: "Brand surface with underline-grow navigation.",
|
|
8059
|
-
supportedLayoutIds: supportedLayouts(["classic"])
|
|
8060
|
-
navTypography: "brand-caps"
|
|
8050
|
+
supportedLayoutIds: supportedLayouts(["classic"])
|
|
8061
8051
|
},
|
|
8062
8052
|
{
|
|
8063
8053
|
id: asHeaderStyleId("brand-pill"),
|
|
@@ -8067,73 +8057,82 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
8067
8057
|
"classic",
|
|
8068
8058
|
"centered",
|
|
8069
8059
|
"floating"
|
|
8070
|
-
])
|
|
8071
|
-
navTypography: "brand-caps"
|
|
8060
|
+
])
|
|
8072
8061
|
},
|
|
8073
8062
|
{
|
|
8074
8063
|
id: asHeaderStyleId("brand-capsule"),
|
|
8075
8064
|
label: "Brand Capsule",
|
|
8076
8065
|
description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
|
|
8077
|
-
supportedLayoutIds: supportedLayouts(["classic"])
|
|
8078
|
-
navTypography: "quiet-caps"
|
|
8066
|
+
supportedLayoutIds: supportedLayouts(["classic"])
|
|
8079
8067
|
},
|
|
8080
8068
|
{
|
|
8081
8069
|
id: asHeaderStyleId("serif-line"),
|
|
8082
8070
|
label: "Serif Line",
|
|
8083
8071
|
description: "Typographic logo treatment with understated underline navigation.",
|
|
8084
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8085
|
-
navTypography: "heading"
|
|
8072
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8086
8073
|
},
|
|
8087
8074
|
{
|
|
8088
8075
|
id: asHeaderStyleId("flat-tabs"),
|
|
8089
8076
|
label: "Flat Tabs",
|
|
8090
8077
|
description: "Flat block hover and active states with a Swiss utility feel.",
|
|
8091
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8092
|
-
navTypography: "quiet-caps"
|
|
8078
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"])
|
|
8093
8079
|
},
|
|
8094
8080
|
{
|
|
8095
8081
|
id: asHeaderStyleId("glass"),
|
|
8096
8082
|
label: "Glass",
|
|
8097
8083
|
description: "Translucent chrome with frosted navigation backing.",
|
|
8098
|
-
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8099
|
-
navTypography: "plain"
|
|
8084
|
+
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8100
8085
|
},
|
|
8101
8086
|
{
|
|
8102
8087
|
id: asHeaderStyleId("minimal-surface"),
|
|
8103
8088
|
label: "Clear Split",
|
|
8104
8089
|
description: "Floating logo with transparent navigation and no shared shell.",
|
|
8105
|
-
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8106
|
-
navTypography: "plain",
|
|
8107
|
-
openingForegroundTarget: "all",
|
|
8108
|
-
scrollTreatment: "contrast-glass",
|
|
8109
|
-
interactionPalette: clearSplitInteractionPalette
|
|
8090
|
+
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8110
8091
|
},
|
|
8111
8092
|
{
|
|
8112
8093
|
id: asHeaderStyleId("soft-shell"),
|
|
8113
8094
|
label: "Soft Shell",
|
|
8114
8095
|
description: "Floating rounded shell with soft pill navigation states.",
|
|
8115
|
-
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8116
|
-
navTypography: "plain"
|
|
8096
|
+
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8117
8097
|
},
|
|
8118
8098
|
{
|
|
8119
8099
|
id: asHeaderStyleId("split-glass"),
|
|
8120
8100
|
label: "Split Glass",
|
|
8121
8101
|
description: "Logo floats independently while the navigation sits in a glass rail.",
|
|
8122
|
-
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8123
|
-
navTypography: "quiet-caps",
|
|
8124
|
-
openingForegroundTarget: "brand-only"
|
|
8102
|
+
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8125
8103
|
},
|
|
8126
8104
|
{
|
|
8127
8105
|
id: asHeaderStyleId("split-pill"),
|
|
8128
8106
|
label: "Split Pill",
|
|
8129
8107
|
description: "Logo floats independently with a soft pill-backed navigation rail.",
|
|
8130
|
-
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8131
|
-
navTypography: "heading",
|
|
8132
|
-
openingForegroundTarget: "brand-only"
|
|
8108
|
+
supportedLayoutIds: supportedLayouts(["floating"])
|
|
8133
8109
|
}
|
|
8134
8110
|
]);
|
|
8135
8111
|
new Map(headerLayoutCatalog.map((layout) => [layout.id, layout]));
|
|
8136
8112
|
new Map(headerStyleCatalog.map((style) => [style.id, style]));
|
|
8113
|
+
defineLookOptionGroup({
|
|
8114
|
+
id: "interaction-palette",
|
|
8115
|
+
label: "Hover colour",
|
|
8116
|
+
defaultOptionId: "accent",
|
|
8117
|
+
options: [
|
|
8118
|
+
{
|
|
8119
|
+
id: "accent",
|
|
8120
|
+
label: "Accent"
|
|
8121
|
+
},
|
|
8122
|
+
{
|
|
8123
|
+
id: "primary",
|
|
8124
|
+
label: "Primary"
|
|
8125
|
+
},
|
|
8126
|
+
{
|
|
8127
|
+
id: "secondary",
|
|
8128
|
+
label: "Secondary"
|
|
8129
|
+
},
|
|
8130
|
+
{
|
|
8131
|
+
id: headerInteractionQuietPalette,
|
|
8132
|
+
label: "Text only"
|
|
8133
|
+
}
|
|
8134
|
+
]
|
|
8135
|
+
});
|
|
8137
8136
|
//#endregion
|
|
8138
8137
|
//#region ../theme-core/src/site-styles/footerLooks.ts
|
|
8139
8138
|
function asFooterLookId(value) {
|
|
@@ -10552,6 +10551,67 @@ const blockDesignFallback = {
|
|
|
10552
10551
|
};
|
|
10553
10552
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.transitionAfter, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
10554
10553
|
//#endregion
|
|
10554
|
+
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
10555
|
+
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
10556
|
+
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
10557
|
+
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
10558
|
+
function parseSiteChromeBackgroundColorToken(value) {
|
|
10559
|
+
const token = parseBackgroundAppearanceColorToken(value);
|
|
10560
|
+
return token ? token : null;
|
|
10561
|
+
}
|
|
10562
|
+
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
10563
|
+
return tokenNames.flatMap((name) => {
|
|
10564
|
+
const token = parseSiteChromeBackgroundColorToken(name);
|
|
10565
|
+
return token ? [token] : [];
|
|
10566
|
+
});
|
|
10567
|
+
}
|
|
10568
|
+
//#endregion
|
|
10569
|
+
//#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
|
|
10570
|
+
const headerNavTypographyPreferenceValues = [
|
|
10571
|
+
"inherit",
|
|
10572
|
+
"body",
|
|
10573
|
+
"heading"
|
|
10574
|
+
];
|
|
10575
|
+
const headerNavFontSizePreferenceValues = [
|
|
10576
|
+
"inherit",
|
|
10577
|
+
"sm",
|
|
10578
|
+
"base",
|
|
10579
|
+
"lg",
|
|
10580
|
+
"xl"
|
|
10581
|
+
];
|
|
10582
|
+
const defaultHeaderNavPreferences = {
|
|
10583
|
+
typography: "inherit",
|
|
10584
|
+
fontSize: "inherit",
|
|
10585
|
+
interactionPalette: "recommended"
|
|
10586
|
+
};
|
|
10587
|
+
//#endregion
|
|
10588
|
+
//#region ../theme-core/src/site-styles/headerBrandPresentation.ts
|
|
10589
|
+
/**
|
|
10590
|
+
* Whether the header wears a brand presentation at all (#1318 Phase 4c).
|
|
10591
|
+
*
|
|
10592
|
+
* `applyHeaderBrandPresentation` is unconditional today: given a logo context
|
|
10593
|
+
* it always writes a `logo` object carrying a resolved display, size and
|
|
10594
|
+
* accommodation. That makes "this header has no brand presentation block" —
|
|
10595
|
+
* which is what several live sites persist, including one whose site *does*
|
|
10596
|
+
* have a logo asset — a state the preference record could not express, so a
|
|
10597
|
+
* recompile would silently give the site a logo treatment it has never
|
|
10598
|
+
* rendered.
|
|
10599
|
+
*
|
|
10600
|
+
* This is the third field in this phase with that shape, after the interaction
|
|
10601
|
+
* palette and the nav text size: the persisted bytes carry intent the reader
|
|
10602
|
+
* cannot say, so the recompile "corrects" it. The fix is the same one — widen
|
|
10603
|
+
* the closed vocabulary with a named member and derive it by baseline
|
|
10604
|
+
* comparison — and it is a *widening*, not a restyle: `'recommended'` is the
|
|
10605
|
+
* default and reproduces today's behaviour exactly, so no row whose bytes carry
|
|
10606
|
+
* a presentation compiles differently for `'plain'` existing.
|
|
10607
|
+
*
|
|
10608
|
+
* `'plain'` is deliberately not "preserve whatever bytes are there". It is a
|
|
10609
|
+
* constructive instruction — *write no presentation block* — so Phase 4e's
|
|
10610
|
+
* compiler, which builds the header from nothing, can produce it.
|
|
10611
|
+
*/
|
|
10612
|
+
const headerBrandPresentationValues = ["recommended", "plain"];
|
|
10613
|
+
defaultHeaderBrandPreferences.brandDisplay, defaultHeaderBrandPreferences.logoSize, defaultHeaderNavPreferences.typography, defaultHeaderNavPreferences.fontSize, defaultHeaderNavPreferences.interactionPalette;
|
|
10614
|
+
//#endregion
|
|
10555
10615
|
//#region ../theme-core/src/site-styles/generatedSchemas.ts
|
|
10556
10616
|
function uniqueNonEmpty(values) {
|
|
10557
10617
|
const uniqueValues = [...new Set(values)];
|
|
@@ -10620,6 +10680,56 @@ z.object({
|
|
|
10620
10680
|
blocks: z.array(generatedPageDesignBlockIntentSchema)
|
|
10621
10681
|
}).strict();
|
|
10622
10682
|
//#endregion
|
|
10683
|
+
//#region ../theme-core/src/site-styles/headerPreferencesPersistence.ts
|
|
10684
|
+
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
10685
|
+
const token = parseSiteChromeBackgroundColorToken(value);
|
|
10686
|
+
if (token === null) {
|
|
10687
|
+
ctx.addIssue({
|
|
10688
|
+
code: "custom",
|
|
10689
|
+
message: "Unknown site chrome background colour token"
|
|
10690
|
+
});
|
|
10691
|
+
return z.NEVER;
|
|
10692
|
+
}
|
|
10693
|
+
return token;
|
|
10694
|
+
});
|
|
10695
|
+
const backgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
10696
|
+
kind: z.literal("color"),
|
|
10697
|
+
token: backgroundColorTokenSchema
|
|
10698
|
+
}).strict()]);
|
|
10699
|
+
const logoTextIntentSchema = z.object({
|
|
10700
|
+
mobileMaxWidth: z.enum([
|
|
10701
|
+
"xs",
|
|
10702
|
+
"sm",
|
|
10703
|
+
"md"
|
|
10704
|
+
]).optional(),
|
|
10705
|
+
mobileWrapLines: z.union([z.literal(1), z.literal(2)]).optional(),
|
|
10706
|
+
hideOnShrink: z.boolean().optional()
|
|
10707
|
+
}).strict();
|
|
10708
|
+
const structureSchema = z.object({
|
|
10709
|
+
positioning: z.union([z.literal("inherit"), z.enum(headerPositioningValues)]),
|
|
10710
|
+
shrinkOnScroll: z.union([z.literal("inherit"), z.boolean()]),
|
|
10711
|
+
logoText: z.union([
|
|
10712
|
+
z.literal("inherit"),
|
|
10713
|
+
z.literal("none"),
|
|
10714
|
+
logoTextIntentSchema
|
|
10715
|
+
])
|
|
10716
|
+
}).strict();
|
|
10717
|
+
const headerPreferencesShape = {
|
|
10718
|
+
brandPresentation: z.enum(headerBrandPresentationValues),
|
|
10719
|
+
brandDisplay: z.enum(brandDisplayModeValues),
|
|
10720
|
+
logoSize: z.enum(logoSizePolicyValues),
|
|
10721
|
+
navFontRole: z.enum(headerNavTypographyPreferenceValues),
|
|
10722
|
+
navTextSize: z.enum(headerNavFontSizePreferenceValues),
|
|
10723
|
+
interactionPalette: z.union([z.literal("recommended"), z.enum(headerInteractionPaletteValues)]),
|
|
10724
|
+
background: backgroundOverrideSchema,
|
|
10725
|
+
structure: structureSchema
|
|
10726
|
+
};
|
|
10727
|
+
z.object(headerPreferencesShape).strict();
|
|
10728
|
+
z.object(headerPreferencesShape).omit({
|
|
10729
|
+
brandPresentation: true,
|
|
10730
|
+
structure: true
|
|
10731
|
+
}).strict();
|
|
10732
|
+
//#endregion
|
|
10623
10733
|
//#region ../theme-core/src/site-styles/pageDesignAuthority.ts
|
|
10624
10734
|
const nonEmptyStringSchema = z.string().min(1);
|
|
10625
10735
|
const blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
|
|
@@ -10721,21 +10831,6 @@ function collectBlockSequenceIssues(snapshots) {
|
|
|
10721
10831
|
return issues;
|
|
10722
10832
|
}
|
|
10723
10833
|
//#endregion
|
|
10724
|
-
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
10725
|
-
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
10726
|
-
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
10727
|
-
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
10728
|
-
function parseSiteChromeBackgroundColorToken(value) {
|
|
10729
|
-
const token = parseBackgroundAppearanceColorToken(value);
|
|
10730
|
-
return token ? token : null;
|
|
10731
|
-
}
|
|
10732
|
-
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
10733
|
-
return tokenNames.flatMap((name) => {
|
|
10734
|
-
const token = parseSiteChromeBackgroundColorToken(name);
|
|
10735
|
-
return token ? [token] : [];
|
|
10736
|
-
});
|
|
10737
|
-
}
|
|
10738
|
-
//#endregion
|
|
10739
10834
|
//#region ../theme-core/src/site-styles/tokenRecipes.ts
|
|
10740
10835
|
const themeTokenRecipeOptions = {
|
|
10741
10836
|
palette: [
|
|
@@ -11114,6 +11209,9 @@ function getZonedDateTimeParts(date, timeZone) {
|
|
|
11114
11209
|
function formatDateKey(date) {
|
|
11115
11210
|
return `${String(date.year).padStart(4, "0")}-${String(date.month).padStart(2, "0")}-${String(date.day).padStart(2, "0")}`;
|
|
11116
11211
|
}
|
|
11212
|
+
function toBookingTimeZone(timeZone) {
|
|
11213
|
+
return getSafeTimeZone(timeZone);
|
|
11214
|
+
}
|
|
11117
11215
|
function parseUtcIsoDateTimeString(value) {
|
|
11118
11216
|
const normalized = value.trim();
|
|
11119
11217
|
const hasUtcSuffix = normalized.endsWith("Z");
|
|
@@ -11424,7 +11522,6 @@ const ALLOWED_TRANSFORM_IDS = [
|
|
|
11424
11522
|
"layout.footerRootClass",
|
|
11425
11523
|
"layout.headerRootStyle",
|
|
11426
11524
|
"layout.headerSectionBackground",
|
|
11427
|
-
"layout.classicNavMode",
|
|
11428
11525
|
"layout.footerRootStyle",
|
|
11429
11526
|
"ui.headerNavLinkClass",
|
|
11430
11527
|
"ui.headingClassFromAlignment",
|
|
@@ -18850,18 +18947,7 @@ const classicLayout = inline({
|
|
|
18850
18947
|
logoRow,
|
|
18851
18948
|
createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
|
|
18852
18949
|
headerCta
|
|
18853
|
-
],
|
|
18854
|
-
const classicCenteredNavLayout = inline({
|
|
18855
|
-
className: bindProp("$root.theme.header.maxWidth", {
|
|
18856
|
-
transforms: pipe(tx("layout.maxWidthClass", { base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6` })),
|
|
18857
|
-
fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
|
|
18858
|
-
}),
|
|
18859
|
-
align: "center"
|
|
18860
|
-
}, [
|
|
18861
|
-
logoRow,
|
|
18862
|
-
createNavRow(`rb-flex-1 rb-justify-center ${desktopOnlyDisplay("flex")} rb-gap-6`, "center"),
|
|
18863
|
-
headerCta
|
|
18864
|
-
], whenTransformed("$root.theme.header", "layout.classicNavMode", "centered"));
|
|
18950
|
+
], when("$root.theme.header.variant", { equals: "classic" }));
|
|
18865
18951
|
const centeredLayout = stack({
|
|
18866
18952
|
gap: "md",
|
|
18867
18953
|
align: "center",
|
|
@@ -18926,7 +19012,6 @@ const siteHeaderBlockDefinition = { manifest: createBlockManifest({
|
|
|
18926
19012
|
}, [
|
|
18927
19013
|
mobileHeaderBar,
|
|
18928
19014
|
classicLayout,
|
|
18929
|
-
classicCenteredNavLayout,
|
|
18930
19015
|
centeredLayout,
|
|
18931
19016
|
floatingLayout,
|
|
18932
19017
|
mobileOverlay
|
|
@@ -21722,7 +21807,7 @@ const eventDisplayFields = [
|
|
|
21722
21807
|
{
|
|
21723
21808
|
id: "showCapacity",
|
|
21724
21809
|
type: "boolean",
|
|
21725
|
-
label: "Show available
|
|
21810
|
+
label: "Show available places",
|
|
21726
21811
|
description: "Display remaining capacity",
|
|
21727
21812
|
required: false,
|
|
21728
21813
|
defaultValue: true,
|
|
@@ -22021,7 +22106,7 @@ function planEventRegistrationScope(input) {
|
|
|
22021
22106
|
};
|
|
22022
22107
|
}
|
|
22023
22108
|
//#endregion
|
|
22024
|
-
//#region ../blocks/src/system/runtime/nodes/events/
|
|
22109
|
+
//#region ../blocks/src/system/runtime/nodes/events/domain/destination.ts
|
|
22025
22110
|
function isRecord$5(value) {
|
|
22026
22111
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
22027
22112
|
}
|
|
@@ -22039,7 +22124,7 @@ function resolveRuntimeEventDestination(event) {
|
|
|
22039
22124
|
};
|
|
22040
22125
|
}
|
|
22041
22126
|
//#endregion
|
|
22042
|
-
//#region ../blocks/src/system/runtime/nodes/events/
|
|
22127
|
+
//#region ../blocks/src/system/runtime/nodes/events/domain/pricing.ts
|
|
22043
22128
|
const DEFAULT_EVENT_CURRENCY = "USD";
|
|
22044
22129
|
function resolveRuntimeEventPricing(event) {
|
|
22045
22130
|
if (isPublicEventPricing(event.pricing)) return event.pricing;
|
|
@@ -22719,7 +22804,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
22719
22804
|
{
|
|
22720
22805
|
id: "showCapacity",
|
|
22721
22806
|
type: "boolean",
|
|
22722
|
-
label: "Show available
|
|
22807
|
+
label: "Show available places",
|
|
22723
22808
|
description: "Display remaining capacity",
|
|
22724
22809
|
required: false,
|
|
22725
22810
|
defaultValue: true,
|
|
@@ -23280,7 +23365,11 @@ const eventSpotlightBlockDefinition = {
|
|
|
23280
23365
|
} }
|
|
23281
23366
|
};
|
|
23282
23367
|
//#endregion
|
|
23283
|
-
//#region ../blocks/src/system/runtime/nodes/events/shared/
|
|
23368
|
+
//#region ../blocks/src/system/runtime/nodes/events/shared/listingLayout.ts
|
|
23369
|
+
/**
|
|
23370
|
+
* Layout classes for event listing containers and cards. Presentation
|
|
23371
|
+
* plumbing rather than event domain logic, so it lives beside the components.
|
|
23372
|
+
*/
|
|
23284
23373
|
/**
|
|
23285
23374
|
* Column class mappings for grid layouts, derived from the canonical
|
|
23286
23375
|
* responsive column ladder (see gridUserColumnLadder).
|
|
@@ -23401,7 +23490,8 @@ const eventCollectionSourceSchemaShape = {
|
|
|
23401
23490
|
buttonVariant: eventButtonVariantSchema.optional(),
|
|
23402
23491
|
buttonText: z.string().optional(),
|
|
23403
23492
|
emptyMessage: z.string().optional(),
|
|
23404
|
-
className: z.string().optional()
|
|
23493
|
+
className: z.string().optional(),
|
|
23494
|
+
bookingTimeZone: z.string().optional()
|
|
23405
23495
|
};
|
|
23406
23496
|
const eventCollectionDisplaySchemaShape = {
|
|
23407
23497
|
events: z.array(publicEventSchema),
|
|
@@ -23436,7 +23526,15 @@ const eventCollectionHydrationSchema = z.object({
|
|
|
23436
23526
|
prefetchedEvents: z.boolean(),
|
|
23437
23527
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
23438
23528
|
filterEventPresets: z.string().nullable(),
|
|
23439
|
-
scheduleScope: eventScheduleScopeSchema$1
|
|
23529
|
+
scheduleScope: eventScheduleScopeSchema$1,
|
|
23530
|
+
calendarContext: z.object({
|
|
23531
|
+
timeZone: z.string().transform(toBookingTimeZone),
|
|
23532
|
+
initialToday: z.object({
|
|
23533
|
+
year: z.number().int(),
|
|
23534
|
+
month: z.number().int().min(1).max(12),
|
|
23535
|
+
day: z.number().int().min(1).max(31)
|
|
23536
|
+
})
|
|
23537
|
+
})
|
|
23440
23538
|
});
|
|
23441
23539
|
function buildEventCollectionDisplay(source) {
|
|
23442
23540
|
return {
|
|
@@ -23481,14 +23579,19 @@ function buildEventCollectionPresentationDisplay(source) {
|
|
|
23481
23579
|
emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
|
|
23482
23580
|
};
|
|
23483
23581
|
}
|
|
23484
|
-
function buildEventCollectionHydration(source) {
|
|
23582
|
+
function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date()) {
|
|
23583
|
+
const timeZone = toBookingTimeZone(source.bookingTimeZone);
|
|
23485
23584
|
return {
|
|
23486
23585
|
siteId: source.siteId,
|
|
23487
23586
|
stage: source.stage,
|
|
23488
23587
|
prefetchedEvents: source.events != null,
|
|
23489
23588
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
23490
23589
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
23491
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope)
|
|
23590
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
23591
|
+
calendarContext: {
|
|
23592
|
+
timeZone,
|
|
23593
|
+
initialToday: getLocalScheduleDate(now, timeZone)
|
|
23594
|
+
}
|
|
23492
23595
|
};
|
|
23493
23596
|
}
|
|
23494
23597
|
//#endregion
|
|
@@ -24598,7 +24701,7 @@ const eventCalendarAdditionalFields = [
|
|
|
24598
24701
|
{
|
|
24599
24702
|
id: "showCapacity",
|
|
24600
24703
|
type: "boolean",
|
|
24601
|
-
label: "Show available
|
|
24704
|
+
label: "Show available places",
|
|
24602
24705
|
description: "Display remaining capacity on event cards and timetable cells",
|
|
24603
24706
|
required: false,
|
|
24604
24707
|
defaultValue: true,
|
package/dist/server/prebuild.mjs
CHANGED