@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
package/dist/{SiteChromeCustomizeContext-4hn4A0HX.mjs → SiteChromeCustomizeContext-BHF-KANn.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { d as unwrapResponse, l as ApiEnvelopeError, s as ApiRequestError, u as extractApiEnvelopeErrorDetails } from "./previewAuthStore-
|
|
2
|
+
import { d as unwrapResponse, l as ApiEnvelopeError, s as ApiRequestError, u as extractApiEnvelopeErrorDetails } from "./previewAuthStore-CJX21dGi.mjs";
|
|
3
3
|
import * as React$1 from "react";
|
|
4
4
|
import React, { Component, Fragment, cloneElement, createContext, createElement, createRef, forwardRef, isValidElement, memo, useCallback, useContext, useDebugValue, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
5
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -88369,6 +88369,83 @@ const blockBookingPaymentCollectionOptionSchema = z$1.union([
|
|
|
88369
88369
|
})
|
|
88370
88370
|
]);
|
|
88371
88371
|
const blockBookingPaymentTermsSchema = z$1.object({ allowedOptions: z$1.array(blockBookingPaymentCollectionOptionSchema).min(1) });
|
|
88372
|
+
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z$1.object({
|
|
88373
|
+
kind: z$1.literal("unsupported"),
|
|
88374
|
+
reason: z$1.enum([
|
|
88375
|
+
"unsupportedSubject",
|
|
88376
|
+
"invalidEventSeriesId",
|
|
88377
|
+
"invalidEventOfferingId"
|
|
88378
|
+
])
|
|
88379
|
+
});
|
|
88380
|
+
const eventRegistrationPageSurfaceSubjectSchema = z$1.unknown().transform((value, ctx) => {
|
|
88381
|
+
const unsupported = unsupportedEventRegistrationPageSurfaceSubjectSchema.safeParse(value);
|
|
88382
|
+
if (unsupported.success) return unsupported.data;
|
|
88383
|
+
const parsed = parseEventPageSurfaceSubject(value);
|
|
88384
|
+
if (parsed.ok) return parsed.value;
|
|
88385
|
+
ctx.addIssue({
|
|
88386
|
+
code: z$1.ZodIssueCode.custom,
|
|
88387
|
+
message: `Invalid event page-surface subject (${parsed.error.kind})`
|
|
88388
|
+
});
|
|
88389
|
+
return z$1.NEVER;
|
|
88390
|
+
});
|
|
88391
|
+
function parseEventRegistrationPageSurfaceSubject(value) {
|
|
88392
|
+
return parseEventPageSurfaceSubject(value);
|
|
88393
|
+
}
|
|
88394
|
+
function normalizeEventRegistrationPageSurfaceSubject(value) {
|
|
88395
|
+
const parsed = parseEventRegistrationPageSurfaceSubject(value);
|
|
88396
|
+
if (parsed.ok) return parsed.value;
|
|
88397
|
+
switch (parsed.error.kind) {
|
|
88398
|
+
case "notObject": return null;
|
|
88399
|
+
case "unsupportedSubject": return {
|
|
88400
|
+
kind: "unsupported",
|
|
88401
|
+
reason: "unsupportedSubject"
|
|
88402
|
+
};
|
|
88403
|
+
case "invalidEventSeriesId": return {
|
|
88404
|
+
kind: "unsupported",
|
|
88405
|
+
reason: "invalidEventSeriesId"
|
|
88406
|
+
};
|
|
88407
|
+
case "invalidEventOfferingId": return {
|
|
88408
|
+
kind: "unsupported",
|
|
88409
|
+
reason: "invalidEventOfferingId"
|
|
88410
|
+
};
|
|
88411
|
+
}
|
|
88412
|
+
}
|
|
88413
|
+
function resolveEventRegistrationScope(context) {
|
|
88414
|
+
const occurrenceSeriesId = context.occurrenceContext?.seriesId;
|
|
88415
|
+
if (occurrenceSeriesId) return {
|
|
88416
|
+
kind: "occurrenceSeries",
|
|
88417
|
+
seriesId: occurrenceSeriesId
|
|
88418
|
+
};
|
|
88419
|
+
if (context.subject?.kind === "eventSeries") return {
|
|
88420
|
+
kind: "pageSurfaceSeries",
|
|
88421
|
+
seriesId: context.subject.eventSeriesId
|
|
88422
|
+
};
|
|
88423
|
+
if (context.subject?.kind === "eventOffering") return {
|
|
88424
|
+
kind: "pageSurfaceOffering",
|
|
88425
|
+
offeringId: context.subject.eventOfferingId,
|
|
88426
|
+
seriesIds: context.subject.availableEventSeriesIds
|
|
88427
|
+
};
|
|
88428
|
+
if (context.subject?.kind === "unsupported") return {
|
|
88429
|
+
kind: "unsupportedPageSurfaceSubject",
|
|
88430
|
+
reason: context.subject.reason
|
|
88431
|
+
};
|
|
88432
|
+
return { kind: "unscoped" };
|
|
88433
|
+
}
|
|
88434
|
+
function applyEventRegistrationScope(events, scope) {
|
|
88435
|
+
switch (scope.kind) {
|
|
88436
|
+
case "occurrenceSeries":
|
|
88437
|
+
case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
|
|
88438
|
+
case "pageSurfaceOffering": {
|
|
88439
|
+
const seriesIds = new Set(scope.seriesIds);
|
|
88440
|
+
return events.filter((event) => seriesIds.has(event.seriesId));
|
|
88441
|
+
}
|
|
88442
|
+
case "unsupportedPageSurfaceSubject": return [];
|
|
88443
|
+
case "unscoped": return [...events];
|
|
88444
|
+
}
|
|
88445
|
+
}
|
|
88446
|
+
function resolveEventRegistrationScopedEvents(events, context) {
|
|
88447
|
+
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
88448
|
+
}
|
|
88372
88449
|
//#endregion
|
|
88373
88450
|
//#region ../blocks/src/system/blocks/courses/shared/schemas.ts
|
|
88374
88451
|
/**
|
|
@@ -88432,16 +88509,15 @@ const coursePricingSchema = z$1.object({
|
|
|
88432
88509
|
/**
|
|
88433
88510
|
* Zod schema for public course data
|
|
88434
88511
|
*/
|
|
88435
|
-
const
|
|
88436
|
-
|
|
88437
|
-
|
|
88512
|
+
const publicWholeSeriesOfferingSchema = z$1.object({
|
|
88513
|
+
eventSeriesId: z$1.string(),
|
|
88514
|
+
eventOfferingId: z$1.string(),
|
|
88438
88515
|
title: z$1.string(),
|
|
88439
88516
|
slug: z$1.string(),
|
|
88440
88517
|
description: z$1.unknown().nullable(),
|
|
88441
88518
|
teamMembers: z$1.array(courseTeamMemberSummarySchema).optional(),
|
|
88442
88519
|
enrollmentOpen: z$1.boolean(),
|
|
88443
|
-
pricing: coursePricingSchema
|
|
88444
|
-
priceCents: z$1.number().nullable(),
|
|
88520
|
+
pricing: coursePricingSchema,
|
|
88445
88521
|
currency: z$1.string(),
|
|
88446
88522
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
88447
88523
|
enrollmentCapacity: z$1.number().nullable(),
|
|
@@ -88455,13 +88531,11 @@ const publicCourseSchema = z$1.object({
|
|
|
88455
88531
|
enrolledCount: z$1.number(),
|
|
88456
88532
|
availableSpots: z$1.number().nullable(),
|
|
88457
88533
|
sessions: z$1.array(courseSessionSchema),
|
|
88458
|
-
venue: courseVenueSchema.nullable()
|
|
88459
|
-
contentEntryId: z$1.string().nullable()
|
|
88534
|
+
venue: courseVenueSchema.nullable()
|
|
88460
88535
|
});
|
|
88461
|
-
/**
|
|
88462
|
-
|
|
88463
|
-
|
|
88464
|
-
const publicCoursesArraySchema = z$1.array(publicCourseSchema);
|
|
88536
|
+
/** Deployed course blocks retain this schema alias for stored content. */
|
|
88537
|
+
const publicCourseSchema = publicWholeSeriesOfferingSchema;
|
|
88538
|
+
const publicCoursesArraySchema = z$1.array(publicWholeSeriesOfferingSchema);
|
|
88465
88539
|
//#endregion
|
|
88466
88540
|
//#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
88467
88541
|
function isRecord$7(value) {
|
|
@@ -88972,7 +89046,7 @@ function resolveEventCta(event, buttonText) {
|
|
|
88972
89046
|
const { isFull: isSoldOut } = getEventAvailability(event);
|
|
88973
89047
|
const destination = resolveRuntimeEventDestination(event);
|
|
88974
89048
|
const isExternal = destination.kind === "external";
|
|
88975
|
-
const defaultButtonText = isExternal ? destination.label : event.
|
|
89049
|
+
const defaultButtonText = isExternal ? destination.label : event.bookingScope === "whole_series" ? "Book course" : "Book";
|
|
88976
89050
|
const effectiveButtonText = buttonText ?? defaultButtonText;
|
|
88977
89051
|
const href = resolveEventHref(event);
|
|
88978
89052
|
if (!isExternal && isSoldOut) return {
|
|
@@ -88982,7 +89056,7 @@ function resolveEventCta(event, buttonText) {
|
|
|
88982
89056
|
hidden: true
|
|
88983
89057
|
};
|
|
88984
89058
|
return {
|
|
88985
|
-
label: !(event.
|
|
89059
|
+
label: !(event.bookingScope === "whole_series" ? event.wholeSeries?.enrollmentOpen !== false : true) ? "Registration closed" : effectiveButtonText,
|
|
88986
89060
|
href,
|
|
88987
89061
|
external: isExternal,
|
|
88988
89062
|
hidden: false
|
|
@@ -89136,10 +89210,74 @@ function buildGoogleMapsDirectionsUrl(input) {
|
|
|
89136
89210
|
return url.toString();
|
|
89137
89211
|
}
|
|
89138
89212
|
//#endregion
|
|
89213
|
+
//#region ../blocks/src/system/constants/events.ts
|
|
89214
|
+
const eventCalendarDisplayModeValues = [
|
|
89215
|
+
"combined",
|
|
89216
|
+
"calendar",
|
|
89217
|
+
"list",
|
|
89218
|
+
"timetable",
|
|
89219
|
+
"week-board"
|
|
89220
|
+
];
|
|
89221
|
+
const eventCalendarDefaultViewValues = ["month", "week"];
|
|
89222
|
+
const eventCalendarListLayoutValues = [
|
|
89223
|
+
"stack",
|
|
89224
|
+
"grid",
|
|
89225
|
+
"compact"
|
|
89226
|
+
];
|
|
89227
|
+
const eventCalendarListLayoutOptions = [
|
|
89228
|
+
{
|
|
89229
|
+
id: "stack",
|
|
89230
|
+
label: "Stack"
|
|
89231
|
+
},
|
|
89232
|
+
{
|
|
89233
|
+
id: "grid",
|
|
89234
|
+
label: "Grid"
|
|
89235
|
+
},
|
|
89236
|
+
{
|
|
89237
|
+
id: "compact",
|
|
89238
|
+
label: "Compact"
|
|
89239
|
+
}
|
|
89240
|
+
];
|
|
89241
|
+
const eventCalendarListLayoutCompatibleDisplayModeValues = ["combined", "list"];
|
|
89242
|
+
function isEventCalendarDisplayMode(value) {
|
|
89243
|
+
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
89244
|
+
}
|
|
89245
|
+
function isEventCalendarDefaultView(value) {
|
|
89246
|
+
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
89247
|
+
}
|
|
89248
|
+
function isEventCalendarListLayout(value) {
|
|
89249
|
+
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
89250
|
+
}
|
|
89251
|
+
//#endregion
|
|
89252
|
+
//#region ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
89253
|
+
const previewStageSchema = z$1.enum(["preview", "published"]);
|
|
89254
|
+
const registrationButtonVariantSchema = blockButtonRoleSchema;
|
|
89255
|
+
const eventButtonVariantSchema = persistedBlockButtonRoleSchema;
|
|
89256
|
+
const eventLayoutSchema = z$1.enum(eventCalendarListLayoutValues);
|
|
89257
|
+
const eventCalendarDisplayModeSchema = z$1.enum(eventCalendarDisplayModeValues);
|
|
89258
|
+
const eventCalendarDefaultViewSchema = z$1.enum(eventCalendarDefaultViewValues);
|
|
89259
|
+
const columnOptionSchema = z$1.enum([
|
|
89260
|
+
"2",
|
|
89261
|
+
"3",
|
|
89262
|
+
"4"
|
|
89263
|
+
]);
|
|
89264
|
+
const weekStartSchema = z$1.enum(["sunday", "monday"]);
|
|
89265
|
+
const filterAutoShowSchema = z$1.enum([
|
|
89266
|
+
"auto",
|
|
89267
|
+
"always",
|
|
89268
|
+
"never"
|
|
89269
|
+
]);
|
|
89270
|
+
const calendarTabViewsSchema = z$1.enum([
|
|
89271
|
+
"both",
|
|
89272
|
+
"month",
|
|
89273
|
+
"week"
|
|
89274
|
+
]);
|
|
89275
|
+
//#endregion
|
|
89139
89276
|
//#region ../blocks/src/system/blocks/events/shared/schemas.ts
|
|
89140
89277
|
const eventPresetSchema = z$1.enum([
|
|
89141
89278
|
"event",
|
|
89142
89279
|
"class",
|
|
89280
|
+
"course",
|
|
89143
89281
|
"workshop",
|
|
89144
89282
|
"retreat",
|
|
89145
89283
|
"performance"
|
|
@@ -89406,7 +89544,7 @@ const publicTeamMemberSummarySchema = z$1.object({
|
|
|
89406
89544
|
* Zod schema for public event data
|
|
89407
89545
|
*/
|
|
89408
89546
|
const publicEventSchema = z$1.object({
|
|
89409
|
-
|
|
89547
|
+
bookingScope: z$1.enum(["single_occurrence", "whole_series"]),
|
|
89410
89548
|
eventPreset: eventPresetSchema.optional(),
|
|
89411
89549
|
eventDestinationMode: eventDestinationModeSchema.optional(),
|
|
89412
89550
|
scheduleScope: eventScheduleScopeSchema$2.optional(),
|
|
@@ -89454,10 +89592,9 @@ const publicEventSchema = z$1.object({
|
|
|
89454
89592
|
requireGuestDetails: z$1.boolean().optional(),
|
|
89455
89593
|
acceptsPasses: z$1.boolean().optional(),
|
|
89456
89594
|
acceptsMemberships: z$1.boolean().optional(),
|
|
89457
|
-
|
|
89458
|
-
|
|
89459
|
-
pricing: coursePricingSchema
|
|
89460
|
-
priceCents: z$1.number().nullable(),
|
|
89595
|
+
wholeSeries: z$1.object({
|
|
89596
|
+
eventSeriesId: z$1.string(),
|
|
89597
|
+
pricing: coursePricingSchema,
|
|
89461
89598
|
currency: z$1.string(),
|
|
89462
89599
|
enrollmentOpen: z$1.boolean()
|
|
89463
89600
|
}).nullable().optional()
|
|
@@ -89745,12 +89882,8 @@ function normalizeIdList(parts) {
|
|
|
89745
89882
|
}
|
|
89746
89883
|
//#endregion
|
|
89747
89884
|
//#region ../blocks/src/system/blocks/events/shared/filtering.ts
|
|
89748
|
-
const eventBlockKindValues = [
|
|
89749
|
-
"all",
|
|
89750
|
-
"courses",
|
|
89751
|
-
"events"
|
|
89752
|
-
];
|
|
89753
89885
|
const eventSurfacePresetValues = [
|
|
89886
|
+
"course",
|
|
89754
89887
|
"class",
|
|
89755
89888
|
"workshop",
|
|
89756
89889
|
"retreat",
|
|
@@ -89769,9 +89902,6 @@ const eventScheduleScopeValues = [
|
|
|
89769
89902
|
];
|
|
89770
89903
|
const unsafeAsEventCategoryId = (value) => value;
|
|
89771
89904
|
const unsafeAsVenueId = (value) => value;
|
|
89772
|
-
function normalizeEventBlockKind(value) {
|
|
89773
|
-
return value === "courses" || value === "events" ? value : "all";
|
|
89774
|
-
}
|
|
89775
89905
|
function normalizeEventSurfaceScope(value) {
|
|
89776
89906
|
return value === "regularClassSchedule" || value === "specialDatedEvents" || value === "custom" ? value : "all";
|
|
89777
89907
|
}
|
|
@@ -90063,86 +90193,6 @@ function eventSectionHeaderLayoutNodes(options = {}) {
|
|
|
90063
90193
|
return [headingNode, descriptionNode];
|
|
90064
90194
|
}
|
|
90065
90195
|
//#endregion
|
|
90066
|
-
//#region ../blocks/src/system/constants/events.ts
|
|
90067
|
-
/**
|
|
90068
|
-
* Content type slugs that represent event content.
|
|
90069
|
-
* These are the standard slugs used when creating event content types in the CMS.
|
|
90070
|
-
*
|
|
90071
|
-
* Used by:
|
|
90072
|
-
* - Occurrence resolution to detect event pages
|
|
90073
|
-
* - Event Calendar block to identify event content
|
|
90074
|
-
* - Content type definitions
|
|
90075
|
-
*/
|
|
90076
|
-
const EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
|
|
90077
|
-
const eventCalendarDisplayModeValues = [
|
|
90078
|
-
"combined",
|
|
90079
|
-
"calendar",
|
|
90080
|
-
"list",
|
|
90081
|
-
"timetable",
|
|
90082
|
-
"week-board"
|
|
90083
|
-
];
|
|
90084
|
-
const eventCalendarDefaultViewValues = ["month", "week"];
|
|
90085
|
-
const eventCalendarListLayoutValues = [
|
|
90086
|
-
"stack",
|
|
90087
|
-
"grid",
|
|
90088
|
-
"compact"
|
|
90089
|
-
];
|
|
90090
|
-
const eventCalendarListLayoutOptions = [
|
|
90091
|
-
{
|
|
90092
|
-
id: "stack",
|
|
90093
|
-
label: "Stack"
|
|
90094
|
-
},
|
|
90095
|
-
{
|
|
90096
|
-
id: "grid",
|
|
90097
|
-
label: "Grid"
|
|
90098
|
-
},
|
|
90099
|
-
{
|
|
90100
|
-
id: "compact",
|
|
90101
|
-
label: "Compact"
|
|
90102
|
-
}
|
|
90103
|
-
];
|
|
90104
|
-
const eventCalendarListLayoutCompatibleDisplayModeValues = ["combined", "list"];
|
|
90105
|
-
function isEventCalendarDisplayMode(value) {
|
|
90106
|
-
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
90107
|
-
}
|
|
90108
|
-
function isEventCalendarDefaultView(value) {
|
|
90109
|
-
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
90110
|
-
}
|
|
90111
|
-
function isEventCalendarListLayout(value) {
|
|
90112
|
-
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
90113
|
-
}
|
|
90114
|
-
/**
|
|
90115
|
-
* Check if a content type slug represents an event type
|
|
90116
|
-
*/
|
|
90117
|
-
function isEventContentType(slug) {
|
|
90118
|
-
if (!slug) return false;
|
|
90119
|
-
return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
|
|
90120
|
-
}
|
|
90121
|
-
//#endregion
|
|
90122
|
-
//#region ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
90123
|
-
const previewStageSchema = z$1.enum(["preview", "published"]);
|
|
90124
|
-
const registrationButtonVariantSchema = blockButtonRoleSchema;
|
|
90125
|
-
const eventButtonVariantSchema = persistedBlockButtonRoleSchema;
|
|
90126
|
-
const eventLayoutSchema = z$1.enum(eventCalendarListLayoutValues);
|
|
90127
|
-
const eventCalendarDisplayModeSchema = z$1.enum(eventCalendarDisplayModeValues);
|
|
90128
|
-
const eventCalendarDefaultViewSchema = z$1.enum(eventCalendarDefaultViewValues);
|
|
90129
|
-
const columnOptionSchema = z$1.enum([
|
|
90130
|
-
"2",
|
|
90131
|
-
"3",
|
|
90132
|
-
"4"
|
|
90133
|
-
]);
|
|
90134
|
-
const weekStartSchema = z$1.enum(["sunday", "monday"]);
|
|
90135
|
-
const filterAutoShowSchema = z$1.enum([
|
|
90136
|
-
"auto",
|
|
90137
|
-
"always",
|
|
90138
|
-
"never"
|
|
90139
|
-
]);
|
|
90140
|
-
const calendarTabViewsSchema = z$1.enum([
|
|
90141
|
-
"both",
|
|
90142
|
-
"month",
|
|
90143
|
-
"week"
|
|
90144
|
-
]);
|
|
90145
|
-
//#endregion
|
|
90146
90196
|
//#region ../blocks/src/system/runtime/hooks/utils/normalize.ts
|
|
90147
90197
|
function normalizeOptionalId(value) {
|
|
90148
90198
|
const trimmed = typeof value === "string" ? value.trim() : void 0;
|
|
@@ -90217,15 +90267,8 @@ function buildEventRuntimeFilters(input) {
|
|
|
90217
90267
|
if (input.scheduleScope && input.scheduleScope !== "any") params.scheduleScope = input.scheduleScope;
|
|
90218
90268
|
const venueId = normalizeFilterId(input.filterVenueId);
|
|
90219
90269
|
const staffMemberId = normalizeFilterId(input.filterStaffMemberId);
|
|
90220
|
-
if (input.eventKind === "courses") {
|
|
90221
|
-
params.kind = "courses";
|
|
90222
|
-
if (venueId) params.venueId = venueId;
|
|
90223
|
-
if (staffMemberId) params.staffMemberId = staffMemberId;
|
|
90224
|
-
return params;
|
|
90225
|
-
}
|
|
90226
90270
|
const categoryIds = normalizeCsvString(input.filterCategoryIds);
|
|
90227
90271
|
if (categoryIds) params.categoryIds = categoryIds;
|
|
90228
|
-
if (input.eventKind === "events") params.kind = "events";
|
|
90229
90272
|
if (venueId) params.venueId = venueId;
|
|
90230
90273
|
if (staffMemberId) params.staffMemberId = staffMemberId;
|
|
90231
90274
|
return params;
|
|
@@ -90235,13 +90278,157 @@ function getEventRuntimeFiltersKey(filters) {
|
|
|
90235
90278
|
categoryIds: normalizeCsvString(filters?.categoryIds),
|
|
90236
90279
|
staffMemberId: normalizeOptionalId(filters?.staffMemberId),
|
|
90237
90280
|
venueId: normalizeOptionalId(filters?.venueId),
|
|
90238
|
-
kind: filters?.kind ?? null,
|
|
90239
90281
|
eventSurface: filters?.eventSurface ?? null,
|
|
90240
90282
|
eventPresets: normalizeCsvString(filters?.eventPresets),
|
|
90241
90283
|
scheduleScope: filters?.scheduleScope ?? null
|
|
90242
90284
|
});
|
|
90243
90285
|
}
|
|
90244
90286
|
//#endregion
|
|
90287
|
+
//#region ../blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.ts
|
|
90288
|
+
const eventSurfaceScopeSchema$1 = z$1.enum(eventSurfaceScopeValues);
|
|
90289
|
+
const eventScheduleScopeSchema$1 = z$1.enum(eventScheduleScopeValues);
|
|
90290
|
+
const eventCollectionFilterSourceSchemaShape = {
|
|
90291
|
+
showFilters: z$1.boolean().nullable().optional(),
|
|
90292
|
+
showCategoryFilter: filterAutoShowSchema.optional(),
|
|
90293
|
+
showVenueFilter: z$1.boolean().nullable().optional(),
|
|
90294
|
+
showStaffFilter: z$1.boolean().nullable().optional(),
|
|
90295
|
+
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
90296
|
+
filterEventPresets: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
90297
|
+
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
90298
|
+
filterCategoryIds: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
90299
|
+
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
90300
|
+
filterVenueId: z$1.string().nullable().optional()
|
|
90301
|
+
};
|
|
90302
|
+
const eventCollectionSourceSchemaShape = {
|
|
90303
|
+
events: z$1.array(publicEventSchema).nullable().optional(),
|
|
90304
|
+
siteId: z$1.string(),
|
|
90305
|
+
apiBaseUrl: z$1.string().optional(),
|
|
90306
|
+
stage: previewStageSchema.optional(),
|
|
90307
|
+
listLayout: eventLayoutSchema.optional(),
|
|
90308
|
+
listColumns: columnOptionSchema.optional(),
|
|
90309
|
+
eventsPerPage: z$1.string().optional(),
|
|
90310
|
+
paginationMode: z$1.enum(["loadMore", "seeAllLink"]).optional(),
|
|
90311
|
+
seeAllUrl: z$1.string().optional(),
|
|
90312
|
+
loadMoreText: z$1.string().optional(),
|
|
90313
|
+
startOfWeek: weekStartSchema.optional(),
|
|
90314
|
+
calendarTabViews: calendarTabViewsSchema.optional(),
|
|
90315
|
+
defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
|
|
90316
|
+
...eventCollectionFilterSourceSchemaShape,
|
|
90317
|
+
showVenue: z$1.boolean().nullable().optional(),
|
|
90318
|
+
showMap: z$1.boolean().nullable().optional(),
|
|
90319
|
+
showCapacity: z$1.boolean().nullable().optional(),
|
|
90320
|
+
buttonVariant: eventButtonVariantSchema.optional(),
|
|
90321
|
+
buttonText: z$1.string().optional(),
|
|
90322
|
+
emptyMessage: z$1.string().optional(),
|
|
90323
|
+
className: z$1.string().optional()
|
|
90324
|
+
};
|
|
90325
|
+
const eventCollectionDisplaySchemaShape = {
|
|
90326
|
+
events: z$1.array(publicEventSchema),
|
|
90327
|
+
listLayout: eventLayoutSchema,
|
|
90328
|
+
listColumns: columnOptionSchema,
|
|
90329
|
+
eventsPerPage: eventPageSizeSchema,
|
|
90330
|
+
paginationAction: eventListPaginationActionSchema,
|
|
90331
|
+
startOfWeek: weekStartSchema,
|
|
90332
|
+
calendarTabViews: calendarTabViewsSchema,
|
|
90333
|
+
defaultCalendarView: eventCalendarDefaultViewSchema,
|
|
90334
|
+
showFilters: z$1.boolean(),
|
|
90335
|
+
showCategoryFilter: filterAutoShowSchema,
|
|
90336
|
+
showVenueFilter: z$1.boolean(),
|
|
90337
|
+
showStaffFilter: z$1.boolean(),
|
|
90338
|
+
eventSurface: eventSurfaceScopeSchema$1,
|
|
90339
|
+
filterEventPresets: z$1.string().nullable(),
|
|
90340
|
+
scheduleScope: eventScheduleScopeSchema$1,
|
|
90341
|
+
filterCategoryIds: z$1.string().nullable(),
|
|
90342
|
+
filterStaffMemberId: z$1.string().nullable(),
|
|
90343
|
+
filterVenueId: z$1.string().nullable(),
|
|
90344
|
+
showVenue: z$1.boolean(),
|
|
90345
|
+
showMap: z$1.boolean(),
|
|
90346
|
+
showCapacity: z$1.boolean(),
|
|
90347
|
+
buttonVariant: eventButtonVariantSchema,
|
|
90348
|
+
buttonText: z$1.string(),
|
|
90349
|
+
emptyMessage: z$1.string()
|
|
90350
|
+
};
|
|
90351
|
+
const eventCollectionHydrationSchema = z$1.object({
|
|
90352
|
+
siteId: z$1.string(),
|
|
90353
|
+
stage: previewStageSchema.optional(),
|
|
90354
|
+
prefetchedEvents: z$1.boolean(),
|
|
90355
|
+
eventSurface: eventSurfaceScopeSchema$1,
|
|
90356
|
+
filterEventPresets: z$1.string().nullable(),
|
|
90357
|
+
scheduleScope: eventScheduleScopeSchema$1
|
|
90358
|
+
});
|
|
90359
|
+
function buildEventCollectionDisplay(source) {
|
|
90360
|
+
return {
|
|
90361
|
+
...buildEventCollectionFilterDisplay(source),
|
|
90362
|
+
...buildEventCollectionPresentationDisplay(source),
|
|
90363
|
+
events: Array.isArray(source.events) ? [...source.events] : [],
|
|
90364
|
+
listLayout: source.listLayout ?? "stack",
|
|
90365
|
+
listColumns: source.listColumns ?? "3",
|
|
90366
|
+
eventsPerPage: resolveEventCalendarListPageSize({ eventsPerPage: source.eventsPerPage }),
|
|
90367
|
+
paginationAction: resolveEventListPaginationAction({
|
|
90368
|
+
paginationMode: source.paginationMode,
|
|
90369
|
+
seeAllUrl: source.seeAllUrl,
|
|
90370
|
+
loadMoreText: source.loadMoreText
|
|
90371
|
+
}),
|
|
90372
|
+
startOfWeek: source.startOfWeek ?? "monday",
|
|
90373
|
+
calendarTabViews: source.calendarTabViews ?? "both",
|
|
90374
|
+
defaultCalendarView: source.defaultCalendarView ?? "month"
|
|
90375
|
+
};
|
|
90376
|
+
}
|
|
90377
|
+
function buildEventCollectionFilterDisplay(source) {
|
|
90378
|
+
return {
|
|
90379
|
+
showFilters: source.showFilters ?? true,
|
|
90380
|
+
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
90381
|
+
showVenueFilter: source.showVenueFilter ?? false,
|
|
90382
|
+
showStaffFilter: source.showStaffFilter ?? true,
|
|
90383
|
+
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
90384
|
+
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
90385
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
90386
|
+
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
90387
|
+
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
90388
|
+
filterVenueId: normalizeEventVenueId(source.filterVenueId)
|
|
90389
|
+
};
|
|
90390
|
+
}
|
|
90391
|
+
function buildEventCollectionPresentationDisplay(source) {
|
|
90392
|
+
return {
|
|
90393
|
+
showVenue: source.showVenue ?? true,
|
|
90394
|
+
showMap: source.showMap ?? true,
|
|
90395
|
+
showCapacity: source.showCapacity ?? true,
|
|
90396
|
+
buttonVariant: source.buttonVariant ?? "primary",
|
|
90397
|
+
buttonText: source.buttonText ?? "Book",
|
|
90398
|
+
emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
|
|
90399
|
+
};
|
|
90400
|
+
}
|
|
90401
|
+
function buildEventCollectionHydration(source) {
|
|
90402
|
+
return {
|
|
90403
|
+
siteId: source.siteId,
|
|
90404
|
+
stage: source.stage,
|
|
90405
|
+
prefetchedEvents: source.events != null,
|
|
90406
|
+
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
90407
|
+
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
90408
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope)
|
|
90409
|
+
};
|
|
90410
|
+
}
|
|
90411
|
+
function buildEventCollectionListingDisplay(display, prefetchedEvents, className) {
|
|
90412
|
+
const initialEvents = display.events.slice(0, display.eventsPerPage);
|
|
90413
|
+
return {
|
|
90414
|
+
kind: "event-listing",
|
|
90415
|
+
state: initialEvents.length === 0 ? prefetchedEvents ? "empty" : "loading" : "ready",
|
|
90416
|
+
listLayout: display.listLayout,
|
|
90417
|
+
className,
|
|
90418
|
+
emptyMessage: display.emptyMessage,
|
|
90419
|
+
loadingMessage: "Loading events…",
|
|
90420
|
+
containerClass: getContainerClass(display.listLayout, display.listColumns),
|
|
90421
|
+
cardVariant: "default",
|
|
90422
|
+
buttonVariant: display.buttonVariant,
|
|
90423
|
+
buttonText: display.buttonText,
|
|
90424
|
+
showVenue: display.showVenue,
|
|
90425
|
+
showMap: display.showMap,
|
|
90426
|
+
showCapacity: display.showCapacity,
|
|
90427
|
+
orientation: getCardOrientation(display.listLayout),
|
|
90428
|
+
events: initialEvents
|
|
90429
|
+
};
|
|
90430
|
+
}
|
|
90431
|
+
//#endregion
|
|
90245
90432
|
//#region ../blocks/src/system/spacing.ts
|
|
90246
90433
|
/**
|
|
90247
90434
|
* Type-safe spacing system for sections and containers.
|
|
@@ -90560,7 +90747,7 @@ function buildOfferingsPreviewRenderStates(input) {
|
|
|
90560
90747
|
return states;
|
|
90561
90748
|
}
|
|
90562
90749
|
function sourceFromPresetSummary(preset) {
|
|
90563
|
-
if (preset.engine === "
|
|
90750
|
+
if (preset.engine === "event_series" && preset.canonicalBehaviour === "course") return { kind: "course" };
|
|
90564
90751
|
if (preset.engine !== "event_series") return null;
|
|
90565
90752
|
if (isOfferingsPreviewEventPreset(preset.canonicalBehaviour)) return {
|
|
90566
90753
|
kind: "eventPreset",
|
|
@@ -90621,13 +90808,12 @@ function resolveAutoCtaPath(source, routes) {
|
|
|
90621
90808
|
return routeByNormalizedPath.get("/offerings") ?? null;
|
|
90622
90809
|
}
|
|
90623
90810
|
function resolveOfferingsPreviewCoursePath(course, routes) {
|
|
90624
|
-
|
|
90625
|
-
|
|
90626
|
-
|
|
90627
|
-
|
|
90628
|
-
|
|
90629
|
-
|
|
90630
|
-
return `${basePath}/${slug}`;
|
|
90811
|
+
const routeIds = [course.eventSeriesId, course.eventOfferingId];
|
|
90812
|
+
for (const entityId of routeIds) {
|
|
90813
|
+
const path = normalizeRoutePath((routes ?? []).find((candidate) => candidate.entityId === entityId)?.path);
|
|
90814
|
+
if (path) return path;
|
|
90815
|
+
}
|
|
90816
|
+
return null;
|
|
90631
90817
|
}
|
|
90632
90818
|
function preferredPathsForSource(source) {
|
|
90633
90819
|
switch (source.kind) {
|
|
@@ -90648,11 +90834,6 @@ function normalizeRoutePath(value) {
|
|
|
90648
90834
|
const path = text.startsWith("/") ? text : `/${text}`;
|
|
90649
90835
|
return path.length > 1 ? path.replace(/\/+$/, "") : path;
|
|
90650
90836
|
}
|
|
90651
|
-
function normalizePathSegment(value) {
|
|
90652
|
-
const text = normalizeTextOverride(value);
|
|
90653
|
-
if (!text) return null;
|
|
90654
|
-
return text.replace(/^\/+|\/+$/g, "");
|
|
90655
|
-
}
|
|
90656
90837
|
function isOfferingsPreviewEventPreset(value) {
|
|
90657
90838
|
return typeof value === "string" && OFFERINGS_PREVIEW_EVENT_PRESETS.includes(value);
|
|
90658
90839
|
}
|
|
@@ -95860,1029 +96041,6 @@ function uniqueStrings(values) {
|
|
|
95860
96041
|
return Array.from(new Set(values));
|
|
95861
96042
|
}
|
|
95862
96043
|
//#endregion
|
|
95863
|
-
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
95864
|
-
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
95865
|
-
return {
|
|
95866
|
-
family,
|
|
95867
|
-
size,
|
|
95868
|
-
heightCss: heightExpression.includes(" ") ? `calc(${heightExpression})` : heightExpression,
|
|
95869
|
-
reserveCss: `calc((${heightExpression}) / 2)`
|
|
95870
|
-
};
|
|
95871
|
-
}
|
|
95872
|
-
const sectionBoundaryRuntimeMetricsByTransition = {
|
|
95873
|
-
none: null,
|
|
95874
|
-
"soft-fade-short": boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"),
|
|
95875
|
-
"soft-fade-long": boundaryRuntimeMetrics("gradient", "spacious", "10rem"),
|
|
95876
|
-
"soft-fade-expansive": boundaryRuntimeMetrics("gradient", "expansive", "14rem"),
|
|
95877
|
-
"wave-edge": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
95878
|
-
"wave-edge-balanced": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
95879
|
-
"wave-edge-gentle": boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"),
|
|
95880
|
-
"wave-edge-bold": boundaryRuntimeMetrics("wave", "large", "7rem + 2px"),
|
|
95881
|
-
"wave-edge-drift": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
95882
|
-
"angle-edge": boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"),
|
|
95883
|
-
"angle-edge-subtle": boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"),
|
|
95884
|
-
"angle-edge-steep": boundaryRuntimeMetrics("angle", "large", "7rem + 2px")
|
|
95885
|
-
};
|
|
95886
|
-
function boundaryRuntimeMetricsForTransition(transition) {
|
|
95887
|
-
return sectionBoundaryRuntimeMetricsByTransition[transition];
|
|
95888
|
-
}
|
|
95889
|
-
const noneBoundaryOption = {
|
|
95890
|
-
id: asBoundaryOptionId("break:none"),
|
|
95891
|
-
label: "None",
|
|
95892
|
-
transitionAfter: "none",
|
|
95893
|
-
treatment: { kind: "none" }
|
|
95894
|
-
};
|
|
95895
|
-
const softBoundaryOption = {
|
|
95896
|
-
id: asBoundaryOptionId("break:soft"),
|
|
95897
|
-
label: "Soft",
|
|
95898
|
-
transitionAfter: "soft-fade-short",
|
|
95899
|
-
treatment: {
|
|
95900
|
-
kind: "soft-fade",
|
|
95901
|
-
height: "medium",
|
|
95902
|
-
curve: "soft"
|
|
95903
|
-
}
|
|
95904
|
-
};
|
|
95905
|
-
const spaciousBoundaryOption = {
|
|
95906
|
-
id: asBoundaryOptionId("break:spacious"),
|
|
95907
|
-
label: "Spacious",
|
|
95908
|
-
transitionAfter: "soft-fade-long",
|
|
95909
|
-
treatment: {
|
|
95910
|
-
kind: "soft-fade",
|
|
95911
|
-
height: "large",
|
|
95912
|
-
curve: "spacious"
|
|
95913
|
-
}
|
|
95914
|
-
};
|
|
95915
|
-
const expansiveBoundaryOption = {
|
|
95916
|
-
id: asBoundaryOptionId("break:expansive"),
|
|
95917
|
-
label: "Expansive",
|
|
95918
|
-
transitionAfter: "soft-fade-expansive",
|
|
95919
|
-
treatment: {
|
|
95920
|
-
kind: "soft-fade",
|
|
95921
|
-
height: "expansive",
|
|
95922
|
-
curve: "expansive"
|
|
95923
|
-
}
|
|
95924
|
-
};
|
|
95925
|
-
const waveBoundaryOption = {
|
|
95926
|
-
id: asBoundaryOptionId("break:wave"),
|
|
95927
|
-
label: "Classic wave",
|
|
95928
|
-
transitionAfter: "wave-edge",
|
|
95929
|
-
treatment: {
|
|
95930
|
-
kind: "wave-edge",
|
|
95931
|
-
height: "medium",
|
|
95932
|
-
amplitude: "balanced",
|
|
95933
|
-
rhythm: "double",
|
|
95934
|
-
symmetry: "asymmetrical"
|
|
95935
|
-
}
|
|
95936
|
-
};
|
|
95937
|
-
const balancedWaveBoundaryOption = {
|
|
95938
|
-
id: asBoundaryOptionId("break:wave-balanced"),
|
|
95939
|
-
label: "Balanced wave",
|
|
95940
|
-
transitionAfter: "wave-edge-balanced",
|
|
95941
|
-
treatment: {
|
|
95942
|
-
kind: "wave-edge",
|
|
95943
|
-
height: "medium",
|
|
95944
|
-
amplitude: "balanced",
|
|
95945
|
-
rhythm: "double",
|
|
95946
|
-
symmetry: "symmetrical"
|
|
95947
|
-
}
|
|
95948
|
-
};
|
|
95949
|
-
const gentleWaveBoundaryOption = {
|
|
95950
|
-
id: asBoundaryOptionId("break:wave-gentle"),
|
|
95951
|
-
label: "Gentle wave",
|
|
95952
|
-
transitionAfter: "wave-edge-gentle",
|
|
95953
|
-
treatment: {
|
|
95954
|
-
kind: "wave-edge",
|
|
95955
|
-
height: "compact",
|
|
95956
|
-
amplitude: "subtle",
|
|
95957
|
-
rhythm: "single",
|
|
95958
|
-
symmetry: "symmetrical"
|
|
95959
|
-
}
|
|
95960
|
-
};
|
|
95961
|
-
const boldWaveBoundaryOption = {
|
|
95962
|
-
id: asBoundaryOptionId("break:wave-bold"),
|
|
95963
|
-
label: "Bold wave",
|
|
95964
|
-
transitionAfter: "wave-edge-bold",
|
|
95965
|
-
treatment: {
|
|
95966
|
-
kind: "wave-edge",
|
|
95967
|
-
height: "large",
|
|
95968
|
-
amplitude: "bold",
|
|
95969
|
-
rhythm: "double",
|
|
95970
|
-
symmetry: "symmetrical"
|
|
95971
|
-
}
|
|
95972
|
-
};
|
|
95973
|
-
const driftWaveBoundaryOption = {
|
|
95974
|
-
id: asBoundaryOptionId("break:wave-drift"),
|
|
95975
|
-
label: "Drift wave",
|
|
95976
|
-
transitionAfter: "wave-edge-drift",
|
|
95977
|
-
treatment: {
|
|
95978
|
-
kind: "wave-edge",
|
|
95979
|
-
height: "medium",
|
|
95980
|
-
amplitude: "balanced",
|
|
95981
|
-
rhythm: "double",
|
|
95982
|
-
symmetry: "drift"
|
|
95983
|
-
}
|
|
95984
|
-
};
|
|
95985
|
-
const subtleAngleBoundaryOption = {
|
|
95986
|
-
id: asBoundaryOptionId("break:angle-subtle"),
|
|
95987
|
-
label: "Subtle angle",
|
|
95988
|
-
transitionAfter: "angle-edge-subtle",
|
|
95989
|
-
treatment: {
|
|
95990
|
-
kind: "angle-edge",
|
|
95991
|
-
height: "compact",
|
|
95992
|
-
slope: "subtle",
|
|
95993
|
-
direction: "forward"
|
|
95994
|
-
}
|
|
95995
|
-
};
|
|
95996
|
-
const balancedAngleBoundaryOption = {
|
|
95997
|
-
id: asBoundaryOptionId("break:angle-balanced"),
|
|
95998
|
-
label: "Balanced angle",
|
|
95999
|
-
transitionAfter: "angle-edge",
|
|
96000
|
-
treatment: {
|
|
96001
|
-
kind: "angle-edge",
|
|
96002
|
-
height: "medium",
|
|
96003
|
-
slope: "balanced",
|
|
96004
|
-
direction: "forward"
|
|
96005
|
-
}
|
|
96006
|
-
};
|
|
96007
|
-
const steepAngleBoundaryOption = {
|
|
96008
|
-
id: asBoundaryOptionId("break:angle-steep"),
|
|
96009
|
-
label: "Steep angle",
|
|
96010
|
-
transitionAfter: "angle-edge-steep",
|
|
96011
|
-
treatment: {
|
|
96012
|
-
kind: "angle-edge",
|
|
96013
|
-
height: "large",
|
|
96014
|
-
slope: "steep",
|
|
96015
|
-
direction: "forward"
|
|
96016
|
-
}
|
|
96017
|
-
};
|
|
96018
|
-
const sectionTransitionFamilies = [
|
|
96019
|
-
{
|
|
96020
|
-
id: "none",
|
|
96021
|
-
label: "None",
|
|
96022
|
-
variants: [{
|
|
96023
|
-
familyId: "none",
|
|
96024
|
-
variantId: "none",
|
|
96025
|
-
label: "None",
|
|
96026
|
-
boundaryOption: noneBoundaryOption
|
|
96027
|
-
}]
|
|
96028
|
-
},
|
|
96029
|
-
{
|
|
96030
|
-
id: "gradient",
|
|
96031
|
-
label: "Gradient",
|
|
96032
|
-
variants: [
|
|
96033
|
-
{
|
|
96034
|
-
familyId: "gradient",
|
|
96035
|
-
variantId: "soft",
|
|
96036
|
-
label: "Soft",
|
|
96037
|
-
boundaryOption: softBoundaryOption
|
|
96038
|
-
},
|
|
96039
|
-
{
|
|
96040
|
-
familyId: "gradient",
|
|
96041
|
-
variantId: "spacious",
|
|
96042
|
-
label: "Spacious",
|
|
96043
|
-
boundaryOption: spaciousBoundaryOption
|
|
96044
|
-
},
|
|
96045
|
-
{
|
|
96046
|
-
familyId: "gradient",
|
|
96047
|
-
variantId: "expansive",
|
|
96048
|
-
label: "Expansive",
|
|
96049
|
-
boundaryOption: expansiveBoundaryOption
|
|
96050
|
-
}
|
|
96051
|
-
]
|
|
96052
|
-
},
|
|
96053
|
-
{
|
|
96054
|
-
id: "wave",
|
|
96055
|
-
label: "Wave",
|
|
96056
|
-
variants: [
|
|
96057
|
-
{
|
|
96058
|
-
familyId: "wave",
|
|
96059
|
-
variantId: "balanced",
|
|
96060
|
-
label: "Balanced",
|
|
96061
|
-
boundaryOption: balancedWaveBoundaryOption
|
|
96062
|
-
},
|
|
96063
|
-
{
|
|
96064
|
-
familyId: "wave",
|
|
96065
|
-
variantId: "classic",
|
|
96066
|
-
label: "Classic",
|
|
96067
|
-
boundaryOption: waveBoundaryOption
|
|
96068
|
-
},
|
|
96069
|
-
{
|
|
96070
|
-
familyId: "wave",
|
|
96071
|
-
variantId: "gentle",
|
|
96072
|
-
label: "Gentle",
|
|
96073
|
-
boundaryOption: gentleWaveBoundaryOption
|
|
96074
|
-
},
|
|
96075
|
-
{
|
|
96076
|
-
familyId: "wave",
|
|
96077
|
-
variantId: "bold",
|
|
96078
|
-
label: "Bold",
|
|
96079
|
-
boundaryOption: boldWaveBoundaryOption
|
|
96080
|
-
},
|
|
96081
|
-
{
|
|
96082
|
-
familyId: "wave",
|
|
96083
|
-
variantId: "drift",
|
|
96084
|
-
label: "Drift",
|
|
96085
|
-
boundaryOption: driftWaveBoundaryOption
|
|
96086
|
-
}
|
|
96087
|
-
]
|
|
96088
|
-
},
|
|
96089
|
-
{
|
|
96090
|
-
id: "angle",
|
|
96091
|
-
label: "Angle",
|
|
96092
|
-
variants: [
|
|
96093
|
-
{
|
|
96094
|
-
familyId: "angle",
|
|
96095
|
-
variantId: "subtle",
|
|
96096
|
-
label: "Subtle",
|
|
96097
|
-
boundaryOption: subtleAngleBoundaryOption
|
|
96098
|
-
},
|
|
96099
|
-
{
|
|
96100
|
-
familyId: "angle",
|
|
96101
|
-
variantId: "balanced",
|
|
96102
|
-
label: "Balanced",
|
|
96103
|
-
boundaryOption: balancedAngleBoundaryOption
|
|
96104
|
-
},
|
|
96105
|
-
{
|
|
96106
|
-
familyId: "angle",
|
|
96107
|
-
variantId: "steep",
|
|
96108
|
-
label: "Steep",
|
|
96109
|
-
boundaryOption: steepAngleBoundaryOption
|
|
96110
|
-
}
|
|
96111
|
-
]
|
|
96112
|
-
}
|
|
96113
|
-
];
|
|
96114
|
-
function sectionTransitionVariantForBoundaryOptionId(boundaryOptionId) {
|
|
96115
|
-
if (!boundaryOptionId) return null;
|
|
96116
|
-
for (const family of sectionTransitionFamilies) {
|
|
96117
|
-
const variant = family.variants.find((candidate) => candidate.boundaryOption.id === boundaryOptionId);
|
|
96118
|
-
if (variant) return variant;
|
|
96119
|
-
}
|
|
96120
|
-
return null;
|
|
96121
|
-
}
|
|
96122
|
-
function sectionTransitionFamilyForBoundaryOptionId(boundaryOptionId) {
|
|
96123
|
-
const variant = sectionTransitionVariantForBoundaryOptionId(boundaryOptionId);
|
|
96124
|
-
if (!variant) return null;
|
|
96125
|
-
return sectionTransitionFamilies.find((family) => family.id === variant.familyId) ?? null;
|
|
96126
|
-
}
|
|
96127
|
-
function defaultSectionTransitionVariantForFamily(familyId) {
|
|
96128
|
-
const family = sectionTransitionFamilies.find((candidate) => candidate.id === familyId);
|
|
96129
|
-
if (!family) throw new Error(`Unknown section transition family: ${familyId}`);
|
|
96130
|
-
return family.variants[0];
|
|
96131
|
-
}
|
|
96132
|
-
asBoundaryOptionId("break:unknown");
|
|
96133
|
-
const pageDesignUserPinnedAppearanceChoiceSchema = z$1.object({
|
|
96134
|
-
kind: z$1.literal("user-pinned"),
|
|
96135
|
-
value: z$1.string().min(1).transform(asAppearancePresetId)
|
|
96136
|
-
}).strict();
|
|
96137
|
-
const pageDesignUserPinnedBoundaryChoiceSchema = z$1.object({
|
|
96138
|
-
kind: z$1.literal("user-pinned"),
|
|
96139
|
-
value: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
96140
|
-
}).strict();
|
|
96141
|
-
const pageDesignBoundaryTreatmentSchema = z$1.discriminatedUnion("kind", [
|
|
96142
|
-
z$1.object({ kind: z$1.literal("none") }).strict(),
|
|
96143
|
-
z$1.object({
|
|
96144
|
-
kind: z$1.literal("soft-fade"),
|
|
96145
|
-
height: z$1.enum([
|
|
96146
|
-
"compact",
|
|
96147
|
-
"medium",
|
|
96148
|
-
"large",
|
|
96149
|
-
"expansive"
|
|
96150
|
-
]),
|
|
96151
|
-
curve: z$1.enum([
|
|
96152
|
-
"soft",
|
|
96153
|
-
"spacious",
|
|
96154
|
-
"expansive"
|
|
96155
|
-
])
|
|
96156
|
-
}).strict(),
|
|
96157
|
-
z$1.object({
|
|
96158
|
-
kind: z$1.literal("wave-edge"),
|
|
96159
|
-
height: z$1.enum([
|
|
96160
|
-
"compact",
|
|
96161
|
-
"medium",
|
|
96162
|
-
"large"
|
|
96163
|
-
]),
|
|
96164
|
-
amplitude: z$1.enum([
|
|
96165
|
-
"subtle",
|
|
96166
|
-
"balanced",
|
|
96167
|
-
"bold"
|
|
96168
|
-
]),
|
|
96169
|
-
rhythm: z$1.enum(["single", "double"]),
|
|
96170
|
-
symmetry: z$1.enum([
|
|
96171
|
-
"symmetrical",
|
|
96172
|
-
"asymmetrical",
|
|
96173
|
-
"drift"
|
|
96174
|
-
])
|
|
96175
|
-
}).strict(),
|
|
96176
|
-
z$1.object({
|
|
96177
|
-
kind: z$1.literal("angle-edge"),
|
|
96178
|
-
height: z$1.enum([
|
|
96179
|
-
"compact",
|
|
96180
|
-
"medium",
|
|
96181
|
-
"large"
|
|
96182
|
-
]),
|
|
96183
|
-
slope: z$1.enum([
|
|
96184
|
-
"subtle",
|
|
96185
|
-
"balanced",
|
|
96186
|
-
"steep"
|
|
96187
|
-
]),
|
|
96188
|
-
direction: z$1.enum(["forward", "reverse"])
|
|
96189
|
-
}).strict(),
|
|
96190
|
-
z$1.object({
|
|
96191
|
-
kind: z$1.literal("legacy-unsupported"),
|
|
96192
|
-
boundaryOptionId: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
96193
|
-
}).strict()
|
|
96194
|
-
]);
|
|
96195
|
-
const pageDesignUserPinnedBoundaryTreatmentChoiceSchema = z$1.object({
|
|
96196
|
-
kind: z$1.literal("user-pinned"),
|
|
96197
|
-
value: pageDesignBoundaryTreatmentSchema
|
|
96198
|
-
}).strict();
|
|
96199
|
-
const pageDesignBlockLookPinSchema = z$1.object({
|
|
96200
|
-
blockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
96201
|
-
blockKind: z$1.string().min(1),
|
|
96202
|
-
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
96203
|
-
}).strict();
|
|
96204
|
-
const pageDesignBoundaryPinSchema = z$1.object({
|
|
96205
|
-
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
96206
|
-
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
96207
|
-
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
96208
|
-
choice: pageDesignUserPinnedBoundaryTreatmentChoiceSchema
|
|
96209
|
-
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
96210
|
-
const legacyPageDesignBoundaryPinSchema = z$1.object({
|
|
96211
|
-
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
96212
|
-
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
96213
|
-
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
96214
|
-
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
96215
|
-
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
96216
|
-
z$1.object({
|
|
96217
|
-
schemaVersion: z$1.literal(1),
|
|
96218
|
-
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
96219
|
-
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
96220
|
-
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
96221
|
-
boundaryPins: z$1.array(legacyPageDesignBoundaryPinSchema)
|
|
96222
|
-
}).strict().superRefine(validateUniquePageDesignPins);
|
|
96223
|
-
z$1.object({
|
|
96224
|
-
schemaVersion: z$1.literal(2),
|
|
96225
|
-
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
96226
|
-
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
96227
|
-
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
96228
|
-
boundaryPins: z$1.array(pageDesignBoundaryPinSchema)
|
|
96229
|
-
}).strict().superRefine(validateUniquePageDesignPins);
|
|
96230
|
-
function addDuplicateStringIssues(ctx, input) {
|
|
96231
|
-
const seen = /* @__PURE__ */ new Set();
|
|
96232
|
-
const duplicates = /* @__PURE__ */ new Set();
|
|
96233
|
-
for (const value of input.values) {
|
|
96234
|
-
if (seen.has(value)) duplicates.add(value);
|
|
96235
|
-
seen.add(value);
|
|
96236
|
-
}
|
|
96237
|
-
for (const duplicate of duplicates) ctx.addIssue({
|
|
96238
|
-
code: z$1.ZodIssueCode.custom,
|
|
96239
|
-
path: [...input.path],
|
|
96240
|
-
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
96241
|
-
});
|
|
96242
|
-
}
|
|
96243
|
-
function validateBoundaryPinIdMatchesBlocks(pin, ctx) {
|
|
96244
|
-
const expectedBoundaryId = makeBoundaryId(pin.previousBlockId, pin.nextBlockId);
|
|
96245
|
-
if (pin.boundaryId !== expectedBoundaryId) ctx.addIssue({
|
|
96246
|
-
code: z$1.ZodIssueCode.custom,
|
|
96247
|
-
path: ["boundaryId"],
|
|
96248
|
-
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
96249
|
-
});
|
|
96250
|
-
}
|
|
96251
|
-
function validateUniquePageDesignPins(intent, ctx) {
|
|
96252
|
-
addDuplicateStringIssues(ctx, {
|
|
96253
|
-
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
96254
|
-
path: ["blockLookPins"],
|
|
96255
|
-
label: "block Look pin"
|
|
96256
|
-
});
|
|
96257
|
-
addDuplicateStringIssues(ctx, {
|
|
96258
|
-
values: intent.boundaryPins.map((pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)),
|
|
96259
|
-
path: ["boundaryPins"],
|
|
96260
|
-
label: "boundary pin"
|
|
96261
|
-
});
|
|
96262
|
-
}
|
|
96263
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
96264
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
96265
|
-
}
|
|
96266
|
-
//#endregion
|
|
96267
|
-
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
96268
|
-
/**
|
|
96269
|
-
* Reusable accordion "looks" for curated site styles.
|
|
96270
|
-
*
|
|
96271
|
-
* Each curated site style should declare one of these (or a bespoke variant)
|
|
96272
|
-
* via `themeOverrides.accordions` so its FAQ accordions carry the style's
|
|
96273
|
-
* personality instead of falling back to the generic generated default. The
|
|
96274
|
-
* looks vary the things that make an accordion read as designed vs. cheap:
|
|
96275
|
-
* box vs. boxless, question typography (body vs. heading font + scale), icon,
|
|
96276
|
-
* and how an open item is emphasised.
|
|
96277
|
-
*/
|
|
96278
|
-
/**
|
|
96279
|
-
* Boxless editorial list: transparent root, hairline dividers between rows,
|
|
96280
|
-
* generous spacing, heading-font questions, plus/minus marks, and an accented
|
|
96281
|
-
* tinted band on the open row. The reference "expensive" FAQ look.
|
|
96282
|
-
*/
|
|
96283
|
-
const editorialDividedAccordionSystem = {
|
|
96284
|
-
background: null,
|
|
96285
|
-
spacing: "comfortable",
|
|
96286
|
-
corners: "square",
|
|
96287
|
-
border: null,
|
|
96288
|
-
shadow: null,
|
|
96289
|
-
icon: {
|
|
96290
|
-
style: "plus-minus",
|
|
96291
|
-
position: "right",
|
|
96292
|
-
size: "md",
|
|
96293
|
-
colorToken: "primary"
|
|
96294
|
-
},
|
|
96295
|
-
trigger: {
|
|
96296
|
-
textColorToken: "text",
|
|
96297
|
-
fontWeight: "regular",
|
|
96298
|
-
fontFamily: "heading",
|
|
96299
|
-
fontScale: "lg"
|
|
96300
|
-
},
|
|
96301
|
-
hover: { textColorToken: "primary" },
|
|
96302
|
-
openState: {
|
|
96303
|
-
backgroundColorToken: "surfaceAlt",
|
|
96304
|
-
triggerColorToken: "primary",
|
|
96305
|
-
accent: {
|
|
96306
|
-
edge: "left",
|
|
96307
|
-
colorToken: "primary",
|
|
96308
|
-
thickness: "medium"
|
|
96309
|
-
}
|
|
96310
|
-
},
|
|
96311
|
-
content: { textColorToken: "neutral-700" }
|
|
96312
|
-
};
|
|
96313
|
-
/**
|
|
96314
|
-
* Quiet, airy underlined rows: transparent, spacious, large calm heading-font
|
|
96315
|
-
* questions, a small subtle chevron, and open emphasis carried only by the
|
|
96316
|
-
* question recolouring. For minimal / premium / wellness styles.
|
|
96317
|
-
*/
|
|
96318
|
-
const quietUnderlinedAccordionSystem = {
|
|
96319
|
-
background: null,
|
|
96320
|
-
spacing: "spacious",
|
|
96321
|
-
corners: "square",
|
|
96322
|
-
border: null,
|
|
96323
|
-
shadow: null,
|
|
96324
|
-
icon: {
|
|
96325
|
-
style: "chevron",
|
|
96326
|
-
position: "right",
|
|
96327
|
-
size: "sm",
|
|
96328
|
-
colorToken: "muted"
|
|
96329
|
-
},
|
|
96330
|
-
trigger: {
|
|
96331
|
-
textColorToken: "text",
|
|
96332
|
-
fontWeight: "regular",
|
|
96333
|
-
fontFamily: "heading",
|
|
96334
|
-
fontScale: "lg"
|
|
96335
|
-
},
|
|
96336
|
-
hover: { textColorToken: "primary" },
|
|
96337
|
-
openState: { triggerColorToken: "primary" },
|
|
96338
|
-
content: { textColorToken: "neutral-700" }
|
|
96339
|
-
};
|
|
96340
|
-
/**
|
|
96341
|
-
* Soft contained panel: a gentle surface box with soft corners, a hairline
|
|
96342
|
-
* border and a low shadow, heading-font questions at a moderate size, chevron,
|
|
96343
|
-
* and a tinted open state. For clean, trustworthy, appointment-led styles.
|
|
96344
|
-
*/
|
|
96345
|
-
const calmPanelAccordionSystem = {
|
|
96346
|
-
background: {
|
|
96347
|
-
type: "solid",
|
|
96348
|
-
colorToken: "surface"
|
|
96349
|
-
},
|
|
96350
|
-
spacing: "comfortable",
|
|
96351
|
-
corners: "soft",
|
|
96352
|
-
border: {
|
|
96353
|
-
widthClass: "border",
|
|
96354
|
-
colorToken: "border"
|
|
96355
|
-
},
|
|
96356
|
-
shadow: {
|
|
96357
|
-
elevation: "low",
|
|
96358
|
-
softness: "soft",
|
|
96359
|
-
position: "bottom"
|
|
96360
|
-
},
|
|
96361
|
-
icon: {
|
|
96362
|
-
style: "chevron",
|
|
96363
|
-
position: "right",
|
|
96364
|
-
size: "md",
|
|
96365
|
-
colorToken: "primary"
|
|
96366
|
-
},
|
|
96367
|
-
trigger: {
|
|
96368
|
-
textColorToken: "text",
|
|
96369
|
-
fontWeight: "medium",
|
|
96370
|
-
fontFamily: "heading",
|
|
96371
|
-
fontScale: "md"
|
|
96372
|
-
},
|
|
96373
|
-
hover: {
|
|
96374
|
-
backgroundColorToken: "primary/5",
|
|
96375
|
-
textColorToken: "primary"
|
|
96376
|
-
},
|
|
96377
|
-
openState: {
|
|
96378
|
-
backgroundColorToken: "primary/5",
|
|
96379
|
-
triggerColorToken: "primary"
|
|
96380
|
-
},
|
|
96381
|
-
content: { textColorToken: "neutral-700" }
|
|
96382
|
-
};
|
|
96383
|
-
/**
|
|
96384
|
-
* Bold bordered panel: a strong-bordered surface box, bold heading-font
|
|
96385
|
-
* questions, large plus/minus marks, and a high-emphasis tinted + accented
|
|
96386
|
-
* open state. For confident, conversion-led, high-energy styles.
|
|
96387
|
-
*/
|
|
96388
|
-
const boldBorderedAccordionSystem = {
|
|
96389
|
-
background: {
|
|
96390
|
-
type: "solid",
|
|
96391
|
-
colorToken: "surface"
|
|
96392
|
-
},
|
|
96393
|
-
spacing: "comfortable",
|
|
96394
|
-
corners: "soft",
|
|
96395
|
-
border: {
|
|
96396
|
-
widthClass: "border-2",
|
|
96397
|
-
colorToken: "border"
|
|
96398
|
-
},
|
|
96399
|
-
shadow: null,
|
|
96400
|
-
icon: {
|
|
96401
|
-
style: "plus-minus",
|
|
96402
|
-
position: "right",
|
|
96403
|
-
size: "lg",
|
|
96404
|
-
colorToken: "primary"
|
|
96405
|
-
},
|
|
96406
|
-
trigger: {
|
|
96407
|
-
textColorToken: "text",
|
|
96408
|
-
fontWeight: "bold",
|
|
96409
|
-
fontFamily: "heading",
|
|
96410
|
-
fontScale: "md"
|
|
96411
|
-
},
|
|
96412
|
-
hover: {
|
|
96413
|
-
backgroundColorToken: "primary/10",
|
|
96414
|
-
textColorToken: "primary"
|
|
96415
|
-
},
|
|
96416
|
-
openState: {
|
|
96417
|
-
backgroundColorToken: "primary/10",
|
|
96418
|
-
triggerColorToken: "primary",
|
|
96419
|
-
accent: {
|
|
96420
|
-
edge: "left",
|
|
96421
|
-
colorToken: "primary",
|
|
96422
|
-
thickness: "thick"
|
|
96423
|
-
}
|
|
96424
|
-
},
|
|
96425
|
-
content: { textColorToken: "neutral-700" }
|
|
96426
|
-
};
|
|
96427
|
-
/**
|
|
96428
|
-
* Warm inset tiles: a tinted (surfaceAlt) root with rounded corners and no
|
|
96429
|
-
* border; the open row lifts to the lighter surface colour. Friendly,
|
|
96430
|
-
* hands-on, community styles.
|
|
96431
|
-
*/
|
|
96432
|
-
const warmInsetAccordionSystem = {
|
|
96433
|
-
background: {
|
|
96434
|
-
type: "solid",
|
|
96435
|
-
colorToken: "surfaceAlt"
|
|
96436
|
-
},
|
|
96437
|
-
spacing: "comfortable",
|
|
96438
|
-
corners: "rounded",
|
|
96439
|
-
border: null,
|
|
96440
|
-
shadow: null,
|
|
96441
|
-
icon: {
|
|
96442
|
-
style: "circle-plus-minus",
|
|
96443
|
-
position: "right",
|
|
96444
|
-
size: "md",
|
|
96445
|
-
colorToken: "primary"
|
|
96446
|
-
},
|
|
96447
|
-
trigger: {
|
|
96448
|
-
textColorToken: "text",
|
|
96449
|
-
fontWeight: "semibold",
|
|
96450
|
-
fontFamily: "heading",
|
|
96451
|
-
fontScale: "md"
|
|
96452
|
-
},
|
|
96453
|
-
hover: {
|
|
96454
|
-
backgroundColorToken: "primary/5",
|
|
96455
|
-
textColorToken: "primary"
|
|
96456
|
-
},
|
|
96457
|
-
openState: {
|
|
96458
|
-
backgroundColorToken: "surface",
|
|
96459
|
-
triggerColorToken: "primary"
|
|
96460
|
-
},
|
|
96461
|
-
content: { textColorToken: "neutral-700" }
|
|
96462
|
-
};
|
|
96463
|
-
/**
|
|
96464
|
-
* Soft Earth's grounded look: boxless, plus/minus, heading-font questions on
|
|
96465
|
-
* a warm ground, with a quiet open recolour.
|
|
96466
|
-
*/
|
|
96467
|
-
const softEarthAccordionSystem = {
|
|
96468
|
-
background: {
|
|
96469
|
-
type: "solid",
|
|
96470
|
-
colorToken: "background"
|
|
96471
|
-
},
|
|
96472
|
-
spacing: "comfortable",
|
|
96473
|
-
corners: "square",
|
|
96474
|
-
border: null,
|
|
96475
|
-
shadow: null,
|
|
96476
|
-
icon: {
|
|
96477
|
-
style: "plus-minus",
|
|
96478
|
-
position: "right",
|
|
96479
|
-
size: "md",
|
|
96480
|
-
colorToken: "primary"
|
|
96481
|
-
},
|
|
96482
|
-
trigger: {
|
|
96483
|
-
textColorToken: "text",
|
|
96484
|
-
fontWeight: "medium",
|
|
96485
|
-
fontFamily: "heading",
|
|
96486
|
-
fontScale: "md"
|
|
96487
|
-
},
|
|
96488
|
-
hover: { textColorToken: "primary" },
|
|
96489
|
-
openState: { triggerColorToken: "primary" },
|
|
96490
|
-
content: { textColorToken: "neutral-700" }
|
|
96491
|
-
};
|
|
96492
|
-
//#endregion
|
|
96493
|
-
//#region ../theme-core/src/cards/siteStyleDefaults.ts
|
|
96494
|
-
/**
|
|
96495
|
-
* Reusable card systems for curated site styles.
|
|
96496
|
-
*
|
|
96497
|
-
* generateCardCss emits a `.card-{id}` class per enabled variant. The
|
|
96498
|
-
* intended convention (block-level role selection is wired in a follow-up) is
|
|
96499
|
-
* a role pair:
|
|
96500
|
-
* - `default` — the quiet, everyday card (most blocks, most of the time)
|
|
96501
|
-
* - `alternative` — the prominent "statement" card for sections that pop
|
|
96502
|
-
* A card-heavy site style may add a third; the schema allows up to three
|
|
96503
|
-
* variants. The planned fallback when a block references a missing variant is
|
|
96504
|
-
* `alternative`, then `default`.
|
|
96505
|
-
*
|
|
96506
|
-
* Keep `default` close to the generated baseline so shared consumers (event
|
|
96507
|
-
* cards, testimonials) stay stable; put the personality in `alternative`.
|
|
96508
|
-
*/
|
|
96509
|
-
/**
|
|
96510
|
-
* South West Twerk School: a quiet default surface card plus a high-impact
|
|
96511
|
-
* "statement" card that reproduces the legacy accent-quote testimonial surface
|
|
96512
|
-
* — burgundy fill, light text, a heavy gold left accent bar, and an expressive
|
|
96513
|
-
* asymmetric top-right corner.
|
|
96514
|
-
*/
|
|
96515
|
-
const southWestCardSystem = { variants: [{
|
|
96516
|
-
id: "default",
|
|
96517
|
-
name: "Default",
|
|
96518
|
-
enabled: true,
|
|
96519
|
-
priority: 1,
|
|
96520
|
-
background: {
|
|
96521
|
-
type: "solid",
|
|
96522
|
-
colorToken: "surface"
|
|
96523
|
-
},
|
|
96524
|
-
foregroundToken: "text",
|
|
96525
|
-
spacing: "comfortable",
|
|
96526
|
-
corners: "soft",
|
|
96527
|
-
shadow: {
|
|
96528
|
-
elevation: "low",
|
|
96529
|
-
softness: "soft",
|
|
96530
|
-
position: "bottom"
|
|
96531
|
-
}
|
|
96532
|
-
}, {
|
|
96533
|
-
id: "alternative",
|
|
96534
|
-
name: "Statement",
|
|
96535
|
-
enabled: true,
|
|
96536
|
-
priority: 2,
|
|
96537
|
-
background: {
|
|
96538
|
-
type: "solid",
|
|
96539
|
-
colorToken: "primary-700"
|
|
96540
|
-
},
|
|
96541
|
-
foregroundToken: "primaryForeground",
|
|
96542
|
-
spacing: "comfortable",
|
|
96543
|
-
shadow: {
|
|
96544
|
-
elevation: "none",
|
|
96545
|
-
softness: null,
|
|
96546
|
-
position: "bottom"
|
|
96547
|
-
},
|
|
96548
|
-
accentEdge: {
|
|
96549
|
-
edge: "left",
|
|
96550
|
-
colorToken: "secondary",
|
|
96551
|
-
width: "heavy"
|
|
96552
|
-
},
|
|
96553
|
-
cornerRadii: {
|
|
96554
|
-
topLeft: "square",
|
|
96555
|
-
topRight: "expressive",
|
|
96556
|
-
bottomLeft: "square",
|
|
96557
|
-
bottomRight: "square"
|
|
96558
|
-
}
|
|
96559
|
-
}] };
|
|
96560
|
-
const clarityZenCardSystem = { variants: [{
|
|
96561
|
-
id: "default",
|
|
96562
|
-
name: "Default",
|
|
96563
|
-
enabled: true,
|
|
96564
|
-
priority: 1,
|
|
96565
|
-
background: {
|
|
96566
|
-
type: "solid",
|
|
96567
|
-
colorToken: "surface"
|
|
96568
|
-
},
|
|
96569
|
-
foregroundToken: "text",
|
|
96570
|
-
spacing: "comfortable",
|
|
96571
|
-
corners: "rounded",
|
|
96572
|
-
shadow: {
|
|
96573
|
-
elevation: "low",
|
|
96574
|
-
softness: "soft",
|
|
96575
|
-
position: "bottom"
|
|
96576
|
-
}
|
|
96577
|
-
}, {
|
|
96578
|
-
id: "alternative",
|
|
96579
|
-
name: "Statement",
|
|
96580
|
-
enabled: true,
|
|
96581
|
-
priority: 2,
|
|
96582
|
-
background: {
|
|
96583
|
-
type: "solid",
|
|
96584
|
-
colorToken: "surfaceAlt"
|
|
96585
|
-
},
|
|
96586
|
-
foregroundToken: "text",
|
|
96587
|
-
spacing: "comfortable",
|
|
96588
|
-
corners: "rounded",
|
|
96589
|
-
shadow: {
|
|
96590
|
-
elevation: "medium",
|
|
96591
|
-
softness: "soft",
|
|
96592
|
-
position: "bottom"
|
|
96593
|
-
}
|
|
96594
|
-
}] };
|
|
96595
|
-
/**
|
|
96596
|
-
* Original Joy: warm, flat, generously rounded cards on the dark clay ground.
|
|
96597
|
-
* `default` is a quiet brown surface card with cream text; `alternative` is a
|
|
96598
|
-
* burnt-orange statement card for sections that should pop. Both flat (the
|
|
96599
|
-
* look's depth comes from colour, not shadow), matching the bold editorial
|
|
96600
|
-
* feel. Shared by event and testimonial cards.
|
|
96601
|
-
*/
|
|
96602
|
-
const originalJoyCardSystem = { variants: [{
|
|
96603
|
-
id: "default",
|
|
96604
|
-
name: "Default",
|
|
96605
|
-
enabled: true,
|
|
96606
|
-
priority: 1,
|
|
96607
|
-
background: {
|
|
96608
|
-
type: "solid",
|
|
96609
|
-
colorToken: "surface"
|
|
96610
|
-
},
|
|
96611
|
-
foregroundToken: "text",
|
|
96612
|
-
spacing: "comfortable",
|
|
96613
|
-
corners: "rounded",
|
|
96614
|
-
shadow: {
|
|
96615
|
-
elevation: "none",
|
|
96616
|
-
softness: null,
|
|
96617
|
-
position: "bottom"
|
|
96618
|
-
}
|
|
96619
|
-
}, {
|
|
96620
|
-
id: "alternative",
|
|
96621
|
-
name: "Statement",
|
|
96622
|
-
enabled: true,
|
|
96623
|
-
priority: 2,
|
|
96624
|
-
background: {
|
|
96625
|
-
type: "solid",
|
|
96626
|
-
colorToken: "primary"
|
|
96627
|
-
},
|
|
96628
|
-
foregroundToken: "primaryForeground",
|
|
96629
|
-
spacing: "comfortable",
|
|
96630
|
-
corners: "rounded",
|
|
96631
|
-
shadow: {
|
|
96632
|
-
elevation: "none",
|
|
96633
|
-
softness: null,
|
|
96634
|
-
position: "bottom"
|
|
96635
|
-
}
|
|
96636
|
-
}] };
|
|
96637
|
-
//#endregion
|
|
96638
|
-
//#region ../theme-core/src/site-styles/testimonialQuotePresets.ts
|
|
96639
|
-
/**
|
|
96640
|
-
* Reusable testimonial quote-mark treatments for curated site styles.
|
|
96641
|
-
*
|
|
96642
|
-
* The quote mark is brand identity the site style owns (analogous to the FAQ
|
|
96643
|
-
* accordion icon); every curated style declares one. `style` is the coarse
|
|
96644
|
-
* selector and the resolver in blocks/vars/testimonials.ts fills in the rest.
|
|
96645
|
-
*/
|
|
96646
|
-
/** Large display quotation mark in the heading font. Editorial / calm styles. */
|
|
96647
|
-
const serifDisplayQuote = { style: "serif-display" };
|
|
96648
|
-
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
96649
|
-
const accentGlyphQuote = { style: "accent-glyph" };
|
|
96650
|
-
/**
|
|
96651
|
-
* Curated library of gradient presets.
|
|
96652
|
-
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
96653
|
-
*/
|
|
96654
|
-
const GRADIENT_PRESETS = [
|
|
96655
|
-
{
|
|
96656
|
-
id: "primary-secondary",
|
|
96657
|
-
name: "Primary to Secondary",
|
|
96658
|
-
description: "Blend your primary and secondary brand colors",
|
|
96659
|
-
type: "linear",
|
|
96660
|
-
angle: 135,
|
|
96661
|
-
stops: [{
|
|
96662
|
-
color: "primary-500",
|
|
96663
|
-
position: 0
|
|
96664
|
-
}, {
|
|
96665
|
-
color: "secondary-500",
|
|
96666
|
-
position: 100
|
|
96667
|
-
}]
|
|
96668
|
-
},
|
|
96669
|
-
{
|
|
96670
|
-
id: "primary-accent",
|
|
96671
|
-
name: "Primary to Accent",
|
|
96672
|
-
description: "Energetic gradient from primary to accent",
|
|
96673
|
-
type: "linear",
|
|
96674
|
-
angle: 135,
|
|
96675
|
-
stops: [{
|
|
96676
|
-
color: "primary-500",
|
|
96677
|
-
position: 0
|
|
96678
|
-
}, {
|
|
96679
|
-
color: "accent-500",
|
|
96680
|
-
position: 100
|
|
96681
|
-
}]
|
|
96682
|
-
},
|
|
96683
|
-
{
|
|
96684
|
-
id: "secondary-accent",
|
|
96685
|
-
name: "Secondary to Accent",
|
|
96686
|
-
description: "Vibrant secondary to accent blend",
|
|
96687
|
-
type: "linear",
|
|
96688
|
-
angle: 135,
|
|
96689
|
-
stops: [{
|
|
96690
|
-
color: "secondary-500",
|
|
96691
|
-
position: 0
|
|
96692
|
-
}, {
|
|
96693
|
-
color: "accent-500",
|
|
96694
|
-
position: 100
|
|
96695
|
-
}]
|
|
96696
|
-
},
|
|
96697
|
-
{
|
|
96698
|
-
id: "primary-light-dark",
|
|
96699
|
-
name: "Primary Light to Dark",
|
|
96700
|
-
description: "Subtle primary color fade",
|
|
96701
|
-
type: "linear",
|
|
96702
|
-
angle: 180,
|
|
96703
|
-
stops: [{
|
|
96704
|
-
color: "primary-500",
|
|
96705
|
-
position: 0
|
|
96706
|
-
}, {
|
|
96707
|
-
color: "primary-900",
|
|
96708
|
-
position: 100
|
|
96709
|
-
}]
|
|
96710
|
-
},
|
|
96711
|
-
{
|
|
96712
|
-
id: "primary-dark-light",
|
|
96713
|
-
name: "Primary Dark to Light",
|
|
96714
|
-
description: "Reverse primary fade",
|
|
96715
|
-
type: "linear",
|
|
96716
|
-
angle: 180,
|
|
96717
|
-
stops: [{
|
|
96718
|
-
color: "primary-900",
|
|
96719
|
-
position: 0
|
|
96720
|
-
}, {
|
|
96721
|
-
color: "primary-50",
|
|
96722
|
-
position: 100
|
|
96723
|
-
}]
|
|
96724
|
-
},
|
|
96725
|
-
{
|
|
96726
|
-
id: "secondary-light-dark",
|
|
96727
|
-
name: "Secondary Light to Dark",
|
|
96728
|
-
description: "Subtle secondary color fade",
|
|
96729
|
-
type: "linear",
|
|
96730
|
-
angle: 180,
|
|
96731
|
-
stops: [{
|
|
96732
|
-
color: "secondary-500",
|
|
96733
|
-
position: 0
|
|
96734
|
-
}, {
|
|
96735
|
-
color: "secondary-900",
|
|
96736
|
-
position: 100
|
|
96737
|
-
}]
|
|
96738
|
-
},
|
|
96739
|
-
{
|
|
96740
|
-
id: "accent-light-dark",
|
|
96741
|
-
name: "Accent Light to Dark",
|
|
96742
|
-
description: "Accent color depth fade",
|
|
96743
|
-
type: "linear",
|
|
96744
|
-
angle: 180,
|
|
96745
|
-
stops: [{
|
|
96746
|
-
color: "accent-500",
|
|
96747
|
-
position: 0
|
|
96748
|
-
}, {
|
|
96749
|
-
color: "accent-900",
|
|
96750
|
-
position: 100
|
|
96751
|
-
}]
|
|
96752
|
-
},
|
|
96753
|
-
{
|
|
96754
|
-
id: "background-surface",
|
|
96755
|
-
name: "Background to Surface",
|
|
96756
|
-
description: "Subtle depth using base colors",
|
|
96757
|
-
type: "linear",
|
|
96758
|
-
angle: 180,
|
|
96759
|
-
stops: [{
|
|
96760
|
-
color: "background",
|
|
96761
|
-
position: 0
|
|
96762
|
-
}, {
|
|
96763
|
-
color: "surface",
|
|
96764
|
-
position: 100
|
|
96765
|
-
}]
|
|
96766
|
-
},
|
|
96767
|
-
{
|
|
96768
|
-
id: "neutral-fade",
|
|
96769
|
-
name: "Neutral Gradient",
|
|
96770
|
-
description: "Elegant neutral color fade",
|
|
96771
|
-
type: "linear",
|
|
96772
|
-
angle: 180,
|
|
96773
|
-
stops: [{
|
|
96774
|
-
color: "neutral-900",
|
|
96775
|
-
position: 0
|
|
96776
|
-
}, {
|
|
96777
|
-
color: "neutral-50",
|
|
96778
|
-
position: 100
|
|
96779
|
-
}]
|
|
96780
|
-
},
|
|
96781
|
-
{
|
|
96782
|
-
id: "primary-glow",
|
|
96783
|
-
name: "Primary glow",
|
|
96784
|
-
description: "A soft top-centred glow using your primary palette",
|
|
96785
|
-
type: "radial",
|
|
96786
|
-
shape: "ellipse",
|
|
96787
|
-
position: "top center",
|
|
96788
|
-
stops: [{
|
|
96789
|
-
color: "primary-900",
|
|
96790
|
-
position: 0
|
|
96791
|
-
}, {
|
|
96792
|
-
color: "primary-950",
|
|
96793
|
-
position: 100
|
|
96794
|
-
}],
|
|
96795
|
-
foreground: {
|
|
96796
|
-
textColor: "onPrimary900",
|
|
96797
|
-
headingColor: "onPrimary900",
|
|
96798
|
-
linkColor: "onPrimary900",
|
|
96799
|
-
supportingColor: "onPrimary900"
|
|
96800
|
-
}
|
|
96801
|
-
},
|
|
96802
|
-
{
|
|
96803
|
-
id: "accent-glow",
|
|
96804
|
-
name: "Accent glow",
|
|
96805
|
-
description: "A soft top-centred glow using your accent palette",
|
|
96806
|
-
type: "radial",
|
|
96807
|
-
shape: "ellipse",
|
|
96808
|
-
position: "top center",
|
|
96809
|
-
stops: [{
|
|
96810
|
-
color: "accent-900",
|
|
96811
|
-
position: 0
|
|
96812
|
-
}, {
|
|
96813
|
-
color: "accent-950",
|
|
96814
|
-
position: 100
|
|
96815
|
-
}],
|
|
96816
|
-
foreground: {
|
|
96817
|
-
textColor: "onAccent900",
|
|
96818
|
-
headingColor: "onAccent900",
|
|
96819
|
-
linkColor: "onAccent900",
|
|
96820
|
-
supportingColor: "onAccent900"
|
|
96821
|
-
}
|
|
96822
|
-
},
|
|
96823
|
-
{
|
|
96824
|
-
id: "primary-secondary-accent",
|
|
96825
|
-
name: "Brand Trio",
|
|
96826
|
-
description: "All three brand colors in harmony",
|
|
96827
|
-
type: "linear",
|
|
96828
|
-
angle: 135,
|
|
96829
|
-
stops: [
|
|
96830
|
-
{
|
|
96831
|
-
color: "primary-500",
|
|
96832
|
-
position: 0
|
|
96833
|
-
},
|
|
96834
|
-
{
|
|
96835
|
-
color: "secondary-500",
|
|
96836
|
-
position: 50
|
|
96837
|
-
},
|
|
96838
|
-
{
|
|
96839
|
-
color: "accent-500",
|
|
96840
|
-
position: 100
|
|
96841
|
-
}
|
|
96842
|
-
]
|
|
96843
|
-
}
|
|
96844
|
-
].map((preset) => ({
|
|
96845
|
-
...preset,
|
|
96846
|
-
id: preset.id,
|
|
96847
|
-
stops: preset.stops
|
|
96848
|
-
}));
|
|
96849
|
-
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
96850
|
-
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
96851
|
-
const gradientPresetById = Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
96852
|
-
function parseGradientPresetId(value) {
|
|
96853
|
-
if (typeof value !== "string") return null;
|
|
96854
|
-
const normalized = value.trim();
|
|
96855
|
-
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
96856
|
-
return normalized;
|
|
96857
|
-
}
|
|
96858
|
-
function getGradientPreset(id) {
|
|
96859
|
-
return gradientPresetById[id];
|
|
96860
|
-
}
|
|
96861
|
-
//#endregion
|
|
96862
|
-
//#region ../theme-core/src/gradients/utils.ts
|
|
96863
|
-
/**
|
|
96864
|
-
* Convert a GradientConfig to a CSS gradient string
|
|
96865
|
-
*
|
|
96866
|
-
* @param config - The gradient configuration using theme tokens
|
|
96867
|
-
* @param tokens - Map of theme color tokens to hex values
|
|
96868
|
-
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
96869
|
-
*/
|
|
96870
|
-
function gradientToCss(config, tokens) {
|
|
96871
|
-
const stops = config.stops.map((stop) => {
|
|
96872
|
-
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
96873
|
-
}).join(", ");
|
|
96874
|
-
const type = config.type ?? "linear";
|
|
96875
|
-
if (type === "radial") {
|
|
96876
|
-
const position = config.position ?? "center";
|
|
96877
|
-
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
96878
|
-
}
|
|
96879
|
-
if (type === "conic") {
|
|
96880
|
-
const position = config.position ?? "center";
|
|
96881
|
-
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
96882
|
-
}
|
|
96883
|
-
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
96884
|
-
}
|
|
96885
|
-
//#endregion
|
|
96886
96044
|
//#region ../theme-core/src/site-styles/customizableSurfaces.ts
|
|
96887
96045
|
function uniqueLookIds(ids) {
|
|
96888
96046
|
const result = [];
|
|
@@ -96982,7 +96140,7 @@ const defaultHeaderSelectionContext = {
|
|
|
96982
96140
|
cta: { importance: "medium" },
|
|
96983
96141
|
banner: { persistentVisibility: "possible" }
|
|
96984
96142
|
};
|
|
96985
|
-
function
|
|
96143
|
+
function completeHeaderSelectionContext(context) {
|
|
96986
96144
|
return mergeWithDefaults(defaultHeaderSelectionContext, context);
|
|
96987
96145
|
}
|
|
96988
96146
|
const titleOnlyLogoAccommodation = {
|
|
@@ -98279,255 +97437,1306 @@ function practicalUtilityHeader(theme) {
|
|
|
98279
97437
|
}
|
|
98280
97438
|
};
|
|
98281
97439
|
}
|
|
98282
|
-
function minimalTransparentHeader(theme) {
|
|
98283
|
-
return {
|
|
98284
|
-
...baseHeader(theme),
|
|
98285
|
-
variant: "classic",
|
|
98286
|
-
positioning: "static",
|
|
98287
|
-
shrinkOnScroll: false,
|
|
98288
|
-
background: {
|
|
98289
|
-
type: "color",
|
|
98290
|
-
color: "transparent"
|
|
98291
|
-
},
|
|
98292
|
-
textColor: "text",
|
|
98293
|
-
navColor: "text",
|
|
98294
|
-
navStyle: "underline",
|
|
98295
|
-
navWeight: "medium",
|
|
98296
|
-
border: {
|
|
98297
|
-
style: "solid",
|
|
98298
|
-
width: "none",
|
|
98299
|
-
position: "none"
|
|
98300
|
-
},
|
|
98301
|
-
ctaTreatment: "outline",
|
|
98302
|
-
ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
|
|
98303
|
-
ctaGap: "default"
|
|
98304
|
-
};
|
|
97440
|
+
function minimalTransparentHeader(theme) {
|
|
97441
|
+
return {
|
|
97442
|
+
...baseHeader(theme),
|
|
97443
|
+
variant: "classic",
|
|
97444
|
+
positioning: "static",
|
|
97445
|
+
shrinkOnScroll: false,
|
|
97446
|
+
background: {
|
|
97447
|
+
type: "color",
|
|
97448
|
+
color: "transparent"
|
|
97449
|
+
},
|
|
97450
|
+
textColor: "text",
|
|
97451
|
+
navColor: "text",
|
|
97452
|
+
navStyle: "underline",
|
|
97453
|
+
navWeight: "medium",
|
|
97454
|
+
border: {
|
|
97455
|
+
style: "solid",
|
|
97456
|
+
width: "none",
|
|
97457
|
+
position: "none"
|
|
97458
|
+
},
|
|
97459
|
+
ctaTreatment: "outline",
|
|
97460
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
|
|
97461
|
+
ctaGap: "default"
|
|
97462
|
+
};
|
|
97463
|
+
}
|
|
97464
|
+
function transparentOverlayHeader(theme) {
|
|
97465
|
+
return {
|
|
97466
|
+
...baseHeader(theme),
|
|
97467
|
+
variant: "transparent",
|
|
97468
|
+
positioning: "fixed",
|
|
97469
|
+
shrinkOnScroll: true,
|
|
97470
|
+
background: {
|
|
97471
|
+
type: "color",
|
|
97472
|
+
color: "transparent"
|
|
97473
|
+
},
|
|
97474
|
+
textColor: "background",
|
|
97475
|
+
navColor: "background",
|
|
97476
|
+
navStyle: "frosted",
|
|
97477
|
+
navWeight: "semibold",
|
|
97478
|
+
border: {
|
|
97479
|
+
style: "solid",
|
|
97480
|
+
width: "none",
|
|
97481
|
+
position: "none"
|
|
97482
|
+
},
|
|
97483
|
+
ctaTreatment: "inverted",
|
|
97484
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "inverted"),
|
|
97485
|
+
ctaGap: "compact"
|
|
97486
|
+
};
|
|
97487
|
+
}
|
|
97488
|
+
function floatingGlassHeader(theme) {
|
|
97489
|
+
return {
|
|
97490
|
+
...transparentOverlayHeader(theme),
|
|
97491
|
+
variant: "floating",
|
|
97492
|
+
positioning: "sticky",
|
|
97493
|
+
navStyle: "frosted",
|
|
97494
|
+
navContainer: {
|
|
97495
|
+
type: "glass",
|
|
97496
|
+
tint: "text",
|
|
97497
|
+
opacity: .16
|
|
97498
|
+
},
|
|
97499
|
+
container: {
|
|
97500
|
+
rounded: "2xl",
|
|
97501
|
+
border: true,
|
|
97502
|
+
shadow: true,
|
|
97503
|
+
padding: "sm",
|
|
97504
|
+
tint: "background",
|
|
97505
|
+
opacity: .12
|
|
97506
|
+
}
|
|
97507
|
+
};
|
|
97508
|
+
}
|
|
97509
|
+
const headerLookCatalog = defineExactCatalog()([
|
|
97510
|
+
{
|
|
97511
|
+
id: asHeaderLookId("clean-base"),
|
|
97512
|
+
label: "Clean base",
|
|
97513
|
+
visualTreatment: "solid-neutral",
|
|
97514
|
+
layoutBehavior: "sticky",
|
|
97515
|
+
configuration: {
|
|
97516
|
+
structure: "inline-classic",
|
|
97517
|
+
treatment: "solid-neutral",
|
|
97518
|
+
behavior: "sticky"
|
|
97519
|
+
},
|
|
97520
|
+
openingRequirement: "none",
|
|
97521
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97522
|
+
compile: cleanBaseHeader
|
|
97523
|
+
},
|
|
97524
|
+
{
|
|
97525
|
+
id: asHeaderLookId("classic-centered-nav"),
|
|
97526
|
+
label: "Centered nav",
|
|
97527
|
+
visualTreatment: "solid-neutral",
|
|
97528
|
+
layoutBehavior: "sticky",
|
|
97529
|
+
configuration: {
|
|
97530
|
+
structure: "inline-classic",
|
|
97531
|
+
treatment: "solid-neutral",
|
|
97532
|
+
behavior: "sticky"
|
|
97533
|
+
},
|
|
97534
|
+
openingRequirement: "none",
|
|
97535
|
+
maxRecommendedNavItems: 6,
|
|
97536
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97537
|
+
compile: classicCenteredNavHeader
|
|
97538
|
+
},
|
|
97539
|
+
{
|
|
97540
|
+
id: asHeaderLookId("brand-solid"),
|
|
97541
|
+
label: "Brand solid",
|
|
97542
|
+
visualTreatment: "solid-brand",
|
|
97543
|
+
layoutBehavior: "sticky-shrink",
|
|
97544
|
+
configuration: {
|
|
97545
|
+
structure: "inline-classic",
|
|
97546
|
+
treatment: "solid-brand",
|
|
97547
|
+
behavior: "sticky-shrink"
|
|
97548
|
+
},
|
|
97549
|
+
openingRequirement: "none",
|
|
97550
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97551
|
+
compile: solidBrandHeader
|
|
97552
|
+
},
|
|
97553
|
+
{
|
|
97554
|
+
id: asHeaderLookId("serif-line"),
|
|
97555
|
+
label: "Serif line",
|
|
97556
|
+
visualTreatment: "light-serif",
|
|
97557
|
+
layoutBehavior: "sticky",
|
|
97558
|
+
configuration: {
|
|
97559
|
+
structure: "centered-stack",
|
|
97560
|
+
treatment: "light-serif",
|
|
97561
|
+
behavior: "sticky"
|
|
97562
|
+
},
|
|
97563
|
+
openingRequirement: "none",
|
|
97564
|
+
maxRecommendedNavItems: 6,
|
|
97565
|
+
logoAccommodations: centeredLogoAccommodations,
|
|
97566
|
+
compile: serifLineHeader
|
|
97567
|
+
},
|
|
97568
|
+
{
|
|
97569
|
+
id: asHeaderLookId("centered-calm"),
|
|
97570
|
+
label: "Centered calm",
|
|
97571
|
+
visualTreatment: "light-serif",
|
|
97572
|
+
layoutBehavior: "normal-flow",
|
|
97573
|
+
configuration: {
|
|
97574
|
+
structure: "centered-stack",
|
|
97575
|
+
treatment: "light-serif",
|
|
97576
|
+
behavior: "normal-flow"
|
|
97577
|
+
},
|
|
97578
|
+
openingRequirement: "none",
|
|
97579
|
+
maxRecommendedNavItems: 5,
|
|
97580
|
+
logoAccommodations: centeredLogoAccommodations,
|
|
97581
|
+
compile: centeredCalmHeader
|
|
97582
|
+
},
|
|
97583
|
+
{
|
|
97584
|
+
id: asHeaderLookId("practical-utility"),
|
|
97585
|
+
label: "Practical utility",
|
|
97586
|
+
visualTreatment: "solid-neutral",
|
|
97587
|
+
layoutBehavior: "sticky-shrink",
|
|
97588
|
+
configuration: {
|
|
97589
|
+
structure: "inline-classic",
|
|
97590
|
+
treatment: "solid-neutral",
|
|
97591
|
+
behavior: "sticky-shrink"
|
|
97592
|
+
},
|
|
97593
|
+
openingRequirement: "none",
|
|
97594
|
+
requiresProminentCta: true,
|
|
97595
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97596
|
+
compile: practicalUtilityHeader
|
|
97597
|
+
},
|
|
97598
|
+
{
|
|
97599
|
+
id: asHeaderLookId("minimal-transparent"),
|
|
97600
|
+
label: "Minimal transparent",
|
|
97601
|
+
visualTreatment: "minimal-transparent",
|
|
97602
|
+
layoutBehavior: "normal-flow",
|
|
97603
|
+
configuration: {
|
|
97604
|
+
structure: "inline-classic",
|
|
97605
|
+
treatment: "minimal-transparent",
|
|
97606
|
+
behavior: "normal-flow"
|
|
97607
|
+
},
|
|
97608
|
+
openingRequirement: "reserved-space-ok",
|
|
97609
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97610
|
+
compile: minimalTransparentHeader
|
|
97611
|
+
},
|
|
97612
|
+
{
|
|
97613
|
+
id: asHeaderLookId("transparent-overlay"),
|
|
97614
|
+
label: "Transparent overlay",
|
|
97615
|
+
visualTreatment: "transparent-overlay",
|
|
97616
|
+
layoutBehavior: "fixed-overlay",
|
|
97617
|
+
configuration: {
|
|
97618
|
+
structure: "inline-classic",
|
|
97619
|
+
treatment: "transparent-overlay",
|
|
97620
|
+
behavior: "fixed-overlay"
|
|
97621
|
+
},
|
|
97622
|
+
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
97623
|
+
maxRecommendedNavItems: 5,
|
|
97624
|
+
logoAccommodations: overlayLogoAccommodations,
|
|
97625
|
+
compile: transparentOverlayHeader
|
|
97626
|
+
},
|
|
97627
|
+
{
|
|
97628
|
+
id: asHeaderLookId("floating-glass"),
|
|
97629
|
+
label: "Floating glass",
|
|
97630
|
+
visualTreatment: "floating-glass",
|
|
97631
|
+
layoutBehavior: "fixed-floating",
|
|
97632
|
+
configuration: {
|
|
97633
|
+
structure: "floating-shell",
|
|
97634
|
+
treatment: "floating-glass",
|
|
97635
|
+
behavior: "fixed-floating"
|
|
97636
|
+
},
|
|
97637
|
+
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
97638
|
+
maxRecommendedNavItems: 5,
|
|
97639
|
+
logoAccommodations: overlayLogoAccommodations,
|
|
97640
|
+
compile: floatingGlassHeader
|
|
97641
|
+
}
|
|
97642
|
+
]);
|
|
97643
|
+
const guaranteedFallbackHeaderLookId = asHeaderLookId("clean-base");
|
|
97644
|
+
new Set(headerLookCatalog.map((look) => headerConfigurationKey(look.configuration)));
|
|
97645
|
+
const headerLooksById = new Map(headerLookCatalog.map((look) => [look.id, look]));
|
|
97646
|
+
function headerConfigurationKey(configuration) {
|
|
97647
|
+
return `${configuration.structure}:${configuration.treatment}:${configuration.behavior}`;
|
|
97648
|
+
}
|
|
97649
|
+
function getHeaderLook(id) {
|
|
97650
|
+
return headerLooksById.get(id) ?? null;
|
|
97651
|
+
}
|
|
97652
|
+
function getHeaderLookOrThrow(id) {
|
|
97653
|
+
const look = getHeaderLook(id);
|
|
97654
|
+
if (!look) throw new Error(`Unknown Theme V2 header Look: ${id}`);
|
|
97655
|
+
return look;
|
|
97656
|
+
}
|
|
97657
|
+
function rejectReasonsForLook(look, context) {
|
|
97658
|
+
const brandPresentation = resolveHeaderBrandPresentation({
|
|
97659
|
+
logo: context.logo,
|
|
97660
|
+
accommodations: look.logoAccommodations
|
|
97661
|
+
});
|
|
97662
|
+
return [
|
|
97663
|
+
...look.maxRecommendedNavItems !== void 0 && context.navigation.itemCount > look.maxRecommendedNavItems ? ["too-many-nav-items"] : [],
|
|
97664
|
+
...brandPresentation.kind === "rejected" ? brandPresentation.reasons : [],
|
|
97665
|
+
...look.requiresProminentCta && context.cta.importance === "low" ? ["cta-treatment-unavailable"] : []
|
|
97666
|
+
];
|
|
97667
|
+
}
|
|
97668
|
+
function resolveHeaderLook(input) {
|
|
97669
|
+
const context = completeHeaderSelectionContext(input.context);
|
|
97670
|
+
const result = resolveLook({
|
|
97671
|
+
recommendedLookIds: input.recommendedLookIds,
|
|
97672
|
+
guaranteedFallbackLookId: guaranteedFallbackHeaderLookId,
|
|
97673
|
+
getLookOrThrow: getHeaderLookOrThrow,
|
|
97674
|
+
context,
|
|
97675
|
+
rejectReasonsForLook,
|
|
97676
|
+
compileLook: (look) => look.compile(input.theme)
|
|
97677
|
+
});
|
|
97678
|
+
return {
|
|
97679
|
+
selectedLookId: result.selectedLookId,
|
|
97680
|
+
selectedLook: result.selectedLook,
|
|
97681
|
+
header: result.compiled,
|
|
97682
|
+
brandPresentation: requireHeaderBrandPresentationSelection(resolveHeaderBrandPresentation({
|
|
97683
|
+
logo: context.logo,
|
|
97684
|
+
accommodations: result.selectedLook.logoAccommodations,
|
|
97685
|
+
allowDisplayFallback: true
|
|
97686
|
+
})),
|
|
97687
|
+
rejected: result.rejected
|
|
97688
|
+
};
|
|
97689
|
+
}
|
|
97690
|
+
//#endregion
|
|
97691
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
97692
|
+
const defaultHeaderBrandPreferences = {
|
|
97693
|
+
brandDisplay: "auto",
|
|
97694
|
+
logoSize: "auto"
|
|
97695
|
+
};
|
|
97696
|
+
function headerBrandPreferencesFromTheme(theme) {
|
|
97697
|
+
return {
|
|
97698
|
+
brandDisplay: theme?.header.logo?.brandDisplay ?? defaultHeaderBrandPreferences.brandDisplay,
|
|
97699
|
+
logoSize: theme?.header.logo?.size ?? defaultHeaderBrandPreferences.logoSize
|
|
97700
|
+
};
|
|
97701
|
+
}
|
|
97702
|
+
function replaceSiteStyleCompilationPlan(input = {}) {
|
|
97703
|
+
return {
|
|
97704
|
+
kind: "replace-site-style",
|
|
97705
|
+
header: {
|
|
97706
|
+
kind: "recompile",
|
|
97707
|
+
selection: {
|
|
97708
|
+
headerLookId: input.headerLookId ?? null,
|
|
97709
|
+
headerLayoutId: input.headerLayoutId ?? null,
|
|
97710
|
+
headerStyleId: input.headerStyleId ?? null
|
|
97711
|
+
},
|
|
97712
|
+
context: completeHeaderSelectionContext(input.headerSelectionContext),
|
|
97713
|
+
brandPresentation: input.headerSelectionContext?.logo === void 0 ? { kind: "use-compiled-defaults" } : { kind: "apply-logo-context" }
|
|
97714
|
+
},
|
|
97715
|
+
footerLookId: input.footerLookId ?? null
|
|
97716
|
+
};
|
|
97717
|
+
}
|
|
97718
|
+
//#endregion
|
|
97719
|
+
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
97720
|
+
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
97721
|
+
return {
|
|
97722
|
+
family,
|
|
97723
|
+
size,
|
|
97724
|
+
heightCss: heightExpression.includes(" ") ? `calc(${heightExpression})` : heightExpression,
|
|
97725
|
+
reserveCss: `calc((${heightExpression}) / 2)`
|
|
97726
|
+
};
|
|
97727
|
+
}
|
|
97728
|
+
const sectionBoundaryRuntimeMetricsByTransition = {
|
|
97729
|
+
none: null,
|
|
97730
|
+
"soft-fade-short": boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"),
|
|
97731
|
+
"soft-fade-long": boundaryRuntimeMetrics("gradient", "spacious", "10rem"),
|
|
97732
|
+
"soft-fade-expansive": boundaryRuntimeMetrics("gradient", "expansive", "14rem"),
|
|
97733
|
+
"wave-edge": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
97734
|
+
"wave-edge-balanced": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
97735
|
+
"wave-edge-gentle": boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"),
|
|
97736
|
+
"wave-edge-bold": boundaryRuntimeMetrics("wave", "large", "7rem + 2px"),
|
|
97737
|
+
"wave-edge-drift": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
97738
|
+
"angle-edge": boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"),
|
|
97739
|
+
"angle-edge-subtle": boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"),
|
|
97740
|
+
"angle-edge-steep": boundaryRuntimeMetrics("angle", "large", "7rem + 2px")
|
|
97741
|
+
};
|
|
97742
|
+
function boundaryRuntimeMetricsForTransition(transition) {
|
|
97743
|
+
return sectionBoundaryRuntimeMetricsByTransition[transition];
|
|
97744
|
+
}
|
|
97745
|
+
const noneBoundaryOption = {
|
|
97746
|
+
id: asBoundaryOptionId("break:none"),
|
|
97747
|
+
label: "None",
|
|
97748
|
+
transitionAfter: "none",
|
|
97749
|
+
treatment: { kind: "none" }
|
|
97750
|
+
};
|
|
97751
|
+
const softBoundaryOption = {
|
|
97752
|
+
id: asBoundaryOptionId("break:soft"),
|
|
97753
|
+
label: "Soft",
|
|
97754
|
+
transitionAfter: "soft-fade-short",
|
|
97755
|
+
treatment: {
|
|
97756
|
+
kind: "soft-fade",
|
|
97757
|
+
height: "medium",
|
|
97758
|
+
curve: "soft"
|
|
97759
|
+
}
|
|
97760
|
+
};
|
|
97761
|
+
const spaciousBoundaryOption = {
|
|
97762
|
+
id: asBoundaryOptionId("break:spacious"),
|
|
97763
|
+
label: "Spacious",
|
|
97764
|
+
transitionAfter: "soft-fade-long",
|
|
97765
|
+
treatment: {
|
|
97766
|
+
kind: "soft-fade",
|
|
97767
|
+
height: "large",
|
|
97768
|
+
curve: "spacious"
|
|
97769
|
+
}
|
|
97770
|
+
};
|
|
97771
|
+
const expansiveBoundaryOption = {
|
|
97772
|
+
id: asBoundaryOptionId("break:expansive"),
|
|
97773
|
+
label: "Expansive",
|
|
97774
|
+
transitionAfter: "soft-fade-expansive",
|
|
97775
|
+
treatment: {
|
|
97776
|
+
kind: "soft-fade",
|
|
97777
|
+
height: "expansive",
|
|
97778
|
+
curve: "expansive"
|
|
97779
|
+
}
|
|
97780
|
+
};
|
|
97781
|
+
const waveBoundaryOption = {
|
|
97782
|
+
id: asBoundaryOptionId("break:wave"),
|
|
97783
|
+
label: "Classic wave",
|
|
97784
|
+
transitionAfter: "wave-edge",
|
|
97785
|
+
treatment: {
|
|
97786
|
+
kind: "wave-edge",
|
|
97787
|
+
height: "medium",
|
|
97788
|
+
amplitude: "balanced",
|
|
97789
|
+
rhythm: "double",
|
|
97790
|
+
symmetry: "asymmetrical"
|
|
97791
|
+
}
|
|
97792
|
+
};
|
|
97793
|
+
const balancedWaveBoundaryOption = {
|
|
97794
|
+
id: asBoundaryOptionId("break:wave-balanced"),
|
|
97795
|
+
label: "Balanced wave",
|
|
97796
|
+
transitionAfter: "wave-edge-balanced",
|
|
97797
|
+
treatment: {
|
|
97798
|
+
kind: "wave-edge",
|
|
97799
|
+
height: "medium",
|
|
97800
|
+
amplitude: "balanced",
|
|
97801
|
+
rhythm: "double",
|
|
97802
|
+
symmetry: "symmetrical"
|
|
97803
|
+
}
|
|
97804
|
+
};
|
|
97805
|
+
const gentleWaveBoundaryOption = {
|
|
97806
|
+
id: asBoundaryOptionId("break:wave-gentle"),
|
|
97807
|
+
label: "Gentle wave",
|
|
97808
|
+
transitionAfter: "wave-edge-gentle",
|
|
97809
|
+
treatment: {
|
|
97810
|
+
kind: "wave-edge",
|
|
97811
|
+
height: "compact",
|
|
97812
|
+
amplitude: "subtle",
|
|
97813
|
+
rhythm: "single",
|
|
97814
|
+
symmetry: "symmetrical"
|
|
97815
|
+
}
|
|
97816
|
+
};
|
|
97817
|
+
const boldWaveBoundaryOption = {
|
|
97818
|
+
id: asBoundaryOptionId("break:wave-bold"),
|
|
97819
|
+
label: "Bold wave",
|
|
97820
|
+
transitionAfter: "wave-edge-bold",
|
|
97821
|
+
treatment: {
|
|
97822
|
+
kind: "wave-edge",
|
|
97823
|
+
height: "large",
|
|
97824
|
+
amplitude: "bold",
|
|
97825
|
+
rhythm: "double",
|
|
97826
|
+
symmetry: "symmetrical"
|
|
97827
|
+
}
|
|
97828
|
+
};
|
|
97829
|
+
const driftWaveBoundaryOption = {
|
|
97830
|
+
id: asBoundaryOptionId("break:wave-drift"),
|
|
97831
|
+
label: "Drift wave",
|
|
97832
|
+
transitionAfter: "wave-edge-drift",
|
|
97833
|
+
treatment: {
|
|
97834
|
+
kind: "wave-edge",
|
|
97835
|
+
height: "medium",
|
|
97836
|
+
amplitude: "balanced",
|
|
97837
|
+
rhythm: "double",
|
|
97838
|
+
symmetry: "drift"
|
|
97839
|
+
}
|
|
97840
|
+
};
|
|
97841
|
+
const subtleAngleBoundaryOption = {
|
|
97842
|
+
id: asBoundaryOptionId("break:angle-subtle"),
|
|
97843
|
+
label: "Subtle angle",
|
|
97844
|
+
transitionAfter: "angle-edge-subtle",
|
|
97845
|
+
treatment: {
|
|
97846
|
+
kind: "angle-edge",
|
|
97847
|
+
height: "compact",
|
|
97848
|
+
slope: "subtle",
|
|
97849
|
+
direction: "forward"
|
|
97850
|
+
}
|
|
97851
|
+
};
|
|
97852
|
+
const balancedAngleBoundaryOption = {
|
|
97853
|
+
id: asBoundaryOptionId("break:angle-balanced"),
|
|
97854
|
+
label: "Balanced angle",
|
|
97855
|
+
transitionAfter: "angle-edge",
|
|
97856
|
+
treatment: {
|
|
97857
|
+
kind: "angle-edge",
|
|
97858
|
+
height: "medium",
|
|
97859
|
+
slope: "balanced",
|
|
97860
|
+
direction: "forward"
|
|
97861
|
+
}
|
|
97862
|
+
};
|
|
97863
|
+
const steepAngleBoundaryOption = {
|
|
97864
|
+
id: asBoundaryOptionId("break:angle-steep"),
|
|
97865
|
+
label: "Steep angle",
|
|
97866
|
+
transitionAfter: "angle-edge-steep",
|
|
97867
|
+
treatment: {
|
|
97868
|
+
kind: "angle-edge",
|
|
97869
|
+
height: "large",
|
|
97870
|
+
slope: "steep",
|
|
97871
|
+
direction: "forward"
|
|
97872
|
+
}
|
|
97873
|
+
};
|
|
97874
|
+
const sectionTransitionFamilies = [
|
|
97875
|
+
{
|
|
97876
|
+
id: "none",
|
|
97877
|
+
label: "None",
|
|
97878
|
+
variants: [{
|
|
97879
|
+
familyId: "none",
|
|
97880
|
+
variantId: "none",
|
|
97881
|
+
label: "None",
|
|
97882
|
+
boundaryOption: noneBoundaryOption
|
|
97883
|
+
}]
|
|
97884
|
+
},
|
|
97885
|
+
{
|
|
97886
|
+
id: "gradient",
|
|
97887
|
+
label: "Gradient",
|
|
97888
|
+
variants: [
|
|
97889
|
+
{
|
|
97890
|
+
familyId: "gradient",
|
|
97891
|
+
variantId: "soft",
|
|
97892
|
+
label: "Soft",
|
|
97893
|
+
boundaryOption: softBoundaryOption
|
|
97894
|
+
},
|
|
97895
|
+
{
|
|
97896
|
+
familyId: "gradient",
|
|
97897
|
+
variantId: "spacious",
|
|
97898
|
+
label: "Spacious",
|
|
97899
|
+
boundaryOption: spaciousBoundaryOption
|
|
97900
|
+
},
|
|
97901
|
+
{
|
|
97902
|
+
familyId: "gradient",
|
|
97903
|
+
variantId: "expansive",
|
|
97904
|
+
label: "Expansive",
|
|
97905
|
+
boundaryOption: expansiveBoundaryOption
|
|
97906
|
+
}
|
|
97907
|
+
]
|
|
97908
|
+
},
|
|
97909
|
+
{
|
|
97910
|
+
id: "wave",
|
|
97911
|
+
label: "Wave",
|
|
97912
|
+
variants: [
|
|
97913
|
+
{
|
|
97914
|
+
familyId: "wave",
|
|
97915
|
+
variantId: "balanced",
|
|
97916
|
+
label: "Balanced",
|
|
97917
|
+
boundaryOption: balancedWaveBoundaryOption
|
|
97918
|
+
},
|
|
97919
|
+
{
|
|
97920
|
+
familyId: "wave",
|
|
97921
|
+
variantId: "classic",
|
|
97922
|
+
label: "Classic",
|
|
97923
|
+
boundaryOption: waveBoundaryOption
|
|
97924
|
+
},
|
|
97925
|
+
{
|
|
97926
|
+
familyId: "wave",
|
|
97927
|
+
variantId: "gentle",
|
|
97928
|
+
label: "Gentle",
|
|
97929
|
+
boundaryOption: gentleWaveBoundaryOption
|
|
97930
|
+
},
|
|
97931
|
+
{
|
|
97932
|
+
familyId: "wave",
|
|
97933
|
+
variantId: "bold",
|
|
97934
|
+
label: "Bold",
|
|
97935
|
+
boundaryOption: boldWaveBoundaryOption
|
|
97936
|
+
},
|
|
97937
|
+
{
|
|
97938
|
+
familyId: "wave",
|
|
97939
|
+
variantId: "drift",
|
|
97940
|
+
label: "Drift",
|
|
97941
|
+
boundaryOption: driftWaveBoundaryOption
|
|
97942
|
+
}
|
|
97943
|
+
]
|
|
97944
|
+
},
|
|
97945
|
+
{
|
|
97946
|
+
id: "angle",
|
|
97947
|
+
label: "Angle",
|
|
97948
|
+
variants: [
|
|
97949
|
+
{
|
|
97950
|
+
familyId: "angle",
|
|
97951
|
+
variantId: "subtle",
|
|
97952
|
+
label: "Subtle",
|
|
97953
|
+
boundaryOption: subtleAngleBoundaryOption
|
|
97954
|
+
},
|
|
97955
|
+
{
|
|
97956
|
+
familyId: "angle",
|
|
97957
|
+
variantId: "balanced",
|
|
97958
|
+
label: "Balanced",
|
|
97959
|
+
boundaryOption: balancedAngleBoundaryOption
|
|
97960
|
+
},
|
|
97961
|
+
{
|
|
97962
|
+
familyId: "angle",
|
|
97963
|
+
variantId: "steep",
|
|
97964
|
+
label: "Steep",
|
|
97965
|
+
boundaryOption: steepAngleBoundaryOption
|
|
97966
|
+
}
|
|
97967
|
+
]
|
|
97968
|
+
}
|
|
97969
|
+
];
|
|
97970
|
+
function sectionTransitionVariantForBoundaryOptionId(boundaryOptionId) {
|
|
97971
|
+
if (!boundaryOptionId) return null;
|
|
97972
|
+
for (const family of sectionTransitionFamilies) {
|
|
97973
|
+
const variant = family.variants.find((candidate) => candidate.boundaryOption.id === boundaryOptionId);
|
|
97974
|
+
if (variant) return variant;
|
|
97975
|
+
}
|
|
97976
|
+
return null;
|
|
97977
|
+
}
|
|
97978
|
+
function sectionTransitionFamilyForBoundaryOptionId(boundaryOptionId) {
|
|
97979
|
+
const variant = sectionTransitionVariantForBoundaryOptionId(boundaryOptionId);
|
|
97980
|
+
if (!variant) return null;
|
|
97981
|
+
return sectionTransitionFamilies.find((family) => family.id === variant.familyId) ?? null;
|
|
97982
|
+
}
|
|
97983
|
+
function defaultSectionTransitionVariantForFamily(familyId) {
|
|
97984
|
+
const family = sectionTransitionFamilies.find((candidate) => candidate.id === familyId);
|
|
97985
|
+
if (!family) throw new Error(`Unknown section transition family: ${familyId}`);
|
|
97986
|
+
return family.variants[0];
|
|
97987
|
+
}
|
|
97988
|
+
asBoundaryOptionId("break:unknown");
|
|
97989
|
+
const pageDesignUserPinnedAppearanceChoiceSchema = z$1.object({
|
|
97990
|
+
kind: z$1.literal("user-pinned"),
|
|
97991
|
+
value: z$1.string().min(1).transform(asAppearancePresetId)
|
|
97992
|
+
}).strict();
|
|
97993
|
+
const pageDesignUserPinnedBoundaryChoiceSchema = z$1.object({
|
|
97994
|
+
kind: z$1.literal("user-pinned"),
|
|
97995
|
+
value: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
97996
|
+
}).strict();
|
|
97997
|
+
const pageDesignBoundaryTreatmentSchema = z$1.discriminatedUnion("kind", [
|
|
97998
|
+
z$1.object({ kind: z$1.literal("none") }).strict(),
|
|
97999
|
+
z$1.object({
|
|
98000
|
+
kind: z$1.literal("soft-fade"),
|
|
98001
|
+
height: z$1.enum([
|
|
98002
|
+
"compact",
|
|
98003
|
+
"medium",
|
|
98004
|
+
"large",
|
|
98005
|
+
"expansive"
|
|
98006
|
+
]),
|
|
98007
|
+
curve: z$1.enum([
|
|
98008
|
+
"soft",
|
|
98009
|
+
"spacious",
|
|
98010
|
+
"expansive"
|
|
98011
|
+
])
|
|
98012
|
+
}).strict(),
|
|
98013
|
+
z$1.object({
|
|
98014
|
+
kind: z$1.literal("wave-edge"),
|
|
98015
|
+
height: z$1.enum([
|
|
98016
|
+
"compact",
|
|
98017
|
+
"medium",
|
|
98018
|
+
"large"
|
|
98019
|
+
]),
|
|
98020
|
+
amplitude: z$1.enum([
|
|
98021
|
+
"subtle",
|
|
98022
|
+
"balanced",
|
|
98023
|
+
"bold"
|
|
98024
|
+
]),
|
|
98025
|
+
rhythm: z$1.enum(["single", "double"]),
|
|
98026
|
+
symmetry: z$1.enum([
|
|
98027
|
+
"symmetrical",
|
|
98028
|
+
"asymmetrical",
|
|
98029
|
+
"drift"
|
|
98030
|
+
])
|
|
98031
|
+
}).strict(),
|
|
98032
|
+
z$1.object({
|
|
98033
|
+
kind: z$1.literal("angle-edge"),
|
|
98034
|
+
height: z$1.enum([
|
|
98035
|
+
"compact",
|
|
98036
|
+
"medium",
|
|
98037
|
+
"large"
|
|
98038
|
+
]),
|
|
98039
|
+
slope: z$1.enum([
|
|
98040
|
+
"subtle",
|
|
98041
|
+
"balanced",
|
|
98042
|
+
"steep"
|
|
98043
|
+
]),
|
|
98044
|
+
direction: z$1.enum(["forward", "reverse"])
|
|
98045
|
+
}).strict(),
|
|
98046
|
+
z$1.object({
|
|
98047
|
+
kind: z$1.literal("legacy-unsupported"),
|
|
98048
|
+
boundaryOptionId: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
98049
|
+
}).strict()
|
|
98050
|
+
]);
|
|
98051
|
+
const pageDesignUserPinnedBoundaryTreatmentChoiceSchema = z$1.object({
|
|
98052
|
+
kind: z$1.literal("user-pinned"),
|
|
98053
|
+
value: pageDesignBoundaryTreatmentSchema
|
|
98054
|
+
}).strict();
|
|
98055
|
+
const pageDesignBlockLookPinSchema = z$1.object({
|
|
98056
|
+
blockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
98057
|
+
blockKind: z$1.string().min(1),
|
|
98058
|
+
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
98059
|
+
}).strict();
|
|
98060
|
+
const pageDesignBoundaryPinSchema = z$1.object({
|
|
98061
|
+
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
98062
|
+
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
98063
|
+
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
98064
|
+
choice: pageDesignUserPinnedBoundaryTreatmentChoiceSchema
|
|
98065
|
+
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
98066
|
+
const legacyPageDesignBoundaryPinSchema = z$1.object({
|
|
98067
|
+
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
98068
|
+
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
98069
|
+
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
98070
|
+
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
98071
|
+
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
98072
|
+
z$1.object({
|
|
98073
|
+
schemaVersion: z$1.literal(1),
|
|
98074
|
+
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
98075
|
+
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
98076
|
+
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
98077
|
+
boundaryPins: z$1.array(legacyPageDesignBoundaryPinSchema)
|
|
98078
|
+
}).strict().superRefine(validateUniquePageDesignPins);
|
|
98079
|
+
z$1.object({
|
|
98080
|
+
schemaVersion: z$1.literal(2),
|
|
98081
|
+
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
98082
|
+
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
98083
|
+
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
98084
|
+
boundaryPins: z$1.array(pageDesignBoundaryPinSchema)
|
|
98085
|
+
}).strict().superRefine(validateUniquePageDesignPins);
|
|
98086
|
+
function addDuplicateStringIssues(ctx, input) {
|
|
98087
|
+
const seen = /* @__PURE__ */ new Set();
|
|
98088
|
+
const duplicates = /* @__PURE__ */ new Set();
|
|
98089
|
+
for (const value of input.values) {
|
|
98090
|
+
if (seen.has(value)) duplicates.add(value);
|
|
98091
|
+
seen.add(value);
|
|
98092
|
+
}
|
|
98093
|
+
for (const duplicate of duplicates) ctx.addIssue({
|
|
98094
|
+
code: z$1.ZodIssueCode.custom,
|
|
98095
|
+
path: [...input.path],
|
|
98096
|
+
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
98097
|
+
});
|
|
98098
|
+
}
|
|
98099
|
+
function validateBoundaryPinIdMatchesBlocks(pin, ctx) {
|
|
98100
|
+
const expectedBoundaryId = makeBoundaryId(pin.previousBlockId, pin.nextBlockId);
|
|
98101
|
+
if (pin.boundaryId !== expectedBoundaryId) ctx.addIssue({
|
|
98102
|
+
code: z$1.ZodIssueCode.custom,
|
|
98103
|
+
path: ["boundaryId"],
|
|
98104
|
+
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
98105
|
+
});
|
|
98305
98106
|
}
|
|
98306
|
-
function
|
|
98307
|
-
|
|
98308
|
-
|
|
98309
|
-
|
|
98310
|
-
|
|
98311
|
-
|
|
98312
|
-
|
|
98313
|
-
|
|
98314
|
-
|
|
98315
|
-
|
|
98316
|
-
|
|
98317
|
-
navColor: "background",
|
|
98318
|
-
navStyle: "frosted",
|
|
98319
|
-
navWeight: "semibold",
|
|
98320
|
-
border: {
|
|
98321
|
-
style: "solid",
|
|
98322
|
-
width: "none",
|
|
98323
|
-
position: "none"
|
|
98324
|
-
},
|
|
98325
|
-
ctaTreatment: "inverted",
|
|
98326
|
-
ctaVariant: resolveHeaderCtaVariant(theme, "inverted"),
|
|
98327
|
-
ctaGap: "compact"
|
|
98328
|
-
};
|
|
98107
|
+
function validateUniquePageDesignPins(intent, ctx) {
|
|
98108
|
+
addDuplicateStringIssues(ctx, {
|
|
98109
|
+
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
98110
|
+
path: ["blockLookPins"],
|
|
98111
|
+
label: "block Look pin"
|
|
98112
|
+
});
|
|
98113
|
+
addDuplicateStringIssues(ctx, {
|
|
98114
|
+
values: intent.boundaryPins.map((pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)),
|
|
98115
|
+
path: ["boundaryPins"],
|
|
98116
|
+
label: "boundary pin"
|
|
98117
|
+
});
|
|
98329
98118
|
}
|
|
98330
|
-
function
|
|
98331
|
-
return
|
|
98332
|
-
...transparentOverlayHeader(theme),
|
|
98333
|
-
variant: "floating",
|
|
98334
|
-
positioning: "sticky",
|
|
98335
|
-
navStyle: "frosted",
|
|
98336
|
-
navContainer: {
|
|
98337
|
-
type: "glass",
|
|
98338
|
-
tint: "text",
|
|
98339
|
-
opacity: .16
|
|
98340
|
-
},
|
|
98341
|
-
container: {
|
|
98342
|
-
rounded: "2xl",
|
|
98343
|
-
border: true,
|
|
98344
|
-
shadow: true,
|
|
98345
|
-
padding: "sm",
|
|
98346
|
-
tint: "background",
|
|
98347
|
-
opacity: .12
|
|
98348
|
-
}
|
|
98349
|
-
};
|
|
98119
|
+
function boundaryKey(previousBlockId, nextBlockId) {
|
|
98120
|
+
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
98350
98121
|
}
|
|
98351
|
-
|
|
98122
|
+
//#endregion
|
|
98123
|
+
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
98124
|
+
/**
|
|
98125
|
+
* Reusable accordion "looks" for curated site styles.
|
|
98126
|
+
*
|
|
98127
|
+
* Each curated site style should declare one of these (or a bespoke variant)
|
|
98128
|
+
* via `themeOverrides.accordions` so its FAQ accordions carry the style's
|
|
98129
|
+
* personality instead of falling back to the generic generated default. The
|
|
98130
|
+
* looks vary the things that make an accordion read as designed vs. cheap:
|
|
98131
|
+
* box vs. boxless, question typography (body vs. heading font + scale), icon,
|
|
98132
|
+
* and how an open item is emphasised.
|
|
98133
|
+
*/
|
|
98134
|
+
/**
|
|
98135
|
+
* Boxless editorial list: transparent root, hairline dividers between rows,
|
|
98136
|
+
* generous spacing, heading-font questions, plus/minus marks, and an accented
|
|
98137
|
+
* tinted band on the open row. The reference "expensive" FAQ look.
|
|
98138
|
+
*/
|
|
98139
|
+
const editorialDividedAccordionSystem = {
|
|
98140
|
+
background: null,
|
|
98141
|
+
spacing: "comfortable",
|
|
98142
|
+
corners: "square",
|
|
98143
|
+
border: null,
|
|
98144
|
+
shadow: null,
|
|
98145
|
+
icon: {
|
|
98146
|
+
style: "plus-minus",
|
|
98147
|
+
position: "right",
|
|
98148
|
+
size: "md",
|
|
98149
|
+
colorToken: "primary"
|
|
98150
|
+
},
|
|
98151
|
+
trigger: {
|
|
98152
|
+
textColorToken: "text",
|
|
98153
|
+
fontWeight: "regular",
|
|
98154
|
+
fontFamily: "heading",
|
|
98155
|
+
fontScale: "lg"
|
|
98156
|
+
},
|
|
98157
|
+
hover: { textColorToken: "primary" },
|
|
98158
|
+
openState: {
|
|
98159
|
+
backgroundColorToken: "surfaceAlt",
|
|
98160
|
+
triggerColorToken: "primary",
|
|
98161
|
+
accent: {
|
|
98162
|
+
edge: "left",
|
|
98163
|
+
colorToken: "primary",
|
|
98164
|
+
thickness: "medium"
|
|
98165
|
+
}
|
|
98166
|
+
},
|
|
98167
|
+
content: { textColorToken: "neutral-700" }
|
|
98168
|
+
};
|
|
98169
|
+
/**
|
|
98170
|
+
* Quiet, airy underlined rows: transparent, spacious, large calm heading-font
|
|
98171
|
+
* questions, a small subtle chevron, and open emphasis carried only by the
|
|
98172
|
+
* question recolouring. For minimal / premium / wellness styles.
|
|
98173
|
+
*/
|
|
98174
|
+
const quietUnderlinedAccordionSystem = {
|
|
98175
|
+
background: null,
|
|
98176
|
+
spacing: "spacious",
|
|
98177
|
+
corners: "square",
|
|
98178
|
+
border: null,
|
|
98179
|
+
shadow: null,
|
|
98180
|
+
icon: {
|
|
98181
|
+
style: "chevron",
|
|
98182
|
+
position: "right",
|
|
98183
|
+
size: "sm",
|
|
98184
|
+
colorToken: "muted"
|
|
98185
|
+
},
|
|
98186
|
+
trigger: {
|
|
98187
|
+
textColorToken: "text",
|
|
98188
|
+
fontWeight: "regular",
|
|
98189
|
+
fontFamily: "heading",
|
|
98190
|
+
fontScale: "lg"
|
|
98191
|
+
},
|
|
98192
|
+
hover: { textColorToken: "primary" },
|
|
98193
|
+
openState: { triggerColorToken: "primary" },
|
|
98194
|
+
content: { textColorToken: "neutral-700" }
|
|
98195
|
+
};
|
|
98196
|
+
/**
|
|
98197
|
+
* Soft contained panel: a gentle surface box with soft corners, a hairline
|
|
98198
|
+
* border and a low shadow, heading-font questions at a moderate size, chevron,
|
|
98199
|
+
* and a tinted open state. For clean, trustworthy, appointment-led styles.
|
|
98200
|
+
*/
|
|
98201
|
+
const calmPanelAccordionSystem = {
|
|
98202
|
+
background: {
|
|
98203
|
+
type: "solid",
|
|
98204
|
+
colorToken: "surface"
|
|
98205
|
+
},
|
|
98206
|
+
spacing: "comfortable",
|
|
98207
|
+
corners: "soft",
|
|
98208
|
+
border: {
|
|
98209
|
+
widthClass: "border",
|
|
98210
|
+
colorToken: "border"
|
|
98211
|
+
},
|
|
98212
|
+
shadow: {
|
|
98213
|
+
elevation: "low",
|
|
98214
|
+
softness: "soft",
|
|
98215
|
+
position: "bottom"
|
|
98216
|
+
},
|
|
98217
|
+
icon: {
|
|
98218
|
+
style: "chevron",
|
|
98219
|
+
position: "right",
|
|
98220
|
+
size: "md",
|
|
98221
|
+
colorToken: "primary"
|
|
98222
|
+
},
|
|
98223
|
+
trigger: {
|
|
98224
|
+
textColorToken: "text",
|
|
98225
|
+
fontWeight: "medium",
|
|
98226
|
+
fontFamily: "heading",
|
|
98227
|
+
fontScale: "md"
|
|
98228
|
+
},
|
|
98229
|
+
hover: {
|
|
98230
|
+
backgroundColorToken: "primary/5",
|
|
98231
|
+
textColorToken: "primary"
|
|
98232
|
+
},
|
|
98233
|
+
openState: {
|
|
98234
|
+
backgroundColorToken: "primary/5",
|
|
98235
|
+
triggerColorToken: "primary"
|
|
98236
|
+
},
|
|
98237
|
+
content: { textColorToken: "neutral-700" }
|
|
98238
|
+
};
|
|
98239
|
+
/**
|
|
98240
|
+
* Bold bordered panel: a strong-bordered surface box, bold heading-font
|
|
98241
|
+
* questions, large plus/minus marks, and a high-emphasis tinted + accented
|
|
98242
|
+
* open state. For confident, conversion-led, high-energy styles.
|
|
98243
|
+
*/
|
|
98244
|
+
const boldBorderedAccordionSystem = {
|
|
98245
|
+
background: {
|
|
98246
|
+
type: "solid",
|
|
98247
|
+
colorToken: "surface"
|
|
98248
|
+
},
|
|
98249
|
+
spacing: "comfortable",
|
|
98250
|
+
corners: "soft",
|
|
98251
|
+
border: {
|
|
98252
|
+
widthClass: "border-2",
|
|
98253
|
+
colorToken: "border"
|
|
98254
|
+
},
|
|
98255
|
+
shadow: null,
|
|
98256
|
+
icon: {
|
|
98257
|
+
style: "plus-minus",
|
|
98258
|
+
position: "right",
|
|
98259
|
+
size: "lg",
|
|
98260
|
+
colorToken: "primary"
|
|
98261
|
+
},
|
|
98262
|
+
trigger: {
|
|
98263
|
+
textColorToken: "text",
|
|
98264
|
+
fontWeight: "bold",
|
|
98265
|
+
fontFamily: "heading",
|
|
98266
|
+
fontScale: "md"
|
|
98267
|
+
},
|
|
98268
|
+
hover: {
|
|
98269
|
+
backgroundColorToken: "primary/10",
|
|
98270
|
+
textColorToken: "primary"
|
|
98271
|
+
},
|
|
98272
|
+
openState: {
|
|
98273
|
+
backgroundColorToken: "primary/10",
|
|
98274
|
+
triggerColorToken: "primary",
|
|
98275
|
+
accent: {
|
|
98276
|
+
edge: "left",
|
|
98277
|
+
colorToken: "primary",
|
|
98278
|
+
thickness: "thick"
|
|
98279
|
+
}
|
|
98280
|
+
},
|
|
98281
|
+
content: { textColorToken: "neutral-700" }
|
|
98282
|
+
};
|
|
98283
|
+
/**
|
|
98284
|
+
* Warm inset tiles: a tinted (surfaceAlt) root with rounded corners and no
|
|
98285
|
+
* border; the open row lifts to the lighter surface colour. Friendly,
|
|
98286
|
+
* hands-on, community styles.
|
|
98287
|
+
*/
|
|
98288
|
+
const warmInsetAccordionSystem = {
|
|
98289
|
+
background: {
|
|
98290
|
+
type: "solid",
|
|
98291
|
+
colorToken: "surfaceAlt"
|
|
98292
|
+
},
|
|
98293
|
+
spacing: "comfortable",
|
|
98294
|
+
corners: "rounded",
|
|
98295
|
+
border: null,
|
|
98296
|
+
shadow: null,
|
|
98297
|
+
icon: {
|
|
98298
|
+
style: "circle-plus-minus",
|
|
98299
|
+
position: "right",
|
|
98300
|
+
size: "md",
|
|
98301
|
+
colorToken: "primary"
|
|
98302
|
+
},
|
|
98303
|
+
trigger: {
|
|
98304
|
+
textColorToken: "text",
|
|
98305
|
+
fontWeight: "semibold",
|
|
98306
|
+
fontFamily: "heading",
|
|
98307
|
+
fontScale: "md"
|
|
98308
|
+
},
|
|
98309
|
+
hover: {
|
|
98310
|
+
backgroundColorToken: "primary/5",
|
|
98311
|
+
textColorToken: "primary"
|
|
98312
|
+
},
|
|
98313
|
+
openState: {
|
|
98314
|
+
backgroundColorToken: "surface",
|
|
98315
|
+
triggerColorToken: "primary"
|
|
98316
|
+
},
|
|
98317
|
+
content: { textColorToken: "neutral-700" }
|
|
98318
|
+
};
|
|
98319
|
+
/**
|
|
98320
|
+
* Soft Earth's grounded look: boxless, plus/minus, heading-font questions on
|
|
98321
|
+
* a warm ground, with a quiet open recolour.
|
|
98322
|
+
*/
|
|
98323
|
+
const softEarthAccordionSystem = {
|
|
98324
|
+
background: {
|
|
98325
|
+
type: "solid",
|
|
98326
|
+
colorToken: "background"
|
|
98327
|
+
},
|
|
98328
|
+
spacing: "comfortable",
|
|
98329
|
+
corners: "square",
|
|
98330
|
+
border: null,
|
|
98331
|
+
shadow: null,
|
|
98332
|
+
icon: {
|
|
98333
|
+
style: "plus-minus",
|
|
98334
|
+
position: "right",
|
|
98335
|
+
size: "md",
|
|
98336
|
+
colorToken: "primary"
|
|
98337
|
+
},
|
|
98338
|
+
trigger: {
|
|
98339
|
+
textColorToken: "text",
|
|
98340
|
+
fontWeight: "medium",
|
|
98341
|
+
fontFamily: "heading",
|
|
98342
|
+
fontScale: "md"
|
|
98343
|
+
},
|
|
98344
|
+
hover: { textColorToken: "primary" },
|
|
98345
|
+
openState: { triggerColorToken: "primary" },
|
|
98346
|
+
content: { textColorToken: "neutral-700" }
|
|
98347
|
+
};
|
|
98348
|
+
//#endregion
|
|
98349
|
+
//#region ../theme-core/src/cards/siteStyleDefaults.ts
|
|
98350
|
+
/**
|
|
98351
|
+
* Reusable card systems for curated site styles.
|
|
98352
|
+
*
|
|
98353
|
+
* generateCardCss emits a `.card-{id}` class per enabled variant. The
|
|
98354
|
+
* intended convention (block-level role selection is wired in a follow-up) is
|
|
98355
|
+
* a role pair:
|
|
98356
|
+
* - `default` — the quiet, everyday card (most blocks, most of the time)
|
|
98357
|
+
* - `alternative` — the prominent "statement" card for sections that pop
|
|
98358
|
+
* A card-heavy site style may add a third; the schema allows up to three
|
|
98359
|
+
* variants. The planned fallback when a block references a missing variant is
|
|
98360
|
+
* `alternative`, then `default`.
|
|
98361
|
+
*
|
|
98362
|
+
* Keep `default` close to the generated baseline so shared consumers (event
|
|
98363
|
+
* cards, testimonials) stay stable; put the personality in `alternative`.
|
|
98364
|
+
*/
|
|
98365
|
+
/**
|
|
98366
|
+
* South West Twerk School: a quiet default surface card plus a high-impact
|
|
98367
|
+
* "statement" card that reproduces the legacy accent-quote testimonial surface
|
|
98368
|
+
* — burgundy fill, light text, a heavy gold left accent bar, and an expressive
|
|
98369
|
+
* asymmetric top-right corner.
|
|
98370
|
+
*/
|
|
98371
|
+
const southWestCardSystem = { variants: [{
|
|
98372
|
+
id: "default",
|
|
98373
|
+
name: "Default",
|
|
98374
|
+
enabled: true,
|
|
98375
|
+
priority: 1,
|
|
98376
|
+
background: {
|
|
98377
|
+
type: "solid",
|
|
98378
|
+
colorToken: "surface"
|
|
98379
|
+
},
|
|
98380
|
+
foregroundToken: "text",
|
|
98381
|
+
spacing: "comfortable",
|
|
98382
|
+
corners: "soft",
|
|
98383
|
+
shadow: {
|
|
98384
|
+
elevation: "low",
|
|
98385
|
+
softness: "soft",
|
|
98386
|
+
position: "bottom"
|
|
98387
|
+
}
|
|
98388
|
+
}, {
|
|
98389
|
+
id: "alternative",
|
|
98390
|
+
name: "Statement",
|
|
98391
|
+
enabled: true,
|
|
98392
|
+
priority: 2,
|
|
98393
|
+
background: {
|
|
98394
|
+
type: "solid",
|
|
98395
|
+
colorToken: "primary-700"
|
|
98396
|
+
},
|
|
98397
|
+
foregroundToken: "primaryForeground",
|
|
98398
|
+
spacing: "comfortable",
|
|
98399
|
+
shadow: {
|
|
98400
|
+
elevation: "none",
|
|
98401
|
+
softness: null,
|
|
98402
|
+
position: "bottom"
|
|
98403
|
+
},
|
|
98404
|
+
accentEdge: {
|
|
98405
|
+
edge: "left",
|
|
98406
|
+
colorToken: "secondary",
|
|
98407
|
+
width: "heavy"
|
|
98408
|
+
},
|
|
98409
|
+
cornerRadii: {
|
|
98410
|
+
topLeft: "square",
|
|
98411
|
+
topRight: "expressive",
|
|
98412
|
+
bottomLeft: "square",
|
|
98413
|
+
bottomRight: "square"
|
|
98414
|
+
}
|
|
98415
|
+
}] };
|
|
98416
|
+
const clarityZenCardSystem = { variants: [{
|
|
98417
|
+
id: "default",
|
|
98418
|
+
name: "Default",
|
|
98419
|
+
enabled: true,
|
|
98420
|
+
priority: 1,
|
|
98421
|
+
background: {
|
|
98422
|
+
type: "solid",
|
|
98423
|
+
colorToken: "surface"
|
|
98424
|
+
},
|
|
98425
|
+
foregroundToken: "text",
|
|
98426
|
+
spacing: "comfortable",
|
|
98427
|
+
corners: "rounded",
|
|
98428
|
+
shadow: {
|
|
98429
|
+
elevation: "low",
|
|
98430
|
+
softness: "soft",
|
|
98431
|
+
position: "bottom"
|
|
98432
|
+
}
|
|
98433
|
+
}, {
|
|
98434
|
+
id: "alternative",
|
|
98435
|
+
name: "Statement",
|
|
98436
|
+
enabled: true,
|
|
98437
|
+
priority: 2,
|
|
98438
|
+
background: {
|
|
98439
|
+
type: "solid",
|
|
98440
|
+
colorToken: "surfaceAlt"
|
|
98441
|
+
},
|
|
98442
|
+
foregroundToken: "text",
|
|
98443
|
+
spacing: "comfortable",
|
|
98444
|
+
corners: "rounded",
|
|
98445
|
+
shadow: {
|
|
98446
|
+
elevation: "medium",
|
|
98447
|
+
softness: "soft",
|
|
98448
|
+
position: "bottom"
|
|
98449
|
+
}
|
|
98450
|
+
}] };
|
|
98451
|
+
/**
|
|
98452
|
+
* Original Joy: warm, flat, generously rounded cards on the dark clay ground.
|
|
98453
|
+
* `default` is a quiet brown surface card with cream text; `alternative` is a
|
|
98454
|
+
* burnt-orange statement card for sections that should pop. Both flat (the
|
|
98455
|
+
* look's depth comes from colour, not shadow), matching the bold editorial
|
|
98456
|
+
* feel. Shared by event and testimonial cards.
|
|
98457
|
+
*/
|
|
98458
|
+
const originalJoyCardSystem = { variants: [{
|
|
98459
|
+
id: "default",
|
|
98460
|
+
name: "Default",
|
|
98461
|
+
enabled: true,
|
|
98462
|
+
priority: 1,
|
|
98463
|
+
background: {
|
|
98464
|
+
type: "solid",
|
|
98465
|
+
colorToken: "surface"
|
|
98466
|
+
},
|
|
98467
|
+
foregroundToken: "text",
|
|
98468
|
+
spacing: "comfortable",
|
|
98469
|
+
corners: "rounded",
|
|
98470
|
+
shadow: {
|
|
98471
|
+
elevation: "none",
|
|
98472
|
+
softness: null,
|
|
98473
|
+
position: "bottom"
|
|
98474
|
+
}
|
|
98475
|
+
}, {
|
|
98476
|
+
id: "alternative",
|
|
98477
|
+
name: "Statement",
|
|
98478
|
+
enabled: true,
|
|
98479
|
+
priority: 2,
|
|
98480
|
+
background: {
|
|
98481
|
+
type: "solid",
|
|
98482
|
+
colorToken: "primary"
|
|
98483
|
+
},
|
|
98484
|
+
foregroundToken: "primaryForeground",
|
|
98485
|
+
spacing: "comfortable",
|
|
98486
|
+
corners: "rounded",
|
|
98487
|
+
shadow: {
|
|
98488
|
+
elevation: "none",
|
|
98489
|
+
softness: null,
|
|
98490
|
+
position: "bottom"
|
|
98491
|
+
}
|
|
98492
|
+
}] };
|
|
98493
|
+
//#endregion
|
|
98494
|
+
//#region ../theme-core/src/site-styles/testimonialQuotePresets.ts
|
|
98495
|
+
/**
|
|
98496
|
+
* Reusable testimonial quote-mark treatments for curated site styles.
|
|
98497
|
+
*
|
|
98498
|
+
* The quote mark is brand identity the site style owns (analogous to the FAQ
|
|
98499
|
+
* accordion icon); every curated style declares one. `style` is the coarse
|
|
98500
|
+
* selector and the resolver in blocks/vars/testimonials.ts fills in the rest.
|
|
98501
|
+
*/
|
|
98502
|
+
/** Large display quotation mark in the heading font. Editorial / calm styles. */
|
|
98503
|
+
const serifDisplayQuote = { style: "serif-display" };
|
|
98504
|
+
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
98505
|
+
const accentGlyphQuote = { style: "accent-glyph" };
|
|
98506
|
+
/**
|
|
98507
|
+
* Curated library of gradient presets.
|
|
98508
|
+
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
98509
|
+
*/
|
|
98510
|
+
const GRADIENT_PRESETS = [
|
|
98352
98511
|
{
|
|
98353
|
-
id:
|
|
98354
|
-
|
|
98355
|
-
|
|
98356
|
-
|
|
98357
|
-
|
|
98358
|
-
|
|
98359
|
-
|
|
98360
|
-
|
|
98361
|
-
},
|
|
98362
|
-
|
|
98363
|
-
|
|
98364
|
-
|
|
98512
|
+
id: "primary-secondary",
|
|
98513
|
+
name: "Primary to Secondary",
|
|
98514
|
+
description: "Blend your primary and secondary brand colors",
|
|
98515
|
+
type: "linear",
|
|
98516
|
+
angle: 135,
|
|
98517
|
+
stops: [{
|
|
98518
|
+
color: "primary-500",
|
|
98519
|
+
position: 0
|
|
98520
|
+
}, {
|
|
98521
|
+
color: "secondary-500",
|
|
98522
|
+
position: 100
|
|
98523
|
+
}]
|
|
98365
98524
|
},
|
|
98366
98525
|
{
|
|
98367
|
-
id:
|
|
98368
|
-
|
|
98369
|
-
|
|
98370
|
-
|
|
98371
|
-
|
|
98372
|
-
|
|
98373
|
-
|
|
98374
|
-
|
|
98375
|
-
},
|
|
98376
|
-
|
|
98377
|
-
|
|
98378
|
-
|
|
98379
|
-
compile: classicCenteredNavHeader
|
|
98526
|
+
id: "primary-accent",
|
|
98527
|
+
name: "Primary to Accent",
|
|
98528
|
+
description: "Energetic gradient from primary to accent",
|
|
98529
|
+
type: "linear",
|
|
98530
|
+
angle: 135,
|
|
98531
|
+
stops: [{
|
|
98532
|
+
color: "primary-500",
|
|
98533
|
+
position: 0
|
|
98534
|
+
}, {
|
|
98535
|
+
color: "accent-500",
|
|
98536
|
+
position: 100
|
|
98537
|
+
}]
|
|
98380
98538
|
},
|
|
98381
98539
|
{
|
|
98382
|
-
id:
|
|
98383
|
-
|
|
98384
|
-
|
|
98385
|
-
|
|
98386
|
-
|
|
98387
|
-
|
|
98388
|
-
|
|
98389
|
-
|
|
98390
|
-
},
|
|
98391
|
-
|
|
98392
|
-
|
|
98393
|
-
|
|
98540
|
+
id: "secondary-accent",
|
|
98541
|
+
name: "Secondary to Accent",
|
|
98542
|
+
description: "Vibrant secondary to accent blend",
|
|
98543
|
+
type: "linear",
|
|
98544
|
+
angle: 135,
|
|
98545
|
+
stops: [{
|
|
98546
|
+
color: "secondary-500",
|
|
98547
|
+
position: 0
|
|
98548
|
+
}, {
|
|
98549
|
+
color: "accent-500",
|
|
98550
|
+
position: 100
|
|
98551
|
+
}]
|
|
98394
98552
|
},
|
|
98395
98553
|
{
|
|
98396
|
-
id:
|
|
98397
|
-
|
|
98398
|
-
|
|
98399
|
-
|
|
98400
|
-
|
|
98401
|
-
|
|
98402
|
-
|
|
98403
|
-
|
|
98404
|
-
},
|
|
98405
|
-
|
|
98406
|
-
|
|
98407
|
-
|
|
98408
|
-
compile: serifLineHeader
|
|
98554
|
+
id: "primary-light-dark",
|
|
98555
|
+
name: "Primary Light to Dark",
|
|
98556
|
+
description: "Subtle primary color fade",
|
|
98557
|
+
type: "linear",
|
|
98558
|
+
angle: 180,
|
|
98559
|
+
stops: [{
|
|
98560
|
+
color: "primary-500",
|
|
98561
|
+
position: 0
|
|
98562
|
+
}, {
|
|
98563
|
+
color: "primary-900",
|
|
98564
|
+
position: 100
|
|
98565
|
+
}]
|
|
98409
98566
|
},
|
|
98410
98567
|
{
|
|
98411
|
-
id:
|
|
98412
|
-
|
|
98413
|
-
|
|
98414
|
-
|
|
98415
|
-
|
|
98416
|
-
|
|
98417
|
-
|
|
98418
|
-
|
|
98419
|
-
},
|
|
98420
|
-
|
|
98421
|
-
|
|
98422
|
-
|
|
98423
|
-
compile: centeredCalmHeader
|
|
98568
|
+
id: "primary-dark-light",
|
|
98569
|
+
name: "Primary Dark to Light",
|
|
98570
|
+
description: "Reverse primary fade",
|
|
98571
|
+
type: "linear",
|
|
98572
|
+
angle: 180,
|
|
98573
|
+
stops: [{
|
|
98574
|
+
color: "primary-900",
|
|
98575
|
+
position: 0
|
|
98576
|
+
}, {
|
|
98577
|
+
color: "primary-50",
|
|
98578
|
+
position: 100
|
|
98579
|
+
}]
|
|
98424
98580
|
},
|
|
98425
98581
|
{
|
|
98426
|
-
id:
|
|
98427
|
-
|
|
98428
|
-
|
|
98429
|
-
|
|
98430
|
-
|
|
98431
|
-
|
|
98432
|
-
|
|
98433
|
-
|
|
98434
|
-
},
|
|
98435
|
-
|
|
98436
|
-
|
|
98437
|
-
|
|
98438
|
-
compile: practicalUtilityHeader
|
|
98582
|
+
id: "secondary-light-dark",
|
|
98583
|
+
name: "Secondary Light to Dark",
|
|
98584
|
+
description: "Subtle secondary color fade",
|
|
98585
|
+
type: "linear",
|
|
98586
|
+
angle: 180,
|
|
98587
|
+
stops: [{
|
|
98588
|
+
color: "secondary-500",
|
|
98589
|
+
position: 0
|
|
98590
|
+
}, {
|
|
98591
|
+
color: "secondary-900",
|
|
98592
|
+
position: 100
|
|
98593
|
+
}]
|
|
98439
98594
|
},
|
|
98440
98595
|
{
|
|
98441
|
-
id:
|
|
98442
|
-
|
|
98443
|
-
|
|
98444
|
-
|
|
98445
|
-
|
|
98446
|
-
|
|
98447
|
-
|
|
98448
|
-
|
|
98449
|
-
},
|
|
98450
|
-
|
|
98451
|
-
|
|
98452
|
-
|
|
98596
|
+
id: "accent-light-dark",
|
|
98597
|
+
name: "Accent Light to Dark",
|
|
98598
|
+
description: "Accent color depth fade",
|
|
98599
|
+
type: "linear",
|
|
98600
|
+
angle: 180,
|
|
98601
|
+
stops: [{
|
|
98602
|
+
color: "accent-500",
|
|
98603
|
+
position: 0
|
|
98604
|
+
}, {
|
|
98605
|
+
color: "accent-900",
|
|
98606
|
+
position: 100
|
|
98607
|
+
}]
|
|
98453
98608
|
},
|
|
98454
98609
|
{
|
|
98455
|
-
id:
|
|
98456
|
-
|
|
98457
|
-
|
|
98458
|
-
|
|
98459
|
-
|
|
98460
|
-
|
|
98461
|
-
|
|
98462
|
-
|
|
98463
|
-
},
|
|
98464
|
-
|
|
98465
|
-
|
|
98466
|
-
|
|
98467
|
-
compile: transparentOverlayHeader
|
|
98610
|
+
id: "background-surface",
|
|
98611
|
+
name: "Background to Surface",
|
|
98612
|
+
description: "Subtle depth using base colors",
|
|
98613
|
+
type: "linear",
|
|
98614
|
+
angle: 180,
|
|
98615
|
+
stops: [{
|
|
98616
|
+
color: "background",
|
|
98617
|
+
position: 0
|
|
98618
|
+
}, {
|
|
98619
|
+
color: "surface",
|
|
98620
|
+
position: 100
|
|
98621
|
+
}]
|
|
98468
98622
|
},
|
|
98469
98623
|
{
|
|
98470
|
-
id:
|
|
98471
|
-
|
|
98472
|
-
|
|
98473
|
-
|
|
98474
|
-
|
|
98475
|
-
|
|
98476
|
-
|
|
98477
|
-
|
|
98478
|
-
},
|
|
98479
|
-
|
|
98480
|
-
|
|
98481
|
-
|
|
98482
|
-
|
|
98624
|
+
id: "neutral-fade",
|
|
98625
|
+
name: "Neutral Gradient",
|
|
98626
|
+
description: "Elegant neutral color fade",
|
|
98627
|
+
type: "linear",
|
|
98628
|
+
angle: 180,
|
|
98629
|
+
stops: [{
|
|
98630
|
+
color: "neutral-900",
|
|
98631
|
+
position: 0
|
|
98632
|
+
}, {
|
|
98633
|
+
color: "neutral-50",
|
|
98634
|
+
position: 100
|
|
98635
|
+
}]
|
|
98636
|
+
},
|
|
98637
|
+
{
|
|
98638
|
+
id: "primary-glow",
|
|
98639
|
+
name: "Primary glow",
|
|
98640
|
+
description: "A soft top-centred glow using your primary palette",
|
|
98641
|
+
type: "radial",
|
|
98642
|
+
shape: "ellipse",
|
|
98643
|
+
position: "top center",
|
|
98644
|
+
stops: [{
|
|
98645
|
+
color: "primary-900",
|
|
98646
|
+
position: 0
|
|
98647
|
+
}, {
|
|
98648
|
+
color: "primary-950",
|
|
98649
|
+
position: 100
|
|
98650
|
+
}],
|
|
98651
|
+
foreground: {
|
|
98652
|
+
textColor: "onPrimary900",
|
|
98653
|
+
headingColor: "onPrimary900",
|
|
98654
|
+
linkColor: "onPrimary900",
|
|
98655
|
+
supportingColor: "onPrimary900"
|
|
98656
|
+
}
|
|
98657
|
+
},
|
|
98658
|
+
{
|
|
98659
|
+
id: "accent-glow",
|
|
98660
|
+
name: "Accent glow",
|
|
98661
|
+
description: "A soft top-centred glow using your accent palette",
|
|
98662
|
+
type: "radial",
|
|
98663
|
+
shape: "ellipse",
|
|
98664
|
+
position: "top center",
|
|
98665
|
+
stops: [{
|
|
98666
|
+
color: "accent-900",
|
|
98667
|
+
position: 0
|
|
98668
|
+
}, {
|
|
98669
|
+
color: "accent-950",
|
|
98670
|
+
position: 100
|
|
98671
|
+
}],
|
|
98672
|
+
foreground: {
|
|
98673
|
+
textColor: "onAccent900",
|
|
98674
|
+
headingColor: "onAccent900",
|
|
98675
|
+
linkColor: "onAccent900",
|
|
98676
|
+
supportingColor: "onAccent900"
|
|
98677
|
+
}
|
|
98678
|
+
},
|
|
98679
|
+
{
|
|
98680
|
+
id: "primary-secondary-accent",
|
|
98681
|
+
name: "Brand Trio",
|
|
98682
|
+
description: "All three brand colors in harmony",
|
|
98683
|
+
type: "linear",
|
|
98684
|
+
angle: 135,
|
|
98685
|
+
stops: [
|
|
98686
|
+
{
|
|
98687
|
+
color: "primary-500",
|
|
98688
|
+
position: 0
|
|
98689
|
+
},
|
|
98690
|
+
{
|
|
98691
|
+
color: "secondary-500",
|
|
98692
|
+
position: 50
|
|
98693
|
+
},
|
|
98694
|
+
{
|
|
98695
|
+
color: "accent-500",
|
|
98696
|
+
position: 100
|
|
98697
|
+
}
|
|
98698
|
+
]
|
|
98483
98699
|
}
|
|
98484
|
-
])
|
|
98485
|
-
|
|
98486
|
-
|
|
98487
|
-
|
|
98488
|
-
|
|
98489
|
-
|
|
98490
|
-
|
|
98491
|
-
|
|
98492
|
-
|
|
98493
|
-
|
|
98494
|
-
|
|
98495
|
-
|
|
98496
|
-
|
|
98497
|
-
return look;
|
|
98700
|
+
].map((preset) => ({
|
|
98701
|
+
...preset,
|
|
98702
|
+
id: preset.id,
|
|
98703
|
+
stops: preset.stops
|
|
98704
|
+
}));
|
|
98705
|
+
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
98706
|
+
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
98707
|
+
const gradientPresetById = Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
98708
|
+
function parseGradientPresetId(value) {
|
|
98709
|
+
if (typeof value !== "string") return null;
|
|
98710
|
+
const normalized = value.trim();
|
|
98711
|
+
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
98712
|
+
return normalized;
|
|
98498
98713
|
}
|
|
98499
|
-
function
|
|
98500
|
-
|
|
98501
|
-
logo: context.logo,
|
|
98502
|
-
accommodations: look.logoAccommodations
|
|
98503
|
-
});
|
|
98504
|
-
return [
|
|
98505
|
-
...look.maxRecommendedNavItems !== void 0 && context.navigation.itemCount > look.maxRecommendedNavItems ? ["too-many-nav-items"] : [],
|
|
98506
|
-
...brandPresentation.kind === "rejected" ? brandPresentation.reasons : [],
|
|
98507
|
-
...look.requiresProminentCta && context.cta.importance === "low" ? ["cta-treatment-unavailable"] : []
|
|
98508
|
-
];
|
|
98714
|
+
function getGradientPreset(id) {
|
|
98715
|
+
return gradientPresetById[id];
|
|
98509
98716
|
}
|
|
98510
|
-
|
|
98511
|
-
|
|
98512
|
-
|
|
98513
|
-
|
|
98514
|
-
|
|
98515
|
-
|
|
98516
|
-
|
|
98517
|
-
|
|
98518
|
-
|
|
98519
|
-
|
|
98520
|
-
|
|
98521
|
-
|
|
98522
|
-
|
|
98523
|
-
|
|
98524
|
-
|
|
98525
|
-
|
|
98526
|
-
|
|
98527
|
-
|
|
98528
|
-
|
|
98529
|
-
|
|
98530
|
-
|
|
98717
|
+
//#endregion
|
|
98718
|
+
//#region ../theme-core/src/gradients/utils.ts
|
|
98719
|
+
/**
|
|
98720
|
+
* Convert a GradientConfig to a CSS gradient string
|
|
98721
|
+
*
|
|
98722
|
+
* @param config - The gradient configuration using theme tokens
|
|
98723
|
+
* @param tokens - Map of theme color tokens to hex values
|
|
98724
|
+
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
98725
|
+
*/
|
|
98726
|
+
function gradientToCss(config, tokens) {
|
|
98727
|
+
const stops = config.stops.map((stop) => {
|
|
98728
|
+
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
98729
|
+
}).join(", ");
|
|
98730
|
+
const type = config.type ?? "linear";
|
|
98731
|
+
if (type === "radial") {
|
|
98732
|
+
const position = config.position ?? "center";
|
|
98733
|
+
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
98734
|
+
}
|
|
98735
|
+
if (type === "conic") {
|
|
98736
|
+
const position = config.position ?? "center";
|
|
98737
|
+
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
98738
|
+
}
|
|
98739
|
+
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
98531
98740
|
}
|
|
98532
98741
|
//#endregion
|
|
98533
98742
|
//#region ../theme-core/src/site-styles/footerLooks.ts
|
|
@@ -102594,38 +102803,109 @@ function canonicalHeaderSelectionInput(layoutId, styleId) {
|
|
|
102594
102803
|
}
|
|
102595
102804
|
};
|
|
102596
102805
|
}
|
|
102597
|
-
function applySiteChromeLooks({ theme, siteStyle,
|
|
102806
|
+
function applySiteChromeLooks({ theme, siteStyle, compilationPlan }) {
|
|
102807
|
+
const headerDirective = compilationPlan.header;
|
|
102808
|
+
const headerResult = compileHeaderDirective({
|
|
102809
|
+
theme,
|
|
102810
|
+
siteStyle,
|
|
102811
|
+
directive: headerDirective
|
|
102812
|
+
});
|
|
102813
|
+
const footerResult = compilationPlan.kind === "replace-site-style" ? compileReplacementFooter({
|
|
102814
|
+
theme,
|
|
102815
|
+
siteStyle,
|
|
102816
|
+
footerLookId: compilationPlan.footerLookId,
|
|
102817
|
+
headerSelection: headerResult.headerCompilation.kind === "recompiled" ? headerResult.headerCompilation.result : headerResult.headerCompilation,
|
|
102818
|
+
brandPresentation: compilationPlan.header.brandPresentation
|
|
102819
|
+
}) : compileIncrementalFooter({
|
|
102820
|
+
theme,
|
|
102821
|
+
siteStyle,
|
|
102822
|
+
directive: compilationPlan.footer
|
|
102823
|
+
});
|
|
102824
|
+
return {
|
|
102825
|
+
theme: themeSchema.parse({
|
|
102826
|
+
...theme,
|
|
102827
|
+
header: headerResult.header,
|
|
102828
|
+
footer: footerResult.footer
|
|
102829
|
+
}),
|
|
102830
|
+
headerCompilation: headerResult.headerCompilation,
|
|
102831
|
+
resolvedHeaderSelection: headerResult.resolvedHeaderSelection,
|
|
102832
|
+
footerCompilation: footerResult.footerCompilation,
|
|
102833
|
+
resolvedFooterLookId: footerResult.resolvedFooterLookId
|
|
102834
|
+
};
|
|
102835
|
+
}
|
|
102836
|
+
function compileHeaderDirective(input) {
|
|
102837
|
+
if (input.directive.kind === "preserve") return {
|
|
102838
|
+
header: input.directive.header,
|
|
102839
|
+
headerCompilation: {
|
|
102840
|
+
kind: "preserved",
|
|
102841
|
+
selection: input.directive.selection
|
|
102842
|
+
},
|
|
102843
|
+
resolvedHeaderSelection: input.directive.selection
|
|
102844
|
+
};
|
|
102845
|
+
const { headerLookId, headerLayoutId, headerStyleId } = input.directive.selection;
|
|
102598
102846
|
const canonicalHeaderSelection = canonicalHeaderSelectionInput(headerLayoutId, headerStyleId);
|
|
102599
102847
|
const headerSelection = resolveHeaderLook({
|
|
102600
|
-
theme,
|
|
102601
|
-
recommendedLookIds: headerLookId ? [headerLookId] : siteStyle.recommendedHeaderLookIds,
|
|
102602
|
-
context:
|
|
102848
|
+
theme: input.theme,
|
|
102849
|
+
recommendedLookIds: headerLookId ? [headerLookId] : input.siteStyle.recommendedHeaderLookIds,
|
|
102850
|
+
context: input.directive.context
|
|
102603
102851
|
});
|
|
102604
102852
|
const headerLayoutStyleSelection = canonicalHeaderSelection.kind === "canonical" ? resolveHeaderLayoutStyleSelection({
|
|
102605
102853
|
layoutId: canonicalHeaderSelection.selection.layoutId,
|
|
102606
102854
|
styleId: canonicalHeaderSelection.selection.styleId
|
|
102607
|
-
}).selection : resolveLegacyHeaderLookAlias(headerSelection.selectedLookId) ?? siteStyle.defaultHeaderSelection;
|
|
102608
|
-
const header = canonicalHeaderSelection.kind === "canonical" ? compileHeaderLayoutStyleSelection(theme, headerLayoutStyleSelection) : headerSelection.header;
|
|
102609
|
-
const headerWithBrandPresentation =
|
|
102855
|
+
}).selection : resolveLegacyHeaderLookAlias(headerSelection.selectedLookId) ?? input.siteStyle.defaultHeaderSelection;
|
|
102856
|
+
const header = canonicalHeaderSelection.kind === "canonical" ? compileHeaderLayoutStyleSelection(input.theme, headerLayoutStyleSelection) : headerSelection.header;
|
|
102857
|
+
const headerWithBrandPresentation = input.directive.brandPresentation.kind === "apply-logo-context" ? applyHeaderBrandPresentation(header, headerSelection.brandPresentation) : header;
|
|
102610
102858
|
const resolvedHeaderLookId = canonicalHeaderSelection.kind === "canonical" ? findLegacyHeaderLookIdForSelection(headerLayoutStyleSelection) : headerSelection.selectedLookId;
|
|
102611
|
-
|
|
102612
|
-
|
|
102613
|
-
|
|
102614
|
-
|
|
102859
|
+
return {
|
|
102860
|
+
header: headerWithBrandPresentation,
|
|
102861
|
+
headerCompilation: {
|
|
102862
|
+
kind: "recompiled",
|
|
102863
|
+
result: headerSelection
|
|
102615
102864
|
},
|
|
102616
|
-
|
|
102865
|
+
resolvedHeaderSelection: {
|
|
102866
|
+
headerLookId: resolvedHeaderLookId,
|
|
102867
|
+
headerLayoutId: headerLayoutStyleSelection.layoutId,
|
|
102868
|
+
headerStyleId: headerLayoutStyleSelection.styleId
|
|
102869
|
+
}
|
|
102870
|
+
};
|
|
102871
|
+
}
|
|
102872
|
+
function compileReplacementFooter(input) {
|
|
102873
|
+
const result = resolveFooterLook({
|
|
102874
|
+
theme: input.theme,
|
|
102875
|
+
recommendedLookIds: input.footerLookId ? [input.footerLookId] : input.siteStyle.recommendedFooterLookIds
|
|
102617
102876
|
});
|
|
102618
|
-
const footerWithBrandPresentation = footerPresentation === void 0 && headerSelectionContext?.logo ? applyFooterBrandPresentation(footerSelection.footer, headerSelection.brandPresentation) : footerSelection.footer;
|
|
102619
102877
|
return {
|
|
102620
|
-
|
|
102621
|
-
|
|
102622
|
-
|
|
102623
|
-
|
|
102624
|
-
}
|
|
102625
|
-
|
|
102626
|
-
|
|
102627
|
-
|
|
102628
|
-
|
|
102878
|
+
footer: input.brandPresentation.kind === "apply-logo-context" && "brandPresentation" in input.headerSelection ? applyFooterBrandPresentation(result.footer, input.headerSelection.brandPresentation) : result.footer,
|
|
102879
|
+
footerCompilation: {
|
|
102880
|
+
kind: "applied-look",
|
|
102881
|
+
result
|
|
102882
|
+
},
|
|
102883
|
+
resolvedFooterLookId: result.selectedLookId
|
|
102884
|
+
};
|
|
102885
|
+
}
|
|
102886
|
+
function compileIncrementalFooter(input) {
|
|
102887
|
+
if (input.directive.kind === "preserve") return {
|
|
102888
|
+
footer: input.directive.footer,
|
|
102889
|
+
footerCompilation: {
|
|
102890
|
+
kind: "preserved",
|
|
102891
|
+
footerLookId: input.directive.footerLookId
|
|
102892
|
+
},
|
|
102893
|
+
resolvedFooterLookId: input.directive.footerLookId
|
|
102894
|
+
};
|
|
102895
|
+
const result = resolveFooterLook({
|
|
102896
|
+
theme: {
|
|
102897
|
+
...input.theme,
|
|
102898
|
+
footer: input.directive.footer
|
|
102899
|
+
},
|
|
102900
|
+
recommendedLookIds: input.directive.footerLookId ? [input.directive.footerLookId] : input.siteStyle.recommendedFooterLookIds
|
|
102901
|
+
});
|
|
102902
|
+
return {
|
|
102903
|
+
footer: result.footer,
|
|
102904
|
+
footerCompilation: {
|
|
102905
|
+
kind: "applied-look",
|
|
102906
|
+
result
|
|
102907
|
+
},
|
|
102908
|
+
resolvedFooterLookId: result.selectedLookId
|
|
102629
102909
|
};
|
|
102630
102910
|
}
|
|
102631
102911
|
function applyHeaderBrandPresentation(header, presentation) {
|
|
@@ -102664,17 +102944,8 @@ function footerLogoSizeFromBrandPresentation(size) {
|
|
|
102664
102944
|
default: return size;
|
|
102665
102945
|
}
|
|
102666
102946
|
}
|
|
102667
|
-
/**
|
|
102668
|
-
* High-level, site-style-aware compiler. Resolves the user's button style and
|
|
102669
|
-
* palette selections into theme tokens. Palette authority is always supplied
|
|
102670
|
-
* as a complete resolved curated/site selection or an explicit draft.
|
|
102671
|
-
*
|
|
102672
|
-
* Returns the resolved IDs so the caller can persist auto-pick decisions, plus
|
|
102673
|
-
* any fallback warnings the UI can surface as "we changed your selection"
|
|
102674
|
-
* notices.
|
|
102675
|
-
*/
|
|
102676
102947
|
function compileSiteThemeFromSelections(input) {
|
|
102677
|
-
const { siteStyle, buttonStyleSelection, typography,
|
|
102948
|
+
const { siteStyle, buttonStyleSelection, typography, compilationPlan } = input;
|
|
102678
102949
|
const defaultButtonStyle = defaultButtonStyleSelectionForSiteStyle(siteStyle);
|
|
102679
102950
|
const requestedButtonStyle = buttonStyleSelection ?? defaultButtonStyle;
|
|
102680
102951
|
const acceptsRequestedButtonStyle = siteStyle.buttonStyleChoices.some((choice) => choice.styleId === requestedButtonStyle.styleId);
|
|
@@ -102691,30 +102962,19 @@ function compileSiteThemeFromSelections(input) {
|
|
|
102691
102962
|
resolvedPalette: input.resolvedPalette
|
|
102692
102963
|
}), siteStyle), typography ?? siteStyle.typography, siteStyle.heroTypography),
|
|
102693
102964
|
siteStyle,
|
|
102694
|
-
|
|
102695
|
-
headerLookId,
|
|
102696
|
-
headerLayoutId,
|
|
102697
|
-
headerStyleId,
|
|
102698
|
-
footerLookId,
|
|
102699
|
-
headerSelectionContext
|
|
102965
|
+
compilationPlan
|
|
102700
102966
|
});
|
|
102967
|
+
const requestedSelections = requestedSelectionsForPlan(compilationPlan);
|
|
102701
102968
|
const commonResult = {
|
|
102702
102969
|
theme: withSiteStyleMetadata(siteChromeResult.theme, siteStyle),
|
|
102703
|
-
requestedSelections
|
|
102704
|
-
headerLookId: headerLookId ?? null,
|
|
102705
|
-
headerLayoutId: headerLayoutId ?? null,
|
|
102706
|
-
headerStyleId: headerStyleId ?? null,
|
|
102707
|
-
footerLookId: footerLookId ?? null
|
|
102708
|
-
},
|
|
102970
|
+
requestedSelections,
|
|
102709
102971
|
resolvedSelections: {
|
|
102710
102972
|
buttonStyleSelection: resolvedButtonStyle,
|
|
102711
|
-
|
|
102712
|
-
|
|
102713
|
-
headerStyleId: siteChromeResult.headerLayoutStyleSelection.styleId,
|
|
102714
|
-
footerLookId: siteChromeResult.footerSelection.selectedLookId
|
|
102973
|
+
...siteChromeResult.resolvedHeaderSelection,
|
|
102974
|
+
footerLookId: siteChromeResult.resolvedFooterLookId
|
|
102715
102975
|
},
|
|
102716
|
-
|
|
102717
|
-
|
|
102976
|
+
headerCompilation: siteChromeResult.headerCompilation,
|
|
102977
|
+
footerCompilation: siteChromeResult.footerCompilation,
|
|
102718
102978
|
warnings
|
|
102719
102979
|
};
|
|
102720
102980
|
return {
|
|
@@ -102725,6 +102985,16 @@ function compileSiteThemeFromSelections(input) {
|
|
|
102725
102985
|
}
|
|
102726
102986
|
};
|
|
102727
102987
|
}
|
|
102988
|
+
function requestedSelectionsForPlan(plan) {
|
|
102989
|
+
if (plan.kind === "replace-site-style") return {
|
|
102990
|
+
...plan.header.selection,
|
|
102991
|
+
footerLookId: plan.footerLookId
|
|
102992
|
+
};
|
|
102993
|
+
return {
|
|
102994
|
+
...plan.header.selection,
|
|
102995
|
+
footerLookId: plan.footer.footerLookId
|
|
102996
|
+
};
|
|
102997
|
+
}
|
|
102728
102998
|
function siteStyleIdFromTheme(theme) {
|
|
102729
102999
|
const rawSiteStyleId = theme?.siteStyleId;
|
|
102730
103000
|
if (!rawSiteStyleId) return null;
|
|
@@ -108755,7 +109025,7 @@ const shopModeSchema = z$1.enum([
|
|
|
108755
109025
|
"cart",
|
|
108756
109026
|
"checkout"
|
|
108757
109027
|
]);
|
|
108758
|
-
const contentEntrySchema
|
|
109028
|
+
const contentEntrySchema = z$1.object({
|
|
108759
109029
|
id: z$1.string().nullable().optional(),
|
|
108760
109030
|
slug: z$1.string().nullable().optional()
|
|
108761
109031
|
}).nullable();
|
|
@@ -108789,7 +109059,7 @@ const shopSourceSchema = z$1.object({
|
|
|
108789
109059
|
checkoutButtonText: z$1.string().optional(),
|
|
108790
109060
|
clearButtonText: z$1.string().optional(),
|
|
108791
109061
|
submitButtonText: z$1.string().optional(),
|
|
108792
|
-
contentEntry: contentEntrySchema
|
|
109062
|
+
contentEntry: contentEntrySchema.optional(),
|
|
108793
109063
|
passes: z$1.array(publicPassProductSchema).nullable().optional(),
|
|
108794
109064
|
memberships: z$1.array(publicMembershipProductSchema).nullable().optional(),
|
|
108795
109065
|
products: z$1.array(publicProductSchema).nullable().optional(),
|
|
@@ -109366,130 +109636,11 @@ const checkoutBlockDefinition = {
|
|
|
109366
109636
|
runtime: checkoutBlockRuntime
|
|
109367
109637
|
};
|
|
109368
109638
|
//#endregion
|
|
109369
|
-
//#region ../blocks/src/system/blocks/event-registration.shared.ts
|
|
109370
|
-
/**
|
|
109371
|
-
* Flat occurrence context passed from `PageRenderer.$root.occurrenceContext`.
|
|
109372
|
-
* Kept in a shared module so the block definition and runtime contracts can
|
|
109373
|
-
* depend on the same schema without creating an initialization cycle.
|
|
109374
|
-
*/
|
|
109375
|
-
const occurrenceContextSchema$1 = z$1.object({
|
|
109376
|
-
id: z$1.string(),
|
|
109377
|
-
seriesId: z$1.string(),
|
|
109378
|
-
startsAt: z$1.string(),
|
|
109379
|
-
endsAt: z$1.string(),
|
|
109380
|
-
timeZone: z$1.string(),
|
|
109381
|
-
capacityOverride: z$1.number().nullable().optional(),
|
|
109382
|
-
overrides: z$1.record(z$1.string(), z$1.unknown()).nullable().optional()
|
|
109383
|
-
}).nullable();
|
|
109384
|
-
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z$1.object({
|
|
109385
|
-
kind: z$1.literal("unsupported"),
|
|
109386
|
-
reason: z$1.enum([
|
|
109387
|
-
"unsupportedSubject",
|
|
109388
|
-
"invalidEventSeriesId",
|
|
109389
|
-
"invalidEventOfferingId"
|
|
109390
|
-
])
|
|
109391
|
-
});
|
|
109392
|
-
const eventRegistrationPageSurfaceSubjectSchema = z$1.unknown().transform((value, ctx) => {
|
|
109393
|
-
const unsupported = unsupportedEventRegistrationPageSurfaceSubjectSchema.safeParse(value);
|
|
109394
|
-
if (unsupported.success) return unsupported.data;
|
|
109395
|
-
const parsed = parseEventPageSurfaceSubject(value);
|
|
109396
|
-
if (parsed.ok) return parsed.value;
|
|
109397
|
-
ctx.addIssue({
|
|
109398
|
-
code: z$1.ZodIssueCode.custom,
|
|
109399
|
-
message: `Invalid event page-surface subject (${parsed.error.kind})`
|
|
109400
|
-
});
|
|
109401
|
-
return z$1.NEVER;
|
|
109402
|
-
});
|
|
109403
|
-
function parseEventRegistrationPageSurfaceSubject(value) {
|
|
109404
|
-
return parseEventPageSurfaceSubject(value);
|
|
109405
|
-
}
|
|
109406
|
-
function normalizeEventRegistrationPageSurfaceSubject(value) {
|
|
109407
|
-
const parsed = parseEventRegistrationPageSurfaceSubject(value);
|
|
109408
|
-
if (parsed.ok) return parsed.value;
|
|
109409
|
-
switch (parsed.error.kind) {
|
|
109410
|
-
case "notObject": return null;
|
|
109411
|
-
case "unsupportedSubject": return {
|
|
109412
|
-
kind: "unsupported",
|
|
109413
|
-
reason: "unsupportedSubject"
|
|
109414
|
-
};
|
|
109415
|
-
case "invalidEventSeriesId": return {
|
|
109416
|
-
kind: "unsupported",
|
|
109417
|
-
reason: "invalidEventSeriesId"
|
|
109418
|
-
};
|
|
109419
|
-
case "invalidEventOfferingId": return {
|
|
109420
|
-
kind: "unsupported",
|
|
109421
|
-
reason: "invalidEventOfferingId"
|
|
109422
|
-
};
|
|
109423
|
-
}
|
|
109424
|
-
}
|
|
109425
|
-
function resolveEventRegistrationScope(context) {
|
|
109426
|
-
const occurrenceSeriesId = context.occurrenceContext?.seriesId;
|
|
109427
|
-
if (occurrenceSeriesId) return {
|
|
109428
|
-
kind: "occurrenceSeries",
|
|
109429
|
-
seriesId: occurrenceSeriesId
|
|
109430
|
-
};
|
|
109431
|
-
if (context.subject?.kind === "eventSeries") return {
|
|
109432
|
-
kind: "pageSurfaceSeries",
|
|
109433
|
-
seriesId: context.subject.eventSeriesId
|
|
109434
|
-
};
|
|
109435
|
-
if (context.subject?.kind === "eventOffering") return {
|
|
109436
|
-
kind: "pageSurfaceOffering",
|
|
109437
|
-
offeringId: context.subject.eventOfferingId,
|
|
109438
|
-
seriesIds: context.subject.availableEventSeriesIds
|
|
109439
|
-
};
|
|
109440
|
-
if (context.subject?.kind === "unsupported") return {
|
|
109441
|
-
kind: "unsupportedPageSurfaceSubject",
|
|
109442
|
-
reason: context.subject.reason
|
|
109443
|
-
};
|
|
109444
|
-
const entrySlug = context.contentEntry?.slug;
|
|
109445
|
-
const entryContentType = context.contentEntry?.contentTypeSlug;
|
|
109446
|
-
if (entrySlug && entryContentType && isEventContentType(entryContentType)) return {
|
|
109447
|
-
kind: "legacyEventSlug",
|
|
109448
|
-
slug: entrySlug
|
|
109449
|
-
};
|
|
109450
|
-
return { kind: "unscoped" };
|
|
109451
|
-
}
|
|
109452
|
-
function applyEventRegistrationScope(events, scope) {
|
|
109453
|
-
switch (scope.kind) {
|
|
109454
|
-
case "occurrenceSeries":
|
|
109455
|
-
case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
|
|
109456
|
-
case "pageSurfaceOffering": {
|
|
109457
|
-
const seriesIds = new Set(scope.seriesIds);
|
|
109458
|
-
return events.filter((event) => seriesIds.has(event.seriesId));
|
|
109459
|
-
}
|
|
109460
|
-
case "legacyEventSlug": return events.filter((event) => event.slug === scope.slug);
|
|
109461
|
-
case "unsupportedPageSurfaceSubject": return [];
|
|
109462
|
-
case "unscoped": return [...events];
|
|
109463
|
-
}
|
|
109464
|
-
}
|
|
109465
|
-
function resolveEventRegistrationScopedEvents(events, context) {
|
|
109466
|
-
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
109467
|
-
}
|
|
109468
|
-
//#endregion
|
|
109469
109639
|
//#region ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
|
|
109470
|
-
const contentEntrySchema$1 = z$1.object({
|
|
109471
|
-
id: z$1.string(),
|
|
109472
|
-
slug: z$1.string(),
|
|
109473
|
-
contentTypeSlug: z$1.string()
|
|
109474
|
-
});
|
|
109475
|
-
const courseEntrySubrouteContextSchema = z$1.union([z$1.object({
|
|
109476
|
-
kind: z$1.literal("course-run"),
|
|
109477
|
-
run: z$1.object({
|
|
109478
|
-
courseId: z$1.string(),
|
|
109479
|
-
seriesId: z$1.string(),
|
|
109480
|
-
runSlug: z$1.string(),
|
|
109481
|
-
runName: z$1.string().nullable()
|
|
109482
|
-
})
|
|
109483
|
-
}), z$1.object({
|
|
109484
|
-
kind: z$1.literal("event-occurrence"),
|
|
109485
|
-
occurrence: occurrenceContextSchema$1
|
|
109486
|
-
})]);
|
|
109487
109640
|
const courseRegistrationSourceSchema = z$1.object({
|
|
109488
109641
|
siteId: z$1.string().optional(),
|
|
109489
109642
|
apiBaseUrl: z$1.string().optional(),
|
|
109490
109643
|
portalToken: z$1.string().nullable().optional(),
|
|
109491
|
-
contentEntry: contentEntrySchema$1.nullable().optional(),
|
|
109492
|
-
entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
|
|
109493
109644
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
109494
109645
|
courses: z$1.array(publicCourseSchema).nullable().optional(),
|
|
109495
109646
|
className: z$1.string().nullable().optional(),
|
|
@@ -109511,8 +109662,6 @@ const courseRegistrationDisplaySchema = z$1.object({
|
|
|
109511
109662
|
summaryButtonText: z$1.string()
|
|
109512
109663
|
});
|
|
109513
109664
|
const courseRegistrationHydrationSchema = z$1.object({
|
|
109514
|
-
contentEntry: contentEntrySchema$1.nullable().optional(),
|
|
109515
|
-
entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
|
|
109516
109665
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
109517
109666
|
courses: z$1.array(publicCourseSchema).nullable().optional(),
|
|
109518
109667
|
showSessions: z$1.boolean().optional(),
|
|
@@ -109551,8 +109700,6 @@ const courseRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
109551
109700
|
buildRender: (source) => ({
|
|
109552
109701
|
display: buildCourseRegistrationDisplay(source),
|
|
109553
109702
|
hydration: {
|
|
109554
|
-
contentEntry: source.contentEntry ?? null,
|
|
109555
|
-
entrySubrouteContext: source.entrySubrouteContext ?? null,
|
|
109556
109703
|
subject: source.subject ?? null,
|
|
109557
109704
|
courses: source.courses ?? null,
|
|
109558
109705
|
showSessions: source.showSessions,
|
|
@@ -109710,11 +109857,6 @@ const courseRegistrationBlockDefinition = {
|
|
|
109710
109857
|
text({ as: "h2" }, bind$1("content.heading"), when("content.heading")),
|
|
109711
109858
|
richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description")),
|
|
109712
109859
|
courseRegistration(withApiBindings({
|
|
109713
|
-
contentEntry: { $bind: { from: "$root.contentEntry" } },
|
|
109714
|
-
entrySubrouteContext: { $bind: {
|
|
109715
|
-
from: "$root.entrySubrouteContext",
|
|
109716
|
-
fallback: null
|
|
109717
|
-
} },
|
|
109718
109860
|
subject: { $bind: {
|
|
109719
109861
|
from: "$root.subject",
|
|
109720
109862
|
fallback: null
|
|
@@ -109750,7 +109892,7 @@ const courseRegistrationBlockDefinition = {
|
|
|
109750
109892
|
runtime: courseRegistrationBlockRuntime,
|
|
109751
109893
|
dataSchemas: { courses: publicCoursesArraySchema.optional() },
|
|
109752
109894
|
dataLoaders: { courses: {
|
|
109753
|
-
endpoint: "
|
|
109895
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
109754
109896
|
params: {
|
|
109755
109897
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
109756
109898
|
limit: "50",
|
|
@@ -110001,6 +110143,22 @@ const giftingBlockDefinition = {
|
|
|
110001
110143
|
} }
|
|
110002
110144
|
};
|
|
110003
110145
|
//#endregion
|
|
110146
|
+
//#region ../blocks/src/system/blocks/event-registration.shared.ts
|
|
110147
|
+
/**
|
|
110148
|
+
* Flat occurrence context passed from `PageRenderer.$root.occurrenceContext`.
|
|
110149
|
+
* Kept in a shared module so the block definition and runtime contracts can
|
|
110150
|
+
* depend on the same schema without creating an initialization cycle.
|
|
110151
|
+
*/
|
|
110152
|
+
const occurrenceContextSchema$1 = z$1.object({
|
|
110153
|
+
id: z$1.string(),
|
|
110154
|
+
seriesId: z$1.string(),
|
|
110155
|
+
startsAt: z$1.string(),
|
|
110156
|
+
endsAt: z$1.string(),
|
|
110157
|
+
timeZone: z$1.string(),
|
|
110158
|
+
capacityOverride: z$1.number().nullable().optional(),
|
|
110159
|
+
overrides: z$1.record(z$1.string(), z$1.unknown()).nullable().optional()
|
|
110160
|
+
}).nullable();
|
|
110161
|
+
//#endregion
|
|
110004
110162
|
//#region ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
|
|
110005
110163
|
/**
|
|
110006
110164
|
* Steps that are part of the main wizard and should show the step indicator
|
|
@@ -110116,11 +110274,6 @@ const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
|
|
|
110116
110274
|
"Details",
|
|
110117
110275
|
"Payment"
|
|
110118
110276
|
];
|
|
110119
|
-
const contentEntrySchema = z$1.object({
|
|
110120
|
-
id: z$1.string(),
|
|
110121
|
-
slug: z$1.string(),
|
|
110122
|
-
contentTypeSlug: z$1.string()
|
|
110123
|
-
});
|
|
110124
110277
|
const eventRegistrationPublicEventSchema = z$1.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
|
|
110125
110278
|
const eventRegistrationSourceSchema = z$1.object({
|
|
110126
110279
|
siteId: z$1.string().optional(),
|
|
@@ -110128,7 +110281,6 @@ const eventRegistrationSourceSchema = z$1.object({
|
|
|
110128
110281
|
portalToken: z$1.string().nullable().optional(),
|
|
110129
110282
|
previewToken: z$1.string().nullable().optional(),
|
|
110130
110283
|
occurrenceContext: occurrenceContextSchema$1.optional(),
|
|
110131
|
-
contentEntry: contentEntrySchema.nullable().optional(),
|
|
110132
110284
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
110133
110285
|
events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
110134
110286
|
className: z$1.string().nullable().optional(),
|
|
@@ -110157,7 +110309,6 @@ const eventRegistrationDisplaySchema = z$1.object({
|
|
|
110157
110309
|
});
|
|
110158
110310
|
const eventRegistrationHydrationSchema = z$1.object({
|
|
110159
110311
|
occurrenceContext: occurrenceContextSchema$1.optional(),
|
|
110160
|
-
contentEntry: contentEntrySchema.nullable().optional(),
|
|
110161
110312
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
110162
110313
|
events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
110163
110314
|
maxTickets: z$1.string().optional(),
|
|
@@ -110212,8 +110363,7 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
110212
110363
|
function scopeEventRegistrationEvents(source) {
|
|
110213
110364
|
return resolveEventRegistrationScopedEvents(toRegistrationEvents(source.events ?? []), {
|
|
110214
110365
|
occurrenceContext: source.occurrenceContext,
|
|
110215
|
-
subject: source.subject
|
|
110216
|
-
contentEntry: source.contentEntry
|
|
110366
|
+
subject: source.subject
|
|
110217
110367
|
});
|
|
110218
110368
|
}
|
|
110219
110369
|
function shellLabelForRegistrationStep(step, events) {
|
|
@@ -110250,7 +110400,6 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
110250
110400
|
display: buildEventRegistrationDisplay(source),
|
|
110251
110401
|
hydration: {
|
|
110252
110402
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
110253
|
-
contentEntry: source.contentEntry ?? null,
|
|
110254
110403
|
subject: source.subject ?? null,
|
|
110255
110404
|
events: source.events ?? null,
|
|
110256
110405
|
maxTickets: source.maxTickets ?? void 0,
|
|
@@ -110417,7 +110566,6 @@ const eventRegistrationBlockDefinition = {
|
|
|
110417
110566
|
richText({ className: "rb-prose rb-max-w-none" }, bind$1("content.description"), when("content.description")),
|
|
110418
110567
|
eventRegistration(withApiBindings({
|
|
110419
110568
|
occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
|
|
110420
|
-
contentEntry: { $bind: { from: "$root.contentEntry" } },
|
|
110421
110569
|
subject: { $bind: { from: "$root.subject" } },
|
|
110422
110570
|
portalToken: { $bind: {
|
|
110423
110571
|
from: "$root.portalToken",
|
|
@@ -110472,10 +110620,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
110472
110620
|
fallback: "published"
|
|
110473
110621
|
} },
|
|
110474
110622
|
readProfile: "registration",
|
|
110475
|
-
|
|
110476
|
-
|
|
110477
|
-
fallback: ""
|
|
110478
|
-
} }
|
|
110623
|
+
seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
|
|
110624
|
+
includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
|
|
110479
110625
|
},
|
|
110480
110626
|
mode: "server"
|
|
110481
110627
|
},
|
|
@@ -110731,95 +110877,30 @@ const formBlockDefinition = {
|
|
|
110731
110877
|
};
|
|
110732
110878
|
//#endregion
|
|
110733
110879
|
//#region ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
110734
|
-
const eventBlockKindSchema$1 = z$1.enum(eventBlockKindValues);
|
|
110735
|
-
const eventSurfaceScopeSchema$1 = z$1.enum(eventSurfaceScopeValues);
|
|
110736
|
-
const eventScheduleScopeSchema$1 = z$1.enum(eventScheduleScopeValues);
|
|
110737
110880
|
const eventCalendarSourceSchema = z$1.object({
|
|
110738
|
-
|
|
110739
|
-
siteId: z$1.string(),
|
|
110740
|
-
apiBaseUrl: z$1.string().optional(),
|
|
110741
|
-
stage: previewStageSchema.optional(),
|
|
110881
|
+
...eventCollectionSourceSchemaShape,
|
|
110742
110882
|
variant: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
110743
110883
|
displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
110744
|
-
listLayout: eventLayoutSchema.optional(),
|
|
110745
|
-
listColumns: columnOptionSchema.optional(),
|
|
110746
110884
|
layout: eventLayoutSchema.optional(),
|
|
110747
|
-
columns:
|
|
110748
|
-
eventsPerPage: z$1.string().optional(),
|
|
110749
|
-
paginationMode: z$1.enum(["loadMore", "seeAllLink"]).optional(),
|
|
110750
|
-
seeAllUrl: z$1.string().optional(),
|
|
110751
|
-
loadMoreText: z$1.string().optional(),
|
|
110752
|
-
startOfWeek: weekStartSchema.optional(),
|
|
110753
|
-
calendarTabViews: calendarTabViewsSchema.optional(),
|
|
110754
|
-
defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
|
|
110755
|
-
showFilters: z$1.boolean().nullable().optional(),
|
|
110756
|
-
showCategoryFilter: filterAutoShowSchema.optional(),
|
|
110757
|
-
showVenueFilter: z$1.boolean().nullable().optional(),
|
|
110758
|
-
showStaffFilter: z$1.boolean().nullable().optional(),
|
|
110759
|
-
kind: eventBlockKindSchema$1.nullable().optional(),
|
|
110760
|
-
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
110761
|
-
filterEventPresets: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
110762
|
-
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
110763
|
-
filterCategoryIds: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
110764
|
-
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
110765
|
-
filterVenueId: z$1.string().nullable().optional(),
|
|
110766
|
-
buttonVariant: eventButtonVariantSchema.optional(),
|
|
110767
|
-
buttonText: z$1.string().optional(),
|
|
110885
|
+
columns: eventCollectionSourceSchemaShape.listColumns,
|
|
110768
110886
|
boardTitle: z$1.string().optional(),
|
|
110769
110887
|
footerNote: z$1.string().optional(),
|
|
110770
110888
|
elevated: z$1.boolean().nullable().optional(),
|
|
110771
|
-
banded: z$1.boolean().nullable().optional()
|
|
110772
|
-
showVenue: z$1.boolean().nullable().optional(),
|
|
110773
|
-
showMap: z$1.boolean().nullable().optional(),
|
|
110774
|
-
showCapacity: z$1.boolean().nullable().optional(),
|
|
110775
|
-
emptyMessage: z$1.string().optional(),
|
|
110776
|
-
className: z$1.string().optional()
|
|
110889
|
+
banded: z$1.boolean().nullable().optional()
|
|
110777
110890
|
});
|
|
110778
110891
|
const eventCalendarDisplaySchema = z$1.object({
|
|
110779
110892
|
kind: z$1.literal("event-calendar"),
|
|
110780
110893
|
displayMode: eventCalendarDisplayModeSchema,
|
|
110781
110894
|
className: z$1.string().nullable(),
|
|
110782
|
-
|
|
110783
|
-
listLayout: eventLayoutSchema,
|
|
110784
|
-
listColumns: columnOptionSchema,
|
|
110785
|
-
eventsPerPage: eventPageSizeSchema,
|
|
110786
|
-
paginationAction: eventListPaginationActionSchema,
|
|
110787
|
-
startOfWeek: weekStartSchema,
|
|
110788
|
-
calendarTabViews: calendarTabViewsSchema,
|
|
110789
|
-
defaultCalendarView: eventCalendarDefaultViewSchema,
|
|
110790
|
-
showFilters: z$1.boolean(),
|
|
110791
|
-
showCategoryFilter: filterAutoShowSchema,
|
|
110792
|
-
showVenueFilter: z$1.boolean(),
|
|
110793
|
-
showStaffFilter: z$1.boolean(),
|
|
110794
|
-
eventKind: eventBlockKindSchema$1,
|
|
110795
|
-
eventSurface: eventSurfaceScopeSchema$1,
|
|
110796
|
-
filterEventPresets: z$1.string().nullable(),
|
|
110797
|
-
scheduleScope: eventScheduleScopeSchema$1,
|
|
110798
|
-
filterCategoryIds: z$1.string().nullable(),
|
|
110799
|
-
filterStaffMemberId: z$1.string().nullable(),
|
|
110800
|
-
filterVenueId: z$1.string().nullable(),
|
|
110801
|
-
buttonVariant: eventButtonVariantSchema,
|
|
110802
|
-
buttonText: z$1.string(),
|
|
110895
|
+
...eventCollectionDisplaySchemaShape,
|
|
110803
110896
|
boardTitle: z$1.string().optional(),
|
|
110804
110897
|
footerNote: z$1.string().optional(),
|
|
110805
110898
|
seeAllUrl: z$1.string().optional(),
|
|
110806
110899
|
loadMoreText: z$1.string().optional(),
|
|
110807
110900
|
elevated: z$1.boolean(),
|
|
110808
|
-
banded: z$1.boolean()
|
|
110809
|
-
showVenue: z$1.boolean(),
|
|
110810
|
-
showMap: z$1.boolean(),
|
|
110811
|
-
showCapacity: z$1.boolean(),
|
|
110812
|
-
emptyMessage: z$1.string()
|
|
110813
|
-
});
|
|
110814
|
-
const eventCalendarHydrationSchema = z$1.object({
|
|
110815
|
-
siteId: z$1.string(),
|
|
110816
|
-
stage: previewStageSchema.optional(),
|
|
110817
|
-
prefetchedEvents: z$1.boolean(),
|
|
110818
|
-
eventKind: eventBlockKindSchema$1,
|
|
110819
|
-
eventSurface: eventSurfaceScopeSchema$1,
|
|
110820
|
-
filterEventPresets: z$1.string().nullable(),
|
|
110821
|
-
scheduleScope: eventScheduleScopeSchema$1
|
|
110901
|
+
banded: z$1.boolean()
|
|
110822
110902
|
});
|
|
110903
|
+
const eventCalendarHydrationSchema = eventCollectionHydrationSchema;
|
|
110823
110904
|
const eventCalendarRenderSchema = z$1.object({
|
|
110824
110905
|
display: eventCalendarDisplaySchema,
|
|
110825
110906
|
hydration: eventCalendarHydrationSchema
|
|
@@ -110842,66 +110923,25 @@ function normalizeOptionalText(value) {
|
|
|
110842
110923
|
function buildEventCalendarDisplay(source) {
|
|
110843
110924
|
const listLayout = source.listLayout ?? source.layout ?? "stack";
|
|
110844
110925
|
return {
|
|
110926
|
+
...buildEventCollectionDisplay({
|
|
110927
|
+
...source,
|
|
110928
|
+
listLayout,
|
|
110929
|
+
listColumns: source.listColumns ?? source.columns
|
|
110930
|
+
}),
|
|
110845
110931
|
kind: "event-calendar",
|
|
110846
110932
|
displayMode: source.variant ?? source.displayMode ?? "combined",
|
|
110847
110933
|
className: source.className ?? null,
|
|
110848
110934
|
events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
|
|
110849
|
-
listLayout,
|
|
110850
|
-
listColumns: source.listColumns ?? source.columns ?? "3",
|
|
110851
|
-
eventsPerPage: resolveEventCalendarListPageSize({ eventsPerPage: source.eventsPerPage }),
|
|
110852
|
-
paginationAction: resolveEventListPaginationAction({
|
|
110853
|
-
paginationMode: source.paginationMode,
|
|
110854
|
-
seeAllUrl: source.seeAllUrl,
|
|
110855
|
-
loadMoreText: source.loadMoreText
|
|
110856
|
-
}),
|
|
110857
|
-
startOfWeek: source.startOfWeek ?? "monday",
|
|
110858
|
-
calendarTabViews: source.calendarTabViews ?? "both",
|
|
110859
|
-
defaultCalendarView: source.defaultCalendarView ?? "month",
|
|
110860
|
-
showFilters: source.showFilters ?? true,
|
|
110861
|
-
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
110862
|
-
showVenueFilter: source.showVenueFilter ?? false,
|
|
110863
|
-
showStaffFilter: source.showStaffFilter ?? true,
|
|
110864
|
-
eventKind: normalizeEventBlockKind(source.kind),
|
|
110865
|
-
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
110866
|
-
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
110867
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
110868
|
-
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
110869
|
-
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
110870
|
-
filterVenueId: normalizeEventVenueId(source.filterVenueId),
|
|
110871
|
-
buttonVariant: source.buttonVariant ?? "primary",
|
|
110872
|
-
buttonText: source.buttonText ?? "Book",
|
|
110873
110935
|
boardTitle: normalizeOptionalText(source.boardTitle),
|
|
110874
110936
|
footerNote: normalizeOptionalText(source.footerNote),
|
|
110875
110937
|
seeAllUrl: normalizeOptionalText(source.seeAllUrl),
|
|
110876
110938
|
loadMoreText: normalizeOptionalText(source.loadMoreText),
|
|
110877
110939
|
elevated: source.elevated ?? false,
|
|
110878
|
-
banded: source.banded ?? false
|
|
110879
|
-
showVenue: source.showVenue ?? true,
|
|
110880
|
-
showMap: source.showMap ?? true,
|
|
110881
|
-
showCapacity: source.showCapacity ?? true,
|
|
110882
|
-
emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
|
|
110940
|
+
banded: source.banded ?? false
|
|
110883
110941
|
};
|
|
110884
110942
|
}
|
|
110885
110943
|
function buildEventCalendarListingDisplay(display, prefetchedEvents, className = display.className) {
|
|
110886
|
-
|
|
110887
|
-
const initialEvents = display.events.slice(0, pageSize);
|
|
110888
|
-
return {
|
|
110889
|
-
kind: "event-listing",
|
|
110890
|
-
state: initialEvents.length === 0 ? prefetchedEvents ? "empty" : "loading" : "ready",
|
|
110891
|
-
listLayout: display.listLayout,
|
|
110892
|
-
className,
|
|
110893
|
-
emptyMessage: display.emptyMessage,
|
|
110894
|
-
loadingMessage: "Loading events…",
|
|
110895
|
-
containerClass: getContainerClass(display.listLayout, display.listColumns),
|
|
110896
|
-
cardVariant: "default",
|
|
110897
|
-
buttonVariant: display.buttonVariant,
|
|
110898
|
-
buttonText: display.buttonText,
|
|
110899
|
-
showVenue: display.showVenue,
|
|
110900
|
-
showMap: display.showMap,
|
|
110901
|
-
showCapacity: display.showCapacity,
|
|
110902
|
-
orientation: getCardOrientation(display.listLayout),
|
|
110903
|
-
events: initialEvents
|
|
110904
|
-
};
|
|
110944
|
+
return buildEventCollectionListingDisplay(display, prefetchedEvents, className);
|
|
110905
110945
|
}
|
|
110906
110946
|
function buildEventCalendarListingRender(render, className = render.display.className) {
|
|
110907
110947
|
const { display, hydration } = render;
|
|
@@ -110917,7 +110957,6 @@ function buildEventCalendarListingRender(render, className = render.display.clas
|
|
|
110917
110957
|
showCategoryFilter: display.showCategoryFilter,
|
|
110918
110958
|
showVenueFilter: display.showVenueFilter,
|
|
110919
110959
|
showStaffFilter: display.showStaffFilter,
|
|
110920
|
-
eventKind: display.eventKind,
|
|
110921
110960
|
eventSurface: display.eventSurface,
|
|
110922
110961
|
filterEventPresets: display.filterEventPresets,
|
|
110923
110962
|
scheduleScope: display.scheduleScope,
|
|
@@ -110936,15 +110975,7 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
110936
110975
|
},
|
|
110937
110976
|
buildRender: (source) => ({
|
|
110938
110977
|
display: buildEventCalendarDisplay(source),
|
|
110939
|
-
hydration:
|
|
110940
|
-
siteId: source.siteId,
|
|
110941
|
-
stage: source.stage,
|
|
110942
|
-
prefetchedEvents: source.events != null,
|
|
110943
|
-
eventKind: normalizeEventBlockKind(source.kind),
|
|
110944
|
-
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
110945
|
-
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
110946
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope)
|
|
110947
|
-
}
|
|
110978
|
+
hydration: buildEventCollectionHydration(source)
|
|
110948
110979
|
})
|
|
110949
110980
|
});
|
|
110950
110981
|
function buildEventCalendarInteractiveIslandProps(props) {
|
|
@@ -110963,7 +110994,6 @@ function buildEventCalendarInteractiveIslandProps(props) {
|
|
|
110963
110994
|
//#region ../blocks/src/system/blocks/events/event-calendar.ts
|
|
110964
110995
|
function normalizeEventCalendarContent(content) {
|
|
110965
110996
|
const record = typeof content === "object" && content !== null ? content : {};
|
|
110966
|
-
const kind = normalizeEventBlockKind(record.kind);
|
|
110967
110997
|
const variant = normalizeEventCalendarDisplayMode(record.variant) ?? normalizeEventCalendarDisplayMode(record.displayMode);
|
|
110968
110998
|
return {
|
|
110969
110999
|
...record,
|
|
@@ -110971,11 +111001,10 @@ function normalizeEventCalendarContent(content) {
|
|
|
110971
111001
|
displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
|
|
110972
111002
|
listLayout: normalizeEventCalendarListLayout(record.listLayout),
|
|
110973
111003
|
defaultCalendarView: normalizeEventCalendarDefaultView(record.defaultCalendarView),
|
|
110974
|
-
kind,
|
|
110975
111004
|
eventSurface: normalizeEventSurfaceScope(record.eventSurface),
|
|
110976
111005
|
filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
|
|
110977
111006
|
scheduleScope: normalizeEventScheduleScope(record.scheduleScope),
|
|
110978
|
-
filterCategoryIds:
|
|
111007
|
+
filterCategoryIds: normalizeEventCategoryIds(record.filterCategoryIds),
|
|
110979
111008
|
filterStaffMemberId: normalizeEventStaffMemberId(record.filterStaffMemberId),
|
|
110980
111009
|
filterVenueId: normalizeEventVenueId(record.filterVenueId)
|
|
110981
111010
|
};
|
|
@@ -111069,10 +111098,6 @@ const eventCalendarLayout = [styledSection({
|
|
|
111069
111098
|
from: "content.showCapacity",
|
|
111070
111099
|
fallback: true
|
|
111071
111100
|
} },
|
|
111072
|
-
kind: { $bind: {
|
|
111073
|
-
from: "content.kind",
|
|
111074
|
-
fallback: "all"
|
|
111075
|
-
} },
|
|
111076
111101
|
eventSurface: { $bind: {
|
|
111077
111102
|
from: "content.eventSurface",
|
|
111078
111103
|
fallback: "all"
|
|
@@ -111390,30 +111415,6 @@ const eventCalendarAdditionalFields = [
|
|
|
111390
111415
|
}] }] }
|
|
111391
111416
|
}
|
|
111392
111417
|
},
|
|
111393
|
-
{
|
|
111394
|
-
id: "kind",
|
|
111395
|
-
type: "select",
|
|
111396
|
-
label: "Show",
|
|
111397
|
-
description: "Restrict this block to all offerings, courses, or events",
|
|
111398
|
-
required: false,
|
|
111399
|
-
multiple: false,
|
|
111400
|
-
defaultValue: "all",
|
|
111401
|
-
options: [
|
|
111402
|
-
{
|
|
111403
|
-
value: "all",
|
|
111404
|
-
label: "All offerings"
|
|
111405
|
-
},
|
|
111406
|
-
{
|
|
111407
|
-
value: "courses",
|
|
111408
|
-
label: "Courses only"
|
|
111409
|
-
},
|
|
111410
|
-
{
|
|
111411
|
-
value: "events",
|
|
111412
|
-
label: "Events only"
|
|
111413
|
-
}
|
|
111414
|
-
],
|
|
111415
|
-
ui: { intent: "behavior" }
|
|
111416
|
-
},
|
|
111417
111418
|
{
|
|
111418
111419
|
id: "showFilters",
|
|
111419
111420
|
type: "boolean",
|
|
@@ -111645,6 +111646,10 @@ const eventCalendarAdditionalFields = [
|
|
|
111645
111646
|
multiple: true,
|
|
111646
111647
|
defaultValue: [],
|
|
111647
111648
|
options: [
|
|
111649
|
+
{
|
|
111650
|
+
value: "course",
|
|
111651
|
+
label: "Courses"
|
|
111652
|
+
},
|
|
111648
111653
|
{
|
|
111649
111654
|
value: "class",
|
|
111650
111655
|
label: "Classes"
|
|
@@ -111710,11 +111715,7 @@ const eventCalendarAdditionalFields = [
|
|
|
111710
111715
|
optionSource: "eventCategories",
|
|
111711
111716
|
ui: {
|
|
111712
111717
|
intent: "behavior",
|
|
111713
|
-
searchThreshold: 8
|
|
111714
|
-
visibleWhen: {
|
|
111715
|
-
field: "kind",
|
|
111716
|
-
notEquals: "courses"
|
|
111717
|
-
}
|
|
111718
|
+
searchThreshold: 8
|
|
111718
111719
|
}
|
|
111719
111720
|
}),
|
|
111720
111721
|
createSiteOptionSelectField({
|
|
@@ -111875,7 +111876,6 @@ const eventCalendarBlockDefinition = {
|
|
|
111875
111876
|
from: "content.variant",
|
|
111876
111877
|
fallback: "listing-card"
|
|
111877
111878
|
} },
|
|
111878
|
-
kind: { $bind: { from: "content.kind" } },
|
|
111879
111879
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
111880
111880
|
eventPresets: { $bind: {
|
|
111881
111881
|
from: "content.filterEventPresets",
|
|
@@ -111895,7 +111895,6 @@ const eventCalendarBlockDefinition = {
|
|
|
111895
111895
|
const legacyEventCardVariantSchema = z$1.enum(["variant1", "variant2"]);
|
|
111896
111896
|
const eventCardVariantInputSchema = z$1.union([cardVariantRoleSchema, legacyEventCardVariantSchema]);
|
|
111897
111897
|
const cardOrientationSchema = z$1.enum(["vertical", "horizontal"]);
|
|
111898
|
-
const eventBlockKindSchema = z$1.enum(eventBlockKindValues);
|
|
111899
111898
|
const eventSurfaceScopeSchema = z$1.enum(eventSurfaceScopeValues);
|
|
111900
111899
|
const eventScheduleScopeSchema = z$1.enum(eventScheduleScopeValues);
|
|
111901
111900
|
const eventListingSourceSchema = z$1.object({
|
|
@@ -111917,17 +111916,7 @@ const eventListingSourceSchema = z$1.object({
|
|
|
111917
111916
|
showCapacity: z$1.boolean().optional(),
|
|
111918
111917
|
emptyMessage: z$1.string().optional(),
|
|
111919
111918
|
className: z$1.string().optional(),
|
|
111920
|
-
|
|
111921
|
-
showCategoryFilter: filterAutoShowSchema.optional(),
|
|
111922
|
-
showVenueFilter: z$1.boolean().nullable().optional(),
|
|
111923
|
-
showStaffFilter: z$1.boolean().nullable().optional(),
|
|
111924
|
-
eventKind: eventBlockKindSchema.nullable().optional(),
|
|
111925
|
-
eventSurface: eventSurfaceScopeSchema.nullable().optional(),
|
|
111926
|
-
filterEventPresets: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
111927
|
-
scheduleScope: eventScheduleScopeSchema.nullable().optional(),
|
|
111928
|
-
filterCategoryIds: z$1.string().nullable().optional(),
|
|
111929
|
-
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
111930
|
-
filterVenueId: z$1.string().nullable().optional()
|
|
111919
|
+
...eventCollectionFilterSourceSchemaShape
|
|
111931
111920
|
});
|
|
111932
111921
|
const eventListingDisplaySchema = z$1.object({
|
|
111933
111922
|
kind: z$1.literal("event-listing"),
|
|
@@ -111959,7 +111948,6 @@ const eventListingHydrationSchema = z$1.object({
|
|
|
111959
111948
|
showCategoryFilter: filterAutoShowSchema,
|
|
111960
111949
|
showVenueFilter: z$1.boolean(),
|
|
111961
111950
|
showStaffFilter: z$1.boolean(),
|
|
111962
|
-
eventKind: eventBlockKindSchema,
|
|
111963
111951
|
eventSurface: eventSurfaceScopeSchema,
|
|
111964
111952
|
filterEventPresets: z$1.string().nullable(),
|
|
111965
111953
|
scheduleScope: eventScheduleScopeSchema,
|
|
@@ -112020,7 +112008,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
112020
112008
|
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
112021
112009
|
showVenueFilter: source.showVenueFilter ?? false,
|
|
112022
112010
|
showStaffFilter: source.showStaffFilter ?? false,
|
|
112023
|
-
eventKind: normalizeEventBlockKind(source.eventKind),
|
|
112024
112011
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
112025
112012
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
112026
112013
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
@@ -112156,30 +112143,6 @@ const eventListingBlockDefinition = {
|
|
|
112156
112143
|
intent: "display"
|
|
112157
112144
|
}
|
|
112158
112145
|
})),
|
|
112159
|
-
{
|
|
112160
|
-
id: "kind",
|
|
112161
|
-
type: "select",
|
|
112162
|
-
label: "Show",
|
|
112163
|
-
description: "Choose whether this list shows courses, events, or both",
|
|
112164
|
-
required: false,
|
|
112165
|
-
multiple: false,
|
|
112166
|
-
defaultValue: "all",
|
|
112167
|
-
options: [
|
|
112168
|
-
{
|
|
112169
|
-
value: "all",
|
|
112170
|
-
label: "Courses and events"
|
|
112171
|
-
},
|
|
112172
|
-
{
|
|
112173
|
-
value: "courses",
|
|
112174
|
-
label: "Courses only"
|
|
112175
|
-
},
|
|
112176
|
-
{
|
|
112177
|
-
value: "events",
|
|
112178
|
-
label: "Events only"
|
|
112179
|
-
}
|
|
112180
|
-
],
|
|
112181
|
-
ui: { intent: "behavior" }
|
|
112182
|
-
},
|
|
112183
112146
|
{
|
|
112184
112147
|
id: "eventSurface",
|
|
112185
112148
|
type: "select",
|
|
@@ -112217,6 +112180,10 @@ const eventListingBlockDefinition = {
|
|
|
112217
112180
|
multiple: true,
|
|
112218
112181
|
defaultValue: [],
|
|
112219
112182
|
options: [
|
|
112183
|
+
{
|
|
112184
|
+
value: "course",
|
|
112185
|
+
label: "Courses"
|
|
112186
|
+
},
|
|
112220
112187
|
{
|
|
112221
112188
|
value: "class",
|
|
112222
112189
|
label: "Classes"
|
|
@@ -112368,10 +112335,6 @@ const eventListingBlockDefinition = {
|
|
|
112368
112335
|
showVenue: { $bind: { from: "content.showVenue" } },
|
|
112369
112336
|
showMap: { $bind: { from: "content.showMap" } },
|
|
112370
112337
|
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
112371
|
-
eventKind: { $bind: {
|
|
112372
|
-
from: "content.kind",
|
|
112373
|
-
fallback: "all"
|
|
112374
|
-
} },
|
|
112375
112338
|
eventSurface: { $bind: {
|
|
112376
112339
|
from: "content.eventSurface",
|
|
112377
112340
|
fallback: "all"
|
|
@@ -112422,7 +112385,6 @@ const eventListingBlockDefinition = {
|
|
|
112422
112385
|
from: "content.layout",
|
|
112423
112386
|
fallback: "listing-card"
|
|
112424
112387
|
} },
|
|
112425
|
-
kind: { $bind: { from: "content.kind" } },
|
|
112426
112388
|
eventSurface: { $bind: { from: "content.eventSurface" } },
|
|
112427
112389
|
eventPresets: { $bind: {
|
|
112428
112390
|
from: "content.filterEventPresets",
|
|
@@ -119868,8 +119830,8 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
119868
119830
|
from: "$root.occurrenceContext",
|
|
119869
119831
|
fallback: null
|
|
119870
119832
|
} },
|
|
119871
|
-
|
|
119872
|
-
from: "$root.
|
|
119833
|
+
subject: { $bind: {
|
|
119834
|
+
from: "$root.subject",
|
|
119873
119835
|
fallback: null
|
|
119874
119836
|
} },
|
|
119875
119837
|
events: { $bind: { from: "data.eventDetailsData.events" } },
|
|
@@ -119945,7 +119907,6 @@ const eventDetailsBlockDefinition = {
|
|
|
119945
119907
|
fallback: "published"
|
|
119946
119908
|
} },
|
|
119947
119909
|
limit: "25",
|
|
119948
|
-
entryId: { $bind: { from: "$root.contentEntry._entryId" } },
|
|
119949
119910
|
seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
|
|
119950
119911
|
includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
|
|
119951
119912
|
},
|
|
@@ -119990,15 +119951,6 @@ const courseDetailsBlockDefinition = {
|
|
|
119990
119951
|
multiline: false,
|
|
119991
119952
|
defaultValue: "Course details"
|
|
119992
119953
|
},
|
|
119993
|
-
{
|
|
119994
|
-
id: "courseSlug",
|
|
119995
|
-
type: "text",
|
|
119996
|
-
label: "Course slug (optional)",
|
|
119997
|
-
description: "Select a course by slug when not used on a course template route",
|
|
119998
|
-
required: false,
|
|
119999
|
-
multiline: false,
|
|
120000
|
-
ui: { intent: "behavior" }
|
|
120001
|
-
},
|
|
120002
119954
|
{
|
|
120003
119955
|
id: "showTitle",
|
|
120004
119956
|
type: "boolean",
|
|
@@ -120097,23 +120049,11 @@ const courseDetailsBlockDefinition = {
|
|
|
120097
120049
|
baseClass: "",
|
|
120098
120050
|
spacing: "spacious",
|
|
120099
120051
|
children: sectionContainer([text({ as: "h2" }, bind$1("content.heading"), when("content.heading")), el("course-details", {
|
|
120100
|
-
contentEntry: { $bind: {
|
|
120101
|
-
from: "$root.contentEntry",
|
|
120102
|
-
fallback: null
|
|
120103
|
-
} },
|
|
120104
|
-
entrySubrouteContext: { $bind: {
|
|
120105
|
-
from: "$root.entrySubrouteContext",
|
|
120106
|
-
fallback: null
|
|
120107
|
-
} },
|
|
120108
120052
|
subject: { $bind: {
|
|
120109
120053
|
from: "$root.subject",
|
|
120110
120054
|
fallback: null
|
|
120111
120055
|
} },
|
|
120112
120056
|
courses: { $bind: { from: "data.courses" } },
|
|
120113
|
-
courseSlug: { $bind: {
|
|
120114
|
-
from: "content.courseSlug",
|
|
120115
|
-
fallback: null
|
|
120116
|
-
} },
|
|
120117
120057
|
showTitle: { $bind: {
|
|
120118
120058
|
from: "content.showTitle",
|
|
120119
120059
|
fallback: false
|
|
@@ -120155,7 +120095,7 @@ const courseDetailsBlockDefinition = {
|
|
|
120155
120095
|
}),
|
|
120156
120096
|
dataSchemas: { courses: publicCoursesArraySchema.optional() },
|
|
120157
120097
|
dataLoaders: { courses: {
|
|
120158
|
-
endpoint: "
|
|
120098
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
120159
120099
|
params: {
|
|
120160
120100
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
120161
120101
|
limit: "50",
|
|
@@ -120773,7 +120713,6 @@ const recurringScheduleBlockDefinition = {
|
|
|
120773
120713
|
} },
|
|
120774
120714
|
detailLevel: "listing",
|
|
120775
120715
|
readProfile: "compact-list",
|
|
120776
|
-
kind: "events",
|
|
120777
120716
|
eventSurface: "custom",
|
|
120778
120717
|
eventPresets: "class",
|
|
120779
120718
|
scheduleScope: "any"
|
|
@@ -121091,7 +121030,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
121091
121030
|
mode: "server"
|
|
121092
121031
|
},
|
|
121093
121032
|
courses: {
|
|
121094
|
-
endpoint: "
|
|
121033
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
121095
121034
|
params: {
|
|
121096
121035
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
121097
121036
|
limit: { $bind: {
|
|
@@ -121122,7 +121061,6 @@ function eventPresetLoader(preset) {
|
|
|
121122
121061
|
} },
|
|
121123
121062
|
detailLevel: "listing",
|
|
121124
121063
|
readProfile: "listing-card",
|
|
121125
|
-
kind: "events",
|
|
121126
121064
|
eventPresets: preset
|
|
121127
121065
|
},
|
|
121128
121066
|
mode: "server"
|
|
@@ -141185,7 +141123,7 @@ const SUPPORTED_LOADER_ENDPOINTS = [
|
|
|
141185
141123
|
"listPublicEvents",
|
|
141186
141124
|
"listPublicRecurringSchedule",
|
|
141187
141125
|
"getPublicEventDetails",
|
|
141188
|
-
"
|
|
141126
|
+
"listPublicWholeSeriesOfferings",
|
|
141189
141127
|
"listPublicRouteCandidates",
|
|
141190
141128
|
"listPublicTeamMembers",
|
|
141191
141129
|
"listPublicProducts",
|
|
@@ -146014,8 +145952,94 @@ const EVENT_ATTENDEE_REFUND_INVALID_CODES = ["manual_booking_not_refundable", ..
|
|
|
146014
145952
|
[...EVENT_ATTENDEE_REFUND_INVALID_CODES, ...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
|
|
146015
145953
|
[...STANDARD_LINE_ITEM_REFUND_INVALID_CODES, ...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
|
|
146016
145954
|
//#endregion
|
|
146017
|
-
//#region ../api/src/
|
|
146018
|
-
const
|
|
145955
|
+
//#region ../api/src/bookingVerticalPreset.ts
|
|
145956
|
+
const BOOKING_ENGINE_BY_BEHAVIOUR = {
|
|
145957
|
+
class: "event_series",
|
|
145958
|
+
workshop: "event_series",
|
|
145959
|
+
course: "event_series",
|
|
145960
|
+
retreat: "event_series",
|
|
145961
|
+
performance: "event_series",
|
|
145962
|
+
appointment: "appointment_service"
|
|
145963
|
+
};
|
|
145964
|
+
function verticalBookingPreset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
|
|
145965
|
+
return {
|
|
145966
|
+
id,
|
|
145967
|
+
verticalId,
|
|
145968
|
+
canonicalBehaviour,
|
|
145969
|
+
engine: BOOKING_ENGINE_BY_BEHAVIOUR[canonicalBehaviour],
|
|
145970
|
+
availability,
|
|
145971
|
+
label,
|
|
145972
|
+
pluralLabel,
|
|
145973
|
+
description
|
|
145974
|
+
};
|
|
145975
|
+
}
|
|
145976
|
+
//#endregion
|
|
145977
|
+
//#region ../api/src/bookingVerticalCatalog.ts
|
|
145978
|
+
const VERTICAL_BOOKING_PRESETS = [
|
|
145979
|
+
verticalBookingPreset("yoga_wellness.classes", "yoga_wellness", "class", "Class", "Classes", "Regular scheduled classes and group sessions."),
|
|
145980
|
+
verticalBookingPreset("yoga_wellness.workshops", "yoga_wellness", "workshop", "Workshop", "Workshops", "One-off workshops, day retreats, or special sessions."),
|
|
145981
|
+
verticalBookingPreset("yoga_wellness.courses", "yoga_wellness", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups."),
|
|
145982
|
+
verticalBookingPreset("yoga_wellness.retreats", "yoga_wellness", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats and immersive experiences."),
|
|
145983
|
+
verticalBookingPreset("yoga_wellness.appointments", "yoga_wellness", "appointment", "Appointment", "Appointments", "Private sessions, consultations, or one-to-one support."),
|
|
145984
|
+
verticalBookingPreset("fitness_pt.group_training", "fitness_pt", "class", "Group training", "Group training", "Regular scheduled classes and group sessions."),
|
|
145985
|
+
verticalBookingPreset("fitness_pt.personal_training", "fitness_pt", "appointment", "Personal training", "Personal training", "One-to-one sessions booked from your availability."),
|
|
145986
|
+
verticalBookingPreset("fitness_pt.programmes", "fitness_pt", "course", "Programme", "Programmes", "Multi-session programmes like bootcamps or courses."),
|
|
145987
|
+
verticalBookingPreset("fitness_pt.workshops", "fitness_pt", "workshop", "Workshop", "Workshops", "One-off workshops, events, or special sessions."),
|
|
145988
|
+
verticalBookingPreset("fitness_pt.retreats", "fitness_pt", "retreat", "Retreat", "Retreats", "Multi-day or residential fitness experiences."),
|
|
145989
|
+
verticalBookingPreset("dance_school.classes", "dance_school", "class", "Class", "Classes", "Regular group classes and weekly sessions."),
|
|
145990
|
+
verticalBookingPreset("dance_school.terms", "dance_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
|
|
145991
|
+
verticalBookingPreset("dance_school.courses", "dance_school", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups.", "settings"),
|
|
145992
|
+
verticalBookingPreset("dance_school.workshops", "dance_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
145993
|
+
verticalBookingPreset("dance_school.private_lessons", "dance_school", "appointment", "Private lesson", "Private lessons", "One-to-one lessons or coaching sessions."),
|
|
145994
|
+
verticalBookingPreset("dance_school.shows", "dance_school", "performance", "Show", "Shows", "Ticketed performances, showcases, and recitals."),
|
|
145995
|
+
verticalBookingPreset("physiotherapy_physical_health.appointments", "physiotherapy_physical_health", "appointment", "Appointment", "Appointments", "Assessments, treatments, follow-ups, and rehabilitation sessions."),
|
|
145996
|
+
verticalBookingPreset("physiotherapy_physical_health.rehab_classes", "physiotherapy_physical_health", "class", "Rehab class", "Rehab classes", "Regular rehabilitation, mobility, strength, or recovery classes."),
|
|
145997
|
+
verticalBookingPreset("physiotherapy_physical_health.workshops", "physiotherapy_physical_health", "workshop", "Workshop", "Workshops", "One-off workshops, talks, or practical group sessions."),
|
|
145998
|
+
verticalBookingPreset("massage_bodywork.treatments", "massage_bodywork", "appointment", "Treatment", "Treatments", "Massage treatments, bodywork sessions, and one-to-one appointments."),
|
|
145999
|
+
verticalBookingPreset("massage_bodywork.group_sessions", "massage_bodywork", "class", "Group session", "Group sessions", "Regular bodywork, somatic movement, or self-massage sessions."),
|
|
146000
|
+
verticalBookingPreset("massage_bodywork.workshops", "massage_bodywork", "workshop", "Workshop", "Workshops", "One-off bodywork, self-massage, or somatic practice workshops."),
|
|
146001
|
+
verticalBookingPreset("therapist_practitioner.appointments", "therapist_practitioner", "appointment", "Appointment", "Appointments", "Sessions, consultations, treatments, or assessments."),
|
|
146002
|
+
verticalBookingPreset("therapist_practitioner.workshops", "therapist_practitioner", "workshop", "Workshop", "Workshops", "One-off group workshops, talks, or wellbeing sessions."),
|
|
146003
|
+
verticalBookingPreset("therapist_practitioner.retreats", "therapist_practitioner", "retreat", "Retreat", "Retreats", "Multi-day retreats or immersive group experiences."),
|
|
146004
|
+
verticalBookingPreset("beauty_spa.appointments", "beauty_spa", "appointment", "Appointment", "Appointments", "Treatments, consultations, services, and sessions."),
|
|
146005
|
+
verticalBookingPreset("beauty_spa.workshops", "beauty_spa", "workshop", "Workshop", "Workshops", "Skincare workshops, makeup lessons, demos, or group events."),
|
|
146006
|
+
verticalBookingPreset("consultant_coach.appointments", "consultant_coach", "appointment", "Appointment", "Appointments", "One-to-one calls, consultations, reviews, or coaching sessions."),
|
|
146007
|
+
verticalBookingPreset("consultant_coach.workshops", "consultant_coach", "workshop", "Workshop", "Workshops", "One-off group sessions, webinars, or strategy days."),
|
|
146008
|
+
verticalBookingPreset("consultant_coach.courses", "consultant_coach", "course", "Course", "Courses", "Fixed-schedule cohorts or multi-session group programmes."),
|
|
146009
|
+
verticalBookingPreset("consultant_coach.retreats", "consultant_coach", "retreat", "Retreat", "Retreats", "Multi-day coaching retreats or immersive experiences."),
|
|
146010
|
+
verticalBookingPreset("training_provider.courses", "training_provider", "course", "Course", "Courses", "Fixed-schedule courses, cohorts, and multi-session training."),
|
|
146011
|
+
verticalBookingPreset("training_provider.workshops", "training_provider", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, and short training sessions."),
|
|
146012
|
+
verticalBookingPreset("training_provider.appointments", "training_provider", "appointment", "Appointment", "Appointments", "Consultations, assessments, mentoring, or office hours."),
|
|
146013
|
+
verticalBookingPreset("training_provider.classes", "training_provider", "class", "Class", "Classes", "Regular classes, sessions, or groups.", "settings"),
|
|
146014
|
+
verticalBookingPreset("training_provider.residentials", "training_provider", "retreat", "Residential", "Residentials", "Residential courses or multi-day training experiences.", "settings"),
|
|
146015
|
+
verticalBookingPreset("retreat_centre.retreats", "retreat_centre", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats with richer booking needs."),
|
|
146016
|
+
verticalBookingPreset("retreat_centre.workshops", "retreat_centre", "workshop", "Workshop", "Workshops", "One-day retreats, ceremonies, workshops, or special events."),
|
|
146017
|
+
verticalBookingPreset("retreat_centre.classes", "retreat_centre", "class", "Class", "Classes", "Regular sessions like guided meditations or group practices."),
|
|
146018
|
+
verticalBookingPreset("retreat_centre.courses", "retreat_centre", "course", "Course", "Courses", "Fixed-schedule programmes or multi-session experiences."),
|
|
146019
|
+
verticalBookingPreset("retreat_centre.appointments", "retreat_centre", "appointment", "Appointment", "Appointments", "Private sessions, therapies, consultations, or add-ons."),
|
|
146020
|
+
verticalBookingPreset("music_school.lessons", "music_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, consultations, or coaching sessions."),
|
|
146021
|
+
verticalBookingPreset("music_school.classes", "music_school", "class", "Class", "Classes", "Regular group classes, ensembles, or recurring sessions."),
|
|
146022
|
+
verticalBookingPreset("music_school.terms", "music_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date group courses."),
|
|
146023
|
+
verticalBookingPreset("music_school.workshops", "music_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
146024
|
+
verticalBookingPreset("music_school.performances", "music_school", "performance", "Performance", "Performances", "Concerts, recitals, showcases, or ticketed performances."),
|
|
146025
|
+
verticalBookingPreset("voice_singing.lessons", "voice_singing", "appointment", "Voice session", "Voice sessions", "One-to-one singing lessons, voice coaching, or private practice sessions."),
|
|
146026
|
+
verticalBookingPreset("voice_singing.classes", "voice_singing", "class", "Ongoing weekly session", "Ongoing weekly sessions", "Regular choirs, voice circles, community singing, or group practice."),
|
|
146027
|
+
verticalBookingPreset("voice_singing.terms", "voice_singing", "course", "Singing term", "Singing terms", "Multi-week choir terms, voice courses, or fixed-date group programmes."),
|
|
146028
|
+
verticalBookingPreset("voice_singing.workshops", "voice_singing", "workshop", "Workshop", "Workshops", "One-off singing workshops, voice journeys, or devotional singing sessions."),
|
|
146029
|
+
verticalBookingPreset("voice_singing.performances", "voice_singing", "performance", "Performance", "Performances", "Choir concerts, sharing events, recitals, or community performances."),
|
|
146030
|
+
verticalBookingPreset("performing_arts_school.classes", "performing_arts_school", "class", "Class", "Classes", "Regular group classes, rehearsals, or weekly sessions."),
|
|
146031
|
+
verticalBookingPreset("performing_arts_school.terms", "performing_arts_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
|
|
146032
|
+
verticalBookingPreset("performing_arts_school.workshops", "performing_arts_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
146033
|
+
verticalBookingPreset("performing_arts_school.performances", "performing_arts_school", "performance", "Performance", "Performances", "Shows, showcases, productions, or ticketed performances."),
|
|
146034
|
+
verticalBookingPreset("performing_arts_school.lessons", "performing_arts_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, coaching, or audition prep."),
|
|
146035
|
+
verticalBookingPreset("community_wellbeing.classes", "community_wellbeing", "class", "Class", "Classes", "Regular groups, sessions, practices, or weekly activities."),
|
|
146036
|
+
verticalBookingPreset("community_wellbeing.workshops", "community_wellbeing", "workshop", "Workshop", "Workshops", "One-off workshops, talks, events, or gatherings."),
|
|
146037
|
+
verticalBookingPreset("community_wellbeing.courses", "community_wellbeing", "course", "Course", "Courses", "Fixed-schedule courses, study groups, or multi-session programmes."),
|
|
146038
|
+
verticalBookingPreset("community_wellbeing.appointments", "community_wellbeing", "appointment", "Appointment", "Appointments", "One-to-one appointments, consultations, or support sessions."),
|
|
146039
|
+
verticalBookingPreset("community_wellbeing.retreats", "community_wellbeing", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats."),
|
|
146040
|
+
verticalBookingPreset("venue_event_space.resource_hire", "venue_event_space", "appointment", "Hire slot", "Hire slots", "Future room, venue, and resource hire bookings.", "future")
|
|
146041
|
+
];
|
|
146042
|
+
const VERTICAL_ID_SET = /* @__PURE__ */ new Set([
|
|
146019
146043
|
"yoga_wellness",
|
|
146020
146044
|
"fitness_pt",
|
|
146021
146045
|
"dance_school",
|
|
@@ -146031,79 +146055,7 @@ const VERTICAL_IDS = [
|
|
|
146031
146055
|
"performing_arts_school",
|
|
146032
146056
|
"community_wellbeing",
|
|
146033
146057
|
"venue_event_space"
|
|
146034
|
-
];
|
|
146035
|
-
const BOOKING_ENGINE_BY_BEHAVIOUR = {
|
|
146036
|
-
class: "event_series",
|
|
146037
|
-
workshop: "event_series",
|
|
146038
|
-
course: "course",
|
|
146039
|
-
retreat: "event_series",
|
|
146040
|
-
performance: "event_series",
|
|
146041
|
-
appointment: "appointment_service"
|
|
146042
|
-
};
|
|
146043
|
-
const VERTICAL_BOOKING_PRESETS = [
|
|
146044
|
-
preset("yoga_wellness.classes", "yoga_wellness", "class", "Class", "Classes", "Regular scheduled classes and group sessions."),
|
|
146045
|
-
preset("yoga_wellness.workshops", "yoga_wellness", "workshop", "Workshop", "Workshops", "One-off workshops, day retreats, or special sessions."),
|
|
146046
|
-
preset("yoga_wellness.courses", "yoga_wellness", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups."),
|
|
146047
|
-
preset("yoga_wellness.retreats", "yoga_wellness", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats and immersive experiences."),
|
|
146048
|
-
preset("yoga_wellness.appointments", "yoga_wellness", "appointment", "Appointment", "Appointments", "Private sessions, consultations, or one-to-one support."),
|
|
146049
|
-
preset("fitness_pt.group_training", "fitness_pt", "class", "Group training", "Group training", "Regular scheduled classes and group sessions."),
|
|
146050
|
-
preset("fitness_pt.personal_training", "fitness_pt", "appointment", "Personal training", "Personal training", "One-to-one sessions booked from your availability."),
|
|
146051
|
-
preset("fitness_pt.programmes", "fitness_pt", "course", "Programme", "Programmes", "Multi-session programmes like bootcamps or courses."),
|
|
146052
|
-
preset("fitness_pt.workshops", "fitness_pt", "workshop", "Workshop", "Workshops", "One-off workshops, events, or special sessions."),
|
|
146053
|
-
preset("fitness_pt.retreats", "fitness_pt", "retreat", "Retreat", "Retreats", "Multi-day or residential fitness experiences."),
|
|
146054
|
-
preset("dance_school.classes", "dance_school", "class", "Class", "Classes", "Regular group classes and weekly sessions."),
|
|
146055
|
-
preset("dance_school.terms", "dance_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
|
|
146056
|
-
preset("dance_school.workshops", "dance_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
146057
|
-
preset("dance_school.private_lessons", "dance_school", "appointment", "Private lesson", "Private lessons", "One-to-one lessons or coaching sessions."),
|
|
146058
|
-
preset("dance_school.shows", "dance_school", "performance", "Show", "Shows", "Ticketed performances, showcases, and recitals."),
|
|
146059
|
-
preset("physiotherapy_physical_health.appointments", "physiotherapy_physical_health", "appointment", "Appointment", "Appointments", "Assessments, treatments, follow-ups, and rehabilitation sessions."),
|
|
146060
|
-
preset("physiotherapy_physical_health.rehab_classes", "physiotherapy_physical_health", "class", "Rehab class", "Rehab classes", "Regular rehabilitation, mobility, strength, or recovery classes."),
|
|
146061
|
-
preset("physiotherapy_physical_health.workshops", "physiotherapy_physical_health", "workshop", "Workshop", "Workshops", "One-off workshops, talks, or practical group sessions."),
|
|
146062
|
-
preset("massage_bodywork.treatments", "massage_bodywork", "appointment", "Treatment", "Treatments", "Massage treatments, bodywork sessions, and one-to-one appointments."),
|
|
146063
|
-
preset("massage_bodywork.group_sessions", "massage_bodywork", "class", "Group session", "Group sessions", "Regular bodywork, somatic movement, or self-massage sessions."),
|
|
146064
|
-
preset("massage_bodywork.workshops", "massage_bodywork", "workshop", "Workshop", "Workshops", "One-off bodywork, self-massage, or somatic practice workshops."),
|
|
146065
|
-
preset("therapist_practitioner.appointments", "therapist_practitioner", "appointment", "Appointment", "Appointments", "Sessions, consultations, treatments, or assessments."),
|
|
146066
|
-
preset("therapist_practitioner.workshops", "therapist_practitioner", "workshop", "Workshop", "Workshops", "One-off group workshops, talks, or wellbeing sessions."),
|
|
146067
|
-
preset("therapist_practitioner.retreats", "therapist_practitioner", "retreat", "Retreat", "Retreats", "Multi-day retreats or immersive group experiences."),
|
|
146068
|
-
preset("beauty_spa.appointments", "beauty_spa", "appointment", "Appointment", "Appointments", "Treatments, consultations, services, and sessions."),
|
|
146069
|
-
preset("beauty_spa.workshops", "beauty_spa", "workshop", "Workshop", "Workshops", "Skincare workshops, makeup lessons, demos, or group events."),
|
|
146070
|
-
preset("consultant_coach.appointments", "consultant_coach", "appointment", "Appointment", "Appointments", "One-to-one calls, consultations, reviews, or coaching sessions."),
|
|
146071
|
-
preset("consultant_coach.workshops", "consultant_coach", "workshop", "Workshop", "Workshops", "One-off group sessions, webinars, or strategy days."),
|
|
146072
|
-
preset("consultant_coach.courses", "consultant_coach", "course", "Course", "Courses", "Fixed-schedule cohorts or multi-session group programmes."),
|
|
146073
|
-
preset("consultant_coach.retreats", "consultant_coach", "retreat", "Retreat", "Retreats", "Multi-day coaching retreats or immersive experiences."),
|
|
146074
|
-
preset("training_provider.courses", "training_provider", "course", "Course", "Courses", "Fixed-schedule courses, cohorts, and multi-session training."),
|
|
146075
|
-
preset("training_provider.workshops", "training_provider", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, and short training sessions."),
|
|
146076
|
-
preset("training_provider.appointments", "training_provider", "appointment", "Appointment", "Appointments", "Consultations, assessments, mentoring, or office hours."),
|
|
146077
|
-
preset("training_provider.classes", "training_provider", "class", "Class", "Classes", "Regular classes, sessions, or groups.", "settings"),
|
|
146078
|
-
preset("training_provider.residentials", "training_provider", "retreat", "Residential", "Residentials", "Residential courses or multi-day training experiences.", "settings"),
|
|
146079
|
-
preset("retreat_centre.retreats", "retreat_centre", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats with richer booking needs."),
|
|
146080
|
-
preset("retreat_centre.workshops", "retreat_centre", "workshop", "Workshop", "Workshops", "One-day retreats, ceremonies, workshops, or special events."),
|
|
146081
|
-
preset("retreat_centre.classes", "retreat_centre", "class", "Class", "Classes", "Regular sessions like guided meditations or group practices."),
|
|
146082
|
-
preset("retreat_centre.courses", "retreat_centre", "course", "Course", "Courses", "Fixed-schedule programmes or multi-session experiences."),
|
|
146083
|
-
preset("retreat_centre.appointments", "retreat_centre", "appointment", "Appointment", "Appointments", "Private sessions, therapies, consultations, or add-ons."),
|
|
146084
|
-
preset("music_school.lessons", "music_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, consultations, or coaching sessions."),
|
|
146085
|
-
preset("music_school.classes", "music_school", "class", "Class", "Classes", "Regular group classes, ensembles, or recurring sessions."),
|
|
146086
|
-
preset("music_school.terms", "music_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date group courses."),
|
|
146087
|
-
preset("music_school.workshops", "music_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
146088
|
-
preset("music_school.performances", "music_school", "performance", "Performance", "Performances", "Concerts, recitals, showcases, or ticketed performances."),
|
|
146089
|
-
preset("voice_singing.lessons", "voice_singing", "appointment", "Voice session", "Voice sessions", "One-to-one singing lessons, voice coaching, or private practice sessions."),
|
|
146090
|
-
preset("voice_singing.classes", "voice_singing", "class", "Ongoing weekly session", "Ongoing weekly sessions", "Regular choirs, voice circles, community singing, or group practice."),
|
|
146091
|
-
preset("voice_singing.terms", "voice_singing", "course", "Singing term", "Singing terms", "Multi-week choir terms, voice courses, or fixed-date group programmes."),
|
|
146092
|
-
preset("voice_singing.workshops", "voice_singing", "workshop", "Workshop", "Workshops", "One-off singing workshops, voice journeys, or devotional singing sessions."),
|
|
146093
|
-
preset("voice_singing.performances", "voice_singing", "performance", "Performance", "Performances", "Choir concerts, sharing events, recitals, or community performances."),
|
|
146094
|
-
preset("performing_arts_school.classes", "performing_arts_school", "class", "Class", "Classes", "Regular group classes, rehearsals, or weekly sessions."),
|
|
146095
|
-
preset("performing_arts_school.terms", "performing_arts_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
|
|
146096
|
-
preset("performing_arts_school.workshops", "performing_arts_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
146097
|
-
preset("performing_arts_school.performances", "performing_arts_school", "performance", "Performance", "Performances", "Shows, showcases, productions, or ticketed performances."),
|
|
146098
|
-
preset("performing_arts_school.lessons", "performing_arts_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, coaching, or audition prep."),
|
|
146099
|
-
preset("community_wellbeing.classes", "community_wellbeing", "class", "Class", "Classes", "Regular groups, sessions, practices, or weekly activities."),
|
|
146100
|
-
preset("community_wellbeing.workshops", "community_wellbeing", "workshop", "Workshop", "Workshops", "One-off workshops, talks, events, or gatherings."),
|
|
146101
|
-
preset("community_wellbeing.courses", "community_wellbeing", "course", "Course", "Courses", "Fixed-schedule courses, study groups, or multi-session programmes."),
|
|
146102
|
-
preset("community_wellbeing.appointments", "community_wellbeing", "appointment", "Appointment", "Appointments", "One-to-one appointments, consultations, or support sessions."),
|
|
146103
|
-
preset("community_wellbeing.retreats", "community_wellbeing", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats."),
|
|
146104
|
-
preset("venue_event_space.resource_hire", "venue_event_space", "appointment", "Hire slot", "Hire slots", "Future room, venue, and resource hire bookings.", "future")
|
|
146105
|
-
];
|
|
146106
|
-
const VERTICAL_ID_SET = new Set(VERTICAL_IDS);
|
|
146058
|
+
]);
|
|
146107
146059
|
const VERTICAL_PRESET_ID_SET = new Set(VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id));
|
|
146108
146060
|
function parseVerticalId(value) {
|
|
146109
146061
|
return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
|
|
@@ -146219,18 +146171,6 @@ const DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
|
|
|
146219
146171
|
verticalId: null,
|
|
146220
146172
|
selectedPresetIds: []
|
|
146221
146173
|
};
|
|
146222
|
-
function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
|
|
146223
|
-
return {
|
|
146224
|
-
id,
|
|
146225
|
-
verticalId,
|
|
146226
|
-
canonicalBehaviour,
|
|
146227
|
-
engine: BOOKING_ENGINE_BY_BEHAVIOUR[canonicalBehaviour],
|
|
146228
|
-
availability,
|
|
146229
|
-
label,
|
|
146230
|
-
pluralLabel,
|
|
146231
|
-
description
|
|
146232
|
-
};
|
|
146233
|
-
}
|
|
146234
146174
|
//#endregion
|
|
146235
146175
|
//#region ../api/src/utils/isRecord.ts
|
|
146236
146176
|
function isRecord$2(value) {
|
|
@@ -146387,10 +146327,9 @@ z$1.object({
|
|
|
146387
146327
|
const BOOKING_QUESTION_ANSWER_EXPORT_SCOPES = {
|
|
146388
146328
|
site: "site",
|
|
146389
146329
|
appointments: "appointments",
|
|
146390
|
-
eventSeries: "event_series"
|
|
146391
|
-
course: "course"
|
|
146330
|
+
eventSeries: "event_series"
|
|
146392
146331
|
};
|
|
146393
|
-
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.site, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.appointments, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.eventSeries
|
|
146332
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.site, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.appointments, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.eventSeries;
|
|
146394
146333
|
//#endregion
|
|
146395
146334
|
//#region ../api/src/siteBanner.ts
|
|
146396
146335
|
const SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
@@ -159285,12 +159224,6 @@ function optimisticHashForSave(revision) {
|
|
|
159285
159224
|
}
|
|
159286
159225
|
}
|
|
159287
159226
|
const MISSING_REQUIRED_BLOCK_REVISION = "This Page Content block is missing its current revision. Reload the editor and try again.";
|
|
159288
|
-
function planBlockSaveFailureRecovery(error, revision) {
|
|
159289
|
-
return (error instanceof ApiEnvelopeError && error.code === "resource:conflict" || error instanceof ApiRequestError && (error.errorCode === "resource:conflict" || error.status === 409)) && revision.kind === "compareAndSet" ? {
|
|
159290
|
-
kind: "rebaseOnNewRevision",
|
|
159291
|
-
failedOptimisticHash: revision.optimisticHash
|
|
159292
|
-
} : { kind: "manualRetry" };
|
|
159293
|
-
}
|
|
159294
159227
|
/**
|
|
159295
159228
|
* Hook to handle block autosave for pages.
|
|
159296
159229
|
* Watches for pending block changes and debounces saves to the server.
|
|
@@ -159324,7 +159257,7 @@ function useBlockAutosave({ uiStore, apiClient, siteId, hasRoute, owner }) {
|
|
|
159324
159257
|
});
|
|
159325
159258
|
} else {
|
|
159326
159259
|
const message = result.reason instanceof Error ? result.reason.message : "Failed to save block";
|
|
159327
|
-
drafts.autosaveFailed(blockId, message
|
|
159260
|
+
drafts.autosaveFailed(blockId, message);
|
|
159328
159261
|
}
|
|
159329
159262
|
});
|
|
159330
159263
|
return results;
|
|
@@ -160400,58 +160333,6 @@ function cloneContentValues(value) {
|
|
|
160400
160333
|
function cloneBlockValues(value) {
|
|
160401
160334
|
return cloneBrandedValues(value, unsafeAsEditorBlockValues);
|
|
160402
160335
|
}
|
|
160403
|
-
const MISSING_MERGE_VALUE = Symbol("missing-merge-value");
|
|
160404
|
-
function isMergeRecord(value) {
|
|
160405
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
160406
|
-
}
|
|
160407
|
-
function mergeValuesEqual(left, right) {
|
|
160408
|
-
if (left === MISSING_MERGE_VALUE || right === MISSING_MERGE_VALUE) return left === right;
|
|
160409
|
-
if (Object.is(left, right)) return true;
|
|
160410
|
-
if (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((value, index) => mergeValuesEqual(value, right[index]));
|
|
160411
|
-
if (!isMergeRecord(left) || !isMergeRecord(right)) return false;
|
|
160412
|
-
const leftKeys = Object.keys(left).sort();
|
|
160413
|
-
const rightKeys = Object.keys(right).sort();
|
|
160414
|
-
return leftKeys.length === rightKeys.length && leftKeys.every((key, index) => key === rightKeys[index] && mergeValuesEqual(left[key], right[key]));
|
|
160415
|
-
}
|
|
160416
|
-
function mergeValueChanges(baseline, local, remote) {
|
|
160417
|
-
if (mergeValuesEqual(local, baseline)) return {
|
|
160418
|
-
kind: "merged",
|
|
160419
|
-
value: cloneUnknown(remote)
|
|
160420
|
-
};
|
|
160421
|
-
if (mergeValuesEqual(remote, baseline) || mergeValuesEqual(local, remote)) return {
|
|
160422
|
-
kind: "merged",
|
|
160423
|
-
value: cloneUnknown(local)
|
|
160424
|
-
};
|
|
160425
|
-
if (!isMergeRecord(baseline) || !isMergeRecord(local) || !isMergeRecord(remote)) return { kind: "conflict" };
|
|
160426
|
-
const merged = {};
|
|
160427
|
-
const keys = /* @__PURE__ */ new Set([
|
|
160428
|
-
...Object.keys(baseline),
|
|
160429
|
-
...Object.keys(local),
|
|
160430
|
-
...Object.keys(remote)
|
|
160431
|
-
]);
|
|
160432
|
-
for (const key of keys) {
|
|
160433
|
-
const child = mergeValueChanges(key in baseline ? baseline[key] : MISSING_MERGE_VALUE, key in local ? local[key] : MISSING_MERGE_VALUE, key in remote ? remote[key] : MISSING_MERGE_VALUE);
|
|
160434
|
-
if (child.kind === "conflict") return child;
|
|
160435
|
-
if (child.value !== MISSING_MERGE_VALUE) merged[key] = child.value;
|
|
160436
|
-
}
|
|
160437
|
-
return {
|
|
160438
|
-
kind: "merged",
|
|
160439
|
-
value: merged
|
|
160440
|
-
};
|
|
160441
|
-
}
|
|
160442
|
-
function mergeBlockValues(baseline, local, remote) {
|
|
160443
|
-
const result = mergeValueChanges(baseline, local, remote);
|
|
160444
|
-
if (result.kind === "conflict") return result;
|
|
160445
|
-
if (result.value === null) return {
|
|
160446
|
-
kind: "merged",
|
|
160447
|
-
value: null
|
|
160448
|
-
};
|
|
160449
|
-
if (!isMergeRecord(result.value)) return { kind: "conflict" };
|
|
160450
|
-
return {
|
|
160451
|
-
kind: "merged",
|
|
160452
|
-
value: unsafeAsEditorBlockValues(result.value)
|
|
160453
|
-
};
|
|
160454
|
-
}
|
|
160455
160336
|
function createSyncState(baseline, current) {
|
|
160456
160337
|
return recordsEqual(baseline, current) ? BASELINE_SYNC_STATE : PENDING_SYNC_STATE;
|
|
160457
160338
|
}
|
|
@@ -161103,7 +160984,7 @@ function applySystemOperation(snapshot, operation) {
|
|
|
161103
160984
|
case "remove-draft-block": return removeDraftBlock(snapshot, operation.blockId);
|
|
161104
160985
|
case "set-draft-published-baselines": return setDraftPublishedBaselines(snapshot, operation.blocks);
|
|
161105
160986
|
case "autosave-draft-succeeded": return autosaveDraftSucceeded(snapshot, operation.blockId, operation.savedValues, operation.acknowledgedVersion, operation.optimisticHash);
|
|
161106
|
-
case "autosave-draft-failed": return autosaveDraftFailed(snapshot, operation.blockId, operation.message
|
|
160987
|
+
case "autosave-draft-failed": return autosaveDraftFailed(snapshot, operation.blockId, operation.message);
|
|
161107
160988
|
case "clear-draft-error": return clearDraftError(snapshot, operation.blockId);
|
|
161108
160989
|
case "set-draft-pending": return setDraftPending(snapshot, operation.blockId);
|
|
161109
160990
|
case "clear-draft-pending": return clearDraftPending(snapshot, operation.blockId);
|
|
@@ -161250,15 +161131,12 @@ function buildDraftSnapshotFromBaseline(blockId, baseline, meta, existing) {
|
|
|
161250
161131
|
const hasPendingSave = existingSyncState?.kind === "pending";
|
|
161251
161132
|
const failedSave = existingSyncState?.kind === "failed" ? existingSyncState : null;
|
|
161252
161133
|
const loadedOptimisticHash = meta.optimisticHash !== void 0 ? meta.optimisticHash : existing?.meta.optimisticHash ?? null;
|
|
161253
|
-
const
|
|
161254
|
-
const recoveredConflict = mergeResult?.kind === "merged";
|
|
161255
|
-
const shouldPreserveFailedSave = Boolean(failedSave && !recoveredConflict);
|
|
161134
|
+
const shouldPreserveFailedSave = Boolean(failedSave);
|
|
161256
161135
|
const nextBaseline = hasPendingSave || shouldPreserveFailedSave ? cloneBlockValues(existing?.baseline ?? null) : cloneBlockValues(normalizedBaseline);
|
|
161257
|
-
const nextCurrent = hasPendingSave ? existing?.current ?? null :
|
|
161136
|
+
const nextCurrent = hasPendingSave ? existing?.current ?? null : shouldPreserveFailedSave ? existing?.current ?? null : cloneBlockValues(normalizedBaseline);
|
|
161258
161137
|
const nextSyncState = hasPendingSave ? existingSyncState ?? BASELINE_SYNC_STATE : shouldPreserveFailedSave ? failedSave ?? {
|
|
161259
161138
|
kind: "failed",
|
|
161260
|
-
error: "Save failed"
|
|
161261
|
-
recovery: { kind: "manualRetry" }
|
|
161139
|
+
error: "Save failed"
|
|
161262
161140
|
} : createSyncState(nextBaseline, nextCurrent);
|
|
161263
161141
|
return createDraftSnapshot(blockId, {
|
|
161264
161142
|
version: existing?.version ?? 0,
|
|
@@ -161377,11 +161255,10 @@ function autosaveDraftSucceeded(snapshot, blockId, savedValues, acknowledgedVers
|
|
|
161377
161255
|
}
|
|
161378
161256
|
};
|
|
161379
161257
|
}
|
|
161380
|
-
function autosaveDraftFailed(snapshot, blockId, message
|
|
161258
|
+
function autosaveDraftFailed(snapshot, blockId, message) {
|
|
161381
161259
|
return nextDraftRecord(snapshot, blockId, (draft) => updateDraftSnapshot(draft, { syncState: {
|
|
161382
161260
|
kind: "failed",
|
|
161383
|
-
error: message ?? "Save failed"
|
|
161384
|
-
recovery
|
|
161261
|
+
error: message ?? "Save failed"
|
|
161385
161262
|
} }));
|
|
161386
161263
|
}
|
|
161387
161264
|
function clearDraftError(snapshot, blockId) {
|
|
@@ -162153,12 +162030,11 @@ function createEditorUiStore(options = {}) {
|
|
|
162153
162030
|
optimisticHash: acknowledgement?.optimisticHash ?? currentSnapshot?.meta.optimisticHash ?? null
|
|
162154
162031
|
})) notifyDraftChangeListeners(blockId);
|
|
162155
162032
|
},
|
|
162156
|
-
autosaveFailed: (blockId, message
|
|
162033
|
+
autosaveFailed: (blockId, message) => {
|
|
162157
162034
|
if (applySystemEditorOperation({
|
|
162158
162035
|
type: "autosave-draft-failed",
|
|
162159
162036
|
blockId,
|
|
162160
|
-
message
|
|
162161
|
-
recovery
|
|
162037
|
+
message
|
|
162162
162038
|
})) notifyDraftChangeListeners(blockId);
|
|
162163
162039
|
},
|
|
162164
162040
|
setAtPath: (blockId, path, value) => {
|
|
@@ -194067,6 +193943,13 @@ function usePreviewDesignCoordinator() {
|
|
|
194067
193943
|
}
|
|
194068
193944
|
//#endregion
|
|
194069
193945
|
//#region ../preview-next/src/client/preview/siteStylePreviewPlanner.ts
|
|
193946
|
+
function deriveSiteStylePreviewUpdate(baseTheme, baseSelection) {
|
|
193947
|
+
return {
|
|
193948
|
+
kind: "derive-update",
|
|
193949
|
+
baseTheme,
|
|
193950
|
+
baseSelection
|
|
193951
|
+
};
|
|
193952
|
+
}
|
|
194070
193953
|
function planSiteStylePreviewChange(input) {
|
|
194071
193954
|
const resolvedPalette = resolvedPaletteForPreview(input.selection.palette, input.siteStyle);
|
|
194072
193955
|
const compiled = compileSiteThemeFromSelections({
|
|
@@ -194074,15 +193957,15 @@ function planSiteStylePreviewChange(input) {
|
|
|
194074
193957
|
buttonStyleSelection: input.selection.buttonStyleSelection,
|
|
194075
193958
|
resolvedPalette,
|
|
194076
193959
|
typography: input.selection.typography,
|
|
194077
|
-
|
|
194078
|
-
headerStyleId: input.selection.headerStyleId,
|
|
194079
|
-
headerLookId: input.selection.headerLookId,
|
|
194080
|
-
footerLookId: input.selection.footerLookId,
|
|
194081
|
-
headerSelectionContext: input.headerSelectionContext
|
|
193960
|
+
compilationPlan: compilationPlanForPreview(input)
|
|
194082
193961
|
});
|
|
194083
193962
|
return {
|
|
194084
193963
|
themeOverlay: compiled.theme,
|
|
194085
|
-
resolvedSelections:
|
|
193964
|
+
resolvedSelections: {
|
|
193965
|
+
...compiled.resolvedSelections,
|
|
193966
|
+
headerLayoutId: compiled.resolvedSelections.headerLayoutId ?? input.selection.headerLayoutId ?? input.siteStyle.defaultHeaderSelection.layoutId,
|
|
193967
|
+
headerStyleId: compiled.resolvedSelections.headerStyleId ?? input.selection.headerStyleId ?? input.siteStyle.defaultHeaderSelection.styleId
|
|
193968
|
+
},
|
|
194086
193969
|
chromeSelection: {
|
|
194087
193970
|
headerLookId: input.selection.headerLookId,
|
|
194088
193971
|
footerLookId: input.selection.footerLookId
|
|
@@ -194090,6 +193973,65 @@ function planSiteStylePreviewChange(input) {
|
|
|
194090
193973
|
warnings: compiled.warnings
|
|
194091
193974
|
};
|
|
194092
193975
|
}
|
|
193976
|
+
function compilationPlanForPreview(input) {
|
|
193977
|
+
const replacement = () => replaceSiteStyleCompilationPlan({
|
|
193978
|
+
headerLayoutId: input.selection.headerLayoutId,
|
|
193979
|
+
headerStyleId: input.selection.headerStyleId,
|
|
193980
|
+
headerLookId: input.selection.headerLookId,
|
|
193981
|
+
footerLookId: input.selection.footerLookId,
|
|
193982
|
+
headerSelectionContext: input.headerSelectionContext
|
|
193983
|
+
});
|
|
193984
|
+
if (input.compilation.kind === "replace-site-style") return replacement();
|
|
193985
|
+
const baseTheme = input.compilation.baseTheme;
|
|
193986
|
+
if (!baseTheme) return replacement();
|
|
193987
|
+
if (input.compilation.kind === "edit-chrome") return updateCompilationPlan({
|
|
193988
|
+
baseTheme,
|
|
193989
|
+
selection: input.selection,
|
|
193990
|
+
headerSelectionContext: input.headerSelectionContext,
|
|
193991
|
+
recompileHeader: input.compilation.surface === "header",
|
|
193992
|
+
applyFooterLook: input.compilation.surface === "footer"
|
|
193993
|
+
});
|
|
193994
|
+
if (input.compilation.baseSelection.siteStyleId !== input.selection.siteStyleId) return replacement();
|
|
193995
|
+
return updateCompilationPlan({
|
|
193996
|
+
baseTheme,
|
|
193997
|
+
selection: input.selection,
|
|
193998
|
+
headerSelectionContext: input.headerSelectionContext,
|
|
193999
|
+
recompileHeader: headerSelectionChanged(input.compilation.baseSelection, input.selection),
|
|
194000
|
+
applyFooterLook: input.compilation.baseSelection.footerLookId !== input.selection.footerLookId
|
|
194001
|
+
});
|
|
194002
|
+
}
|
|
194003
|
+
function updateCompilationPlan(input) {
|
|
194004
|
+
const selection = {
|
|
194005
|
+
headerLookId: input.selection.headerLookId,
|
|
194006
|
+
headerLayoutId: input.selection.headerLayoutId ?? null,
|
|
194007
|
+
headerStyleId: input.selection.headerStyleId ?? null
|
|
194008
|
+
};
|
|
194009
|
+
return {
|
|
194010
|
+
kind: "update-selection",
|
|
194011
|
+
header: input.recompileHeader ? {
|
|
194012
|
+
kind: "recompile",
|
|
194013
|
+
selection,
|
|
194014
|
+
context: completeHeaderSelectionContext(input.headerSelectionContext),
|
|
194015
|
+
brandPresentation: { kind: "apply-logo-context" }
|
|
194016
|
+
} : {
|
|
194017
|
+
kind: "preserve",
|
|
194018
|
+
header: input.baseTheme.header,
|
|
194019
|
+
selection
|
|
194020
|
+
},
|
|
194021
|
+
footer: input.applyFooterLook ? {
|
|
194022
|
+
kind: "apply-look",
|
|
194023
|
+
footer: input.baseTheme.footer,
|
|
194024
|
+
footerLookId: input.selection.footerLookId
|
|
194025
|
+
} : {
|
|
194026
|
+
kind: "preserve",
|
|
194027
|
+
footer: input.baseTheme.footer,
|
|
194028
|
+
footerLookId: input.selection.footerLookId
|
|
194029
|
+
}
|
|
194030
|
+
};
|
|
194031
|
+
}
|
|
194032
|
+
function headerSelectionChanged(base, previewed) {
|
|
194033
|
+
return base.headerLookId !== previewed.headerLookId || base.headerLayoutId !== previewed.headerLayoutId || base.headerStyleId !== previewed.headerStyleId;
|
|
194034
|
+
}
|
|
194093
194035
|
function resolvedPaletteForPreview(palette, siteStyle) {
|
|
194094
194036
|
if (palette.kind === "available") {
|
|
194095
194037
|
const preview = completePaletteEditorPreview(palette.editor);
|
|
@@ -194146,11 +194088,13 @@ function buildSiteChromeLookModels(input) {
|
|
|
194146
194088
|
siteStyle: input.siteStyle,
|
|
194147
194089
|
buttonStyleSelection: selection.buttonStyleSelection,
|
|
194148
194090
|
resolvedPalette: resolvedPaletteForPreview(selection.palette, input.siteStyle),
|
|
194149
|
-
|
|
194150
|
-
|
|
194151
|
-
|
|
194152
|
-
|
|
194153
|
-
|
|
194091
|
+
compilationPlan: replaceSiteStyleCompilationPlan({
|
|
194092
|
+
headerLayoutId: selection.headerLayoutId,
|
|
194093
|
+
headerStyleId: selection.headerStyleId,
|
|
194094
|
+
headerLookId: selection.headerLookId,
|
|
194095
|
+
footerLookId: selection.footerLookId,
|
|
194096
|
+
headerSelectionContext: input.headerSelectionContext
|
|
194097
|
+
})
|
|
194154
194098
|
});
|
|
194155
194099
|
const renderedHeaderLayoutId = current.resolvedSelections.headerLayoutId;
|
|
194156
194100
|
const renderedHeaderStyleId = current.resolvedSelections.headerStyleId;
|
|
@@ -194275,7 +194219,7 @@ function resolveStyleConfiguratorInitialSnapshot(input) {
|
|
|
194275
194219
|
buttonStyleSelection: input.initialSelections.buttonStyleSelection,
|
|
194276
194220
|
resolvedPalette: resolvedRuntimePalette?.ok ? resolvedRuntimePalette.resolved : resolvedPaletteForPreview(palette, siteStyle),
|
|
194277
194221
|
typography: input.theme?.typography ?? siteStyle.typography,
|
|
194278
|
-
|
|
194222
|
+
compilationPlan: replaceSiteStyleCompilationPlan(sharedSelectionInputs(input))
|
|
194279
194223
|
});
|
|
194280
194224
|
return {
|
|
194281
194225
|
siteStyleId: siteStyle.id,
|
|
@@ -194301,10 +194245,7 @@ function sharedSelectionInputs(input) {
|
|
|
194301
194245
|
}
|
|
194302
194246
|
//#endregion
|
|
194303
194247
|
//#region ../preview-next/src/client/preview/siteChromeBrandPreferences.ts
|
|
194304
|
-
const DEFAULT_HEADER_BRAND_PREFERENCES =
|
|
194305
|
-
brandDisplay: "auto",
|
|
194306
|
-
logoSize: "auto"
|
|
194307
|
-
};
|
|
194248
|
+
const DEFAULT_HEADER_BRAND_PREFERENCES = defaultHeaderBrandPreferences;
|
|
194308
194249
|
const HEADER_BRAND_DISPLAY_OPTIONS = [
|
|
194309
194250
|
{
|
|
194310
194251
|
value: "auto",
|
|
@@ -194382,10 +194323,7 @@ function createHeaderBrandControlStateFromPreferences({ preferences, headerSelec
|
|
|
194382
194323
|
};
|
|
194383
194324
|
}
|
|
194384
194325
|
function readHeaderBrandPreferences(theme) {
|
|
194385
|
-
return
|
|
194386
|
-
brandDisplay: theme?.header?.logo?.brandDisplay ?? DEFAULT_HEADER_BRAND_PREFERENCES.brandDisplay,
|
|
194387
|
-
logoSize: theme?.header?.logo?.size ?? DEFAULT_HEADER_BRAND_PREFERENCES.logoSize
|
|
194388
|
-
};
|
|
194326
|
+
return headerBrandPreferencesFromTheme(theme);
|
|
194389
194327
|
}
|
|
194390
194328
|
function normalizeHeaderBrandPreferences(preferences, hasLogo) {
|
|
194391
194329
|
if (hasLogo || preferences.brandDisplay !== "logo-only") return preferences;
|
|
@@ -194431,12 +194369,16 @@ function hasLogoInHeaderSelectionContext(context) {
|
|
|
194431
194369
|
}
|
|
194432
194370
|
//#endregion
|
|
194433
194371
|
//#region ../preview-next/src/client/preview/siteChromeSavePlan.ts
|
|
194434
|
-
function buildSiteChromeSavePlan({ surface, siteStyle, selection, baseTheme, headerSelectionContext, headerBrandPreferences, headerNavPreferences, backgroundPreferences, themeId, selectionId, baseSelectionUpdatedAt }) {
|
|
194372
|
+
function buildSiteChromeSavePlan({ surface, selectionPersistence, siteStyle, selection, baseTheme, headerSelectionContext, headerBrandPreferences, headerNavPreferences, backgroundPreferences, themeId, selectionId, baseSelectionUpdatedAt }) {
|
|
194435
194373
|
const compiled = planSiteStylePreviewChange({
|
|
194436
194374
|
siteStyle,
|
|
194437
194375
|
selection,
|
|
194438
|
-
|
|
194439
|
-
|
|
194376
|
+
headerSelectionContext: withHeaderBrandPreferences(headerSelectionContext, headerBrandPreferences),
|
|
194377
|
+
compilation: {
|
|
194378
|
+
kind: "edit-chrome",
|
|
194379
|
+
baseTheme,
|
|
194380
|
+
surface
|
|
194381
|
+
}
|
|
194440
194382
|
});
|
|
194441
194383
|
const themeOverlay = applySiteChromeBackgroundPreferences(withHeaderNavThemePreferences(withHeaderBrandThemePreferences(compiled.themeOverlay, headerBrandPreferences), headerNavPreferences), backgroundPreferences);
|
|
194442
194384
|
return {
|
|
@@ -194445,8 +194387,10 @@ function buildSiteChromeSavePlan({ surface, siteStyle, selection, baseTheme, hea
|
|
|
194445
194387
|
body: surface === "header" ? {
|
|
194446
194388
|
surface,
|
|
194447
194389
|
lookId: selection.headerLookId,
|
|
194448
|
-
|
|
194449
|
-
|
|
194390
|
+
...selectionPersistence.kind === "write" ? {
|
|
194391
|
+
layoutId: selection.headerLayoutId,
|
|
194392
|
+
styleId: selection.headerStyleId
|
|
194393
|
+
} : {},
|
|
194450
194394
|
theme: themeOverlay,
|
|
194451
194395
|
themeId,
|
|
194452
194396
|
selectionId,
|
|
@@ -194552,8 +194496,8 @@ function selectionSnapshotFromApplySiteStyleSelectionResponse(saved, fallback) {
|
|
|
194552
194496
|
palette: paletteSnapshotFromApplyResponse(saved),
|
|
194553
194497
|
typography: saved.theme.typography,
|
|
194554
194498
|
headerLookId: saved.headerLookId,
|
|
194555
|
-
headerLayoutId: saved.headerLayoutId,
|
|
194556
|
-
headerStyleId: saved.headerStyleId,
|
|
194499
|
+
headerLayoutId: saved.headerLayoutId ?? fallback.headerLayoutId,
|
|
194500
|
+
headerStyleId: saved.headerStyleId ?? fallback.headerStyleId,
|
|
194557
194501
|
footerLookId: saved.footerLookId
|
|
194558
194502
|
};
|
|
194559
194503
|
}
|
|
@@ -195403,6 +195347,7 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
195403
195347
|
};
|
|
195404
195348
|
const savePlan = buildSiteChromeSavePlan({
|
|
195405
195349
|
surface: request.kind === "selection" ? request.surface : "header",
|
|
195350
|
+
selectionPersistence: request.kind === "selection" ? { kind: "write" } : { kind: "preserve" },
|
|
195406
195351
|
siteStyle,
|
|
195407
195352
|
selection,
|
|
195408
195353
|
baseTheme: currentThemeRef.current ?? theme,
|
|
@@ -195875,8 +195820,8 @@ function selectionSnapshotFromSiteChromeSaveResponse({ saved, fallback, savePlan
|
|
|
195875
195820
|
palette: fallback.palette,
|
|
195876
195821
|
typography: savePlan.themeOverlay.typography,
|
|
195877
195822
|
headerLookId: saved.headerLookId ?? fallback.headerLookId,
|
|
195878
|
-
headerLayoutId: saved.headerLayoutId ?? savePlan.compiled.resolvedSelections.headerLayoutId,
|
|
195879
|
-
headerStyleId: saved.headerStyleId ?? savePlan.compiled.resolvedSelections.headerStyleId,
|
|
195823
|
+
headerLayoutId: saved.headerLayoutId ?? savePlan.compiled.resolvedSelections.headerLayoutId ?? fallback.headerLayoutId,
|
|
195824
|
+
headerStyleId: saved.headerStyleId ?? savePlan.compiled.resolvedSelections.headerStyleId ?? fallback.headerStyleId,
|
|
195880
195825
|
footerLookId: saved.footerLookId ?? fallback.footerLookId
|
|
195881
195826
|
};
|
|
195882
195827
|
}
|
|
@@ -195906,4 +195851,4 @@ function useSiteChromeCustomizeOptional() {
|
|
|
195906
195851
|
return useContext(SiteChromeCustomizeContext);
|
|
195907
195852
|
}
|
|
195908
195853
|
//#endregion
|
|
195909
|
-
export { confirmAutosaveBatch as $, toLocationMapHydrationProps as $a, cn$2 as $c, findCuratedPalette as $i, LoaderCircle as $l, uiTransforms as $n, CircleMinusIcon as $o, productItemKey as $r, mapCurrentValueForSelect as $s, undoHistory as $t, dismissWarnings as A, eventCalendarDefaultViewSchema as Aa, CollapsibleContent as Ac, curatedSiteStyles as Ai, unsafeAsFormId as Al, deriveLaunchReadiness as An, mediaSchema as Ao, buildGiftingInteractiveIslandProps as Ar, parseThemeButtonVariantId as As, ReferenceField as At, previewCuratedPalette as B, eventBlockKindValues as Ba, DropdownMenuLabel as Bc, getGradientPreset as Bi, Star as Bl, mergeContentWithBlockStyleOverrides as Bn, isObjectRecord$1 as Bo, buildProductListInteractiveIslandProps as Br, assertNever$8 as Bs, hideThemeV2RawStyleFields as Bt, applyResolvedSelections as C, resolveEventListPaginationAction as Ca, Dialog as Cc, formatSiteChromeBackgroundTokenLabel as Ci, assertNever$9 as Cl, useMediaEditorOptional as Cn, defineProgressiveBlockRuntime as Co, resolveDiscountContext as Cr, siblingPath$1 as Cs, IconPickerField as Ct, createPalette as D, calendarTabViewsSchema as Da, DialogHeader as Dc, retargetCompiledRuntimeFieldsForContentAdjacency as Di, unsafeAsAppointmentResourceId as Dl, listEntryPageContentSlots as Dn, splitPositioningClasses as Do, getStepNumber as Dr, updateButtonStyleSelectionChoice as Ds, ButtonWidgetProvider as Dt, committedPaletteForSnapshot as E, normalizeOptionalId as Ea, DialogFooter as Ec, retargetCompiledBoundaryRuntimeForContentAdjacency as Ei, parseSiteId as El, getPageDesignEditorState as En, markEditableSurfaceForwarding as Eo, WIZARD_STEPS as Er, resolveButtonStyleSelection as Es, ButtonVariantField as Et, openRow as F, eventCalendarListLayoutCompatibleDisplayModeValues as Fa, createCollapsibleScope as Fc, getHeaderLayout as Fi, Upload as Fl, createCustomBlockRegistry as Fn, parseBlockIconValue as Fo, checkoutBlockDefinition as Fr, resolveOnColorForThemeToken as Fs, EditorProvider as Ft, previewSiteStyle as G, normalizeEventScheduleScope as Ga, createCollection as Gc, sectionTransitionVariantForBoundaryOptionId as Gi, Redo2 as Gl, siteHeaderManifest as Gn, isInlineTextEmpty as Go, buildProductDetailDisplay as Gr, mergeStyles as Gs, useEditorUiStore as Gt, previewHeaderLayout as H, eventSurfaceScopeValues as Ha, DropdownMenuTrigger as Hc, defaultSectionTransitionVariantForFamily as Hi, Smartphone as Hl, getBlockDefinition as Hn, logger$1 as Ho, getShopDisplayForItems as Hr, normalizeBoxStylesCardVariant as Hs, stripTopLevelRoutingUi as Ht, paletteMutationCapability as I, eventCalendarListLayoutOptions as Ia, Surface as Ic, getHeaderStyle as Ii, Undo2 as Il, buildThemeRuntime as In, resolveBlockIconRenderValue as Io, cartBlockDefinition as Ir, resolveTokenOrCssColorValue as Is, useEditor$1 as It, setPaletteColors as J, normalizeEventSurfaceScope as Ja, composeEventHandlers as Jc, backgroundAppearanceQuickColorTokenNames as Ji, PenLine as Jl, planSiteOverlayHeaderClearance as Jn, isBlockButtonRole as Jo, EMPTY_COMMERCE_CART_STATE as Jr, getFieldIntent as Js, canRedoHistory as Jt, reconcilePaletteLibraryActive as K, normalizeEventStaffMemberId as Ka, useControllableState as Kc, BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO as Ki, Plus as Kl, SITE_CHROME_VISIBLE_HEADER_SELECTOR as Kn, parseInlineTextFromUnknown as Ko, formatCommercePrice as Kr, rgbColorValue as Ks, useEditorUiStoreInstance as Kt, palettePreviewProjection as L, el as La, DropdownMenu as Lc, gradientToCss as Li, TriangleAlert as Ll, DEFAULT_THEME_RESPONSIVE_MODE as Ln, parseGeneratedIconAssetId as Lo, buildCartInteractiveIslandProps as Lr, isThemeV2NormalEditorRawStyleFieldName as Ls, LinkField as Lt, markApplyFailed as M, filterAutoShowSchema as Ma, Content$1 as Mc, getCuratedSiteStyle as Mi, err as Ml, isSupportedLoaderEndpoint as Mn, resolveFeatureCardGeneratedIconSizePx as Mo, buildCourseRegistrationInteractiveIslandProps as Mr, parseThemeForPersistence as Ms, useRichTextImagePicker as Mt, markApplySaved as N, previewStageSchema as Na, Root$3 as Nc, surfaceResolutionContextFromTheme as Ni, ok$1 as Nl, ThemeScope as Nn, shouldReserveFeatureCardIconZone as No, normalizeEventRegistrationPageSurfaceSubject as Nr, getTextColorForBackground as Ns, RichTextField as Nt, createStyleConfiguratorState as O, columnOptionSchema as Oa, DialogTitle as Oc, planPageDesignLayoutLookCompatibility as Oi, unsafeAsAppointmentServiceId as Ol, decodePublicProductCategorySelectorQuery as On, planSiteChromePlacement as Oo, getWizardStepsForContext as Or, buttonStyleSelectionKey as Os, FileField as Ot, markApplySaving as P, weekStartSchema as Pa, Trigger$3 as Pc, findFooterLook as Pi, X as Pl, containerResponsiveThemeCss as Pn, buildGeneratedBlockIconRenderAssetLookupFromUnknown as Po, resolveEventRegistrationScopedEvents as Pr, isCssColorLiteral as Ps, RichTextWidgetProvider as Pt, beginAutosaveBatch as Q, normalizeLocationMapProps as Qa, useComposedRefs as Qc, curatedPalettes as Qi, Maximize2 as Ql, layoutTransforms as Qn, ChevronDownIcon as Qo, parseStoredCommerceCartState as Qr, hasEmptyOption as Qs, redoHistory as Qt, prepareStalePaletteRetry as R, when as Ra, DropdownMenuContent as Rc, GRADIENT_PRESETS as Ri, Ticket as Rl, getResponsiveScopeSpec as Rn, parseGeneratedIconSetId as Ro, buildCheckoutInteractiveIslandProps as Rr, pageDesignEditorBackgroundOverrideOwner as Rs, LinkWidgetProvider as Rt, usePreviewThemeOverlay as S, resolveEventCalendarListPageSize as Sa, TabsTrigger as Sc, resolveBackgroundColorValue as Si, formatCurrencyAmount as Sl, MediaEditorContextProvider as Sn, defineClientOwnedBlockRuntime as So, findPreSelectedEvent as Sr, getAtPath as Ss, InlineTextField as St, cancelPreview as T, normalizeCsvString as Ta, DialogDescription as Tc, compileEditorModelRuntime as Ti, parseMediaAssetId as Tl, applyPageDesignEditorAction as Tn, composeHeaderSectionWrapperClassName as To, resolveRegistrationTarget as Tr, findButtonStyleRecipe as Ts, EntryPickerWidgetProvider as Tt, previewHeaderStyle as U, normalizeEventBlockKind as Ua, useId$1 as Uc, sectionTransitionFamilies as Ui, SlidersHorizontal as Ul, projectRecurringSchedule as Un, coerceInlineTextWithFallback as Uo, buildCartDisplay as Ur, normalizeCardVariantRole as Us, getBlockManifestFromSdkConfig as Ut, previewFooterLook as V, eventScheduleScopeValues as Va, DropdownMenuSeparator as Vc, parseGradientPresetId as Vi, Sparkles as Vl, generateDefaultAccordionSystem as Vn, isRecord$10 as Vo, buildShopInteractiveIslandProps as Vr, ICON_CONFIG as Vs, prepareBlockEditorManifest as Vt, previewSitePalette as W, normalizeEventCategoryIdsCsv as Wa, useDirection as Wc, sectionTransitionFamilyForBoundaryOptionId as Wi, RotateCcw as Wl, siteFooterManifest as Wn, inlineTextToPlainText as Wo, buildProductCardDisplay as Wr, backgroundColorStyle as Ws, classifyHistoryShortcut as Wt, syncStyleConfiguratorState as X, publicEventSchema as Xa, Button$1 as Xc, parseBackgroundAppearanceColorToken as Xi, Monitor as Xl, contentTransforms as Xn, ArrowDownIcon as Xo, buildProductCartItem as Xr, SdkConfigProvider as Xs, createHistoryState as Xt, styleConfiguratorHistoryEntryForPersistedSelection as Y, normalizeEventVenueId as Ya, Primitive as Yc, foregroundTokenForBackgroundAppearanceColorToken as Yi, Palette as Yl, visibleHeaderClearancePx as Yn, getIconComponent as Yo, buildPassCartItem as Yr, isHeaderField as Ys, canUndoHistory as Yt, toggleRow as Z, buildGoogleMapsDirectionsUrl as Za, cva as Zc, defaultThemeTokens as Zi, Minus as Zl, mediaTransforms as Zn, ArrowRightIcon as Zo, deriveCommerceCheckoutState as Zr, useSdkConfig as Zs, pushHistoryEntry as Zt, planSiteChromeLookSelection as _, resolveSpacing as _a, PopoverTrigger as _c, defineFragment as _i, publicEventPricingCurrency as _l, createManifestValidation as _n, blockBookingPaymentTermsSchema as _o, buildFormInteractiveIslandProps as _r, resolveMediaNodeResponsiveImage as _s, createSiteOptionWidgetAdapters as _t, previewDesignHistoryDomainForCommand as a, runTransforms as aa, TooltipContent as ac, faqHeadingFragment as ai, formatBookingDate as al, createSnapshotFromPageRecord as an, formatEventTeacherLine as ao, shopBlockDefinition as ar, FileSpreadsheetIcon as as, resolvePreviewSidebarTab as at, CirclePlus as au, usePreviewDesignCoordinator as b, eventPageSizeSchema as ba, TabsContent as bc, boxStylesTransforms as bi, publicEventScalarPrice as bl, createStoreBackend as bn, defineInteractiveIslandMetaKeys as bo, toRegistrationEvents as br, SECTION_BACKGROUND_MIN_SOURCE_WIDTH as bs, OfferingsPreviewGroupOrderField as bt, selectionSnapshotFromApplySiteStyleSelectionResponse as c, OFFERINGS_PREVIEW_DEFAULT_EMPTY_MESSAGE as ca, SelectContent as cc, formEmbedFragment as ci, formatBookingTime as cl, parseReferenceKind as cn, getContainerClass as co, newsletterSignupBlockDefinition as cr, PlusIcon as cs, PreviewInlineTextEditor as ct, ChevronLeft as cu, PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE as d, buildOfferingsPreviewRenderStates as da, SelectValue as dc, testimonialsHeadingFragment as di, parseBookingLocalDate as dl, resolveContentTitle as dn, resolveEventLinkProps as do, buildEventListingInteractiveIslandProps as dr, buildResolveImageUrlContext as ds, useUISelector as dt, ArrowDown as du, buildPaletteLibraryReadModel as ea, mapOptionValueForSelect as ec, reduceCommerceCart as ei, clsx as el, unsafeAsLinkedContentEntryId as en, formatDate as eo, formattingTransforms as er, CirclePlusIcon as es, deriveTransactionCapabilities as et, Image as eu, PREVIEW_DESIGN_SAVE_ERROR_MESSAGE as f, normalizeOfferingsPreviewItemLimit as fa, Callout as fc, ctaCopyFragment as fi, resolveBookingTimeZoneId as fl, PaletteProvider as fn, getEventAvailability as fo, eventCalendarBlockDefinition as fr, computeMediaTransformStyle as fs, EditableBlockProvider as ft, __exportAll as fu, cycleableSiteChromeOptions as g, isSemanticSpacing as ga, PopoverContent as gc, bodyCopyFragment as gi, formatBookingPriceDisplay as gl, createManifestFormAdapter as gn, resolveRuntimeEventPricing as go, formBlockDefinition as gr, resolveImageUrlWithContext as gs, createSiteOptionApiLoader as gt, cycleSiteChromeLookId as h, resolveOfferingsPreviewGroups as ha, Popover as hc, heroCopyFragment as hi, parseEventPageSurfaceSubject as hl, ManifestForm as hn, getLocalMinuteOfDay as ho, buildEventCalendarListingRender as hr, renderVideo as hs, useEntryEditorController as ht, usePreviewDesignHistoryOrder as i, createTransformRegistry as ia, Tooltip as ic, faqAccordionFragment as ii, addLocalScheduleDays as il, createRoutingHelpers as in, formatEventPriceDisplay as io, NAV_DROPDOWN_SHIFT_PROPERTY as ir, FileAudioIcon as is, createOptimisticActionRunner as it, CreditCard as iu, isPreviewingChange as j, eventLayoutSchema as ja, CollapsibleTrigger as jc, designRuntimeRulesForTheme as ji, unsafeAsPassId as jl, AMBIENT_BACKGROUND_ROLES as jn, FEATURE_CARD_ICON_TREATMENTS as jo, courseRegistrationBlockDefinition as jr, themeButtonClassName as js, ReferenceWidgetProvider as jt, deriveStyleConfiguratorCapabilities as k, eventButtonVariantSchema as ka, Collapsible as kc, componentRuntimeRulesForTheme as ki, unsafeAsCustomerPassId as kl, DEFAULT_LAUNCH_READINESS_INPUT as kn, PUBLIC_DOWNLOAD_MEDIA_TYPES as ko, giftingBlockDefinition as kr, AFFORDANCE_SUPPRESS_CLASS as ks, MediaField as kt, resolveStyleConfiguratorInitialSnapshot as l, OFFERINGS_PREVIEW_DEFAULT_FAILED_MESSAGE as la, SelectItem as lc, formCopyFragment as li, formatLocalScheduleDate as ll, deriveRouteMetadataPresentation as ln, groupEventsByDate as lo, buildNewsletterFormInteractiveIslandProps as lr, ImagePresets as ls, PreviewTextEditor as lt, ChevronDown as lu, buildSiteChromeLookModels as m, resolveOfferingsPreviewGroupCta as ma, SearchInput as mc, ctaRowFragment as mi, toScheduledBookingDateTime as ml, validateBlockManifestIssues as mn, getLocalDateKey as mo, buildEventCalendarListingDisplay as mr, renderAudio as ms, useEntryController as mt, useSiteChromeCustomizeOptional as n, paletteColorsEqual as na, FieldFrame as nc, headingFragment as ni, unsafeAsEditorBlockId as nl, useMultiAutosave as nn, formatEventDateParts as no, ImageResolveContextProvider as nr, DownloadIcon as ns, idleEditorTransactionQueueState as nt, Eye as nu, selectPreviewDesignHistoryDomain as o, ctaButton as oa, TooltipTrigger as oc, blogFeaturedPostFragment as oi, formatBookingDateTime as ol, BUILT_IN_REFERENCE_KINDS as on, formatTime as oo, productListBlockDefinition as or, FileTextIcon as os, FooterComposerPanel as ot, CircleMinus as ou, reportPreviewDesignError as p, resolveOfferingsPreviewCoursePath as pa, CalloutDescription as pc, heroCtaRowFragment as pi, toBookingTimeZone as pl, usePalette as pn, getEventAvailabilityStatus as po, buildEventCalendarInteractiveIslandProps as pr, getCurrentResolveImageUrlContext as ps, EntryControllerProvider as pt, resetTypographyToSaved as q, normalizeEventSurfacePresetsCsv as qa, createContextScope as qc, backgroundAppearanceColorTokenNames as qi, Pencil as ql, SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR as qn, canonicalizePersistedBlockButtonRole as qo, formatInterval as qr, textColorStyle as qs, useOptionalEditorUiStoreInstance as qt, PreviewDesignHistoryOrderProvider as r, paletteColorsSchema as ra, useField as rc, cardFragment as ri, unsafeAsEditorBlockValues as rl, useDebouncedLatestSave as rn, formatEventPrice as ro, useImageResolveContextOptional as rr, FileArchiveIcon as rs, rejectAutosaveBatch as rt, EllipsisVertical as ru, buildApplySiteStyleSelectionBody as s, OFFERINGS_PREVIEW_DEFAULT_BUTTON_TEXT as sa, Select$1 as sc, singleButtonFragment as si, formatBookingInstant as sl, isAdapterReferenceKind as sn, getCardOrientation as so, productDetailBlockDefinition as sr, MinusIcon as ss, PreviewRichTextEditor as st, ChevronRight as su, SiteChromeCustomizeProvider as t, paletteColorEntries as ta, unmapValueFromSelect as tc, richTextFragment as ti, parseFooterModuleId as tl, recordsEqual as tn, formatEventCompactDateRail as to, createManifestValidator as tr, ClockIcon as ts, enqueueTransaction as tt, GripVertical as tu, PREVIEW_DESIGN_LOAD_ERROR_MESSAGE as u, OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS as ua, SelectTrigger as uc, testimonialsCarouselFragment as ui, getBookingLocalDateKey as ul, resolvePageRouteSlug as un, resolveEventCta as uo, eventListingBlockDefinition as ur, MediaPlaceholder as us, ContentFieldsForm as ut, Check as uu, planSiteStylePreviewChange as v, buildEventRuntimeFilters as va, Input as vc, BACKGROUND_POSITION_PRESET_VALUES as vi, publicEventPricingMode as vl, FormRenderer as vn, buildInteractiveIslandProps as vo, eventRegistrationBlockDefinition as vr, resolveMediaStorageUrl as vs, SiteOptionPickerField as vt, applyTypographyDraftPatch as w, normalizeCsvIds as wa, DialogContent as wc, applyCompiledRuntimeFieldsToContent as wi, expectParsedBrandedId as wl, useApiMediaUploader as wn, EDITABLE_SURFACE_FORWARDING_PROP as wo, resolveEventRequiresPayment as wr, buttonStyleSelectionParameterValue as ws, EntryPickerField as wt, PreviewThemeOverlayProvider as x, getEventRuntimeFiltersKey as xa, TabsList as xc, resolveSurfaceForegroundStyles as xi, publicEventTicketTypes as xl, MediaEditor as xn, createZodCodec as xo, findEventByOccurrenceId as xr, attachRenderableMediaAssetFields as xs, OfferingsPreviewWidgetProvider as xt, PreviewDesignCoordinatorProvider as y, eventListPaginationActionSchema as ya, Tabs as yc, getAnchorClasses as yi, publicEventPricingType as yl, evaluateVisibility as yn, createInteractiveIslandCodec as yo, buildEventRegistrationInteractiveIslandProps as yr, setContextResolveImageUrlContext as ys, SiteOptionWidgetProvider as yt, previewButtonStyle as z, bindingSchema as za, DropdownMenuItem as zc, GRADIENT_PRESET_IDS as zi, Tablet as zl, escapeStyleContent as zn, RichTextDocSchema as zo, buildProductDetailInteractiveIslandProps as zr, asDesignBlockId as zs, BlockEditor as zt };
|
|
195854
|
+
export { beginAutosaveBatch as $, resolveRuntimeEventPricing as $a, toScheduledBookingDateTime as $c, buildPaletteLibraryReadModel as $i, layoutTransforms as $n, renderAudio as $o, reduceCommerceCart as $r, SearchInput as $s, redoHistory as $t, deriveStyleConfiguratorCapabilities as A, bindingSchema as Aa, createCollection as Ac, designRuntimeRulesForTheme as Ai, Redo2 as Al, DEFAULT_LAUNCH_READINESS_INPUT as An, isInlineTextEmpty as Ao, giftingBlockDefinition as Ar, mergeStyles as As, MediaField as At, previewButtonStyle as B, formatEventPrice as Ba, parseFooterModuleId as Bc, sectionTransitionFamilies as Bi, GripVertical as Bl, escapeStyleContent as Bn, ClockIcon as Bo, buildShopInteractiveIslandProps as Br, unmapValueFromSelect as Bs, BlockEditor as Bt, usePreviewThemeOverlay as C, buildEventRuntimeFilters as Ca, DropdownMenuContent as Cc, applyCompiledRuntimeFieldsToContent as Ci, Ticket as Cl, MediaEditorContextProvider as Cn, parseGeneratedIconSetId as Co, findPreSelectedEvent as Cr, pageDesignEditorBackgroundOverrideOwner as Cs, InlineTextField as Ct, committedPaletteForSnapshot as D, normalizeOptionalId as Da, DropdownMenuTrigger as Dc, planPageDesignLayoutLookCompatibility as Di, Smartphone as Dl, getPageDesignEditorState as Dn, logger$1 as Do, WIZARD_STEPS as Dr, normalizeBoxStylesCardVariant as Ds, ButtonVariantField as Dt, cancelPreview as E, normalizeCsvString as Ea, DropdownMenuSeparator as Ec, retargetCompiledRuntimeFieldsForContentAdjacency as Ei, Sparkles as El, applyPageDesignEditorAction as En, isRecord$10 as Eo, resolveRegistrationTarget as Er, ICON_CONFIG as Es, EntryPickerWidgetProvider as Et, markApplySaving as F, normalizeLocationMapProps as Fa, Button$1 as Fc, GRADIENT_PRESETS as Fi, Monitor as Fl, containerResponsiveThemeCss as Fn, ArrowDownIcon as Fo, cartBlockDefinition as Fr, SdkConfigProvider as Fs, RichTextWidgetProvider as Ft, previewSitePalette as G, getContainerClass as Ga, formatBookingDateTime as Gc, BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO as Gi, CircleMinus as Gl, siteFooterManifest as Gn, FileTextIcon as Go, formatCommercePrice as Gr, TooltipTrigger as Gs, classifyHistoryShortcut as Gt, previewFooterLook as H, formatEventTeacherLine as Ha, unsafeAsEditorBlockValues as Hc, sectionTransitionVariantForBoundaryOptionId as Hi, EllipsisVertical as Hl, generateDefaultAccordionSystem as Hn, FileArchiveIcon as Ho, buildCartDisplay as Hr, useField as Hs, prepareBlockEditorManifest as Ht, openRow as I, toLocationMapHydrationProps as Ia, cva as Ic, GRADIENT_PRESET_IDS as Ii, Minus as Il, createCustomBlockRegistry as In, ArrowRightIcon as Io, buildCartInteractiveIslandProps as Ir, useSdkConfig as Is, EditorProvider as It, resetTypographyToSaved as J, resolveEventLinkProps as Ja, formatLocalScheduleDate as Jc, foregroundTokenForBackgroundAppearanceColorToken as Ji, ChevronDown as Jl, SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR as Jn, ImagePresets as Jo, buildPassCartItem as Jr, SelectItem as Js, useOptionalEditorUiStoreInstance as Jt, previewSiteStyle as K, groupEventsByDate as Ka, formatBookingInstant as Kc, backgroundAppearanceColorTokenNames as Ki, ChevronRight as Kl, siteHeaderManifest as Kn, MinusIcon as Ko, formatInterval as Kr, Select$1 as Ks, useEditorUiStore as Kt, paletteMutationCapability as L, formatDate as La, useComposedRefs as Lc, getGradientPreset as Li, Maximize2 as Ll, buildThemeRuntime as Ln, ChevronDownIcon as Lo, buildCheckoutInteractiveIslandProps as Lr, hasEmptyOption as Ls, useEditor$1 as Lt, isPreviewingChange as M, eventCalendarListLayoutCompatibleDisplayModeValues as Ma, createContextScope as Mc, surfaceResolutionContextFromTheme as Mi, Pencil as Ml, AMBIENT_BACKGROUND_ROLES as Mn, canonicalizePersistedBlockButtonRole as Mo, courseRegistrationBlockDefinition as Mr, textColorStyle as Ms, ReferenceWidgetProvider as Mt, markApplyFailed as N, eventCalendarListLayoutOptions as Na, composeEventHandlers as Nc, findFooterLook as Ni, PenLine as Nl, isSupportedLoaderEndpoint as Nn, isBlockButtonRole as No, buildCourseRegistrationInteractiveIslandProps as Nr, getFieldIntent as Ns, useRichTextImagePicker as Nt, createPalette as O, el as Oa, useId$1 as Oc, componentRuntimeRulesForTheme as Oi, SlidersHorizontal as Ol, listEntryPageContentSlots as On, coerceInlineTextWithFallback as Oo, getStepNumber as Or, normalizeCardVariantRole as Os, ButtonWidgetProvider as Ot, markApplySaved as P, buildGoogleMapsDirectionsUrl as Pa, Primitive as Pc, gradientToCss as Pi, Palette as Pl, ThemeScope as Pn, getIconComponent as Po, checkoutBlockDefinition as Pr, isHeaderField as Ps, RichTextField as Pt, toggleRow as Q, getLocalMinuteOfDay as Qa, toBookingTimeZone as Qc, findCuratedPalette as Qi, mediaTransforms as Qn, getCurrentResolveImageUrlContext as Qo, productItemKey as Qr, CalloutDescription as Qs, pushHistoryEntry as Qt, palettePreviewProjection as R, formatEventCompactDateRail as Ra, cn$2 as Rc, parseGradientPresetId as Ri, LoaderCircle as Rl, DEFAULT_THEME_RESPONSIVE_MODE as Rn, CircleMinusIcon as Ro, buildProductDetailInteractiveIslandProps as Rr, mapCurrentValueForSelect as Rs, LinkField as Rt, PreviewThemeOverlayProvider as S, eventCollectionSourceSchemaShape as Sa, DropdownMenu as Sc, formatSiteChromeBackgroundTokenLabel as Si, TriangleAlert as Sl, MediaEditor as Sn, parseGeneratedIconAssetId as So, findEventByOccurrenceId as Sr, isThemeV2NormalEditorRawStyleFieldName as Ss, OfferingsPreviewWidgetProvider as St, applyTypographyDraftPatch as T, normalizeCsvIds as Ta, DropdownMenuLabel as Tc, retargetCompiledBoundaryRuntimeForContentAdjacency as Ti, Star as Tl, useApiMediaUploader as Tn, isObjectRecord$1 as To, resolveEventRequiresPayment as Tr, assertNever$8 as Ts, EntryPickerField as Tt, previewHeaderLayout as U, formatTime as Ua, addLocalScheduleDays as Uc, getHeaderLayout as Ui, CreditCard as Ul, getBlockDefinition as Un, FileAudioIcon as Uo, buildProductCardDisplay as Ur, Tooltip as Us, stripTopLevelRoutingUi as Ut, previewCuratedPalette as V, formatEventPriceDisplay as Va, unsafeAsEditorBlockId as Vc, sectionTransitionFamilyForBoundaryOptionId as Vi, Eye as Vl, mergeContentWithBlockStyleOverrides as Vn, DownloadIcon as Vo, getShopDisplayForItems as Vr, FieldFrame as Vs, hideThemeV2RawStyleFields as Vt, previewHeaderStyle as W, getCardOrientation as Wa, formatBookingDate as Wc, getHeaderStyle as Wi, CirclePlus as Wl, projectRecurringSchedule as Wn, FileSpreadsheetIcon as Wo, buildProductDetailDisplay as Wr, TooltipContent as Ws, getBlockManifestFromSdkConfig as Wt, styleConfiguratorHistoryEntryForPersistedSelection as X, getEventAvailabilityStatus as Xa, parseBookingLocalDate as Xc, defaultThemeTokens as Xi, ArrowDown as Xl, visibleHeaderClearancePx as Xn, buildResolveImageUrlContext as Xo, deriveCommerceCheckoutState as Xr, SelectValue as Xs, canUndoHistory as Xt, setPaletteColors as Y, getEventAvailability as Ya, getBookingLocalDateKey as Yc, parseBackgroundAppearanceColorToken as Yi, Check as Yl, planSiteOverlayHeaderClearance as Yn, MediaPlaceholder as Yo, buildProductCartItem as Yr, SelectTrigger as Ys, canRedoHistory as Yt, syncStyleConfiguratorState as Z, getLocalDateKey as Za, resolveBookingTimeZoneId as Zc, curatedPalettes as Zi, __exportAll as Zl, contentTransforms as Zn, computeMediaTransformStyle as Zo, parseStoredCommerceCartState as Zr, Callout as Zs, createHistoryState as Zt, planSiteChromeLookSelection as _, buildEventCollectionDisplay as _a, Content$1 as _c, BACKGROUND_POSITION_PRESET_VALUES as _i, err as _l, createManifestFormAdapter as _n, resolveFeatureCardGeneratedIconSizePx as _o, formBlockDefinition as _r, parseThemeForPersistence as _s, createSiteOptionApiLoader as _t, previewDesignHistoryDomainForCommand as a, ctaButton as aa, TabsContent as ac, blogFeaturedPostFragment as ai, publicEventScalarPrice as al, createRoutingHelpers as an, defineInteractiveIslandMetaKeys as ao, NAV_DROPDOWN_SHIFT_PROPERTY as ar, SECTION_BACKGROUND_MIN_SOURCE_WIDTH as as, createOptimisticActionRunner as at, PreviewDesignCoordinatorProvider as b, eventCollectionDisplaySchemaShape as ba, createCollapsibleScope as bc, resolveSurfaceForegroundStyles as bi, Upload as bl, evaluateVisibility as bn, parseBlockIconValue as bo, buildEventRegistrationInteractiveIslandProps as br, resolveOnColorForThemeToken as bs, SiteOptionWidgetProvider as bt, selectionSnapshotFromApplySiteStyleSelectionResponse as c, OFFERINGS_PREVIEW_DEFAULT_FAILED_MESSAGE as ca, Dialog as cc, formCopyFragment as ci, assertNever$9 as cl, isAdapterReferenceKind as cn, defineProgressiveBlockRuntime as co, productDetailBlockDefinition as cr, siblingPath$1 as cs, PreviewRichTextEditor as ct, PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE as d, normalizeOfferingsPreviewItemLimit as da, DialogFooter as dc, ctaCopyFragment as di, parseSiteId as dl, resolvePageRouteSlug as dn, markEditableSurfaceForwarding as do, eventListingBlockDefinition as dr, resolveButtonStyleSelection as ds, ContentFieldsForm as dt, paletteColorEntries as ea, Popover as ec, richTextFragment as ei, parseEventPageSurfaceSubject as el, undoHistory as en, normalizeEventRegistrationPageSurfaceSubject as eo, uiTransforms as er, renderVideo as es, confirmAutosaveBatch as et, PREVIEW_DESIGN_SAVE_ERROR_MESSAGE as f, resolveOfferingsPreviewCoursePath as fa, DialogHeader as fc, heroCtaRowFragment as fi, unsafeAsAppointmentResourceId as fl, resolveContentTitle as fn, splitPositioningClasses as fo, buildEventListingInteractiveIslandProps as fr, updateButtonStyleSelectionChoice as fs, useUISelector as ft, cycleableSiteChromeOptions as g, resolveSpacing as ga, CollapsibleTrigger as gc, defineFragment as gi, unsafeAsPassId as gl, ManifestForm as gn, FEATURE_CARD_ICON_TREATMENTS as go, buildEventCalendarListingRender as gr, themeButtonClassName as gs, useEntryEditorController as gt, cycleSiteChromeLookId as h, isSemanticSpacing as ha, CollapsibleContent as hc, bodyCopyFragment as hi, unsafeAsFormId as hl, validateBlockManifestIssues as hn, mediaSchema as ho, buildEventCalendarListingDisplay as hr, parseThemeButtonVariantId as hs, useEntryController as ht, usePreviewDesignHistoryOrder as i, runTransforms as ia, Tabs as ic, faqHeadingFragment as ii, publicEventPricingType as il, useDebouncedLatestSave as in, createInteractiveIslandCodec as io, useImageResolveContextOptional as ir, setContextResolveImageUrlContext as is, rejectAutosaveBatch as it, dismissWarnings as j, previewStageSchema as ja, useControllableState as jc, getCuratedSiteStyle as ji, Plus as jl, deriveLaunchReadiness as jn, parseInlineTextFromUnknown as jo, buildGiftingInteractiveIslandProps as jr, rgbColorValue as js, ReferenceField as jt, createStyleConfiguratorState as k, when as ka, useDirection as kc, curatedSiteStyles as ki, RotateCcw as kl, decodePublicProductCategorySelectorQuery as kn, inlineTextToPlainText as ko, getWizardStepsForContext as kr, backgroundColorStyle as ks, FileField as kt, resolveStyleConfiguratorInitialSnapshot as l, OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS as la, DialogContent as lc, testimonialsCarouselFragment as li, expectParsedBrandedId as ll, parseReferenceKind as ln, EDITABLE_SURFACE_FORWARDING_PROP as lo, newsletterSignupBlockDefinition as lr, buttonStyleSelectionParameterValue as ls, PreviewInlineTextEditor as lt, buildSiteChromeLookModels as m, resolveOfferingsPreviewGroups as ma, Collapsible as mc, heroCopyFragment as mi, unsafeAsCustomerPassId as ml, usePalette as mn, PUBLIC_DOWNLOAD_MEDIA_TYPES as mo, buildEventCalendarInteractiveIslandProps as mr, AFFORDANCE_SUPPRESS_CLASS as ms, EntryControllerProvider as mt, useSiteChromeCustomizeOptional as n, paletteColorsSchema as na, PopoverTrigger as nc, cardFragment as ni, publicEventPricingCurrency as nl, recordsEqual as nn, blockBookingPaymentTermsSchema as no, createManifestValidator as nr, resolveMediaNodeResponsiveImage as ns, enqueueTransaction as nt, selectPreviewDesignHistoryDomain as o, OFFERINGS_PREVIEW_DEFAULT_BUTTON_TEXT as oa, TabsList as oc, singleButtonFragment as oi, publicEventTicketTypes as ol, createSnapshotFromPageRecord as on, createZodCodec as oo, shopBlockDefinition as or, attachRenderableMediaAssetFields as os, resolvePreviewSidebarTab as ot, reportPreviewDesignError as p, resolveOfferingsPreviewGroupCta as pa, DialogTitle as pc, ctaRowFragment as pi, unsafeAsAppointmentServiceId as pl, PaletteProvider as pn, planSiteChromePlacement as po, eventCalendarBlockDefinition as pr, buttonStyleSelectionKey as ps, EditableBlockProvider as pt, reconcilePaletteLibraryActive as q, resolveEventCta as qa, formatBookingTime as qc, backgroundAppearanceQuickColorTokenNames as qi, ChevronLeft as ql, SITE_CHROME_VISIBLE_HEADER_SELECTOR as qn, PlusIcon as qo, EMPTY_COMMERCE_CART_STATE as qr, SelectContent as qs, useEditorUiStoreInstance as qt, PreviewDesignHistoryOrderProvider as r, createTransformRegistry as ra, Input as rc, faqAccordionFragment as ri, publicEventPricingMode as rl, useMultiAutosave as rn, buildInteractiveIslandProps as ro, ImageResolveContextProvider as rr, resolveMediaStorageUrl as rs, idleEditorTransactionQueueState as rt, buildApplySiteStyleSelectionBody as s, OFFERINGS_PREVIEW_DEFAULT_EMPTY_MESSAGE as sa, TabsTrigger as sc, formEmbedFragment as si, formatCurrencyAmount as sl, BUILT_IN_REFERENCE_KINDS as sn, defineClientOwnedBlockRuntime as so, productListBlockDefinition as sr, getAtPath as ss, FooterComposerPanel as st, SiteChromeCustomizeProvider as t, paletteColorsEqual as ta, PopoverContent as tc, headingFragment as ti, formatBookingPriceDisplay as tl, unsafeAsLinkedContentEntryId as tn, resolveEventRegistrationScopedEvents as to, formattingTransforms as tr, resolveImageUrlWithContext as ts, deriveTransactionCapabilities as tt, PREVIEW_DESIGN_LOAD_ERROR_MESSAGE as u, buildOfferingsPreviewRenderStates as ua, DialogDescription as uc, testimonialsHeadingFragment as ui, parseMediaAssetId as ul, deriveRouteMetadataPresentation as un, composeHeaderSectionWrapperClassName as uo, buildNewsletterFormInteractiveIslandProps as ur, findButtonStyleRecipe as us, PreviewTextEditor as ut, deriveSiteStylePreviewUpdate as v, buildEventCollectionHydration as va, Root$3 as vc, getAnchorClasses as vi, ok$1 as vl, createManifestValidation as vn, shouldReserveFeatureCardIconZone as vo, buildFormInteractiveIslandProps as vr, getTextColorForBackground as vs, createSiteOptionWidgetAdapters as vt, applyResolvedSelections as w, getEventRuntimeFiltersKey as wa, DropdownMenuItem as wc, compileEditorModelRuntime as wi, Tablet as wl, useMediaEditorOptional as wn, RichTextDocSchema as wo, resolveDiscountContext as wr, asDesignBlockId as ws, IconPickerField as wt, usePreviewDesignCoordinator as x, eventCollectionHydrationSchema as xa, Surface as xc, resolveBackgroundColorValue as xi, Undo2 as xl, createStoreBackend as xn, resolveBlockIconRenderValue as xo, toRegistrationEvents as xr, resolveTokenOrCssColorValue as xs, OfferingsPreviewGroupOrderField as xt, planSiteStylePreviewChange as y, buildEventCollectionListingDisplay as ya, Trigger$3 as yc, boxStylesTransforms as yi, X as yl, FormRenderer as yn, buildGeneratedBlockIconRenderAssetLookupFromUnknown as yo, eventRegistrationBlockDefinition as yr, isCssColorLiteral as ys, SiteOptionPickerField as yt, prepareStalePaletteRetry as z, formatEventDateParts as za, clsx as zc, defaultSectionTransitionVariantForFamily as zi, Image as zl, getResponsiveScopeSpec as zn, CirclePlusIcon as zo, buildProductListInteractiveIslandProps as zr, mapOptionValueForSelect as zs, LinkWidgetProvider as zt };
|