@riverbankcms/sdk 0.123.0 → 0.125.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-DvJFmC29.mjs → PreviewEditorSidebar-BezDOtQ7.mjs} +22 -39
- package/dist/{PreviewEditorUI-DVHP4bCo.mjs → PreviewEditorUI-CgSqmfo2.mjs} +3 -3
- package/dist/{PreviewQueryProvider-07EE4uWL.mjs → PreviewQueryProvider-BH-3-jSj.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BE5eFayo.mjs → SdkPreviewModeRuntime-Co3AHfj0.mjs} +1031 -1237
- package/dist/{SiteChromeCustomizeContext-4hn4A0HX.mjs → SiteChromeCustomizeContext-BHF-KANn.mjs} +1949 -2004
- package/dist/_dts/ai/src/contracts/proposals.d.ts +1236 -4152
- package/dist/_dts/api/src/accessAdmin.d.ts +2 -14
- 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 +72 -73
- 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 +9 -11
- 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/siteAccessAdmin.d.ts +23 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -38
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +3 -4
- package/dist/_dts/billing/src/plans/types.d.ts +24 -5
- 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 +4 -16
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -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 +20 -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/logic.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +4 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +2 -2
- 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 +1646 -37
- 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 +7267 -8479
- 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-CyPpekBp.mjs} +2 -2
- package/dist/client/{EventCombined.client-De8YWBSr.mjs → EventCombined.client-zywit-60.mjs} +5 -16
- package/dist/client/{EventListing.client-seHTjimY.mjs → EventListing.client-J2nLhkKT.mjs} +3 -10
- package/dist/client/{LeafletStaticMap-BmQxFcJW.mjs → LeafletStaticMap-CSubXWt6.mjs} +1 -1
- package/dist/client/{MagicLinkForm-OoJAIUIj.mjs → MagicLinkForm-DDLIfiq9.mjs} +2 -2
- package/dist/client/{StepIndicator-CiZ8kdPk.mjs → StepIndicator-DE8EvHIp.mjs} +2 -2
- package/dist/client/{accordion-6lnN__XJ.mjs → accordion-Ct5T5NiA.mjs} +1 -1
- package/dist/client/{bookingForm-5uyqhONU.mjs → bookingForm-DMxtLPxw.mjs} +6 -6
- package/dist/client/bookings.mjs +753 -818
- package/dist/client/{carousel-Dtnifil_.mjs → carousel--FMqgvob.mjs} +1 -1
- package/dist/client/{cart-5Tc5S7NV.mjs → cart-BKX1bWiU.mjs} +3 -3
- package/dist/client/{checkout-CYKKN5Hr.mjs → checkout-B_jxi4WW.mjs} +3 -3
- package/dist/client/client.mjs +6876 -7150
- package/dist/client/{context-BGZNlGXB.mjs → context-CJz1Vlsz.mjs} +40 -43
- package/dist/client/{courseRegistration-CxCBybB4.mjs → courseRegistration-DH4MlkRD.mjs} +606 -621
- package/dist/client/{eventCalendar-Xj2jZS9X.mjs → eventCalendar-BQILwAcL.mjs} +5 -13
- package/dist/client/{eventCombined-CgcMoOgM.mjs → eventCombined-DFFW_Vmo.mjs} +3 -3
- package/dist/client/{eventDetails-CEAH8Edc.mjs → eventDetails-B045CTSJ.mjs} +147 -118
- package/dist/client/{eventListing-qyPVQ0wP.mjs → eventListing-BDMYNVzS.mjs} +3 -3
- package/dist/client/{eventRegistration-DDu79CtL.mjs → eventRegistration-CQ2-BSnB.mjs} +165 -68
- package/dist/client/{form-Bc7JKI7I.mjs → form-DJKuyZgN.mjs} +2 -2
- package/dist/client/{headerSection-vTku_LEl.mjs → headerSection-DeTjfiDo.mjs} +2 -2
- package/dist/client/hooks.mjs +3454 -2363
- package/dist/client/{locationMap-Bg7X4Jna.mjs → locationMap-i2wDA8gB.mjs} +2 -2
- package/dist/client/{newsletterForm-lpylVdp5.mjs → newsletterForm-DKiueauk.mjs} +2 -2
- package/dist/client/{pricing-DE8fjJiT.mjs → pricing-C01J3Epx.mjs} +3 -19
- package/dist/client/{productDetail-D7Bo2RMH.mjs → productDetail-Dfc1sZaX.mjs} +3 -3
- package/dist/client/{productList-VjnZqiqN.mjs → productList-BXbvXWTF.mjs} +3 -3
- package/dist/client/{propsDecoder-DreFXjNP.mjs → propsDecoder-CIR5DQ1l.mjs} +213 -376
- package/dist/client/rendering/client.mjs +3036 -3292
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +5489 -4585
- package/dist/client/{shop-IRsHHbf7.mjs → shop-BbNwPKM-.mjs} +6 -6
- package/dist/client/{shop-commerce-gnI8PieZ.mjs → shop-commerce-XO-XMFEt.mjs} +5 -5
- package/dist/client/{shop-commerce-store-BTbrhObn.mjs → shop-commerce-store-Byh6OUGK.mjs} +1 -1
- package/dist/client/{shopShared-D6KS2_qk.mjs → shopShared-Bbq39mwr.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-DCccGCxV.mjs → useDiscountCodeUi-Bcyh4508.mjs} +2 -2
- package/dist/client/{useEventFilters-eGs3rPZQ.mjs → useEventFilters-C8OOJ3el.mjs} +59 -124
- package/dist/client/{usePolling-CvSU2sur.mjs → usePolling-CyJVo9kF.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +1115 -1044
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +1118 -1047
- package/dist/{previewAuthStore-ShY26RNz.mjs → previewAuthStore-CJX21dGi.mjs} +1121 -1047
- package/dist/{sdk-runtime-CJxkFq2B.mjs → sdk-runtime-BGhyuE-E.mjs} +2 -2
- package/dist/{separator-CoFmo8uA.mjs → separator-BFs-Kmv5.mjs} +1 -1
- package/dist/server/components.mjs +5909 -5011
- package/dist/server/config-validation.mjs +3456 -2354
- package/dist/server/config.mjs +3456 -2354
- package/dist/server/data.mjs +3454 -2365
- package/dist/server/index.mjs +1501 -1491
- package/dist/server/next.mjs +7534 -8067
- package/dist/server/page-converter.mjs +1900 -2038
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +5618 -4723
- package/dist/server/rendering.mjs +6238 -5393
- package/dist/server/routing.mjs +3616 -2507
- package/dist/server/server.mjs +3300 -3477
- 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,8 +23933,8 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
24007
23933
|
from: "$root.occurrenceContext",
|
|
24008
23934
|
fallback: null
|
|
24009
23935
|
} },
|
|
24010
|
-
|
|
24011
|
-
from: "$root.
|
|
23936
|
+
subject: { $bind: {
|
|
23937
|
+
from: "$root.subject",
|
|
24012
23938
|
fallback: null
|
|
24013
23939
|
} },
|
|
24014
23940
|
events: { $bind: { from: "data.eventDetailsData.events" } },
|
|
@@ -24084,7 +24010,6 @@ const eventDetailsBlockDefinition = {
|
|
|
24084
24010
|
fallback: "published"
|
|
24085
24011
|
} },
|
|
24086
24012
|
limit: "25",
|
|
24087
|
-
entryId: { $bind: { from: "$root.contentEntry._entryId" } },
|
|
24088
24013
|
seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
|
|
24089
24014
|
includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
|
|
24090
24015
|
},
|
|
@@ -24129,15 +24054,6 @@ const courseDetailsBlockDefinition = {
|
|
|
24129
24054
|
multiline: false,
|
|
24130
24055
|
defaultValue: "Course details"
|
|
24131
24056
|
},
|
|
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
24057
|
{
|
|
24142
24058
|
id: "showTitle",
|
|
24143
24059
|
type: "boolean",
|
|
@@ -24233,26 +24149,14 @@ const courseDetailsBlockDefinition = {
|
|
|
24233
24149
|
}
|
|
24234
24150
|
],
|
|
24235
24151
|
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
|
-
} },
|
|
24152
|
+
baseClass: "",
|
|
24153
|
+
spacing: "spacious",
|
|
24154
|
+
children: sectionContainer([text({ as: "h2" }, bind("content.heading"), when("content.heading")), el("course-details", {
|
|
24247
24155
|
subject: { $bind: {
|
|
24248
24156
|
from: "$root.subject",
|
|
24249
24157
|
fallback: null
|
|
24250
24158
|
} },
|
|
24251
24159
|
courses: { $bind: { from: "data.courses" } },
|
|
24252
|
-
courseSlug: { $bind: {
|
|
24253
|
-
from: "content.courseSlug",
|
|
24254
|
-
fallback: null
|
|
24255
|
-
} },
|
|
24256
24160
|
showTitle: { $bind: {
|
|
24257
24161
|
from: "content.showTitle",
|
|
24258
24162
|
fallback: false
|
|
@@ -24294,7 +24198,7 @@ const courseDetailsBlockDefinition = {
|
|
|
24294
24198
|
}),
|
|
24295
24199
|
dataSchemas: { courses: publicCoursesArraySchema.optional() },
|
|
24296
24200
|
dataLoaders: { courses: {
|
|
24297
|
-
endpoint: "
|
|
24201
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
24298
24202
|
params: {
|
|
24299
24203
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
24300
24204
|
limit: "50",
|
|
@@ -24538,13 +24442,137 @@ function resolveEventListPaginationAction(input) {
|
|
|
24538
24442
|
};
|
|
24539
24443
|
}
|
|
24540
24444
|
//#endregion
|
|
24445
|
+
//#region ../blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.ts
|
|
24446
|
+
const eventSurfaceScopeSchema$1 = z$1.enum(eventSurfaceScopeValues);
|
|
24447
|
+
const eventScheduleScopeSchema$1 = z$1.enum(eventScheduleScopeValues);
|
|
24448
|
+
const eventCollectionFilterSourceSchemaShape = {
|
|
24449
|
+
showFilters: z$1.boolean().nullable().optional(),
|
|
24450
|
+
showCategoryFilter: filterAutoShowSchema.optional(),
|
|
24451
|
+
showVenueFilter: z$1.boolean().nullable().optional(),
|
|
24452
|
+
showStaffFilter: z$1.boolean().nullable().optional(),
|
|
24453
|
+
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
24454
|
+
filterEventPresets: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
24455
|
+
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
24456
|
+
filterCategoryIds: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
24457
|
+
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
24458
|
+
filterVenueId: z$1.string().nullable().optional()
|
|
24459
|
+
};
|
|
24460
|
+
const eventCollectionSourceSchemaShape = {
|
|
24461
|
+
events: z$1.array(publicEventSchema).nullable().optional(),
|
|
24462
|
+
siteId: z$1.string(),
|
|
24463
|
+
apiBaseUrl: z$1.string().optional(),
|
|
24464
|
+
stage: previewStageSchema.optional(),
|
|
24465
|
+
listLayout: eventLayoutSchema.optional(),
|
|
24466
|
+
listColumns: columnOptionSchema.optional(),
|
|
24467
|
+
eventsPerPage: z$1.string().optional(),
|
|
24468
|
+
paginationMode: z$1.enum(["loadMore", "seeAllLink"]).optional(),
|
|
24469
|
+
seeAllUrl: z$1.string().optional(),
|
|
24470
|
+
loadMoreText: z$1.string().optional(),
|
|
24471
|
+
startOfWeek: weekStartSchema.optional(),
|
|
24472
|
+
calendarTabViews: calendarTabViewsSchema.optional(),
|
|
24473
|
+
defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
|
|
24474
|
+
...eventCollectionFilterSourceSchemaShape,
|
|
24475
|
+
showVenue: z$1.boolean().nullable().optional(),
|
|
24476
|
+
showMap: z$1.boolean().nullable().optional(),
|
|
24477
|
+
showCapacity: z$1.boolean().nullable().optional(),
|
|
24478
|
+
buttonVariant: eventButtonVariantSchema.optional(),
|
|
24479
|
+
buttonText: z$1.string().optional(),
|
|
24480
|
+
emptyMessage: z$1.string().optional(),
|
|
24481
|
+
className: z$1.string().optional()
|
|
24482
|
+
};
|
|
24483
|
+
const eventCollectionDisplaySchemaShape = {
|
|
24484
|
+
events: z$1.array(publicEventSchema),
|
|
24485
|
+
listLayout: eventLayoutSchema,
|
|
24486
|
+
listColumns: columnOptionSchema,
|
|
24487
|
+
eventsPerPage: eventPageSizeSchema,
|
|
24488
|
+
paginationAction: eventListPaginationActionSchema,
|
|
24489
|
+
startOfWeek: weekStartSchema,
|
|
24490
|
+
calendarTabViews: calendarTabViewsSchema,
|
|
24491
|
+
defaultCalendarView: eventCalendarDefaultViewSchema,
|
|
24492
|
+
showFilters: z$1.boolean(),
|
|
24493
|
+
showCategoryFilter: filterAutoShowSchema,
|
|
24494
|
+
showVenueFilter: z$1.boolean(),
|
|
24495
|
+
showStaffFilter: z$1.boolean(),
|
|
24496
|
+
eventSurface: eventSurfaceScopeSchema$1,
|
|
24497
|
+
filterEventPresets: z$1.string().nullable(),
|
|
24498
|
+
scheduleScope: eventScheduleScopeSchema$1,
|
|
24499
|
+
filterCategoryIds: z$1.string().nullable(),
|
|
24500
|
+
filterStaffMemberId: z$1.string().nullable(),
|
|
24501
|
+
filterVenueId: z$1.string().nullable(),
|
|
24502
|
+
showVenue: z$1.boolean(),
|
|
24503
|
+
showMap: z$1.boolean(),
|
|
24504
|
+
showCapacity: z$1.boolean(),
|
|
24505
|
+
buttonVariant: eventButtonVariantSchema,
|
|
24506
|
+
buttonText: z$1.string(),
|
|
24507
|
+
emptyMessage: z$1.string()
|
|
24508
|
+
};
|
|
24509
|
+
const eventCollectionHydrationSchema = z$1.object({
|
|
24510
|
+
siteId: z$1.string(),
|
|
24511
|
+
stage: previewStageSchema.optional(),
|
|
24512
|
+
prefetchedEvents: z$1.boolean(),
|
|
24513
|
+
eventSurface: eventSurfaceScopeSchema$1,
|
|
24514
|
+
filterEventPresets: z$1.string().nullable(),
|
|
24515
|
+
scheduleScope: eventScheduleScopeSchema$1
|
|
24516
|
+
});
|
|
24517
|
+
function buildEventCollectionDisplay(source) {
|
|
24518
|
+
return {
|
|
24519
|
+
...buildEventCollectionFilterDisplay(source),
|
|
24520
|
+
...buildEventCollectionPresentationDisplay(source),
|
|
24521
|
+
events: Array.isArray(source.events) ? [...source.events] : [],
|
|
24522
|
+
listLayout: source.listLayout ?? "stack",
|
|
24523
|
+
listColumns: source.listColumns ?? "3",
|
|
24524
|
+
eventsPerPage: resolveEventCalendarListPageSize({ eventsPerPage: source.eventsPerPage }),
|
|
24525
|
+
paginationAction: resolveEventListPaginationAction({
|
|
24526
|
+
paginationMode: source.paginationMode,
|
|
24527
|
+
seeAllUrl: source.seeAllUrl,
|
|
24528
|
+
loadMoreText: source.loadMoreText
|
|
24529
|
+
}),
|
|
24530
|
+
startOfWeek: source.startOfWeek ?? "monday",
|
|
24531
|
+
calendarTabViews: source.calendarTabViews ?? "both",
|
|
24532
|
+
defaultCalendarView: source.defaultCalendarView ?? "month"
|
|
24533
|
+
};
|
|
24534
|
+
}
|
|
24535
|
+
function buildEventCollectionFilterDisplay(source) {
|
|
24536
|
+
return {
|
|
24537
|
+
showFilters: source.showFilters ?? true,
|
|
24538
|
+
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
24539
|
+
showVenueFilter: source.showVenueFilter ?? false,
|
|
24540
|
+
showStaffFilter: source.showStaffFilter ?? true,
|
|
24541
|
+
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
24542
|
+
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
24543
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
24544
|
+
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
24545
|
+
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
24546
|
+
filterVenueId: normalizeEventVenueId(source.filterVenueId)
|
|
24547
|
+
};
|
|
24548
|
+
}
|
|
24549
|
+
function buildEventCollectionPresentationDisplay(source) {
|
|
24550
|
+
return {
|
|
24551
|
+
showVenue: source.showVenue ?? true,
|
|
24552
|
+
showMap: source.showMap ?? true,
|
|
24553
|
+
showCapacity: source.showCapacity ?? true,
|
|
24554
|
+
buttonVariant: source.buttonVariant ?? "primary",
|
|
24555
|
+
buttonText: source.buttonText ?? "Book",
|
|
24556
|
+
emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
|
|
24557
|
+
};
|
|
24558
|
+
}
|
|
24559
|
+
function buildEventCollectionHydration(source) {
|
|
24560
|
+
return {
|
|
24561
|
+
siteId: source.siteId,
|
|
24562
|
+
stage: source.stage,
|
|
24563
|
+
prefetchedEvents: source.events != null,
|
|
24564
|
+
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
24565
|
+
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
24566
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope)
|
|
24567
|
+
};
|
|
24568
|
+
}
|
|
24569
|
+
//#endregion
|
|
24541
24570
|
//#region ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
|
|
24542
24571
|
const legacyEventCardVariantSchema = z$1.enum(["variant1", "variant2"]);
|
|
24543
24572
|
const eventCardVariantInputSchema = z$1.union([cardVariantRoleSchema, legacyEventCardVariantSchema]);
|
|
24544
24573
|
const cardOrientationSchema = z$1.enum(["vertical", "horizontal"]);
|
|
24545
|
-
const
|
|
24546
|
-
const
|
|
24547
|
-
const eventScheduleScopeSchema$1 = z$1.enum(eventScheduleScopeValues);
|
|
24574
|
+
const eventSurfaceScopeSchema = z$1.enum(eventSurfaceScopeValues);
|
|
24575
|
+
const eventScheduleScopeSchema = z$1.enum(eventScheduleScopeValues);
|
|
24548
24576
|
const eventListingSourceSchema = z$1.object({
|
|
24549
24577
|
events: z$1.array(publicEventSchema).nullable().optional(),
|
|
24550
24578
|
siteId: z$1.string(),
|
|
@@ -24564,17 +24592,7 @@ const eventListingSourceSchema = z$1.object({
|
|
|
24564
24592
|
showCapacity: z$1.boolean().optional(),
|
|
24565
24593
|
emptyMessage: z$1.string().optional(),
|
|
24566
24594
|
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()
|
|
24595
|
+
...eventCollectionFilterSourceSchemaShape
|
|
24578
24596
|
});
|
|
24579
24597
|
const eventListingDisplaySchema = z$1.object({
|
|
24580
24598
|
kind: z$1.literal("event-listing"),
|
|
@@ -24606,10 +24624,9 @@ const eventListingHydrationSchema = z$1.object({
|
|
|
24606
24624
|
showCategoryFilter: filterAutoShowSchema,
|
|
24607
24625
|
showVenueFilter: z$1.boolean(),
|
|
24608
24626
|
showStaffFilter: z$1.boolean(),
|
|
24609
|
-
|
|
24610
|
-
eventSurface: eventSurfaceScopeSchema$1,
|
|
24627
|
+
eventSurface: eventSurfaceScopeSchema,
|
|
24611
24628
|
filterEventPresets: z$1.string().nullable(),
|
|
24612
|
-
scheduleScope: eventScheduleScopeSchema
|
|
24629
|
+
scheduleScope: eventScheduleScopeSchema,
|
|
24613
24630
|
filterCategoryIds: z$1.string().nullable().optional(),
|
|
24614
24631
|
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
24615
24632
|
filterVenueId: z$1.string().nullable().optional(),
|
|
@@ -24667,7 +24684,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
24667
24684
|
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
24668
24685
|
showVenueFilter: source.showVenueFilter ?? false,
|
|
24669
24686
|
showStaffFilter: source.showStaffFilter ?? false,
|
|
24670
|
-
eventKind: normalizeEventBlockKind(source.eventKind),
|
|
24671
24687
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
24672
24688
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
24673
24689
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
@@ -24791,30 +24807,6 @@ const eventListingBlockDefinition = {
|
|
|
24791
24807
|
intent: "display"
|
|
24792
24808
|
}
|
|
24793
24809
|
})),
|
|
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
24810
|
{
|
|
24819
24811
|
id: "eventSurface",
|
|
24820
24812
|
type: "select",
|
|
@@ -24852,6 +24844,10 @@ const eventListingBlockDefinition = {
|
|
|
24852
24844
|
multiple: true,
|
|
24853
24845
|
defaultValue: [],
|
|
24854
24846
|
options: [
|
|
24847
|
+
{
|
|
24848
|
+
value: "course",
|
|
24849
|
+
label: "Courses"
|
|
24850
|
+
},
|
|
24855
24851
|
{
|
|
24856
24852
|
value: "class",
|
|
24857
24853
|
label: "Classes"
|
|
@@ -25003,10 +24999,6 @@ const eventListingBlockDefinition = {
|
|
|
25003
24999
|
showVenue: { $bind: { from: "content.showVenue" } },
|
|
25004
25000
|
showMap: { $bind: { from: "content.showMap" } },
|
|
25005
25001
|
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
25006
|
-
eventKind: { $bind: {
|
|
25007
|
-
from: "content.kind",
|
|
25008
|
-
fallback: "all"
|
|
25009
|
-
} },
|
|
25010
25002
|
eventSurface: { $bind: {
|
|
25011
25003
|
from: "content.eventSurface",
|
|
25012
25004
|
fallback: "all"
|
|
@@ -25057,7 +25049,6 @@ const eventListingBlockDefinition = {
|
|
|
25057
25049
|
from: "content.layout",
|
|
25058
25050
|
fallback: "listing-card"
|
|
25059
25051
|
} },
|
|
25060
|
-
kind: { $bind: { from: "content.kind" } },
|
|
25061
25052
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
25062
25053
|
eventPresets: { $bind: {
|
|
25063
25054
|
from: "content.filterEventPresets",
|
|
@@ -25070,95 +25061,30 @@ const eventListingBlockDefinition = {
|
|
|
25070
25061
|
};
|
|
25071
25062
|
//#endregion
|
|
25072
25063
|
//#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
25064
|
const eventCalendarSourceSchema = z$1.object({
|
|
25077
|
-
|
|
25078
|
-
siteId: z$1.string(),
|
|
25079
|
-
apiBaseUrl: z$1.string().optional(),
|
|
25080
|
-
stage: previewStageSchema.optional(),
|
|
25065
|
+
...eventCollectionSourceSchemaShape,
|
|
25081
25066
|
variant: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
25082
25067
|
displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
25083
|
-
listLayout: eventLayoutSchema.optional(),
|
|
25084
|
-
listColumns: columnOptionSchema.optional(),
|
|
25085
25068
|
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(),
|
|
25069
|
+
columns: eventCollectionSourceSchemaShape.listColumns,
|
|
25107
25070
|
boardTitle: z$1.string().optional(),
|
|
25108
25071
|
footerNote: z$1.string().optional(),
|
|
25109
25072
|
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()
|
|
25073
|
+
banded: z$1.boolean().nullable().optional()
|
|
25116
25074
|
});
|
|
25117
25075
|
const eventCalendarDisplaySchema = z$1.object({
|
|
25118
25076
|
kind: z$1.literal("event-calendar"),
|
|
25119
25077
|
displayMode: eventCalendarDisplayModeSchema,
|
|
25120
25078
|
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(),
|
|
25079
|
+
...eventCollectionDisplaySchemaShape,
|
|
25142
25080
|
boardTitle: z$1.string().optional(),
|
|
25143
25081
|
footerNote: z$1.string().optional(),
|
|
25144
25082
|
seeAllUrl: z$1.string().optional(),
|
|
25145
25083
|
loadMoreText: z$1.string().optional(),
|
|
25146
25084
|
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
|
|
25085
|
+
banded: z$1.boolean()
|
|
25161
25086
|
});
|
|
25087
|
+
const eventCalendarHydrationSchema = eventCollectionHydrationSchema;
|
|
25162
25088
|
const eventCalendarRenderSchema = z$1.object({
|
|
25163
25089
|
display: eventCalendarDisplaySchema,
|
|
25164
25090
|
hydration: eventCalendarHydrationSchema
|
|
@@ -25181,44 +25107,21 @@ function normalizeOptionalText(value) {
|
|
|
25181
25107
|
function buildEventCalendarDisplay(source) {
|
|
25182
25108
|
const listLayout = source.listLayout ?? source.layout ?? "stack";
|
|
25183
25109
|
return {
|
|
25110
|
+
...buildEventCollectionDisplay({
|
|
25111
|
+
...source,
|
|
25112
|
+
listLayout,
|
|
25113
|
+
listColumns: source.listColumns ?? source.columns
|
|
25114
|
+
}),
|
|
25184
25115
|
kind: "event-calendar",
|
|
25185
25116
|
displayMode: source.variant ?? source.displayMode ?? "combined",
|
|
25186
25117
|
className: source.className ?? null,
|
|
25187
25118
|
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
25119
|
boardTitle: normalizeOptionalText(source.boardTitle),
|
|
25213
25120
|
footerNote: normalizeOptionalText(source.footerNote),
|
|
25214
25121
|
seeAllUrl: normalizeOptionalText(source.seeAllUrl),
|
|
25215
25122
|
loadMoreText: normalizeOptionalText(source.loadMoreText),
|
|
25216
25123
|
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."
|
|
25124
|
+
banded: source.banded ?? false
|
|
25222
25125
|
};
|
|
25223
25126
|
}
|
|
25224
25127
|
const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -25229,22 +25132,13 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
25229
25132
|
},
|
|
25230
25133
|
buildRender: (source) => ({
|
|
25231
25134
|
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
|
-
}
|
|
25135
|
+
hydration: buildEventCollectionHydration(source)
|
|
25241
25136
|
})
|
|
25242
25137
|
});
|
|
25243
25138
|
//#endregion
|
|
25244
25139
|
//#region ../blocks/src/system/blocks/events/event-calendar.ts
|
|
25245
25140
|
function normalizeEventCalendarContent(content) {
|
|
25246
25141
|
const record = typeof content === "object" && content !== null ? content : {};
|
|
25247
|
-
const kind = normalizeEventBlockKind(record.kind);
|
|
25248
25142
|
const variant = normalizeEventCalendarDisplayMode(record.variant) ?? normalizeEventCalendarDisplayMode(record.displayMode);
|
|
25249
25143
|
return {
|
|
25250
25144
|
...record,
|
|
@@ -25252,11 +25146,10 @@ function normalizeEventCalendarContent(content) {
|
|
|
25252
25146
|
displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
|
|
25253
25147
|
listLayout: normalizeEventCalendarListLayout(record.listLayout),
|
|
25254
25148
|
defaultCalendarView: normalizeEventCalendarDefaultView(record.defaultCalendarView),
|
|
25255
|
-
kind,
|
|
25256
25149
|
eventSurface: normalizeEventSurfaceScope(record.eventSurface),
|
|
25257
25150
|
filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
|
|
25258
25151
|
scheduleScope: normalizeEventScheduleScope(record.scheduleScope),
|
|
25259
|
-
filterCategoryIds:
|
|
25152
|
+
filterCategoryIds: normalizeEventCategoryIds(record.filterCategoryIds),
|
|
25260
25153
|
filterStaffMemberId: normalizeEventStaffMemberId(record.filterStaffMemberId),
|
|
25261
25154
|
filterVenueId: normalizeEventVenueId(record.filterVenueId)
|
|
25262
25155
|
};
|
|
@@ -25350,10 +25243,6 @@ const eventCalendarLayout = [styledSection({
|
|
|
25350
25243
|
from: "content.showCapacity",
|
|
25351
25244
|
fallback: true
|
|
25352
25245
|
} },
|
|
25353
|
-
kind: { $bind: {
|
|
25354
|
-
from: "content.kind",
|
|
25355
|
-
fallback: "all"
|
|
25356
|
-
} },
|
|
25357
25246
|
eventSurface: { $bind: {
|
|
25358
25247
|
from: "content.eventSurface",
|
|
25359
25248
|
fallback: "all"
|
|
@@ -25671,30 +25560,6 @@ const eventCalendarAdditionalFields = [
|
|
|
25671
25560
|
}] }] }
|
|
25672
25561
|
}
|
|
25673
25562
|
},
|
|
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
25563
|
{
|
|
25699
25564
|
id: "showFilters",
|
|
25700
25565
|
type: "boolean",
|
|
@@ -25926,6 +25791,10 @@ const eventCalendarAdditionalFields = [
|
|
|
25926
25791
|
multiple: true,
|
|
25927
25792
|
defaultValue: [],
|
|
25928
25793
|
options: [
|
|
25794
|
+
{
|
|
25795
|
+
value: "course",
|
|
25796
|
+
label: "Courses"
|
|
25797
|
+
},
|
|
25929
25798
|
{
|
|
25930
25799
|
value: "class",
|
|
25931
25800
|
label: "Classes"
|
|
@@ -25991,11 +25860,7 @@ const eventCalendarAdditionalFields = [
|
|
|
25991
25860
|
optionSource: "eventCategories",
|
|
25992
25861
|
ui: {
|
|
25993
25862
|
intent: "behavior",
|
|
25994
|
-
searchThreshold: 8
|
|
25995
|
-
visibleWhen: {
|
|
25996
|
-
field: "kind",
|
|
25997
|
-
notEquals: "courses"
|
|
25998
|
-
}
|
|
25863
|
+
searchThreshold: 8
|
|
25999
25864
|
}
|
|
26000
25865
|
}),
|
|
26001
25866
|
createSiteOptionSelectField({
|
|
@@ -26156,7 +26021,6 @@ const eventCalendarBlockDefinition = {
|
|
|
26156
26021
|
from: "content.variant",
|
|
26157
26022
|
fallback: "listing-card"
|
|
26158
26023
|
} },
|
|
26159
|
-
kind: { $bind: { from: "content.kind" } },
|
|
26160
26024
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
26161
26025
|
eventPresets: { $bind: {
|
|
26162
26026
|
from: "content.filterEventPresets",
|
|
@@ -26403,7 +26267,6 @@ const recurringScheduleBlockDefinition = {
|
|
|
26403
26267
|
} },
|
|
26404
26268
|
detailLevel: "listing",
|
|
26405
26269
|
readProfile: "compact-list",
|
|
26406
|
-
kind: "events",
|
|
26407
26270
|
eventSurface: "custom",
|
|
26408
26271
|
eventPresets: "class",
|
|
26409
26272
|
scheduleScope: "any"
|
|
@@ -26805,7 +26668,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
26805
26668
|
mode: "server"
|
|
26806
26669
|
},
|
|
26807
26670
|
courses: {
|
|
26808
|
-
endpoint: "
|
|
26671
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
26809
26672
|
params: {
|
|
26810
26673
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
26811
26674
|
limit: { $bind: {
|
|
@@ -26836,7 +26699,6 @@ function eventPresetLoader(preset) {
|
|
|
26836
26699
|
} },
|
|
26837
26700
|
detailLevel: "listing",
|
|
26838
26701
|
readProfile: "listing-card",
|
|
26839
|
-
kind: "events",
|
|
26840
26702
|
eventPresets: preset
|
|
26841
26703
|
},
|
|
26842
26704
|
mode: "server"
|