@riverbankcms/sdk 0.121.0 → 0.124.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -9
- package/dist/{PreviewEditorSidebar-lZ600tJx.mjs → PreviewEditorSidebar-DBmAJJkQ.mjs} +24 -41
- package/dist/{PreviewEditorUI-CTBWzLSb.mjs → PreviewEditorUI-CfGaz9cY.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BHT8CJvZ.mjs → PreviewQueryProvider-BH-3-jSj.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DhPU58s7.mjs → SdkPreviewModeRuntime-BW9Z8j8T.mjs} +1020 -1234
- package/dist/{SiteChromeCustomizeContext-BkNvpzNZ.mjs → SiteChromeCustomizeContext-2z8moxYf.mjs} +1902 -1961
- package/dist/_dts/ai/src/contracts/proposals.d.ts +1236 -4152
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +435 -0
- package/dist/_dts/api/src/bookingClosures.d.ts +3 -3
- package/dist/_dts/api/src/bookingConfig.d.ts +100 -75
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +26 -35
- package/dist/_dts/api/src/bookingRecords.d.ts +4 -15
- package/dist/_dts/api/src/bookingVerticalCatalog.d.ts +746 -0
- package/dist/_dts/api/src/bookingVerticalPreset.d.ts +38 -0
- package/dist/_dts/api/src/bookingVerticals.d.ts +11 -652
- package/dist/_dts/api/src/bookings.d.ts +11 -9
- package/dist/_dts/api/src/cache-tags.d.ts +2 -2
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +10 -10
- package/dist/_dts/api/src/common/envelope.d.ts +2 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +0 -17
- package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +99 -0
- package/dist/_dts/api/src/courses.d.ts +22 -33
- package/dist/_dts/api/src/defineEndpointDefinitions.d.ts +14 -0
- package/dist/_dts/api/src/demoMutationPolicies.d.ts +4 -0
- package/dist/_dts/api/src/endpoints.d.ts +3740 -3733
- package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
- package/dist/_dts/api/src/event-presentation.d.ts +4 -9
- package/dist/_dts/api/src/index.d.ts +10 -12
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +376 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +2 -2
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +272 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +274 -0
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +31 -0
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +152 -0
- package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +95 -0
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +154 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -962
- package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +52 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +0 -51
- package/dist/_dts/api/src/sdkEntryReadEndpoints.d.ts +23 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -38
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -7
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -15
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +0 -16
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -222
- package/dist/_dts/blocks/src/portal/types.d.ts +3 -3
- package/dist/_dts/blocks/src/subroutes/fold.d.ts +1 -14
- package/dist/_dts/blocks/src/subroutes/index.d.ts +1 -1
- package/dist/_dts/blocks/src/subroutes/kinds.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -11
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +3 -4
- package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +401 -12
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +9 -10
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -13
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +1 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +19 -18
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +9 -11
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +10 -10
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -10
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +162 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +59 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +134 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/discounts.d.ts +85 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +241 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/forms.d.ts +53 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +32 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +220 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +176 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +12 -1121
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +19 -583
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -276
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +1 -12
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +2 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +1 -18
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/runs.d.ts +0 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +1 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/courseRegistrationViewState.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/pricing.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +0 -25
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseEligibility.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCoursePaymentVerification.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationActions.d.ts +35 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationPortal.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationSelection.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +80 -55
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseWaitlistSelection.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +4 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +0 -38
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +1 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +0 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +0 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +0 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +0 -11
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -21
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +24 -433
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +52 -266
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventFilters.d.ts +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1573 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +1 -3
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -3
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +0 -5
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +0 -5
- package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -3
- package/dist/_dts/core/src/editor-state.d.ts +1 -13
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1587 -115
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +6 -6
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +6 -1
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +27 -4
- package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -2
- package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +4 -6
- package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +0 -1
- package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/content/collectionWriters.d.ts +23 -0
- package/dist/_dts/sdk/src/cli/content/metadataAfterPush.d.ts +25 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +0 -52
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +3 -81
- package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +6 -9
- package/dist/_dts/sdk/src/client/contentReadOperations.d.ts +40 -0
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -3
- package/dist/_dts/sdk/src/client/management/types.d.ts +3 -91
- package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +72 -0
- package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +10 -75
- package/dist/_dts/sdk/src/client/types.d.ts +7 -33
- package/dist/_dts/sdk/src/components.d.ts +1 -1
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -6
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/page.d.ts +0 -8
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -34
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +4 -3
- package/dist/_dts/sdk/src/next/catch-all-utils.d.ts +0 -11
- package/dist/_dts/sdk/src/next/catch-all.d.ts +1 -76
- package/dist/_dts/sdk/src/next/types.d.ts +0 -19
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -207
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +0 -7
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +81 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -51
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -1
- package/dist/_dts/sdk/src/routing/entrySubroutes.d.ts +6 -6
- package/dist/_dts/sdk/src/routing/index.d.ts +0 -2
- package/dist/_dts/sdk/src/routing/resolveOccurrence.d.ts +3 -3
- package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +10 -39
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/adapter.d.ts +1 -1
- package/dist/_dts/site-commands/src/appointmentCommandSchemas.d.ts +100 -0
- package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
- package/dist/_dts/site-commands/src/commandContract.d.ts +1242 -0
- package/dist/_dts/site-commands/src/commandDomain.d.ts +20 -0
- package/dist/_dts/site-commands/src/commandIdentifiers.d.ts +7 -0
- package/dist/_dts/site-commands/src/commandValidation.d.ts +10 -0
- package/dist/_dts/site-commands/src/commands.d.ts +729 -2659
- package/dist/_dts/site-commands/src/domain.d.ts +1 -1
- package/dist/_dts/site-commands/src/eventCommandContent.d.ts +11 -0
- package/dist/_dts/site-commands/src/exposure.d.ts +1 -1
- package/dist/_dts/site-commands/src/index.d.ts +6 -0
- package/dist/_dts/site-commands/src/metadata.d.ts +1 -27
- package/dist/_dts/site-commands/src/planner.d.ts +1 -1
- package/dist/_dts/site-commands/src/refContributions.d.ts +1 -1
- package/dist/_dts/site-commands/src/refs.d.ts +1 -4
- package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +378 -0
- package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +46 -0
- package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +2 -2
- package/dist/_dts/site-commands/src/venueCommandMapping.d.ts +21 -0
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +58 -0
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +47 -24
- package/dist/cli/index.mjs +7392 -10989
- package/dist/cli/init-docs/content/cli-reference.md +5 -21
- package/dist/cli/init-docs/content/content-management.md +4 -5
- package/dist/client/{DiscountCodeDisclosure-DIWj-P9v.mjs → DiscountCodeDisclosure-DxvjKvck.mjs} +2 -2
- package/dist/client/{EventCombined.client-De8YWBSr.mjs → EventCombined.client-BydMGc4c.mjs} +5 -16
- package/dist/client/{EventListing.client-seHTjimY.mjs → EventListing.client-vpzhhysN.mjs} +3 -10
- package/dist/client/{LeafletStaticMap-BmQxFcJW.mjs → LeafletStaticMap-CB07rpf8.mjs} +1 -1
- package/dist/client/{MagicLinkForm-OoJAIUIj.mjs → MagicLinkForm-BzyRJ8VF.mjs} +2 -2
- package/dist/client/{StepIndicator-CiZ8kdPk.mjs → StepIndicator-CTcGf8Be.mjs} +2 -2
- package/dist/client/{accordion-6lnN__XJ.mjs → accordion-B-DUDLRD.mjs} +1 -1
- package/dist/client/{bookingForm-5uyqhONU.mjs → bookingForm-DSbClLcZ.mjs} +6 -6
- package/dist/client/bookings.mjs +753 -818
- package/dist/client/{carousel-Dtnifil_.mjs → carousel-B6Ccdx8M.mjs} +1 -1
- package/dist/client/{cart-5Tc5S7NV.mjs → cart-BZh8G8wM.mjs} +3 -3
- package/dist/client/{checkout-CYKKN5Hr.mjs → checkout-o6zaC-kM.mjs} +3 -3
- package/dist/client/client.mjs +7398 -7687
- package/dist/client/{context-BGZNlGXB.mjs → context-CJz1Vlsz.mjs} +40 -43
- package/dist/client/{courseRegistration-CxCBybB4.mjs → courseRegistration-Cf11pNDs.mjs} +606 -621
- package/dist/client/{eventCalendar-Xj2jZS9X.mjs → eventCalendar-BeXrdsSE.mjs} +5 -13
- package/dist/client/{eventCombined-CgcMoOgM.mjs → eventCombined-DA76PZgG.mjs} +3 -3
- package/dist/client/{eventDetails-CEAH8Edc.mjs → eventDetails-BLxg0rok.mjs} +140 -116
- package/dist/client/{eventListing-qyPVQ0wP.mjs → eventListing-tO9LheBX.mjs} +3 -3
- package/dist/client/{eventRegistration-DDu79CtL.mjs → eventRegistration-Cnene9D9.mjs} +165 -68
- package/dist/client/{form-Bc7JKI7I.mjs → form-DZf72CHB.mjs} +2 -2
- package/dist/client/{headerSection-vTku_LEl.mjs → headerSection-Hioja5Cr.mjs} +2 -2
- package/dist/client/hooks.mjs +3452 -2365
- package/dist/client/{locationMap-Bg7X4Jna.mjs → locationMap-DwhUXEix.mjs} +2 -2
- package/dist/client/{newsletterForm-lpylVdp5.mjs → newsletterForm-C350bEQf.mjs} +2 -2
- package/dist/client/{pricing-DE8fjJiT.mjs → pricing-BYWN_ATa.mjs} +3 -19
- package/dist/client/{productDetail-D7Bo2RMH.mjs → productDetail-CCqCyXgU.mjs} +3 -3
- package/dist/client/{productList-VjnZqiqN.mjs → productList-BAiNJrOU.mjs} +3 -3
- package/dist/client/{propsDecoder-DreFXjNP.mjs → propsDecoder-DeunRj6m.mjs} +210 -378
- package/dist/client/rendering/client.mjs +2541 -2813
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +5622 -4734
- package/dist/client/{shop-IRsHHbf7.mjs → shop-DUmCdBtw.mjs} +6 -6
- package/dist/client/{shop-commerce-gnI8PieZ.mjs → shop-commerce-CY27mEUr.mjs} +5 -5
- package/dist/client/{shop-commerce-store-BTbrhObn.mjs → shop-commerce-store-ChXPbWfa.mjs} +1 -1
- package/dist/client/{shopShared-D6KS2_qk.mjs → shopShared-q0kin1cv.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-DCccGCxV.mjs → useDiscountCodeUi-I-92-x2V.mjs} +2 -2
- package/dist/client/{useEventFilters-eGs3rPZQ.mjs → useEventFilters-DlcVluZh.mjs} +59 -124
- package/dist/client/{usePolling-CvSU2sur.mjs → usePolling-Bz7GFV_a.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +1115 -1043
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +1116 -1044
- package/dist/{previewAuthStore-31xH13Jc.mjs → previewAuthStore-CJX21dGi.mjs} +1119 -1044
- package/dist/{sdk-runtime-BE_vcGua.mjs → sdk-runtime-OnPM8Z69.mjs} +2 -2
- package/dist/{separator-CiffYtk3.mjs → separator-CPtfzHqA.mjs} +1 -1
- package/dist/server/components.mjs +11120 -12601
- package/dist/server/config-validation.mjs +3454 -2356
- package/dist/server/config.mjs +3454 -2356
- package/dist/server/data.mjs +3452 -2367
- package/dist/server/index.mjs +1499 -1488
- package/dist/server/next.mjs +18291 -21201
- package/dist/server/page-converter.mjs +1898 -2040
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +19666 -21153
- package/dist/server/rendering.mjs +17117 -18651
- package/dist/server/routing.mjs +3614 -2509
- package/dist/server/server.mjs +3298 -3478
- package/package.json +1 -1
- package/dist/_dts/api/src/previewContentContract.d.ts +0 -4
- package/dist/_dts/sdk/src/cli/commands/course.d.ts +0 -6
- package/dist/_dts/sdk/src/cli/commands/push/scopes/courses.d.ts +0 -4
- package/dist/_dts/sdk/src/client/management/courses.d.ts +0 -10
- package/dist/_dts/sdk/src/routing/resolveEntrySubroute.d.ts +0 -36
package/dist/{SiteChromeCustomizeContext-BkNvpzNZ.mjs → SiteChromeCustomizeContext-2z8moxYf.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";
|
|
@@ -88432,16 +88432,15 @@ const coursePricingSchema = z$1.object({
|
|
|
88432
88432
|
/**
|
|
88433
88433
|
* Zod schema for public course data
|
|
88434
88434
|
*/
|
|
88435
|
-
const
|
|
88436
|
-
|
|
88437
|
-
|
|
88435
|
+
const publicWholeSeriesOfferingSchema = z$1.object({
|
|
88436
|
+
eventSeriesId: z$1.string(),
|
|
88437
|
+
eventOfferingId: z$1.string(),
|
|
88438
88438
|
title: z$1.string(),
|
|
88439
88439
|
slug: z$1.string(),
|
|
88440
88440
|
description: z$1.unknown().nullable(),
|
|
88441
88441
|
teamMembers: z$1.array(courseTeamMemberSummarySchema).optional(),
|
|
88442
88442
|
enrollmentOpen: z$1.boolean(),
|
|
88443
|
-
pricing: coursePricingSchema
|
|
88444
|
-
priceCents: z$1.number().nullable(),
|
|
88443
|
+
pricing: coursePricingSchema,
|
|
88445
88444
|
currency: z$1.string(),
|
|
88446
88445
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
88447
88446
|
enrollmentCapacity: z$1.number().nullable(),
|
|
@@ -88455,13 +88454,11 @@ const publicCourseSchema = z$1.object({
|
|
|
88455
88454
|
enrolledCount: z$1.number(),
|
|
88456
88455
|
availableSpots: z$1.number().nullable(),
|
|
88457
88456
|
sessions: z$1.array(courseSessionSchema),
|
|
88458
|
-
venue: courseVenueSchema.nullable()
|
|
88459
|
-
contentEntryId: z$1.string().nullable()
|
|
88457
|
+
venue: courseVenueSchema.nullable()
|
|
88460
88458
|
});
|
|
88461
|
-
/**
|
|
88462
|
-
|
|
88463
|
-
|
|
88464
|
-
const publicCoursesArraySchema = z$1.array(publicCourseSchema);
|
|
88459
|
+
/** Deployed course blocks retain this schema alias for stored content. */
|
|
88460
|
+
const publicCourseSchema = publicWholeSeriesOfferingSchema;
|
|
88461
|
+
const publicCoursesArraySchema = z$1.array(publicWholeSeriesOfferingSchema);
|
|
88465
88462
|
//#endregion
|
|
88466
88463
|
//#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
88467
88464
|
function isRecord$7(value) {
|
|
@@ -88972,7 +88969,7 @@ function resolveEventCta(event, buttonText) {
|
|
|
88972
88969
|
const { isFull: isSoldOut } = getEventAvailability(event);
|
|
88973
88970
|
const destination = resolveRuntimeEventDestination(event);
|
|
88974
88971
|
const isExternal = destination.kind === "external";
|
|
88975
|
-
const defaultButtonText = isExternal ? destination.label : event.
|
|
88972
|
+
const defaultButtonText = isExternal ? destination.label : event.bookingScope === "whole_series" ? "Book course" : "Book";
|
|
88976
88973
|
const effectiveButtonText = buttonText ?? defaultButtonText;
|
|
88977
88974
|
const href = resolveEventHref(event);
|
|
88978
88975
|
if (!isExternal && isSoldOut) return {
|
|
@@ -88982,7 +88979,7 @@ function resolveEventCta(event, buttonText) {
|
|
|
88982
88979
|
hidden: true
|
|
88983
88980
|
};
|
|
88984
88981
|
return {
|
|
88985
|
-
label: !(event.
|
|
88982
|
+
label: !(event.bookingScope === "whole_series" ? event.wholeSeries?.enrollmentOpen !== false : true) ? "Registration closed" : effectiveButtonText,
|
|
88986
88983
|
href,
|
|
88987
88984
|
external: isExternal,
|
|
88988
88985
|
hidden: false
|
|
@@ -89136,10 +89133,74 @@ function buildGoogleMapsDirectionsUrl(input) {
|
|
|
89136
89133
|
return url.toString();
|
|
89137
89134
|
}
|
|
89138
89135
|
//#endregion
|
|
89136
|
+
//#region ../blocks/src/system/constants/events.ts
|
|
89137
|
+
const eventCalendarDisplayModeValues = [
|
|
89138
|
+
"combined",
|
|
89139
|
+
"calendar",
|
|
89140
|
+
"list",
|
|
89141
|
+
"timetable",
|
|
89142
|
+
"week-board"
|
|
89143
|
+
];
|
|
89144
|
+
const eventCalendarDefaultViewValues = ["month", "week"];
|
|
89145
|
+
const eventCalendarListLayoutValues = [
|
|
89146
|
+
"stack",
|
|
89147
|
+
"grid",
|
|
89148
|
+
"compact"
|
|
89149
|
+
];
|
|
89150
|
+
const eventCalendarListLayoutOptions = [
|
|
89151
|
+
{
|
|
89152
|
+
id: "stack",
|
|
89153
|
+
label: "Stack"
|
|
89154
|
+
},
|
|
89155
|
+
{
|
|
89156
|
+
id: "grid",
|
|
89157
|
+
label: "Grid"
|
|
89158
|
+
},
|
|
89159
|
+
{
|
|
89160
|
+
id: "compact",
|
|
89161
|
+
label: "Compact"
|
|
89162
|
+
}
|
|
89163
|
+
];
|
|
89164
|
+
const eventCalendarListLayoutCompatibleDisplayModeValues = ["combined", "list"];
|
|
89165
|
+
function isEventCalendarDisplayMode(value) {
|
|
89166
|
+
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
89167
|
+
}
|
|
89168
|
+
function isEventCalendarDefaultView(value) {
|
|
89169
|
+
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
89170
|
+
}
|
|
89171
|
+
function isEventCalendarListLayout(value) {
|
|
89172
|
+
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
89173
|
+
}
|
|
89174
|
+
//#endregion
|
|
89175
|
+
//#region ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
89176
|
+
const previewStageSchema = z$1.enum(["preview", "published"]);
|
|
89177
|
+
const registrationButtonVariantSchema = blockButtonRoleSchema;
|
|
89178
|
+
const eventButtonVariantSchema = persistedBlockButtonRoleSchema;
|
|
89179
|
+
const eventLayoutSchema = z$1.enum(eventCalendarListLayoutValues);
|
|
89180
|
+
const eventCalendarDisplayModeSchema = z$1.enum(eventCalendarDisplayModeValues);
|
|
89181
|
+
const eventCalendarDefaultViewSchema = z$1.enum(eventCalendarDefaultViewValues);
|
|
89182
|
+
const columnOptionSchema = z$1.enum([
|
|
89183
|
+
"2",
|
|
89184
|
+
"3",
|
|
89185
|
+
"4"
|
|
89186
|
+
]);
|
|
89187
|
+
const weekStartSchema = z$1.enum(["sunday", "monday"]);
|
|
89188
|
+
const filterAutoShowSchema = z$1.enum([
|
|
89189
|
+
"auto",
|
|
89190
|
+
"always",
|
|
89191
|
+
"never"
|
|
89192
|
+
]);
|
|
89193
|
+
const calendarTabViewsSchema = z$1.enum([
|
|
89194
|
+
"both",
|
|
89195
|
+
"month",
|
|
89196
|
+
"week"
|
|
89197
|
+
]);
|
|
89198
|
+
//#endregion
|
|
89139
89199
|
//#region ../blocks/src/system/blocks/events/shared/schemas.ts
|
|
89140
89200
|
const eventPresetSchema = z$1.enum([
|
|
89141
89201
|
"event",
|
|
89142
89202
|
"class",
|
|
89203
|
+
"course",
|
|
89143
89204
|
"workshop",
|
|
89144
89205
|
"retreat",
|
|
89145
89206
|
"performance"
|
|
@@ -89406,7 +89467,7 @@ const publicTeamMemberSummarySchema = z$1.object({
|
|
|
89406
89467
|
* Zod schema for public event data
|
|
89407
89468
|
*/
|
|
89408
89469
|
const publicEventSchema = z$1.object({
|
|
89409
|
-
|
|
89470
|
+
bookingScope: z$1.enum(["single_occurrence", "whole_series"]),
|
|
89410
89471
|
eventPreset: eventPresetSchema.optional(),
|
|
89411
89472
|
eventDestinationMode: eventDestinationModeSchema.optional(),
|
|
89412
89473
|
scheduleScope: eventScheduleScopeSchema$2.optional(),
|
|
@@ -89454,10 +89515,9 @@ const publicEventSchema = z$1.object({
|
|
|
89454
89515
|
requireGuestDetails: z$1.boolean().optional(),
|
|
89455
89516
|
acceptsPasses: z$1.boolean().optional(),
|
|
89456
89517
|
acceptsMemberships: z$1.boolean().optional(),
|
|
89457
|
-
|
|
89458
|
-
|
|
89459
|
-
pricing: coursePricingSchema
|
|
89460
|
-
priceCents: z$1.number().nullable(),
|
|
89518
|
+
wholeSeries: z$1.object({
|
|
89519
|
+
eventSeriesId: z$1.string(),
|
|
89520
|
+
pricing: coursePricingSchema,
|
|
89461
89521
|
currency: z$1.string(),
|
|
89462
89522
|
enrollmentOpen: z$1.boolean()
|
|
89463
89523
|
}).nullable().optional()
|
|
@@ -89745,12 +89805,8 @@ function normalizeIdList(parts) {
|
|
|
89745
89805
|
}
|
|
89746
89806
|
//#endregion
|
|
89747
89807
|
//#region ../blocks/src/system/blocks/events/shared/filtering.ts
|
|
89748
|
-
const eventBlockKindValues = [
|
|
89749
|
-
"all",
|
|
89750
|
-
"courses",
|
|
89751
|
-
"events"
|
|
89752
|
-
];
|
|
89753
89808
|
const eventSurfacePresetValues = [
|
|
89809
|
+
"course",
|
|
89754
89810
|
"class",
|
|
89755
89811
|
"workshop",
|
|
89756
89812
|
"retreat",
|
|
@@ -89769,9 +89825,6 @@ const eventScheduleScopeValues = [
|
|
|
89769
89825
|
];
|
|
89770
89826
|
const unsafeAsEventCategoryId = (value) => value;
|
|
89771
89827
|
const unsafeAsVenueId = (value) => value;
|
|
89772
|
-
function normalizeEventBlockKind(value) {
|
|
89773
|
-
return value === "courses" || value === "events" ? value : "all";
|
|
89774
|
-
}
|
|
89775
89828
|
function normalizeEventSurfaceScope(value) {
|
|
89776
89829
|
return value === "regularClassSchedule" || value === "specialDatedEvents" || value === "custom" ? value : "all";
|
|
89777
89830
|
}
|
|
@@ -90063,86 +90116,6 @@ function eventSectionHeaderLayoutNodes(options = {}) {
|
|
|
90063
90116
|
return [headingNode, descriptionNode];
|
|
90064
90117
|
}
|
|
90065
90118
|
//#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
90119
|
//#region ../blocks/src/system/runtime/hooks/utils/normalize.ts
|
|
90147
90120
|
function normalizeOptionalId(value) {
|
|
90148
90121
|
const trimmed = typeof value === "string" ? value.trim() : void 0;
|
|
@@ -90217,15 +90190,8 @@ function buildEventRuntimeFilters(input) {
|
|
|
90217
90190
|
if (input.scheduleScope && input.scheduleScope !== "any") params.scheduleScope = input.scheduleScope;
|
|
90218
90191
|
const venueId = normalizeFilterId(input.filterVenueId);
|
|
90219
90192
|
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
90193
|
const categoryIds = normalizeCsvString(input.filterCategoryIds);
|
|
90227
90194
|
if (categoryIds) params.categoryIds = categoryIds;
|
|
90228
|
-
if (input.eventKind === "events") params.kind = "events";
|
|
90229
90195
|
if (venueId) params.venueId = venueId;
|
|
90230
90196
|
if (staffMemberId) params.staffMemberId = staffMemberId;
|
|
90231
90197
|
return params;
|
|
@@ -90235,13 +90201,157 @@ function getEventRuntimeFiltersKey(filters) {
|
|
|
90235
90201
|
categoryIds: normalizeCsvString(filters?.categoryIds),
|
|
90236
90202
|
staffMemberId: normalizeOptionalId(filters?.staffMemberId),
|
|
90237
90203
|
venueId: normalizeOptionalId(filters?.venueId),
|
|
90238
|
-
kind: filters?.kind ?? null,
|
|
90239
90204
|
eventSurface: filters?.eventSurface ?? null,
|
|
90240
90205
|
eventPresets: normalizeCsvString(filters?.eventPresets),
|
|
90241
90206
|
scheduleScope: filters?.scheduleScope ?? null
|
|
90242
90207
|
});
|
|
90243
90208
|
}
|
|
90244
90209
|
//#endregion
|
|
90210
|
+
//#region ../blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.ts
|
|
90211
|
+
const eventSurfaceScopeSchema$1 = z$1.enum(eventSurfaceScopeValues);
|
|
90212
|
+
const eventScheduleScopeSchema$1 = z$1.enum(eventScheduleScopeValues);
|
|
90213
|
+
const eventCollectionFilterSourceSchemaShape = {
|
|
90214
|
+
showFilters: z$1.boolean().nullable().optional(),
|
|
90215
|
+
showCategoryFilter: filterAutoShowSchema.optional(),
|
|
90216
|
+
showVenueFilter: z$1.boolean().nullable().optional(),
|
|
90217
|
+
showStaffFilter: z$1.boolean().nullable().optional(),
|
|
90218
|
+
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
90219
|
+
filterEventPresets: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
90220
|
+
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
90221
|
+
filterCategoryIds: z$1.union([z$1.string(), z$1.array(z$1.string())]).nullable().optional(),
|
|
90222
|
+
filterStaffMemberId: z$1.string().nullable().optional(),
|
|
90223
|
+
filterVenueId: z$1.string().nullable().optional()
|
|
90224
|
+
};
|
|
90225
|
+
const eventCollectionSourceSchemaShape = {
|
|
90226
|
+
events: z$1.array(publicEventSchema).nullable().optional(),
|
|
90227
|
+
siteId: z$1.string(),
|
|
90228
|
+
apiBaseUrl: z$1.string().optional(),
|
|
90229
|
+
stage: previewStageSchema.optional(),
|
|
90230
|
+
listLayout: eventLayoutSchema.optional(),
|
|
90231
|
+
listColumns: columnOptionSchema.optional(),
|
|
90232
|
+
eventsPerPage: z$1.string().optional(),
|
|
90233
|
+
paginationMode: z$1.enum(["loadMore", "seeAllLink"]).optional(),
|
|
90234
|
+
seeAllUrl: z$1.string().optional(),
|
|
90235
|
+
loadMoreText: z$1.string().optional(),
|
|
90236
|
+
startOfWeek: weekStartSchema.optional(),
|
|
90237
|
+
calendarTabViews: calendarTabViewsSchema.optional(),
|
|
90238
|
+
defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
|
|
90239
|
+
...eventCollectionFilterSourceSchemaShape,
|
|
90240
|
+
showVenue: z$1.boolean().nullable().optional(),
|
|
90241
|
+
showMap: z$1.boolean().nullable().optional(),
|
|
90242
|
+
showCapacity: z$1.boolean().nullable().optional(),
|
|
90243
|
+
buttonVariant: eventButtonVariantSchema.optional(),
|
|
90244
|
+
buttonText: z$1.string().optional(),
|
|
90245
|
+
emptyMessage: z$1.string().optional(),
|
|
90246
|
+
className: z$1.string().optional()
|
|
90247
|
+
};
|
|
90248
|
+
const eventCollectionDisplaySchemaShape = {
|
|
90249
|
+
events: z$1.array(publicEventSchema),
|
|
90250
|
+
listLayout: eventLayoutSchema,
|
|
90251
|
+
listColumns: columnOptionSchema,
|
|
90252
|
+
eventsPerPage: eventPageSizeSchema,
|
|
90253
|
+
paginationAction: eventListPaginationActionSchema,
|
|
90254
|
+
startOfWeek: weekStartSchema,
|
|
90255
|
+
calendarTabViews: calendarTabViewsSchema,
|
|
90256
|
+
defaultCalendarView: eventCalendarDefaultViewSchema,
|
|
90257
|
+
showFilters: z$1.boolean(),
|
|
90258
|
+
showCategoryFilter: filterAutoShowSchema,
|
|
90259
|
+
showVenueFilter: z$1.boolean(),
|
|
90260
|
+
showStaffFilter: z$1.boolean(),
|
|
90261
|
+
eventSurface: eventSurfaceScopeSchema$1,
|
|
90262
|
+
filterEventPresets: z$1.string().nullable(),
|
|
90263
|
+
scheduleScope: eventScheduleScopeSchema$1,
|
|
90264
|
+
filterCategoryIds: z$1.string().nullable(),
|
|
90265
|
+
filterStaffMemberId: z$1.string().nullable(),
|
|
90266
|
+
filterVenueId: z$1.string().nullable(),
|
|
90267
|
+
showVenue: z$1.boolean(),
|
|
90268
|
+
showMap: z$1.boolean(),
|
|
90269
|
+
showCapacity: z$1.boolean(),
|
|
90270
|
+
buttonVariant: eventButtonVariantSchema,
|
|
90271
|
+
buttonText: z$1.string(),
|
|
90272
|
+
emptyMessage: z$1.string()
|
|
90273
|
+
};
|
|
90274
|
+
const eventCollectionHydrationSchema = z$1.object({
|
|
90275
|
+
siteId: z$1.string(),
|
|
90276
|
+
stage: previewStageSchema.optional(),
|
|
90277
|
+
prefetchedEvents: z$1.boolean(),
|
|
90278
|
+
eventSurface: eventSurfaceScopeSchema$1,
|
|
90279
|
+
filterEventPresets: z$1.string().nullable(),
|
|
90280
|
+
scheduleScope: eventScheduleScopeSchema$1
|
|
90281
|
+
});
|
|
90282
|
+
function buildEventCollectionDisplay(source) {
|
|
90283
|
+
return {
|
|
90284
|
+
...buildEventCollectionFilterDisplay(source),
|
|
90285
|
+
...buildEventCollectionPresentationDisplay(source),
|
|
90286
|
+
events: Array.isArray(source.events) ? [...source.events] : [],
|
|
90287
|
+
listLayout: source.listLayout ?? "stack",
|
|
90288
|
+
listColumns: source.listColumns ?? "3",
|
|
90289
|
+
eventsPerPage: resolveEventCalendarListPageSize({ eventsPerPage: source.eventsPerPage }),
|
|
90290
|
+
paginationAction: resolveEventListPaginationAction({
|
|
90291
|
+
paginationMode: source.paginationMode,
|
|
90292
|
+
seeAllUrl: source.seeAllUrl,
|
|
90293
|
+
loadMoreText: source.loadMoreText
|
|
90294
|
+
}),
|
|
90295
|
+
startOfWeek: source.startOfWeek ?? "monday",
|
|
90296
|
+
calendarTabViews: source.calendarTabViews ?? "both",
|
|
90297
|
+
defaultCalendarView: source.defaultCalendarView ?? "month"
|
|
90298
|
+
};
|
|
90299
|
+
}
|
|
90300
|
+
function buildEventCollectionFilterDisplay(source) {
|
|
90301
|
+
return {
|
|
90302
|
+
showFilters: source.showFilters ?? true,
|
|
90303
|
+
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
90304
|
+
showVenueFilter: source.showVenueFilter ?? false,
|
|
90305
|
+
showStaffFilter: source.showStaffFilter ?? true,
|
|
90306
|
+
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
90307
|
+
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
90308
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
90309
|
+
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
90310
|
+
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
90311
|
+
filterVenueId: normalizeEventVenueId(source.filterVenueId)
|
|
90312
|
+
};
|
|
90313
|
+
}
|
|
90314
|
+
function buildEventCollectionPresentationDisplay(source) {
|
|
90315
|
+
return {
|
|
90316
|
+
showVenue: source.showVenue ?? true,
|
|
90317
|
+
showMap: source.showMap ?? true,
|
|
90318
|
+
showCapacity: source.showCapacity ?? true,
|
|
90319
|
+
buttonVariant: source.buttonVariant ?? "primary",
|
|
90320
|
+
buttonText: source.buttonText ?? "Book",
|
|
90321
|
+
emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
|
|
90322
|
+
};
|
|
90323
|
+
}
|
|
90324
|
+
function buildEventCollectionHydration(source) {
|
|
90325
|
+
return {
|
|
90326
|
+
siteId: source.siteId,
|
|
90327
|
+
stage: source.stage,
|
|
90328
|
+
prefetchedEvents: source.events != null,
|
|
90329
|
+
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
90330
|
+
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
90331
|
+
scheduleScope: normalizeEventScheduleScope(source.scheduleScope)
|
|
90332
|
+
};
|
|
90333
|
+
}
|
|
90334
|
+
function buildEventCollectionListingDisplay(display, prefetchedEvents, className) {
|
|
90335
|
+
const initialEvents = display.events.slice(0, display.eventsPerPage);
|
|
90336
|
+
return {
|
|
90337
|
+
kind: "event-listing",
|
|
90338
|
+
state: initialEvents.length === 0 ? prefetchedEvents ? "empty" : "loading" : "ready",
|
|
90339
|
+
listLayout: display.listLayout,
|
|
90340
|
+
className,
|
|
90341
|
+
emptyMessage: display.emptyMessage,
|
|
90342
|
+
loadingMessage: "Loading events…",
|
|
90343
|
+
containerClass: getContainerClass(display.listLayout, display.listColumns),
|
|
90344
|
+
cardVariant: "default",
|
|
90345
|
+
buttonVariant: display.buttonVariant,
|
|
90346
|
+
buttonText: display.buttonText,
|
|
90347
|
+
showVenue: display.showVenue,
|
|
90348
|
+
showMap: display.showMap,
|
|
90349
|
+
showCapacity: display.showCapacity,
|
|
90350
|
+
orientation: getCardOrientation(display.listLayout),
|
|
90351
|
+
events: initialEvents
|
|
90352
|
+
};
|
|
90353
|
+
}
|
|
90354
|
+
//#endregion
|
|
90245
90355
|
//#region ../blocks/src/system/spacing.ts
|
|
90246
90356
|
/**
|
|
90247
90357
|
* Type-safe spacing system for sections and containers.
|
|
@@ -90560,7 +90670,7 @@ function buildOfferingsPreviewRenderStates(input) {
|
|
|
90560
90670
|
return states;
|
|
90561
90671
|
}
|
|
90562
90672
|
function sourceFromPresetSummary(preset) {
|
|
90563
|
-
if (preset.engine === "
|
|
90673
|
+
if (preset.engine === "event_series" && preset.canonicalBehaviour === "course") return { kind: "course" };
|
|
90564
90674
|
if (preset.engine !== "event_series") return null;
|
|
90565
90675
|
if (isOfferingsPreviewEventPreset(preset.canonicalBehaviour)) return {
|
|
90566
90676
|
kind: "eventPreset",
|
|
@@ -90621,13 +90731,12 @@ function resolveAutoCtaPath(source, routes) {
|
|
|
90621
90731
|
return routeByNormalizedPath.get("/offerings") ?? null;
|
|
90622
90732
|
}
|
|
90623
90733
|
function resolveOfferingsPreviewCoursePath(course, routes) {
|
|
90624
|
-
|
|
90625
|
-
|
|
90626
|
-
|
|
90627
|
-
|
|
90628
|
-
|
|
90629
|
-
|
|
90630
|
-
return `${basePath}/${slug}`;
|
|
90734
|
+
const routeIds = [course.eventSeriesId, course.eventOfferingId];
|
|
90735
|
+
for (const entityId of routeIds) {
|
|
90736
|
+
const path = normalizeRoutePath((routes ?? []).find((candidate) => candidate.entityId === entityId)?.path);
|
|
90737
|
+
if (path) return path;
|
|
90738
|
+
}
|
|
90739
|
+
return null;
|
|
90631
90740
|
}
|
|
90632
90741
|
function preferredPathsForSource(source) {
|
|
90633
90742
|
switch (source.kind) {
|
|
@@ -90648,11 +90757,6 @@ function normalizeRoutePath(value) {
|
|
|
90648
90757
|
const path = text.startsWith("/") ? text : `/${text}`;
|
|
90649
90758
|
return path.length > 1 ? path.replace(/\/+$/, "") : path;
|
|
90650
90759
|
}
|
|
90651
|
-
function normalizePathSegment(value) {
|
|
90652
|
-
const text = normalizeTextOverride(value);
|
|
90653
|
-
if (!text) return null;
|
|
90654
|
-
return text.replace(/^\/+|\/+$/g, "");
|
|
90655
|
-
}
|
|
90656
90760
|
function isOfferingsPreviewEventPreset(value) {
|
|
90657
90761
|
return typeof value === "string" && OFFERINGS_PREVIEW_EVENT_PRESETS.includes(value);
|
|
90658
90762
|
}
|
|
@@ -95860,1029 +95964,6 @@ function uniqueStrings(values) {
|
|
|
95860
95964
|
return Array.from(new Set(values));
|
|
95861
95965
|
}
|
|
95862
95966
|
//#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
95967
|
//#region ../theme-core/src/site-styles/customizableSurfaces.ts
|
|
96887
95968
|
function uniqueLookIds(ids) {
|
|
96888
95969
|
const result = [];
|
|
@@ -96982,7 +96063,7 @@ const defaultHeaderSelectionContext = {
|
|
|
96982
96063
|
cta: { importance: "medium" },
|
|
96983
96064
|
banner: { persistentVisibility: "possible" }
|
|
96984
96065
|
};
|
|
96985
|
-
function
|
|
96066
|
+
function completeHeaderSelectionContext(context) {
|
|
96986
96067
|
return mergeWithDefaults(defaultHeaderSelectionContext, context);
|
|
96987
96068
|
}
|
|
96988
96069
|
const titleOnlyLogoAccommodation = {
|
|
@@ -98248,286 +97329,1337 @@ function centeredCalmHeader(theme) {
|
|
|
98248
97329
|
ctaGap: "none"
|
|
98249
97330
|
};
|
|
98250
97331
|
}
|
|
98251
|
-
function practicalUtilityHeader(theme) {
|
|
98252
|
-
return {
|
|
98253
|
-
...baseHeader(theme),
|
|
98254
|
-
variant: "classic",
|
|
98255
|
-
positioning: "sticky",
|
|
98256
|
-
shrinkOnScroll: true,
|
|
98257
|
-
background: {
|
|
98258
|
-
type: "color",
|
|
98259
|
-
color: "surface"
|
|
98260
|
-
},
|
|
98261
|
-
textColor: "text",
|
|
98262
|
-
navColor: "text",
|
|
98263
|
-
navStyle: "solid",
|
|
98264
|
-
navWeight: "semibold",
|
|
98265
|
-
shadow: themedHeaderShadow(theme),
|
|
98266
|
-
border: {
|
|
98267
|
-
style: "solid",
|
|
98268
|
-
width: "thin",
|
|
98269
|
-
position: "bottom",
|
|
98270
|
-
colorToken: "border"
|
|
98271
|
-
},
|
|
98272
|
-
ctaTreatment: "primary",
|
|
98273
|
-
ctaVariant: resolveHeaderCtaVariant(theme, "primary"),
|
|
98274
|
-
ctaGap: "compact",
|
|
98275
|
-
logoText: {
|
|
98276
|
-
mobileMaxWidth: "sm",
|
|
98277
|
-
mobileWrapLines: 1,
|
|
98278
|
-
hideOnShrink: false
|
|
98279
|
-
}
|
|
98280
|
-
};
|
|
97332
|
+
function practicalUtilityHeader(theme) {
|
|
97333
|
+
return {
|
|
97334
|
+
...baseHeader(theme),
|
|
97335
|
+
variant: "classic",
|
|
97336
|
+
positioning: "sticky",
|
|
97337
|
+
shrinkOnScroll: true,
|
|
97338
|
+
background: {
|
|
97339
|
+
type: "color",
|
|
97340
|
+
color: "surface"
|
|
97341
|
+
},
|
|
97342
|
+
textColor: "text",
|
|
97343
|
+
navColor: "text",
|
|
97344
|
+
navStyle: "solid",
|
|
97345
|
+
navWeight: "semibold",
|
|
97346
|
+
shadow: themedHeaderShadow(theme),
|
|
97347
|
+
border: {
|
|
97348
|
+
style: "solid",
|
|
97349
|
+
width: "thin",
|
|
97350
|
+
position: "bottom",
|
|
97351
|
+
colorToken: "border"
|
|
97352
|
+
},
|
|
97353
|
+
ctaTreatment: "primary",
|
|
97354
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "primary"),
|
|
97355
|
+
ctaGap: "compact",
|
|
97356
|
+
logoText: {
|
|
97357
|
+
mobileMaxWidth: "sm",
|
|
97358
|
+
mobileWrapLines: 1,
|
|
97359
|
+
hideOnShrink: false
|
|
97360
|
+
}
|
|
97361
|
+
};
|
|
97362
|
+
}
|
|
97363
|
+
function minimalTransparentHeader(theme) {
|
|
97364
|
+
return {
|
|
97365
|
+
...baseHeader(theme),
|
|
97366
|
+
variant: "classic",
|
|
97367
|
+
positioning: "static",
|
|
97368
|
+
shrinkOnScroll: false,
|
|
97369
|
+
background: {
|
|
97370
|
+
type: "color",
|
|
97371
|
+
color: "transparent"
|
|
97372
|
+
},
|
|
97373
|
+
textColor: "text",
|
|
97374
|
+
navColor: "text",
|
|
97375
|
+
navStyle: "underline",
|
|
97376
|
+
navWeight: "medium",
|
|
97377
|
+
border: {
|
|
97378
|
+
style: "solid",
|
|
97379
|
+
width: "none",
|
|
97380
|
+
position: "none"
|
|
97381
|
+
},
|
|
97382
|
+
ctaTreatment: "outline",
|
|
97383
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "outline"),
|
|
97384
|
+
ctaGap: "default"
|
|
97385
|
+
};
|
|
97386
|
+
}
|
|
97387
|
+
function transparentOverlayHeader(theme) {
|
|
97388
|
+
return {
|
|
97389
|
+
...baseHeader(theme),
|
|
97390
|
+
variant: "transparent",
|
|
97391
|
+
positioning: "fixed",
|
|
97392
|
+
shrinkOnScroll: true,
|
|
97393
|
+
background: {
|
|
97394
|
+
type: "color",
|
|
97395
|
+
color: "transparent"
|
|
97396
|
+
},
|
|
97397
|
+
textColor: "background",
|
|
97398
|
+
navColor: "background",
|
|
97399
|
+
navStyle: "frosted",
|
|
97400
|
+
navWeight: "semibold",
|
|
97401
|
+
border: {
|
|
97402
|
+
style: "solid",
|
|
97403
|
+
width: "none",
|
|
97404
|
+
position: "none"
|
|
97405
|
+
},
|
|
97406
|
+
ctaTreatment: "inverted",
|
|
97407
|
+
ctaVariant: resolveHeaderCtaVariant(theme, "inverted"),
|
|
97408
|
+
ctaGap: "compact"
|
|
97409
|
+
};
|
|
97410
|
+
}
|
|
97411
|
+
function floatingGlassHeader(theme) {
|
|
97412
|
+
return {
|
|
97413
|
+
...transparentOverlayHeader(theme),
|
|
97414
|
+
variant: "floating",
|
|
97415
|
+
positioning: "sticky",
|
|
97416
|
+
navStyle: "frosted",
|
|
97417
|
+
navContainer: {
|
|
97418
|
+
type: "glass",
|
|
97419
|
+
tint: "text",
|
|
97420
|
+
opacity: .16
|
|
97421
|
+
},
|
|
97422
|
+
container: {
|
|
97423
|
+
rounded: "2xl",
|
|
97424
|
+
border: true,
|
|
97425
|
+
shadow: true,
|
|
97426
|
+
padding: "sm",
|
|
97427
|
+
tint: "background",
|
|
97428
|
+
opacity: .12
|
|
97429
|
+
}
|
|
97430
|
+
};
|
|
97431
|
+
}
|
|
97432
|
+
const headerLookCatalog = defineExactCatalog()([
|
|
97433
|
+
{
|
|
97434
|
+
id: asHeaderLookId("clean-base"),
|
|
97435
|
+
label: "Clean base",
|
|
97436
|
+
visualTreatment: "solid-neutral",
|
|
97437
|
+
layoutBehavior: "sticky",
|
|
97438
|
+
configuration: {
|
|
97439
|
+
structure: "inline-classic",
|
|
97440
|
+
treatment: "solid-neutral",
|
|
97441
|
+
behavior: "sticky"
|
|
97442
|
+
},
|
|
97443
|
+
openingRequirement: "none",
|
|
97444
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97445
|
+
compile: cleanBaseHeader
|
|
97446
|
+
},
|
|
97447
|
+
{
|
|
97448
|
+
id: asHeaderLookId("classic-centered-nav"),
|
|
97449
|
+
label: "Centered nav",
|
|
97450
|
+
visualTreatment: "solid-neutral",
|
|
97451
|
+
layoutBehavior: "sticky",
|
|
97452
|
+
configuration: {
|
|
97453
|
+
structure: "inline-classic",
|
|
97454
|
+
treatment: "solid-neutral",
|
|
97455
|
+
behavior: "sticky"
|
|
97456
|
+
},
|
|
97457
|
+
openingRequirement: "none",
|
|
97458
|
+
maxRecommendedNavItems: 6,
|
|
97459
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97460
|
+
compile: classicCenteredNavHeader
|
|
97461
|
+
},
|
|
97462
|
+
{
|
|
97463
|
+
id: asHeaderLookId("brand-solid"),
|
|
97464
|
+
label: "Brand solid",
|
|
97465
|
+
visualTreatment: "solid-brand",
|
|
97466
|
+
layoutBehavior: "sticky-shrink",
|
|
97467
|
+
configuration: {
|
|
97468
|
+
structure: "inline-classic",
|
|
97469
|
+
treatment: "solid-brand",
|
|
97470
|
+
behavior: "sticky-shrink"
|
|
97471
|
+
},
|
|
97472
|
+
openingRequirement: "none",
|
|
97473
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97474
|
+
compile: solidBrandHeader
|
|
97475
|
+
},
|
|
97476
|
+
{
|
|
97477
|
+
id: asHeaderLookId("serif-line"),
|
|
97478
|
+
label: "Serif line",
|
|
97479
|
+
visualTreatment: "light-serif",
|
|
97480
|
+
layoutBehavior: "sticky",
|
|
97481
|
+
configuration: {
|
|
97482
|
+
structure: "centered-stack",
|
|
97483
|
+
treatment: "light-serif",
|
|
97484
|
+
behavior: "sticky"
|
|
97485
|
+
},
|
|
97486
|
+
openingRequirement: "none",
|
|
97487
|
+
maxRecommendedNavItems: 6,
|
|
97488
|
+
logoAccommodations: centeredLogoAccommodations,
|
|
97489
|
+
compile: serifLineHeader
|
|
97490
|
+
},
|
|
97491
|
+
{
|
|
97492
|
+
id: asHeaderLookId("centered-calm"),
|
|
97493
|
+
label: "Centered calm",
|
|
97494
|
+
visualTreatment: "light-serif",
|
|
97495
|
+
layoutBehavior: "normal-flow",
|
|
97496
|
+
configuration: {
|
|
97497
|
+
structure: "centered-stack",
|
|
97498
|
+
treatment: "light-serif",
|
|
97499
|
+
behavior: "normal-flow"
|
|
97500
|
+
},
|
|
97501
|
+
openingRequirement: "none",
|
|
97502
|
+
maxRecommendedNavItems: 5,
|
|
97503
|
+
logoAccommodations: centeredLogoAccommodations,
|
|
97504
|
+
compile: centeredCalmHeader
|
|
97505
|
+
},
|
|
97506
|
+
{
|
|
97507
|
+
id: asHeaderLookId("practical-utility"),
|
|
97508
|
+
label: "Practical utility",
|
|
97509
|
+
visualTreatment: "solid-neutral",
|
|
97510
|
+
layoutBehavior: "sticky-shrink",
|
|
97511
|
+
configuration: {
|
|
97512
|
+
structure: "inline-classic",
|
|
97513
|
+
treatment: "solid-neutral",
|
|
97514
|
+
behavior: "sticky-shrink"
|
|
97515
|
+
},
|
|
97516
|
+
openingRequirement: "none",
|
|
97517
|
+
requiresProminentCta: true,
|
|
97518
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97519
|
+
compile: practicalUtilityHeader
|
|
97520
|
+
},
|
|
97521
|
+
{
|
|
97522
|
+
id: asHeaderLookId("minimal-transparent"),
|
|
97523
|
+
label: "Minimal transparent",
|
|
97524
|
+
visualTreatment: "minimal-transparent",
|
|
97525
|
+
layoutBehavior: "normal-flow",
|
|
97526
|
+
configuration: {
|
|
97527
|
+
structure: "inline-classic",
|
|
97528
|
+
treatment: "minimal-transparent",
|
|
97529
|
+
behavior: "normal-flow"
|
|
97530
|
+
},
|
|
97531
|
+
openingRequirement: "reserved-space-ok",
|
|
97532
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
97533
|
+
compile: minimalTransparentHeader
|
|
97534
|
+
},
|
|
97535
|
+
{
|
|
97536
|
+
id: asHeaderLookId("transparent-overlay"),
|
|
97537
|
+
label: "Transparent overlay",
|
|
97538
|
+
visualTreatment: "transparent-overlay",
|
|
97539
|
+
layoutBehavior: "fixed-overlay",
|
|
97540
|
+
configuration: {
|
|
97541
|
+
structure: "inline-classic",
|
|
97542
|
+
treatment: "transparent-overlay",
|
|
97543
|
+
behavior: "fixed-overlay"
|
|
97544
|
+
},
|
|
97545
|
+
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
97546
|
+
maxRecommendedNavItems: 5,
|
|
97547
|
+
logoAccommodations: overlayLogoAccommodations,
|
|
97548
|
+
compile: transparentOverlayHeader
|
|
97549
|
+
},
|
|
97550
|
+
{
|
|
97551
|
+
id: asHeaderLookId("floating-glass"),
|
|
97552
|
+
label: "Floating glass",
|
|
97553
|
+
visualTreatment: "floating-glass",
|
|
97554
|
+
layoutBehavior: "fixed-floating",
|
|
97555
|
+
configuration: {
|
|
97556
|
+
structure: "floating-shell",
|
|
97557
|
+
treatment: "floating-glass",
|
|
97558
|
+
behavior: "fixed-floating"
|
|
97559
|
+
},
|
|
97560
|
+
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
97561
|
+
maxRecommendedNavItems: 5,
|
|
97562
|
+
logoAccommodations: overlayLogoAccommodations,
|
|
97563
|
+
compile: floatingGlassHeader
|
|
97564
|
+
}
|
|
97565
|
+
]);
|
|
97566
|
+
const guaranteedFallbackHeaderLookId = asHeaderLookId("clean-base");
|
|
97567
|
+
new Set(headerLookCatalog.map((look) => headerConfigurationKey(look.configuration)));
|
|
97568
|
+
const headerLooksById = new Map(headerLookCatalog.map((look) => [look.id, look]));
|
|
97569
|
+
function headerConfigurationKey(configuration) {
|
|
97570
|
+
return `${configuration.structure}:${configuration.treatment}:${configuration.behavior}`;
|
|
97571
|
+
}
|
|
97572
|
+
function getHeaderLook(id) {
|
|
97573
|
+
return headerLooksById.get(id) ?? null;
|
|
97574
|
+
}
|
|
97575
|
+
function getHeaderLookOrThrow(id) {
|
|
97576
|
+
const look = getHeaderLook(id);
|
|
97577
|
+
if (!look) throw new Error(`Unknown Theme V2 header Look: ${id}`);
|
|
97578
|
+
return look;
|
|
97579
|
+
}
|
|
97580
|
+
function rejectReasonsForLook(look, context) {
|
|
97581
|
+
const brandPresentation = resolveHeaderBrandPresentation({
|
|
97582
|
+
logo: context.logo,
|
|
97583
|
+
accommodations: look.logoAccommodations
|
|
97584
|
+
});
|
|
97585
|
+
return [
|
|
97586
|
+
...look.maxRecommendedNavItems !== void 0 && context.navigation.itemCount > look.maxRecommendedNavItems ? ["too-many-nav-items"] : [],
|
|
97587
|
+
...brandPresentation.kind === "rejected" ? brandPresentation.reasons : [],
|
|
97588
|
+
...look.requiresProminentCta && context.cta.importance === "low" ? ["cta-treatment-unavailable"] : []
|
|
97589
|
+
];
|
|
97590
|
+
}
|
|
97591
|
+
function resolveHeaderLook(input) {
|
|
97592
|
+
const context = completeHeaderSelectionContext(input.context);
|
|
97593
|
+
const result = resolveLook({
|
|
97594
|
+
recommendedLookIds: input.recommendedLookIds,
|
|
97595
|
+
guaranteedFallbackLookId: guaranteedFallbackHeaderLookId,
|
|
97596
|
+
getLookOrThrow: getHeaderLookOrThrow,
|
|
97597
|
+
context,
|
|
97598
|
+
rejectReasonsForLook,
|
|
97599
|
+
compileLook: (look) => look.compile(input.theme)
|
|
97600
|
+
});
|
|
97601
|
+
return {
|
|
97602
|
+
selectedLookId: result.selectedLookId,
|
|
97603
|
+
selectedLook: result.selectedLook,
|
|
97604
|
+
header: result.compiled,
|
|
97605
|
+
brandPresentation: requireHeaderBrandPresentationSelection(resolveHeaderBrandPresentation({
|
|
97606
|
+
logo: context.logo,
|
|
97607
|
+
accommodations: result.selectedLook.logoAccommodations,
|
|
97608
|
+
allowDisplayFallback: true
|
|
97609
|
+
})),
|
|
97610
|
+
rejected: result.rejected
|
|
97611
|
+
};
|
|
97612
|
+
}
|
|
97613
|
+
//#endregion
|
|
97614
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
97615
|
+
const defaultHeaderBrandPreferences = {
|
|
97616
|
+
brandDisplay: "auto",
|
|
97617
|
+
logoSize: "auto"
|
|
97618
|
+
};
|
|
97619
|
+
function headerBrandPreferencesFromTheme(theme) {
|
|
97620
|
+
return {
|
|
97621
|
+
brandDisplay: theme?.header.logo?.brandDisplay ?? defaultHeaderBrandPreferences.brandDisplay,
|
|
97622
|
+
logoSize: theme?.header.logo?.size ?? defaultHeaderBrandPreferences.logoSize
|
|
97623
|
+
};
|
|
97624
|
+
}
|
|
97625
|
+
function replaceSiteStyleCompilationPlan(input = {}) {
|
|
97626
|
+
return {
|
|
97627
|
+
kind: "replace-site-style",
|
|
97628
|
+
header: {
|
|
97629
|
+
kind: "recompile",
|
|
97630
|
+
selection: {
|
|
97631
|
+
headerLookId: input.headerLookId ?? null,
|
|
97632
|
+
headerLayoutId: input.headerLayoutId ?? null,
|
|
97633
|
+
headerStyleId: input.headerStyleId ?? null
|
|
97634
|
+
},
|
|
97635
|
+
context: completeHeaderSelectionContext(input.headerSelectionContext),
|
|
97636
|
+
brandPresentation: input.headerSelectionContext?.logo === void 0 ? { kind: "use-compiled-defaults" } : { kind: "apply-logo-context" }
|
|
97637
|
+
},
|
|
97638
|
+
footerLookId: input.footerLookId ?? null
|
|
97639
|
+
};
|
|
97640
|
+
}
|
|
97641
|
+
//#endregion
|
|
97642
|
+
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
97643
|
+
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
97644
|
+
return {
|
|
97645
|
+
family,
|
|
97646
|
+
size,
|
|
97647
|
+
heightCss: heightExpression.includes(" ") ? `calc(${heightExpression})` : heightExpression,
|
|
97648
|
+
reserveCss: `calc((${heightExpression}) / 2)`
|
|
97649
|
+
};
|
|
97650
|
+
}
|
|
97651
|
+
const sectionBoundaryRuntimeMetricsByTransition = {
|
|
97652
|
+
none: null,
|
|
97653
|
+
"soft-fade-short": boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"),
|
|
97654
|
+
"soft-fade-long": boundaryRuntimeMetrics("gradient", "spacious", "10rem"),
|
|
97655
|
+
"soft-fade-expansive": boundaryRuntimeMetrics("gradient", "expansive", "14rem"),
|
|
97656
|
+
"wave-edge": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
97657
|
+
"wave-edge-balanced": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
97658
|
+
"wave-edge-gentle": boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"),
|
|
97659
|
+
"wave-edge-bold": boundaryRuntimeMetrics("wave", "large", "7rem + 2px"),
|
|
97660
|
+
"wave-edge-drift": boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"),
|
|
97661
|
+
"angle-edge": boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"),
|
|
97662
|
+
"angle-edge-subtle": boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"),
|
|
97663
|
+
"angle-edge-steep": boundaryRuntimeMetrics("angle", "large", "7rem + 2px")
|
|
97664
|
+
};
|
|
97665
|
+
function boundaryRuntimeMetricsForTransition(transition) {
|
|
97666
|
+
return sectionBoundaryRuntimeMetricsByTransition[transition];
|
|
97667
|
+
}
|
|
97668
|
+
const noneBoundaryOption = {
|
|
97669
|
+
id: asBoundaryOptionId("break:none"),
|
|
97670
|
+
label: "None",
|
|
97671
|
+
transitionAfter: "none",
|
|
97672
|
+
treatment: { kind: "none" }
|
|
97673
|
+
};
|
|
97674
|
+
const softBoundaryOption = {
|
|
97675
|
+
id: asBoundaryOptionId("break:soft"),
|
|
97676
|
+
label: "Soft",
|
|
97677
|
+
transitionAfter: "soft-fade-short",
|
|
97678
|
+
treatment: {
|
|
97679
|
+
kind: "soft-fade",
|
|
97680
|
+
height: "medium",
|
|
97681
|
+
curve: "soft"
|
|
97682
|
+
}
|
|
97683
|
+
};
|
|
97684
|
+
const spaciousBoundaryOption = {
|
|
97685
|
+
id: asBoundaryOptionId("break:spacious"),
|
|
97686
|
+
label: "Spacious",
|
|
97687
|
+
transitionAfter: "soft-fade-long",
|
|
97688
|
+
treatment: {
|
|
97689
|
+
kind: "soft-fade",
|
|
97690
|
+
height: "large",
|
|
97691
|
+
curve: "spacious"
|
|
97692
|
+
}
|
|
97693
|
+
};
|
|
97694
|
+
const expansiveBoundaryOption = {
|
|
97695
|
+
id: asBoundaryOptionId("break:expansive"),
|
|
97696
|
+
label: "Expansive",
|
|
97697
|
+
transitionAfter: "soft-fade-expansive",
|
|
97698
|
+
treatment: {
|
|
97699
|
+
kind: "soft-fade",
|
|
97700
|
+
height: "expansive",
|
|
97701
|
+
curve: "expansive"
|
|
97702
|
+
}
|
|
97703
|
+
};
|
|
97704
|
+
const waveBoundaryOption = {
|
|
97705
|
+
id: asBoundaryOptionId("break:wave"),
|
|
97706
|
+
label: "Classic wave",
|
|
97707
|
+
transitionAfter: "wave-edge",
|
|
97708
|
+
treatment: {
|
|
97709
|
+
kind: "wave-edge",
|
|
97710
|
+
height: "medium",
|
|
97711
|
+
amplitude: "balanced",
|
|
97712
|
+
rhythm: "double",
|
|
97713
|
+
symmetry: "asymmetrical"
|
|
97714
|
+
}
|
|
97715
|
+
};
|
|
97716
|
+
const balancedWaveBoundaryOption = {
|
|
97717
|
+
id: asBoundaryOptionId("break:wave-balanced"),
|
|
97718
|
+
label: "Balanced wave",
|
|
97719
|
+
transitionAfter: "wave-edge-balanced",
|
|
97720
|
+
treatment: {
|
|
97721
|
+
kind: "wave-edge",
|
|
97722
|
+
height: "medium",
|
|
97723
|
+
amplitude: "balanced",
|
|
97724
|
+
rhythm: "double",
|
|
97725
|
+
symmetry: "symmetrical"
|
|
97726
|
+
}
|
|
97727
|
+
};
|
|
97728
|
+
const gentleWaveBoundaryOption = {
|
|
97729
|
+
id: asBoundaryOptionId("break:wave-gentle"),
|
|
97730
|
+
label: "Gentle wave",
|
|
97731
|
+
transitionAfter: "wave-edge-gentle",
|
|
97732
|
+
treatment: {
|
|
97733
|
+
kind: "wave-edge",
|
|
97734
|
+
height: "compact",
|
|
97735
|
+
amplitude: "subtle",
|
|
97736
|
+
rhythm: "single",
|
|
97737
|
+
symmetry: "symmetrical"
|
|
97738
|
+
}
|
|
97739
|
+
};
|
|
97740
|
+
const boldWaveBoundaryOption = {
|
|
97741
|
+
id: asBoundaryOptionId("break:wave-bold"),
|
|
97742
|
+
label: "Bold wave",
|
|
97743
|
+
transitionAfter: "wave-edge-bold",
|
|
97744
|
+
treatment: {
|
|
97745
|
+
kind: "wave-edge",
|
|
97746
|
+
height: "large",
|
|
97747
|
+
amplitude: "bold",
|
|
97748
|
+
rhythm: "double",
|
|
97749
|
+
symmetry: "symmetrical"
|
|
97750
|
+
}
|
|
97751
|
+
};
|
|
97752
|
+
const driftWaveBoundaryOption = {
|
|
97753
|
+
id: asBoundaryOptionId("break:wave-drift"),
|
|
97754
|
+
label: "Drift wave",
|
|
97755
|
+
transitionAfter: "wave-edge-drift",
|
|
97756
|
+
treatment: {
|
|
97757
|
+
kind: "wave-edge",
|
|
97758
|
+
height: "medium",
|
|
97759
|
+
amplitude: "balanced",
|
|
97760
|
+
rhythm: "double",
|
|
97761
|
+
symmetry: "drift"
|
|
97762
|
+
}
|
|
97763
|
+
};
|
|
97764
|
+
const subtleAngleBoundaryOption = {
|
|
97765
|
+
id: asBoundaryOptionId("break:angle-subtle"),
|
|
97766
|
+
label: "Subtle angle",
|
|
97767
|
+
transitionAfter: "angle-edge-subtle",
|
|
97768
|
+
treatment: {
|
|
97769
|
+
kind: "angle-edge",
|
|
97770
|
+
height: "compact",
|
|
97771
|
+
slope: "subtle",
|
|
97772
|
+
direction: "forward"
|
|
97773
|
+
}
|
|
97774
|
+
};
|
|
97775
|
+
const balancedAngleBoundaryOption = {
|
|
97776
|
+
id: asBoundaryOptionId("break:angle-balanced"),
|
|
97777
|
+
label: "Balanced angle",
|
|
97778
|
+
transitionAfter: "angle-edge",
|
|
97779
|
+
treatment: {
|
|
97780
|
+
kind: "angle-edge",
|
|
97781
|
+
height: "medium",
|
|
97782
|
+
slope: "balanced",
|
|
97783
|
+
direction: "forward"
|
|
97784
|
+
}
|
|
97785
|
+
};
|
|
97786
|
+
const steepAngleBoundaryOption = {
|
|
97787
|
+
id: asBoundaryOptionId("break:angle-steep"),
|
|
97788
|
+
label: "Steep angle",
|
|
97789
|
+
transitionAfter: "angle-edge-steep",
|
|
97790
|
+
treatment: {
|
|
97791
|
+
kind: "angle-edge",
|
|
97792
|
+
height: "large",
|
|
97793
|
+
slope: "steep",
|
|
97794
|
+
direction: "forward"
|
|
97795
|
+
}
|
|
97796
|
+
};
|
|
97797
|
+
const sectionTransitionFamilies = [
|
|
97798
|
+
{
|
|
97799
|
+
id: "none",
|
|
97800
|
+
label: "None",
|
|
97801
|
+
variants: [{
|
|
97802
|
+
familyId: "none",
|
|
97803
|
+
variantId: "none",
|
|
97804
|
+
label: "None",
|
|
97805
|
+
boundaryOption: noneBoundaryOption
|
|
97806
|
+
}]
|
|
97807
|
+
},
|
|
97808
|
+
{
|
|
97809
|
+
id: "gradient",
|
|
97810
|
+
label: "Gradient",
|
|
97811
|
+
variants: [
|
|
97812
|
+
{
|
|
97813
|
+
familyId: "gradient",
|
|
97814
|
+
variantId: "soft",
|
|
97815
|
+
label: "Soft",
|
|
97816
|
+
boundaryOption: softBoundaryOption
|
|
97817
|
+
},
|
|
97818
|
+
{
|
|
97819
|
+
familyId: "gradient",
|
|
97820
|
+
variantId: "spacious",
|
|
97821
|
+
label: "Spacious",
|
|
97822
|
+
boundaryOption: spaciousBoundaryOption
|
|
97823
|
+
},
|
|
97824
|
+
{
|
|
97825
|
+
familyId: "gradient",
|
|
97826
|
+
variantId: "expansive",
|
|
97827
|
+
label: "Expansive",
|
|
97828
|
+
boundaryOption: expansiveBoundaryOption
|
|
97829
|
+
}
|
|
97830
|
+
]
|
|
97831
|
+
},
|
|
97832
|
+
{
|
|
97833
|
+
id: "wave",
|
|
97834
|
+
label: "Wave",
|
|
97835
|
+
variants: [
|
|
97836
|
+
{
|
|
97837
|
+
familyId: "wave",
|
|
97838
|
+
variantId: "balanced",
|
|
97839
|
+
label: "Balanced",
|
|
97840
|
+
boundaryOption: balancedWaveBoundaryOption
|
|
97841
|
+
},
|
|
97842
|
+
{
|
|
97843
|
+
familyId: "wave",
|
|
97844
|
+
variantId: "classic",
|
|
97845
|
+
label: "Classic",
|
|
97846
|
+
boundaryOption: waveBoundaryOption
|
|
97847
|
+
},
|
|
97848
|
+
{
|
|
97849
|
+
familyId: "wave",
|
|
97850
|
+
variantId: "gentle",
|
|
97851
|
+
label: "Gentle",
|
|
97852
|
+
boundaryOption: gentleWaveBoundaryOption
|
|
97853
|
+
},
|
|
97854
|
+
{
|
|
97855
|
+
familyId: "wave",
|
|
97856
|
+
variantId: "bold",
|
|
97857
|
+
label: "Bold",
|
|
97858
|
+
boundaryOption: boldWaveBoundaryOption
|
|
97859
|
+
},
|
|
97860
|
+
{
|
|
97861
|
+
familyId: "wave",
|
|
97862
|
+
variantId: "drift",
|
|
97863
|
+
label: "Drift",
|
|
97864
|
+
boundaryOption: driftWaveBoundaryOption
|
|
97865
|
+
}
|
|
97866
|
+
]
|
|
97867
|
+
},
|
|
97868
|
+
{
|
|
97869
|
+
id: "angle",
|
|
97870
|
+
label: "Angle",
|
|
97871
|
+
variants: [
|
|
97872
|
+
{
|
|
97873
|
+
familyId: "angle",
|
|
97874
|
+
variantId: "subtle",
|
|
97875
|
+
label: "Subtle",
|
|
97876
|
+
boundaryOption: subtleAngleBoundaryOption
|
|
97877
|
+
},
|
|
97878
|
+
{
|
|
97879
|
+
familyId: "angle",
|
|
97880
|
+
variantId: "balanced",
|
|
97881
|
+
label: "Balanced",
|
|
97882
|
+
boundaryOption: balancedAngleBoundaryOption
|
|
97883
|
+
},
|
|
97884
|
+
{
|
|
97885
|
+
familyId: "angle",
|
|
97886
|
+
variantId: "steep",
|
|
97887
|
+
label: "Steep",
|
|
97888
|
+
boundaryOption: steepAngleBoundaryOption
|
|
97889
|
+
}
|
|
97890
|
+
]
|
|
97891
|
+
}
|
|
97892
|
+
];
|
|
97893
|
+
function sectionTransitionVariantForBoundaryOptionId(boundaryOptionId) {
|
|
97894
|
+
if (!boundaryOptionId) return null;
|
|
97895
|
+
for (const family of sectionTransitionFamilies) {
|
|
97896
|
+
const variant = family.variants.find((candidate) => candidate.boundaryOption.id === boundaryOptionId);
|
|
97897
|
+
if (variant) return variant;
|
|
97898
|
+
}
|
|
97899
|
+
return null;
|
|
97900
|
+
}
|
|
97901
|
+
function sectionTransitionFamilyForBoundaryOptionId(boundaryOptionId) {
|
|
97902
|
+
const variant = sectionTransitionVariantForBoundaryOptionId(boundaryOptionId);
|
|
97903
|
+
if (!variant) return null;
|
|
97904
|
+
return sectionTransitionFamilies.find((family) => family.id === variant.familyId) ?? null;
|
|
97905
|
+
}
|
|
97906
|
+
function defaultSectionTransitionVariantForFamily(familyId) {
|
|
97907
|
+
const family = sectionTransitionFamilies.find((candidate) => candidate.id === familyId);
|
|
97908
|
+
if (!family) throw new Error(`Unknown section transition family: ${familyId}`);
|
|
97909
|
+
return family.variants[0];
|
|
97910
|
+
}
|
|
97911
|
+
asBoundaryOptionId("break:unknown");
|
|
97912
|
+
const pageDesignUserPinnedAppearanceChoiceSchema = z$1.object({
|
|
97913
|
+
kind: z$1.literal("user-pinned"),
|
|
97914
|
+
value: z$1.string().min(1).transform(asAppearancePresetId)
|
|
97915
|
+
}).strict();
|
|
97916
|
+
const pageDesignUserPinnedBoundaryChoiceSchema = z$1.object({
|
|
97917
|
+
kind: z$1.literal("user-pinned"),
|
|
97918
|
+
value: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
97919
|
+
}).strict();
|
|
97920
|
+
const pageDesignBoundaryTreatmentSchema = z$1.discriminatedUnion("kind", [
|
|
97921
|
+
z$1.object({ kind: z$1.literal("none") }).strict(),
|
|
97922
|
+
z$1.object({
|
|
97923
|
+
kind: z$1.literal("soft-fade"),
|
|
97924
|
+
height: z$1.enum([
|
|
97925
|
+
"compact",
|
|
97926
|
+
"medium",
|
|
97927
|
+
"large",
|
|
97928
|
+
"expansive"
|
|
97929
|
+
]),
|
|
97930
|
+
curve: z$1.enum([
|
|
97931
|
+
"soft",
|
|
97932
|
+
"spacious",
|
|
97933
|
+
"expansive"
|
|
97934
|
+
])
|
|
97935
|
+
}).strict(),
|
|
97936
|
+
z$1.object({
|
|
97937
|
+
kind: z$1.literal("wave-edge"),
|
|
97938
|
+
height: z$1.enum([
|
|
97939
|
+
"compact",
|
|
97940
|
+
"medium",
|
|
97941
|
+
"large"
|
|
97942
|
+
]),
|
|
97943
|
+
amplitude: z$1.enum([
|
|
97944
|
+
"subtle",
|
|
97945
|
+
"balanced",
|
|
97946
|
+
"bold"
|
|
97947
|
+
]),
|
|
97948
|
+
rhythm: z$1.enum(["single", "double"]),
|
|
97949
|
+
symmetry: z$1.enum([
|
|
97950
|
+
"symmetrical",
|
|
97951
|
+
"asymmetrical",
|
|
97952
|
+
"drift"
|
|
97953
|
+
])
|
|
97954
|
+
}).strict(),
|
|
97955
|
+
z$1.object({
|
|
97956
|
+
kind: z$1.literal("angle-edge"),
|
|
97957
|
+
height: z$1.enum([
|
|
97958
|
+
"compact",
|
|
97959
|
+
"medium",
|
|
97960
|
+
"large"
|
|
97961
|
+
]),
|
|
97962
|
+
slope: z$1.enum([
|
|
97963
|
+
"subtle",
|
|
97964
|
+
"balanced",
|
|
97965
|
+
"steep"
|
|
97966
|
+
]),
|
|
97967
|
+
direction: z$1.enum(["forward", "reverse"])
|
|
97968
|
+
}).strict(),
|
|
97969
|
+
z$1.object({
|
|
97970
|
+
kind: z$1.literal("legacy-unsupported"),
|
|
97971
|
+
boundaryOptionId: z$1.string().min(1).transform(asBoundaryOptionId)
|
|
97972
|
+
}).strict()
|
|
97973
|
+
]);
|
|
97974
|
+
const pageDesignUserPinnedBoundaryTreatmentChoiceSchema = z$1.object({
|
|
97975
|
+
kind: z$1.literal("user-pinned"),
|
|
97976
|
+
value: pageDesignBoundaryTreatmentSchema
|
|
97977
|
+
}).strict();
|
|
97978
|
+
const pageDesignBlockLookPinSchema = z$1.object({
|
|
97979
|
+
blockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
97980
|
+
blockKind: z$1.string().min(1),
|
|
97981
|
+
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
97982
|
+
}).strict();
|
|
97983
|
+
const pageDesignBoundaryPinSchema = z$1.object({
|
|
97984
|
+
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
97985
|
+
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
97986
|
+
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
97987
|
+
choice: pageDesignUserPinnedBoundaryTreatmentChoiceSchema
|
|
97988
|
+
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
97989
|
+
const legacyPageDesignBoundaryPinSchema = z$1.object({
|
|
97990
|
+
boundaryId: z$1.string().min(1).transform(asDesignBoundaryId),
|
|
97991
|
+
previousBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
97992
|
+
nextBlockId: z$1.string().min(1).transform(asDesignBlockId),
|
|
97993
|
+
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
97994
|
+
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
97995
|
+
z$1.object({
|
|
97996
|
+
schemaVersion: z$1.literal(1),
|
|
97997
|
+
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
97998
|
+
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
97999
|
+
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
98000
|
+
boundaryPins: z$1.array(legacyPageDesignBoundaryPinSchema)
|
|
98001
|
+
}).strict().superRefine(validateUniquePageDesignPins);
|
|
98002
|
+
z$1.object({
|
|
98003
|
+
schemaVersion: z$1.literal(2),
|
|
98004
|
+
siteStyleId: z$1.string().min(1).transform(asSiteStyleId),
|
|
98005
|
+
pageFlowPresetId: z$1.string().min(1).transform(asPageFlowPresetId),
|
|
98006
|
+
blockLookPins: z$1.array(pageDesignBlockLookPinSchema),
|
|
98007
|
+
boundaryPins: z$1.array(pageDesignBoundaryPinSchema)
|
|
98008
|
+
}).strict().superRefine(validateUniquePageDesignPins);
|
|
98009
|
+
function addDuplicateStringIssues(ctx, input) {
|
|
98010
|
+
const seen = /* @__PURE__ */ new Set();
|
|
98011
|
+
const duplicates = /* @__PURE__ */ new Set();
|
|
98012
|
+
for (const value of input.values) {
|
|
98013
|
+
if (seen.has(value)) duplicates.add(value);
|
|
98014
|
+
seen.add(value);
|
|
98015
|
+
}
|
|
98016
|
+
for (const duplicate of duplicates) ctx.addIssue({
|
|
98017
|
+
code: z$1.ZodIssueCode.custom,
|
|
98018
|
+
path: [...input.path],
|
|
98019
|
+
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
98020
|
+
});
|
|
98021
|
+
}
|
|
98022
|
+
function validateBoundaryPinIdMatchesBlocks(pin, ctx) {
|
|
98023
|
+
const expectedBoundaryId = makeBoundaryId(pin.previousBlockId, pin.nextBlockId);
|
|
98024
|
+
if (pin.boundaryId !== expectedBoundaryId) ctx.addIssue({
|
|
98025
|
+
code: z$1.ZodIssueCode.custom,
|
|
98026
|
+
path: ["boundaryId"],
|
|
98027
|
+
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
98028
|
+
});
|
|
98281
98029
|
}
|
|
98282
|
-
function
|
|
98283
|
-
|
|
98284
|
-
|
|
98285
|
-
|
|
98286
|
-
|
|
98287
|
-
|
|
98288
|
-
|
|
98289
|
-
|
|
98290
|
-
|
|
98291
|
-
|
|
98292
|
-
|
|
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
|
-
};
|
|
98030
|
+
function validateUniquePageDesignPins(intent, ctx) {
|
|
98031
|
+
addDuplicateStringIssues(ctx, {
|
|
98032
|
+
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
98033
|
+
path: ["blockLookPins"],
|
|
98034
|
+
label: "block Look pin"
|
|
98035
|
+
});
|
|
98036
|
+
addDuplicateStringIssues(ctx, {
|
|
98037
|
+
values: intent.boundaryPins.map((pin) => boundaryKey(pin.previousBlockId, pin.nextBlockId)),
|
|
98038
|
+
path: ["boundaryPins"],
|
|
98039
|
+
label: "boundary pin"
|
|
98040
|
+
});
|
|
98305
98041
|
}
|
|
98306
|
-
function
|
|
98307
|
-
return
|
|
98308
|
-
...baseHeader(theme),
|
|
98309
|
-
variant: "transparent",
|
|
98310
|
-
positioning: "fixed",
|
|
98311
|
-
shrinkOnScroll: true,
|
|
98312
|
-
background: {
|
|
98313
|
-
type: "color",
|
|
98314
|
-
color: "transparent"
|
|
98315
|
-
},
|
|
98316
|
-
textColor: "background",
|
|
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
|
-
};
|
|
98042
|
+
function boundaryKey(previousBlockId, nextBlockId) {
|
|
98043
|
+
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
98329
98044
|
}
|
|
98330
|
-
|
|
98331
|
-
|
|
98332
|
-
|
|
98333
|
-
|
|
98334
|
-
|
|
98335
|
-
|
|
98336
|
-
|
|
98337
|
-
|
|
98338
|
-
|
|
98339
|
-
|
|
98340
|
-
|
|
98341
|
-
|
|
98342
|
-
|
|
98343
|
-
|
|
98344
|
-
|
|
98345
|
-
|
|
98346
|
-
|
|
98347
|
-
|
|
98045
|
+
//#endregion
|
|
98046
|
+
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
98047
|
+
/**
|
|
98048
|
+
* Reusable accordion "looks" for curated site styles.
|
|
98049
|
+
*
|
|
98050
|
+
* Each curated site style should declare one of these (or a bespoke variant)
|
|
98051
|
+
* via `themeOverrides.accordions` so its FAQ accordions carry the style's
|
|
98052
|
+
* personality instead of falling back to the generic generated default. The
|
|
98053
|
+
* looks vary the things that make an accordion read as designed vs. cheap:
|
|
98054
|
+
* box vs. boxless, question typography (body vs. heading font + scale), icon,
|
|
98055
|
+
* and how an open item is emphasised.
|
|
98056
|
+
*/
|
|
98057
|
+
/**
|
|
98058
|
+
* Boxless editorial list: transparent root, hairline dividers between rows,
|
|
98059
|
+
* generous spacing, heading-font questions, plus/minus marks, and an accented
|
|
98060
|
+
* tinted band on the open row. The reference "expensive" FAQ look.
|
|
98061
|
+
*/
|
|
98062
|
+
const editorialDividedAccordionSystem = {
|
|
98063
|
+
background: null,
|
|
98064
|
+
spacing: "comfortable",
|
|
98065
|
+
corners: "square",
|
|
98066
|
+
border: null,
|
|
98067
|
+
shadow: null,
|
|
98068
|
+
icon: {
|
|
98069
|
+
style: "plus-minus",
|
|
98070
|
+
position: "right",
|
|
98071
|
+
size: "md",
|
|
98072
|
+
colorToken: "primary"
|
|
98073
|
+
},
|
|
98074
|
+
trigger: {
|
|
98075
|
+
textColorToken: "text",
|
|
98076
|
+
fontWeight: "regular",
|
|
98077
|
+
fontFamily: "heading",
|
|
98078
|
+
fontScale: "lg"
|
|
98079
|
+
},
|
|
98080
|
+
hover: { textColorToken: "primary" },
|
|
98081
|
+
openState: {
|
|
98082
|
+
backgroundColorToken: "surfaceAlt",
|
|
98083
|
+
triggerColorToken: "primary",
|
|
98084
|
+
accent: {
|
|
98085
|
+
edge: "left",
|
|
98086
|
+
colorToken: "primary",
|
|
98087
|
+
thickness: "medium"
|
|
98348
98088
|
}
|
|
98349
|
-
}
|
|
98350
|
-
}
|
|
98351
|
-
|
|
98089
|
+
},
|
|
98090
|
+
content: { textColorToken: "neutral-700" }
|
|
98091
|
+
};
|
|
98092
|
+
/**
|
|
98093
|
+
* Quiet, airy underlined rows: transparent, spacious, large calm heading-font
|
|
98094
|
+
* questions, a small subtle chevron, and open emphasis carried only by the
|
|
98095
|
+
* question recolouring. For minimal / premium / wellness styles.
|
|
98096
|
+
*/
|
|
98097
|
+
const quietUnderlinedAccordionSystem = {
|
|
98098
|
+
background: null,
|
|
98099
|
+
spacing: "spacious",
|
|
98100
|
+
corners: "square",
|
|
98101
|
+
border: null,
|
|
98102
|
+
shadow: null,
|
|
98103
|
+
icon: {
|
|
98104
|
+
style: "chevron",
|
|
98105
|
+
position: "right",
|
|
98106
|
+
size: "sm",
|
|
98107
|
+
colorToken: "muted"
|
|
98108
|
+
},
|
|
98109
|
+
trigger: {
|
|
98110
|
+
textColorToken: "text",
|
|
98111
|
+
fontWeight: "regular",
|
|
98112
|
+
fontFamily: "heading",
|
|
98113
|
+
fontScale: "lg"
|
|
98114
|
+
},
|
|
98115
|
+
hover: { textColorToken: "primary" },
|
|
98116
|
+
openState: { triggerColorToken: "primary" },
|
|
98117
|
+
content: { textColorToken: "neutral-700" }
|
|
98118
|
+
};
|
|
98119
|
+
/**
|
|
98120
|
+
* Soft contained panel: a gentle surface box with soft corners, a hairline
|
|
98121
|
+
* border and a low shadow, heading-font questions at a moderate size, chevron,
|
|
98122
|
+
* and a tinted open state. For clean, trustworthy, appointment-led styles.
|
|
98123
|
+
*/
|
|
98124
|
+
const calmPanelAccordionSystem = {
|
|
98125
|
+
background: {
|
|
98126
|
+
type: "solid",
|
|
98127
|
+
colorToken: "surface"
|
|
98128
|
+
},
|
|
98129
|
+
spacing: "comfortable",
|
|
98130
|
+
corners: "soft",
|
|
98131
|
+
border: {
|
|
98132
|
+
widthClass: "border",
|
|
98133
|
+
colorToken: "border"
|
|
98134
|
+
},
|
|
98135
|
+
shadow: {
|
|
98136
|
+
elevation: "low",
|
|
98137
|
+
softness: "soft",
|
|
98138
|
+
position: "bottom"
|
|
98139
|
+
},
|
|
98140
|
+
icon: {
|
|
98141
|
+
style: "chevron",
|
|
98142
|
+
position: "right",
|
|
98143
|
+
size: "md",
|
|
98144
|
+
colorToken: "primary"
|
|
98145
|
+
},
|
|
98146
|
+
trigger: {
|
|
98147
|
+
textColorToken: "text",
|
|
98148
|
+
fontWeight: "medium",
|
|
98149
|
+
fontFamily: "heading",
|
|
98150
|
+
fontScale: "md"
|
|
98151
|
+
},
|
|
98152
|
+
hover: {
|
|
98153
|
+
backgroundColorToken: "primary/5",
|
|
98154
|
+
textColorToken: "primary"
|
|
98155
|
+
},
|
|
98156
|
+
openState: {
|
|
98157
|
+
backgroundColorToken: "primary/5",
|
|
98158
|
+
triggerColorToken: "primary"
|
|
98159
|
+
},
|
|
98160
|
+
content: { textColorToken: "neutral-700" }
|
|
98161
|
+
};
|
|
98162
|
+
/**
|
|
98163
|
+
* Bold bordered panel: a strong-bordered surface box, bold heading-font
|
|
98164
|
+
* questions, large plus/minus marks, and a high-emphasis tinted + accented
|
|
98165
|
+
* open state. For confident, conversion-led, high-energy styles.
|
|
98166
|
+
*/
|
|
98167
|
+
const boldBorderedAccordionSystem = {
|
|
98168
|
+
background: {
|
|
98169
|
+
type: "solid",
|
|
98170
|
+
colorToken: "surface"
|
|
98171
|
+
},
|
|
98172
|
+
spacing: "comfortable",
|
|
98173
|
+
corners: "soft",
|
|
98174
|
+
border: {
|
|
98175
|
+
widthClass: "border-2",
|
|
98176
|
+
colorToken: "border"
|
|
98177
|
+
},
|
|
98178
|
+
shadow: null,
|
|
98179
|
+
icon: {
|
|
98180
|
+
style: "plus-minus",
|
|
98181
|
+
position: "right",
|
|
98182
|
+
size: "lg",
|
|
98183
|
+
colorToken: "primary"
|
|
98184
|
+
},
|
|
98185
|
+
trigger: {
|
|
98186
|
+
textColorToken: "text",
|
|
98187
|
+
fontWeight: "bold",
|
|
98188
|
+
fontFamily: "heading",
|
|
98189
|
+
fontScale: "md"
|
|
98190
|
+
},
|
|
98191
|
+
hover: {
|
|
98192
|
+
backgroundColorToken: "primary/10",
|
|
98193
|
+
textColorToken: "primary"
|
|
98194
|
+
},
|
|
98195
|
+
openState: {
|
|
98196
|
+
backgroundColorToken: "primary/10",
|
|
98197
|
+
triggerColorToken: "primary",
|
|
98198
|
+
accent: {
|
|
98199
|
+
edge: "left",
|
|
98200
|
+
colorToken: "primary",
|
|
98201
|
+
thickness: "thick"
|
|
98202
|
+
}
|
|
98203
|
+
},
|
|
98204
|
+
content: { textColorToken: "neutral-700" }
|
|
98205
|
+
};
|
|
98206
|
+
/**
|
|
98207
|
+
* Warm inset tiles: a tinted (surfaceAlt) root with rounded corners and no
|
|
98208
|
+
* border; the open row lifts to the lighter surface colour. Friendly,
|
|
98209
|
+
* hands-on, community styles.
|
|
98210
|
+
*/
|
|
98211
|
+
const warmInsetAccordionSystem = {
|
|
98212
|
+
background: {
|
|
98213
|
+
type: "solid",
|
|
98214
|
+
colorToken: "surfaceAlt"
|
|
98215
|
+
},
|
|
98216
|
+
spacing: "comfortable",
|
|
98217
|
+
corners: "rounded",
|
|
98218
|
+
border: null,
|
|
98219
|
+
shadow: null,
|
|
98220
|
+
icon: {
|
|
98221
|
+
style: "circle-plus-minus",
|
|
98222
|
+
position: "right",
|
|
98223
|
+
size: "md",
|
|
98224
|
+
colorToken: "primary"
|
|
98225
|
+
},
|
|
98226
|
+
trigger: {
|
|
98227
|
+
textColorToken: "text",
|
|
98228
|
+
fontWeight: "semibold",
|
|
98229
|
+
fontFamily: "heading",
|
|
98230
|
+
fontScale: "md"
|
|
98231
|
+
},
|
|
98232
|
+
hover: {
|
|
98233
|
+
backgroundColorToken: "primary/5",
|
|
98234
|
+
textColorToken: "primary"
|
|
98235
|
+
},
|
|
98236
|
+
openState: {
|
|
98237
|
+
backgroundColorToken: "surface",
|
|
98238
|
+
triggerColorToken: "primary"
|
|
98239
|
+
},
|
|
98240
|
+
content: { textColorToken: "neutral-700" }
|
|
98241
|
+
};
|
|
98242
|
+
/**
|
|
98243
|
+
* Soft Earth's grounded look: boxless, plus/minus, heading-font questions on
|
|
98244
|
+
* a warm ground, with a quiet open recolour.
|
|
98245
|
+
*/
|
|
98246
|
+
const softEarthAccordionSystem = {
|
|
98247
|
+
background: {
|
|
98248
|
+
type: "solid",
|
|
98249
|
+
colorToken: "background"
|
|
98250
|
+
},
|
|
98251
|
+
spacing: "comfortable",
|
|
98252
|
+
corners: "square",
|
|
98253
|
+
border: null,
|
|
98254
|
+
shadow: null,
|
|
98255
|
+
icon: {
|
|
98256
|
+
style: "plus-minus",
|
|
98257
|
+
position: "right",
|
|
98258
|
+
size: "md",
|
|
98259
|
+
colorToken: "primary"
|
|
98260
|
+
},
|
|
98261
|
+
trigger: {
|
|
98262
|
+
textColorToken: "text",
|
|
98263
|
+
fontWeight: "medium",
|
|
98264
|
+
fontFamily: "heading",
|
|
98265
|
+
fontScale: "md"
|
|
98266
|
+
},
|
|
98267
|
+
hover: { textColorToken: "primary" },
|
|
98268
|
+
openState: { triggerColorToken: "primary" },
|
|
98269
|
+
content: { textColorToken: "neutral-700" }
|
|
98270
|
+
};
|
|
98271
|
+
//#endregion
|
|
98272
|
+
//#region ../theme-core/src/cards/siteStyleDefaults.ts
|
|
98273
|
+
/**
|
|
98274
|
+
* Reusable card systems for curated site styles.
|
|
98275
|
+
*
|
|
98276
|
+
* generateCardCss emits a `.card-{id}` class per enabled variant. The
|
|
98277
|
+
* intended convention (block-level role selection is wired in a follow-up) is
|
|
98278
|
+
* a role pair:
|
|
98279
|
+
* - `default` — the quiet, everyday card (most blocks, most of the time)
|
|
98280
|
+
* - `alternative` — the prominent "statement" card for sections that pop
|
|
98281
|
+
* A card-heavy site style may add a third; the schema allows up to three
|
|
98282
|
+
* variants. The planned fallback when a block references a missing variant is
|
|
98283
|
+
* `alternative`, then `default`.
|
|
98284
|
+
*
|
|
98285
|
+
* Keep `default` close to the generated baseline so shared consumers (event
|
|
98286
|
+
* cards, testimonials) stay stable; put the personality in `alternative`.
|
|
98287
|
+
*/
|
|
98288
|
+
/**
|
|
98289
|
+
* South West Twerk School: a quiet default surface card plus a high-impact
|
|
98290
|
+
* "statement" card that reproduces the legacy accent-quote testimonial surface
|
|
98291
|
+
* — burgundy fill, light text, a heavy gold left accent bar, and an expressive
|
|
98292
|
+
* asymmetric top-right corner.
|
|
98293
|
+
*/
|
|
98294
|
+
const southWestCardSystem = { variants: [{
|
|
98295
|
+
id: "default",
|
|
98296
|
+
name: "Default",
|
|
98297
|
+
enabled: true,
|
|
98298
|
+
priority: 1,
|
|
98299
|
+
background: {
|
|
98300
|
+
type: "solid",
|
|
98301
|
+
colorToken: "surface"
|
|
98302
|
+
},
|
|
98303
|
+
foregroundToken: "text",
|
|
98304
|
+
spacing: "comfortable",
|
|
98305
|
+
corners: "soft",
|
|
98306
|
+
shadow: {
|
|
98307
|
+
elevation: "low",
|
|
98308
|
+
softness: "soft",
|
|
98309
|
+
position: "bottom"
|
|
98310
|
+
}
|
|
98311
|
+
}, {
|
|
98312
|
+
id: "alternative",
|
|
98313
|
+
name: "Statement",
|
|
98314
|
+
enabled: true,
|
|
98315
|
+
priority: 2,
|
|
98316
|
+
background: {
|
|
98317
|
+
type: "solid",
|
|
98318
|
+
colorToken: "primary-700"
|
|
98319
|
+
},
|
|
98320
|
+
foregroundToken: "primaryForeground",
|
|
98321
|
+
spacing: "comfortable",
|
|
98322
|
+
shadow: {
|
|
98323
|
+
elevation: "none",
|
|
98324
|
+
softness: null,
|
|
98325
|
+
position: "bottom"
|
|
98326
|
+
},
|
|
98327
|
+
accentEdge: {
|
|
98328
|
+
edge: "left",
|
|
98329
|
+
colorToken: "secondary",
|
|
98330
|
+
width: "heavy"
|
|
98331
|
+
},
|
|
98332
|
+
cornerRadii: {
|
|
98333
|
+
topLeft: "square",
|
|
98334
|
+
topRight: "expressive",
|
|
98335
|
+
bottomLeft: "square",
|
|
98336
|
+
bottomRight: "square"
|
|
98337
|
+
}
|
|
98338
|
+
}] };
|
|
98339
|
+
const clarityZenCardSystem = { variants: [{
|
|
98340
|
+
id: "default",
|
|
98341
|
+
name: "Default",
|
|
98342
|
+
enabled: true,
|
|
98343
|
+
priority: 1,
|
|
98344
|
+
background: {
|
|
98345
|
+
type: "solid",
|
|
98346
|
+
colorToken: "surface"
|
|
98347
|
+
},
|
|
98348
|
+
foregroundToken: "text",
|
|
98349
|
+
spacing: "comfortable",
|
|
98350
|
+
corners: "rounded",
|
|
98351
|
+
shadow: {
|
|
98352
|
+
elevation: "low",
|
|
98353
|
+
softness: "soft",
|
|
98354
|
+
position: "bottom"
|
|
98355
|
+
}
|
|
98356
|
+
}, {
|
|
98357
|
+
id: "alternative",
|
|
98358
|
+
name: "Statement",
|
|
98359
|
+
enabled: true,
|
|
98360
|
+
priority: 2,
|
|
98361
|
+
background: {
|
|
98362
|
+
type: "solid",
|
|
98363
|
+
colorToken: "surfaceAlt"
|
|
98364
|
+
},
|
|
98365
|
+
foregroundToken: "text",
|
|
98366
|
+
spacing: "comfortable",
|
|
98367
|
+
corners: "rounded",
|
|
98368
|
+
shadow: {
|
|
98369
|
+
elevation: "medium",
|
|
98370
|
+
softness: "soft",
|
|
98371
|
+
position: "bottom"
|
|
98372
|
+
}
|
|
98373
|
+
}] };
|
|
98374
|
+
/**
|
|
98375
|
+
* Original Joy: warm, flat, generously rounded cards on the dark clay ground.
|
|
98376
|
+
* `default` is a quiet brown surface card with cream text; `alternative` is a
|
|
98377
|
+
* burnt-orange statement card for sections that should pop. Both flat (the
|
|
98378
|
+
* look's depth comes from colour, not shadow), matching the bold editorial
|
|
98379
|
+
* feel. Shared by event and testimonial cards.
|
|
98380
|
+
*/
|
|
98381
|
+
const originalJoyCardSystem = { variants: [{
|
|
98382
|
+
id: "default",
|
|
98383
|
+
name: "Default",
|
|
98384
|
+
enabled: true,
|
|
98385
|
+
priority: 1,
|
|
98386
|
+
background: {
|
|
98387
|
+
type: "solid",
|
|
98388
|
+
colorToken: "surface"
|
|
98389
|
+
},
|
|
98390
|
+
foregroundToken: "text",
|
|
98391
|
+
spacing: "comfortable",
|
|
98392
|
+
corners: "rounded",
|
|
98393
|
+
shadow: {
|
|
98394
|
+
elevation: "none",
|
|
98395
|
+
softness: null,
|
|
98396
|
+
position: "bottom"
|
|
98397
|
+
}
|
|
98398
|
+
}, {
|
|
98399
|
+
id: "alternative",
|
|
98400
|
+
name: "Statement",
|
|
98401
|
+
enabled: true,
|
|
98402
|
+
priority: 2,
|
|
98403
|
+
background: {
|
|
98404
|
+
type: "solid",
|
|
98405
|
+
colorToken: "primary"
|
|
98406
|
+
},
|
|
98407
|
+
foregroundToken: "primaryForeground",
|
|
98408
|
+
spacing: "comfortable",
|
|
98409
|
+
corners: "rounded",
|
|
98410
|
+
shadow: {
|
|
98411
|
+
elevation: "none",
|
|
98412
|
+
softness: null,
|
|
98413
|
+
position: "bottom"
|
|
98414
|
+
}
|
|
98415
|
+
}] };
|
|
98416
|
+
//#endregion
|
|
98417
|
+
//#region ../theme-core/src/site-styles/testimonialQuotePresets.ts
|
|
98418
|
+
/**
|
|
98419
|
+
* Reusable testimonial quote-mark treatments for curated site styles.
|
|
98420
|
+
*
|
|
98421
|
+
* The quote mark is brand identity the site style owns (analogous to the FAQ
|
|
98422
|
+
* accordion icon); every curated style declares one. `style` is the coarse
|
|
98423
|
+
* selector and the resolver in blocks/vars/testimonials.ts fills in the rest.
|
|
98424
|
+
*/
|
|
98425
|
+
/** Large display quotation mark in the heading font. Editorial / calm styles. */
|
|
98426
|
+
const serifDisplayQuote = { style: "serif-display" };
|
|
98427
|
+
/** Punchy quotation mark in the secondary accent colour. Bold / accent styles. */
|
|
98428
|
+
const accentGlyphQuote = { style: "accent-glyph" };
|
|
98429
|
+
/**
|
|
98430
|
+
* Curated library of gradient presets.
|
|
98431
|
+
* All gradients use theme color tokens, so they adapt to the site's palette.
|
|
98432
|
+
*/
|
|
98433
|
+
const GRADIENT_PRESETS = [
|
|
98352
98434
|
{
|
|
98353
|
-
id:
|
|
98354
|
-
|
|
98355
|
-
|
|
98356
|
-
|
|
98357
|
-
|
|
98358
|
-
|
|
98359
|
-
|
|
98360
|
-
|
|
98361
|
-
},
|
|
98362
|
-
|
|
98363
|
-
|
|
98364
|
-
|
|
98435
|
+
id: "primary-secondary",
|
|
98436
|
+
name: "Primary to Secondary",
|
|
98437
|
+
description: "Blend your primary and secondary brand colors",
|
|
98438
|
+
type: "linear",
|
|
98439
|
+
angle: 135,
|
|
98440
|
+
stops: [{
|
|
98441
|
+
color: "primary-500",
|
|
98442
|
+
position: 0
|
|
98443
|
+
}, {
|
|
98444
|
+
color: "secondary-500",
|
|
98445
|
+
position: 100
|
|
98446
|
+
}]
|
|
98365
98447
|
},
|
|
98366
98448
|
{
|
|
98367
|
-
id:
|
|
98368
|
-
|
|
98369
|
-
|
|
98370
|
-
|
|
98371
|
-
|
|
98372
|
-
|
|
98373
|
-
|
|
98374
|
-
|
|
98375
|
-
},
|
|
98376
|
-
|
|
98377
|
-
|
|
98378
|
-
|
|
98379
|
-
compile: classicCenteredNavHeader
|
|
98449
|
+
id: "primary-accent",
|
|
98450
|
+
name: "Primary to Accent",
|
|
98451
|
+
description: "Energetic gradient from primary to accent",
|
|
98452
|
+
type: "linear",
|
|
98453
|
+
angle: 135,
|
|
98454
|
+
stops: [{
|
|
98455
|
+
color: "primary-500",
|
|
98456
|
+
position: 0
|
|
98457
|
+
}, {
|
|
98458
|
+
color: "accent-500",
|
|
98459
|
+
position: 100
|
|
98460
|
+
}]
|
|
98380
98461
|
},
|
|
98381
98462
|
{
|
|
98382
|
-
id:
|
|
98383
|
-
|
|
98384
|
-
|
|
98385
|
-
|
|
98386
|
-
|
|
98387
|
-
|
|
98388
|
-
|
|
98389
|
-
|
|
98390
|
-
},
|
|
98391
|
-
|
|
98392
|
-
|
|
98393
|
-
|
|
98463
|
+
id: "secondary-accent",
|
|
98464
|
+
name: "Secondary to Accent",
|
|
98465
|
+
description: "Vibrant secondary to accent blend",
|
|
98466
|
+
type: "linear",
|
|
98467
|
+
angle: 135,
|
|
98468
|
+
stops: [{
|
|
98469
|
+
color: "secondary-500",
|
|
98470
|
+
position: 0
|
|
98471
|
+
}, {
|
|
98472
|
+
color: "accent-500",
|
|
98473
|
+
position: 100
|
|
98474
|
+
}]
|
|
98394
98475
|
},
|
|
98395
98476
|
{
|
|
98396
|
-
id:
|
|
98397
|
-
|
|
98398
|
-
|
|
98399
|
-
|
|
98400
|
-
|
|
98401
|
-
|
|
98402
|
-
|
|
98403
|
-
|
|
98404
|
-
},
|
|
98405
|
-
|
|
98406
|
-
|
|
98407
|
-
|
|
98408
|
-
compile: serifLineHeader
|
|
98477
|
+
id: "primary-light-dark",
|
|
98478
|
+
name: "Primary Light to Dark",
|
|
98479
|
+
description: "Subtle primary color fade",
|
|
98480
|
+
type: "linear",
|
|
98481
|
+
angle: 180,
|
|
98482
|
+
stops: [{
|
|
98483
|
+
color: "primary-500",
|
|
98484
|
+
position: 0
|
|
98485
|
+
}, {
|
|
98486
|
+
color: "primary-900",
|
|
98487
|
+
position: 100
|
|
98488
|
+
}]
|
|
98409
98489
|
},
|
|
98410
98490
|
{
|
|
98411
|
-
id:
|
|
98412
|
-
|
|
98413
|
-
|
|
98414
|
-
|
|
98415
|
-
|
|
98416
|
-
|
|
98417
|
-
|
|
98418
|
-
|
|
98419
|
-
},
|
|
98420
|
-
|
|
98421
|
-
|
|
98422
|
-
|
|
98423
|
-
compile: centeredCalmHeader
|
|
98491
|
+
id: "primary-dark-light",
|
|
98492
|
+
name: "Primary Dark to Light",
|
|
98493
|
+
description: "Reverse primary fade",
|
|
98494
|
+
type: "linear",
|
|
98495
|
+
angle: 180,
|
|
98496
|
+
stops: [{
|
|
98497
|
+
color: "primary-900",
|
|
98498
|
+
position: 0
|
|
98499
|
+
}, {
|
|
98500
|
+
color: "primary-50",
|
|
98501
|
+
position: 100
|
|
98502
|
+
}]
|
|
98424
98503
|
},
|
|
98425
98504
|
{
|
|
98426
|
-
id:
|
|
98427
|
-
|
|
98428
|
-
|
|
98429
|
-
|
|
98430
|
-
|
|
98431
|
-
|
|
98432
|
-
|
|
98433
|
-
|
|
98434
|
-
},
|
|
98435
|
-
|
|
98436
|
-
|
|
98437
|
-
|
|
98438
|
-
compile: practicalUtilityHeader
|
|
98505
|
+
id: "secondary-light-dark",
|
|
98506
|
+
name: "Secondary Light to Dark",
|
|
98507
|
+
description: "Subtle secondary color fade",
|
|
98508
|
+
type: "linear",
|
|
98509
|
+
angle: 180,
|
|
98510
|
+
stops: [{
|
|
98511
|
+
color: "secondary-500",
|
|
98512
|
+
position: 0
|
|
98513
|
+
}, {
|
|
98514
|
+
color: "secondary-900",
|
|
98515
|
+
position: 100
|
|
98516
|
+
}]
|
|
98439
98517
|
},
|
|
98440
98518
|
{
|
|
98441
|
-
id:
|
|
98442
|
-
|
|
98443
|
-
|
|
98444
|
-
|
|
98445
|
-
|
|
98446
|
-
|
|
98447
|
-
|
|
98448
|
-
|
|
98449
|
-
},
|
|
98450
|
-
|
|
98451
|
-
|
|
98452
|
-
|
|
98519
|
+
id: "accent-light-dark",
|
|
98520
|
+
name: "Accent Light to Dark",
|
|
98521
|
+
description: "Accent color depth fade",
|
|
98522
|
+
type: "linear",
|
|
98523
|
+
angle: 180,
|
|
98524
|
+
stops: [{
|
|
98525
|
+
color: "accent-500",
|
|
98526
|
+
position: 0
|
|
98527
|
+
}, {
|
|
98528
|
+
color: "accent-900",
|
|
98529
|
+
position: 100
|
|
98530
|
+
}]
|
|
98453
98531
|
},
|
|
98454
98532
|
{
|
|
98455
|
-
id:
|
|
98456
|
-
|
|
98457
|
-
|
|
98458
|
-
|
|
98459
|
-
|
|
98460
|
-
|
|
98461
|
-
|
|
98462
|
-
|
|
98463
|
-
},
|
|
98464
|
-
|
|
98465
|
-
|
|
98466
|
-
|
|
98467
|
-
compile: transparentOverlayHeader
|
|
98533
|
+
id: "background-surface",
|
|
98534
|
+
name: "Background to Surface",
|
|
98535
|
+
description: "Subtle depth using base colors",
|
|
98536
|
+
type: "linear",
|
|
98537
|
+
angle: 180,
|
|
98538
|
+
stops: [{
|
|
98539
|
+
color: "background",
|
|
98540
|
+
position: 0
|
|
98541
|
+
}, {
|
|
98542
|
+
color: "surface",
|
|
98543
|
+
position: 100
|
|
98544
|
+
}]
|
|
98468
98545
|
},
|
|
98469
98546
|
{
|
|
98470
|
-
id:
|
|
98471
|
-
|
|
98472
|
-
|
|
98473
|
-
|
|
98474
|
-
|
|
98475
|
-
|
|
98476
|
-
|
|
98477
|
-
|
|
98478
|
-
},
|
|
98479
|
-
|
|
98480
|
-
|
|
98481
|
-
|
|
98482
|
-
|
|
98547
|
+
id: "neutral-fade",
|
|
98548
|
+
name: "Neutral Gradient",
|
|
98549
|
+
description: "Elegant neutral color fade",
|
|
98550
|
+
type: "linear",
|
|
98551
|
+
angle: 180,
|
|
98552
|
+
stops: [{
|
|
98553
|
+
color: "neutral-900",
|
|
98554
|
+
position: 0
|
|
98555
|
+
}, {
|
|
98556
|
+
color: "neutral-50",
|
|
98557
|
+
position: 100
|
|
98558
|
+
}]
|
|
98559
|
+
},
|
|
98560
|
+
{
|
|
98561
|
+
id: "primary-glow",
|
|
98562
|
+
name: "Primary glow",
|
|
98563
|
+
description: "A soft top-centred glow using your primary palette",
|
|
98564
|
+
type: "radial",
|
|
98565
|
+
shape: "ellipse",
|
|
98566
|
+
position: "top center",
|
|
98567
|
+
stops: [{
|
|
98568
|
+
color: "primary-900",
|
|
98569
|
+
position: 0
|
|
98570
|
+
}, {
|
|
98571
|
+
color: "primary-950",
|
|
98572
|
+
position: 100
|
|
98573
|
+
}],
|
|
98574
|
+
foreground: {
|
|
98575
|
+
textColor: "onPrimary900",
|
|
98576
|
+
headingColor: "onPrimary900",
|
|
98577
|
+
linkColor: "onPrimary900",
|
|
98578
|
+
supportingColor: "onPrimary900"
|
|
98579
|
+
}
|
|
98580
|
+
},
|
|
98581
|
+
{
|
|
98582
|
+
id: "accent-glow",
|
|
98583
|
+
name: "Accent glow",
|
|
98584
|
+
description: "A soft top-centred glow using your accent palette",
|
|
98585
|
+
type: "radial",
|
|
98586
|
+
shape: "ellipse",
|
|
98587
|
+
position: "top center",
|
|
98588
|
+
stops: [{
|
|
98589
|
+
color: "accent-900",
|
|
98590
|
+
position: 0
|
|
98591
|
+
}, {
|
|
98592
|
+
color: "accent-950",
|
|
98593
|
+
position: 100
|
|
98594
|
+
}],
|
|
98595
|
+
foreground: {
|
|
98596
|
+
textColor: "onAccent900",
|
|
98597
|
+
headingColor: "onAccent900",
|
|
98598
|
+
linkColor: "onAccent900",
|
|
98599
|
+
supportingColor: "onAccent900"
|
|
98600
|
+
}
|
|
98601
|
+
},
|
|
98602
|
+
{
|
|
98603
|
+
id: "primary-secondary-accent",
|
|
98604
|
+
name: "Brand Trio",
|
|
98605
|
+
description: "All three brand colors in harmony",
|
|
98606
|
+
type: "linear",
|
|
98607
|
+
angle: 135,
|
|
98608
|
+
stops: [
|
|
98609
|
+
{
|
|
98610
|
+
color: "primary-500",
|
|
98611
|
+
position: 0
|
|
98612
|
+
},
|
|
98613
|
+
{
|
|
98614
|
+
color: "secondary-500",
|
|
98615
|
+
position: 50
|
|
98616
|
+
},
|
|
98617
|
+
{
|
|
98618
|
+
color: "accent-500",
|
|
98619
|
+
position: 100
|
|
98620
|
+
}
|
|
98621
|
+
]
|
|
98483
98622
|
}
|
|
98484
|
-
])
|
|
98485
|
-
|
|
98486
|
-
|
|
98487
|
-
|
|
98488
|
-
|
|
98489
|
-
|
|
98490
|
-
|
|
98491
|
-
|
|
98492
|
-
|
|
98493
|
-
|
|
98494
|
-
|
|
98495
|
-
|
|
98496
|
-
|
|
98497
|
-
return look;
|
|
98623
|
+
].map((preset) => ({
|
|
98624
|
+
...preset,
|
|
98625
|
+
id: preset.id,
|
|
98626
|
+
stops: preset.stops
|
|
98627
|
+
}));
|
|
98628
|
+
const GRADIENT_PRESET_IDS = GRADIENT_PRESETS.map((preset) => preset.id);
|
|
98629
|
+
const gradientPresetIdSet = new Set(GRADIENT_PRESET_IDS);
|
|
98630
|
+
const gradientPresetById = Object.fromEntries(GRADIENT_PRESETS.map((preset) => [preset.id, preset]));
|
|
98631
|
+
function parseGradientPresetId(value) {
|
|
98632
|
+
if (typeof value !== "string") return null;
|
|
98633
|
+
const normalized = value.trim();
|
|
98634
|
+
if (!gradientPresetIdSet.has(normalized)) return null;
|
|
98635
|
+
return normalized;
|
|
98498
98636
|
}
|
|
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
|
-
];
|
|
98637
|
+
function getGradientPreset(id) {
|
|
98638
|
+
return gradientPresetById[id];
|
|
98509
98639
|
}
|
|
98510
|
-
|
|
98511
|
-
|
|
98512
|
-
|
|
98513
|
-
|
|
98514
|
-
|
|
98515
|
-
|
|
98516
|
-
|
|
98517
|
-
|
|
98518
|
-
|
|
98519
|
-
|
|
98520
|
-
|
|
98521
|
-
|
|
98522
|
-
|
|
98523
|
-
|
|
98524
|
-
|
|
98525
|
-
|
|
98526
|
-
|
|
98527
|
-
|
|
98528
|
-
|
|
98529
|
-
|
|
98530
|
-
|
|
98640
|
+
//#endregion
|
|
98641
|
+
//#region ../theme-core/src/gradients/utils.ts
|
|
98642
|
+
/**
|
|
98643
|
+
* Convert a GradientConfig to a CSS gradient string
|
|
98644
|
+
*
|
|
98645
|
+
* @param config - The gradient configuration using theme tokens
|
|
98646
|
+
* @param tokens - Map of theme color tokens to hex values
|
|
98647
|
+
* @returns CSS gradient string (e.g., "linear-gradient(180deg, #3b82f6 0%, #f59e0b 100%)")
|
|
98648
|
+
*/
|
|
98649
|
+
function gradientToCss(config, tokens) {
|
|
98650
|
+
const stops = config.stops.map((stop) => {
|
|
98651
|
+
return `${tokens[stop.color] ?? "#000000"} ${stop.position}%`;
|
|
98652
|
+
}).join(", ");
|
|
98653
|
+
const type = config.type ?? "linear";
|
|
98654
|
+
if (type === "radial") {
|
|
98655
|
+
const position = config.position ?? "center";
|
|
98656
|
+
return `radial-gradient(${config.shape ?? "circle"} at ${position}, ${stops})`;
|
|
98657
|
+
}
|
|
98658
|
+
if (type === "conic") {
|
|
98659
|
+
const position = config.position ?? "center";
|
|
98660
|
+
return `conic-gradient(from ${config.angle ?? 0}deg at ${position}, ${stops})`;
|
|
98661
|
+
}
|
|
98662
|
+
return `linear-gradient(${config.angle ?? 180}deg, ${stops})`;
|
|
98531
98663
|
}
|
|
98532
98664
|
//#endregion
|
|
98533
98665
|
//#region ../theme-core/src/site-styles/footerLooks.ts
|
|
@@ -102594,38 +102726,109 @@ function canonicalHeaderSelectionInput(layoutId, styleId) {
|
|
|
102594
102726
|
}
|
|
102595
102727
|
};
|
|
102596
102728
|
}
|
|
102597
|
-
function applySiteChromeLooks({ theme, siteStyle,
|
|
102729
|
+
function applySiteChromeLooks({ theme, siteStyle, compilationPlan }) {
|
|
102730
|
+
const headerDirective = compilationPlan.header;
|
|
102731
|
+
const headerResult = compileHeaderDirective({
|
|
102732
|
+
theme,
|
|
102733
|
+
siteStyle,
|
|
102734
|
+
directive: headerDirective
|
|
102735
|
+
});
|
|
102736
|
+
const footerResult = compilationPlan.kind === "replace-site-style" ? compileReplacementFooter({
|
|
102737
|
+
theme,
|
|
102738
|
+
siteStyle,
|
|
102739
|
+
footerLookId: compilationPlan.footerLookId,
|
|
102740
|
+
headerSelection: headerResult.headerCompilation.kind === "recompiled" ? headerResult.headerCompilation.result : headerResult.headerCompilation,
|
|
102741
|
+
brandPresentation: compilationPlan.header.brandPresentation
|
|
102742
|
+
}) : compileIncrementalFooter({
|
|
102743
|
+
theme,
|
|
102744
|
+
siteStyle,
|
|
102745
|
+
directive: compilationPlan.footer
|
|
102746
|
+
});
|
|
102747
|
+
return {
|
|
102748
|
+
theme: themeSchema.parse({
|
|
102749
|
+
...theme,
|
|
102750
|
+
header: headerResult.header,
|
|
102751
|
+
footer: footerResult.footer
|
|
102752
|
+
}),
|
|
102753
|
+
headerCompilation: headerResult.headerCompilation,
|
|
102754
|
+
resolvedHeaderSelection: headerResult.resolvedHeaderSelection,
|
|
102755
|
+
footerCompilation: footerResult.footerCompilation,
|
|
102756
|
+
resolvedFooterLookId: footerResult.resolvedFooterLookId
|
|
102757
|
+
};
|
|
102758
|
+
}
|
|
102759
|
+
function compileHeaderDirective(input) {
|
|
102760
|
+
if (input.directive.kind === "preserve") return {
|
|
102761
|
+
header: input.directive.header,
|
|
102762
|
+
headerCompilation: {
|
|
102763
|
+
kind: "preserved",
|
|
102764
|
+
selection: input.directive.selection
|
|
102765
|
+
},
|
|
102766
|
+
resolvedHeaderSelection: input.directive.selection
|
|
102767
|
+
};
|
|
102768
|
+
const { headerLookId, headerLayoutId, headerStyleId } = input.directive.selection;
|
|
102598
102769
|
const canonicalHeaderSelection = canonicalHeaderSelectionInput(headerLayoutId, headerStyleId);
|
|
102599
102770
|
const headerSelection = resolveHeaderLook({
|
|
102600
|
-
theme,
|
|
102601
|
-
recommendedLookIds: headerLookId ? [headerLookId] : siteStyle.recommendedHeaderLookIds,
|
|
102602
|
-
context:
|
|
102771
|
+
theme: input.theme,
|
|
102772
|
+
recommendedLookIds: headerLookId ? [headerLookId] : input.siteStyle.recommendedHeaderLookIds,
|
|
102773
|
+
context: input.directive.context
|
|
102603
102774
|
});
|
|
102604
102775
|
const headerLayoutStyleSelection = canonicalHeaderSelection.kind === "canonical" ? resolveHeaderLayoutStyleSelection({
|
|
102605
102776
|
layoutId: canonicalHeaderSelection.selection.layoutId,
|
|
102606
102777
|
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 =
|
|
102778
|
+
}).selection : resolveLegacyHeaderLookAlias(headerSelection.selectedLookId) ?? input.siteStyle.defaultHeaderSelection;
|
|
102779
|
+
const header = canonicalHeaderSelection.kind === "canonical" ? compileHeaderLayoutStyleSelection(input.theme, headerLayoutStyleSelection) : headerSelection.header;
|
|
102780
|
+
const headerWithBrandPresentation = input.directive.brandPresentation.kind === "apply-logo-context" ? applyHeaderBrandPresentation(header, headerSelection.brandPresentation) : header;
|
|
102610
102781
|
const resolvedHeaderLookId = canonicalHeaderSelection.kind === "canonical" ? findLegacyHeaderLookIdForSelection(headerLayoutStyleSelection) : headerSelection.selectedLookId;
|
|
102611
|
-
|
|
102612
|
-
|
|
102613
|
-
|
|
102614
|
-
|
|
102782
|
+
return {
|
|
102783
|
+
header: headerWithBrandPresentation,
|
|
102784
|
+
headerCompilation: {
|
|
102785
|
+
kind: "recompiled",
|
|
102786
|
+
result: headerSelection
|
|
102615
102787
|
},
|
|
102616
|
-
|
|
102788
|
+
resolvedHeaderSelection: {
|
|
102789
|
+
headerLookId: resolvedHeaderLookId,
|
|
102790
|
+
headerLayoutId: headerLayoutStyleSelection.layoutId,
|
|
102791
|
+
headerStyleId: headerLayoutStyleSelection.styleId
|
|
102792
|
+
}
|
|
102793
|
+
};
|
|
102794
|
+
}
|
|
102795
|
+
function compileReplacementFooter(input) {
|
|
102796
|
+
const result = resolveFooterLook({
|
|
102797
|
+
theme: input.theme,
|
|
102798
|
+
recommendedLookIds: input.footerLookId ? [input.footerLookId] : input.siteStyle.recommendedFooterLookIds
|
|
102617
102799
|
});
|
|
102618
|
-
const footerWithBrandPresentation = footerPresentation === void 0 && headerSelectionContext?.logo ? applyFooterBrandPresentation(footerSelection.footer, headerSelection.brandPresentation) : footerSelection.footer;
|
|
102619
102800
|
return {
|
|
102620
|
-
|
|
102621
|
-
|
|
102622
|
-
|
|
102623
|
-
|
|
102624
|
-
}
|
|
102625
|
-
|
|
102626
|
-
|
|
102627
|
-
|
|
102628
|
-
|
|
102801
|
+
footer: input.brandPresentation.kind === "apply-logo-context" && "brandPresentation" in input.headerSelection ? applyFooterBrandPresentation(result.footer, input.headerSelection.brandPresentation) : result.footer,
|
|
102802
|
+
footerCompilation: {
|
|
102803
|
+
kind: "applied-look",
|
|
102804
|
+
result
|
|
102805
|
+
},
|
|
102806
|
+
resolvedFooterLookId: result.selectedLookId
|
|
102807
|
+
};
|
|
102808
|
+
}
|
|
102809
|
+
function compileIncrementalFooter(input) {
|
|
102810
|
+
if (input.directive.kind === "preserve") return {
|
|
102811
|
+
footer: input.directive.footer,
|
|
102812
|
+
footerCompilation: {
|
|
102813
|
+
kind: "preserved",
|
|
102814
|
+
footerLookId: input.directive.footerLookId
|
|
102815
|
+
},
|
|
102816
|
+
resolvedFooterLookId: input.directive.footerLookId
|
|
102817
|
+
};
|
|
102818
|
+
const result = resolveFooterLook({
|
|
102819
|
+
theme: {
|
|
102820
|
+
...input.theme,
|
|
102821
|
+
footer: input.directive.footer
|
|
102822
|
+
},
|
|
102823
|
+
recommendedLookIds: input.directive.footerLookId ? [input.directive.footerLookId] : input.siteStyle.recommendedFooterLookIds
|
|
102824
|
+
});
|
|
102825
|
+
return {
|
|
102826
|
+
footer: result.footer,
|
|
102827
|
+
footerCompilation: {
|
|
102828
|
+
kind: "applied-look",
|
|
102829
|
+
result
|
|
102830
|
+
},
|
|
102831
|
+
resolvedFooterLookId: result.selectedLookId
|
|
102629
102832
|
};
|
|
102630
102833
|
}
|
|
102631
102834
|
function applyHeaderBrandPresentation(header, presentation) {
|
|
@@ -102664,17 +102867,8 @@ function footerLogoSizeFromBrandPresentation(size) {
|
|
|
102664
102867
|
default: return size;
|
|
102665
102868
|
}
|
|
102666
102869
|
}
|
|
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
102870
|
function compileSiteThemeFromSelections(input) {
|
|
102677
|
-
const { siteStyle, buttonStyleSelection, typography,
|
|
102871
|
+
const { siteStyle, buttonStyleSelection, typography, compilationPlan } = input;
|
|
102678
102872
|
const defaultButtonStyle = defaultButtonStyleSelectionForSiteStyle(siteStyle);
|
|
102679
102873
|
const requestedButtonStyle = buttonStyleSelection ?? defaultButtonStyle;
|
|
102680
102874
|
const acceptsRequestedButtonStyle = siteStyle.buttonStyleChoices.some((choice) => choice.styleId === requestedButtonStyle.styleId);
|
|
@@ -102691,30 +102885,19 @@ function compileSiteThemeFromSelections(input) {
|
|
|
102691
102885
|
resolvedPalette: input.resolvedPalette
|
|
102692
102886
|
}), siteStyle), typography ?? siteStyle.typography, siteStyle.heroTypography),
|
|
102693
102887
|
siteStyle,
|
|
102694
|
-
|
|
102695
|
-
headerLookId,
|
|
102696
|
-
headerLayoutId,
|
|
102697
|
-
headerStyleId,
|
|
102698
|
-
footerLookId,
|
|
102699
|
-
headerSelectionContext
|
|
102888
|
+
compilationPlan
|
|
102700
102889
|
});
|
|
102890
|
+
const requestedSelections = requestedSelectionsForPlan(compilationPlan);
|
|
102701
102891
|
const commonResult = {
|
|
102702
102892
|
theme: withSiteStyleMetadata(siteChromeResult.theme, siteStyle),
|
|
102703
|
-
requestedSelections
|
|
102704
|
-
headerLookId: headerLookId ?? null,
|
|
102705
|
-
headerLayoutId: headerLayoutId ?? null,
|
|
102706
|
-
headerStyleId: headerStyleId ?? null,
|
|
102707
|
-
footerLookId: footerLookId ?? null
|
|
102708
|
-
},
|
|
102893
|
+
requestedSelections,
|
|
102709
102894
|
resolvedSelections: {
|
|
102710
102895
|
buttonStyleSelection: resolvedButtonStyle,
|
|
102711
|
-
|
|
102712
|
-
|
|
102713
|
-
headerStyleId: siteChromeResult.headerLayoutStyleSelection.styleId,
|
|
102714
|
-
footerLookId: siteChromeResult.footerSelection.selectedLookId
|
|
102896
|
+
...siteChromeResult.resolvedHeaderSelection,
|
|
102897
|
+
footerLookId: siteChromeResult.resolvedFooterLookId
|
|
102715
102898
|
},
|
|
102716
|
-
|
|
102717
|
-
|
|
102899
|
+
headerCompilation: siteChromeResult.headerCompilation,
|
|
102900
|
+
footerCompilation: siteChromeResult.footerCompilation,
|
|
102718
102901
|
warnings
|
|
102719
102902
|
};
|
|
102720
102903
|
return {
|
|
@@ -102725,6 +102908,16 @@ function compileSiteThemeFromSelections(input) {
|
|
|
102725
102908
|
}
|
|
102726
102909
|
};
|
|
102727
102910
|
}
|
|
102911
|
+
function requestedSelectionsForPlan(plan) {
|
|
102912
|
+
if (plan.kind === "replace-site-style") return {
|
|
102913
|
+
...plan.header.selection,
|
|
102914
|
+
footerLookId: plan.footerLookId
|
|
102915
|
+
};
|
|
102916
|
+
return {
|
|
102917
|
+
...plan.header.selection,
|
|
102918
|
+
footerLookId: plan.footer.footerLookId
|
|
102919
|
+
};
|
|
102920
|
+
}
|
|
102728
102921
|
function siteStyleIdFromTheme(theme) {
|
|
102729
102922
|
const rawSiteStyleId = theme?.siteStyleId;
|
|
102730
102923
|
if (!rawSiteStyleId) return null;
|
|
@@ -108755,7 +108948,7 @@ const shopModeSchema = z$1.enum([
|
|
|
108755
108948
|
"cart",
|
|
108756
108949
|
"checkout"
|
|
108757
108950
|
]);
|
|
108758
|
-
const contentEntrySchema
|
|
108951
|
+
const contentEntrySchema = z$1.object({
|
|
108759
108952
|
id: z$1.string().nullable().optional(),
|
|
108760
108953
|
slug: z$1.string().nullable().optional()
|
|
108761
108954
|
}).nullable();
|
|
@@ -108789,7 +108982,7 @@ const shopSourceSchema = z$1.object({
|
|
|
108789
108982
|
checkoutButtonText: z$1.string().optional(),
|
|
108790
108983
|
clearButtonText: z$1.string().optional(),
|
|
108791
108984
|
submitButtonText: z$1.string().optional(),
|
|
108792
|
-
contentEntry: contentEntrySchema
|
|
108985
|
+
contentEntry: contentEntrySchema.optional(),
|
|
108793
108986
|
passes: z$1.array(publicPassProductSchema).nullable().optional(),
|
|
108794
108987
|
memberships: z$1.array(publicMembershipProductSchema).nullable().optional(),
|
|
108795
108988
|
products: z$1.array(publicProductSchema).nullable().optional(),
|
|
@@ -109365,22 +109558,6 @@ const checkoutBlockDefinition = {
|
|
|
109365
109558
|
}),
|
|
109366
109559
|
runtime: checkoutBlockRuntime
|
|
109367
109560
|
};
|
|
109368
|
-
//#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
109561
|
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z$1.object({
|
|
109385
109562
|
kind: z$1.literal("unsupported"),
|
|
109386
109563
|
reason: z$1.enum([
|
|
@@ -109441,12 +109618,6 @@ function resolveEventRegistrationScope(context) {
|
|
|
109441
109618
|
kind: "unsupportedPageSurfaceSubject",
|
|
109442
109619
|
reason: context.subject.reason
|
|
109443
109620
|
};
|
|
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
109621
|
return { kind: "unscoped" };
|
|
109451
109622
|
}
|
|
109452
109623
|
function applyEventRegistrationScope(events, scope) {
|
|
@@ -109457,7 +109628,6 @@ function applyEventRegistrationScope(events, scope) {
|
|
|
109457
109628
|
const seriesIds = new Set(scope.seriesIds);
|
|
109458
109629
|
return events.filter((event) => seriesIds.has(event.seriesId));
|
|
109459
109630
|
}
|
|
109460
|
-
case "legacyEventSlug": return events.filter((event) => event.slug === scope.slug);
|
|
109461
109631
|
case "unsupportedPageSurfaceSubject": return [];
|
|
109462
109632
|
case "unscoped": return [...events];
|
|
109463
109633
|
}
|
|
@@ -109467,29 +109637,10 @@ function resolveEventRegistrationScopedEvents(events, context) {
|
|
|
109467
109637
|
}
|
|
109468
109638
|
//#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,10 +119830,6 @@ const eventDetailsManifest = createBlockManifest({
|
|
|
119868
119830
|
from: "$root.occurrenceContext",
|
|
119869
119831
|
fallback: null
|
|
119870
119832
|
} },
|
|
119871
|
-
contentEntry: { $bind: {
|
|
119872
|
-
from: "$root.contentEntry",
|
|
119873
|
-
fallback: null
|
|
119874
|
-
} },
|
|
119875
119833
|
events: { $bind: { from: "data.eventDetailsData.events" } },
|
|
119876
119834
|
showVenue: { $bind: { from: "content.showVenue" } },
|
|
119877
119835
|
showMap: { $bind: { from: "content.showMap" } },
|
|
@@ -119945,7 +119903,6 @@ const eventDetailsBlockDefinition = {
|
|
|
119945
119903
|
fallback: "published"
|
|
119946
119904
|
} },
|
|
119947
119905
|
limit: "25",
|
|
119948
|
-
entryId: { $bind: { from: "$root.contentEntry._entryId" } },
|
|
119949
119906
|
seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
|
|
119950
119907
|
includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
|
|
119951
119908
|
},
|
|
@@ -119990,15 +119947,6 @@ const courseDetailsBlockDefinition = {
|
|
|
119990
119947
|
multiline: false,
|
|
119991
119948
|
defaultValue: "Course details"
|
|
119992
119949
|
},
|
|
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
119950
|
{
|
|
120003
119951
|
id: "showTitle",
|
|
120004
119952
|
type: "boolean",
|
|
@@ -120097,23 +120045,11 @@ const courseDetailsBlockDefinition = {
|
|
|
120097
120045
|
baseClass: "",
|
|
120098
120046
|
spacing: "spacious",
|
|
120099
120047
|
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
120048
|
subject: { $bind: {
|
|
120109
120049
|
from: "$root.subject",
|
|
120110
120050
|
fallback: null
|
|
120111
120051
|
} },
|
|
120112
120052
|
courses: { $bind: { from: "data.courses" } },
|
|
120113
|
-
courseSlug: { $bind: {
|
|
120114
|
-
from: "content.courseSlug",
|
|
120115
|
-
fallback: null
|
|
120116
|
-
} },
|
|
120117
120053
|
showTitle: { $bind: {
|
|
120118
120054
|
from: "content.showTitle",
|
|
120119
120055
|
fallback: false
|
|
@@ -120155,7 +120091,7 @@ const courseDetailsBlockDefinition = {
|
|
|
120155
120091
|
}),
|
|
120156
120092
|
dataSchemas: { courses: publicCoursesArraySchema.optional() },
|
|
120157
120093
|
dataLoaders: { courses: {
|
|
120158
|
-
endpoint: "
|
|
120094
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
120159
120095
|
params: {
|
|
120160
120096
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
120161
120097
|
limit: "50",
|
|
@@ -120773,7 +120709,6 @@ const recurringScheduleBlockDefinition = {
|
|
|
120773
120709
|
} },
|
|
120774
120710
|
detailLevel: "listing",
|
|
120775
120711
|
readProfile: "compact-list",
|
|
120776
|
-
kind: "events",
|
|
120777
120712
|
eventSurface: "custom",
|
|
120778
120713
|
eventPresets: "class",
|
|
120779
120714
|
scheduleScope: "any"
|
|
@@ -121091,7 +121026,7 @@ const offeringsPreviewBlockDefinition = {
|
|
|
121091
121026
|
mode: "server"
|
|
121092
121027
|
},
|
|
121093
121028
|
courses: {
|
|
121094
|
-
endpoint: "
|
|
121029
|
+
endpoint: "listPublicWholeSeriesOfferings",
|
|
121095
121030
|
params: {
|
|
121096
121031
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
121097
121032
|
limit: { $bind: {
|
|
@@ -121122,7 +121057,6 @@ function eventPresetLoader(preset) {
|
|
|
121122
121057
|
} },
|
|
121123
121058
|
detailLevel: "listing",
|
|
121124
121059
|
readProfile: "listing-card",
|
|
121125
|
-
kind: "events",
|
|
121126
121060
|
eventPresets: preset
|
|
121127
121061
|
},
|
|
121128
121062
|
mode: "server"
|
|
@@ -141185,7 +141119,7 @@ const SUPPORTED_LOADER_ENDPOINTS = [
|
|
|
141185
141119
|
"listPublicEvents",
|
|
141186
141120
|
"listPublicRecurringSchedule",
|
|
141187
141121
|
"getPublicEventDetails",
|
|
141188
|
-
"
|
|
141122
|
+
"listPublicWholeSeriesOfferings",
|
|
141189
141123
|
"listPublicRouteCandidates",
|
|
141190
141124
|
"listPublicTeamMembers",
|
|
141191
141125
|
"listPublicProducts",
|
|
@@ -146014,8 +145948,94 @@ const EVENT_ATTENDEE_REFUND_INVALID_CODES = ["manual_booking_not_refundable", ..
|
|
|
146014
145948
|
[...EVENT_ATTENDEE_REFUND_INVALID_CODES, ...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
|
|
146015
145949
|
[...STANDARD_LINE_ITEM_REFUND_INVALID_CODES, ...CANONICAL_ADMIN_REFUND_FAILURE_CODES];
|
|
146016
145950
|
//#endregion
|
|
146017
|
-
//#region ../api/src/
|
|
146018
|
-
const
|
|
145951
|
+
//#region ../api/src/bookingVerticalPreset.ts
|
|
145952
|
+
const BOOKING_ENGINE_BY_BEHAVIOUR = {
|
|
145953
|
+
class: "event_series",
|
|
145954
|
+
workshop: "event_series",
|
|
145955
|
+
course: "event_series",
|
|
145956
|
+
retreat: "event_series",
|
|
145957
|
+
performance: "event_series",
|
|
145958
|
+
appointment: "appointment_service"
|
|
145959
|
+
};
|
|
145960
|
+
function verticalBookingPreset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
|
|
145961
|
+
return {
|
|
145962
|
+
id,
|
|
145963
|
+
verticalId,
|
|
145964
|
+
canonicalBehaviour,
|
|
145965
|
+
engine: BOOKING_ENGINE_BY_BEHAVIOUR[canonicalBehaviour],
|
|
145966
|
+
availability,
|
|
145967
|
+
label,
|
|
145968
|
+
pluralLabel,
|
|
145969
|
+
description
|
|
145970
|
+
};
|
|
145971
|
+
}
|
|
145972
|
+
//#endregion
|
|
145973
|
+
//#region ../api/src/bookingVerticalCatalog.ts
|
|
145974
|
+
const VERTICAL_BOOKING_PRESETS = [
|
|
145975
|
+
verticalBookingPreset("yoga_wellness.classes", "yoga_wellness", "class", "Class", "Classes", "Regular scheduled classes and group sessions."),
|
|
145976
|
+
verticalBookingPreset("yoga_wellness.workshops", "yoga_wellness", "workshop", "Workshop", "Workshops", "One-off workshops, day retreats, or special sessions."),
|
|
145977
|
+
verticalBookingPreset("yoga_wellness.courses", "yoga_wellness", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups."),
|
|
145978
|
+
verticalBookingPreset("yoga_wellness.retreats", "yoga_wellness", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats and immersive experiences."),
|
|
145979
|
+
verticalBookingPreset("yoga_wellness.appointments", "yoga_wellness", "appointment", "Appointment", "Appointments", "Private sessions, consultations, or one-to-one support."),
|
|
145980
|
+
verticalBookingPreset("fitness_pt.group_training", "fitness_pt", "class", "Group training", "Group training", "Regular scheduled classes and group sessions."),
|
|
145981
|
+
verticalBookingPreset("fitness_pt.personal_training", "fitness_pt", "appointment", "Personal training", "Personal training", "One-to-one sessions booked from your availability."),
|
|
145982
|
+
verticalBookingPreset("fitness_pt.programmes", "fitness_pt", "course", "Programme", "Programmes", "Multi-session programmes like bootcamps or courses."),
|
|
145983
|
+
verticalBookingPreset("fitness_pt.workshops", "fitness_pt", "workshop", "Workshop", "Workshops", "One-off workshops, events, or special sessions."),
|
|
145984
|
+
verticalBookingPreset("fitness_pt.retreats", "fitness_pt", "retreat", "Retreat", "Retreats", "Multi-day or residential fitness experiences."),
|
|
145985
|
+
verticalBookingPreset("dance_school.classes", "dance_school", "class", "Class", "Classes", "Regular group classes and weekly sessions."),
|
|
145986
|
+
verticalBookingPreset("dance_school.terms", "dance_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
|
|
145987
|
+
verticalBookingPreset("dance_school.courses", "dance_school", "course", "Course", "Courses", "Fixed-schedule courses or multi-session groups.", "settings"),
|
|
145988
|
+
verticalBookingPreset("dance_school.workshops", "dance_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
145989
|
+
verticalBookingPreset("dance_school.private_lessons", "dance_school", "appointment", "Private lesson", "Private lessons", "One-to-one lessons or coaching sessions."),
|
|
145990
|
+
verticalBookingPreset("dance_school.shows", "dance_school", "performance", "Show", "Shows", "Ticketed performances, showcases, and recitals."),
|
|
145991
|
+
verticalBookingPreset("physiotherapy_physical_health.appointments", "physiotherapy_physical_health", "appointment", "Appointment", "Appointments", "Assessments, treatments, follow-ups, and rehabilitation sessions."),
|
|
145992
|
+
verticalBookingPreset("physiotherapy_physical_health.rehab_classes", "physiotherapy_physical_health", "class", "Rehab class", "Rehab classes", "Regular rehabilitation, mobility, strength, or recovery classes."),
|
|
145993
|
+
verticalBookingPreset("physiotherapy_physical_health.workshops", "physiotherapy_physical_health", "workshop", "Workshop", "Workshops", "One-off workshops, talks, or practical group sessions."),
|
|
145994
|
+
verticalBookingPreset("massage_bodywork.treatments", "massage_bodywork", "appointment", "Treatment", "Treatments", "Massage treatments, bodywork sessions, and one-to-one appointments."),
|
|
145995
|
+
verticalBookingPreset("massage_bodywork.group_sessions", "massage_bodywork", "class", "Group session", "Group sessions", "Regular bodywork, somatic movement, or self-massage sessions."),
|
|
145996
|
+
verticalBookingPreset("massage_bodywork.workshops", "massage_bodywork", "workshop", "Workshop", "Workshops", "One-off bodywork, self-massage, or somatic practice workshops."),
|
|
145997
|
+
verticalBookingPreset("therapist_practitioner.appointments", "therapist_practitioner", "appointment", "Appointment", "Appointments", "Sessions, consultations, treatments, or assessments."),
|
|
145998
|
+
verticalBookingPreset("therapist_practitioner.workshops", "therapist_practitioner", "workshop", "Workshop", "Workshops", "One-off group workshops, talks, or wellbeing sessions."),
|
|
145999
|
+
verticalBookingPreset("therapist_practitioner.retreats", "therapist_practitioner", "retreat", "Retreat", "Retreats", "Multi-day retreats or immersive group experiences."),
|
|
146000
|
+
verticalBookingPreset("beauty_spa.appointments", "beauty_spa", "appointment", "Appointment", "Appointments", "Treatments, consultations, services, and sessions."),
|
|
146001
|
+
verticalBookingPreset("beauty_spa.workshops", "beauty_spa", "workshop", "Workshop", "Workshops", "Skincare workshops, makeup lessons, demos, or group events."),
|
|
146002
|
+
verticalBookingPreset("consultant_coach.appointments", "consultant_coach", "appointment", "Appointment", "Appointments", "One-to-one calls, consultations, reviews, or coaching sessions."),
|
|
146003
|
+
verticalBookingPreset("consultant_coach.workshops", "consultant_coach", "workshop", "Workshop", "Workshops", "One-off group sessions, webinars, or strategy days."),
|
|
146004
|
+
verticalBookingPreset("consultant_coach.courses", "consultant_coach", "course", "Course", "Courses", "Fixed-schedule cohorts or multi-session group programmes."),
|
|
146005
|
+
verticalBookingPreset("consultant_coach.retreats", "consultant_coach", "retreat", "Retreat", "Retreats", "Multi-day coaching retreats or immersive experiences."),
|
|
146006
|
+
verticalBookingPreset("training_provider.courses", "training_provider", "course", "Course", "Courses", "Fixed-schedule courses, cohorts, and multi-session training."),
|
|
146007
|
+
verticalBookingPreset("training_provider.workshops", "training_provider", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, and short training sessions."),
|
|
146008
|
+
verticalBookingPreset("training_provider.appointments", "training_provider", "appointment", "Appointment", "Appointments", "Consultations, assessments, mentoring, or office hours."),
|
|
146009
|
+
verticalBookingPreset("training_provider.classes", "training_provider", "class", "Class", "Classes", "Regular classes, sessions, or groups.", "settings"),
|
|
146010
|
+
verticalBookingPreset("training_provider.residentials", "training_provider", "retreat", "Residential", "Residentials", "Residential courses or multi-day training experiences.", "settings"),
|
|
146011
|
+
verticalBookingPreset("retreat_centre.retreats", "retreat_centre", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats with richer booking needs."),
|
|
146012
|
+
verticalBookingPreset("retreat_centre.workshops", "retreat_centre", "workshop", "Workshop", "Workshops", "One-day retreats, ceremonies, workshops, or special events."),
|
|
146013
|
+
verticalBookingPreset("retreat_centre.classes", "retreat_centre", "class", "Class", "Classes", "Regular sessions like guided meditations or group practices."),
|
|
146014
|
+
verticalBookingPreset("retreat_centre.courses", "retreat_centre", "course", "Course", "Courses", "Fixed-schedule programmes or multi-session experiences."),
|
|
146015
|
+
verticalBookingPreset("retreat_centre.appointments", "retreat_centre", "appointment", "Appointment", "Appointments", "Private sessions, therapies, consultations, or add-ons."),
|
|
146016
|
+
verticalBookingPreset("music_school.lessons", "music_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, consultations, or coaching sessions."),
|
|
146017
|
+
verticalBookingPreset("music_school.classes", "music_school", "class", "Class", "Classes", "Regular group classes, ensembles, or recurring sessions."),
|
|
146018
|
+
verticalBookingPreset("music_school.terms", "music_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date group courses."),
|
|
146019
|
+
verticalBookingPreset("music_school.workshops", "music_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
146020
|
+
verticalBookingPreset("music_school.performances", "music_school", "performance", "Performance", "Performances", "Concerts, recitals, showcases, or ticketed performances."),
|
|
146021
|
+
verticalBookingPreset("voice_singing.lessons", "voice_singing", "appointment", "Voice session", "Voice sessions", "One-to-one singing lessons, voice coaching, or private practice sessions."),
|
|
146022
|
+
verticalBookingPreset("voice_singing.classes", "voice_singing", "class", "Ongoing weekly session", "Ongoing weekly sessions", "Regular choirs, voice circles, community singing, or group practice."),
|
|
146023
|
+
verticalBookingPreset("voice_singing.terms", "voice_singing", "course", "Singing term", "Singing terms", "Multi-week choir terms, voice courses, or fixed-date group programmes."),
|
|
146024
|
+
verticalBookingPreset("voice_singing.workshops", "voice_singing", "workshop", "Workshop", "Workshops", "One-off singing workshops, voice journeys, or devotional singing sessions."),
|
|
146025
|
+
verticalBookingPreset("voice_singing.performances", "voice_singing", "performance", "Performance", "Performances", "Choir concerts, sharing events, recitals, or community performances."),
|
|
146026
|
+
verticalBookingPreset("performing_arts_school.classes", "performing_arts_school", "class", "Class", "Classes", "Regular group classes, rehearsals, or weekly sessions."),
|
|
146027
|
+
verticalBookingPreset("performing_arts_school.terms", "performing_arts_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
|
|
146028
|
+
verticalBookingPreset("performing_arts_school.workshops", "performing_arts_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
|
|
146029
|
+
verticalBookingPreset("performing_arts_school.performances", "performing_arts_school", "performance", "Performance", "Performances", "Shows, showcases, productions, or ticketed performances."),
|
|
146030
|
+
verticalBookingPreset("performing_arts_school.lessons", "performing_arts_school", "appointment", "Lesson", "Lessons", "One-to-one lessons, coaching, or audition prep."),
|
|
146031
|
+
verticalBookingPreset("community_wellbeing.classes", "community_wellbeing", "class", "Class", "Classes", "Regular groups, sessions, practices, or weekly activities."),
|
|
146032
|
+
verticalBookingPreset("community_wellbeing.workshops", "community_wellbeing", "workshop", "Workshop", "Workshops", "One-off workshops, talks, events, or gatherings."),
|
|
146033
|
+
verticalBookingPreset("community_wellbeing.courses", "community_wellbeing", "course", "Course", "Courses", "Fixed-schedule courses, study groups, or multi-session programmes."),
|
|
146034
|
+
verticalBookingPreset("community_wellbeing.appointments", "community_wellbeing", "appointment", "Appointment", "Appointments", "One-to-one appointments, consultations, or support sessions."),
|
|
146035
|
+
verticalBookingPreset("community_wellbeing.retreats", "community_wellbeing", "retreat", "Retreat", "Retreats", "Multi-day or residential retreats."),
|
|
146036
|
+
verticalBookingPreset("venue_event_space.resource_hire", "venue_event_space", "appointment", "Hire slot", "Hire slots", "Future room, venue, and resource hire bookings.", "future")
|
|
146037
|
+
];
|
|
146038
|
+
const VERTICAL_ID_SET = /* @__PURE__ */ new Set([
|
|
146019
146039
|
"yoga_wellness",
|
|
146020
146040
|
"fitness_pt",
|
|
146021
146041
|
"dance_school",
|
|
@@ -146031,79 +146051,7 @@ const VERTICAL_IDS = [
|
|
|
146031
146051
|
"performing_arts_school",
|
|
146032
146052
|
"community_wellbeing",
|
|
146033
146053
|
"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);
|
|
146054
|
+
]);
|
|
146107
146055
|
const VERTICAL_PRESET_ID_SET = new Set(VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id));
|
|
146108
146056
|
function parseVerticalId(value) {
|
|
146109
146057
|
return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
|
|
@@ -146219,18 +146167,6 @@ const DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
|
|
|
146219
146167
|
verticalId: null,
|
|
146220
146168
|
selectedPresetIds: []
|
|
146221
146169
|
};
|
|
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
146170
|
//#endregion
|
|
146235
146171
|
//#region ../api/src/utils/isRecord.ts
|
|
146236
146172
|
function isRecord$2(value) {
|
|
@@ -146387,10 +146323,9 @@ z$1.object({
|
|
|
146387
146323
|
const BOOKING_QUESTION_ANSWER_EXPORT_SCOPES = {
|
|
146388
146324
|
site: "site",
|
|
146389
146325
|
appointments: "appointments",
|
|
146390
|
-
eventSeries: "event_series"
|
|
146391
|
-
course: "course"
|
|
146326
|
+
eventSeries: "event_series"
|
|
146392
146327
|
};
|
|
146393
|
-
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.site, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.appointments, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.eventSeries
|
|
146328
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.site, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.appointments, BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.eventSeries;
|
|
146394
146329
|
//#endregion
|
|
146395
146330
|
//#region ../api/src/siteBanner.ts
|
|
146396
146331
|
const SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
@@ -159285,12 +159220,6 @@ function optimisticHashForSave(revision) {
|
|
|
159285
159220
|
}
|
|
159286
159221
|
}
|
|
159287
159222
|
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
159223
|
/**
|
|
159295
159224
|
* Hook to handle block autosave for pages.
|
|
159296
159225
|
* Watches for pending block changes and debounces saves to the server.
|
|
@@ -159324,7 +159253,7 @@ function useBlockAutosave({ uiStore, apiClient, siteId, hasRoute, owner }) {
|
|
|
159324
159253
|
});
|
|
159325
159254
|
} else {
|
|
159326
159255
|
const message = result.reason instanceof Error ? result.reason.message : "Failed to save block";
|
|
159327
|
-
drafts.autosaveFailed(blockId, message
|
|
159256
|
+
drafts.autosaveFailed(blockId, message);
|
|
159328
159257
|
}
|
|
159329
159258
|
});
|
|
159330
159259
|
return results;
|
|
@@ -159804,7 +159733,7 @@ function useEntryActions({ entry, uiStore, hasRoute, routing, publishMutation, d
|
|
|
159804
159733
|
setErrorMessage(null);
|
|
159805
159734
|
const dirtyTypes = getDirtyAutosaveTypes(uiStore, hasRoute);
|
|
159806
159735
|
if (dirtyTypes.length === 0) return;
|
|
159807
|
-
uiStore.getState().autosave.saveNow(dirtyTypes);
|
|
159736
|
+
await uiStore.getState().autosave.saveNow(dirtyTypes);
|
|
159808
159737
|
await waitForAutosavesComplete(uiStore);
|
|
159809
159738
|
if (hasAutosaveErrors(uiStore)) {
|
|
159810
159739
|
const message = "Failed to save draft — some changes may not be saved.";
|
|
@@ -159837,7 +159766,7 @@ function useEntryActions({ entry, uiStore, hasRoute, routing, publishMutation, d
|
|
|
159837
159766
|
throw new Error("Cannot publish: failed to save draft changes.");
|
|
159838
159767
|
}
|
|
159839
159768
|
const dirtyTypes = getDirtyAutosaveTypes(uiStore, hasRoute);
|
|
159840
|
-
uiStore.getState().autosave.saveNow(dirtyTypes);
|
|
159769
|
+
await uiStore.getState().autosave.saveNow(dirtyTypes);
|
|
159841
159770
|
uiStore.getState().autosave.flushAllPending();
|
|
159842
159771
|
await waitForAutosavesComplete(uiStore);
|
|
159843
159772
|
const autosavePublishability = derivePublishability({
|
|
@@ -160400,58 +160329,6 @@ function cloneContentValues(value) {
|
|
|
160400
160329
|
function cloneBlockValues(value) {
|
|
160401
160330
|
return cloneBrandedValues(value, unsafeAsEditorBlockValues);
|
|
160402
160331
|
}
|
|
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
160332
|
function createSyncState(baseline, current) {
|
|
160456
160333
|
return recordsEqual(baseline, current) ? BASELINE_SYNC_STATE : PENDING_SYNC_STATE;
|
|
160457
160334
|
}
|
|
@@ -161103,7 +160980,7 @@ function applySystemOperation(snapshot, operation) {
|
|
|
161103
160980
|
case "remove-draft-block": return removeDraftBlock(snapshot, operation.blockId);
|
|
161104
160981
|
case "set-draft-published-baselines": return setDraftPublishedBaselines(snapshot, operation.blocks);
|
|
161105
160982
|
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
|
|
160983
|
+
case "autosave-draft-failed": return autosaveDraftFailed(snapshot, operation.blockId, operation.message);
|
|
161107
160984
|
case "clear-draft-error": return clearDraftError(snapshot, operation.blockId);
|
|
161108
160985
|
case "set-draft-pending": return setDraftPending(snapshot, operation.blockId);
|
|
161109
160986
|
case "clear-draft-pending": return clearDraftPending(snapshot, operation.blockId);
|
|
@@ -161250,15 +161127,12 @@ function buildDraftSnapshotFromBaseline(blockId, baseline, meta, existing) {
|
|
|
161250
161127
|
const hasPendingSave = existingSyncState?.kind === "pending";
|
|
161251
161128
|
const failedSave = existingSyncState?.kind === "failed" ? existingSyncState : null;
|
|
161252
161129
|
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);
|
|
161130
|
+
const shouldPreserveFailedSave = Boolean(failedSave);
|
|
161256
161131
|
const nextBaseline = hasPendingSave || shouldPreserveFailedSave ? cloneBlockValues(existing?.baseline ?? null) : cloneBlockValues(normalizedBaseline);
|
|
161257
|
-
const nextCurrent = hasPendingSave ? existing?.current ?? null :
|
|
161132
|
+
const nextCurrent = hasPendingSave ? existing?.current ?? null : shouldPreserveFailedSave ? existing?.current ?? null : cloneBlockValues(normalizedBaseline);
|
|
161258
161133
|
const nextSyncState = hasPendingSave ? existingSyncState ?? BASELINE_SYNC_STATE : shouldPreserveFailedSave ? failedSave ?? {
|
|
161259
161134
|
kind: "failed",
|
|
161260
|
-
error: "Save failed"
|
|
161261
|
-
recovery: { kind: "manualRetry" }
|
|
161135
|
+
error: "Save failed"
|
|
161262
161136
|
} : createSyncState(nextBaseline, nextCurrent);
|
|
161263
161137
|
return createDraftSnapshot(blockId, {
|
|
161264
161138
|
version: existing?.version ?? 0,
|
|
@@ -161377,11 +161251,10 @@ function autosaveDraftSucceeded(snapshot, blockId, savedValues, acknowledgedVers
|
|
|
161377
161251
|
}
|
|
161378
161252
|
};
|
|
161379
161253
|
}
|
|
161380
|
-
function autosaveDraftFailed(snapshot, blockId, message
|
|
161254
|
+
function autosaveDraftFailed(snapshot, blockId, message) {
|
|
161381
161255
|
return nextDraftRecord(snapshot, blockId, (draft) => updateDraftSnapshot(draft, { syncState: {
|
|
161382
161256
|
kind: "failed",
|
|
161383
|
-
error: message ?? "Save failed"
|
|
161384
|
-
recovery
|
|
161257
|
+
error: message ?? "Save failed"
|
|
161385
161258
|
} }));
|
|
161386
161259
|
}
|
|
161387
161260
|
function clearDraftError(snapshot, blockId) {
|
|
@@ -162153,12 +162026,11 @@ function createEditorUiStore(options = {}) {
|
|
|
162153
162026
|
optimisticHash: acknowledgement?.optimisticHash ?? currentSnapshot?.meta.optimisticHash ?? null
|
|
162154
162027
|
})) notifyDraftChangeListeners(blockId);
|
|
162155
162028
|
},
|
|
162156
|
-
autosaveFailed: (blockId, message
|
|
162029
|
+
autosaveFailed: (blockId, message) => {
|
|
162157
162030
|
if (applySystemEditorOperation({
|
|
162158
162031
|
type: "autosave-draft-failed",
|
|
162159
162032
|
blockId,
|
|
162160
|
-
message
|
|
162161
|
-
recovery
|
|
162033
|
+
message
|
|
162162
162034
|
})) notifyDraftChangeListeners(blockId);
|
|
162163
162035
|
},
|
|
162164
162036
|
setAtPath: (blockId, path, value) => {
|
|
@@ -194067,6 +193939,13 @@ function usePreviewDesignCoordinator() {
|
|
|
194067
193939
|
}
|
|
194068
193940
|
//#endregion
|
|
194069
193941
|
//#region ../preview-next/src/client/preview/siteStylePreviewPlanner.ts
|
|
193942
|
+
function deriveSiteStylePreviewUpdate(baseTheme, baseSelection) {
|
|
193943
|
+
return {
|
|
193944
|
+
kind: "derive-update",
|
|
193945
|
+
baseTheme,
|
|
193946
|
+
baseSelection
|
|
193947
|
+
};
|
|
193948
|
+
}
|
|
194070
193949
|
function planSiteStylePreviewChange(input) {
|
|
194071
193950
|
const resolvedPalette = resolvedPaletteForPreview(input.selection.palette, input.siteStyle);
|
|
194072
193951
|
const compiled = compileSiteThemeFromSelections({
|
|
@@ -194074,15 +193953,15 @@ function planSiteStylePreviewChange(input) {
|
|
|
194074
193953
|
buttonStyleSelection: input.selection.buttonStyleSelection,
|
|
194075
193954
|
resolvedPalette,
|
|
194076
193955
|
typography: input.selection.typography,
|
|
194077
|
-
|
|
194078
|
-
headerStyleId: input.selection.headerStyleId,
|
|
194079
|
-
headerLookId: input.selection.headerLookId,
|
|
194080
|
-
footerLookId: input.selection.footerLookId,
|
|
194081
|
-
headerSelectionContext: input.headerSelectionContext
|
|
193956
|
+
compilationPlan: compilationPlanForPreview(input)
|
|
194082
193957
|
});
|
|
194083
193958
|
return {
|
|
194084
193959
|
themeOverlay: compiled.theme,
|
|
194085
|
-
resolvedSelections:
|
|
193960
|
+
resolvedSelections: {
|
|
193961
|
+
...compiled.resolvedSelections,
|
|
193962
|
+
headerLayoutId: compiled.resolvedSelections.headerLayoutId ?? input.selection.headerLayoutId ?? input.siteStyle.defaultHeaderSelection.layoutId,
|
|
193963
|
+
headerStyleId: compiled.resolvedSelections.headerStyleId ?? input.selection.headerStyleId ?? input.siteStyle.defaultHeaderSelection.styleId
|
|
193964
|
+
},
|
|
194086
193965
|
chromeSelection: {
|
|
194087
193966
|
headerLookId: input.selection.headerLookId,
|
|
194088
193967
|
footerLookId: input.selection.footerLookId
|
|
@@ -194090,6 +193969,65 @@ function planSiteStylePreviewChange(input) {
|
|
|
194090
193969
|
warnings: compiled.warnings
|
|
194091
193970
|
};
|
|
194092
193971
|
}
|
|
193972
|
+
function compilationPlanForPreview(input) {
|
|
193973
|
+
const replacement = () => replaceSiteStyleCompilationPlan({
|
|
193974
|
+
headerLayoutId: input.selection.headerLayoutId,
|
|
193975
|
+
headerStyleId: input.selection.headerStyleId,
|
|
193976
|
+
headerLookId: input.selection.headerLookId,
|
|
193977
|
+
footerLookId: input.selection.footerLookId,
|
|
193978
|
+
headerSelectionContext: input.headerSelectionContext
|
|
193979
|
+
});
|
|
193980
|
+
if (input.compilation.kind === "replace-site-style") return replacement();
|
|
193981
|
+
const baseTheme = input.compilation.baseTheme;
|
|
193982
|
+
if (!baseTheme) return replacement();
|
|
193983
|
+
if (input.compilation.kind === "edit-chrome") return updateCompilationPlan({
|
|
193984
|
+
baseTheme,
|
|
193985
|
+
selection: input.selection,
|
|
193986
|
+
headerSelectionContext: input.headerSelectionContext,
|
|
193987
|
+
recompileHeader: input.compilation.surface === "header",
|
|
193988
|
+
applyFooterLook: input.compilation.surface === "footer"
|
|
193989
|
+
});
|
|
193990
|
+
if (input.compilation.baseSelection.siteStyleId !== input.selection.siteStyleId) return replacement();
|
|
193991
|
+
return updateCompilationPlan({
|
|
193992
|
+
baseTheme,
|
|
193993
|
+
selection: input.selection,
|
|
193994
|
+
headerSelectionContext: input.headerSelectionContext,
|
|
193995
|
+
recompileHeader: headerSelectionChanged(input.compilation.baseSelection, input.selection),
|
|
193996
|
+
applyFooterLook: input.compilation.baseSelection.footerLookId !== input.selection.footerLookId
|
|
193997
|
+
});
|
|
193998
|
+
}
|
|
193999
|
+
function updateCompilationPlan(input) {
|
|
194000
|
+
const selection = {
|
|
194001
|
+
headerLookId: input.selection.headerLookId,
|
|
194002
|
+
headerLayoutId: input.selection.headerLayoutId ?? null,
|
|
194003
|
+
headerStyleId: input.selection.headerStyleId ?? null
|
|
194004
|
+
};
|
|
194005
|
+
return {
|
|
194006
|
+
kind: "update-selection",
|
|
194007
|
+
header: input.recompileHeader ? {
|
|
194008
|
+
kind: "recompile",
|
|
194009
|
+
selection,
|
|
194010
|
+
context: completeHeaderSelectionContext(input.headerSelectionContext),
|
|
194011
|
+
brandPresentation: { kind: "apply-logo-context" }
|
|
194012
|
+
} : {
|
|
194013
|
+
kind: "preserve",
|
|
194014
|
+
header: input.baseTheme.header,
|
|
194015
|
+
selection
|
|
194016
|
+
},
|
|
194017
|
+
footer: input.applyFooterLook ? {
|
|
194018
|
+
kind: "apply-look",
|
|
194019
|
+
footer: input.baseTheme.footer,
|
|
194020
|
+
footerLookId: input.selection.footerLookId
|
|
194021
|
+
} : {
|
|
194022
|
+
kind: "preserve",
|
|
194023
|
+
footer: input.baseTheme.footer,
|
|
194024
|
+
footerLookId: input.selection.footerLookId
|
|
194025
|
+
}
|
|
194026
|
+
};
|
|
194027
|
+
}
|
|
194028
|
+
function headerSelectionChanged(base, previewed) {
|
|
194029
|
+
return base.headerLookId !== previewed.headerLookId || base.headerLayoutId !== previewed.headerLayoutId || base.headerStyleId !== previewed.headerStyleId;
|
|
194030
|
+
}
|
|
194093
194031
|
function resolvedPaletteForPreview(palette, siteStyle) {
|
|
194094
194032
|
if (palette.kind === "available") {
|
|
194095
194033
|
const preview = completePaletteEditorPreview(palette.editor);
|
|
@@ -194146,11 +194084,13 @@ function buildSiteChromeLookModels(input) {
|
|
|
194146
194084
|
siteStyle: input.siteStyle,
|
|
194147
194085
|
buttonStyleSelection: selection.buttonStyleSelection,
|
|
194148
194086
|
resolvedPalette: resolvedPaletteForPreview(selection.palette, input.siteStyle),
|
|
194149
|
-
|
|
194150
|
-
|
|
194151
|
-
|
|
194152
|
-
|
|
194153
|
-
|
|
194087
|
+
compilationPlan: replaceSiteStyleCompilationPlan({
|
|
194088
|
+
headerLayoutId: selection.headerLayoutId,
|
|
194089
|
+
headerStyleId: selection.headerStyleId,
|
|
194090
|
+
headerLookId: selection.headerLookId,
|
|
194091
|
+
footerLookId: selection.footerLookId,
|
|
194092
|
+
headerSelectionContext: input.headerSelectionContext
|
|
194093
|
+
})
|
|
194154
194094
|
});
|
|
194155
194095
|
const renderedHeaderLayoutId = current.resolvedSelections.headerLayoutId;
|
|
194156
194096
|
const renderedHeaderStyleId = current.resolvedSelections.headerStyleId;
|
|
@@ -194275,7 +194215,7 @@ function resolveStyleConfiguratorInitialSnapshot(input) {
|
|
|
194275
194215
|
buttonStyleSelection: input.initialSelections.buttonStyleSelection,
|
|
194276
194216
|
resolvedPalette: resolvedRuntimePalette?.ok ? resolvedRuntimePalette.resolved : resolvedPaletteForPreview(palette, siteStyle),
|
|
194277
194217
|
typography: input.theme?.typography ?? siteStyle.typography,
|
|
194278
|
-
|
|
194218
|
+
compilationPlan: replaceSiteStyleCompilationPlan(sharedSelectionInputs(input))
|
|
194279
194219
|
});
|
|
194280
194220
|
return {
|
|
194281
194221
|
siteStyleId: siteStyle.id,
|
|
@@ -194301,10 +194241,7 @@ function sharedSelectionInputs(input) {
|
|
|
194301
194241
|
}
|
|
194302
194242
|
//#endregion
|
|
194303
194243
|
//#region ../preview-next/src/client/preview/siteChromeBrandPreferences.ts
|
|
194304
|
-
const DEFAULT_HEADER_BRAND_PREFERENCES =
|
|
194305
|
-
brandDisplay: "auto",
|
|
194306
|
-
logoSize: "auto"
|
|
194307
|
-
};
|
|
194244
|
+
const DEFAULT_HEADER_BRAND_PREFERENCES = defaultHeaderBrandPreferences;
|
|
194308
194245
|
const HEADER_BRAND_DISPLAY_OPTIONS = [
|
|
194309
194246
|
{
|
|
194310
194247
|
value: "auto",
|
|
@@ -194382,10 +194319,7 @@ function createHeaderBrandControlStateFromPreferences({ preferences, headerSelec
|
|
|
194382
194319
|
};
|
|
194383
194320
|
}
|
|
194384
194321
|
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
|
-
};
|
|
194322
|
+
return headerBrandPreferencesFromTheme(theme);
|
|
194389
194323
|
}
|
|
194390
194324
|
function normalizeHeaderBrandPreferences(preferences, hasLogo) {
|
|
194391
194325
|
if (hasLogo || preferences.brandDisplay !== "logo-only") return preferences;
|
|
@@ -194431,12 +194365,16 @@ function hasLogoInHeaderSelectionContext(context) {
|
|
|
194431
194365
|
}
|
|
194432
194366
|
//#endregion
|
|
194433
194367
|
//#region ../preview-next/src/client/preview/siteChromeSavePlan.ts
|
|
194434
|
-
function buildSiteChromeSavePlan({ surface, siteStyle, selection, baseTheme, headerSelectionContext, headerBrandPreferences, headerNavPreferences, backgroundPreferences, themeId, selectionId, baseSelectionUpdatedAt }) {
|
|
194368
|
+
function buildSiteChromeSavePlan({ surface, selectionPersistence, siteStyle, selection, baseTheme, headerSelectionContext, headerBrandPreferences, headerNavPreferences, backgroundPreferences, themeId, selectionId, baseSelectionUpdatedAt }) {
|
|
194435
194369
|
const compiled = planSiteStylePreviewChange({
|
|
194436
194370
|
siteStyle,
|
|
194437
194371
|
selection,
|
|
194438
|
-
|
|
194439
|
-
|
|
194372
|
+
headerSelectionContext: withHeaderBrandPreferences(headerSelectionContext, headerBrandPreferences),
|
|
194373
|
+
compilation: {
|
|
194374
|
+
kind: "edit-chrome",
|
|
194375
|
+
baseTheme,
|
|
194376
|
+
surface
|
|
194377
|
+
}
|
|
194440
194378
|
});
|
|
194441
194379
|
const themeOverlay = applySiteChromeBackgroundPreferences(withHeaderNavThemePreferences(withHeaderBrandThemePreferences(compiled.themeOverlay, headerBrandPreferences), headerNavPreferences), backgroundPreferences);
|
|
194442
194380
|
return {
|
|
@@ -194445,8 +194383,10 @@ function buildSiteChromeSavePlan({ surface, siteStyle, selection, baseTheme, hea
|
|
|
194445
194383
|
body: surface === "header" ? {
|
|
194446
194384
|
surface,
|
|
194447
194385
|
lookId: selection.headerLookId,
|
|
194448
|
-
|
|
194449
|
-
|
|
194386
|
+
...selectionPersistence.kind === "write" ? {
|
|
194387
|
+
layoutId: selection.headerLayoutId,
|
|
194388
|
+
styleId: selection.headerStyleId
|
|
194389
|
+
} : {},
|
|
194450
194390
|
theme: themeOverlay,
|
|
194451
194391
|
themeId,
|
|
194452
194392
|
selectionId,
|
|
@@ -194552,8 +194492,8 @@ function selectionSnapshotFromApplySiteStyleSelectionResponse(saved, fallback) {
|
|
|
194552
194492
|
palette: paletteSnapshotFromApplyResponse(saved),
|
|
194553
194493
|
typography: saved.theme.typography,
|
|
194554
194494
|
headerLookId: saved.headerLookId,
|
|
194555
|
-
headerLayoutId: saved.headerLayoutId,
|
|
194556
|
-
headerStyleId: saved.headerStyleId,
|
|
194495
|
+
headerLayoutId: saved.headerLayoutId ?? fallback.headerLayoutId,
|
|
194496
|
+
headerStyleId: saved.headerStyleId ?? fallback.headerStyleId,
|
|
194557
194497
|
footerLookId: saved.footerLookId
|
|
194558
194498
|
};
|
|
194559
194499
|
}
|
|
@@ -195403,6 +195343,7 @@ function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, theme
|
|
|
195403
195343
|
};
|
|
195404
195344
|
const savePlan = buildSiteChromeSavePlan({
|
|
195405
195345
|
surface: request.kind === "selection" ? request.surface : "header",
|
|
195346
|
+
selectionPersistence: request.kind === "selection" ? { kind: "write" } : { kind: "preserve" },
|
|
195406
195347
|
siteStyle,
|
|
195407
195348
|
selection,
|
|
195408
195349
|
baseTheme: currentThemeRef.current ?? theme,
|
|
@@ -195875,8 +195816,8 @@ function selectionSnapshotFromSiteChromeSaveResponse({ saved, fallback, savePlan
|
|
|
195875
195816
|
palette: fallback.palette,
|
|
195876
195817
|
typography: savePlan.themeOverlay.typography,
|
|
195877
195818
|
headerLookId: saved.headerLookId ?? fallback.headerLookId,
|
|
195878
|
-
headerLayoutId: saved.headerLayoutId ?? savePlan.compiled.resolvedSelections.headerLayoutId,
|
|
195879
|
-
headerStyleId: saved.headerStyleId ?? savePlan.compiled.resolvedSelections.headerStyleId,
|
|
195819
|
+
headerLayoutId: saved.headerLayoutId ?? savePlan.compiled.resolvedSelections.headerLayoutId ?? fallback.headerLayoutId,
|
|
195820
|
+
headerStyleId: saved.headerStyleId ?? savePlan.compiled.resolvedSelections.headerStyleId ?? fallback.headerStyleId,
|
|
195880
195821
|
footerLookId: saved.footerLookId ?? fallback.footerLookId
|
|
195881
195822
|
};
|
|
195882
195823
|
}
|
|
@@ -195906,4 +195847,4 @@ function useSiteChromeCustomizeOptional() {
|
|
|
195906
195847
|
return useContext(SiteChromeCustomizeContext);
|
|
195907
195848
|
}
|
|
195908
195849
|
//#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 };
|
|
195850
|
+
export { beginAutosaveBatch as $, getLocalDateKey as $a, toScheduledBookingDateTime as $c, curatedPalettes as $i, layoutTransforms as $n, renderAudio as $o, parseStoredCommerceCartState as $r, SearchInput as $s, redoHistory as $t, deriveStyleConfiguratorCapabilities as A, el as Aa, createCollection as Ac, componentRuntimeRulesForTheme 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, formatEventCompactDateRail as Ba, parseFooterModuleId as Bc, parseGradientPresetId as Bi, GripVertical as Bl, escapeStyleContent as Bn, ClockIcon as Bo, buildProductDetailInteractiveIslandProps as Br, unmapValueFromSelect as Bs, BlockEditor as Bt, usePreviewThemeOverlay as C, eventCollectionHydrationSchema as Ca, DropdownMenuContent as Cc, resolveBackgroundColorValue as Ci, Ticket as Cl, MediaEditorContextProvider as Cn, parseGeneratedIconSetId as Co, findPreSelectedEvent as Cr, pageDesignEditorBackgroundOverrideOwner as Cs, InlineTextField as Ct, committedPaletteForSnapshot as D, normalizeCsvIds as Da, DropdownMenuTrigger as Dc, retargetCompiledBoundaryRuntimeForContentAdjacency 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, getEventRuntimeFiltersKey as Ea, DropdownMenuSeparator as Ec, compileEditorModelRuntime 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, eventCalendarListLayoutOptions as Fa, Button$1 as Fc, findFooterLook as Fi, Monitor as Fl, containerResponsiveThemeCss as Fn, ArrowDownIcon as Fo, resolveEventRegistrationScopedEvents as Fr, SdkConfigProvider as Fs, RichTextWidgetProvider as Ft, previewSitePalette as G, formatTime as Ga, formatBookingDateTime as Gc, getHeaderLayout as Gi, CircleMinus as Gl, siteFooterManifest as Gn, FileTextIcon as Go, buildProductCardDisplay as Gr, TooltipTrigger as Gs, classifyHistoryShortcut as Gt, previewFooterLook as H, formatEventPrice as Ha, unsafeAsEditorBlockValues as Hc, sectionTransitionFamilies as Hi, EllipsisVertical as Hl, generateDefaultAccordionSystem as Hn, FileArchiveIcon as Ho, buildShopInteractiveIslandProps as Hr, useField as Hs, prepareBlockEditorManifest as Ht, openRow as I, buildGoogleMapsDirectionsUrl as Ia, cva as Ic, gradientToCss as Ii, Minus as Il, createCustomBlockRegistry as In, ArrowRightIcon as Io, checkoutBlockDefinition as Ir, useSdkConfig as Is, EditorProvider as It, resetTypographyToSaved as J, groupEventsByDate as Ja, formatLocalScheduleDate as Jc, backgroundAppearanceColorTokenNames as Ji, ChevronDown as Jl, SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR as Jn, ImagePresets as Jo, formatInterval as Jr, SelectItem as Js, useOptionalEditorUiStoreInstance as Jt, previewSiteStyle as K, getCardOrientation as Ka, formatBookingInstant as Kc, getHeaderStyle as Ki, ChevronRight as Kl, siteHeaderManifest as Kn, MinusIcon as Ko, buildProductDetailDisplay as Kr, Select$1 as Ks, useEditorUiStore as Kt, paletteMutationCapability as L, normalizeLocationMapProps as La, useComposedRefs as Lc, GRADIENT_PRESETS as Li, Maximize2 as Ll, buildThemeRuntime as Ln, ChevronDownIcon as Lo, cartBlockDefinition as Lr, hasEmptyOption as Ls, useEditor$1 as Lt, isPreviewingChange as M, bindingSchema as Ma, createContextScope as Mc, designRuntimeRulesForTheme 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, previewStageSchema as Na, composeEventHandlers as Nc, getCuratedSiteStyle as Ni, PenLine as Nl, isSupportedLoaderEndpoint as Nn, isBlockButtonRole as No, buildCourseRegistrationInteractiveIslandProps as Nr, getFieldIntent as Ns, useRichTextImagePicker as Nt, createPalette as O, normalizeCsvString as Oa, useId$1 as Oc, retargetCompiledRuntimeFieldsForContentAdjacency as Oi, SlidersHorizontal as Ol, listEntryPageContentSlots as On, coerceInlineTextWithFallback as Oo, getStepNumber as Or, normalizeCardVariantRole as Os, ButtonWidgetProvider as Ot, markApplySaved as P, eventCalendarListLayoutCompatibleDisplayModeValues as Pa, Primitive as Pc, surfaceResolutionContextFromTheme as Pi, Palette as Pl, ThemeScope as Pn, getIconComponent as Po, normalizeEventRegistrationPageSurfaceSubject as Pr, isHeaderField as Ps, RichTextField as Pt, toggleRow as Q, getEventAvailabilityStatus as Qa, toBookingTimeZone as Qc, defaultThemeTokens as Qi, mediaTransforms as Qn, getCurrentResolveImageUrlContext as Qo, deriveCommerceCheckoutState as Qr, CalloutDescription as Qs, pushHistoryEntry as Qt, palettePreviewProjection as R, toLocationMapHydrationProps as Ra, cn$2 as Rc, GRADIENT_PRESET_IDS as Ri, LoaderCircle as Rl, DEFAULT_THEME_RESPONSIVE_MODE as Rn, CircleMinusIcon as Ro, buildCartInteractiveIslandProps as Rr, mapCurrentValueForSelect as Rs, LinkField as Rt, PreviewThemeOverlayProvider as S, eventCollectionDisplaySchemaShape as Sa, DropdownMenu as Sc, resolveSurfaceForegroundStyles as Si, TriangleAlert as Sl, MediaEditor as Sn, parseGeneratedIconAssetId as So, findEventByOccurrenceId as Sr, isThemeV2NormalEditorRawStyleFieldName as Ss, OfferingsPreviewWidgetProvider as St, applyTypographyDraftPatch as T, buildEventRuntimeFilters as Ta, DropdownMenuLabel as Tc, applyCompiledRuntimeFieldsToContent 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, formatEventPriceDisplay as Ua, addLocalScheduleDays as Uc, sectionTransitionFamilyForBoundaryOptionId as Ui, CreditCard as Ul, getBlockDefinition as Un, FileAudioIcon as Uo, getShopDisplayForItems as Ur, Tooltip as Us, stripTopLevelRoutingUi as Ut, previewCuratedPalette as V, formatEventDateParts as Va, unsafeAsEditorBlockId as Vc, defaultSectionTransitionVariantForFamily as Vi, Eye as Vl, mergeContentWithBlockStyleOverrides as Vn, DownloadIcon as Vo, buildProductListInteractiveIslandProps as Vr, FieldFrame as Vs, hideThemeV2RawStyleFields as Vt, previewHeaderStyle as W, formatEventTeacherLine as Wa, formatBookingDate as Wc, sectionTransitionVariantForBoundaryOptionId as Wi, CirclePlus as Wl, projectRecurringSchedule as Wn, FileSpreadsheetIcon as Wo, buildCartDisplay as Wr, TooltipContent as Ws, getBlockManifestFromSdkConfig as Wt, styleConfiguratorHistoryEntryForPersistedSelection as X, resolveEventLinkProps as Xa, parseBookingLocalDate as Xc, foregroundTokenForBackgroundAppearanceColorToken as Xi, ArrowDown as Xl, visibleHeaderClearancePx as Xn, buildResolveImageUrlContext as Xo, buildPassCartItem as Xr, SelectValue as Xs, canUndoHistory as Xt, setPaletteColors as Y, resolveEventCta as Ya, getBookingLocalDateKey as Yc, backgroundAppearanceQuickColorTokenNames as Yi, Check as Yl, planSiteOverlayHeaderClearance as Yn, MediaPlaceholder as Yo, EMPTY_COMMERCE_CART_STATE as Yr, SelectTrigger as Ys, canRedoHistory as Yt, syncStyleConfiguratorState as Z, getEventAvailability as Za, resolveBookingTimeZoneId as Zc, parseBackgroundAppearanceColorToken as Zi, __exportAll as Zl, contentTransforms as Zn, computeMediaTransformStyle as Zo, buildProductCartItem as Zr, Callout as Zs, createHistoryState as Zt, planSiteChromeLookSelection as _, isSemanticSpacing as _a, Content$1 as _c, bodyCopyFragment as _i, err as _l, createManifestFormAdapter as _n, resolveFeatureCardGeneratedIconSizePx as _o, formBlockDefinition as _r, parseThemeForPersistence as _s, createSiteOptionApiLoader as _t, previewDesignHistoryDomainForCommand as a, createTransformRegistry as aa, TabsContent as ac, faqAccordionFragment 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, buildEventCollectionHydration as ba, createCollapsibleScope as bc, getAnchorClasses 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_BUTTON_TEXT as ca, Dialog as cc, singleButtonFragment 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, OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS as da, DialogFooter as dc, testimonialsCarouselFragment as di, parseSiteId as dl, resolvePageRouteSlug as dn, markEditableSurfaceForwarding as do, eventListingBlockDefinition as dr, resolveButtonStyleSelection as ds, ContentFieldsForm as dt, findCuratedPalette as ea, Popover as ec, productItemKey as ei, parseEventPageSurfaceSubject as el, undoHistory as en, getLocalMinuteOfDay as eo, uiTransforms as er, renderVideo as es, confirmAutosaveBatch as et, PREVIEW_DESIGN_SAVE_ERROR_MESSAGE as f, buildOfferingsPreviewRenderStates as fa, DialogHeader as fc, testimonialsHeadingFragment as fi, unsafeAsAppointmentResourceId as fl, resolveContentTitle as fn, splitPositioningClasses as fo, buildEventListingInteractiveIslandProps as fr, updateButtonStyleSelectionChoice as fs, useUISelector as ft, cycleableSiteChromeOptions as g, resolveOfferingsPreviewGroups as ga, CollapsibleTrigger as gc, heroCopyFragment 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, resolveOfferingsPreviewGroupCta as ha, CollapsibleContent as hc, ctaRowFragment as hi, unsafeAsFormId as hl, validateBlockManifestIssues as hn, mediaSchema as ho, buildEventCalendarListingDisplay as hr, parseThemeButtonVariantId as hs, useEntryController as ht, usePreviewDesignHistoryOrder as i, paletteColorsSchema as ia, Tabs as ic, cardFragment as ii, publicEventPricingType as il, useDebouncedLatestSave as in, createInteractiveIslandCodec as io, useImageResolveContextOptional as ir, setContextResolveImageUrlContext as is, rejectAutosaveBatch as it, dismissWarnings as j, when as ja, useControllableState as jc, curatedSiteStyles as ji, Plus as jl, deriveLaunchReadiness as jn, parseInlineTextFromUnknown as jo, buildGiftingInteractiveIslandProps as jr, rgbColorValue as js, ReferenceField as jt, createStyleConfiguratorState as k, normalizeOptionalId as ka, useDirection as kc, planPageDesignLayoutLookCompatibility 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_DEFAULT_EMPTY_MESSAGE as la, DialogContent as lc, formEmbedFragment 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, resolveOfferingsPreviewCoursePath as ma, Collapsible as mc, heroCtaRowFragment 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, paletteColorEntries as na, PopoverTrigger as nc, richTextFragment as ni, publicEventPricingCurrency as nl, recordsEqual as nn, blockBookingPaymentTermsSchema as no, createManifestValidator as nr, resolveMediaNodeResponsiveImage as ns, enqueueTransaction as nt, selectPreviewDesignHistoryDomain as o, runTransforms as oa, TabsList as oc, faqHeadingFragment as oi, publicEventTicketTypes as ol, createSnapshotFromPageRecord as on, createZodCodec as oo, shopBlockDefinition as or, attachRenderableMediaAssetFields as os, resolvePreviewSidebarTab as ot, reportPreviewDesignError as p, normalizeOfferingsPreviewItemLimit as pa, DialogTitle as pc, ctaCopyFragment as pi, unsafeAsAppointmentServiceId as pl, PaletteProvider as pn, planSiteChromePlacement as po, eventCalendarBlockDefinition as pr, buttonStyleSelectionKey as ps, EditableBlockProvider as pt, reconcilePaletteLibraryActive as q, getContainerClass as qa, formatBookingTime as qc, BACKGROUND_BODY_TEXT_MIN_CONTRAST_RATIO as qi, ChevronLeft as ql, SITE_CHROME_VISIBLE_HEADER_SELECTOR as qn, PlusIcon as qo, formatCommercePrice as qr, SelectContent as qs, useEditorUiStoreInstance as qt, PreviewDesignHistoryOrderProvider as r, paletteColorsEqual as ra, Input as rc, headingFragment as ri, publicEventPricingMode as rl, useMultiAutosave as rn, buildInteractiveIslandProps as ro, ImageResolveContextProvider as rr, resolveMediaStorageUrl as rs, idleEditorTransactionQueueState as rt, buildApplySiteStyleSelectionBody as s, ctaButton as sa, TabsTrigger as sc, blogFeaturedPostFragment 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, buildPaletteLibraryReadModel as ta, PopoverContent as tc, reduceCommerceCart as ti, formatBookingPriceDisplay as tl, unsafeAsLinkedContentEntryId as tn, resolveRuntimeEventPricing as to, formattingTransforms as tr, resolveImageUrlWithContext as ts, deriveTransactionCapabilities as tt, PREVIEW_DESIGN_LOAD_ERROR_MESSAGE as u, OFFERINGS_PREVIEW_DEFAULT_FAILED_MESSAGE as ua, DialogDescription as uc, formCopyFragment as ui, parseMediaAssetId as ul, deriveRouteMetadataPresentation as un, composeHeaderSectionWrapperClassName as uo, buildNewsletterFormInteractiveIslandProps as ur, findButtonStyleRecipe as us, PreviewTextEditor as ut, deriveSiteStylePreviewUpdate as v, resolveSpacing as va, Root$3 as vc, defineFragment as vi, ok$1 as vl, createManifestValidation as vn, shouldReserveFeatureCardIconZone as vo, buildFormInteractiveIslandProps as vr, getTextColorForBackground as vs, createSiteOptionWidgetAdapters as vt, applyResolvedSelections as w, eventCollectionSourceSchemaShape as wa, DropdownMenuItem as wc, formatSiteChromeBackgroundTokenLabel as wi, Tablet as wl, useMediaEditorOptional as wn, RichTextDocSchema as wo, resolveDiscountContext as wr, asDesignBlockId as ws, IconPickerField as wt, usePreviewDesignCoordinator as x, buildEventCollectionListingDisplay as xa, Surface as xc, boxStylesTransforms as xi, Undo2 as xl, createStoreBackend as xn, resolveBlockIconRenderValue as xo, toRegistrationEvents as xr, resolveTokenOrCssColorValue as xs, OfferingsPreviewGroupOrderField as xt, planSiteStylePreviewChange as y, buildEventCollectionDisplay as ya, Trigger$3 as yc, BACKGROUND_POSITION_PRESET_VALUES as yi, X as yl, FormRenderer as yn, buildGeneratedBlockIconRenderAssetLookupFromUnknown as yo, eventRegistrationBlockDefinition as yr, isCssColorLiteral as ys, SiteOptionPickerField as yt, prepareStalePaletteRetry as z, formatDate as za, clsx as zc, getGradientPreset as zi, Image as zl, getResponsiveScopeSpec as zn, CirclePlusIcon as zo, buildCheckoutInteractiveIslandProps as zr, mapOptionValueForSelect as zs, LinkWidgetProvider as zt };
|