@riverbankcms/sdk 0.121.0 → 0.124.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/README.md +14 -9
- package/dist/{PreviewEditorSidebar-lZ600tJx.mjs → PreviewEditorSidebar-DBmAJJkQ.mjs} +24 -41
- package/dist/{PreviewEditorUI-CTBWzLSb.mjs → PreviewEditorUI-CfGaz9cY.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BHT8CJvZ.mjs → PreviewQueryProvider-BH-3-jSj.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DhPU58s7.mjs → SdkPreviewModeRuntime-BW9Z8j8T.mjs} +1020 -1234
- package/dist/{SiteChromeCustomizeContext-BkNvpzNZ.mjs → SiteChromeCustomizeContext-2z8moxYf.mjs} +1902 -1961
- package/dist/_dts/ai/src/contracts/proposals.d.ts +1236 -4152
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +435 -0
- package/dist/_dts/api/src/bookingClosures.d.ts +3 -3
- package/dist/_dts/api/src/bookingConfig.d.ts +100 -75
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +26 -35
- package/dist/_dts/api/src/bookingRecords.d.ts +4 -15
- package/dist/_dts/api/src/bookingVerticalCatalog.d.ts +746 -0
- package/dist/_dts/api/src/bookingVerticalPreset.d.ts +38 -0
- package/dist/_dts/api/src/bookingVerticals.d.ts +11 -652
- package/dist/_dts/api/src/bookings.d.ts +11 -9
- package/dist/_dts/api/src/cache-tags.d.ts +2 -2
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +10 -10
- package/dist/_dts/api/src/common/envelope.d.ts +2 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +0 -17
- package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +99 -0
- package/dist/_dts/api/src/courses.d.ts +22 -33
- package/dist/_dts/api/src/defineEndpointDefinitions.d.ts +14 -0
- package/dist/_dts/api/src/demoMutationPolicies.d.ts +4 -0
- package/dist/_dts/api/src/endpoints.d.ts +3740 -3733
- package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
- package/dist/_dts/api/src/event-presentation.d.ts +4 -9
- package/dist/_dts/api/src/index.d.ts +10 -12
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +376 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +2 -2
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +272 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +274 -0
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +31 -0
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +152 -0
- package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +95 -0
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +154 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -962
- package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +52 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +0 -51
- package/dist/_dts/api/src/sdkEntryReadEndpoints.d.ts +23 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -38
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -7
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -15
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +0 -16
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -222
- package/dist/_dts/blocks/src/portal/types.d.ts +3 -3
- package/dist/_dts/blocks/src/subroutes/fold.d.ts +1 -14
- package/dist/_dts/blocks/src/subroutes/index.d.ts +1 -1
- package/dist/_dts/blocks/src/subroutes/kinds.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -11
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +3 -4
- package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +401 -12
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +9 -10
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -13
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +1 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +19 -18
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +9 -11
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +10 -10
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -10
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +162 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +59 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +134 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/discounts.d.ts +85 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +241 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/forms.d.ts +53 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +32 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +220 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +176 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +12 -1121
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +19 -583
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -276
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +1 -12
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +2 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +1 -18
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/runs.d.ts +0 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +1 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/courseRegistrationViewState.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/pricing.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +0 -25
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseEligibility.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCoursePaymentVerification.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationActions.d.ts +35 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationPortal.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationSelection.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +80 -55
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseWaitlistSelection.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +4 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +0 -38
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +1 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +0 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +0 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +0 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +0 -11
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -21
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +24 -433
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +52 -266
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventFilters.d.ts +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1573 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +1 -3
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -3
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +0 -5
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +0 -5
- package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -3
- package/dist/_dts/core/src/editor-state.d.ts +1 -13
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1587 -115
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +6 -6
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +6 -1
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +27 -4
- package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -2
- package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +4 -6
- package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +0 -1
- package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/content/collectionWriters.d.ts +23 -0
- package/dist/_dts/sdk/src/cli/content/metadataAfterPush.d.ts +25 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +0 -52
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +3 -81
- package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +6 -9
- package/dist/_dts/sdk/src/client/contentReadOperations.d.ts +40 -0
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -3
- package/dist/_dts/sdk/src/client/management/types.d.ts +3 -91
- package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +72 -0
- package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +10 -75
- package/dist/_dts/sdk/src/client/types.d.ts +7 -33
- package/dist/_dts/sdk/src/components.d.ts +1 -1
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -6
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/page.d.ts +0 -8
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -34
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +4 -3
- package/dist/_dts/sdk/src/next/catch-all-utils.d.ts +0 -11
- package/dist/_dts/sdk/src/next/catch-all.d.ts +1 -76
- package/dist/_dts/sdk/src/next/types.d.ts +0 -19
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -207
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +0 -7
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +81 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -51
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -1
- package/dist/_dts/sdk/src/routing/entrySubroutes.d.ts +6 -6
- package/dist/_dts/sdk/src/routing/index.d.ts +0 -2
- package/dist/_dts/sdk/src/routing/resolveOccurrence.d.ts +3 -3
- package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +10 -39
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/adapter.d.ts +1 -1
- package/dist/_dts/site-commands/src/appointmentCommandSchemas.d.ts +100 -0
- package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
- package/dist/_dts/site-commands/src/commandContract.d.ts +1242 -0
- package/dist/_dts/site-commands/src/commandDomain.d.ts +20 -0
- package/dist/_dts/site-commands/src/commandIdentifiers.d.ts +7 -0
- package/dist/_dts/site-commands/src/commandValidation.d.ts +10 -0
- package/dist/_dts/site-commands/src/commands.d.ts +729 -2659
- package/dist/_dts/site-commands/src/domain.d.ts +1 -1
- package/dist/_dts/site-commands/src/eventCommandContent.d.ts +11 -0
- package/dist/_dts/site-commands/src/exposure.d.ts +1 -1
- package/dist/_dts/site-commands/src/index.d.ts +6 -0
- package/dist/_dts/site-commands/src/metadata.d.ts +1 -27
- package/dist/_dts/site-commands/src/planner.d.ts +1 -1
- package/dist/_dts/site-commands/src/refContributions.d.ts +1 -1
- package/dist/_dts/site-commands/src/refs.d.ts +1 -4
- package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +378 -0
- package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +46 -0
- package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +2 -2
- package/dist/_dts/site-commands/src/venueCommandMapping.d.ts +21 -0
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +58 -0
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +47 -24
- package/dist/cli/index.mjs +7392 -10989
- package/dist/cli/init-docs/content/cli-reference.md +5 -21
- package/dist/cli/init-docs/content/content-management.md +4 -5
- package/dist/client/{DiscountCodeDisclosure-DIWj-P9v.mjs → DiscountCodeDisclosure-DxvjKvck.mjs} +2 -2
- package/dist/client/{EventCombined.client-De8YWBSr.mjs → EventCombined.client-BydMGc4c.mjs} +5 -16
- package/dist/client/{EventListing.client-seHTjimY.mjs → EventListing.client-vpzhhysN.mjs} +3 -10
- package/dist/client/{LeafletStaticMap-BmQxFcJW.mjs → LeafletStaticMap-CB07rpf8.mjs} +1 -1
- package/dist/client/{MagicLinkForm-OoJAIUIj.mjs → MagicLinkForm-BzyRJ8VF.mjs} +2 -2
- package/dist/client/{StepIndicator-CiZ8kdPk.mjs → StepIndicator-CTcGf8Be.mjs} +2 -2
- package/dist/client/{accordion-6lnN__XJ.mjs → accordion-B-DUDLRD.mjs} +1 -1
- package/dist/client/{bookingForm-5uyqhONU.mjs → bookingForm-DSbClLcZ.mjs} +6 -6
- package/dist/client/bookings.mjs +753 -818
- package/dist/client/{carousel-Dtnifil_.mjs → carousel-B6Ccdx8M.mjs} +1 -1
- package/dist/client/{cart-5Tc5S7NV.mjs → cart-BZh8G8wM.mjs} +3 -3
- package/dist/client/{checkout-CYKKN5Hr.mjs → checkout-o6zaC-kM.mjs} +3 -3
- package/dist/client/client.mjs +7398 -7687
- package/dist/client/{context-BGZNlGXB.mjs → context-CJz1Vlsz.mjs} +40 -43
- package/dist/client/{courseRegistration-CxCBybB4.mjs → courseRegistration-Cf11pNDs.mjs} +606 -621
- package/dist/client/{eventCalendar-Xj2jZS9X.mjs → eventCalendar-BeXrdsSE.mjs} +5 -13
- package/dist/client/{eventCombined-CgcMoOgM.mjs → eventCombined-DA76PZgG.mjs} +3 -3
- package/dist/client/{eventDetails-CEAH8Edc.mjs → eventDetails-BLxg0rok.mjs} +140 -116
- package/dist/client/{eventListing-qyPVQ0wP.mjs → eventListing-tO9LheBX.mjs} +3 -3
- package/dist/client/{eventRegistration-DDu79CtL.mjs → eventRegistration-Cnene9D9.mjs} +165 -68
- package/dist/client/{form-Bc7JKI7I.mjs → form-DZf72CHB.mjs} +2 -2
- package/dist/client/{headerSection-vTku_LEl.mjs → headerSection-Hioja5Cr.mjs} +2 -2
- package/dist/client/hooks.mjs +3452 -2365
- package/dist/client/{locationMap-Bg7X4Jna.mjs → locationMap-DwhUXEix.mjs} +2 -2
- package/dist/client/{newsletterForm-lpylVdp5.mjs → newsletterForm-C350bEQf.mjs} +2 -2
- package/dist/client/{pricing-DE8fjJiT.mjs → pricing-BYWN_ATa.mjs} +3 -19
- package/dist/client/{productDetail-D7Bo2RMH.mjs → productDetail-CCqCyXgU.mjs} +3 -3
- package/dist/client/{productList-VjnZqiqN.mjs → productList-BAiNJrOU.mjs} +3 -3
- package/dist/client/{propsDecoder-DreFXjNP.mjs → propsDecoder-DeunRj6m.mjs} +210 -378
- package/dist/client/rendering/client.mjs +2541 -2813
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +5622 -4734
- package/dist/client/{shop-IRsHHbf7.mjs → shop-DUmCdBtw.mjs} +6 -6
- package/dist/client/{shop-commerce-gnI8PieZ.mjs → shop-commerce-CY27mEUr.mjs} +5 -5
- package/dist/client/{shop-commerce-store-BTbrhObn.mjs → shop-commerce-store-ChXPbWfa.mjs} +1 -1
- package/dist/client/{shopShared-D6KS2_qk.mjs → shopShared-q0kin1cv.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-DCccGCxV.mjs → useDiscountCodeUi-I-92-x2V.mjs} +2 -2
- package/dist/client/{useEventFilters-eGs3rPZQ.mjs → useEventFilters-DlcVluZh.mjs} +59 -124
- package/dist/client/{usePolling-CvSU2sur.mjs → usePolling-Bz7GFV_a.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +1115 -1043
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +1116 -1044
- package/dist/{previewAuthStore-31xH13Jc.mjs → previewAuthStore-CJX21dGi.mjs} +1119 -1044
- package/dist/{sdk-runtime-BE_vcGua.mjs → sdk-runtime-OnPM8Z69.mjs} +2 -2
- package/dist/{separator-CiffYtk3.mjs → separator-CPtfzHqA.mjs} +1 -1
- package/dist/server/components.mjs +11120 -12601
- package/dist/server/config-validation.mjs +3454 -2356
- package/dist/server/config.mjs +3454 -2356
- package/dist/server/data.mjs +3452 -2367
- package/dist/server/index.mjs +1499 -1488
- package/dist/server/next.mjs +18291 -21201
- package/dist/server/page-converter.mjs +1898 -2040
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +19666 -21153
- package/dist/server/rendering.mjs +17117 -18651
- package/dist/server/routing.mjs +3614 -2509
- package/dist/server/server.mjs +3298 -3478
- package/package.json +1 -1
- package/dist/_dts/api/src/previewContentContract.d.ts +0 -4
- package/dist/_dts/sdk/src/cli/commands/course.d.ts +0 -6
- package/dist/_dts/sdk/src/cli/commands/push/scopes/courses.d.ts +0 -4
- package/dist/_dts/sdk/src/client/management/courses.d.ts +0 -10
- package/dist/_dts/sdk/src/routing/resolveEntrySubroute.d.ts +0 -36
|
@@ -7648,1785 +7648,1785 @@ function uniqueStrings(values) {
|
|
|
7648
7648
|
return Array.from(new Set(values));
|
|
7649
7649
|
}
|
|
7650
7650
|
//#endregion
|
|
7651
|
-
//#region ../theme-core/src/site-styles/
|
|
7652
|
-
function
|
|
7653
|
-
return
|
|
7654
|
-
family,
|
|
7655
|
-
size,
|
|
7656
|
-
heightCss: heightExpression.includes(" ") ? `calc(${heightExpression})` : heightExpression,
|
|
7657
|
-
reserveCss: `calc((${heightExpression}) / 2)`
|
|
7658
|
-
};
|
|
7659
|
-
}
|
|
7660
|
-
boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"), boundaryRuntimeMetrics("gradient", "spacious", "10rem"), boundaryRuntimeMetrics("gradient", "expansive", "14rem"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("wave", "large", "7rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("angle", "large", "7rem + 2px");
|
|
7661
|
-
const noneBoundaryOption = {
|
|
7662
|
-
id: asBoundaryOptionId("break:none"),
|
|
7663
|
-
label: "None",
|
|
7664
|
-
transitionAfter: "none",
|
|
7665
|
-
treatment: { kind: "none" }
|
|
7666
|
-
};
|
|
7667
|
-
const softBoundaryOption = {
|
|
7668
|
-
id: asBoundaryOptionId("break:soft"),
|
|
7669
|
-
label: "Soft",
|
|
7670
|
-
transitionAfter: "soft-fade-short",
|
|
7671
|
-
treatment: {
|
|
7672
|
-
kind: "soft-fade",
|
|
7673
|
-
height: "medium",
|
|
7674
|
-
curve: "soft"
|
|
7675
|
-
}
|
|
7676
|
-
};
|
|
7677
|
-
const spaciousBoundaryOption = {
|
|
7678
|
-
id: asBoundaryOptionId("break:spacious"),
|
|
7679
|
-
label: "Spacious",
|
|
7680
|
-
transitionAfter: "soft-fade-long",
|
|
7681
|
-
treatment: {
|
|
7682
|
-
kind: "soft-fade",
|
|
7683
|
-
height: "large",
|
|
7684
|
-
curve: "spacious"
|
|
7685
|
-
}
|
|
7686
|
-
};
|
|
7687
|
-
asBoundaryOptionId("break:expansive");
|
|
7688
|
-
asBoundaryOptionId("break:wave");
|
|
7689
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
7690
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
7691
|
-
asBoundaryOptionId("break:wave-bold");
|
|
7692
|
-
asBoundaryOptionId("break:wave-drift");
|
|
7693
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
7694
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
7695
|
-
asBoundaryOptionId("break:angle-steep");
|
|
7696
|
-
asBoundaryOptionId("break:unknown");
|
|
7697
|
-
const pageDesignUserPinnedAppearanceChoiceSchema = z$1.object({
|
|
7698
|
-
kind: z$1.literal("user-pinned"),
|
|
7699
|
-
value: z$1.string().min(1).transform(asAppearancePresetId)
|
|
7700
|
-
}).strict();
|
|
7701
|
-
const pageDesignUserPinnedBoundaryChoiceSchema = z$1.object({
|
|
7702
|
-
kind: z$1.literal("user-pinned"),
|
|
7703
|
-
value: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
7704
|
-
}).strict();
|
|
7705
|
-
const pageDesignBoundaryTreatmentSchema = z$1.discriminatedUnion("kind", [
|
|
7706
|
-
z$1.object({ kind: z$1.literal("none") }).strict(),
|
|
7707
|
-
z$1.object({
|
|
7708
|
-
kind: z$1.literal("soft-fade"),
|
|
7709
|
-
height: z$1.enum([
|
|
7710
|
-
"compact",
|
|
7711
|
-
"medium",
|
|
7712
|
-
"large",
|
|
7713
|
-
"expansive"
|
|
7714
|
-
]),
|
|
7715
|
-
curve: z$1.enum([
|
|
7716
|
-
"soft",
|
|
7717
|
-
"spacious",
|
|
7718
|
-
"expansive"
|
|
7719
|
-
])
|
|
7720
|
-
}).strict(),
|
|
7721
|
-
z$1.object({
|
|
7722
|
-
kind: z$1.literal("wave-edge"),
|
|
7723
|
-
height: z$1.enum([
|
|
7724
|
-
"compact",
|
|
7725
|
-
"medium",
|
|
7726
|
-
"large"
|
|
7727
|
-
]),
|
|
7728
|
-
amplitude: z$1.enum([
|
|
7729
|
-
"subtle",
|
|
7730
|
-
"balanced",
|
|
7731
|
-
"bold"
|
|
7732
|
-
]),
|
|
7733
|
-
rhythm: z$1.enum(["single", "double"]),
|
|
7734
|
-
symmetry: z$1.enum([
|
|
7735
|
-
"symmetrical",
|
|
7736
|
-
"asymmetrical",
|
|
7737
|
-
"drift"
|
|
7738
|
-
])
|
|
7739
|
-
}).strict(),
|
|
7740
|
-
z$1.object({
|
|
7741
|
-
kind: z$1.literal("angle-edge"),
|
|
7742
|
-
height: z$1.enum([
|
|
7743
|
-
"compact",
|
|
7744
|
-
"medium",
|
|
7745
|
-
"large"
|
|
7746
|
-
]),
|
|
7747
|
-
slope: z$1.enum([
|
|
7748
|
-
"subtle",
|
|
7749
|
-
"balanced",
|
|
7750
|
-
"steep"
|
|
7751
|
-
]),
|
|
7752
|
-
direction: z$1.enum(["forward", "reverse"])
|
|
7753
|
-
}).strict(),
|
|
7754
|
-
z$1.object({
|
|
7755
|
-
kind: z$1.literal("legacy-unsupported"),
|
|
7756
|
-
boundaryOptionId: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
7757
|
-
}).strict()
|
|
7758
|
-
]);
|
|
7759
|
-
const pageDesignUserPinnedBoundaryTreatmentChoiceSchema = z$1.object({
|
|
7760
|
-
kind: z$1.literal("user-pinned"),
|
|
7761
|
-
value: pageDesignBoundaryTreatmentSchema
|
|
7762
|
-
}).strict();
|
|
7763
|
-
const pageDesignBlockLookPinSchema = z$1.object({
|
|
7764
|
-
blockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
7765
|
-
blockKind: z$1.string().min(1),
|
|
7766
|
-
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
7767
|
-
}).strict();
|
|
7768
|
-
const pageDesignBoundaryPinSchema = z$1.object({
|
|
7769
|
-
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
7770
|
-
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
7771
|
-
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
7772
|
-
choice: pageDesignUserPinnedBoundaryTreatmentChoiceSchema
|
|
7773
|
-
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
7774
|
-
const legacyPageDesignBoundaryPinSchema = z$1.object({
|
|
7775
|
-
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
7776
|
-
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
7777
|
-
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
7778
|
-
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
7779
|
-
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
7780
|
-
z$1.object({
|
|
7781
|
-
schemaVersion: z$1.literal(1),
|
|
7782
|
-
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
7783
|
-
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
7784
|
-
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
7785
|
-
boundaryPins: z$1.array(legacyPageDesignBoundaryPinSchema)
|
|
7786
|
-
}).strict().superRefine(validateUniquePageDesignPins);
|
|
7787
|
-
z$1.object({
|
|
7788
|
-
schemaVersion: z$1.literal(2),
|
|
7789
|
-
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
7790
|
-
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
7791
|
-
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
7792
|
-
boundaryPins: z$1.array(pageDesignBoundaryPinSchema)
|
|
7793
|
-
}).strict().superRefine(validateUniquePageDesignPins);
|
|
7794
|
-
function addDuplicateStringIssues(ctx, input) {
|
|
7795
|
-
const seen = /* @__PURE__ */ new Set();
|
|
7796
|
-
const duplicates = /* @__PURE__ */ new Set();
|
|
7797
|
-
for (const value of input.values) {
|
|
7798
|
-
if (seen.has(value)) duplicates.add(value);
|
|
7799
|
-
seen.add(value);
|
|
7800
|
-
}
|
|
7801
|
-
for (const duplicate of duplicates) ctx.addIssue({
|
|
7802
|
-
code: z$1.ZodIssueCode.custom,
|
|
7803
|
-
path: [...input.path],
|
|
7804
|
-
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
7805
|
-
});
|
|
7806
|
-
}
|
|
7807
|
-
function validateBoundaryPinIdMatchesBlocks(pin, ctx) {
|
|
7808
|
-
const expectedBoundaryId = makeBoundaryId(pin.previousBlockId, pin.nextBlockId);
|
|
7809
|
-
if (pin.boundaryId !== expectedBoundaryId) ctx.addIssue({
|
|
7810
|
-
code: z$1.ZodIssueCode.custom,
|
|
7811
|
-
path: ["boundaryId"],
|
|
7812
|
-
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
7813
|
-
});
|
|
7651
|
+
//#region ../theme-core/src/site-styles/headerLooks.ts
|
|
7652
|
+
function asHeaderLookId(value) {
|
|
7653
|
+
return value;
|
|
7814
7654
|
}
|
|
7815
|
-
function
|
|
7816
|
-
|
|
7817
|
-
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
7818
|
-
path: ["blockLookPins"],
|
|
7819
|
-
label: "block Look pin"
|
|
7820
|
-
});
|
|
7821
|
-
addDuplicateStringIssues(ctx, {
|
|
7822
|
-
values: intent.boundaryPins.map((pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)),
|
|
7823
|
-
path: ["boundaryPins"],
|
|
7824
|
-
label: "boundary pin"
|
|
7825
|
-
});
|
|
7655
|
+
function asHeaderLayoutId(value) {
|
|
7656
|
+
return value;
|
|
7826
7657
|
}
|
|
7827
|
-
function
|
|
7828
|
-
return
|
|
7658
|
+
function asHeaderStyleId(value) {
|
|
7659
|
+
return value;
|
|
7829
7660
|
}
|
|
7830
|
-
|
|
7831
|
-
|
|
7832
|
-
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
|
|
7837
|
-
|
|
7838
|
-
|
|
7839
|
-
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
|
|
7843
|
-
|
|
7844
|
-
|
|
7845
|
-
|
|
7846
|
-
*/
|
|
7847
|
-
const editorialDividedAccordionSystem = {
|
|
7848
|
-
background: null,
|
|
7849
|
-
spacing: "comfortable",
|
|
7850
|
-
corners: "square",
|
|
7851
|
-
border: null,
|
|
7852
|
-
shadow: null,
|
|
7853
|
-
icon: {
|
|
7854
|
-
style: "plus-minus",
|
|
7855
|
-
position: "right",
|
|
7856
|
-
size: "md",
|
|
7857
|
-
colorToken: "primary"
|
|
7858
|
-
},
|
|
7859
|
-
trigger: {
|
|
7860
|
-
textColorToken: "text",
|
|
7861
|
-
fontWeight: "regular",
|
|
7862
|
-
fontFamily: "heading",
|
|
7863
|
-
fontScale: "lg"
|
|
7864
|
-
},
|
|
7865
|
-
hover: { textColorToken: "primary" },
|
|
7866
|
-
openState: {
|
|
7867
|
-
backgroundColorToken: "surfaceAlt",
|
|
7868
|
-
triggerColorToken: "primary",
|
|
7869
|
-
accent: {
|
|
7870
|
-
edge: "left",
|
|
7871
|
-
colorToken: "primary",
|
|
7872
|
-
thickness: "medium"
|
|
7873
|
-
}
|
|
7874
|
-
},
|
|
7875
|
-
content: { textColorToken: "neutral-700" }
|
|
7661
|
+
const titleOnlyLogoAccommodation = {
|
|
7662
|
+
pattern: "title-only",
|
|
7663
|
+
supportedShapes: [
|
|
7664
|
+
"none",
|
|
7665
|
+
"horizontal",
|
|
7666
|
+
"square",
|
|
7667
|
+
"portrait",
|
|
7668
|
+
"tall"
|
|
7669
|
+
],
|
|
7670
|
+
supportedTextPresence: [
|
|
7671
|
+
"contains-text",
|
|
7672
|
+
"no-text",
|
|
7673
|
+
"unknown"
|
|
7674
|
+
],
|
|
7675
|
+
supportedDisplayModes: ["title-only"],
|
|
7676
|
+
size: "compact"
|
|
7876
7677
|
};
|
|
7877
|
-
|
|
7878
|
-
|
|
7879
|
-
|
|
7880
|
-
|
|
7881
|
-
|
|
7882
|
-
|
|
7883
|
-
|
|
7884
|
-
|
|
7885
|
-
|
|
7886
|
-
|
|
7887
|
-
|
|
7888
|
-
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
|
|
7902
|
-
|
|
7678
|
+
const inlineWordmarkLogoAccommodation = {
|
|
7679
|
+
pattern: "inline-wordmark",
|
|
7680
|
+
supportedShapes: ["horizontal"],
|
|
7681
|
+
supportedTextPresence: [
|
|
7682
|
+
"contains-text",
|
|
7683
|
+
"no-text",
|
|
7684
|
+
"unknown"
|
|
7685
|
+
],
|
|
7686
|
+
supportedDisplayModes: ["logo-only"],
|
|
7687
|
+
size: "standard",
|
|
7688
|
+
maxDensity: "detailed"
|
|
7689
|
+
};
|
|
7690
|
+
const inlineMarkWithTitleLogoAccommodation = {
|
|
7691
|
+
pattern: "inline-mark-with-title",
|
|
7692
|
+
supportedShapes: [
|
|
7693
|
+
"horizontal",
|
|
7694
|
+
"square",
|
|
7695
|
+
"portrait",
|
|
7696
|
+
"tall"
|
|
7697
|
+
],
|
|
7698
|
+
supportedTextPresence: ["no-text"],
|
|
7699
|
+
supportedDisplayModes: ["logo-plus-title"],
|
|
7700
|
+
size: "compact",
|
|
7701
|
+
maxDensity: "simple"
|
|
7702
|
+
};
|
|
7703
|
+
const logoPlateAccommodation = {
|
|
7704
|
+
pattern: "logo-plate",
|
|
7705
|
+
supportedShapes: [
|
|
7706
|
+
"square",
|
|
7707
|
+
"portrait",
|
|
7708
|
+
"tall"
|
|
7709
|
+
],
|
|
7710
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
7711
|
+
supportedDisplayModes: ["logo-only"],
|
|
7712
|
+
size: "display",
|
|
7713
|
+
providesBacking: true
|
|
7714
|
+
};
|
|
7715
|
+
const centeredBadgeAccommodation = {
|
|
7716
|
+
pattern: "centered-badge",
|
|
7717
|
+
supportedShapes: [
|
|
7718
|
+
"square",
|
|
7719
|
+
"portrait",
|
|
7720
|
+
"tall"
|
|
7721
|
+
],
|
|
7722
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
7723
|
+
supportedDisplayModes: ["logo-only"],
|
|
7724
|
+
size: "display",
|
|
7725
|
+
providesBacking: true
|
|
7726
|
+
};
|
|
7727
|
+
const popoutBadgeAccommodation = {
|
|
7728
|
+
pattern: "popout-badge",
|
|
7729
|
+
supportedShapes: [
|
|
7730
|
+
"square",
|
|
7731
|
+
"portrait",
|
|
7732
|
+
"tall"
|
|
7733
|
+
],
|
|
7734
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
7735
|
+
supportedDisplayModes: ["logo-only"],
|
|
7736
|
+
size: "display",
|
|
7737
|
+
providesBacking: true
|
|
7738
|
+
};
|
|
7739
|
+
const centeredMastheadAccommodation = {
|
|
7740
|
+
pattern: "centered-masthead",
|
|
7741
|
+
supportedShapes: [
|
|
7742
|
+
"square",
|
|
7743
|
+
"portrait",
|
|
7744
|
+
"tall"
|
|
7745
|
+
],
|
|
7746
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
7747
|
+
supportedDisplayModes: ["logo-only"],
|
|
7748
|
+
size: "display",
|
|
7749
|
+
providesBacking: true
|
|
7750
|
+
};
|
|
7751
|
+
const unbackedOverlayLogoAccommodation = {
|
|
7752
|
+
pattern: "inline-logo-only",
|
|
7753
|
+
supportedShapes: ["square"],
|
|
7754
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
7755
|
+
supportedDisplayModes: ["logo-only"],
|
|
7756
|
+
size: "compact",
|
|
7757
|
+
providesBacking: false
|
|
7903
7758
|
};
|
|
7759
|
+
const inlineClassicLogoAccommodations = [
|
|
7760
|
+
titleOnlyLogoAccommodation,
|
|
7761
|
+
inlineWordmarkLogoAccommodation,
|
|
7762
|
+
inlineMarkWithTitleLogoAccommodation,
|
|
7763
|
+
popoutBadgeAccommodation,
|
|
7764
|
+
logoPlateAccommodation
|
|
7765
|
+
];
|
|
7766
|
+
const centeredLogoAccommodations = [
|
|
7767
|
+
titleOnlyLogoAccommodation,
|
|
7768
|
+
inlineWordmarkLogoAccommodation,
|
|
7769
|
+
inlineMarkWithTitleLogoAccommodation,
|
|
7770
|
+
centeredMastheadAccommodation,
|
|
7771
|
+
centeredBadgeAccommodation
|
|
7772
|
+
];
|
|
7773
|
+
const overlayLogoAccommodations = [
|
|
7774
|
+
titleOnlyLogoAccommodation,
|
|
7775
|
+
inlineWordmarkLogoAccommodation,
|
|
7776
|
+
inlineMarkWithTitleLogoAccommodation,
|
|
7777
|
+
unbackedOverlayLogoAccommodation
|
|
7778
|
+
];
|
|
7904
7779
|
/**
|
|
7905
|
-
*
|
|
7906
|
-
*
|
|
7907
|
-
* and a tinted open state. For clean, trustworthy, appointment-led styles.
|
|
7780
|
+
* Starts every Look from the generated theme's header branch, then clears
|
|
7781
|
+
* optional nested styling fields that would otherwise leak from another Look.
|
|
7908
7782
|
*/
|
|
7909
|
-
|
|
7910
|
-
|
|
7911
|
-
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
|
|
7915
|
-
|
|
7916
|
-
|
|
7917
|
-
|
|
7918
|
-
|
|
7783
|
+
function baseHeader(theme) {
|
|
7784
|
+
const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
|
|
7785
|
+
return {
|
|
7786
|
+
...header,
|
|
7787
|
+
navContainer: {
|
|
7788
|
+
type: "none",
|
|
7789
|
+
tint: null,
|
|
7790
|
+
opacity: .15
|
|
7791
|
+
}
|
|
7792
|
+
};
|
|
7793
|
+
}
|
|
7794
|
+
const headerLayoutCatalog = defineExactCatalog()([
|
|
7795
|
+
{
|
|
7796
|
+
id: asHeaderLayoutId("classic"),
|
|
7797
|
+
label: "Classic",
|
|
7798
|
+
description: "Logo and navigation in one practical horizontal row.",
|
|
7799
|
+
structure: "inline-classic",
|
|
7800
|
+
variant: "classic",
|
|
7801
|
+
defaultPositioning: "sticky",
|
|
7802
|
+
shrinkOnScroll: false
|
|
7919
7803
|
},
|
|
7920
|
-
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7804
|
+
{
|
|
7805
|
+
id: asHeaderLayoutId("centered"),
|
|
7806
|
+
label: "Centered",
|
|
7807
|
+
description: "Logo centered above a balanced navigation row.",
|
|
7808
|
+
structure: "centered-stack",
|
|
7809
|
+
variant: "centered",
|
|
7810
|
+
defaultPositioning: "static",
|
|
7811
|
+
shrinkOnScroll: false,
|
|
7812
|
+
maxRecommendedNavItems: 5,
|
|
7813
|
+
allowedLogoShapes: [
|
|
7814
|
+
"none",
|
|
7815
|
+
"text-only",
|
|
7816
|
+
"horizontal",
|
|
7817
|
+
"square"
|
|
7818
|
+
]
|
|
7924
7819
|
},
|
|
7925
|
-
|
|
7926
|
-
|
|
7927
|
-
|
|
7928
|
-
|
|
7929
|
-
|
|
7820
|
+
{
|
|
7821
|
+
id: asHeaderLayoutId("floating"),
|
|
7822
|
+
label: "Floating",
|
|
7823
|
+
description: "Detached header chrome that sits over the opening section.",
|
|
7824
|
+
structure: "floating-shell",
|
|
7825
|
+
variant: "floating",
|
|
7826
|
+
defaultPositioning: "sticky",
|
|
7827
|
+
shrinkOnScroll: true,
|
|
7828
|
+
maxRecommendedNavItems: 5,
|
|
7829
|
+
allowedLogoShapes: [
|
|
7830
|
+
"none",
|
|
7831
|
+
"text-only",
|
|
7832
|
+
"horizontal"
|
|
7833
|
+
]
|
|
7834
|
+
}
|
|
7835
|
+
]);
|
|
7836
|
+
function supportedLayouts(ids) {
|
|
7837
|
+
return ids.map(asHeaderLayoutId);
|
|
7838
|
+
}
|
|
7839
|
+
const headerStyleCatalog = defineExactCatalog()([
|
|
7840
|
+
{
|
|
7841
|
+
id: asHeaderStyleId("minimal"),
|
|
7842
|
+
label: "Minimal",
|
|
7843
|
+
description: "Quiet surface with simple color-change navigation.",
|
|
7844
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
7845
|
+
navInteraction: "color-change",
|
|
7846
|
+
surface: "neutral",
|
|
7847
|
+
defaultDepth: "none",
|
|
7848
|
+
navTypography: "plain",
|
|
7849
|
+
moods: [
|
|
7850
|
+
"calm",
|
|
7851
|
+
"professional",
|
|
7852
|
+
"editorial"
|
|
7853
|
+
]
|
|
7930
7854
|
},
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
7855
|
+
{
|
|
7856
|
+
id: asHeaderStyleId("fine-line"),
|
|
7857
|
+
label: "Seamless",
|
|
7858
|
+
description: "Borderless surface with underline hover for a quieter page transition.",
|
|
7859
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
7860
|
+
navInteraction: "underline-grow",
|
|
7861
|
+
surface: "neutral",
|
|
7862
|
+
defaultDepth: "none",
|
|
7863
|
+
navTypography: "plain",
|
|
7864
|
+
moods: [
|
|
7865
|
+
"calm",
|
|
7866
|
+
"professional",
|
|
7867
|
+
"editorial"
|
|
7868
|
+
]
|
|
7936
7869
|
},
|
|
7937
|
-
|
|
7938
|
-
|
|
7939
|
-
|
|
7870
|
+
{
|
|
7871
|
+
id: asHeaderStyleId("soft-bar"),
|
|
7872
|
+
label: "Soft Bar",
|
|
7873
|
+
description: "Soft tinted surface with gentle pill hover states.",
|
|
7874
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
7875
|
+
navInteraction: "pill-background",
|
|
7876
|
+
surface: "soft",
|
|
7877
|
+
defaultDepth: "line",
|
|
7878
|
+
navTypography: "plain",
|
|
7879
|
+
moods: ["calm", "professional"]
|
|
7940
7880
|
},
|
|
7941
|
-
|
|
7942
|
-
|
|
7943
|
-
|
|
7881
|
+
{
|
|
7882
|
+
id: asHeaderStyleId("pill-nav"),
|
|
7883
|
+
label: "Pill Nav",
|
|
7884
|
+
description: "A calm pill navigation rail over a neutral header.",
|
|
7885
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
7886
|
+
navInteraction: "pill-background",
|
|
7887
|
+
surface: "soft",
|
|
7888
|
+
defaultDepth: "none",
|
|
7889
|
+
navTypography: "plain",
|
|
7890
|
+
moods: ["calm"]
|
|
7944
7891
|
},
|
|
7945
|
-
|
|
7946
|
-
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
border: {
|
|
7960
|
-
widthClass: "border-2",
|
|
7961
|
-
colorToken: "border"
|
|
7962
|
-
},
|
|
7963
|
-
shadow: null,
|
|
7964
|
-
icon: {
|
|
7965
|
-
style: "plus-minus",
|
|
7966
|
-
position: "right",
|
|
7967
|
-
size: "lg",
|
|
7968
|
-
colorToken: "primary"
|
|
7969
|
-
},
|
|
7970
|
-
trigger: {
|
|
7971
|
-
textColorToken: "text",
|
|
7972
|
-
fontWeight: "bold",
|
|
7973
|
-
fontFamily: "heading",
|
|
7974
|
-
fontScale: "md"
|
|
7975
|
-
},
|
|
7976
|
-
hover: {
|
|
7977
|
-
backgroundColorToken: "primary/10",
|
|
7978
|
-
textColorToken: "primary"
|
|
7979
|
-
},
|
|
7980
|
-
openState: {
|
|
7981
|
-
backgroundColorToken: "primary/10",
|
|
7982
|
-
triggerColorToken: "primary",
|
|
7983
|
-
accent: {
|
|
7984
|
-
edge: "left",
|
|
7985
|
-
colorToken: "primary",
|
|
7986
|
-
thickness: "thick"
|
|
7987
|
-
}
|
|
7892
|
+
{
|
|
7893
|
+
id: asHeaderStyleId("brand-bar"),
|
|
7894
|
+
label: "Brand Bar",
|
|
7895
|
+
description: "Solid brand surface with high-contrast navigation.",
|
|
7896
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
7897
|
+
navInteraction: "color-change",
|
|
7898
|
+
surface: "brand-solid",
|
|
7899
|
+
defaultDepth: "none",
|
|
7900
|
+
navTypography: "brand-caps",
|
|
7901
|
+
moods: [
|
|
7902
|
+
"professional",
|
|
7903
|
+
"expressive",
|
|
7904
|
+
"utility"
|
|
7905
|
+
]
|
|
7988
7906
|
},
|
|
7989
|
-
|
|
7990
|
-
|
|
7991
|
-
|
|
7992
|
-
|
|
7993
|
-
|
|
7994
|
-
|
|
7995
|
-
|
|
7996
|
-
|
|
7997
|
-
|
|
7998
|
-
|
|
7999
|
-
colorToken: "surfaceAlt"
|
|
7907
|
+
{
|
|
7908
|
+
id: asHeaderStyleId("brand-underline"),
|
|
7909
|
+
label: "Brand Underline",
|
|
7910
|
+
description: "Brand surface with underline-grow navigation.",
|
|
7911
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
7912
|
+
navInteraction: "underline-grow",
|
|
7913
|
+
surface: "brand-solid",
|
|
7914
|
+
defaultDepth: "none",
|
|
7915
|
+
navTypography: "brand-caps",
|
|
7916
|
+
moods: ["expressive"]
|
|
8000
7917
|
},
|
|
8001
|
-
|
|
8002
|
-
|
|
8003
|
-
|
|
8004
|
-
|
|
8005
|
-
|
|
8006
|
-
|
|
8007
|
-
|
|
8008
|
-
|
|
8009
|
-
|
|
7918
|
+
{
|
|
7919
|
+
id: asHeaderStyleId("brand-pill"),
|
|
7920
|
+
label: "Brand Pill",
|
|
7921
|
+
description: "Solid brand surface with rounded active and hover states.",
|
|
7922
|
+
supportedLayoutIds: supportedLayouts([
|
|
7923
|
+
"classic",
|
|
7924
|
+
"centered",
|
|
7925
|
+
"floating"
|
|
7926
|
+
]),
|
|
7927
|
+
navInteraction: "pill-background",
|
|
7928
|
+
surface: "brand-solid",
|
|
7929
|
+
defaultDepth: "none",
|
|
7930
|
+
navTypography: "brand-caps",
|
|
7931
|
+
moods: ["expressive"]
|
|
8010
7932
|
},
|
|
8011
|
-
|
|
8012
|
-
|
|
8013
|
-
|
|
8014
|
-
|
|
8015
|
-
|
|
7933
|
+
{
|
|
7934
|
+
id: asHeaderStyleId("brand-capsule"),
|
|
7935
|
+
label: "Brand Capsule",
|
|
7936
|
+
description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
|
|
7937
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
7938
|
+
navInteraction: "pill-background",
|
|
7939
|
+
surface: "brand-solid",
|
|
7940
|
+
defaultDepth: "shadow",
|
|
7941
|
+
navTypography: "quiet-caps",
|
|
7942
|
+
moods: ["expressive", "professional"]
|
|
8016
7943
|
},
|
|
8017
|
-
|
|
8018
|
-
|
|
8019
|
-
|
|
7944
|
+
{
|
|
7945
|
+
id: asHeaderStyleId("serif-line"),
|
|
7946
|
+
label: "Serif Line",
|
|
7947
|
+
description: "Typographic logo treatment with understated underline navigation.",
|
|
7948
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
7949
|
+
navInteraction: "underline-grow",
|
|
7950
|
+
surface: "bordered",
|
|
7951
|
+
defaultDepth: "line",
|
|
7952
|
+
navTypography: "heading",
|
|
7953
|
+
moods: ["editorial", "calm"]
|
|
8020
7954
|
},
|
|
8021
|
-
|
|
8022
|
-
|
|
8023
|
-
|
|
7955
|
+
{
|
|
7956
|
+
id: asHeaderStyleId("flat-tabs"),
|
|
7957
|
+
label: "Flat Tabs",
|
|
7958
|
+
description: "Flat block hover and active states with a Swiss utility feel.",
|
|
7959
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
7960
|
+
navInteraction: "flat-block",
|
|
7961
|
+
surface: "bordered",
|
|
7962
|
+
defaultDepth: "shadow",
|
|
7963
|
+
navTypography: "quiet-caps",
|
|
7964
|
+
moods: [
|
|
7965
|
+
"professional",
|
|
7966
|
+
"utility",
|
|
7967
|
+
"expressive"
|
|
7968
|
+
]
|
|
8024
7969
|
},
|
|
8025
|
-
|
|
8026
|
-
|
|
8027
|
-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
7970
|
+
{
|
|
7971
|
+
id: asHeaderStyleId("glass"),
|
|
7972
|
+
label: "Glass",
|
|
7973
|
+
description: "Translucent chrome with frosted navigation backing.",
|
|
7974
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
7975
|
+
navInteraction: "glass-backed",
|
|
7976
|
+
surface: "floating",
|
|
7977
|
+
defaultDepth: "shadow",
|
|
7978
|
+
navTypography: "plain",
|
|
7979
|
+
moods: ["expressive", "calm"]
|
|
8035
7980
|
},
|
|
8036
|
-
|
|
8037
|
-
|
|
8038
|
-
|
|
8039
|
-
|
|
8040
|
-
|
|
8041
|
-
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
|
|
7981
|
+
{
|
|
7982
|
+
id: asHeaderStyleId("minimal-surface"),
|
|
7983
|
+
label: "Clear Split",
|
|
7984
|
+
description: "Floating logo with transparent navigation and no shared shell.",
|
|
7985
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
7986
|
+
navInteraction: "color-change",
|
|
7987
|
+
surface: "floating",
|
|
7988
|
+
defaultDepth: "none",
|
|
7989
|
+
navTypography: "plain",
|
|
7990
|
+
moods: ["editorial", "calm"]
|
|
8045
7991
|
},
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
7992
|
+
{
|
|
7993
|
+
id: asHeaderStyleId("soft-shell"),
|
|
7994
|
+
label: "Soft Shell",
|
|
7995
|
+
description: "Floating rounded shell with soft pill navigation states.",
|
|
7996
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
7997
|
+
navInteraction: "pill-background",
|
|
7998
|
+
surface: "floating",
|
|
7999
|
+
defaultDepth: "shadow",
|
|
8000
|
+
navTypography: "plain",
|
|
8001
|
+
moods: ["calm", "professional"]
|
|
8051
8002
|
},
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8056
|
-
|
|
8057
|
-
|
|
8058
|
-
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
* intended convention (block-level role selection is wired in a follow-up) is
|
|
8063
|
-
* a role pair:
|
|
8064
|
-
* - `default` — the quiet, everyday card (most blocks, most of the time)
|
|
8065
|
-
* - `alternative` — the prominent "statement" card for sections that pop
|
|
8066
|
-
* A card-heavy site style may add a third; the schema allows up to three
|
|
8067
|
-
* variants. The planned fallback when a block references a missing variant is
|
|
8068
|
-
* `alternative`, then `default`.
|
|
8069
|
-
*
|
|
8070
|
-
* Keep `default` close to the generated baseline so shared consumers (event
|
|
8071
|
-
* cards, testimonials) stay stable; put the personality in `alternative`.
|
|
8072
|
-
*/
|
|
8073
|
-
/**
|
|
8074
|
-
* South West Twerk School: a quiet default surface card plus a high-impact
|
|
8075
|
-
* "statement" card that reproduces the legacy accent-quote testimonial surface
|
|
8076
|
-
* — burgundy fill, light text, a heavy gold left accent bar, and an expressive
|
|
8077
|
-
* asymmetric top-right corner.
|
|
8078
|
-
*/
|
|
8079
|
-
const southWestCardSystem = { variants: [{
|
|
8080
|
-
id: "default",
|
|
8081
|
-
name: "Default",
|
|
8082
|
-
enabled: true,
|
|
8083
|
-
priority: 1,
|
|
8084
|
-
background: {
|
|
8085
|
-
type: "solid",
|
|
8086
|
-
colorToken: "surface"
|
|
8003
|
+
{
|
|
8004
|
+
id: asHeaderStyleId("split-glass"),
|
|
8005
|
+
label: "Split Glass",
|
|
8006
|
+
description: "Logo floats independently while the navigation sits in a glass rail.",
|
|
8007
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
8008
|
+
navInteraction: "glass-backed",
|
|
8009
|
+
surface: "floating",
|
|
8010
|
+
defaultDepth: "shadow",
|
|
8011
|
+
navTypography: "quiet-caps",
|
|
8012
|
+
moods: ["expressive"]
|
|
8087
8013
|
},
|
|
8088
|
-
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8096
|
-
|
|
8097
|
-
|
|
8098
|
-
name: "Statement",
|
|
8099
|
-
enabled: true,
|
|
8100
|
-
priority: 2,
|
|
8101
|
-
background: {
|
|
8102
|
-
type: "solid",
|
|
8103
|
-
colorToken: "primary-700"
|
|
8104
|
-
},
|
|
8105
|
-
foregroundToken: "primaryForeground",
|
|
8106
|
-
spacing: "comfortable",
|
|
8107
|
-
shadow: {
|
|
8108
|
-
elevation: "none",
|
|
8109
|
-
softness: null,
|
|
8110
|
-
position: "bottom"
|
|
8111
|
-
},
|
|
8112
|
-
accentEdge: {
|
|
8113
|
-
edge: "left",
|
|
8114
|
-
colorToken: "secondary",
|
|
8115
|
-
width: "heavy"
|
|
8116
|
-
},
|
|
8117
|
-
cornerRadii: {
|
|
8118
|
-
topLeft: "square",
|
|
8119
|
-
topRight: "expressive",
|
|
8120
|
-
bottomLeft: "square",
|
|
8121
|
-
bottomRight: "square"
|
|
8014
|
+
{
|
|
8015
|
+
id: asHeaderStyleId("split-pill"),
|
|
8016
|
+
label: "Split Pill",
|
|
8017
|
+
description: "Logo floats independently with a soft pill-backed navigation rail.",
|
|
8018
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
8019
|
+
navInteraction: "pill-background",
|
|
8020
|
+
surface: "floating",
|
|
8021
|
+
defaultDepth: "shadow",
|
|
8022
|
+
navTypography: "heading",
|
|
8023
|
+
moods: ["calm", "editorial"]
|
|
8122
8024
|
}
|
|
8123
|
-
|
|
8124
|
-
|
|
8125
|
-
|
|
8126
|
-
|
|
8127
|
-
|
|
8128
|
-
|
|
8129
|
-
|
|
8130
|
-
|
|
8131
|
-
|
|
8025
|
+
]);
|
|
8026
|
+
new Map(headerLayoutCatalog.map((layout) => [layout.id, layout]));
|
|
8027
|
+
const headerStylesById = new Map(headerStyleCatalog.map((style) => [style.id, style]));
|
|
8028
|
+
const headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
8029
|
+
[asHeaderLayoutId("classic"), headerStyleRepairChain([
|
|
8030
|
+
"minimal",
|
|
8031
|
+
"fine-line",
|
|
8032
|
+
"soft-bar",
|
|
8033
|
+
"pill-nav",
|
|
8034
|
+
"brand-bar",
|
|
8035
|
+
"brand-underline",
|
|
8036
|
+
"brand-pill",
|
|
8037
|
+
"brand-capsule",
|
|
8038
|
+
"serif-line",
|
|
8039
|
+
"flat-tabs"
|
|
8040
|
+
])],
|
|
8041
|
+
[asHeaderLayoutId("centered"), headerStyleRepairChain([
|
|
8042
|
+
"minimal",
|
|
8043
|
+
"fine-line",
|
|
8044
|
+
"soft-bar",
|
|
8045
|
+
"pill-nav",
|
|
8046
|
+
"brand-bar",
|
|
8047
|
+
"brand-pill",
|
|
8048
|
+
"serif-line",
|
|
8049
|
+
"flat-tabs"
|
|
8050
|
+
])],
|
|
8051
|
+
[asHeaderLayoutId("floating"), headerStyleRepairChain([
|
|
8052
|
+
"glass",
|
|
8053
|
+
"minimal-surface",
|
|
8054
|
+
"split-glass",
|
|
8055
|
+
"split-pill",
|
|
8056
|
+
"soft-shell",
|
|
8057
|
+
"brand-pill"
|
|
8058
|
+
])]
|
|
8059
|
+
]);
|
|
8060
|
+
function headerStyleRepairChain(values) {
|
|
8061
|
+
return values.map(asHeaderStyleId);
|
|
8062
|
+
}
|
|
8063
|
+
headerStyleRepairChain([
|
|
8064
|
+
"brand-bar",
|
|
8065
|
+
"brand-pill",
|
|
8066
|
+
"minimal"
|
|
8067
|
+
]), headerStyleRepairChain([
|
|
8068
|
+
"serif-line",
|
|
8069
|
+
"fine-line",
|
|
8070
|
+
"minimal"
|
|
8071
|
+
]), headerStyleRepairChain([
|
|
8072
|
+
"brand-pill",
|
|
8073
|
+
"brand-bar",
|
|
8074
|
+
"minimal"
|
|
8075
|
+
]), headerStyleRepairChain([
|
|
8076
|
+
"brand-capsule",
|
|
8077
|
+
"brand-pill",
|
|
8078
|
+
"brand-bar",
|
|
8079
|
+
"minimal"
|
|
8080
|
+
]), headerStyleRepairChain([
|
|
8081
|
+
"pill-nav",
|
|
8082
|
+
"soft-bar",
|
|
8083
|
+
"minimal"
|
|
8084
|
+
]), headerStyleRepairChain([
|
|
8085
|
+
"flat-tabs",
|
|
8086
|
+
"pill-nav",
|
|
8087
|
+
"minimal"
|
|
8088
|
+
]), headerStyleRepairChain([
|
|
8089
|
+
"serif-line",
|
|
8090
|
+
"fine-line",
|
|
8091
|
+
"minimal"
|
|
8092
|
+
]), headerStyleRepairChain([
|
|
8093
|
+
"glass",
|
|
8094
|
+
"soft-shell",
|
|
8095
|
+
"fine-line",
|
|
8096
|
+
"minimal-surface",
|
|
8097
|
+
"minimal"
|
|
8098
|
+
]), headerStyleRepairChain([
|
|
8099
|
+
"soft-shell",
|
|
8100
|
+
"soft-bar",
|
|
8101
|
+
"minimal"
|
|
8102
|
+
]), headerStyleRepairChain(["minimal-surface", "minimal"]), headerStyleRepairChain([
|
|
8103
|
+
"split-glass",
|
|
8104
|
+
"glass",
|
|
8105
|
+
"minimal-surface"
|
|
8106
|
+
]), headerStyleRepairChain([
|
|
8107
|
+
"split-pill",
|
|
8108
|
+
"soft-shell",
|
|
8109
|
+
"brand-pill"
|
|
8110
|
+
]), headerStyleRepairChain(["fine-line", "minimal"]), headerStyleRepairChain(["soft-bar", "minimal"]), headerStyleRepairChain(["minimal"]);
|
|
8111
|
+
const legacyHeaderLookAliases = defineExactCatalog()([
|
|
8112
|
+
{
|
|
8113
|
+
lookId: asHeaderLookId("clean-base"),
|
|
8114
|
+
selection: {
|
|
8115
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
8116
|
+
styleId: asHeaderStyleId("minimal")
|
|
8117
|
+
}
|
|
8132
8118
|
},
|
|
8133
|
-
|
|
8134
|
-
|
|
8135
|
-
|
|
8136
|
-
|
|
8137
|
-
|
|
8138
|
-
|
|
8139
|
-
position: "bottom"
|
|
8140
|
-
}
|
|
8141
|
-
}, {
|
|
8142
|
-
id: "alternative",
|
|
8143
|
-
name: "Statement",
|
|
8144
|
-
enabled: true,
|
|
8145
|
-
priority: 2,
|
|
8146
|
-
background: {
|
|
8147
|
-
type: "solid",
|
|
8148
|
-
colorToken: "surfaceAlt"
|
|
8119
|
+
{
|
|
8120
|
+
lookId: asHeaderLookId("classic-centered-nav"),
|
|
8121
|
+
selection: {
|
|
8122
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
8123
|
+
styleId: asHeaderStyleId("fine-line")
|
|
8124
|
+
}
|
|
8149
8125
|
},
|
|
8150
|
-
|
|
8151
|
-
|
|
8152
|
-
|
|
8153
|
-
|
|
8154
|
-
|
|
8155
|
-
|
|
8156
|
-
position: "bottom"
|
|
8157
|
-
}
|
|
8158
|
-
}] };
|
|
8159
|
-
/**
|
|
8160
|
-
* Original Joy: warm, flat, generously rounded cards on the dark clay ground.
|
|
8161
|
-
* `default` is a quiet brown surface card with cream text; `alternative` is a
|
|
8162
|
-
* burnt-orange statement card for sections that should pop. Both flat (the
|
|
8163
|
-
* look's depth comes from colour, not shadow), matching the bold editorial
|
|
8164
|
-
* feel. Shared by event and testimonial cards.
|
|
8165
|
-
*/
|
|
8166
|
-
const originalJoyCardSystem = { variants: [{
|
|
8167
|
-
id: "default",
|
|
8168
|
-
name: "Default",
|
|
8169
|
-
enabled: true,
|
|
8170
|
-
priority: 1,
|
|
8171
|
-
background: {
|
|
8172
|
-
type: "solid",
|
|
8173
|
-
colorToken: "surface"
|
|
8126
|
+
{
|
|
8127
|
+
lookId: asHeaderLookId("brand-solid"),
|
|
8128
|
+
selection: {
|
|
8129
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
8130
|
+
styleId: asHeaderStyleId("brand-bar")
|
|
8131
|
+
}
|
|
8174
8132
|
},
|
|
8175
|
-
|
|
8176
|
-
|
|
8177
|
-
|
|
8178
|
-
|
|
8179
|
-
|
|
8180
|
-
|
|
8181
|
-
position: "bottom"
|
|
8182
|
-
}
|
|
8183
|
-
}, {
|
|
8184
|
-
id: "alternative",
|
|
8185
|
-
name: "Statement",
|
|
8186
|
-
enabled: true,
|
|
8187
|
-
priority: 2,
|
|
8188
|
-
background: {
|
|
8189
|
-
type: "solid",
|
|
8190
|
-
colorToken: "primary"
|
|
8133
|
+
{
|
|
8134
|
+
lookId: asHeaderLookId("serif-line"),
|
|
8135
|
+
selection: {
|
|
8136
|
+
layoutId: asHeaderLayoutId("centered"),
|
|
8137
|
+
styleId: asHeaderStyleId("serif-line")
|
|
8138
|
+
}
|
|
8191
8139
|
},
|
|
8192
|
-
foregroundToken: "primaryForeground",
|
|
8193
|
-
spacing: "comfortable",
|
|
8194
|
-
corners: "rounded",
|
|
8195
|
-
shadow: {
|
|
8196
|
-
elevation: "none",
|
|
8197
|
-
softness: null,
|
|
8198
|
-
position: "bottom"
|
|
8199
|
-
}
|
|
8200
|
-
}] };
|
|
8201
|
-
//#endregion
|
|
8202
|
-
//#region ../theme-core/src/site-styles/testimonialQuotePresets.ts
|
|
8203
|
-
/**
|
|
8204
|
-
* Reusable testimonial quote-mark treatments for curated site styles.
|
|
8205
|
-
*
|
|
8206
|
-
* The quote mark is brand identity the site style owns (analogous to the FAQ
|
|
8207
|
-
* accordion icon); every curated style declares one. `style` is the coarse
|
|
8208
|
-
* selector and the resolver in blocks/vars/testimonials.ts fills in the rest.
|
|
8209
|
-
*/
|
|
8210
|
-
/** Large display quotation mark in the heading font. Editorial / calm styles. */
|
|
8211
|
-
const serifDisplayQuote = { style: "serif-display" };
|
|
8212
|
-
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
8213
|
-
const accentGlyphQuote = { style: "accent-glyph" };
|
|
8214
|
-
/**
|
|
8215
|
-
* Curated library of gradient presets.
|
|
8216
|
-
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
8217
|
-
*/
|
|
8218
|
-
const GRADIENT_PRESETS = [
|
|
8219
8140
|
{
|
|
8220
|
-
|
|
8221
|
-
|
|
8222
|
-
|
|
8223
|
-
|
|
8224
|
-
|
|
8225
|
-
stops: [{
|
|
8226
|
-
color: "primary-500",
|
|
8227
|
-
position: 0
|
|
8228
|
-
}, {
|
|
8229
|
-
color: "secondary-500",
|
|
8230
|
-
position: 100
|
|
8231
|
-
}]
|
|
8141
|
+
lookId: asHeaderLookId("centered-calm"),
|
|
8142
|
+
selection: {
|
|
8143
|
+
layoutId: asHeaderLayoutId("centered"),
|
|
8144
|
+
styleId: asHeaderStyleId("minimal")
|
|
8145
|
+
}
|
|
8232
8146
|
},
|
|
8233
8147
|
{
|
|
8234
|
-
|
|
8235
|
-
|
|
8236
|
-
|
|
8237
|
-
|
|
8238
|
-
|
|
8239
|
-
stops: [{
|
|
8240
|
-
color: "primary-500",
|
|
8241
|
-
position: 0
|
|
8242
|
-
}, {
|
|
8243
|
-
color: "accent-500",
|
|
8244
|
-
position: 100
|
|
8245
|
-
}]
|
|
8246
|
-
},
|
|
8247
|
-
{
|
|
8248
|
-
id: "secondary-accent",
|
|
8249
|
-
name: "Secondary to Accent",
|
|
8250
|
-
description: "Vibrant secondary to accent blend",
|
|
8251
|
-
type: "linear",
|
|
8252
|
-
angle: 135,
|
|
8253
|
-
stops: [{
|
|
8254
|
-
color: "secondary-500",
|
|
8255
|
-
position: 0
|
|
8256
|
-
}, {
|
|
8257
|
-
color: "accent-500",
|
|
8258
|
-
position: 100
|
|
8259
|
-
}]
|
|
8260
|
-
},
|
|
8261
|
-
{
|
|
8262
|
-
id: "primary-light-dark",
|
|
8263
|
-
name: "Primary Light to Dark",
|
|
8264
|
-
description: "Subtle primary color fade",
|
|
8265
|
-
type: "linear",
|
|
8266
|
-
angle: 180,
|
|
8267
|
-
stops: [{
|
|
8268
|
-
color: "primary-500",
|
|
8269
|
-
position: 0
|
|
8270
|
-
}, {
|
|
8271
|
-
color: "primary-900",
|
|
8272
|
-
position: 100
|
|
8273
|
-
}]
|
|
8274
|
-
},
|
|
8275
|
-
{
|
|
8276
|
-
id: "primary-dark-light",
|
|
8277
|
-
name: "Primary Dark to Light",
|
|
8278
|
-
description: "Reverse primary fade",
|
|
8279
|
-
type: "linear",
|
|
8280
|
-
angle: 180,
|
|
8281
|
-
stops: [{
|
|
8282
|
-
color: "primary-900",
|
|
8283
|
-
position: 0
|
|
8284
|
-
}, {
|
|
8285
|
-
color: "primary-50",
|
|
8286
|
-
position: 100
|
|
8287
|
-
}]
|
|
8288
|
-
},
|
|
8289
|
-
{
|
|
8290
|
-
id: "secondary-light-dark",
|
|
8291
|
-
name: "Secondary Light to Dark",
|
|
8292
|
-
description: "Subtle secondary color fade",
|
|
8293
|
-
type: "linear",
|
|
8294
|
-
angle: 180,
|
|
8295
|
-
stops: [{
|
|
8296
|
-
color: "secondary-500",
|
|
8297
|
-
position: 0
|
|
8298
|
-
}, {
|
|
8299
|
-
color: "secondary-900",
|
|
8300
|
-
position: 100
|
|
8301
|
-
}]
|
|
8302
|
-
},
|
|
8303
|
-
{
|
|
8304
|
-
id: "accent-light-dark",
|
|
8305
|
-
name: "Accent Light to Dark",
|
|
8306
|
-
description: "Accent color depth fade",
|
|
8307
|
-
type: "linear",
|
|
8308
|
-
angle: 180,
|
|
8309
|
-
stops: [{
|
|
8310
|
-
color: "accent-500",
|
|
8311
|
-
position: 0
|
|
8312
|
-
}, {
|
|
8313
|
-
color: "accent-900",
|
|
8314
|
-
position: 100
|
|
8315
|
-
}]
|
|
8316
|
-
},
|
|
8317
|
-
{
|
|
8318
|
-
id: "background-surface",
|
|
8319
|
-
name: "Background to Surface",
|
|
8320
|
-
description: "Subtle depth using base colors",
|
|
8321
|
-
type: "linear",
|
|
8322
|
-
angle: 180,
|
|
8323
|
-
stops: [{
|
|
8324
|
-
color: "background",
|
|
8325
|
-
position: 0
|
|
8326
|
-
}, {
|
|
8327
|
-
color: "surface",
|
|
8328
|
-
position: 100
|
|
8329
|
-
}]
|
|
8330
|
-
},
|
|
8331
|
-
{
|
|
8332
|
-
id: "neutral-fade",
|
|
8333
|
-
name: "Neutral Gradient",
|
|
8334
|
-
description: "Elegant neutral color fade",
|
|
8335
|
-
type: "linear",
|
|
8336
|
-
angle: 180,
|
|
8337
|
-
stops: [{
|
|
8338
|
-
color: "neutral-900",
|
|
8339
|
-
position: 0
|
|
8340
|
-
}, {
|
|
8341
|
-
color: "neutral-50",
|
|
8342
|
-
position: 100
|
|
8343
|
-
}]
|
|
8148
|
+
lookId: asHeaderLookId("practical-utility"),
|
|
8149
|
+
selection: {
|
|
8150
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
8151
|
+
styleId: asHeaderStyleId("flat-tabs")
|
|
8152
|
+
}
|
|
8344
8153
|
},
|
|
8345
8154
|
{
|
|
8346
|
-
|
|
8347
|
-
|
|
8348
|
-
|
|
8349
|
-
|
|
8350
|
-
shape: "ellipse",
|
|
8351
|
-
position: "top center",
|
|
8352
|
-
stops: [{
|
|
8353
|
-
color: "primary-900",
|
|
8354
|
-
position: 0
|
|
8355
|
-
}, {
|
|
8356
|
-
color: "primary-950",
|
|
8357
|
-
position: 100
|
|
8358
|
-
}],
|
|
8359
|
-
foreground: {
|
|
8360
|
-
textColor: "onPrimary900",
|
|
8361
|
-
headingColor: "onPrimary900",
|
|
8362
|
-
linkColor: "onPrimary900",
|
|
8363
|
-
supportingColor: "onPrimary900"
|
|
8155
|
+
lookId: asHeaderLookId("minimal-transparent"),
|
|
8156
|
+
selection: {
|
|
8157
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
8158
|
+
styleId: asHeaderStyleId("minimal")
|
|
8364
8159
|
}
|
|
8365
8160
|
},
|
|
8366
8161
|
{
|
|
8367
|
-
|
|
8368
|
-
|
|
8369
|
-
|
|
8370
|
-
|
|
8371
|
-
shape: "ellipse",
|
|
8372
|
-
position: "top center",
|
|
8373
|
-
stops: [{
|
|
8374
|
-
color: "accent-900",
|
|
8375
|
-
position: 0
|
|
8376
|
-
}, {
|
|
8377
|
-
color: "accent-950",
|
|
8378
|
-
position: 100
|
|
8379
|
-
}],
|
|
8380
|
-
foreground: {
|
|
8381
|
-
textColor: "onAccent900",
|
|
8382
|
-
headingColor: "onAccent900",
|
|
8383
|
-
linkColor: "onAccent900",
|
|
8384
|
-
supportingColor: "onAccent900"
|
|
8162
|
+
lookId: asHeaderLookId("transparent-overlay"),
|
|
8163
|
+
selection: {
|
|
8164
|
+
layoutId: asHeaderLayoutId("floating"),
|
|
8165
|
+
styleId: asHeaderStyleId("glass")
|
|
8385
8166
|
}
|
|
8386
8167
|
},
|
|
8387
8168
|
{
|
|
8388
|
-
|
|
8389
|
-
|
|
8390
|
-
|
|
8391
|
-
|
|
8392
|
-
|
|
8393
|
-
stops: [
|
|
8394
|
-
{
|
|
8395
|
-
color: "primary-500",
|
|
8396
|
-
position: 0
|
|
8397
|
-
},
|
|
8398
|
-
{
|
|
8399
|
-
color: "secondary-500",
|
|
8400
|
-
position: 50
|
|
8401
|
-
},
|
|
8402
|
-
{
|
|
8403
|
-
color: "accent-500",
|
|
8404
|
-
position: 100
|
|
8405
|
-
}
|
|
8406
|
-
]
|
|
8169
|
+
lookId: asHeaderLookId("floating-glass"),
|
|
8170
|
+
selection: {
|
|
8171
|
+
layoutId: asHeaderLayoutId("floating"),
|
|
8172
|
+
styleId: asHeaderStyleId("glass")
|
|
8173
|
+
}
|
|
8407
8174
|
}
|
|
8408
|
-
]
|
|
8409
|
-
|
|
8410
|
-
|
|
8411
|
-
|
|
8412
|
-
}));
|
|
8413
|
-
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
8414
|
-
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
8415
|
-
Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
8416
|
-
function parseGradientPresetId(value) {
|
|
8417
|
-
if (typeof value !== "string") return null;
|
|
8418
|
-
const normalized = value.trim();
|
|
8419
|
-
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
8420
|
-
return normalized;
|
|
8175
|
+
]);
|
|
8176
|
+
const legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
|
|
8177
|
+
function getHeaderStyle(id) {
|
|
8178
|
+
return headerStylesById.get(id) ?? null;
|
|
8421
8179
|
}
|
|
8422
|
-
|
|
8423
|
-
|
|
8424
|
-
function asHeaderLookId(value) {
|
|
8425
|
-
return value;
|
|
8180
|
+
function isHeaderStyleCompatibleWithLayout(style, layoutId) {
|
|
8181
|
+
return style.supportedLayoutIds.includes(layoutId);
|
|
8426
8182
|
}
|
|
8427
|
-
function
|
|
8428
|
-
|
|
8183
|
+
function getHeaderStyleOrThrow(id) {
|
|
8184
|
+
const style = getHeaderStyle(id);
|
|
8185
|
+
if (!style) throw new Error(`Unknown Theme V2 header style: ${id}`);
|
|
8186
|
+
return style;
|
|
8429
8187
|
}
|
|
8430
|
-
function
|
|
8431
|
-
return
|
|
8188
|
+
function resolveLegacyHeaderLookAlias(lookId) {
|
|
8189
|
+
return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
|
|
8432
8190
|
}
|
|
8433
|
-
|
|
8434
|
-
|
|
8435
|
-
|
|
8436
|
-
|
|
8437
|
-
|
|
8438
|
-
|
|
8439
|
-
|
|
8440
|
-
"
|
|
8441
|
-
|
|
8442
|
-
|
|
8443
|
-
|
|
8444
|
-
|
|
8445
|
-
|
|
8446
|
-
|
|
8447
|
-
|
|
8448
|
-
|
|
8449
|
-
|
|
8450
|
-
|
|
8451
|
-
|
|
8452
|
-
|
|
8453
|
-
|
|
8454
|
-
|
|
8455
|
-
|
|
8456
|
-
|
|
8457
|
-
|
|
8458
|
-
|
|
8459
|
-
|
|
8460
|
-
|
|
8461
|
-
}
|
|
8462
|
-
|
|
8463
|
-
|
|
8464
|
-
|
|
8465
|
-
"
|
|
8466
|
-
"
|
|
8467
|
-
"
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
|
|
8484
|
-
|
|
8485
|
-
|
|
8486
|
-
};
|
|
8487
|
-
|
|
8488
|
-
|
|
8489
|
-
|
|
8490
|
-
|
|
8491
|
-
|
|
8492
|
-
|
|
8493
|
-
],
|
|
8494
|
-
supportedTextPresence: ["contains-text", "unknown"],
|
|
8495
|
-
supportedDisplayModes: ["logo-only"],
|
|
8496
|
-
size: "display",
|
|
8497
|
-
providesBacking: true
|
|
8498
|
-
};
|
|
8499
|
-
const popoutBadgeAccommodation = {
|
|
8500
|
-
pattern: "popout-badge",
|
|
8501
|
-
supportedShapes: [
|
|
8502
|
-
"square",
|
|
8503
|
-
"portrait",
|
|
8504
|
-
"tall"
|
|
8505
|
-
],
|
|
8506
|
-
supportedTextPresence: ["contains-text", "unknown"],
|
|
8507
|
-
supportedDisplayModes: ["logo-only"],
|
|
8508
|
-
size: "display",
|
|
8509
|
-
providesBacking: true
|
|
8510
|
-
};
|
|
8511
|
-
const centeredMastheadAccommodation = {
|
|
8512
|
-
pattern: "centered-masthead",
|
|
8513
|
-
supportedShapes: [
|
|
8514
|
-
"square",
|
|
8515
|
-
"portrait",
|
|
8516
|
-
"tall"
|
|
8517
|
-
],
|
|
8518
|
-
supportedTextPresence: ["contains-text", "unknown"],
|
|
8519
|
-
supportedDisplayModes: ["logo-only"],
|
|
8520
|
-
size: "display",
|
|
8521
|
-
providesBacking: true
|
|
8522
|
-
};
|
|
8523
|
-
const unbackedOverlayLogoAccommodation = {
|
|
8524
|
-
pattern: "inline-logo-only",
|
|
8525
|
-
supportedShapes: ["square"],
|
|
8526
|
-
supportedTextPresence: ["contains-text", "unknown"],
|
|
8527
|
-
supportedDisplayModes: ["logo-only"],
|
|
8528
|
-
size: "compact",
|
|
8529
|
-
providesBacking: false
|
|
8530
|
-
};
|
|
8531
|
-
const inlineClassicLogoAccommodations = [
|
|
8532
|
-
titleOnlyLogoAccommodation,
|
|
8533
|
-
inlineWordmarkLogoAccommodation,
|
|
8534
|
-
inlineMarkWithTitleLogoAccommodation,
|
|
8535
|
-
popoutBadgeAccommodation,
|
|
8536
|
-
logoPlateAccommodation
|
|
8537
|
-
];
|
|
8538
|
-
const centeredLogoAccommodations = [
|
|
8539
|
-
titleOnlyLogoAccommodation,
|
|
8540
|
-
inlineWordmarkLogoAccommodation,
|
|
8541
|
-
inlineMarkWithTitleLogoAccommodation,
|
|
8542
|
-
centeredMastheadAccommodation,
|
|
8543
|
-
centeredBadgeAccommodation
|
|
8544
|
-
];
|
|
8545
|
-
const overlayLogoAccommodations = [
|
|
8546
|
-
titleOnlyLogoAccommodation,
|
|
8547
|
-
inlineWordmarkLogoAccommodation,
|
|
8548
|
-
inlineMarkWithTitleLogoAccommodation,
|
|
8549
|
-
unbackedOverlayLogoAccommodation
|
|
8550
|
-
];
|
|
8551
|
-
/**
|
|
8552
|
-
* Starts every Look from the generated theme's header branch, then clears
|
|
8553
|
-
* optional nested styling fields that would otherwise leak from another Look.
|
|
8554
|
-
*/
|
|
8555
|
-
function baseHeader(theme) {
|
|
8556
|
-
const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
|
|
8191
|
+
function getCompatibleHeaderStyleIds(layoutId) {
|
|
8192
|
+
return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter((styleId) => {
|
|
8193
|
+
return isHeaderStyleCompatibleWithLayout(getHeaderStyleOrThrow(styleId), layoutId);
|
|
8194
|
+
});
|
|
8195
|
+
}
|
|
8196
|
+
function applyNavTypography(style, typography) {
|
|
8197
|
+
switch (typography) {
|
|
8198
|
+
case "plain": return style;
|
|
8199
|
+
case "heading": return {
|
|
8200
|
+
...style,
|
|
8201
|
+
typography: "heading",
|
|
8202
|
+
fontWeight: "medium",
|
|
8203
|
+
letterSpacing: "wide"
|
|
8204
|
+
};
|
|
8205
|
+
case "quiet-caps": return {
|
|
8206
|
+
...style,
|
|
8207
|
+
textTransform: "uppercase",
|
|
8208
|
+
textSize: "sm",
|
|
8209
|
+
letterSpacing: "wide"
|
|
8210
|
+
};
|
|
8211
|
+
case "brand-caps": return {
|
|
8212
|
+
...style,
|
|
8213
|
+
textTransform: "uppercase",
|
|
8214
|
+
textSize: "sm",
|
|
8215
|
+
letterSpacing: "wider"
|
|
8216
|
+
};
|
|
8217
|
+
default: return assertNever$1(typography, "Unhandled header nav typography");
|
|
8218
|
+
}
|
|
8219
|
+
}
|
|
8220
|
+
function underlineNavLinkStyle(colorToken, underlineColorToken, typography = "plain") {
|
|
8221
|
+
return applyNavTypography({
|
|
8222
|
+
name: "Underline grow",
|
|
8223
|
+
typography: "body",
|
|
8224
|
+
fontWeight: "medium",
|
|
8225
|
+
textTransform: "none",
|
|
8226
|
+
italic: false,
|
|
8227
|
+
colorToken,
|
|
8228
|
+
padding: "compact",
|
|
8229
|
+
paddingX: "compact",
|
|
8230
|
+
borderRadius: "none",
|
|
8231
|
+
effects: { hover: [{
|
|
8232
|
+
effectId: "nav-underline",
|
|
8233
|
+
options: {
|
|
8234
|
+
style: "grow",
|
|
8235
|
+
...underlineColorToken ? { colorToken: underlineColorToken } : {}
|
|
8236
|
+
}
|
|
8237
|
+
}] }
|
|
8238
|
+
}, typography);
|
|
8239
|
+
}
|
|
8240
|
+
function themedHeaderShadow(theme) {
|
|
8241
|
+
switch (theme.shadow.elevation) {
|
|
8242
|
+
case "none": return;
|
|
8243
|
+
case "low": return { elevation: "sm" };
|
|
8244
|
+
case "medium": return { elevation: "md" };
|
|
8245
|
+
case "high": return { elevation: "lg" };
|
|
8246
|
+
default: return assertNever$1(theme.shadow.elevation, "Unhandled theme shadow elevation");
|
|
8247
|
+
}
|
|
8248
|
+
}
|
|
8249
|
+
function solidBrandHeader(theme) {
|
|
8250
|
+
const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
|
|
8557
8251
|
return {
|
|
8558
|
-
...
|
|
8559
|
-
|
|
8560
|
-
|
|
8561
|
-
|
|
8562
|
-
|
|
8563
|
-
|
|
8252
|
+
...baseHeader(theme),
|
|
8253
|
+
variant: "classic",
|
|
8254
|
+
positioning: "sticky",
|
|
8255
|
+
shrinkOnScroll: true,
|
|
8256
|
+
background: {
|
|
8257
|
+
type: "color",
|
|
8258
|
+
color: "primary"
|
|
8259
|
+
},
|
|
8260
|
+
textColor: "primaryForeground",
|
|
8261
|
+
navColor: "primaryForeground",
|
|
8262
|
+
navStyle: "underline-grow",
|
|
8263
|
+
navWeight: "bold",
|
|
8264
|
+
navLinkStyle: {
|
|
8265
|
+
typography: "body",
|
|
8266
|
+
fontWeight: "bold",
|
|
8267
|
+
textTransform: "uppercase",
|
|
8268
|
+
italic: false,
|
|
8269
|
+
colorToken: "primaryForeground",
|
|
8270
|
+
hoverColorToken: "secondary",
|
|
8271
|
+
textSize: "sm",
|
|
8272
|
+
letterSpacing: "wider",
|
|
8273
|
+
padding: "compact",
|
|
8274
|
+
paddingX: "compact",
|
|
8275
|
+
borderRadius: "none",
|
|
8276
|
+
effects: { hover: [{
|
|
8277
|
+
effectId: "text-color-change",
|
|
8278
|
+
options: { hoverColorToken: "secondary" }
|
|
8279
|
+
}, {
|
|
8280
|
+
effectId: "nav-underline",
|
|
8281
|
+
options: {
|
|
8282
|
+
style: "grow",
|
|
8283
|
+
colorToken: "secondary"
|
|
8284
|
+
}
|
|
8285
|
+
}] }
|
|
8286
|
+
},
|
|
8287
|
+
dropdownStyle: {
|
|
8288
|
+
background: "primary-700",
|
|
8289
|
+
textColor: "primaryForeground",
|
|
8290
|
+
borderColor: null,
|
|
8291
|
+
shadow: "md",
|
|
8292
|
+
borderRadius: "md",
|
|
8293
|
+
hoverBackground: "primary-900",
|
|
8294
|
+
hoverTextColor: "secondary",
|
|
8295
|
+
textTransform: "uppercase",
|
|
8296
|
+
letterSpacing: "wider",
|
|
8297
|
+
fontWeight: "bold",
|
|
8298
|
+
textSize: "sm"
|
|
8299
|
+
},
|
|
8300
|
+
border: {
|
|
8301
|
+
style: "solid",
|
|
8302
|
+
width: "none",
|
|
8303
|
+
position: "none"
|
|
8304
|
+
},
|
|
8305
|
+
logoText: {
|
|
8306
|
+
hideOnShrink: true,
|
|
8307
|
+
mobileMaxWidth: "sm",
|
|
8308
|
+
mobileWrapLines: 2
|
|
8309
|
+
},
|
|
8310
|
+
ctaGap: "compact",
|
|
8311
|
+
ctaTreatment: "inverted",
|
|
8312
|
+
...ctaVariant ? { ctaVariant } : {}
|
|
8564
8313
|
};
|
|
8565
8314
|
}
|
|
8566
|
-
|
|
8567
|
-
{
|
|
8568
|
-
|
|
8569
|
-
label: "Classic",
|
|
8570
|
-
description: "Logo and navigation in one practical horizontal row.",
|
|
8571
|
-
structure: "inline-classic",
|
|
8315
|
+
function cleanBaseHeader(theme) {
|
|
8316
|
+
return {
|
|
8317
|
+
...baseHeader(theme),
|
|
8572
8318
|
variant: "classic",
|
|
8573
|
-
|
|
8574
|
-
shrinkOnScroll: false
|
|
8575
|
-
},
|
|
8576
|
-
{
|
|
8577
|
-
id: asHeaderLayoutId("centered"),
|
|
8578
|
-
label: "Centered",
|
|
8579
|
-
description: "Logo centered above a balanced navigation row.",
|
|
8580
|
-
structure: "centered-stack",
|
|
8581
|
-
variant: "centered",
|
|
8582
|
-
defaultPositioning: "static",
|
|
8319
|
+
positioning: "sticky",
|
|
8583
8320
|
shrinkOnScroll: false,
|
|
8584
|
-
|
|
8585
|
-
|
|
8586
|
-
"
|
|
8587
|
-
|
|
8588
|
-
|
|
8589
|
-
|
|
8590
|
-
|
|
8591
|
-
|
|
8592
|
-
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8597
|
-
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8615
|
-
|
|
8616
|
-
|
|
8617
|
-
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
"
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8321
|
+
background: {
|
|
8322
|
+
type: "color",
|
|
8323
|
+
color: "surface"
|
|
8324
|
+
},
|
|
8325
|
+
textColor: "text",
|
|
8326
|
+
navColor: "text",
|
|
8327
|
+
navStyle: "minimal",
|
|
8328
|
+
navWeight: "medium",
|
|
8329
|
+
border: {
|
|
8330
|
+
style: "solid",
|
|
8331
|
+
width: "thin",
|
|
8332
|
+
position: "bottom",
|
|
8333
|
+
colorToken: "border"
|
|
8334
|
+
},
|
|
8335
|
+
ctaTreatment: "default",
|
|
8336
|
+
ctaGap: "default"
|
|
8337
|
+
};
|
|
8338
|
+
}
|
|
8339
|
+
function classicCenteredNavHeader(theme) {
|
|
8340
|
+
return {
|
|
8341
|
+
...baseHeader(theme),
|
|
8342
|
+
variant: "classic",
|
|
8343
|
+
navPlacement: "center",
|
|
8344
|
+
positioning: "sticky",
|
|
8345
|
+
shrinkOnScroll: false,
|
|
8346
|
+
background: {
|
|
8347
|
+
type: "color",
|
|
8348
|
+
color: "surface"
|
|
8349
|
+
},
|
|
8350
|
+
textColor: "text",
|
|
8351
|
+
navColor: "text",
|
|
8352
|
+
navStyle: "underline-grow",
|
|
8353
|
+
navWeight: "medium",
|
|
8354
|
+
navLinkStyle: underlineNavLinkStyle("text", "accent"),
|
|
8355
|
+
border: {
|
|
8356
|
+
style: "solid",
|
|
8357
|
+
width: "thin",
|
|
8358
|
+
position: "bottom",
|
|
8359
|
+
colorToken: "border"
|
|
8360
|
+
},
|
|
8361
|
+
ctaTreatment: "primary",
|
|
8362
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "primary"),
|
|
8363
|
+
ctaGap: "default",
|
|
8364
|
+
logoText: {
|
|
8365
|
+
mobileMaxWidth: "sm",
|
|
8366
|
+
mobileWrapLines: 1,
|
|
8367
|
+
hideOnShrink: false
|
|
8368
|
+
}
|
|
8369
|
+
};
|
|
8370
|
+
}
|
|
8371
|
+
function serifLineHeader(theme) {
|
|
8372
|
+
return {
|
|
8373
|
+
...baseHeader(theme),
|
|
8374
|
+
variant: "centered",
|
|
8375
|
+
positioning: "sticky",
|
|
8376
|
+
shrinkOnScroll: false,
|
|
8377
|
+
background: {
|
|
8378
|
+
type: "color",
|
|
8379
|
+
color: "background"
|
|
8380
|
+
},
|
|
8381
|
+
textColor: "text",
|
|
8382
|
+
navColor: "text",
|
|
8383
|
+
navStyle: "underline-grow",
|
|
8384
|
+
navWeight: "medium",
|
|
8385
|
+
logo: {
|
|
8386
|
+
fontFamily: "heading",
|
|
8387
|
+
letterSpacing: "wide",
|
|
8388
|
+
gradient: false
|
|
8389
|
+
},
|
|
8390
|
+
border: {
|
|
8391
|
+
style: "solid",
|
|
8392
|
+
width: "none",
|
|
8393
|
+
position: "none"
|
|
8394
|
+
},
|
|
8395
|
+
shadow: { elevation: "none" },
|
|
8396
|
+
ctaTreatment: "outline",
|
|
8397
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
|
|
8398
|
+
ctaGap: "relaxed"
|
|
8399
|
+
};
|
|
8400
|
+
}
|
|
8401
|
+
function centeredCalmHeader(theme) {
|
|
8402
|
+
return {
|
|
8403
|
+
...baseHeader(theme),
|
|
8404
|
+
variant: "centered",
|
|
8405
|
+
positioning: "static",
|
|
8406
|
+
shrinkOnScroll: false,
|
|
8407
|
+
background: {
|
|
8408
|
+
type: "color",
|
|
8409
|
+
color: "surface"
|
|
8410
|
+
},
|
|
8411
|
+
textColor: "text",
|
|
8412
|
+
navColor: "text",
|
|
8413
|
+
navStyle: "minimal",
|
|
8414
|
+
navWeight: "medium",
|
|
8415
|
+
ctaTreatment: "ghost",
|
|
8416
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "ghost"),
|
|
8417
|
+
ctaGap: "none"
|
|
8418
|
+
};
|
|
8419
|
+
}
|
|
8420
|
+
function practicalUtilityHeader(theme) {
|
|
8421
|
+
return {
|
|
8422
|
+
...baseHeader(theme),
|
|
8423
|
+
variant: "classic",
|
|
8424
|
+
positioning: "sticky",
|
|
8425
|
+
shrinkOnScroll: true,
|
|
8426
|
+
background: {
|
|
8427
|
+
type: "color",
|
|
8428
|
+
color: "surface"
|
|
8429
|
+
},
|
|
8430
|
+
textColor: "text",
|
|
8431
|
+
navColor: "text",
|
|
8432
|
+
navStyle: "solid",
|
|
8433
|
+
navWeight: "semibold",
|
|
8434
|
+
shadow: themedHeaderShadow(theme),
|
|
8435
|
+
border: {
|
|
8436
|
+
style: "solid",
|
|
8437
|
+
width: "thin",
|
|
8438
|
+
position: "bottom",
|
|
8439
|
+
colorToken: "border"
|
|
8440
|
+
},
|
|
8441
|
+
ctaTreatment: "primary",
|
|
8442
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "primary"),
|
|
8443
|
+
ctaGap: "compact",
|
|
8444
|
+
logoText: {
|
|
8445
|
+
mobileMaxWidth: "sm",
|
|
8446
|
+
mobileWrapLines: 1,
|
|
8447
|
+
hideOnShrink: false
|
|
8448
|
+
}
|
|
8449
|
+
};
|
|
8450
|
+
}
|
|
8451
|
+
function minimalTransparentHeader(theme) {
|
|
8452
|
+
return {
|
|
8453
|
+
...baseHeader(theme),
|
|
8454
|
+
variant: "classic",
|
|
8455
|
+
positioning: "static",
|
|
8456
|
+
shrinkOnScroll: false,
|
|
8457
|
+
background: {
|
|
8458
|
+
type: "color",
|
|
8459
|
+
color: "transparent"
|
|
8460
|
+
},
|
|
8461
|
+
textColor: "text",
|
|
8462
|
+
navColor: "text",
|
|
8463
|
+
navStyle: "underline",
|
|
8464
|
+
navWeight: "medium",
|
|
8465
|
+
border: {
|
|
8466
|
+
style: "solid",
|
|
8467
|
+
width: "none",
|
|
8468
|
+
position: "none"
|
|
8469
|
+
},
|
|
8470
|
+
ctaTreatment: "outline",
|
|
8471
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
|
|
8472
|
+
ctaGap: "default"
|
|
8473
|
+
};
|
|
8474
|
+
}
|
|
8475
|
+
function transparentOverlayHeader(theme) {
|
|
8476
|
+
return {
|
|
8477
|
+
...baseHeader(theme),
|
|
8478
|
+
variant: "transparent",
|
|
8479
|
+
positioning: "fixed",
|
|
8480
|
+
shrinkOnScroll: true,
|
|
8481
|
+
background: {
|
|
8482
|
+
type: "color",
|
|
8483
|
+
color: "transparent"
|
|
8484
|
+
},
|
|
8485
|
+
textColor: "background",
|
|
8486
|
+
navColor: "background",
|
|
8487
|
+
navStyle: "frosted",
|
|
8488
|
+
navWeight: "semibold",
|
|
8489
|
+
border: {
|
|
8490
|
+
style: "solid",
|
|
8491
|
+
width: "none",
|
|
8492
|
+
position: "none"
|
|
8493
|
+
},
|
|
8494
|
+
ctaTreatment: "inverted",
|
|
8495
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "inverted"),
|
|
8496
|
+
ctaGap: "compact"
|
|
8497
|
+
};
|
|
8498
|
+
}
|
|
8499
|
+
function floatingGlassHeader(theme) {
|
|
8500
|
+
return {
|
|
8501
|
+
...transparentOverlayHeader(theme),
|
|
8502
|
+
variant: "floating",
|
|
8503
|
+
positioning: "sticky",
|
|
8504
|
+
navStyle: "frosted",
|
|
8505
|
+
navContainer: {
|
|
8506
|
+
type: "glass",
|
|
8507
|
+
tint: "text",
|
|
8508
|
+
opacity: .16
|
|
8509
|
+
},
|
|
8510
|
+
container: {
|
|
8511
|
+
rounded: "2xl",
|
|
8512
|
+
border: true,
|
|
8513
|
+
shadow: true,
|
|
8514
|
+
padding: "sm",
|
|
8515
|
+
tint: "background",
|
|
8516
|
+
opacity: .12
|
|
8517
|
+
}
|
|
8518
|
+
};
|
|
8519
|
+
}
|
|
8520
|
+
const headerLookCatalog = defineExactCatalog()([
|
|
8521
|
+
{
|
|
8522
|
+
id: asHeaderLookId("clean-base"),
|
|
8523
|
+
label: "Clean base",
|
|
8524
|
+
visualTreatment: "solid-neutral",
|
|
8525
|
+
layoutBehavior: "sticky",
|
|
8526
|
+
configuration: {
|
|
8527
|
+
structure: "inline-classic",
|
|
8528
|
+
treatment: "solid-neutral",
|
|
8529
|
+
behavior: "sticky"
|
|
8530
|
+
},
|
|
8531
|
+
openingRequirement: "none",
|
|
8532
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
8533
|
+
compile: cleanBaseHeader
|
|
8626
8534
|
},
|
|
8627
8535
|
{
|
|
8628
|
-
id:
|
|
8629
|
-
label: "
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
|
|
8639
|
-
|
|
8640
|
-
|
|
8536
|
+
id: asHeaderLookId("classic-centered-nav"),
|
|
8537
|
+
label: "Centered nav",
|
|
8538
|
+
visualTreatment: "solid-neutral",
|
|
8539
|
+
layoutBehavior: "sticky",
|
|
8540
|
+
configuration: {
|
|
8541
|
+
structure: "inline-classic",
|
|
8542
|
+
treatment: "solid-neutral",
|
|
8543
|
+
behavior: "sticky"
|
|
8544
|
+
},
|
|
8545
|
+
openingRequirement: "none",
|
|
8546
|
+
maxRecommendedNavItems: 6,
|
|
8547
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
8548
|
+
compile: classicCenteredNavHeader
|
|
8641
8549
|
},
|
|
8642
8550
|
{
|
|
8643
|
-
id:
|
|
8644
|
-
label: "
|
|
8645
|
-
|
|
8646
|
-
|
|
8647
|
-
|
|
8648
|
-
|
|
8649
|
-
|
|
8650
|
-
|
|
8651
|
-
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
label: "Pill Nav",
|
|
8656
|
-
description: "A calm pill navigation rail over a neutral header.",
|
|
8657
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
8658
|
-
navInteraction: "pill-background",
|
|
8659
|
-
surface: "soft",
|
|
8660
|
-
defaultDepth: "none",
|
|
8661
|
-
navTypography: "plain",
|
|
8662
|
-
moods: ["calm"]
|
|
8663
|
-
},
|
|
8664
|
-
{
|
|
8665
|
-
id: asHeaderStyleId("brand-bar"),
|
|
8666
|
-
label: "Brand Bar",
|
|
8667
|
-
description: "Solid brand surface with high-contrast navigation.",
|
|
8668
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
8669
|
-
navInteraction: "color-change",
|
|
8670
|
-
surface: "brand-solid",
|
|
8671
|
-
defaultDepth: "none",
|
|
8672
|
-
navTypography: "brand-caps",
|
|
8673
|
-
moods: [
|
|
8674
|
-
"professional",
|
|
8675
|
-
"expressive",
|
|
8676
|
-
"utility"
|
|
8677
|
-
]
|
|
8678
|
-
},
|
|
8679
|
-
{
|
|
8680
|
-
id: asHeaderStyleId("brand-underline"),
|
|
8681
|
-
label: "Brand Underline",
|
|
8682
|
-
description: "Brand surface with underline-grow navigation.",
|
|
8683
|
-
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
8684
|
-
navInteraction: "underline-grow",
|
|
8685
|
-
surface: "brand-solid",
|
|
8686
|
-
defaultDepth: "none",
|
|
8687
|
-
navTypography: "brand-caps",
|
|
8688
|
-
moods: ["expressive"]
|
|
8689
|
-
},
|
|
8690
|
-
{
|
|
8691
|
-
id: asHeaderStyleId("brand-pill"),
|
|
8692
|
-
label: "Brand Pill",
|
|
8693
|
-
description: "Solid brand surface with rounded active and hover states.",
|
|
8694
|
-
supportedLayoutIds: supportedLayouts([
|
|
8695
|
-
"classic",
|
|
8696
|
-
"centered",
|
|
8697
|
-
"floating"
|
|
8698
|
-
]),
|
|
8699
|
-
navInteraction: "pill-background",
|
|
8700
|
-
surface: "brand-solid",
|
|
8701
|
-
defaultDepth: "none",
|
|
8702
|
-
navTypography: "brand-caps",
|
|
8703
|
-
moods: ["expressive"]
|
|
8704
|
-
},
|
|
8705
|
-
{
|
|
8706
|
-
id: asHeaderStyleId("brand-capsule"),
|
|
8707
|
-
label: "Brand Capsule",
|
|
8708
|
-
description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
|
|
8709
|
-
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
8710
|
-
navInteraction: "pill-background",
|
|
8711
|
-
surface: "brand-solid",
|
|
8712
|
-
defaultDepth: "shadow",
|
|
8713
|
-
navTypography: "quiet-caps",
|
|
8714
|
-
moods: ["expressive", "professional"]
|
|
8715
|
-
},
|
|
8716
|
-
{
|
|
8717
|
-
id: asHeaderStyleId("serif-line"),
|
|
8718
|
-
label: "Serif Line",
|
|
8719
|
-
description: "Typographic logo treatment with understated underline navigation.",
|
|
8720
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
8721
|
-
navInteraction: "underline-grow",
|
|
8722
|
-
surface: "bordered",
|
|
8723
|
-
defaultDepth: "line",
|
|
8724
|
-
navTypography: "heading",
|
|
8725
|
-
moods: ["editorial", "calm"]
|
|
8551
|
+
id: asHeaderLookId("brand-solid"),
|
|
8552
|
+
label: "Brand solid",
|
|
8553
|
+
visualTreatment: "solid-brand",
|
|
8554
|
+
layoutBehavior: "sticky-shrink",
|
|
8555
|
+
configuration: {
|
|
8556
|
+
structure: "inline-classic",
|
|
8557
|
+
treatment: "solid-brand",
|
|
8558
|
+
behavior: "sticky-shrink"
|
|
8559
|
+
},
|
|
8560
|
+
openingRequirement: "none",
|
|
8561
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
8562
|
+
compile: solidBrandHeader
|
|
8726
8563
|
},
|
|
8727
8564
|
{
|
|
8728
|
-
id:
|
|
8729
|
-
label: "
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8565
|
+
id: asHeaderLookId("serif-line"),
|
|
8566
|
+
label: "Serif line",
|
|
8567
|
+
visualTreatment: "light-serif",
|
|
8568
|
+
layoutBehavior: "sticky",
|
|
8569
|
+
configuration: {
|
|
8570
|
+
structure: "centered-stack",
|
|
8571
|
+
treatment: "light-serif",
|
|
8572
|
+
behavior: "sticky"
|
|
8573
|
+
},
|
|
8574
|
+
openingRequirement: "none",
|
|
8575
|
+
maxRecommendedNavItems: 6,
|
|
8576
|
+
logoAccommodations: centeredLogoAccommodations,
|
|
8577
|
+
compile: serifLineHeader
|
|
8741
8578
|
},
|
|
8742
8579
|
{
|
|
8743
|
-
id:
|
|
8744
|
-
label: "
|
|
8745
|
-
|
|
8746
|
-
|
|
8747
|
-
|
|
8748
|
-
|
|
8749
|
-
|
|
8750
|
-
|
|
8751
|
-
|
|
8580
|
+
id: asHeaderLookId("centered-calm"),
|
|
8581
|
+
label: "Centered calm",
|
|
8582
|
+
visualTreatment: "light-serif",
|
|
8583
|
+
layoutBehavior: "normal-flow",
|
|
8584
|
+
configuration: {
|
|
8585
|
+
structure: "centered-stack",
|
|
8586
|
+
treatment: "light-serif",
|
|
8587
|
+
behavior: "normal-flow"
|
|
8588
|
+
},
|
|
8589
|
+
openingRequirement: "none",
|
|
8590
|
+
maxRecommendedNavItems: 5,
|
|
8591
|
+
logoAccommodations: centeredLogoAccommodations,
|
|
8592
|
+
compile: centeredCalmHeader
|
|
8752
8593
|
},
|
|
8753
8594
|
{
|
|
8754
|
-
id:
|
|
8755
|
-
label: "
|
|
8756
|
-
|
|
8757
|
-
|
|
8758
|
-
|
|
8759
|
-
|
|
8760
|
-
|
|
8761
|
-
|
|
8762
|
-
|
|
8595
|
+
id: asHeaderLookId("practical-utility"),
|
|
8596
|
+
label: "Practical utility",
|
|
8597
|
+
visualTreatment: "solid-neutral",
|
|
8598
|
+
layoutBehavior: "sticky-shrink",
|
|
8599
|
+
configuration: {
|
|
8600
|
+
structure: "inline-classic",
|
|
8601
|
+
treatment: "solid-neutral",
|
|
8602
|
+
behavior: "sticky-shrink"
|
|
8603
|
+
},
|
|
8604
|
+
openingRequirement: "none",
|
|
8605
|
+
requiresProminentCta: true,
|
|
8606
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
8607
|
+
compile: practicalUtilityHeader
|
|
8763
8608
|
},
|
|
8764
8609
|
{
|
|
8765
|
-
id:
|
|
8766
|
-
label: "
|
|
8767
|
-
|
|
8768
|
-
|
|
8769
|
-
|
|
8770
|
-
|
|
8771
|
-
|
|
8772
|
-
|
|
8773
|
-
|
|
8610
|
+
id: asHeaderLookId("minimal-transparent"),
|
|
8611
|
+
label: "Minimal transparent",
|
|
8612
|
+
visualTreatment: "minimal-transparent",
|
|
8613
|
+
layoutBehavior: "normal-flow",
|
|
8614
|
+
configuration: {
|
|
8615
|
+
structure: "inline-classic",
|
|
8616
|
+
treatment: "minimal-transparent",
|
|
8617
|
+
behavior: "normal-flow"
|
|
8618
|
+
},
|
|
8619
|
+
openingRequirement: "reserved-space-ok",
|
|
8620
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
8621
|
+
compile: minimalTransparentHeader
|
|
8774
8622
|
},
|
|
8775
8623
|
{
|
|
8776
|
-
id:
|
|
8777
|
-
label: "
|
|
8778
|
-
|
|
8779
|
-
|
|
8780
|
-
|
|
8781
|
-
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8624
|
+
id: asHeaderLookId("transparent-overlay"),
|
|
8625
|
+
label: "Transparent overlay",
|
|
8626
|
+
visualTreatment: "transparent-overlay",
|
|
8627
|
+
layoutBehavior: "fixed-overlay",
|
|
8628
|
+
configuration: {
|
|
8629
|
+
structure: "inline-classic",
|
|
8630
|
+
treatment: "transparent-overlay",
|
|
8631
|
+
behavior: "fixed-overlay"
|
|
8632
|
+
},
|
|
8633
|
+
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
8634
|
+
maxRecommendedNavItems: 5,
|
|
8635
|
+
logoAccommodations: overlayLogoAccommodations,
|
|
8636
|
+
compile: transparentOverlayHeader
|
|
8785
8637
|
},
|
|
8786
8638
|
{
|
|
8787
|
-
id:
|
|
8788
|
-
label: "
|
|
8789
|
-
|
|
8790
|
-
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
|
|
8794
|
-
|
|
8795
|
-
|
|
8639
|
+
id: asHeaderLookId("floating-glass"),
|
|
8640
|
+
label: "Floating glass",
|
|
8641
|
+
visualTreatment: "floating-glass",
|
|
8642
|
+
layoutBehavior: "fixed-floating",
|
|
8643
|
+
configuration: {
|
|
8644
|
+
structure: "floating-shell",
|
|
8645
|
+
treatment: "floating-glass",
|
|
8646
|
+
behavior: "fixed-floating"
|
|
8647
|
+
},
|
|
8648
|
+
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
8649
|
+
maxRecommendedNavItems: 5,
|
|
8650
|
+
logoAccommodations: overlayLogoAccommodations,
|
|
8651
|
+
compile: floatingGlassHeader
|
|
8796
8652
|
}
|
|
8797
8653
|
]);
|
|
8798
|
-
new
|
|
8799
|
-
|
|
8800
|
-
|
|
8801
|
-
|
|
8802
|
-
"minimal",
|
|
8803
|
-
"fine-line",
|
|
8804
|
-
"soft-bar",
|
|
8805
|
-
"pill-nav",
|
|
8806
|
-
"brand-bar",
|
|
8807
|
-
"brand-underline",
|
|
8808
|
-
"brand-pill",
|
|
8809
|
-
"brand-capsule",
|
|
8810
|
-
"serif-line",
|
|
8811
|
-
"flat-tabs"
|
|
8812
|
-
])],
|
|
8813
|
-
[asHeaderLayoutId("centered"), headerStyleRepairChain([
|
|
8814
|
-
"minimal",
|
|
8815
|
-
"fine-line",
|
|
8816
|
-
"soft-bar",
|
|
8817
|
-
"pill-nav",
|
|
8818
|
-
"brand-bar",
|
|
8819
|
-
"brand-pill",
|
|
8820
|
-
"serif-line",
|
|
8821
|
-
"flat-tabs"
|
|
8822
|
-
])],
|
|
8823
|
-
[asHeaderLayoutId("floating"), headerStyleRepairChain([
|
|
8824
|
-
"glass",
|
|
8825
|
-
"minimal-surface",
|
|
8826
|
-
"split-glass",
|
|
8827
|
-
"split-pill",
|
|
8828
|
-
"soft-shell",
|
|
8829
|
-
"brand-pill"
|
|
8830
|
-
])]
|
|
8831
|
-
]);
|
|
8832
|
-
function headerStyleRepairChain(values) {
|
|
8833
|
-
return values.map(asHeaderStyleId);
|
|
8834
|
-
}
|
|
8835
|
-
headerStyleRepairChain([
|
|
8836
|
-
"brand-bar",
|
|
8837
|
-
"brand-pill",
|
|
8838
|
-
"minimal"
|
|
8839
|
-
]), headerStyleRepairChain([
|
|
8840
|
-
"serif-line",
|
|
8841
|
-
"fine-line",
|
|
8842
|
-
"minimal"
|
|
8843
|
-
]), headerStyleRepairChain([
|
|
8844
|
-
"brand-pill",
|
|
8845
|
-
"brand-bar",
|
|
8846
|
-
"minimal"
|
|
8847
|
-
]), headerStyleRepairChain([
|
|
8848
|
-
"brand-capsule",
|
|
8849
|
-
"brand-pill",
|
|
8850
|
-
"brand-bar",
|
|
8851
|
-
"minimal"
|
|
8852
|
-
]), headerStyleRepairChain([
|
|
8853
|
-
"pill-nav",
|
|
8854
|
-
"soft-bar",
|
|
8855
|
-
"minimal"
|
|
8856
|
-
]), headerStyleRepairChain([
|
|
8857
|
-
"flat-tabs",
|
|
8858
|
-
"pill-nav",
|
|
8859
|
-
"minimal"
|
|
8860
|
-
]), headerStyleRepairChain([
|
|
8861
|
-
"serif-line",
|
|
8862
|
-
"fine-line",
|
|
8863
|
-
"minimal"
|
|
8864
|
-
]), headerStyleRepairChain([
|
|
8865
|
-
"glass",
|
|
8866
|
-
"soft-shell",
|
|
8867
|
-
"fine-line",
|
|
8868
|
-
"minimal-surface",
|
|
8869
|
-
"minimal"
|
|
8870
|
-
]), headerStyleRepairChain([
|
|
8871
|
-
"soft-shell",
|
|
8872
|
-
"soft-bar",
|
|
8873
|
-
"minimal"
|
|
8874
|
-
]), headerStyleRepairChain(["minimal-surface", "minimal"]), headerStyleRepairChain([
|
|
8875
|
-
"split-glass",
|
|
8876
|
-
"glass",
|
|
8877
|
-
"minimal-surface"
|
|
8878
|
-
]), headerStyleRepairChain([
|
|
8879
|
-
"split-pill",
|
|
8880
|
-
"soft-shell",
|
|
8881
|
-
"brand-pill"
|
|
8882
|
-
]), headerStyleRepairChain(["fine-line", "minimal"]), headerStyleRepairChain(["soft-bar", "minimal"]), headerStyleRepairChain(["minimal"]);
|
|
8883
|
-
const legacyHeaderLookAliases = defineExactCatalog()([
|
|
8884
|
-
{
|
|
8885
|
-
lookId: asHeaderLookId("clean-base"),
|
|
8886
|
-
selection: {
|
|
8887
|
-
layoutId: asHeaderLayoutId("classic"),
|
|
8888
|
-
styleId: asHeaderStyleId("minimal")
|
|
8889
|
-
}
|
|
8890
|
-
},
|
|
8891
|
-
{
|
|
8892
|
-
lookId: asHeaderLookId("classic-centered-nav"),
|
|
8893
|
-
selection: {
|
|
8894
|
-
layoutId: asHeaderLayoutId("classic"),
|
|
8895
|
-
styleId: asHeaderStyleId("fine-line")
|
|
8896
|
-
}
|
|
8897
|
-
},
|
|
8898
|
-
{
|
|
8899
|
-
lookId: asHeaderLookId("brand-solid"),
|
|
8900
|
-
selection: {
|
|
8901
|
-
layoutId: asHeaderLayoutId("classic"),
|
|
8902
|
-
styleId: asHeaderStyleId("brand-bar")
|
|
8903
|
-
}
|
|
8904
|
-
},
|
|
8905
|
-
{
|
|
8906
|
-
lookId: asHeaderLookId("serif-line"),
|
|
8907
|
-
selection: {
|
|
8908
|
-
layoutId: asHeaderLayoutId("centered"),
|
|
8909
|
-
styleId: asHeaderStyleId("serif-line")
|
|
8910
|
-
}
|
|
8911
|
-
},
|
|
8912
|
-
{
|
|
8913
|
-
lookId: asHeaderLookId("centered-calm"),
|
|
8914
|
-
selection: {
|
|
8915
|
-
layoutId: asHeaderLayoutId("centered"),
|
|
8916
|
-
styleId: asHeaderStyleId("minimal")
|
|
8917
|
-
}
|
|
8918
|
-
},
|
|
8919
|
-
{
|
|
8920
|
-
lookId: asHeaderLookId("practical-utility"),
|
|
8921
|
-
selection: {
|
|
8922
|
-
layoutId: asHeaderLayoutId("classic"),
|
|
8923
|
-
styleId: asHeaderStyleId("flat-tabs")
|
|
8924
|
-
}
|
|
8925
|
-
},
|
|
8926
|
-
{
|
|
8927
|
-
lookId: asHeaderLookId("minimal-transparent"),
|
|
8928
|
-
selection: {
|
|
8929
|
-
layoutId: asHeaderLayoutId("classic"),
|
|
8930
|
-
styleId: asHeaderStyleId("minimal")
|
|
8931
|
-
}
|
|
8932
|
-
},
|
|
8933
|
-
{
|
|
8934
|
-
lookId: asHeaderLookId("transparent-overlay"),
|
|
8935
|
-
selection: {
|
|
8936
|
-
layoutId: asHeaderLayoutId("floating"),
|
|
8937
|
-
styleId: asHeaderStyleId("glass")
|
|
8938
|
-
}
|
|
8939
|
-
},
|
|
8940
|
-
{
|
|
8941
|
-
lookId: asHeaderLookId("floating-glass"),
|
|
8942
|
-
selection: {
|
|
8943
|
-
layoutId: asHeaderLayoutId("floating"),
|
|
8944
|
-
styleId: asHeaderStyleId("glass")
|
|
8945
|
-
}
|
|
8946
|
-
}
|
|
8947
|
-
]);
|
|
8948
|
-
const legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
|
|
8949
|
-
function getHeaderStyle(id) {
|
|
8950
|
-
return headerStylesById.get(id) ?? null;
|
|
8951
|
-
}
|
|
8952
|
-
function isHeaderStyleCompatibleWithLayout(style, layoutId) {
|
|
8953
|
-
return style.supportedLayoutIds.includes(layoutId);
|
|
8954
|
-
}
|
|
8955
|
-
function getHeaderStyleOrThrow(id) {
|
|
8956
|
-
const style = getHeaderStyle(id);
|
|
8957
|
-
if (!style) throw new Error(`Unknown Theme V2 header style: ${id}`);
|
|
8958
|
-
return style;
|
|
8959
|
-
}
|
|
8960
|
-
function resolveLegacyHeaderLookAlias(lookId) {
|
|
8961
|
-
return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
|
|
8654
|
+
new Set(headerLookCatalog.map((look) => headerConfigurationKey(look.configuration)));
|
|
8655
|
+
new Map(headerLookCatalog.map((look) => [look.id, look]));
|
|
8656
|
+
function headerConfigurationKey(configuration) {
|
|
8657
|
+
return `${configuration.structure}:${configuration.treatment}:${configuration.behavior}`;
|
|
8962
8658
|
}
|
|
8963
|
-
|
|
8964
|
-
|
|
8965
|
-
|
|
8966
|
-
|
|
8659
|
+
//#endregion
|
|
8660
|
+
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
8661
|
+
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
8662
|
+
return {
|
|
8663
|
+
family,
|
|
8664
|
+
size,
|
|
8665
|
+
heightCss: heightExpression.includes(" ") ? `calc(${heightExpression})` : heightExpression,
|
|
8666
|
+
reserveCss: `calc((${heightExpression}) / 2)`
|
|
8667
|
+
};
|
|
8967
8668
|
}
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
|
|
8971
|
-
|
|
8972
|
-
|
|
8973
|
-
|
|
8974
|
-
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
case "brand-caps": return {
|
|
8984
|
-
...style,
|
|
8985
|
-
textTransform: "uppercase",
|
|
8986
|
-
textSize: "sm",
|
|
8987
|
-
letterSpacing: "wider"
|
|
8988
|
-
};
|
|
8989
|
-
default: return assertNever$1(typography, "Unhandled header nav typography");
|
|
8669
|
+
boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"), boundaryRuntimeMetrics("gradient", "spacious", "10rem"), boundaryRuntimeMetrics("gradient", "expansive", "14rem"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("wave", "large", "7rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("angle", "large", "7rem + 2px");
|
|
8670
|
+
const noneBoundaryOption = {
|
|
8671
|
+
id: asBoundaryOptionId("break:none"),
|
|
8672
|
+
label: "None",
|
|
8673
|
+
transitionAfter: "none",
|
|
8674
|
+
treatment: { kind: "none" }
|
|
8675
|
+
};
|
|
8676
|
+
const softBoundaryOption = {
|
|
8677
|
+
id: asBoundaryOptionId("break:soft"),
|
|
8678
|
+
label: "Soft",
|
|
8679
|
+
transitionAfter: "soft-fade-short",
|
|
8680
|
+
treatment: {
|
|
8681
|
+
kind: "soft-fade",
|
|
8682
|
+
height: "medium",
|
|
8683
|
+
curve: "soft"
|
|
8990
8684
|
}
|
|
8991
|
-
}
|
|
8992
|
-
|
|
8993
|
-
|
|
8994
|
-
|
|
8995
|
-
|
|
8996
|
-
|
|
8997
|
-
|
|
8998
|
-
|
|
8999
|
-
|
|
9000
|
-
padding: "compact",
|
|
9001
|
-
paddingX: "compact",
|
|
9002
|
-
borderRadius: "none",
|
|
9003
|
-
effects: { hover: [{
|
|
9004
|
-
effectId: "nav-underline",
|
|
9005
|
-
options: {
|
|
9006
|
-
style: "grow",
|
|
9007
|
-
...underlineColorToken ? { colorToken: underlineColorToken } : {}
|
|
9008
|
-
}
|
|
9009
|
-
}] }
|
|
9010
|
-
}, typography);
|
|
9011
|
-
}
|
|
9012
|
-
function themedHeaderShadow(theme) {
|
|
9013
|
-
switch (theme.shadow.elevation) {
|
|
9014
|
-
case "none": return;
|
|
9015
|
-
case "low": return { elevation: "sm" };
|
|
9016
|
-
case "medium": return { elevation: "md" };
|
|
9017
|
-
case "high": return { elevation: "lg" };
|
|
9018
|
-
default: return assertNever$1(theme.shadow.elevation, "Unhandled theme shadow elevation");
|
|
8685
|
+
};
|
|
8686
|
+
const spaciousBoundaryOption = {
|
|
8687
|
+
id: asBoundaryOptionId("break:spacious"),
|
|
8688
|
+
label: "Spacious",
|
|
8689
|
+
transitionAfter: "soft-fade-long",
|
|
8690
|
+
treatment: {
|
|
8691
|
+
kind: "soft-fade",
|
|
8692
|
+
height: "large",
|
|
8693
|
+
curve: "spacious"
|
|
9019
8694
|
}
|
|
8695
|
+
};
|
|
8696
|
+
asBoundaryOptionId("break:expansive");
|
|
8697
|
+
asBoundaryOptionId("break:wave");
|
|
8698
|
+
asBoundaryOptionId("break:wave-balanced");
|
|
8699
|
+
asBoundaryOptionId("break:wave-gentle");
|
|
8700
|
+
asBoundaryOptionId("break:wave-bold");
|
|
8701
|
+
asBoundaryOptionId("break:wave-drift");
|
|
8702
|
+
asBoundaryOptionId("break:angle-subtle");
|
|
8703
|
+
asBoundaryOptionId("break:angle-balanced");
|
|
8704
|
+
asBoundaryOptionId("break:angle-steep");
|
|
8705
|
+
asBoundaryOptionId("break:unknown");
|
|
8706
|
+
const pageDesignUserPinnedAppearanceChoiceSchema = z$1.object({
|
|
8707
|
+
kind: z$1.literal("user-pinned"),
|
|
8708
|
+
value: z$1.string().min(1).transform(asAppearancePresetId)
|
|
8709
|
+
}).strict();
|
|
8710
|
+
const pageDesignUserPinnedBoundaryChoiceSchema = z$1.object({
|
|
8711
|
+
kind: z$1.literal("user-pinned"),
|
|
8712
|
+
value: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
8713
|
+
}).strict();
|
|
8714
|
+
const pageDesignBoundaryTreatmentSchema = z$1.discriminatedUnion("kind", [
|
|
8715
|
+
z$1.object({ kind: z$1.literal("none") }).strict(),
|
|
8716
|
+
z$1.object({
|
|
8717
|
+
kind: z$1.literal("soft-fade"),
|
|
8718
|
+
height: z$1.enum([
|
|
8719
|
+
"compact",
|
|
8720
|
+
"medium",
|
|
8721
|
+
"large",
|
|
8722
|
+
"expansive"
|
|
8723
|
+
]),
|
|
8724
|
+
curve: z$1.enum([
|
|
8725
|
+
"soft",
|
|
8726
|
+
"spacious",
|
|
8727
|
+
"expansive"
|
|
8728
|
+
])
|
|
8729
|
+
}).strict(),
|
|
8730
|
+
z$1.object({
|
|
8731
|
+
kind: z$1.literal("wave-edge"),
|
|
8732
|
+
height: z$1.enum([
|
|
8733
|
+
"compact",
|
|
8734
|
+
"medium",
|
|
8735
|
+
"large"
|
|
8736
|
+
]),
|
|
8737
|
+
amplitude: z$1.enum([
|
|
8738
|
+
"subtle",
|
|
8739
|
+
"balanced",
|
|
8740
|
+
"bold"
|
|
8741
|
+
]),
|
|
8742
|
+
rhythm: z$1.enum(["single", "double"]),
|
|
8743
|
+
symmetry: z$1.enum([
|
|
8744
|
+
"symmetrical",
|
|
8745
|
+
"asymmetrical",
|
|
8746
|
+
"drift"
|
|
8747
|
+
])
|
|
8748
|
+
}).strict(),
|
|
8749
|
+
z$1.object({
|
|
8750
|
+
kind: z$1.literal("angle-edge"),
|
|
8751
|
+
height: z$1.enum([
|
|
8752
|
+
"compact",
|
|
8753
|
+
"medium",
|
|
8754
|
+
"large"
|
|
8755
|
+
]),
|
|
8756
|
+
slope: z$1.enum([
|
|
8757
|
+
"subtle",
|
|
8758
|
+
"balanced",
|
|
8759
|
+
"steep"
|
|
8760
|
+
]),
|
|
8761
|
+
direction: z$1.enum(["forward", "reverse"])
|
|
8762
|
+
}).strict(),
|
|
8763
|
+
z$1.object({
|
|
8764
|
+
kind: z$1.literal("legacy-unsupported"),
|
|
8765
|
+
boundaryOptionId: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
8766
|
+
}).strict()
|
|
8767
|
+
]);
|
|
8768
|
+
const pageDesignUserPinnedBoundaryTreatmentChoiceSchema = z$1.object({
|
|
8769
|
+
kind: z$1.literal("user-pinned"),
|
|
8770
|
+
value: pageDesignBoundaryTreatmentSchema
|
|
8771
|
+
}).strict();
|
|
8772
|
+
const pageDesignBlockLookPinSchema = z$1.object({
|
|
8773
|
+
blockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
8774
|
+
blockKind: z$1.string().min(1),
|
|
8775
|
+
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
8776
|
+
}).strict();
|
|
8777
|
+
const pageDesignBoundaryPinSchema = z$1.object({
|
|
8778
|
+
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
8779
|
+
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
8780
|
+
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
8781
|
+
choice: pageDesignUserPinnedBoundaryTreatmentChoiceSchema
|
|
8782
|
+
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
8783
|
+
const legacyPageDesignBoundaryPinSchema = z$1.object({
|
|
8784
|
+
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
8785
|
+
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
8786
|
+
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
8787
|
+
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
8788
|
+
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
8789
|
+
z$1.object({
|
|
8790
|
+
schemaVersion: z$1.literal(1),
|
|
8791
|
+
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
8792
|
+
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
8793
|
+
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
8794
|
+
boundaryPins: z$1.array(legacyPageDesignBoundaryPinSchema)
|
|
8795
|
+
}).strict().superRefine(validateUniquePageDesignPins);
|
|
8796
|
+
z$1.object({
|
|
8797
|
+
schemaVersion: z$1.literal(2),
|
|
8798
|
+
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
8799
|
+
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
8800
|
+
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
8801
|
+
boundaryPins: z$1.array(pageDesignBoundaryPinSchema)
|
|
8802
|
+
}).strict().superRefine(validateUniquePageDesignPins);
|
|
8803
|
+
function addDuplicateStringIssues(ctx, input) {
|
|
8804
|
+
const seen = /* @__PURE__ */ new Set();
|
|
8805
|
+
const duplicates = /* @__PURE__ */ new Set();
|
|
8806
|
+
for (const value of input.values) {
|
|
8807
|
+
if (seen.has(value)) duplicates.add(value);
|
|
8808
|
+
seen.add(value);
|
|
8809
|
+
}
|
|
8810
|
+
for (const duplicate of duplicates) ctx.addIssue({
|
|
8811
|
+
code: z$1.ZodIssueCode.custom,
|
|
8812
|
+
path: [...input.path],
|
|
8813
|
+
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
8814
|
+
});
|
|
9020
8815
|
}
|
|
9021
|
-
function
|
|
9022
|
-
const
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
background: {
|
|
9029
|
-
type: "color",
|
|
9030
|
-
color: "primary"
|
|
9031
|
-
},
|
|
9032
|
-
textColor: "primaryForeground",
|
|
9033
|
-
navColor: "primaryForeground",
|
|
9034
|
-
navStyle: "underline-grow",
|
|
9035
|
-
navWeight: "bold",
|
|
9036
|
-
navLinkStyle: {
|
|
9037
|
-
typography: "body",
|
|
9038
|
-
fontWeight: "bold",
|
|
9039
|
-
textTransform: "uppercase",
|
|
9040
|
-
italic: false,
|
|
9041
|
-
colorToken: "primaryForeground",
|
|
9042
|
-
hoverColorToken: "secondary",
|
|
9043
|
-
textSize: "sm",
|
|
9044
|
-
letterSpacing: "wider",
|
|
9045
|
-
padding: "compact",
|
|
9046
|
-
paddingX: "compact",
|
|
9047
|
-
borderRadius: "none",
|
|
9048
|
-
effects: { hover: [{
|
|
9049
|
-
effectId: "text-color-change",
|
|
9050
|
-
options: { hoverColorToken: "secondary" }
|
|
9051
|
-
}, {
|
|
9052
|
-
effectId: "nav-underline",
|
|
9053
|
-
options: {
|
|
9054
|
-
style: "grow",
|
|
9055
|
-
colorToken: "secondary"
|
|
9056
|
-
}
|
|
9057
|
-
}] }
|
|
9058
|
-
},
|
|
9059
|
-
dropdownStyle: {
|
|
9060
|
-
background: "primary-700",
|
|
9061
|
-
textColor: "primaryForeground",
|
|
9062
|
-
borderColor: null,
|
|
9063
|
-
shadow: "md",
|
|
9064
|
-
borderRadius: "md",
|
|
9065
|
-
hoverBackground: "primary-900",
|
|
9066
|
-
hoverTextColor: "secondary",
|
|
9067
|
-
textTransform: "uppercase",
|
|
9068
|
-
letterSpacing: "wider",
|
|
9069
|
-
fontWeight: "bold",
|
|
9070
|
-
textSize: "sm"
|
|
9071
|
-
},
|
|
9072
|
-
border: {
|
|
9073
|
-
style: "solid",
|
|
9074
|
-
width: "none",
|
|
9075
|
-
position: "none"
|
|
9076
|
-
},
|
|
9077
|
-
logoText: {
|
|
9078
|
-
hideOnShrink: true,
|
|
9079
|
-
mobileMaxWidth: "sm",
|
|
9080
|
-
mobileWrapLines: 2
|
|
9081
|
-
},
|
|
9082
|
-
ctaGap: "compact",
|
|
9083
|
-
ctaTreatment: "inverted",
|
|
9084
|
-
...ctaVariant ? { ctaVariant } : {}
|
|
9085
|
-
};
|
|
9086
|
-
}
|
|
9087
|
-
function cleanBaseHeader(theme) {
|
|
9088
|
-
return {
|
|
9089
|
-
...baseHeader(theme),
|
|
9090
|
-
variant: "classic",
|
|
9091
|
-
positioning: "sticky",
|
|
9092
|
-
shrinkOnScroll: false,
|
|
9093
|
-
background: {
|
|
9094
|
-
type: "color",
|
|
9095
|
-
color: "surface"
|
|
9096
|
-
},
|
|
9097
|
-
textColor: "text",
|
|
9098
|
-
navColor: "text",
|
|
9099
|
-
navStyle: "minimal",
|
|
9100
|
-
navWeight: "medium",
|
|
9101
|
-
border: {
|
|
9102
|
-
style: "solid",
|
|
9103
|
-
width: "thin",
|
|
9104
|
-
position: "bottom",
|
|
9105
|
-
colorToken: "border"
|
|
9106
|
-
},
|
|
9107
|
-
ctaTreatment: "default",
|
|
9108
|
-
ctaGap: "default"
|
|
9109
|
-
};
|
|
8816
|
+
function validateBoundaryPinIdMatchesBlocks(pin, ctx) {
|
|
8817
|
+
const expectedBoundaryId = makeBoundaryId(pin.previousBlockId, pin.nextBlockId);
|
|
8818
|
+
if (pin.boundaryId !== expectedBoundaryId) ctx.addIssue({
|
|
8819
|
+
code: z$1.ZodIssueCode.custom,
|
|
8820
|
+
path: ["boundaryId"],
|
|
8821
|
+
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
8822
|
+
});
|
|
9110
8823
|
}
|
|
9111
|
-
function
|
|
9112
|
-
|
|
9113
|
-
|
|
9114
|
-
|
|
9115
|
-
|
|
9116
|
-
|
|
9117
|
-
|
|
9118
|
-
|
|
9119
|
-
|
|
9120
|
-
|
|
9121
|
-
|
|
9122
|
-
textColor: "text",
|
|
9123
|
-
navColor: "text",
|
|
9124
|
-
navStyle: "underline-grow",
|
|
9125
|
-
navWeight: "medium",
|
|
9126
|
-
navLinkStyle: underlineNavLinkStyle("text", "accent"),
|
|
9127
|
-
border: {
|
|
9128
|
-
style: "solid",
|
|
9129
|
-
width: "thin",
|
|
9130
|
-
position: "bottom",
|
|
9131
|
-
colorToken: "border"
|
|
9132
|
-
},
|
|
9133
|
-
ctaTreatment: "primary",
|
|
9134
|
-
ctaVariant: resolveHeaderCtaVariant(theme, "primary"),
|
|
9135
|
-
ctaGap: "default",
|
|
9136
|
-
logoText: {
|
|
9137
|
-
mobileMaxWidth: "sm",
|
|
9138
|
-
mobileWrapLines: 1,
|
|
9139
|
-
hideOnShrink: false
|
|
9140
|
-
}
|
|
9141
|
-
};
|
|
8824
|
+
function validateUniquePageDesignPins(intent, ctx) {
|
|
8825
|
+
addDuplicateStringIssues(ctx, {
|
|
8826
|
+
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
8827
|
+
path: ["blockLookPins"],
|
|
8828
|
+
label: "block Look pin"
|
|
8829
|
+
});
|
|
8830
|
+
addDuplicateStringIssues(ctx, {
|
|
8831
|
+
values: intent.boundaryPins.map((pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)),
|
|
8832
|
+
path: ["boundaryPins"],
|
|
8833
|
+
label: "boundary pin"
|
|
8834
|
+
});
|
|
9142
8835
|
}
|
|
9143
|
-
function
|
|
9144
|
-
return
|
|
9145
|
-
...baseHeader(theme),
|
|
9146
|
-
variant: "centered",
|
|
9147
|
-
positioning: "sticky",
|
|
9148
|
-
shrinkOnScroll: false,
|
|
9149
|
-
background: {
|
|
9150
|
-
type: "color",
|
|
9151
|
-
color: "background"
|
|
9152
|
-
},
|
|
9153
|
-
textColor: "text",
|
|
9154
|
-
navColor: "text",
|
|
9155
|
-
navStyle: "underline-grow",
|
|
9156
|
-
navWeight: "medium",
|
|
9157
|
-
logo: {
|
|
9158
|
-
fontFamily: "heading",
|
|
9159
|
-
letterSpacing: "wide",
|
|
9160
|
-
gradient: false
|
|
9161
|
-
},
|
|
9162
|
-
border: {
|
|
9163
|
-
style: "solid",
|
|
9164
|
-
width: "none",
|
|
9165
|
-
position: "none"
|
|
9166
|
-
},
|
|
9167
|
-
shadow: { elevation: "none" },
|
|
9168
|
-
ctaTreatment: "outline",
|
|
9169
|
-
ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
|
|
9170
|
-
ctaGap: "relaxed"
|
|
9171
|
-
};
|
|
8836
|
+
function boundaryKey(previousBlockId, nextBlockId) {
|
|
8837
|
+
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
9172
8838
|
}
|
|
9173
|
-
|
|
9174
|
-
|
|
9175
|
-
|
|
9176
|
-
|
|
9177
|
-
|
|
9178
|
-
|
|
9179
|
-
|
|
9180
|
-
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
|
|
9185
|
-
|
|
9186
|
-
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9190
|
-
|
|
9191
|
-
|
|
9192
|
-
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9199
|
-
|
|
9200
|
-
|
|
9201
|
-
|
|
9202
|
-
|
|
9203
|
-
|
|
9204
|
-
|
|
9205
|
-
|
|
9206
|
-
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
|
|
9210
|
-
|
|
9211
|
-
|
|
9212
|
-
|
|
9213
|
-
|
|
9214
|
-
|
|
9215
|
-
|
|
9216
|
-
logoText: {
|
|
9217
|
-
mobileMaxWidth: "sm",
|
|
9218
|
-
mobileWrapLines: 1,
|
|
9219
|
-
hideOnShrink: false
|
|
8839
|
+
//#endregion
|
|
8840
|
+
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
8841
|
+
/**
|
|
8842
|
+
* Reusable accordion "looks" for curated site styles.
|
|
8843
|
+
*
|
|
8844
|
+
* Each curated site style should declare one of these (or a bespoke variant)
|
|
8845
|
+
* via `themeOverrides.accordions` so its FAQ accordions carry the style's
|
|
8846
|
+
* personality instead of falling back to the generic generated default. The
|
|
8847
|
+
* looks vary the things that make an accordion read as designed vs. cheap:
|
|
8848
|
+
* box vs. boxless, question typography (body vs. heading font + scale), icon,
|
|
8849
|
+
* and how an open item is emphasised.
|
|
8850
|
+
*/
|
|
8851
|
+
/**
|
|
8852
|
+
* Boxless editorial list: transparent root, hairline dividers between rows,
|
|
8853
|
+
* generous spacing, heading-font questions, plus/minus marks, and an accented
|
|
8854
|
+
* tinted band on the open row. The reference "expensive" FAQ look.
|
|
8855
|
+
*/
|
|
8856
|
+
const editorialDividedAccordionSystem = {
|
|
8857
|
+
background: null,
|
|
8858
|
+
spacing: "comfortable",
|
|
8859
|
+
corners: "square",
|
|
8860
|
+
border: null,
|
|
8861
|
+
shadow: null,
|
|
8862
|
+
icon: {
|
|
8863
|
+
style: "plus-minus",
|
|
8864
|
+
position: "right",
|
|
8865
|
+
size: "md",
|
|
8866
|
+
colorToken: "primary"
|
|
8867
|
+
},
|
|
8868
|
+
trigger: {
|
|
8869
|
+
textColorToken: "text",
|
|
8870
|
+
fontWeight: "regular",
|
|
8871
|
+
fontFamily: "heading",
|
|
8872
|
+
fontScale: "lg"
|
|
8873
|
+
},
|
|
8874
|
+
hover: { textColorToken: "primary" },
|
|
8875
|
+
openState: {
|
|
8876
|
+
backgroundColorToken: "surfaceAlt",
|
|
8877
|
+
triggerColorToken: "primary",
|
|
8878
|
+
accent: {
|
|
8879
|
+
edge: "left",
|
|
8880
|
+
colorToken: "primary",
|
|
8881
|
+
thickness: "medium"
|
|
9220
8882
|
}
|
|
9221
|
-
}
|
|
9222
|
-
}
|
|
9223
|
-
|
|
9224
|
-
|
|
9225
|
-
|
|
9226
|
-
|
|
9227
|
-
|
|
9228
|
-
|
|
9229
|
-
|
|
9230
|
-
|
|
9231
|
-
|
|
9232
|
-
|
|
9233
|
-
|
|
9234
|
-
|
|
9235
|
-
|
|
9236
|
-
|
|
9237
|
-
|
|
9238
|
-
|
|
9239
|
-
|
|
9240
|
-
|
|
9241
|
-
|
|
9242
|
-
|
|
9243
|
-
|
|
9244
|
-
|
|
9245
|
-
|
|
9246
|
-
}
|
|
9247
|
-
|
|
9248
|
-
|
|
9249
|
-
|
|
9250
|
-
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
|
|
9254
|
-
|
|
9255
|
-
|
|
9256
|
-
|
|
9257
|
-
|
|
9258
|
-
|
|
9259
|
-
|
|
9260
|
-
|
|
9261
|
-
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9268
|
-
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9272
|
-
|
|
9273
|
-
|
|
9274
|
-
|
|
9275
|
-
|
|
9276
|
-
|
|
9277
|
-
|
|
9278
|
-
|
|
9279
|
-
|
|
9280
|
-
|
|
9281
|
-
|
|
9282
|
-
|
|
9283
|
-
|
|
9284
|
-
|
|
9285
|
-
|
|
9286
|
-
|
|
9287
|
-
|
|
9288
|
-
|
|
8883
|
+
},
|
|
8884
|
+
content: { textColorToken: "neutral-700" }
|
|
8885
|
+
};
|
|
8886
|
+
/**
|
|
8887
|
+
* Quiet, airy underlined rows: transparent, spacious, large calm heading-font
|
|
8888
|
+
* questions, a small subtle chevron, and open emphasis carried only by the
|
|
8889
|
+
* question recolouring. For minimal / premium / wellness styles.
|
|
8890
|
+
*/
|
|
8891
|
+
const quietUnderlinedAccordionSystem = {
|
|
8892
|
+
background: null,
|
|
8893
|
+
spacing: "spacious",
|
|
8894
|
+
corners: "square",
|
|
8895
|
+
border: null,
|
|
8896
|
+
shadow: null,
|
|
8897
|
+
icon: {
|
|
8898
|
+
style: "chevron",
|
|
8899
|
+
position: "right",
|
|
8900
|
+
size: "sm",
|
|
8901
|
+
colorToken: "muted"
|
|
8902
|
+
},
|
|
8903
|
+
trigger: {
|
|
8904
|
+
textColorToken: "text",
|
|
8905
|
+
fontWeight: "regular",
|
|
8906
|
+
fontFamily: "heading",
|
|
8907
|
+
fontScale: "lg"
|
|
8908
|
+
},
|
|
8909
|
+
hover: { textColorToken: "primary" },
|
|
8910
|
+
openState: { triggerColorToken: "primary" },
|
|
8911
|
+
content: { textColorToken: "neutral-700" }
|
|
8912
|
+
};
|
|
8913
|
+
/**
|
|
8914
|
+
* Soft contained panel: a gentle surface box with soft corners, a hairline
|
|
8915
|
+
* border and a low shadow, heading-font questions at a moderate size, chevron,
|
|
8916
|
+
* and a tinted open state. For clean, trustworthy, appointment-led styles.
|
|
8917
|
+
*/
|
|
8918
|
+
const calmPanelAccordionSystem = {
|
|
8919
|
+
background: {
|
|
8920
|
+
type: "solid",
|
|
8921
|
+
colorToken: "surface"
|
|
8922
|
+
},
|
|
8923
|
+
spacing: "comfortable",
|
|
8924
|
+
corners: "soft",
|
|
8925
|
+
border: {
|
|
8926
|
+
widthClass: "border",
|
|
8927
|
+
colorToken: "border"
|
|
8928
|
+
},
|
|
8929
|
+
shadow: {
|
|
8930
|
+
elevation: "low",
|
|
8931
|
+
softness: "soft",
|
|
8932
|
+
position: "bottom"
|
|
8933
|
+
},
|
|
8934
|
+
icon: {
|
|
8935
|
+
style: "chevron",
|
|
8936
|
+
position: "right",
|
|
8937
|
+
size: "md",
|
|
8938
|
+
colorToken: "primary"
|
|
8939
|
+
},
|
|
8940
|
+
trigger: {
|
|
8941
|
+
textColorToken: "text",
|
|
8942
|
+
fontWeight: "medium",
|
|
8943
|
+
fontFamily: "heading",
|
|
8944
|
+
fontScale: "md"
|
|
8945
|
+
},
|
|
8946
|
+
hover: {
|
|
8947
|
+
backgroundColorToken: "primary/5",
|
|
8948
|
+
textColorToken: "primary"
|
|
8949
|
+
},
|
|
8950
|
+
openState: {
|
|
8951
|
+
backgroundColorToken: "primary/5",
|
|
8952
|
+
triggerColorToken: "primary"
|
|
8953
|
+
},
|
|
8954
|
+
content: { textColorToken: "neutral-700" }
|
|
8955
|
+
};
|
|
8956
|
+
/**
|
|
8957
|
+
* Bold bordered panel: a strong-bordered surface box, bold heading-font
|
|
8958
|
+
* questions, large plus/minus marks, and a high-emphasis tinted + accented
|
|
8959
|
+
* open state. For confident, conversion-led, high-energy styles.
|
|
8960
|
+
*/
|
|
8961
|
+
const boldBorderedAccordionSystem = {
|
|
8962
|
+
background: {
|
|
8963
|
+
type: "solid",
|
|
8964
|
+
colorToken: "surface"
|
|
8965
|
+
},
|
|
8966
|
+
spacing: "comfortable",
|
|
8967
|
+
corners: "soft",
|
|
8968
|
+
border: {
|
|
8969
|
+
widthClass: "border-2",
|
|
8970
|
+
colorToken: "border"
|
|
8971
|
+
},
|
|
8972
|
+
shadow: null,
|
|
8973
|
+
icon: {
|
|
8974
|
+
style: "plus-minus",
|
|
8975
|
+
position: "right",
|
|
8976
|
+
size: "lg",
|
|
8977
|
+
colorToken: "primary"
|
|
8978
|
+
},
|
|
8979
|
+
trigger: {
|
|
8980
|
+
textColorToken: "text",
|
|
8981
|
+
fontWeight: "bold",
|
|
8982
|
+
fontFamily: "heading",
|
|
8983
|
+
fontScale: "md"
|
|
8984
|
+
},
|
|
8985
|
+
hover: {
|
|
8986
|
+
backgroundColorToken: "primary/10",
|
|
8987
|
+
textColorToken: "primary"
|
|
8988
|
+
},
|
|
8989
|
+
openState: {
|
|
8990
|
+
backgroundColorToken: "primary/10",
|
|
8991
|
+
triggerColorToken: "primary",
|
|
8992
|
+
accent: {
|
|
8993
|
+
edge: "left",
|
|
8994
|
+
colorToken: "primary",
|
|
8995
|
+
thickness: "thick"
|
|
9289
8996
|
}
|
|
9290
|
-
}
|
|
9291
|
-
}
|
|
9292
|
-
|
|
8997
|
+
},
|
|
8998
|
+
content: { textColorToken: "neutral-700" }
|
|
8999
|
+
};
|
|
9000
|
+
/**
|
|
9001
|
+
* Warm inset tiles: a tinted (surfaceAlt) root with rounded corners and no
|
|
9002
|
+
* border; the open row lifts to the lighter surface colour. Friendly,
|
|
9003
|
+
* hands-on, community styles.
|
|
9004
|
+
*/
|
|
9005
|
+
const warmInsetAccordionSystem = {
|
|
9006
|
+
background: {
|
|
9007
|
+
type: "solid",
|
|
9008
|
+
colorToken: "surfaceAlt"
|
|
9009
|
+
},
|
|
9010
|
+
spacing: "comfortable",
|
|
9011
|
+
corners: "rounded",
|
|
9012
|
+
border: null,
|
|
9013
|
+
shadow: null,
|
|
9014
|
+
icon: {
|
|
9015
|
+
style: "circle-plus-minus",
|
|
9016
|
+
position: "right",
|
|
9017
|
+
size: "md",
|
|
9018
|
+
colorToken: "primary"
|
|
9019
|
+
},
|
|
9020
|
+
trigger: {
|
|
9021
|
+
textColorToken: "text",
|
|
9022
|
+
fontWeight: "semibold",
|
|
9023
|
+
fontFamily: "heading",
|
|
9024
|
+
fontScale: "md"
|
|
9025
|
+
},
|
|
9026
|
+
hover: {
|
|
9027
|
+
backgroundColorToken: "primary/5",
|
|
9028
|
+
textColorToken: "primary"
|
|
9029
|
+
},
|
|
9030
|
+
openState: {
|
|
9031
|
+
backgroundColorToken: "surface",
|
|
9032
|
+
triggerColorToken: "primary"
|
|
9033
|
+
},
|
|
9034
|
+
content: { textColorToken: "neutral-700" }
|
|
9035
|
+
};
|
|
9036
|
+
/**
|
|
9037
|
+
* Soft Earth's grounded look: boxless, plus/minus, heading-font questions on
|
|
9038
|
+
* a warm ground, with a quiet open recolour.
|
|
9039
|
+
*/
|
|
9040
|
+
const softEarthAccordionSystem = {
|
|
9041
|
+
background: {
|
|
9042
|
+
type: "solid",
|
|
9043
|
+
colorToken: "background"
|
|
9044
|
+
},
|
|
9045
|
+
spacing: "comfortable",
|
|
9046
|
+
corners: "square",
|
|
9047
|
+
border: null,
|
|
9048
|
+
shadow: null,
|
|
9049
|
+
icon: {
|
|
9050
|
+
style: "plus-minus",
|
|
9051
|
+
position: "right",
|
|
9052
|
+
size: "md",
|
|
9053
|
+
colorToken: "primary"
|
|
9054
|
+
},
|
|
9055
|
+
trigger: {
|
|
9056
|
+
textColorToken: "text",
|
|
9057
|
+
fontWeight: "medium",
|
|
9058
|
+
fontFamily: "heading",
|
|
9059
|
+
fontScale: "md"
|
|
9060
|
+
},
|
|
9061
|
+
hover: { textColorToken: "primary" },
|
|
9062
|
+
openState: { triggerColorToken: "primary" },
|
|
9063
|
+
content: { textColorToken: "neutral-700" }
|
|
9064
|
+
};
|
|
9065
|
+
//#endregion
|
|
9066
|
+
//#region ../theme-core/src/cards/siteStyleDefaults.ts
|
|
9067
|
+
/**
|
|
9068
|
+
* Reusable card systems for curated site styles.
|
|
9069
|
+
*
|
|
9070
|
+
* generateCardCss emits a `.card-{id}` class per enabled variant. The
|
|
9071
|
+
* intended convention (block-level role selection is wired in a follow-up) is
|
|
9072
|
+
* a role pair:
|
|
9073
|
+
* - `default` — the quiet, everyday card (most blocks, most of the time)
|
|
9074
|
+
* - `alternative` — the prominent "statement" card for sections that pop
|
|
9075
|
+
* A card-heavy site style may add a third; the schema allows up to three
|
|
9076
|
+
* variants. The planned fallback when a block references a missing variant is
|
|
9077
|
+
* `alternative`, then `default`.
|
|
9078
|
+
*
|
|
9079
|
+
* Keep `default` close to the generated baseline so shared consumers (event
|
|
9080
|
+
* cards, testimonials) stay stable; put the personality in `alternative`.
|
|
9081
|
+
*/
|
|
9082
|
+
/**
|
|
9083
|
+
* South West Twerk School: a quiet default surface card plus a high-impact
|
|
9084
|
+
* "statement" card that reproduces the legacy accent-quote testimonial surface
|
|
9085
|
+
* — burgundy fill, light text, a heavy gold left accent bar, and an expressive
|
|
9086
|
+
* asymmetric top-right corner.
|
|
9087
|
+
*/
|
|
9088
|
+
const southWestCardSystem = { variants: [{
|
|
9089
|
+
id: "default",
|
|
9090
|
+
name: "Default",
|
|
9091
|
+
enabled: true,
|
|
9092
|
+
priority: 1,
|
|
9093
|
+
background: {
|
|
9094
|
+
type: "solid",
|
|
9095
|
+
colorToken: "surface"
|
|
9096
|
+
},
|
|
9097
|
+
foregroundToken: "text",
|
|
9098
|
+
spacing: "comfortable",
|
|
9099
|
+
corners: "soft",
|
|
9100
|
+
shadow: {
|
|
9101
|
+
elevation: "low",
|
|
9102
|
+
softness: "soft",
|
|
9103
|
+
position: "bottom"
|
|
9104
|
+
}
|
|
9105
|
+
}, {
|
|
9106
|
+
id: "alternative",
|
|
9107
|
+
name: "Statement",
|
|
9108
|
+
enabled: true,
|
|
9109
|
+
priority: 2,
|
|
9110
|
+
background: {
|
|
9111
|
+
type: "solid",
|
|
9112
|
+
colorToken: "primary-700"
|
|
9113
|
+
},
|
|
9114
|
+
foregroundToken: "primaryForeground",
|
|
9115
|
+
spacing: "comfortable",
|
|
9116
|
+
shadow: {
|
|
9117
|
+
elevation: "none",
|
|
9118
|
+
softness: null,
|
|
9119
|
+
position: "bottom"
|
|
9120
|
+
},
|
|
9121
|
+
accentEdge: {
|
|
9122
|
+
edge: "left",
|
|
9123
|
+
colorToken: "secondary",
|
|
9124
|
+
width: "heavy"
|
|
9125
|
+
},
|
|
9126
|
+
cornerRadii: {
|
|
9127
|
+
topLeft: "square",
|
|
9128
|
+
topRight: "expressive",
|
|
9129
|
+
bottomLeft: "square",
|
|
9130
|
+
bottomRight: "square"
|
|
9131
|
+
}
|
|
9132
|
+
}] };
|
|
9133
|
+
const clarityZenCardSystem = { variants: [{
|
|
9134
|
+
id: "default",
|
|
9135
|
+
name: "Default",
|
|
9136
|
+
enabled: true,
|
|
9137
|
+
priority: 1,
|
|
9138
|
+
background: {
|
|
9139
|
+
type: "solid",
|
|
9140
|
+
colorToken: "surface"
|
|
9141
|
+
},
|
|
9142
|
+
foregroundToken: "text",
|
|
9143
|
+
spacing: "comfortable",
|
|
9144
|
+
corners: "rounded",
|
|
9145
|
+
shadow: {
|
|
9146
|
+
elevation: "low",
|
|
9147
|
+
softness: "soft",
|
|
9148
|
+
position: "bottom"
|
|
9149
|
+
}
|
|
9150
|
+
}, {
|
|
9151
|
+
id: "alternative",
|
|
9152
|
+
name: "Statement",
|
|
9153
|
+
enabled: true,
|
|
9154
|
+
priority: 2,
|
|
9155
|
+
background: {
|
|
9156
|
+
type: "solid",
|
|
9157
|
+
colorToken: "surfaceAlt"
|
|
9158
|
+
},
|
|
9159
|
+
foregroundToken: "text",
|
|
9160
|
+
spacing: "comfortable",
|
|
9161
|
+
corners: "rounded",
|
|
9162
|
+
shadow: {
|
|
9163
|
+
elevation: "medium",
|
|
9164
|
+
softness: "soft",
|
|
9165
|
+
position: "bottom"
|
|
9166
|
+
}
|
|
9167
|
+
}] };
|
|
9168
|
+
/**
|
|
9169
|
+
* Original Joy: warm, flat, generously rounded cards on the dark clay ground.
|
|
9170
|
+
* `default` is a quiet brown surface card with cream text; `alternative` is a
|
|
9171
|
+
* burnt-orange statement card for sections that should pop. Both flat (the
|
|
9172
|
+
* look's depth comes from colour, not shadow), matching the bold editorial
|
|
9173
|
+
* feel. Shared by event and testimonial cards.
|
|
9174
|
+
*/
|
|
9175
|
+
const originalJoyCardSystem = { variants: [{
|
|
9176
|
+
id: "default",
|
|
9177
|
+
name: "Default",
|
|
9178
|
+
enabled: true,
|
|
9179
|
+
priority: 1,
|
|
9180
|
+
background: {
|
|
9181
|
+
type: "solid",
|
|
9182
|
+
colorToken: "surface"
|
|
9183
|
+
},
|
|
9184
|
+
foregroundToken: "text",
|
|
9185
|
+
spacing: "comfortable",
|
|
9186
|
+
corners: "rounded",
|
|
9187
|
+
shadow: {
|
|
9188
|
+
elevation: "none",
|
|
9189
|
+
softness: null,
|
|
9190
|
+
position: "bottom"
|
|
9191
|
+
}
|
|
9192
|
+
}, {
|
|
9193
|
+
id: "alternative",
|
|
9194
|
+
name: "Statement",
|
|
9195
|
+
enabled: true,
|
|
9196
|
+
priority: 2,
|
|
9197
|
+
background: {
|
|
9198
|
+
type: "solid",
|
|
9199
|
+
colorToken: "primary"
|
|
9200
|
+
},
|
|
9201
|
+
foregroundToken: "primaryForeground",
|
|
9202
|
+
spacing: "comfortable",
|
|
9203
|
+
corners: "rounded",
|
|
9204
|
+
shadow: {
|
|
9205
|
+
elevation: "none",
|
|
9206
|
+
softness: null,
|
|
9207
|
+
position: "bottom"
|
|
9208
|
+
}
|
|
9209
|
+
}] };
|
|
9210
|
+
//#endregion
|
|
9211
|
+
//#region ../theme-core/src/site-styles/testimonialQuotePresets.ts
|
|
9212
|
+
/**
|
|
9213
|
+
* Reusable testimonial quote-mark treatments for curated site styles.
|
|
9214
|
+
*
|
|
9215
|
+
* The quote mark is brand identity the site style owns (analogous to the FAQ
|
|
9216
|
+
* accordion icon); every curated style declares one. `style` is the coarse
|
|
9217
|
+
* selector and the resolver in blocks/vars/testimonials.ts fills in the rest.
|
|
9218
|
+
*/
|
|
9219
|
+
/** Large display quotation mark in the heading font. Editorial / calm styles. */
|
|
9220
|
+
const serifDisplayQuote = { style: "serif-display" };
|
|
9221
|
+
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
9222
|
+
const accentGlyphQuote = { style: "accent-glyph" };
|
|
9223
|
+
/**
|
|
9224
|
+
* Curated library of gradient presets.
|
|
9225
|
+
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
9226
|
+
*/
|
|
9227
|
+
const GRADIENT_PRESETS = [
|
|
9293
9228
|
{
|
|
9294
|
-
id:
|
|
9295
|
-
|
|
9296
|
-
|
|
9297
|
-
|
|
9298
|
-
|
|
9299
|
-
|
|
9300
|
-
|
|
9301
|
-
|
|
9302
|
-
},
|
|
9303
|
-
|
|
9304
|
-
|
|
9305
|
-
|
|
9229
|
+
id: "primary-secondary",
|
|
9230
|
+
name: "Primary to Secondary",
|
|
9231
|
+
description: "Blend your primary and secondary brand colors",
|
|
9232
|
+
type: "linear",
|
|
9233
|
+
angle: 135,
|
|
9234
|
+
stops: [{
|
|
9235
|
+
color: "primary-500",
|
|
9236
|
+
position: 0
|
|
9237
|
+
}, {
|
|
9238
|
+
color: "secondary-500",
|
|
9239
|
+
position: 100
|
|
9240
|
+
}]
|
|
9306
9241
|
},
|
|
9307
9242
|
{
|
|
9308
|
-
id:
|
|
9309
|
-
|
|
9310
|
-
|
|
9311
|
-
|
|
9312
|
-
|
|
9313
|
-
|
|
9314
|
-
|
|
9315
|
-
|
|
9316
|
-
},
|
|
9317
|
-
|
|
9318
|
-
|
|
9319
|
-
|
|
9320
|
-
compile: classicCenteredNavHeader
|
|
9243
|
+
id: "primary-accent",
|
|
9244
|
+
name: "Primary to Accent",
|
|
9245
|
+
description: "Energetic gradient from primary to accent",
|
|
9246
|
+
type: "linear",
|
|
9247
|
+
angle: 135,
|
|
9248
|
+
stops: [{
|
|
9249
|
+
color: "primary-500",
|
|
9250
|
+
position: 0
|
|
9251
|
+
}, {
|
|
9252
|
+
color: "accent-500",
|
|
9253
|
+
position: 100
|
|
9254
|
+
}]
|
|
9321
9255
|
},
|
|
9322
9256
|
{
|
|
9323
|
-
id:
|
|
9324
|
-
|
|
9325
|
-
|
|
9326
|
-
|
|
9327
|
-
|
|
9328
|
-
|
|
9329
|
-
|
|
9330
|
-
|
|
9331
|
-
},
|
|
9332
|
-
|
|
9333
|
-
|
|
9334
|
-
|
|
9257
|
+
id: "secondary-accent",
|
|
9258
|
+
name: "Secondary to Accent",
|
|
9259
|
+
description: "Vibrant secondary to accent blend",
|
|
9260
|
+
type: "linear",
|
|
9261
|
+
angle: 135,
|
|
9262
|
+
stops: [{
|
|
9263
|
+
color: "secondary-500",
|
|
9264
|
+
position: 0
|
|
9265
|
+
}, {
|
|
9266
|
+
color: "accent-500",
|
|
9267
|
+
position: 100
|
|
9268
|
+
}]
|
|
9335
9269
|
},
|
|
9336
9270
|
{
|
|
9337
|
-
id:
|
|
9338
|
-
|
|
9339
|
-
|
|
9340
|
-
|
|
9341
|
-
|
|
9342
|
-
|
|
9343
|
-
|
|
9344
|
-
|
|
9345
|
-
},
|
|
9346
|
-
|
|
9347
|
-
|
|
9348
|
-
|
|
9349
|
-
compile: serifLineHeader
|
|
9271
|
+
id: "primary-light-dark",
|
|
9272
|
+
name: "Primary Light to Dark",
|
|
9273
|
+
description: "Subtle primary color fade",
|
|
9274
|
+
type: "linear",
|
|
9275
|
+
angle: 180,
|
|
9276
|
+
stops: [{
|
|
9277
|
+
color: "primary-500",
|
|
9278
|
+
position: 0
|
|
9279
|
+
}, {
|
|
9280
|
+
color: "primary-900",
|
|
9281
|
+
position: 100
|
|
9282
|
+
}]
|
|
9350
9283
|
},
|
|
9351
9284
|
{
|
|
9352
|
-
id:
|
|
9353
|
-
|
|
9354
|
-
|
|
9355
|
-
|
|
9356
|
-
|
|
9357
|
-
|
|
9358
|
-
|
|
9359
|
-
|
|
9360
|
-
},
|
|
9361
|
-
|
|
9362
|
-
|
|
9363
|
-
|
|
9364
|
-
compile: centeredCalmHeader
|
|
9285
|
+
id: "primary-dark-light",
|
|
9286
|
+
name: "Primary Dark to Light",
|
|
9287
|
+
description: "Reverse primary fade",
|
|
9288
|
+
type: "linear",
|
|
9289
|
+
angle: 180,
|
|
9290
|
+
stops: [{
|
|
9291
|
+
color: "primary-900",
|
|
9292
|
+
position: 0
|
|
9293
|
+
}, {
|
|
9294
|
+
color: "primary-50",
|
|
9295
|
+
position: 100
|
|
9296
|
+
}]
|
|
9365
9297
|
},
|
|
9366
9298
|
{
|
|
9367
|
-
id:
|
|
9368
|
-
|
|
9369
|
-
|
|
9370
|
-
|
|
9371
|
-
|
|
9372
|
-
|
|
9373
|
-
|
|
9374
|
-
|
|
9375
|
-
},
|
|
9376
|
-
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9299
|
+
id: "secondary-light-dark",
|
|
9300
|
+
name: "Secondary Light to Dark",
|
|
9301
|
+
description: "Subtle secondary color fade",
|
|
9302
|
+
type: "linear",
|
|
9303
|
+
angle: 180,
|
|
9304
|
+
stops: [{
|
|
9305
|
+
color: "secondary-500",
|
|
9306
|
+
position: 0
|
|
9307
|
+
}, {
|
|
9308
|
+
color: "secondary-900",
|
|
9309
|
+
position: 100
|
|
9310
|
+
}]
|
|
9311
|
+
},
|
|
9312
|
+
{
|
|
9313
|
+
id: "accent-light-dark",
|
|
9314
|
+
name: "Accent Light to Dark",
|
|
9315
|
+
description: "Accent color depth fade",
|
|
9316
|
+
type: "linear",
|
|
9317
|
+
angle: 180,
|
|
9318
|
+
stops: [{
|
|
9319
|
+
color: "accent-500",
|
|
9320
|
+
position: 0
|
|
9321
|
+
}, {
|
|
9322
|
+
color: "accent-900",
|
|
9323
|
+
position: 100
|
|
9324
|
+
}]
|
|
9325
|
+
},
|
|
9326
|
+
{
|
|
9327
|
+
id: "background-surface",
|
|
9328
|
+
name: "Background to Surface",
|
|
9329
|
+
description: "Subtle depth using base colors",
|
|
9330
|
+
type: "linear",
|
|
9331
|
+
angle: 180,
|
|
9332
|
+
stops: [{
|
|
9333
|
+
color: "background",
|
|
9334
|
+
position: 0
|
|
9335
|
+
}, {
|
|
9336
|
+
color: "surface",
|
|
9337
|
+
position: 100
|
|
9338
|
+
}]
|
|
9380
9339
|
},
|
|
9381
9340
|
{
|
|
9382
|
-
id:
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
|
|
9389
|
-
|
|
9390
|
-
},
|
|
9391
|
-
|
|
9392
|
-
|
|
9393
|
-
|
|
9341
|
+
id: "neutral-fade",
|
|
9342
|
+
name: "Neutral Gradient",
|
|
9343
|
+
description: "Elegant neutral color fade",
|
|
9344
|
+
type: "linear",
|
|
9345
|
+
angle: 180,
|
|
9346
|
+
stops: [{
|
|
9347
|
+
color: "neutral-900",
|
|
9348
|
+
position: 0
|
|
9349
|
+
}, {
|
|
9350
|
+
color: "neutral-50",
|
|
9351
|
+
position: 100
|
|
9352
|
+
}]
|
|
9394
9353
|
},
|
|
9395
9354
|
{
|
|
9396
|
-
id:
|
|
9397
|
-
|
|
9398
|
-
|
|
9399
|
-
|
|
9400
|
-
|
|
9401
|
-
|
|
9402
|
-
|
|
9403
|
-
|
|
9404
|
-
|
|
9405
|
-
|
|
9406
|
-
|
|
9407
|
-
|
|
9408
|
-
|
|
9355
|
+
id: "primary-glow",
|
|
9356
|
+
name: "Primary glow",
|
|
9357
|
+
description: "A soft top-centred glow using your primary palette",
|
|
9358
|
+
type: "radial",
|
|
9359
|
+
shape: "ellipse",
|
|
9360
|
+
position: "top center",
|
|
9361
|
+
stops: [{
|
|
9362
|
+
color: "primary-900",
|
|
9363
|
+
position: 0
|
|
9364
|
+
}, {
|
|
9365
|
+
color: "primary-950",
|
|
9366
|
+
position: 100
|
|
9367
|
+
}],
|
|
9368
|
+
foreground: {
|
|
9369
|
+
textColor: "onPrimary900",
|
|
9370
|
+
headingColor: "onPrimary900",
|
|
9371
|
+
linkColor: "onPrimary900",
|
|
9372
|
+
supportingColor: "onPrimary900"
|
|
9373
|
+
}
|
|
9409
9374
|
},
|
|
9410
9375
|
{
|
|
9411
|
-
id:
|
|
9412
|
-
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
|
|
9419
|
-
|
|
9420
|
-
|
|
9421
|
-
|
|
9422
|
-
|
|
9423
|
-
|
|
9376
|
+
id: "accent-glow",
|
|
9377
|
+
name: "Accent glow",
|
|
9378
|
+
description: "A soft top-centred glow using your accent palette",
|
|
9379
|
+
type: "radial",
|
|
9380
|
+
shape: "ellipse",
|
|
9381
|
+
position: "top center",
|
|
9382
|
+
stops: [{
|
|
9383
|
+
color: "accent-900",
|
|
9384
|
+
position: 0
|
|
9385
|
+
}, {
|
|
9386
|
+
color: "accent-950",
|
|
9387
|
+
position: 100
|
|
9388
|
+
}],
|
|
9389
|
+
foreground: {
|
|
9390
|
+
textColor: "onAccent900",
|
|
9391
|
+
headingColor: "onAccent900",
|
|
9392
|
+
linkColor: "onAccent900",
|
|
9393
|
+
supportingColor: "onAccent900"
|
|
9394
|
+
}
|
|
9395
|
+
},
|
|
9396
|
+
{
|
|
9397
|
+
id: "primary-secondary-accent",
|
|
9398
|
+
name: "Brand Trio",
|
|
9399
|
+
description: "All three brand colors in harmony",
|
|
9400
|
+
type: "linear",
|
|
9401
|
+
angle: 135,
|
|
9402
|
+
stops: [
|
|
9403
|
+
{
|
|
9404
|
+
color: "primary-500",
|
|
9405
|
+
position: 0
|
|
9406
|
+
},
|
|
9407
|
+
{
|
|
9408
|
+
color: "secondary-500",
|
|
9409
|
+
position: 50
|
|
9410
|
+
},
|
|
9411
|
+
{
|
|
9412
|
+
color: "accent-500",
|
|
9413
|
+
position: 100
|
|
9414
|
+
}
|
|
9415
|
+
]
|
|
9424
9416
|
}
|
|
9425
|
-
])
|
|
9426
|
-
|
|
9427
|
-
|
|
9428
|
-
|
|
9429
|
-
|
|
9417
|
+
].map((preset) => ({
|
|
9418
|
+
...preset,
|
|
9419
|
+
id: preset.id,
|
|
9420
|
+
stops: preset.stops
|
|
9421
|
+
}));
|
|
9422
|
+
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
9423
|
+
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
9424
|
+
Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
9425
|
+
function parseGradientPresetId(value) {
|
|
9426
|
+
if (typeof value !== "string") return null;
|
|
9427
|
+
const normalized = value.trim();
|
|
9428
|
+
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
9429
|
+
return normalized;
|
|
9430
9430
|
}
|
|
9431
9431
|
//#endregion
|
|
9432
9432
|
//#region ../theme-core/src/site-styles/footerLooks.ts
|
|
@@ -22189,16 +22189,15 @@ const coursePricingSchema = z$1.object({
|
|
|
22189
22189
|
/**
|
|
22190
22190
|
* Zod schema for public course data
|
|
22191
22191
|
*/
|
|
22192
|
-
const
|
|
22193
|
-
|
|
22194
|
-
|
|
22192
|
+
const publicWholeSeriesOfferingSchema = z$1.object({
|
|
22193
|
+
eventSeriesId: z$1.string(),
|
|
22194
|
+
eventOfferingId: z$1.string(),
|
|
22195
22195
|
title: z$1.string(),
|
|
22196
22196
|
slug: z$1.string(),
|
|
22197
22197
|
description: z$1.unknown().nullable(),
|
|
22198
22198
|
teamMembers: z$1.array(courseTeamMemberSummarySchema).optional(),
|
|
22199
22199
|
enrollmentOpen: z$1.boolean(),
|
|
22200
|
-
pricing: coursePricingSchema
|
|
22201
|
-
priceCents: z$1.number().nullable(),
|
|
22200
|
+
pricing: coursePricingSchema,
|
|
22202
22201
|
currency: z$1.string(),
|
|
22203
22202
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
22204
22203
|
enrollmentCapacity: z$1.number().nullable(),
|
|
@@ -22212,18 +22211,17 @@ const publicCourseSchema = z$1.object({
|
|
|
22212
22211
|
enrolledCount: z$1.number(),
|
|
22213
22212
|
availableSpots: z$1.number().nullable(),
|
|
22214
22213
|
sessions: z$1.array(courseSessionSchema),
|
|
22215
|
-
venue: courseVenueSchema.nullable()
|
|
22216
|
-
contentEntryId: z$1.string().nullable()
|
|
22214
|
+
venue: courseVenueSchema.nullable()
|
|
22217
22215
|
});
|
|
22218
|
-
/**
|
|
22219
|
-
|
|
22220
|
-
|
|
22221
|
-
const publicCoursesArraySchema = z$1.array(publicCourseSchema);
|
|
22216
|
+
/** Deployed course blocks retain this schema alias for stored content. */
|
|
22217
|
+
const publicCourseSchema = publicWholeSeriesOfferingSchema;
|
|
22218
|
+
const publicCoursesArraySchema = z$1.array(publicWholeSeriesOfferingSchema);
|
|
22222
22219
|
//#endregion
|
|
22223
22220
|
//#region ../blocks/src/system/blocks/events/shared/schemas.ts
|
|
22224
22221
|
const eventPresetSchema = z$1.enum([
|
|
22225
22222
|
"event",
|
|
22226
22223
|
"class",
|
|
22224
|
+
"course",
|
|
22227
22225
|
"workshop",
|
|
22228
22226
|
"retreat",
|
|
22229
22227
|
"performance"
|
|
@@ -22490,7 +22488,7 @@ const publicTeamMemberSummarySchema = z$1.object({
|
|
|
22490
22488
|
* Zod schema for public event data
|
|
22491
22489
|
*/
|
|
22492
22490
|
const publicEventSchema = z$1.object({
|
|
22493
|
-
|
|
22491
|
+
bookingScope: z$1.enum(["single_occurrence", "whole_series"]),
|
|
22494
22492
|
eventPreset: eventPresetSchema.optional(),
|
|
22495
22493
|
eventDestinationMode: eventDestinationModeSchema.optional(),
|
|
22496
22494
|
scheduleScope: eventScheduleScopeSchema$2.optional(),
|
|
@@ -22538,10 +22536,9 @@ const publicEventSchema = z$1.object({
|
|
|
22538
22536
|
requireGuestDetails: z$1.boolean().optional(),
|
|
22539
22537
|
acceptsPasses: z$1.boolean().optional(),
|
|
22540
22538
|
acceptsMemberships: z$1.boolean().optional(),
|
|
22541
|
-
|
|
22542
|
-
|
|
22543
|
-
pricing: coursePricingSchema
|
|
22544
|
-
priceCents: z$1.number().nullable(),
|
|
22539
|
+
wholeSeries: z$1.object({
|
|
22540
|
+
eventSeriesId: z$1.string(),
|
|
22541
|
+
pricing: coursePricingSchema,
|
|
22545
22542
|
currency: z$1.string(),
|
|
22546
22543
|
enrollmentOpen: z$1.boolean()
|
|
22547
22544
|
}).nullable().optional()
|
|
@@ -22706,12 +22703,8 @@ function normalizeIdList(parts) {
|
|
|
22706
22703
|
}
|
|
22707
22704
|
//#endregion
|
|
22708
22705
|
//#region ../blocks/src/system/blocks/events/shared/filtering.ts
|
|
22709
|
-
const eventBlockKindValues = [
|
|
22710
|
-
"all",
|
|
22711
|
-
"courses",
|
|
22712
|
-
"events"
|
|
22713
|
-
];
|
|
22714
22706
|
const eventSurfacePresetValues = [
|
|
22707
|
+
"course",
|
|
22715
22708
|
"class",
|
|
22716
22709
|
"workshop",
|
|
22717
22710
|
"retreat",
|
|
@@ -22730,9 +22723,6 @@ const eventScheduleScopeValues = [
|
|
|
22730
22723
|
];
|
|
22731
22724
|
const unsafeAsEventCategoryId = (value) => value;
|
|
22732
22725
|
const unsafeAsVenueId = (value) => value;
|
|
22733
|
-
function normalizeEventBlockKind(value) {
|
|
22734
|
-
return value === "courses" || value === "events" ? value : "all";
|
|
22735
|
-
}
|
|
22736
22726
|
function normalizeEventSurfaceScope(value) {
|
|
22737
22727
|
return value === "regularClassSchedule" || value === "specialDatedEvents" || value === "custom" ? value : "all";
|
|
22738
22728
|
}
|
|
@@ -22834,61 +22824,6 @@ const occurrenceContextSchema$1 = z$1.object({
|
|
|
22834
22824
|
capacityOverride: z$1.number().nullable().optional(),
|
|
22835
22825
|
overrides: z$1.record(z$1.string(), z$1.unknown()).nullable().optional()
|
|
22836
22826
|
}).nullable();
|
|
22837
|
-
//#endregion
|
|
22838
|
-
//#region ../blocks/src/system/constants/events.ts
|
|
22839
|
-
/**
|
|
22840
|
-
* Content type slugs that represent event content.
|
|
22841
|
-
* These are the standard slugs used when creating event content types in the CMS.
|
|
22842
|
-
*
|
|
22843
|
-
* Used by:
|
|
22844
|
-
* - Occurrence resolution to detect event pages
|
|
22845
|
-
* - Event Calendar block to identify event content
|
|
22846
|
-
* - Content type definitions
|
|
22847
|
-
*/
|
|
22848
|
-
const EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
|
|
22849
|
-
const eventCalendarDisplayModeValues = [
|
|
22850
|
-
"combined",
|
|
22851
|
-
"calendar",
|
|
22852
|
-
"list",
|
|
22853
|
-
"timetable",
|
|
22854
|
-
"week-board"
|
|
22855
|
-
];
|
|
22856
|
-
const eventCalendarDefaultViewValues = ["month", "week"];
|
|
22857
|
-
const eventCalendarListLayoutValues = [
|
|
22858
|
-
"stack",
|
|
22859
|
-
"grid",
|
|
22860
|
-
"compact"
|
|
22861
|
-
];
|
|
22862
|
-
const eventCalendarListLayoutOptions = [
|
|
22863
|
-
{
|
|
22864
|
-
id: "stack",
|
|
22865
|
-
label: "Stack"
|
|
22866
|
-
},
|
|
22867
|
-
{
|
|
22868
|
-
id: "grid",
|
|
22869
|
-
label: "Grid"
|
|
22870
|
-
},
|
|
22871
|
-
{
|
|
22872
|
-
id: "compact",
|
|
22873
|
-
label: "Compact"
|
|
22874
|
-
}
|
|
22875
|
-
];
|
|
22876
|
-
function isEventCalendarDisplayMode(value) {
|
|
22877
|
-
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
22878
|
-
}
|
|
22879
|
-
function isEventCalendarDefaultView(value) {
|
|
22880
|
-
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
22881
|
-
}
|
|
22882
|
-
function isEventCalendarListLayout(value) {
|
|
22883
|
-
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
22884
|
-
}
|
|
22885
|
-
/**
|
|
22886
|
-
* Check if a content type slug represents an event type
|
|
22887
|
-
*/
|
|
22888
|
-
function isEventContentType(slug) {
|
|
22889
|
-
if (!slug) return false;
|
|
22890
|
-
return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
|
|
22891
|
-
}
|
|
22892
22827
|
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z$1.object({
|
|
22893
22828
|
kind: z$1.literal("unsupported"),
|
|
22894
22829
|
reason: z$1.enum([
|
|
@@ -22927,12 +22862,6 @@ function resolveEventRegistrationScope(context) {
|
|
|
22927
22862
|
kind: "unsupportedPageSurfaceSubject",
|
|
22928
22863
|
reason: context.subject.reason
|
|
22929
22864
|
};
|
|
22930
|
-
const entrySlug = context.contentEntry?.slug;
|
|
22931
|
-
const entryContentType = context.contentEntry?.contentTypeSlug;
|
|
22932
|
-
if (entrySlug && entryContentType && isEventContentType(entryContentType)) return {
|
|
22933
|
-
kind: "legacyEventSlug",
|
|
22934
|
-
slug: entrySlug
|
|
22935
|
-
};
|
|
22936
22865
|
return { kind: "unscoped" };
|
|
22937
22866
|
}
|
|
22938
22867
|
function applyEventRegistrationScope(events, scope) {
|
|
@@ -22943,7 +22872,6 @@ function applyEventRegistrationScope(events, scope) {
|
|
|
22943
22872
|
const seriesIds = new Set(scope.seriesIds);
|
|
22944
22873
|
return events.filter((event) => seriesIds.has(event.seriesId));
|
|
22945
22874
|
}
|
|
22946
|
-
case "legacyEventSlug": return events.filter((event) => event.slug === scope.slug);
|
|
22947
22875
|
case "unsupportedPageSurfaceSubject": return [];
|
|
22948
22876
|
case "unscoped": return [...events];
|
|
22949
22877
|
}
|
|
@@ -23138,6 +23066,44 @@ function readAmount(value) {
|
|
|
23138
23066
|
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
23139
23067
|
}
|
|
23140
23068
|
//#endregion
|
|
23069
|
+
//#region ../blocks/src/system/constants/events.ts
|
|
23070
|
+
const eventCalendarDisplayModeValues = [
|
|
23071
|
+
"combined",
|
|
23072
|
+
"calendar",
|
|
23073
|
+
"list",
|
|
23074
|
+
"timetable",
|
|
23075
|
+
"week-board"
|
|
23076
|
+
];
|
|
23077
|
+
const eventCalendarDefaultViewValues = ["month", "week"];
|
|
23078
|
+
const eventCalendarListLayoutValues = [
|
|
23079
|
+
"stack",
|
|
23080
|
+
"grid",
|
|
23081
|
+
"compact"
|
|
23082
|
+
];
|
|
23083
|
+
const eventCalendarListLayoutOptions = [
|
|
23084
|
+
{
|
|
23085
|
+
id: "stack",
|
|
23086
|
+
label: "Stack"
|
|
23087
|
+
},
|
|
23088
|
+
{
|
|
23089
|
+
id: "grid",
|
|
23090
|
+
label: "Grid"
|
|
23091
|
+
},
|
|
23092
|
+
{
|
|
23093
|
+
id: "compact",
|
|
23094
|
+
label: "Compact"
|
|
23095
|
+
}
|
|
23096
|
+
];
|
|
23097
|
+
function isEventCalendarDisplayMode(value) {
|
|
23098
|
+
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
23099
|
+
}
|
|
23100
|
+
function isEventCalendarDefaultView(value) {
|
|
23101
|
+
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
23102
|
+
}
|
|
23103
|
+
function isEventCalendarListLayout(value) {
|
|
23104
|
+
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
23105
|
+
}
|
|
23106
|
+
//#endregion
|
|
23141
23107
|
//#region ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
23142
23108
|
const previewStageSchema = z$1.enum(["preview", "published"]);
|
|
23143
23109
|
const registrationButtonVariantSchema = blockButtonRoleSchema;
|
|
@@ -23229,11 +23195,6 @@ const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
|
|
|
23229
23195
|
"Details",
|
|
23230
23196
|
"Payment"
|
|
23231
23197
|
];
|
|
23232
|
-
const contentEntrySchema$2 = z$1.object({
|
|
23233
|
-
id: z$1.string(),
|
|
23234
|
-
slug: z$1.string(),
|
|
23235
|
-
contentTypeSlug: z$1.string()
|
|
23236
|
-
});
|
|
23237
23198
|
const eventRegistrationPublicEventSchema = z$1.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
|
|
23238
23199
|
const eventRegistrationSourceSchema = z$1.object({
|
|
23239
23200
|
siteId: z$1.string().optional(),
|
|
@@ -23241,7 +23202,6 @@ const eventRegistrationSourceSchema = z$1.object({
|
|
|
23241
23202
|
portalToken: z$1.string().nullable().optional(),
|
|
23242
23203
|
previewToken: z$1.string().nullable().optional(),
|
|
23243
23204
|
occurrenceContext: occurrenceContextSchema$1.optional(),
|
|
23244
|
-
contentEntry: contentEntrySchema$2.nullable().optional(),
|
|
23245
23205
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
23246
23206
|
events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
23247
23207
|
className: z$1.string().nullable().optional(),
|
|
@@ -23270,7 +23230,6 @@ const eventRegistrationDisplaySchema = z$1.object({
|
|
|
23270
23230
|
});
|
|
23271
23231
|
const eventRegistrationHydrationSchema = z$1.object({
|
|
23272
23232
|
occurrenceContext: occurrenceContextSchema$1.optional(),
|
|
23273
|
-
contentEntry: contentEntrySchema$2.nullable().optional(),
|
|
23274
23233
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
23275
23234
|
events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
23276
23235
|
maxTickets: z$1.string().optional(),
|
|
@@ -23325,8 +23284,7 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
23325
23284
|
function scopeEventRegistrationEvents(source) {
|
|
23326
23285
|
return resolveEventRegistrationScopedEvents(toRegistrationEvents(source.events ?? []), {
|
|
23327
23286
|
occurrenceContext: source.occurrenceContext,
|
|
23328
|
-
subject: source.subject
|
|
23329
|
-
contentEntry: source.contentEntry
|
|
23287
|
+
subject: source.subject
|
|
23330
23288
|
});
|
|
23331
23289
|
}
|
|
23332
23290
|
function shellLabelForRegistrationStep(step, events) {
|
|
@@ -23363,7 +23321,6 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
23363
23321
|
display: buildEventRegistrationDisplay(source),
|
|
23364
23322
|
hydration: {
|
|
23365
23323
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
23366
|
-
contentEntry: source.contentEntry ?? null,
|
|
23367
23324
|
subject: source.subject ?? null,
|
|
23368
23325
|
events: source.events ?? null,
|
|
23369
23326
|
maxTickets: source.maxTickets ?? void 0,
|
|
@@ -23516,7 +23473,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
23516
23473
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
23517
23474
|
eventRegistration(withApiBindings({
|
|
23518
23475
|
occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
|
|
23519
|
-
contentEntry: { $bind: { from: "$root.contentEntry" } },
|
|
23520
23476
|
subject: { $bind: { from: "$root.subject" } },
|
|
23521
23477
|
portalToken: { $bind: {
|
|
23522
23478
|
from: "$root.portalToken",
|
|
@@ -23571,10 +23527,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
23571
23527
|
fallback: "published"
|
|
23572
23528
|
} },
|
|
23573
23529
|
readProfile: "registration",
|
|
23574
|
-
|
|
23575
|
-
|
|
23576
|
-
fallback: ""
|
|
23577
|
-
} }
|
|
23530
|
+
seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
|
|
23531
|
+
includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
|
|
23578
23532
|
},
|
|
23579
23533
|
mode: "server"
|
|
23580
23534
|
},
|
|
@@ -23592,29 +23546,10 @@ const eventRegistrationBlockDefinition = {
|
|
|
23592
23546
|
};
|
|
23593
23547
|
//#endregion
|
|
23594
23548
|
//#region ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
|
|
23595
|
-
const contentEntrySchema$1 = z$1.object({
|
|
23596
|
-
id: z$1.string(),
|
|
23597
|
-
slug: z$1.string(),
|
|
23598
|
-
contentTypeSlug: z$1.string()
|
|
23599
|
-
});
|
|
23600
|
-
const courseEntrySubrouteContextSchema = z$1.union([z$1.object({
|
|
23601
|
-
kind: z$1.literal("course-run"),
|
|
23602
|
-
run: z$1.object({
|
|
23603
|
-
courseId: z$1.string(),
|
|
23604
|
-
seriesId: z$1.string(),
|
|
23605
|
-
runSlug: z$1.string(),
|
|
23606
|
-
runName: z$1.string().nullable()
|
|
23607
|
-
})
|
|
23608
|
-
}), z$1.object({
|
|
23609
|
-
kind: z$1.literal("event-occurrence"),
|
|
23610
|
-
occurrence: occurrenceContextSchema$1
|
|
23611
|
-
})]);
|
|
23612
23549
|
const courseRegistrationSourceSchema = z$1.object({
|
|
23613
23550
|
siteId: z$1.string().optional(),
|
|
23614
23551
|
apiBaseUrl: z$1.string().optional(),
|
|
23615
23552
|
portalToken: z$1.string().nullable().optional(),
|
|
23616
|
-
contentEntry: contentEntrySchema$1.nullable().optional(),
|
|
23617
|
-
entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
|
|
23618
23553
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
23619
23554
|
courses: z$1.array(publicCourseSchema).nullable().optional(),
|
|
23620
23555
|
className: z$1.string().nullable().optional(),
|
|
@@ -23636,8 +23571,6 @@ const courseRegistrationDisplaySchema = z$1.object({
|
|
|
23636
23571
|
summaryButtonText: z$1.string()
|
|
23637
23572
|
});
|
|
23638
23573
|
const courseRegistrationHydrationSchema = z$1.object({
|
|
23639
|
-
contentEntry: contentEntrySchema$1.nullable().optional(),
|
|
23640
|
-
entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
|
|
23641
23574
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
23642
23575
|
courses: z$1.array(publicCourseSchema).nullable().optional(),
|
|
23643
23576
|
showSessions: z$1.boolean().optional(),
|
|
@@ -23676,8 +23609,6 @@ const courseRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
23676
23609
|
buildRender: (source) => ({
|
|
23677
23610
|
display: buildCourseRegistrationDisplay(source),
|
|
23678
23611
|
hydration: {
|
|
23679
|
-
contentEntry: source.contentEntry ?? null,
|
|
23680
|
-
entrySubrouteContext: source.entrySubrouteContext ?? null,
|
|
23681
23612
|
subject: source.subject ?? null,
|
|
23682
23613
|
courses: source.courses ?? null,
|
|
23683
23614
|
showSessions: source.showSessions,
|
|
@@ -23822,11 +23753,6 @@ const courseRegistrationBlockDefinition = {
|
|
|
23822
23753
|
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
23823
23754
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
23824
23755
|
courseRegistration(withApiBindings({
|
|
23825
|
-
contentEntry: { $bind: { from: "$root.contentEntry" } },
|
|
23826
|
-
entrySubrouteContext: { $bind: {
|
|
23827
|
-
from: "$root.entrySubrouteContext",
|
|
23828
|
-
fallback: null
|
|
23829
|
-
} },
|
|
23830
23756
|
subject: { $bind: {
|
|
23831
23757
|
from: "$root.subject",
|
|
23832
23758
|
fallback: null
|
|
@@ -23862,7 +23788,7 @@ const courseRegistrationBlockDefinition = {
|
|
|
23862
23788
|
runtime: courseRegistrationBlockRuntime,
|
|
23863
23789
|
dataSchemas: { courses: publicCoursesArraySchema.optional() },
|
|
23864
23790
|
dataLoaders: { courses: {
|
|
23865
|
-
endpoint: "
|
|
23791
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
23866
23792
|
params: {
|
|
23867
23793
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
23868
23794
|
limit: "50",
|
|
@@ -24007,10 +23933,6 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
24007
23933
|
from: "$root.occurrenceContext",
|
|
24008
23934
|
fallback: null
|
|
24009
23935
|
} },
|
|
24010
|
-
contentEntry: { $bind: {
|
|
24011
|
-
from: "$root.contentEntry",
|
|
24012
|
-
fallback: null
|
|
24013
|
-
} },
|
|
24014
23936
|
events: { $bind: { from: "data.eventDetailsData.events" } },
|
|
24015
23937
|
showVenue: { $bind: { from: "content.showVenue" } },
|
|
24016
23938
|
showMap: { $bind: { from: "content.showMap" } },
|
|
@@ -24084,7 +24006,6 @@ const eventDetailsBlockDefinition = {
|
|
|
24084
24006
|
fallback: "published"
|
|
24085
24007
|
} },
|
|
24086
24008
|
limit: "25",
|
|
24087
|
-
entryId: { $bind: { from: "$root.contentEntry._entryId" } },
|
|
24088
24009
|
seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
|
|
24089
24010
|
includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
|
|
24090
24011
|
},
|
|
@@ -24129,15 +24050,6 @@ const courseDetailsBlockDefinition = {
|
|
|
24129
24050
|
multiline: false,
|
|
24130
24051
|
defaultValue: "Course details"
|
|
24131
24052
|
},
|
|
24132
|
-
{
|
|
24133
|
-
id: "courseSlug",
|
|
24134
|
-
type: "text",
|
|
24135
|
-
label: "Course slug (optional)",
|
|
24136
|
-
description: "Select a course by slug when not used on a course template route",
|
|
24137
|
-
required: false,
|
|
24138
|
-
multiline: false,
|
|
24139
|
-
ui: { intent: "behavior" }
|
|
24140
|
-
},
|
|
24141
24053
|
{
|
|
24142
24054
|
id: "showTitle",
|
|
24143
24055
|
type: "boolean",
|
|
@@ -24233,26 +24145,14 @@ const courseDetailsBlockDefinition = {
|
|
|
24233
24145
|
}
|
|
24234
24146
|
],
|
|
24235
24147
|
layout: [styledSection({
|
|
24236
|
-
baseClass: "",
|
|
24237
|
-
spacing: "spacious",
|
|
24238
|
-
children: sectionContainer([text({ as: "h2" }, bind("content.heading"), when("content.heading")), el("course-details", {
|
|
24239
|
-
contentEntry: { $bind: {
|
|
24240
|
-
from: "$root.contentEntry",
|
|
24241
|
-
fallback: null
|
|
24242
|
-
} },
|
|
24243
|
-
entrySubrouteContext: { $bind: {
|
|
24244
|
-
from: "$root.entrySubrouteContext",
|
|
24245
|
-
fallback: null
|
|
24246
|
-
} },
|
|
24148
|
+
baseClass: "",
|
|
24149
|
+
spacing: "spacious",
|
|
24150
|
+
children: sectionContainer([text({ as: "h2" }, bind("content.heading"), when("content.heading")), el("course-details", {
|
|
24247
24151
|
subject: { $bind: {
|
|
24248
24152
|
from: "$root.subject",
|
|
24249
24153
|
fallback: null
|
|
24250
24154
|
} },
|
|
24251
24155
|
courses: { $bind: { from: "data.courses" } },
|
|
24252
|
-
courseSlug: { $bind: {
|
|
24253
|
-
from: "content.courseSlug",
|
|
24254
|
-
fallback: null
|
|
24255
|
-
} },
|
|
24256
24156
|
showTitle: { $bind: {
|
|
24257
24157
|
from: "content.showTitle",
|
|
24258
24158
|
fallback: false
|
|
@@ -24294,7 +24194,7 @@ const courseDetailsBlockDefinition = {
|
|
|
24294
24194
|
}),
|
|
24295
24195
|
dataSchemas: { courses: publicCoursesArraySchema.optional() },
|
|
24296
24196
|
dataLoaders: { courses: {
|
|
24297
|
-
endpoint: "
|
|
24197
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
24298
24198
|
params: {
|
|
24299
24199
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
24300
24200
|
limit: "50",
|
|
@@ -24538,13 +24438,137 @@ function resolveEventListPaginationAction(input) {
|
|
|
24538
24438
|
};
|
|
24539
24439
|
}
|
|
24540
24440
|
//#endregion
|
|
24441
|
+
//#region ../blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.ts
|
|
24442
|
+
const eventSurfaceScopeSchema$1 = z$1.enum(eventSurfaceScopeValues);
|
|
24443
|
+
const eventScheduleScopeSchema$1 = z$1.enum(eventScheduleScopeValues);
|
|
24444
|
+
const eventCollectionFilterSourceSchemaShape = {
|
|
24445
|
+
showFilters: z$1.boolean().nullable().optional(),
|
|
24446
|
+
showCategoryFilter: filterAutoShowSchema.optional(),
|
|
24447
|
+
showVenueFilter: z$1.boolean().nullable().optional(),
|
|
24448
|
+
showStaffFilter: z$1.boolean().nullable().optional(),
|
|
24449
|
+
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
24450
|
+
filterEventPresets: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
24451
|
+
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
24452
|
+
filterCategoryIds: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
24453
|
+
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
24454
|
+
filterVenueId: z$1.string().nullable().optional()
|
|
24455
|
+
};
|
|
24456
|
+
const eventCollectionSourceSchemaShape = {
|
|
24457
|
+
events: z$1.array(publicEventSchema).nullable().optional(),
|
|
24458
|
+
siteId: z$1.string(),
|
|
24459
|
+
apiBaseUrl: z$1.string().optional(),
|
|
24460
|
+
stage: previewStageSchema.optional(),
|
|
24461
|
+
listLayout: eventLayoutSchema.optional(),
|
|
24462
|
+
listColumns: columnOptionSchema.optional(),
|
|
24463
|
+
eventsPerPage: z$1.string().optional(),
|
|
24464
|
+
paginationMode: z$1.enum(["loadMore", "seeAllLink"]).optional(),
|
|
24465
|
+
seeAllUrl: z$1.string().optional(),
|
|
24466
|
+
loadMoreText: z$1.string().optional(),
|
|
24467
|
+
startOfWeek: weekStartSchema.optional(),
|
|
24468
|
+
calendarTabViews: calendarTabViewsSchema.optional(),
|
|
24469
|
+
defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
|
|
24470
|
+
...eventCollectionFilterSourceSchemaShape,
|
|
24471
|
+
showVenue: z$1.boolean().nullable().optional(),
|
|
24472
|
+
showMap: z$1.boolean().nullable().optional(),
|
|
24473
|
+
showCapacity: z$1.boolean().nullable().optional(),
|
|
24474
|
+
buttonVariant: eventButtonVariantSchema.optional(),
|
|
24475
|
+
buttonText: z$1.string().optional(),
|
|
24476
|
+
emptyMessage: z$1.string().optional(),
|
|
24477
|
+
className: z$1.string().optional()
|
|
24478
|
+
};
|
|
24479
|
+
const eventCollectionDisplaySchemaShape = {
|
|
24480
|
+
events: z$1.array(publicEventSchema),
|
|
24481
|
+
listLayout: eventLayoutSchema,
|
|
24482
|
+
listColumns: columnOptionSchema,
|
|
24483
|
+
eventsPerPage: eventPageSizeSchema,
|
|
24484
|
+
paginationAction: eventListPaginationActionSchema,
|
|
24485
|
+
startOfWeek: weekStartSchema,
|
|
24486
|
+
calendarTabViews: calendarTabViewsSchema,
|
|
24487
|
+
defaultCalendarView: eventCalendarDefaultViewSchema,
|
|
24488
|
+
showFilters: z$1.boolean(),
|
|
24489
|
+
showCategoryFilter: filterAutoShowSchema,
|
|
24490
|
+
showVenueFilter: z$1.boolean(),
|
|
24491
|
+
showStaffFilter: z$1.boolean(),
|
|
24492
|
+
eventSurface: eventSurfaceScopeSchema$1,
|
|
24493
|
+
filterEventPresets: z$1.string().nullable(),
|
|
24494
|
+
scheduleScope: eventScheduleScopeSchema$1,
|
|
24495
|
+
filterCategoryIds: z$1.string().nullable(),
|
|
24496
|
+
filterStaffMemberId: z$1.string().nullable(),
|
|
24497
|
+
filterVenueId: z$1.string().nullable(),
|
|
24498
|
+
showVenue: z$1.boolean(),
|
|
24499
|
+
showMap: z$1.boolean(),
|
|
24500
|
+
showCapacity: z$1.boolean(),
|
|
24501
|
+
buttonVariant: eventButtonVariantSchema,
|
|
24502
|
+
buttonText: z$1.string(),
|
|
24503
|
+
emptyMessage: z$1.string()
|
|
24504
|
+
};
|
|
24505
|
+
const eventCollectionHydrationSchema = z$1.object({
|
|
24506
|
+
siteId: z$1.string(),
|
|
24507
|
+
stage: previewStageSchema.optional(),
|
|
24508
|
+
prefetchedEvents: z$1.boolean(),
|
|
24509
|
+
eventSurface: eventSurfaceScopeSchema$1,
|
|
24510
|
+
filterEventPresets: z$1.string().nullable(),
|
|
24511
|
+
scheduleScope: eventScheduleScopeSchema$1
|
|
24512
|
+
});
|
|
24513
|
+
function buildEventCollectionDisplay(source) {
|
|
24514
|
+
return {
|
|
24515
|
+
...buildEventCollectionFilterDisplay(source),
|
|
24516
|
+
...buildEventCollectionPresentationDisplay(source),
|
|
24517
|
+
events: Array.isArray(source.events) ? [...source.events] : [],
|
|
24518
|
+
listLayout: source.listLayout ?? "stack",
|
|
24519
|
+
listColumns: source.listColumns ?? "3",
|
|
24520
|
+
eventsPerPage: resolveEventCalendarListPageSize({ eventsPerPage: source.eventsPerPage }),
|
|
24521
|
+
paginationAction: resolveEventListPaginationAction({
|
|
24522
|
+
paginationMode: source.paginationMode,
|
|
24523
|
+
seeAllUrl: source.seeAllUrl,
|
|
24524
|
+
loadMoreText: source.loadMoreText
|
|
24525
|
+
}),
|
|
24526
|
+
startOfWeek: source.startOfWeek ?? "monday",
|
|
24527
|
+
calendarTabViews: source.calendarTabViews ?? "both",
|
|
24528
|
+
defaultCalendarView: source.defaultCalendarView ?? "month"
|
|
24529
|
+
};
|
|
24530
|
+
}
|
|
24531
|
+
function buildEventCollectionFilterDisplay(source) {
|
|
24532
|
+
return {
|
|
24533
|
+
showFilters: source.showFilters ?? true,
|
|
24534
|
+
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
24535
|
+
showVenueFilter: source.showVenueFilter ?? false,
|
|
24536
|
+
showStaffFilter: source.showStaffFilter ?? true,
|
|
24537
|
+
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
24538
|
+
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
24539
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
24540
|
+
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
24541
|
+
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
24542
|
+
filterVenueId: normalizeEventVenueId(source.filterVenueId)
|
|
24543
|
+
};
|
|
24544
|
+
}
|
|
24545
|
+
function buildEventCollectionPresentationDisplay(source) {
|
|
24546
|
+
return {
|
|
24547
|
+
showVenue: source.showVenue ?? true,
|
|
24548
|
+
showMap: source.showMap ?? true,
|
|
24549
|
+
showCapacity: source.showCapacity ?? true,
|
|
24550
|
+
buttonVariant: source.buttonVariant ?? "primary",
|
|
24551
|
+
buttonText: source.buttonText ?? "Book",
|
|
24552
|
+
emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
|
|
24553
|
+
};
|
|
24554
|
+
}
|
|
24555
|
+
function buildEventCollectionHydration(source) {
|
|
24556
|
+
return {
|
|
24557
|
+
siteId: source.siteId,
|
|
24558
|
+
stage: source.stage,
|
|
24559
|
+
prefetchedEvents: source.events != null,
|
|
24560
|
+
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
24561
|
+
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
24562
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope)
|
|
24563
|
+
};
|
|
24564
|
+
}
|
|
24565
|
+
//#endregion
|
|
24541
24566
|
//#region ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
|
|
24542
24567
|
const legacyEventCardVariantSchema = z$1.enum(["variant1", "variant2"]);
|
|
24543
24568
|
const eventCardVariantInputSchema = z$1.union([cardVariantRoleSchema, legacyEventCardVariantSchema]);
|
|
24544
24569
|
const cardOrientationSchema = z$1.enum(["vertical", "horizontal"]);
|
|
24545
|
-
const
|
|
24546
|
-
const
|
|
24547
|
-
const eventScheduleScopeSchema$1 = z$1.enum(eventScheduleScopeValues);
|
|
24570
|
+
const eventSurfaceScopeSchema = z$1.enum(eventSurfaceScopeValues);
|
|
24571
|
+
const eventScheduleScopeSchema = z$1.enum(eventScheduleScopeValues);
|
|
24548
24572
|
const eventListingSourceSchema = z$1.object({
|
|
24549
24573
|
events: z$1.array(publicEventSchema).nullable().optional(),
|
|
24550
24574
|
siteId: z$1.string(),
|
|
@@ -24564,17 +24588,7 @@ const eventListingSourceSchema = z$1.object({
|
|
|
24564
24588
|
showCapacity: z$1.boolean().optional(),
|
|
24565
24589
|
emptyMessage: z$1.string().optional(),
|
|
24566
24590
|
className: z$1.string().optional(),
|
|
24567
|
-
|
|
24568
|
-
showCategoryFilter: filterAutoShowSchema.optional(),
|
|
24569
|
-
showVenueFilter: z$1.boolean().nullable().optional(),
|
|
24570
|
-
showStaffFilter: z$1.boolean().nullable().optional(),
|
|
24571
|
-
eventKind: eventBlockKindSchema$1.nullable().optional(),
|
|
24572
|
-
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
24573
|
-
filterEventPresets: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
24574
|
-
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
24575
|
-
filterCategoryIds: z$1.string().nullable().optional(),
|
|
24576
|
-
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
24577
|
-
filterVenueId: z$1.string().nullable().optional()
|
|
24591
|
+
...eventCollectionFilterSourceSchemaShape
|
|
24578
24592
|
});
|
|
24579
24593
|
const eventListingDisplaySchema = z$1.object({
|
|
24580
24594
|
kind: z$1.literal("event-listing"),
|
|
@@ -24606,10 +24620,9 @@ const eventListingHydrationSchema = z$1.object({
|
|
|
24606
24620
|
showCategoryFilter: filterAutoShowSchema,
|
|
24607
24621
|
showVenueFilter: z$1.boolean(),
|
|
24608
24622
|
showStaffFilter: z$1.boolean(),
|
|
24609
|
-
|
|
24610
|
-
eventSurface: eventSurfaceScopeSchema$1,
|
|
24623
|
+
eventSurface: eventSurfaceScopeSchema,
|
|
24611
24624
|
filterEventPresets: z$1.string().nullable(),
|
|
24612
|
-
scheduleScope: eventScheduleScopeSchema
|
|
24625
|
+
scheduleScope: eventScheduleScopeSchema,
|
|
24613
24626
|
filterCategoryIds: z$1.string().nullable().optional(),
|
|
24614
24627
|
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
24615
24628
|
filterVenueId: z$1.string().nullable().optional(),
|
|
@@ -24667,7 +24680,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
24667
24680
|
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
24668
24681
|
showVenueFilter: source.showVenueFilter ?? false,
|
|
24669
24682
|
showStaffFilter: source.showStaffFilter ?? false,
|
|
24670
|
-
eventKind: normalizeEventBlockKind(source.eventKind),
|
|
24671
24683
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
24672
24684
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
24673
24685
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
@@ -24791,30 +24803,6 @@ const eventListingBlockDefinition = {
|
|
|
24791
24803
|
intent: "display"
|
|
24792
24804
|
}
|
|
24793
24805
|
})),
|
|
24794
|
-
{
|
|
24795
|
-
id: "kind",
|
|
24796
|
-
type: "select",
|
|
24797
|
-
label: "Show",
|
|
24798
|
-
description: "Choose whether this list shows courses, events, or both",
|
|
24799
|
-
required: false,
|
|
24800
|
-
multiple: false,
|
|
24801
|
-
defaultValue: "all",
|
|
24802
|
-
options: [
|
|
24803
|
-
{
|
|
24804
|
-
value: "all",
|
|
24805
|
-
label: "Courses and events"
|
|
24806
|
-
},
|
|
24807
|
-
{
|
|
24808
|
-
value: "courses",
|
|
24809
|
-
label: "Courses only"
|
|
24810
|
-
},
|
|
24811
|
-
{
|
|
24812
|
-
value: "events",
|
|
24813
|
-
label: "Events only"
|
|
24814
|
-
}
|
|
24815
|
-
],
|
|
24816
|
-
ui: { intent: "behavior" }
|
|
24817
|
-
},
|
|
24818
24806
|
{
|
|
24819
24807
|
id: "eventSurface",
|
|
24820
24808
|
type: "select",
|
|
@@ -24852,6 +24840,10 @@ const eventListingBlockDefinition = {
|
|
|
24852
24840
|
multiple: true,
|
|
24853
24841
|
defaultValue: [],
|
|
24854
24842
|
options: [
|
|
24843
|
+
{
|
|
24844
|
+
value: "course",
|
|
24845
|
+
label: "Courses"
|
|
24846
|
+
},
|
|
24855
24847
|
{
|
|
24856
24848
|
value: "class",
|
|
24857
24849
|
label: "Classes"
|
|
@@ -25003,10 +24995,6 @@ const eventListingBlockDefinition = {
|
|
|
25003
24995
|
showVenue: { $bind: { from: "content.showVenue" } },
|
|
25004
24996
|
showMap: { $bind: { from: "content.showMap" } },
|
|
25005
24997
|
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
25006
|
-
eventKind: { $bind: {
|
|
25007
|
-
from: "content.kind",
|
|
25008
|
-
fallback: "all"
|
|
25009
|
-
} },
|
|
25010
24998
|
eventSurface: { $bind: {
|
|
25011
24999
|
from: "content.eventSurface",
|
|
25012
25000
|
fallback: "all"
|
|
@@ -25057,7 +25045,6 @@ const eventListingBlockDefinition = {
|
|
|
25057
25045
|
from: "content.layout",
|
|
25058
25046
|
fallback: "listing-card"
|
|
25059
25047
|
} },
|
|
25060
|
-
kind: { $bind: { from: "content.kind" } },
|
|
25061
25048
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
25062
25049
|
eventPresets: { $bind: {
|
|
25063
25050
|
from: "content.filterEventPresets",
|
|
@@ -25070,95 +25057,30 @@ const eventListingBlockDefinition = {
|
|
|
25070
25057
|
};
|
|
25071
25058
|
//#endregion
|
|
25072
25059
|
//#region ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
25073
|
-
const eventBlockKindSchema = z$1.enum(eventBlockKindValues);
|
|
25074
|
-
const eventSurfaceScopeSchema = z$1.enum(eventSurfaceScopeValues);
|
|
25075
|
-
const eventScheduleScopeSchema = z$1.enum(eventScheduleScopeValues);
|
|
25076
25060
|
const eventCalendarSourceSchema = z$1.object({
|
|
25077
|
-
|
|
25078
|
-
siteId: z$1.string(),
|
|
25079
|
-
apiBaseUrl: z$1.string().optional(),
|
|
25080
|
-
stage: previewStageSchema.optional(),
|
|
25061
|
+
...eventCollectionSourceSchemaShape,
|
|
25081
25062
|
variant: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
25082
25063
|
displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
25083
|
-
listLayout: eventLayoutSchema.optional(),
|
|
25084
|
-
listColumns: columnOptionSchema.optional(),
|
|
25085
25064
|
layout: eventLayoutSchema.optional(),
|
|
25086
|
-
columns:
|
|
25087
|
-
eventsPerPage: z$1.string().optional(),
|
|
25088
|
-
paginationMode: z$1.enum(["loadMore", "seeAllLink"]).optional(),
|
|
25089
|
-
seeAllUrl: z$1.string().optional(),
|
|
25090
|
-
loadMoreText: z$1.string().optional(),
|
|
25091
|
-
startOfWeek: weekStartSchema.optional(),
|
|
25092
|
-
calendarTabViews: calendarTabViewsSchema.optional(),
|
|
25093
|
-
defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
|
|
25094
|
-
showFilters: z$1.boolean().nullable().optional(),
|
|
25095
|
-
showCategoryFilter: filterAutoShowSchema.optional(),
|
|
25096
|
-
showVenueFilter: z$1.boolean().nullable().optional(),
|
|
25097
|
-
showStaffFilter: z$1.boolean().nullable().optional(),
|
|
25098
|
-
kind: eventBlockKindSchema.nullable().optional(),
|
|
25099
|
-
eventSurface: eventSurfaceScopeSchema.nullable().optional(),
|
|
25100
|
-
filterEventPresets: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
25101
|
-
scheduleScope: eventScheduleScopeSchema.nullable().optional(),
|
|
25102
|
-
filterCategoryIds: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
25103
|
-
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
25104
|
-
filterVenueId: z$1.string().nullable().optional(),
|
|
25105
|
-
buttonVariant: eventButtonVariantSchema.optional(),
|
|
25106
|
-
buttonText: z$1.string().optional(),
|
|
25065
|
+
columns: eventCollectionSourceSchemaShape.listColumns,
|
|
25107
25066
|
boardTitle: z$1.string().optional(),
|
|
25108
25067
|
footerNote: z$1.string().optional(),
|
|
25109
25068
|
elevated: z$1.boolean().nullable().optional(),
|
|
25110
|
-
banded: z$1.boolean().nullable().optional()
|
|
25111
|
-
showVenue: z$1.boolean().nullable().optional(),
|
|
25112
|
-
showMap: z$1.boolean().nullable().optional(),
|
|
25113
|
-
showCapacity: z$1.boolean().nullable().optional(),
|
|
25114
|
-
emptyMessage: z$1.string().optional(),
|
|
25115
|
-
className: z$1.string().optional()
|
|
25069
|
+
banded: z$1.boolean().nullable().optional()
|
|
25116
25070
|
});
|
|
25117
25071
|
const eventCalendarDisplaySchema = z$1.object({
|
|
25118
25072
|
kind: z$1.literal("event-calendar"),
|
|
25119
25073
|
displayMode: eventCalendarDisplayModeSchema,
|
|
25120
25074
|
className: z$1.string().nullable(),
|
|
25121
|
-
|
|
25122
|
-
listLayout: eventLayoutSchema,
|
|
25123
|
-
listColumns: columnOptionSchema,
|
|
25124
|
-
eventsPerPage: eventPageSizeSchema,
|
|
25125
|
-
paginationAction: eventListPaginationActionSchema,
|
|
25126
|
-
startOfWeek: weekStartSchema,
|
|
25127
|
-
calendarTabViews: calendarTabViewsSchema,
|
|
25128
|
-
defaultCalendarView: eventCalendarDefaultViewSchema,
|
|
25129
|
-
showFilters: z$1.boolean(),
|
|
25130
|
-
showCategoryFilter: filterAutoShowSchema,
|
|
25131
|
-
showVenueFilter: z$1.boolean(),
|
|
25132
|
-
showStaffFilter: z$1.boolean(),
|
|
25133
|
-
eventKind: eventBlockKindSchema,
|
|
25134
|
-
eventSurface: eventSurfaceScopeSchema,
|
|
25135
|
-
filterEventPresets: z$1.string().nullable(),
|
|
25136
|
-
scheduleScope: eventScheduleScopeSchema,
|
|
25137
|
-
filterCategoryIds: z$1.string().nullable(),
|
|
25138
|
-
filterStaffMemberId: z$1.string().nullable(),
|
|
25139
|
-
filterVenueId: z$1.string().nullable(),
|
|
25140
|
-
buttonVariant: eventButtonVariantSchema,
|
|
25141
|
-
buttonText: z$1.string(),
|
|
25075
|
+
...eventCollectionDisplaySchemaShape,
|
|
25142
25076
|
boardTitle: z$1.string().optional(),
|
|
25143
25077
|
footerNote: z$1.string().optional(),
|
|
25144
25078
|
seeAllUrl: z$1.string().optional(),
|
|
25145
25079
|
loadMoreText: z$1.string().optional(),
|
|
25146
25080
|
elevated: z$1.boolean(),
|
|
25147
|
-
banded: z$1.boolean()
|
|
25148
|
-
showVenue: z$1.boolean(),
|
|
25149
|
-
showMap: z$1.boolean(),
|
|
25150
|
-
showCapacity: z$1.boolean(),
|
|
25151
|
-
emptyMessage: z$1.string()
|
|
25152
|
-
});
|
|
25153
|
-
const eventCalendarHydrationSchema = z$1.object({
|
|
25154
|
-
siteId: z$1.string(),
|
|
25155
|
-
stage: previewStageSchema.optional(),
|
|
25156
|
-
prefetchedEvents: z$1.boolean(),
|
|
25157
|
-
eventKind: eventBlockKindSchema,
|
|
25158
|
-
eventSurface: eventSurfaceScopeSchema,
|
|
25159
|
-
filterEventPresets: z$1.string().nullable(),
|
|
25160
|
-
scheduleScope: eventScheduleScopeSchema
|
|
25081
|
+
banded: z$1.boolean()
|
|
25161
25082
|
});
|
|
25083
|
+
const eventCalendarHydrationSchema = eventCollectionHydrationSchema;
|
|
25162
25084
|
const eventCalendarRenderSchema = z$1.object({
|
|
25163
25085
|
display: eventCalendarDisplaySchema,
|
|
25164
25086
|
hydration: eventCalendarHydrationSchema
|
|
@@ -25181,44 +25103,21 @@ function normalizeOptionalText(value) {
|
|
|
25181
25103
|
function buildEventCalendarDisplay(source) {
|
|
25182
25104
|
const listLayout = source.listLayout ?? source.layout ?? "stack";
|
|
25183
25105
|
return {
|
|
25106
|
+
...buildEventCollectionDisplay({
|
|
25107
|
+
...source,
|
|
25108
|
+
listLayout,
|
|
25109
|
+
listColumns: source.listColumns ?? source.columns
|
|
25110
|
+
}),
|
|
25184
25111
|
kind: "event-calendar",
|
|
25185
25112
|
displayMode: source.variant ?? source.displayMode ?? "combined",
|
|
25186
25113
|
className: source.className ?? null,
|
|
25187
25114
|
events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
|
|
25188
|
-
listLayout,
|
|
25189
|
-
listColumns: source.listColumns ?? source.columns ?? "3",
|
|
25190
|
-
eventsPerPage: resolveEventCalendarListPageSize({ eventsPerPage: source.eventsPerPage }),
|
|
25191
|
-
paginationAction: resolveEventListPaginationAction({
|
|
25192
|
-
paginationMode: source.paginationMode,
|
|
25193
|
-
seeAllUrl: source.seeAllUrl,
|
|
25194
|
-
loadMoreText: source.loadMoreText
|
|
25195
|
-
}),
|
|
25196
|
-
startOfWeek: source.startOfWeek ?? "monday",
|
|
25197
|
-
calendarTabViews: source.calendarTabViews ?? "both",
|
|
25198
|
-
defaultCalendarView: source.defaultCalendarView ?? "month",
|
|
25199
|
-
showFilters: source.showFilters ?? true,
|
|
25200
|
-
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
25201
|
-
showVenueFilter: source.showVenueFilter ?? false,
|
|
25202
|
-
showStaffFilter: source.showStaffFilter ?? true,
|
|
25203
|
-
eventKind: normalizeEventBlockKind(source.kind),
|
|
25204
|
-
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
25205
|
-
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
25206
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
25207
|
-
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
25208
|
-
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
25209
|
-
filterVenueId: normalizeEventVenueId(source.filterVenueId),
|
|
25210
|
-
buttonVariant: source.buttonVariant ?? "primary",
|
|
25211
|
-
buttonText: source.buttonText ?? "Book",
|
|
25212
25115
|
boardTitle: normalizeOptionalText(source.boardTitle),
|
|
25213
25116
|
footerNote: normalizeOptionalText(source.footerNote),
|
|
25214
25117
|
seeAllUrl: normalizeOptionalText(source.seeAllUrl),
|
|
25215
25118
|
loadMoreText: normalizeOptionalText(source.loadMoreText),
|
|
25216
25119
|
elevated: source.elevated ?? false,
|
|
25217
|
-
banded: source.banded ?? false
|
|
25218
|
-
showVenue: source.showVenue ?? true,
|
|
25219
|
-
showMap: source.showMap ?? true,
|
|
25220
|
-
showCapacity: source.showCapacity ?? true,
|
|
25221
|
-
emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
|
|
25120
|
+
banded: source.banded ?? false
|
|
25222
25121
|
};
|
|
25223
25122
|
}
|
|
25224
25123
|
const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -25229,22 +25128,13 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
25229
25128
|
},
|
|
25230
25129
|
buildRender: (source) => ({
|
|
25231
25130
|
display: buildEventCalendarDisplay(source),
|
|
25232
|
-
hydration:
|
|
25233
|
-
siteId: source.siteId,
|
|
25234
|
-
stage: source.stage,
|
|
25235
|
-
prefetchedEvents: source.events != null,
|
|
25236
|
-
eventKind: normalizeEventBlockKind(source.kind),
|
|
25237
|
-
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
25238
|
-
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
25239
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope)
|
|
25240
|
-
}
|
|
25131
|
+
hydration: buildEventCollectionHydration(source)
|
|
25241
25132
|
})
|
|
25242
25133
|
});
|
|
25243
25134
|
//#endregion
|
|
25244
25135
|
//#region ../blocks/src/system/blocks/events/event-calendar.ts
|
|
25245
25136
|
function normalizeEventCalendarContent(content) {
|
|
25246
25137
|
const record = typeof content === "object" && content !== null ? content : {};
|
|
25247
|
-
const kind = normalizeEventBlockKind(record.kind);
|
|
25248
25138
|
const variant = normalizeEventCalendarDisplayMode(record.variant) ?? normalizeEventCalendarDisplayMode(record.displayMode);
|
|
25249
25139
|
return {
|
|
25250
25140
|
...record,
|
|
@@ -25252,11 +25142,10 @@ function normalizeEventCalendarContent(content) {
|
|
|
25252
25142
|
displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
|
|
25253
25143
|
listLayout: normalizeEventCalendarListLayout(record.listLayout),
|
|
25254
25144
|
defaultCalendarView: normalizeEventCalendarDefaultView(record.defaultCalendarView),
|
|
25255
|
-
kind,
|
|
25256
25145
|
eventSurface: normalizeEventSurfaceScope(record.eventSurface),
|
|
25257
25146
|
filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
|
|
25258
25147
|
scheduleScope: normalizeEventScheduleScope(record.scheduleScope),
|
|
25259
|
-
filterCategoryIds:
|
|
25148
|
+
filterCategoryIds: normalizeEventCategoryIds(record.filterCategoryIds),
|
|
25260
25149
|
filterStaffMemberId: normalizeEventStaffMemberId(record.filterStaffMemberId),
|
|
25261
25150
|
filterVenueId: normalizeEventVenueId(record.filterVenueId)
|
|
25262
25151
|
};
|
|
@@ -25350,10 +25239,6 @@ const eventCalendarLayout = [styledSection({
|
|
|
25350
25239
|
from: "content.showCapacity",
|
|
25351
25240
|
fallback: true
|
|
25352
25241
|
} },
|
|
25353
|
-
kind: { $bind: {
|
|
25354
|
-
from: "content.kind",
|
|
25355
|
-
fallback: "all"
|
|
25356
|
-
} },
|
|
25357
25242
|
eventSurface: { $bind: {
|
|
25358
25243
|
from: "content.eventSurface",
|
|
25359
25244
|
fallback: "all"
|
|
@@ -25671,30 +25556,6 @@ const eventCalendarAdditionalFields = [
|
|
|
25671
25556
|
}] }] }
|
|
25672
25557
|
}
|
|
25673
25558
|
},
|
|
25674
|
-
{
|
|
25675
|
-
id: "kind",
|
|
25676
|
-
type: "select",
|
|
25677
|
-
label: "Show",
|
|
25678
|
-
description: "Restrict this block to all offerings, courses, or events",
|
|
25679
|
-
required: false,
|
|
25680
|
-
multiple: false,
|
|
25681
|
-
defaultValue: "all",
|
|
25682
|
-
options: [
|
|
25683
|
-
{
|
|
25684
|
-
value: "all",
|
|
25685
|
-
label: "All offerings"
|
|
25686
|
-
},
|
|
25687
|
-
{
|
|
25688
|
-
value: "courses",
|
|
25689
|
-
label: "Courses only"
|
|
25690
|
-
},
|
|
25691
|
-
{
|
|
25692
|
-
value: "events",
|
|
25693
|
-
label: "Events only"
|
|
25694
|
-
}
|
|
25695
|
-
],
|
|
25696
|
-
ui: { intent: "behavior" }
|
|
25697
|
-
},
|
|
25698
25559
|
{
|
|
25699
25560
|
id: "showFilters",
|
|
25700
25561
|
type: "boolean",
|
|
@@ -25926,6 +25787,10 @@ const eventCalendarAdditionalFields = [
|
|
|
25926
25787
|
multiple: true,
|
|
25927
25788
|
defaultValue: [],
|
|
25928
25789
|
options: [
|
|
25790
|
+
{
|
|
25791
|
+
value: "course",
|
|
25792
|
+
label: "Courses"
|
|
25793
|
+
},
|
|
25929
25794
|
{
|
|
25930
25795
|
value: "class",
|
|
25931
25796
|
label: "Classes"
|
|
@@ -25991,11 +25856,7 @@ const eventCalendarAdditionalFields = [
|
|
|
25991
25856
|
optionSource: "eventCategories",
|
|
25992
25857
|
ui: {
|
|
25993
25858
|
intent: "behavior",
|
|
25994
|
-
searchThreshold: 8
|
|
25995
|
-
visibleWhen: {
|
|
25996
|
-
field: "kind",
|
|
25997
|
-
notEquals: "courses"
|
|
25998
|
-
}
|
|
25859
|
+
searchThreshold: 8
|
|
25999
25860
|
}
|
|
26000
25861
|
}),
|
|
26001
25862
|
createSiteOptionSelectField({
|
|
@@ -26156,7 +26017,6 @@ const eventCalendarBlockDefinition = {
|
|
|
26156
26017
|
from: "content.variant",
|
|
26157
26018
|
fallback: "listing-card"
|
|
26158
26019
|
} },
|
|
26159
|
-
kind: { $bind: { from: "content.kind" } },
|
|
26160
26020
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
26161
26021
|
eventPresets: { $bind: {
|
|
26162
26022
|
from: "content.filterEventPresets",
|
|
@@ -26403,7 +26263,6 @@ const recurringScheduleBlockDefinition = {
|
|
|
26403
26263
|
} },
|
|
26404
26264
|
detailLevel: "listing",
|
|
26405
26265
|
readProfile: "compact-list",
|
|
26406
|
-
kind: "events",
|
|
26407
26266
|
eventSurface: "custom",
|
|
26408
26267
|
eventPresets: "class",
|
|
26409
26268
|
scheduleScope: "any"
|
|
@@ -26805,7 +26664,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
26805
26664
|
mode: "server"
|
|
26806
26665
|
},
|
|
26807
26666
|
courses: {
|
|
26808
|
-
endpoint: "
|
|
26667
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
26809
26668
|
params: {
|
|
26810
26669
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
26811
26670
|
limit: { $bind: {
|
|
@@ -26836,7 +26695,6 @@ function eventPresetLoader(preset) {
|
|
|
26836
26695
|
} },
|
|
26837
26696
|
detailLevel: "listing",
|
|
26838
26697
|
readProfile: "listing-card",
|
|
26839
|
-
kind: "events",
|
|
26840
26698
|
eventPresets: preset
|
|
26841
26699
|
},
|
|
26842
26700
|
mode: "server"
|