@riverbankcms/sdk 0.143.0 → 0.145.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/dist/{PreviewEditorSidebar-DROGfMKi.mjs → PreviewEditorSidebar-O-V6Pl5a.mjs} +20 -26
- package/dist/{PreviewEditorUI-BaRjhFu-.mjs → PreviewEditorUI-1UlX_9cw.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-BxGwdOCV.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-OIABYLES.mjs → SdkPreviewModeRuntime-DYbA_4iv.mjs} +431 -351
- package/dist/{SiteChromeCustomizeContext-ohjTvZbc.mjs → SiteChromeCustomizeContext-CNTKQ9nx.mjs} +3989 -2769
- package/dist/_dts/ai/src/contracts/proposals.d.ts +4719 -66
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +429 -6
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
- package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
- package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
- package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
- package/dist/_dts/api/src/billing.d.ts +1 -1
- package/dist/_dts/api/src/billingEndpointTypes.d.ts +8 -2
- package/dist/_dts/api/src/bookingConfig.d.ts +3 -1
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -12
- package/dist/_dts/api/src/communications.d.ts +14 -22
- package/dist/_dts/api/src/contentRuntime.d.ts +2 -0
- package/dist/_dts/api/src/endpoints.d.ts +105 -58
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +2 -0
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +4 -4
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +0 -23
- package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
- package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
- package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
- package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
- package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
- package/dist/_dts/api/src/sdkSettingsContracts.d.ts +8 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -6
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +2 -8
- package/dist/_dts/api/src/siteSettings.d.ts +17 -7
- package/dist/_dts/api/src/types.d.ts +2 -1
- package/dist/_dts/billing/src/membership/index.d.ts +3 -0
- package/dist/_dts/block-form/src/backend/types.d.ts +14 -0
- package/dist/_dts/block-form/src/client/index.d.ts +1 -0
- package/dist/_dts/block-form/src/context/RepeaterHostActionsContext.d.ts +30 -0
- package/dist/_dts/block-form/src/context/index.d.ts +1 -0
- package/dist/_dts/block-form/src/index.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +4 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +5 -2
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +11 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useEmptyStateFocusAfterRemoval.d.ts +8 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +15 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +5 -2
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
- package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +58 -10
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
- package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
- package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -0
- package/dist/_dts/blocks/src/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
- package/dist/_dts/blocks/src/system/constants/events.d.ts +10 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/api/context.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/api/readAuthority.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -13
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -6
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +9 -4
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +7 -24
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/cart.server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +4 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +7 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +7 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +6 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/header-control.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/layout.d.ts +6 -21
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/product-detail.server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/product-list.server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/ThemedButton.d.ts +58 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/chromeLogo.d.ts +23 -0
- package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +3 -1
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +4 -1
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
- package/dist/_dts/core/src/editor-state.d.ts +6 -0
- package/dist/_dts/core/src/event-catalogue.d.ts +27 -0
- package/dist/_dts/core/src/event-preset-vocabulary.d.ts +7 -0
- package/dist/_dts/core/src/index.d.ts +3 -0
- package/dist/_dts/core/src/public-profile.d.ts +9 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +676 -241
- package/dist/_dts/db/src/schemas/forms.d.ts +286 -2
- package/dist/_dts/editor-blocks/src/block-editor/{BlockCardHeader.d.ts → BlockCardFrame.d.ts} +11 -3
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +6 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
- package/dist/_dts/logger/src/console.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
- package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +1 -0
- package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
- package/dist/_dts/sdk/src/client/types.d.ts +4 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
- package/dist/_dts/sdk/src/navigation/index.d.ts +27 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +21 -15
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -2
- package/dist/_dts/sdk/src/rendering/client.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +7 -1
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/enhancers/routeIslandApiConfig.d.ts +3 -2
- package/dist/_dts/sdk/src/rendering/islands/enhancers/shopShared.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/classNames.d.ts +3 -13
- package/dist/_dts/theme-core/src/customCss/index.d.ts +1 -1
- package/dist/_dts/theme-core/src/customCss/patch.d.ts +0 -5
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
- package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
- package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
- package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
- package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
- package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
- package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
- package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/surfaces/logoVariant.d.ts +26 -0
- package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +10 -0
- package/dist/_dts/ui/src/editor-item-card.d.ts +116 -0
- package/dist/_dts/ui/src/index.d.ts +1 -0
- package/dist/client/{BookingConsentAgreement-BoCtvzzu.mjs → BookingConsentAgreement-DlVOmpW4.mjs} +4 -55
- package/dist/client/{DiscountCodeDisclosure-B5S30nZk.mjs → DiscountCodeDisclosure-T9q623PQ.mjs} +27 -17
- package/dist/client/{EventCombined.client-CeZ2-zSt.mjs → EventCombined.client-DnsUeONl.mjs} +54 -46
- package/dist/client/{EventListing.client-DJN3j8B3.mjs → EventListing.client-CNBFqJS4.mjs} +3 -4
- package/dist/client/{LeafletStaticMap-RjtGzDQT.mjs → LeafletStaticMap-C7higg52.mjs} +1 -1
- package/dist/client/ThemedButton-LAJTNrS8.mjs +412 -0
- package/dist/client/{accordion-DOmnDoyg.mjs → accordion-BcNF9TjX.mjs} +1 -1
- package/dist/client/{bookingForm-C0vk7pgS.mjs → bookingForm-BUaQ3S03.mjs} +161 -75
- package/dist/client/bookings.mjs +392 -182
- package/dist/client/{carousel-BZJ7pno3.mjs → carousel-CTdF6e0V.mjs} +2 -2
- package/dist/client/{carousel.client-DQTjCVQT.mjs → carousel.client-jahpU9Vz.mjs} +1 -1
- package/dist/client/{cart-CaeVAHJl.mjs → cart-pGtyf_XU.mjs} +3 -3
- package/dist/client/{checkout-7wmoNDtG.mjs → checkout-Da9WSn7Y.mjs} +3 -3
- package/dist/client/{checkoutUrls-FL6lRkrt.mjs → checkoutUrls-CW3-78uu.mjs} +1 -1
- package/dist/client/client.mjs +3819 -2717
- package/dist/client/{colorStyles-3013aRAY.mjs → colorStyles-CuJBiS-1.mjs} +16 -4
- package/dist/client/{context-BOimxE3U.mjs → context-BFeY_Wbm.mjs} +24 -8
- package/dist/client/{dates-BnzVksi4.mjs → dates-BhwVSxDg.mjs} +2 -2
- package/dist/client/{eventCalendar-l-fpaslC.mjs → eventCalendar-BAtdnR4s.mjs} +39 -50
- package/dist/client/{eventCombined-DGGvssK6.mjs → eventCombined-RksA3tRC.mjs} +5 -4
- package/dist/client/{eventDetails-DRiCm_hL.mjs → eventDetails-BB9hB4wR.mjs} +4 -4
- package/dist/client/{eventListing-dph8loYX.mjs → eventListing-BpJBkviM.mjs} +5 -4
- package/dist/client/{eventRegistration-ClBohmbY.mjs → eventRegistration-B18jFq_o.mjs} +83 -68
- package/dist/client/{form-BLVVAnd3.mjs → form-Dodt8Y8t.mjs} +9 -10
- package/dist/client/{headerSection-DHy4C8Ix.mjs → headerSection-B0qj9ttg.mjs} +23 -30
- package/dist/client/hooks.mjs +807 -162
- package/dist/client/{locationMap-6HuS28ck.mjs → locationMap-gn-iMk7a.mjs} +9 -10
- package/dist/client/{media-DHpfFwd3.mjs → media-BtJ37tzS.mjs} +1 -1
- package/dist/client/{newsletterForm-xOdcOhZP.mjs → newsletterForm-oByLdFkr.mjs} +31 -11
- package/dist/client/{pricing-ChinRYFt.mjs → pricing-BOU0_Hai.mjs} +1 -1
- package/dist/client/{productDetail-0chA5gbK.mjs → productDetail-D9v1zH2j.mjs} +3 -3
- package/dist/client/{productList-OoINA0h1.mjs → productList-D-mItx1n.mjs} +3 -3
- package/dist/client/{propsDecoder-CIZ-hbIG.mjs → propsDecoder-C3TP_z4x.mjs} +158 -61
- package/dist/client/rendering/client.mjs +2785 -2000
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +3855 -2694
- package/dist/client/{routeIslandApiConfig-UNsfPcYq.mjs → routeIslandApiConfig-DzN1W0sq.mjs} +8 -1
- package/dist/client/{scrollToBlock-BPZl0gPZ.mjs → scrollToBlock-CWs8EIdo.mjs} +1 -1
- package/dist/client/{shop-CLJFqNIq.mjs → shop-Dufw7N7o.mjs} +45 -58
- package/dist/client/{shop-commerce-PpANg5wB.mjs → shop-commerce-gklw_hLF.mjs} +42 -55
- package/dist/client/{shop-commerce-store-TA_Kz2ku.mjs → shop-commerce-store-Sf1eyTaZ.mjs} +1 -1
- package/dist/client/{shopShared-DzcFcA5g.mjs → shopShared-B5nyA41S.mjs} +6 -5
- package/dist/client/{useEventFilters-CFU21QZo.mjs → useEventFilters-CLL829vy.mjs} +66 -355
- package/dist/preview-next/before-render.mjs +147 -77
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-chrome.css +8 -0
- package/dist/preview-next/keepAlive.mjs +147 -77
- package/dist/preview-next/middleware.mjs +147 -77
- package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-BxAFlu-j.mjs} +147 -77
- package/dist/{sdk-runtime-CDKl0Fr7.mjs → sdk-runtime-D0uZFev7.mjs} +2 -2
- package/dist/{separator-BTp96X32.mjs → separator-EvdCAn4V.mjs} +1 -1
- package/dist/server/components.mjs +2548 -1607
- package/dist/server/config-validation.mjs +794 -160
- package/dist/server/config.mjs +794 -160
- package/dist/server/data.mjs +806 -161
- package/dist/server/index.mjs +167 -85
- package/dist/server/navigation.mjs +28 -1
- package/dist/server/next.mjs +14930 -14036
- package/dist/server/page-converter.mjs +494 -113
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2537 -1590
- package/dist/server/rendering.mjs +2571 -1618
- package/dist/server/routing.mjs +918 -200
- package/dist/server/server.mjs +819 -205
- package/dist/server/theme-bridge.mjs +1232 -28
- package/dist/server/theme.mjs +6 -4
- package/dist/styles/index.css +6 -0
- package/package.json +2 -1
|
@@ -9,6 +9,75 @@ const footerModeSchema = z.enum([
|
|
|
9
9
|
"none"
|
|
10
10
|
]);
|
|
11
11
|
//#endregion
|
|
12
|
+
//#region ../api/src/defineEndpointDefinitions.ts
|
|
13
|
+
/**
|
|
14
|
+
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
15
|
+
* method, and parameter contract for the typed URL builders.
|
|
16
|
+
*/
|
|
17
|
+
function defineEndpointDefinitions(definitions) {
|
|
18
|
+
return definitions;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
22
|
+
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
23
|
+
subscribeNewsletter: {
|
|
24
|
+
path: "/public/sites/{siteId}/newsletter/subscribe",
|
|
25
|
+
method: "POST",
|
|
26
|
+
tags: ["public-newsletter-{siteId}"],
|
|
27
|
+
auth: "public",
|
|
28
|
+
responseKind: "json"
|
|
29
|
+
},
|
|
30
|
+
confirmNewsletter: {
|
|
31
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
32
|
+
method: "GET",
|
|
33
|
+
tags: ["public-newsletter-{siteId}"],
|
|
34
|
+
auth: "public",
|
|
35
|
+
responseKind: "text"
|
|
36
|
+
},
|
|
37
|
+
unsubscribeNewsletter: {
|
|
38
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
39
|
+
method: "GET",
|
|
40
|
+
tags: ["public-newsletter-{siteId}"],
|
|
41
|
+
auth: "public",
|
|
42
|
+
responseKind: "text"
|
|
43
|
+
},
|
|
44
|
+
unsubscribeNewsletterPost: {
|
|
45
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
46
|
+
method: "POST",
|
|
47
|
+
tags: ["public-newsletter-{siteId}"],
|
|
48
|
+
auth: "public",
|
|
49
|
+
responseKind: "text"
|
|
50
|
+
},
|
|
51
|
+
confirmNewsletterPost: {
|
|
52
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
53
|
+
method: "POST",
|
|
54
|
+
tags: ["public-newsletter-{siteId}"],
|
|
55
|
+
auth: "public",
|
|
56
|
+
responseKind: "text"
|
|
57
|
+
},
|
|
58
|
+
getNewsletterPreferences: {
|
|
59
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
60
|
+
method: "GET",
|
|
61
|
+
tags: ["public-newsletter-{siteId}"],
|
|
62
|
+
auth: "public",
|
|
63
|
+
responseKind: "text"
|
|
64
|
+
},
|
|
65
|
+
saveNewsletterPreferences: {
|
|
66
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
67
|
+
method: "POST",
|
|
68
|
+
tags: ["public-newsletter-{siteId}"],
|
|
69
|
+
auth: "public",
|
|
70
|
+
responseKind: "text"
|
|
71
|
+
},
|
|
72
|
+
getNewsletterArchive: {
|
|
73
|
+
path: "/public/sites/{siteId}/newsletter/archive/{token}",
|
|
74
|
+
method: "GET",
|
|
75
|
+
tags: ["public-newsletter-{siteId}"],
|
|
76
|
+
auth: "public",
|
|
77
|
+
responseKind: "text"
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
//#endregion
|
|
12
81
|
//#region ../api/src/apiEndpointTypes.ts
|
|
13
82
|
function allowedDemoMutationPolicy() {
|
|
14
83
|
return {
|
|
@@ -100,17 +169,85 @@ const SDK_ENTRY_READ_ENDPOINTS = {
|
|
|
100
169
|
}
|
|
101
170
|
};
|
|
102
171
|
//#endregion
|
|
103
|
-
//#region ../api/src/defineEndpointDefinitions.ts
|
|
104
|
-
/**
|
|
105
|
-
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
106
|
-
* method, and parameter contract for the typed URL builders.
|
|
107
|
-
*/
|
|
108
|
-
function defineEndpointDefinitions(definitions) {
|
|
109
|
-
return definitions;
|
|
110
|
-
}
|
|
111
|
-
//#endregion
|
|
112
172
|
//#region ../api/src/appointmentEndpointDefinitions.ts
|
|
113
173
|
const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
174
|
+
...defineEndpointDefinitions({
|
|
175
|
+
listGroupedAppointmentServices: {
|
|
176
|
+
path: "/sites/{siteId}/bookings/services/grouped",
|
|
177
|
+
method: "GET",
|
|
178
|
+
auth: "user",
|
|
179
|
+
responseKind: "json",
|
|
180
|
+
errors: ["server:internal_error"]
|
|
181
|
+
},
|
|
182
|
+
reorderAppointmentServices: {
|
|
183
|
+
path: "/sites/{siteId}/bookings/services/order",
|
|
184
|
+
method: "PUT",
|
|
185
|
+
auth: "user",
|
|
186
|
+
responseKind: "json",
|
|
187
|
+
errors: [
|
|
188
|
+
"validation:invalid_input",
|
|
189
|
+
"auth:forbidden",
|
|
190
|
+
"resource:not_found",
|
|
191
|
+
"resource:conflict",
|
|
192
|
+
"server:internal_error"
|
|
193
|
+
]
|
|
194
|
+
},
|
|
195
|
+
listAppointmentServiceCategories: {
|
|
196
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
197
|
+
method: "GET",
|
|
198
|
+
auth: "user",
|
|
199
|
+
responseKind: "json",
|
|
200
|
+
errors: ["server:internal_error"]
|
|
201
|
+
},
|
|
202
|
+
createAppointmentServiceCategory: {
|
|
203
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
204
|
+
method: "POST",
|
|
205
|
+
auth: "user",
|
|
206
|
+
responseKind: "json",
|
|
207
|
+
errors: [
|
|
208
|
+
"validation:invalid_input",
|
|
209
|
+
"auth:forbidden",
|
|
210
|
+
"resource:conflict",
|
|
211
|
+
"server:internal_error"
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
updateAppointmentServiceCategory: {
|
|
215
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
216
|
+
method: "PUT",
|
|
217
|
+
auth: "user",
|
|
218
|
+
responseKind: "json",
|
|
219
|
+
errors: [
|
|
220
|
+
"validation:invalid_input",
|
|
221
|
+
"auth:forbidden",
|
|
222
|
+
"resource:not_found",
|
|
223
|
+
"resource:conflict",
|
|
224
|
+
"server:internal_error"
|
|
225
|
+
]
|
|
226
|
+
},
|
|
227
|
+
deleteAppointmentServiceCategory: {
|
|
228
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
229
|
+
method: "DELETE",
|
|
230
|
+
auth: "user",
|
|
231
|
+
responseKind: "json",
|
|
232
|
+
errors: [
|
|
233
|
+
"auth:forbidden",
|
|
234
|
+
"resource:not_found",
|
|
235
|
+
"server:internal_error"
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
reorderAppointmentServiceCategories: {
|
|
239
|
+
path: "/sites/{siteId}/bookings/service-categories/order",
|
|
240
|
+
method: "PUT",
|
|
241
|
+
auth: "user",
|
|
242
|
+
responseKind: "json",
|
|
243
|
+
errors: [
|
|
244
|
+
"validation:invalid_input",
|
|
245
|
+
"auth:forbidden",
|
|
246
|
+
"resource:conflict",
|
|
247
|
+
"server:internal_error"
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
}),
|
|
114
251
|
listAppointmentResources: {
|
|
115
252
|
path: "/sites/{siteId}/bookings/resources",
|
|
116
253
|
method: "GET",
|
|
@@ -1258,39 +1395,6 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1258
1395
|
auth: "user",
|
|
1259
1396
|
responseKind: "json",
|
|
1260
1397
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1261
|
-
},
|
|
1262
|
-
listNewsletterSendJobs: {
|
|
1263
|
-
path: "/sites/{siteId}/newsletter/jobs",
|
|
1264
|
-
method: "GET",
|
|
1265
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1266
|
-
auth: "user",
|
|
1267
|
-
responseKind: "json"
|
|
1268
|
-
},
|
|
1269
|
-
retryNewsletterSendJob: {
|
|
1270
|
-
path: "/sites/{siteId}/newsletter/jobs/{jobId}/retry",
|
|
1271
|
-
method: "POST",
|
|
1272
|
-
errors: [
|
|
1273
|
-
"validation:invalid_input",
|
|
1274
|
-
"resource:not_found",
|
|
1275
|
-
"auth:forbidden",
|
|
1276
|
-
"server:internal_error"
|
|
1277
|
-
],
|
|
1278
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1279
|
-
auth: "user",
|
|
1280
|
-
responseKind: "json"
|
|
1281
|
-
},
|
|
1282
|
-
cancelNewsletterSendJob: {
|
|
1283
|
-
path: "/sites/{siteId}/newsletter/jobs/{jobId}/cancel",
|
|
1284
|
-
method: "POST",
|
|
1285
|
-
errors: [
|
|
1286
|
-
"validation:invalid_input",
|
|
1287
|
-
"resource:not_found",
|
|
1288
|
-
"auth:forbidden",
|
|
1289
|
-
"server:internal_error"
|
|
1290
|
-
],
|
|
1291
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1292
|
-
auth: "user",
|
|
1293
|
-
responseKind: "json"
|
|
1294
1398
|
}
|
|
1295
1399
|
});
|
|
1296
1400
|
//#endregion
|
|
@@ -3366,6 +3470,7 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
3366
3470
|
}
|
|
3367
3471
|
});
|
|
3368
3472
|
({
|
|
3473
|
+
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3369
3474
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
3370
3475
|
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
3371
3476
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
@@ -3605,6 +3710,8 @@ z.discriminatedUnion("kind", navigationLinkInputSchemaOptions);
|
|
|
3605
3710
|
//#endregion
|
|
3606
3711
|
//#region ../theme-core/src/palette/utils/colorConversion.ts
|
|
3607
3712
|
const clamp01 = (x) => Math.max(0, Math.min(1, x));
|
|
3713
|
+
const mod = (a, n) => (a % n + n) % n;
|
|
3714
|
+
const deg = (x) => mod(x, 360);
|
|
3608
3715
|
function hexToRgb(hex) {
|
|
3609
3716
|
const h = hex.replace(/^#/, "");
|
|
3610
3717
|
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
@@ -3627,6 +3734,45 @@ function srgbToLinear(u) {
|
|
|
3627
3734
|
function linearToSrgb(x) {
|
|
3628
3735
|
return clamp01(x <= .0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - .055) * 255;
|
|
3629
3736
|
}
|
|
3737
|
+
function rgbToHsl(r, g, b) {
|
|
3738
|
+
const R = r / 255, G = g / 255, B = b / 255;
|
|
3739
|
+
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
3740
|
+
const d = max - min;
|
|
3741
|
+
let h = 0;
|
|
3742
|
+
if (d !== 0) {
|
|
3743
|
+
switch (max) {
|
|
3744
|
+
case R:
|
|
3745
|
+
h = (G - B) / d + (G < B ? 6 : 0);
|
|
3746
|
+
break;
|
|
3747
|
+
case G:
|
|
3748
|
+
h = (B - R) / d + 2;
|
|
3749
|
+
break;
|
|
3750
|
+
case B:
|
|
3751
|
+
h = (R - G) / d + 4;
|
|
3752
|
+
break;
|
|
3753
|
+
}
|
|
3754
|
+
h *= 60;
|
|
3755
|
+
}
|
|
3756
|
+
const l = (max + min) / 2;
|
|
3757
|
+
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
3758
|
+
return {
|
|
3759
|
+
h,
|
|
3760
|
+
s,
|
|
3761
|
+
l
|
|
3762
|
+
};
|
|
3763
|
+
}
|
|
3764
|
+
function srgbToOklab(r, g, b) {
|
|
3765
|
+
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
3766
|
+
const l = .4122214708 * R + .5363325363 * G + .0514459929 * B;
|
|
3767
|
+
const m = .2119034982 * R + .6806995451 * G + .1073969566 * B;
|
|
3768
|
+
const s = .0883024619 * R + .2817188376 * G + .6299787005 * B;
|
|
3769
|
+
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
3770
|
+
return {
|
|
3771
|
+
L: .2104542553 * l_ + .793617785 * m_ - .0040720468 * s_,
|
|
3772
|
+
a: 1.9779984951 * l_ - 2.428592205 * m_ + .4505937099 * s_,
|
|
3773
|
+
b: .0259040371 * l_ + .7827717662 * m_ - .808675766 * s_
|
|
3774
|
+
};
|
|
3775
|
+
}
|
|
3630
3776
|
function oklabToSrgb(L, a, b) {
|
|
3631
3777
|
const l_ = Math.pow(L + .3963377774 * a + .2158037573 * b, 3);
|
|
3632
3778
|
const m_ = Math.pow(L - .1055613458 * a - .0638541728 * b, 3);
|
|
@@ -3640,6 +3786,14 @@ function oklabToSrgb(L, a, b) {
|
|
|
3640
3786
|
b: linearToSrgb(B)
|
|
3641
3787
|
};
|
|
3642
3788
|
}
|
|
3789
|
+
function oklabToOklch(L, a, b) {
|
|
3790
|
+
const C = Math.sqrt(a * a + b * b);
|
|
3791
|
+
return {
|
|
3792
|
+
L,
|
|
3793
|
+
C,
|
|
3794
|
+
h: C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI)
|
|
3795
|
+
};
|
|
3796
|
+
}
|
|
3643
3797
|
function oklchToOklab(L, C, h) {
|
|
3644
3798
|
const hr = h * Math.PI / 180;
|
|
3645
3799
|
return {
|
|
@@ -3648,6 +3802,27 @@ function oklchToOklab(L, C, h) {
|
|
|
3648
3802
|
b: C * Math.sin(hr)
|
|
3649
3803
|
};
|
|
3650
3804
|
}
|
|
3805
|
+
function featuresFromHex(hex) {
|
|
3806
|
+
const { r, g, b } = hexToRgb(hex);
|
|
3807
|
+
const { h, s, l } = rgbToHsl(r, g, b);
|
|
3808
|
+
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
3809
|
+
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
3810
|
+
return {
|
|
3811
|
+
r,
|
|
3812
|
+
g,
|
|
3813
|
+
b,
|
|
3814
|
+
h,
|
|
3815
|
+
s,
|
|
3816
|
+
l,
|
|
3817
|
+
v: Math.max(r, g, b) / 255,
|
|
3818
|
+
Y: .2126 * srgbToLinear(r) + .7152 * srgbToLinear(g) + .0722 * srgbToLinear(b),
|
|
3819
|
+
chroma: s,
|
|
3820
|
+
okL,
|
|
3821
|
+
okC,
|
|
3822
|
+
okH,
|
|
3823
|
+
hex
|
|
3824
|
+
};
|
|
3825
|
+
}
|
|
3651
3826
|
function relativeLuminance(r, g, b) {
|
|
3652
3827
|
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
3653
3828
|
return .2126 * R + .7152 * G + .0722 * B;
|
|
@@ -6731,6 +6906,36 @@ function normalizedReference(value) {
|
|
|
6731
6906
|
return normalized.length > 0 ? normalized : null;
|
|
6732
6907
|
}
|
|
6733
6908
|
//#endregion
|
|
6909
|
+
//#region ../theme-core/src/surfaces/logoVariant.ts
|
|
6910
|
+
/** Concrete hex behind a plain, opaque palette token, or null otherwise. */
|
|
6911
|
+
function opaquePaletteHexForToken(expandedPalette, token) {
|
|
6912
|
+
if (!token) return null;
|
|
6913
|
+
const parts = parseColorTokenParts(token);
|
|
6914
|
+
if (parts.kind !== "token" || parts.opacityPercent !== null) return null;
|
|
6915
|
+
return expandedPalette[parts.token] ?? null;
|
|
6916
|
+
}
|
|
6917
|
+
/**
|
|
6918
|
+
* Tone of the surface a foreground token was resolved for.
|
|
6919
|
+
*
|
|
6920
|
+
* A token with opacity has no known underlay to composite against, and a raw
|
|
6921
|
+
* or unrecognised token has no palette hex, so both are `unknown` rather than
|
|
6922
|
+
* a guess.
|
|
6923
|
+
*/
|
|
6924
|
+
function surfaceToneFromForegroundToken(expandedPalette, foregroundToken) {
|
|
6925
|
+
const hex = opaquePaletteHexForToken(expandedPalette, foregroundToken);
|
|
6926
|
+
if (!hex) return "unknown";
|
|
6927
|
+
return featuresFromHex(hex).Y >= .5 ? "dark" : "light";
|
|
6928
|
+
}
|
|
6929
|
+
/**
|
|
6930
|
+
* The logo to draw on a surface of the given tone. A missing variant falls
|
|
6931
|
+
* back to the other one, and an unknown tone uses the light-backgrounds logo,
|
|
6932
|
+
* which is what every site rendered before variants existed.
|
|
6933
|
+
*/
|
|
6934
|
+
function selectLogoVariant(tone, variants) {
|
|
6935
|
+
const { forLightBackgrounds, forDarkBackgrounds } = variants;
|
|
6936
|
+
return tone === "dark" ? forDarkBackgrounds ?? forLightBackgrounds : forLightBackgrounds ?? forDarkBackgrounds;
|
|
6937
|
+
}
|
|
6938
|
+
//#endregion
|
|
6734
6939
|
//#region ../theme-core/src/utils/colorStyles.ts
|
|
6735
6940
|
const COLOR_VAR_PREFIX = "--tb-";
|
|
6736
6941
|
function parseToken(source) {
|
|
@@ -6782,16 +6987,28 @@ function backgroundColorStyle(token) {
|
|
|
6782
6987
|
return { backgroundColor: rgbColorValue(token) };
|
|
6783
6988
|
}
|
|
6784
6989
|
/**
|
|
6990
|
+
* Converts a text color token to a CSS color value that follows the enclosing
|
|
6991
|
+
* surface. The semantic text tokens (`text`, `heading`, `mutedText`) resolve
|
|
6992
|
+
* to the surface foreground variables, so text adapts when a section's
|
|
6993
|
+
* background changes; any other token is a fixed theme color.
|
|
6994
|
+
*
|
|
6995
|
+
* @param token - Theme color token
|
|
6996
|
+
* @returns CSS color value
|
|
6997
|
+
*/
|
|
6998
|
+
function textColorValue(token) {
|
|
6999
|
+
const parsed = parseToken(token);
|
|
7000
|
+
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
7001
|
+
if (!surfaceRole) return rgbColorValue(token);
|
|
7002
|
+
return parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent);
|
|
7003
|
+
}
|
|
7004
|
+
/**
|
|
6785
7005
|
* Creates a text color style object from a theme token.
|
|
6786
7006
|
*
|
|
6787
7007
|
* @param token - Theme color token
|
|
6788
7008
|
* @returns CSSProperties with color
|
|
6789
7009
|
*/
|
|
6790
7010
|
function textColorStyle(token) {
|
|
6791
|
-
|
|
6792
|
-
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
6793
|
-
if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
|
|
6794
|
-
return { color: rgbColorValue(token) };
|
|
7011
|
+
return { color: textColorValue(token) };
|
|
6795
7012
|
}
|
|
6796
7013
|
/**
|
|
6797
7014
|
* Creates a border color style object from a theme token.
|
|
@@ -9976,6 +10193,15 @@ function asSiteStyleId(value) {
|
|
|
9976
10193
|
function asDesignSystemTemplateId(value) {
|
|
9977
10194
|
return brandNonEmptyString(value, "DesignSystemTemplateId");
|
|
9978
10195
|
}
|
|
10196
|
+
function toNonEmptyReadonlyArray(values) {
|
|
10197
|
+
const [first, ...rest] = values;
|
|
10198
|
+
return first === void 0 ? null : [first, ...rest];
|
|
10199
|
+
}
|
|
10200
|
+
function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
|
|
10201
|
+
const result = toNonEmptyReadonlyArray(values);
|
|
10202
|
+
if (!result) throw new Error(message);
|
|
10203
|
+
return result;
|
|
10204
|
+
}
|
|
9979
10205
|
function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
9980
10206
|
return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
|
|
9981
10207
|
}
|
|
@@ -10178,16 +10404,18 @@ const themeV2RuntimeStyleFieldNames = [
|
|
|
10178
10404
|
"_frameStyles",
|
|
10179
10405
|
"_sectionStyles",
|
|
10180
10406
|
"_containerStyles",
|
|
10181
|
-
"_cardStyles"
|
|
10182
|
-
"_transitionStyles",
|
|
10183
|
-
"styleGroup"
|
|
10407
|
+
"_cardStyles"
|
|
10184
10408
|
];
|
|
10185
10409
|
const themeV2BlockSpecificRawStyleFieldNames = [
|
|
10186
10410
|
"_contentCardStyles",
|
|
10187
10411
|
"_heroLayoutStyles",
|
|
10188
10412
|
"_textCardStyles"
|
|
10189
10413
|
];
|
|
10190
|
-
const themeV2NormalEditorRawStyleFieldNames = [
|
|
10414
|
+
const themeV2NormalEditorRawStyleFieldNames = [
|
|
10415
|
+
...themeV2RuntimeStyleFieldNames,
|
|
10416
|
+
...themeV2BlockSpecificRawStyleFieldNames,
|
|
10417
|
+
"styleGroup"
|
|
10418
|
+
];
|
|
10191
10419
|
new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
10192
10420
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
10193
10421
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
@@ -11913,11 +12141,260 @@ function cardRoleFromLegacyVocabulary(value) {
|
|
|
11913
12141
|
*/
|
|
11914
12142
|
const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
|
|
11915
12143
|
//#endregion
|
|
11916
|
-
//#region ../theme-core/src/site-styles/
|
|
11917
|
-
|
|
11918
|
-
|
|
11919
|
-
|
|
11920
|
-
|
|
12144
|
+
//#region ../theme-core/src/site-styles/transitionCatalogue.ts
|
|
12145
|
+
/**
|
|
12146
|
+
* Family order for pickers. Entries below are listed family by family in this
|
|
12147
|
+
* same order, so the flat option list and the grouped families agree.
|
|
12148
|
+
*/
|
|
12149
|
+
const transitionCatalogueFamilies = [
|
|
12150
|
+
{
|
|
12151
|
+
id: "gradient",
|
|
12152
|
+
label: "Gradient"
|
|
12153
|
+
},
|
|
12154
|
+
{
|
|
12155
|
+
id: "wave",
|
|
12156
|
+
label: "Wave"
|
|
12157
|
+
},
|
|
12158
|
+
{
|
|
12159
|
+
id: "angle",
|
|
12160
|
+
label: "Angle"
|
|
12161
|
+
}
|
|
12162
|
+
];
|
|
12163
|
+
const mediumHeight = "6rem + 2px";
|
|
12164
|
+
const compactHeight = "4.5rem + 2px";
|
|
12165
|
+
const largeHeight = "7rem + 2px";
|
|
12166
|
+
/**
|
|
12167
|
+
* The single source of transition vocabulary. Order is significant: it is the
|
|
12168
|
+
* order of `boundaryOptions` (after `none`) and of each family's variants,
|
|
12169
|
+
* which persisted pins, page-flow presets and the editor picker all rely on.
|
|
12170
|
+
*
|
|
12171
|
+
* Shapes match what `generateLayoutCss` draws today. Structured
|
|
12172
|
+
* amplitude/frequency treatments (issue 826) extend this list later.
|
|
12173
|
+
*/
|
|
12174
|
+
const transitionCatalogueEntries = defineExactCatalog()([
|
|
12175
|
+
{
|
|
12176
|
+
intent: "soft-fade-short",
|
|
12177
|
+
optionId: asBoundaryOptionId("break:soft"),
|
|
12178
|
+
family: "gradient",
|
|
12179
|
+
variantId: "soft",
|
|
12180
|
+
label: "Soft",
|
|
12181
|
+
variantLabel: "Soft",
|
|
12182
|
+
treatment: {
|
|
12183
|
+
kind: "soft-fade",
|
|
12184
|
+
height: "medium",
|
|
12185
|
+
curve: "soft"
|
|
12186
|
+
},
|
|
12187
|
+
size: "medium",
|
|
12188
|
+
heightExpression: mediumHeight,
|
|
12189
|
+
shape: { kind: "fade" }
|
|
12190
|
+
},
|
|
12191
|
+
{
|
|
12192
|
+
intent: "soft-fade-long",
|
|
12193
|
+
optionId: asBoundaryOptionId("break:spacious"),
|
|
12194
|
+
family: "gradient",
|
|
12195
|
+
variantId: "spacious",
|
|
12196
|
+
label: "Spacious",
|
|
12197
|
+
variantLabel: "Spacious",
|
|
12198
|
+
treatment: {
|
|
12199
|
+
kind: "soft-fade",
|
|
12200
|
+
height: "large",
|
|
12201
|
+
curve: "spacious"
|
|
12202
|
+
},
|
|
12203
|
+
size: "spacious",
|
|
12204
|
+
heightExpression: "10rem",
|
|
12205
|
+
shape: { kind: "fade" }
|
|
12206
|
+
},
|
|
12207
|
+
{
|
|
12208
|
+
intent: "soft-fade-expansive",
|
|
12209
|
+
optionId: asBoundaryOptionId("break:expansive"),
|
|
12210
|
+
family: "gradient",
|
|
12211
|
+
variantId: "expansive",
|
|
12212
|
+
label: "Expansive",
|
|
12213
|
+
variantLabel: "Expansive",
|
|
12214
|
+
treatment: {
|
|
12215
|
+
kind: "soft-fade",
|
|
12216
|
+
height: "expansive",
|
|
12217
|
+
curve: "expansive"
|
|
12218
|
+
},
|
|
12219
|
+
size: "expansive",
|
|
12220
|
+
heightExpression: "14rem",
|
|
12221
|
+
shape: { kind: "fade" }
|
|
12222
|
+
},
|
|
12223
|
+
{
|
|
12224
|
+
intent: "wave-edge-balanced",
|
|
12225
|
+
optionId: asBoundaryOptionId("break:wave-balanced"),
|
|
12226
|
+
family: "wave",
|
|
12227
|
+
variantId: "balanced",
|
|
12228
|
+
label: "Balanced wave",
|
|
12229
|
+
variantLabel: "Balanced",
|
|
12230
|
+
treatment: {
|
|
12231
|
+
kind: "wave-edge",
|
|
12232
|
+
height: "medium",
|
|
12233
|
+
amplitude: "balanced",
|
|
12234
|
+
rhythm: "double",
|
|
12235
|
+
symmetry: "symmetrical"
|
|
12236
|
+
},
|
|
12237
|
+
size: "medium",
|
|
12238
|
+
heightExpression: mediumHeight,
|
|
12239
|
+
shape: {
|
|
12240
|
+
kind: "wave",
|
|
12241
|
+
mask: "balanced"
|
|
12242
|
+
}
|
|
12243
|
+
},
|
|
12244
|
+
{
|
|
12245
|
+
intent: "wave-edge",
|
|
12246
|
+
optionId: asBoundaryOptionId("break:wave"),
|
|
12247
|
+
family: "wave",
|
|
12248
|
+
variantId: "classic",
|
|
12249
|
+
label: "Classic wave",
|
|
12250
|
+
variantLabel: "Classic",
|
|
12251
|
+
treatment: {
|
|
12252
|
+
kind: "wave-edge",
|
|
12253
|
+
height: "medium",
|
|
12254
|
+
amplitude: "balanced",
|
|
12255
|
+
rhythm: "double",
|
|
12256
|
+
symmetry: "asymmetrical"
|
|
12257
|
+
},
|
|
12258
|
+
size: "medium",
|
|
12259
|
+
heightExpression: mediumHeight,
|
|
12260
|
+
shape: {
|
|
12261
|
+
kind: "wave",
|
|
12262
|
+
mask: "classic"
|
|
12263
|
+
}
|
|
12264
|
+
},
|
|
12265
|
+
{
|
|
12266
|
+
intent: "wave-edge-gentle",
|
|
12267
|
+
optionId: asBoundaryOptionId("break:wave-gentle"),
|
|
12268
|
+
family: "wave",
|
|
12269
|
+
variantId: "gentle",
|
|
12270
|
+
label: "Gentle wave",
|
|
12271
|
+
variantLabel: "Gentle",
|
|
12272
|
+
treatment: {
|
|
12273
|
+
kind: "wave-edge",
|
|
12274
|
+
height: "compact",
|
|
12275
|
+
amplitude: "subtle",
|
|
12276
|
+
rhythm: "single",
|
|
12277
|
+
symmetry: "symmetrical"
|
|
12278
|
+
},
|
|
12279
|
+
size: "compact",
|
|
12280
|
+
heightExpression: compactHeight,
|
|
12281
|
+
shape: {
|
|
12282
|
+
kind: "wave",
|
|
12283
|
+
mask: "gentle"
|
|
12284
|
+
}
|
|
12285
|
+
},
|
|
12286
|
+
{
|
|
12287
|
+
intent: "wave-edge-bold",
|
|
12288
|
+
optionId: asBoundaryOptionId("break:wave-bold"),
|
|
12289
|
+
family: "wave",
|
|
12290
|
+
variantId: "bold",
|
|
12291
|
+
label: "Bold wave",
|
|
12292
|
+
variantLabel: "Bold",
|
|
12293
|
+
treatment: {
|
|
12294
|
+
kind: "wave-edge",
|
|
12295
|
+
height: "large",
|
|
12296
|
+
amplitude: "bold",
|
|
12297
|
+
rhythm: "double",
|
|
12298
|
+
symmetry: "symmetrical"
|
|
12299
|
+
},
|
|
12300
|
+
size: "large",
|
|
12301
|
+
heightExpression: largeHeight,
|
|
12302
|
+
shape: {
|
|
12303
|
+
kind: "wave",
|
|
12304
|
+
mask: "bold"
|
|
12305
|
+
}
|
|
12306
|
+
},
|
|
12307
|
+
{
|
|
12308
|
+
intent: "wave-edge-drift",
|
|
12309
|
+
optionId: asBoundaryOptionId("break:wave-drift"),
|
|
12310
|
+
family: "wave",
|
|
12311
|
+
variantId: "drift",
|
|
12312
|
+
label: "Drift wave",
|
|
12313
|
+
variantLabel: "Drift",
|
|
12314
|
+
treatment: {
|
|
12315
|
+
kind: "wave-edge",
|
|
12316
|
+
height: "medium",
|
|
12317
|
+
amplitude: "balanced",
|
|
12318
|
+
rhythm: "double",
|
|
12319
|
+
symmetry: "drift"
|
|
12320
|
+
},
|
|
12321
|
+
size: "medium",
|
|
12322
|
+
heightExpression: mediumHeight,
|
|
12323
|
+
shape: {
|
|
12324
|
+
kind: "wave",
|
|
12325
|
+
mask: "drift"
|
|
12326
|
+
}
|
|
12327
|
+
},
|
|
12328
|
+
{
|
|
12329
|
+
intent: "angle-edge-subtle",
|
|
12330
|
+
optionId: asBoundaryOptionId("break:angle-subtle"),
|
|
12331
|
+
family: "angle",
|
|
12332
|
+
variantId: "subtle",
|
|
12333
|
+
label: "Subtle angle",
|
|
12334
|
+
variantLabel: "Subtle",
|
|
12335
|
+
treatment: {
|
|
12336
|
+
kind: "angle-edge",
|
|
12337
|
+
height: "compact",
|
|
12338
|
+
slope: "subtle",
|
|
12339
|
+
direction: "forward"
|
|
12340
|
+
},
|
|
12341
|
+
size: "compact",
|
|
12342
|
+
heightExpression: compactHeight,
|
|
12343
|
+
shape: {
|
|
12344
|
+
kind: "angle",
|
|
12345
|
+
polygon: {
|
|
12346
|
+
startTopPercent: 34,
|
|
12347
|
+
endTopPercent: 18
|
|
12348
|
+
}
|
|
12349
|
+
}
|
|
12350
|
+
},
|
|
12351
|
+
{
|
|
12352
|
+
intent: "angle-edge",
|
|
12353
|
+
optionId: asBoundaryOptionId("break:angle-balanced"),
|
|
12354
|
+
family: "angle",
|
|
12355
|
+
variantId: "balanced",
|
|
12356
|
+
label: "Balanced angle",
|
|
12357
|
+
variantLabel: "Balanced",
|
|
12358
|
+
treatment: {
|
|
12359
|
+
kind: "angle-edge",
|
|
12360
|
+
height: "medium",
|
|
12361
|
+
slope: "balanced",
|
|
12362
|
+
direction: "forward"
|
|
12363
|
+
},
|
|
12364
|
+
size: "medium",
|
|
12365
|
+
heightExpression: mediumHeight,
|
|
12366
|
+
shape: {
|
|
12367
|
+
kind: "angle",
|
|
12368
|
+
polygon: {
|
|
12369
|
+
startTopPercent: 42,
|
|
12370
|
+
endTopPercent: 8
|
|
12371
|
+
}
|
|
12372
|
+
}
|
|
12373
|
+
},
|
|
12374
|
+
{
|
|
12375
|
+
intent: "angle-edge-steep",
|
|
12376
|
+
optionId: asBoundaryOptionId("break:angle-steep"),
|
|
12377
|
+
family: "angle",
|
|
12378
|
+
variantId: "steep",
|
|
12379
|
+
label: "Steep angle",
|
|
12380
|
+
variantLabel: "Steep",
|
|
12381
|
+
treatment: {
|
|
12382
|
+
kind: "angle-edge",
|
|
12383
|
+
height: "large",
|
|
12384
|
+
slope: "steep",
|
|
12385
|
+
direction: "forward"
|
|
12386
|
+
},
|
|
12387
|
+
size: "large",
|
|
12388
|
+
heightExpression: largeHeight,
|
|
12389
|
+
shape: {
|
|
12390
|
+
kind: "angle",
|
|
12391
|
+
polygon: {
|
|
12392
|
+
startTopPercent: 54,
|
|
12393
|
+
endTopPercent: 0
|
|
12394
|
+
}
|
|
12395
|
+
}
|
|
12396
|
+
}
|
|
12397
|
+
]);
|
|
11921
12398
|
//#endregion
|
|
11922
12399
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
11923
12400
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
@@ -11928,42 +12405,106 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
|
11928
12405
|
reserveCss: `calc((${heightExpression}) / 2)`
|
|
11929
12406
|
};
|
|
11930
12407
|
}
|
|
11931
|
-
|
|
12408
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
|
|
12409
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
|
|
12410
|
+
/**
|
|
12411
|
+
* The catalogue's compile-time coverage check guarantees an entry per
|
|
12412
|
+
* decorative intent, so a miss here is a broken invariant, not bad input.
|
|
12413
|
+
*/
|
|
12414
|
+
function requireCatalogueValue(values, intent) {
|
|
12415
|
+
const value = values.get(intent);
|
|
12416
|
+
if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
|
|
12417
|
+
return value;
|
|
12418
|
+
}
|
|
11932
12419
|
const noneBoundaryOption = {
|
|
11933
12420
|
id: asBoundaryOptionId("break:none"),
|
|
11934
12421
|
label: "None",
|
|
11935
12422
|
transitionAfter: "none",
|
|
11936
12423
|
treatment: { kind: "none" }
|
|
11937
12424
|
};
|
|
11938
|
-
const
|
|
11939
|
-
id:
|
|
11940
|
-
label:
|
|
11941
|
-
transitionAfter:
|
|
11942
|
-
treatment:
|
|
11943
|
-
|
|
11944
|
-
|
|
11945
|
-
|
|
11946
|
-
|
|
12425
|
+
const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
|
|
12426
|
+
id: entry.optionId,
|
|
12427
|
+
label: entry.label,
|
|
12428
|
+
transitionAfter: entry.intent,
|
|
12429
|
+
treatment: entry.treatment
|
|
12430
|
+
}]));
|
|
12431
|
+
function boundaryOptionForTransitionIntent(intent) {
|
|
12432
|
+
return requireCatalogueValue(boundaryOptionByIntent, intent);
|
|
12433
|
+
}
|
|
12434
|
+
const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
|
|
12435
|
+
const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
|
|
12436
|
+
boundaryOptionForTransitionIntent("soft-fade-expansive");
|
|
12437
|
+
boundaryOptionForTransitionIntent("wave-edge");
|
|
12438
|
+
boundaryOptionForTransitionIntent("wave-edge-balanced");
|
|
12439
|
+
boundaryOptionForTransitionIntent("wave-edge-gentle");
|
|
12440
|
+
boundaryOptionForTransitionIntent("wave-edge-bold");
|
|
12441
|
+
boundaryOptionForTransitionIntent("wave-edge-drift");
|
|
12442
|
+
boundaryOptionForTransitionIntent("angle-edge-subtle");
|
|
12443
|
+
boundaryOptionForTransitionIntent("angle-edge");
|
|
12444
|
+
boundaryOptionForTransitionIntent("angle-edge-steep");
|
|
12445
|
+
/**
|
|
12446
|
+
* Must remain non-empty; downstream code indexes `[0]` as the documented default.
|
|
12447
|
+
*/
|
|
12448
|
+
const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
|
|
12449
|
+
const noneTransitionVariant = {
|
|
12450
|
+
familyId: "none",
|
|
12451
|
+
variantId: "none",
|
|
12452
|
+
label: "None",
|
|
12453
|
+
boundaryOption: noneBoundaryOption
|
|
11947
12454
|
};
|
|
11948
|
-
|
|
11949
|
-
|
|
11950
|
-
|
|
11951
|
-
|
|
11952
|
-
|
|
11953
|
-
|
|
11954
|
-
|
|
11955
|
-
|
|
11956
|
-
|
|
12455
|
+
function transitionVariantForEntry(entry) {
|
|
12456
|
+
return {
|
|
12457
|
+
familyId: entry.family,
|
|
12458
|
+
variantId: entry.variantId,
|
|
12459
|
+
label: entry.variantLabel,
|
|
12460
|
+
boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
|
|
12461
|
+
};
|
|
12462
|
+
}
|
|
12463
|
+
const sectionTransitionFamilies = [{
|
|
12464
|
+
id: "none",
|
|
12465
|
+
label: "None",
|
|
12466
|
+
variants: [noneTransitionVariant]
|
|
12467
|
+
}, ...transitionCatalogueFamilies.map((family) => ({
|
|
12468
|
+
id: family.id,
|
|
12469
|
+
label: family.label,
|
|
12470
|
+
variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
|
|
12471
|
+
}))];
|
|
12472
|
+
new Map(boundaryOptions.map((option) => [option.id, option]));
|
|
12473
|
+
new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
|
|
12474
|
+
new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
|
|
12475
|
+
new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
|
|
12476
|
+
function stableTreatmentKey(treatment) {
|
|
12477
|
+
switch (treatment.kind) {
|
|
12478
|
+
case "none": return "none";
|
|
12479
|
+
case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
|
|
12480
|
+
case "wave-edge": return [
|
|
12481
|
+
treatment.kind,
|
|
12482
|
+
treatment.height,
|
|
12483
|
+
treatment.amplitude,
|
|
12484
|
+
treatment.rhythm,
|
|
12485
|
+
treatment.symmetry
|
|
12486
|
+
].join(":");
|
|
12487
|
+
case "angle-edge": return [
|
|
12488
|
+
treatment.kind,
|
|
12489
|
+
treatment.height,
|
|
12490
|
+
treatment.slope,
|
|
12491
|
+
treatment.direction
|
|
12492
|
+
].join(":");
|
|
12493
|
+
case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
|
|
12494
|
+
}
|
|
12495
|
+
}
|
|
12496
|
+
requireThemeColorToken$1("background");
|
|
12497
|
+
function requireThemeColorToken$1(value) {
|
|
12498
|
+
const token = parseThemeColorToken(value);
|
|
12499
|
+
if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
|
|
12500
|
+
return token;
|
|
12501
|
+
}
|
|
12502
|
+
//#endregion
|
|
12503
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
12504
|
+
const defaultHeaderBrandPreferences = {
|
|
12505
|
+
brandDisplay: "auto",
|
|
12506
|
+
logoSize: "auto"
|
|
11957
12507
|
};
|
|
11958
|
-
asBoundaryOptionId("break:expansive");
|
|
11959
|
-
asBoundaryOptionId("break:wave");
|
|
11960
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
11961
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
11962
|
-
asBoundaryOptionId("break:wave-bold");
|
|
11963
|
-
asBoundaryOptionId("break:wave-drift");
|
|
11964
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
11965
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
11966
|
-
asBoundaryOptionId("break:angle-steep");
|
|
11967
12508
|
asBoundaryOptionId("break:unknown");
|
|
11968
12509
|
const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
|
|
11969
12510
|
kind: z.literal("user-pinned"),
|
|
@@ -12090,14 +12631,11 @@ function validateUniquePageDesignPins(intent, ctx) {
|
|
|
12090
12631
|
label: "block Look pin"
|
|
12091
12632
|
});
|
|
12092
12633
|
addDuplicateStringIssues(ctx, {
|
|
12093
|
-
values: intent.boundaryPins.map((pin) =>
|
|
12634
|
+
values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
|
|
12094
12635
|
path: ["boundaryPins"],
|
|
12095
12636
|
label: "boundary pin"
|
|
12096
12637
|
});
|
|
12097
12638
|
}
|
|
12098
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
12099
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
12100
|
-
}
|
|
12101
12639
|
//#endregion
|
|
12102
12640
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
12103
12641
|
/**
|
|
@@ -13725,6 +14263,13 @@ z.object({
|
|
|
13725
14263
|
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
13726
14264
|
authority: styleAuthoritySchema
|
|
13727
14265
|
}).strict();
|
|
14266
|
+
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
14267
|
+
asPageFlowPresetId("generated-default");
|
|
14268
|
+
asSiteStyleId("site-style:south-west-twerk-school");
|
|
14269
|
+
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
14270
|
+
asLayoutVariantKey("classic");
|
|
14271
|
+
asLayoutVariantKey("micro");
|
|
14272
|
+
asBoundaryOptionId("break:wave");
|
|
13728
14273
|
//#endregion
|
|
13729
14274
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
13730
14275
|
function defineSectionForegroundRuntimeTokens(input) {
|
|
@@ -13748,7 +14293,7 @@ function defineComponentRuntimeRules(rules) {
|
|
|
13748
14293
|
}
|
|
13749
14294
|
/**
|
|
13750
14295
|
* Default design rules translate semantic page-level choices into the current
|
|
13751
|
-
* runtime's section background
|
|
14296
|
+
* runtime's section background vocabulary.
|
|
13752
14297
|
*/
|
|
13753
14298
|
const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
13754
14299
|
sectionSurfaces: {
|
|
@@ -13783,8 +14328,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
13783
14328
|
color: "surface",
|
|
13784
14329
|
opacity: .88
|
|
13785
14330
|
}
|
|
13786
|
-
}
|
|
13787
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
14331
|
+
}
|
|
13788
14332
|
});
|
|
13789
14333
|
/**
|
|
13790
14334
|
* Default component rules translate frame and item-surface semantics into the
|
|
@@ -15519,19 +16063,11 @@ const curatedSiteStyles = [
|
|
|
15519
16063
|
})
|
|
15520
16064
|
];
|
|
15521
16065
|
new Map(curatedSiteStyles.map((style) => [style.id, style]));
|
|
15522
|
-
asPageFlowPresetId("generated-default");
|
|
15523
|
-
asSiteStyleId("site-style:south-west-twerk-school");
|
|
15524
|
-
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
15525
|
-
asLayoutVariantKey("classic");
|
|
15526
|
-
asLayoutVariantKey("micro");
|
|
15527
|
-
asBoundaryOptionId("break:wave");
|
|
15528
|
-
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
15529
16066
|
//#endregion
|
|
15530
16067
|
//#region ../theme-core/src/site-styles/resolver.ts
|
|
15531
16068
|
const blockDesignFallback = {
|
|
15532
16069
|
sectionSurface: "base",
|
|
15533
16070
|
contentFrame: plainFrame,
|
|
15534
|
-
transitionAfter: "none",
|
|
15535
16071
|
sectionHeight: "default",
|
|
15536
16072
|
heroLegibility: "none",
|
|
15537
16073
|
imageSurfaceTreatment: { kind: "none" },
|
|
@@ -15542,7 +16078,7 @@ const blockDesignFallback = {
|
|
|
15542
16078
|
accordionIconTreatment: null,
|
|
15543
16079
|
composition: null
|
|
15544
16080
|
};
|
|
15545
|
-
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.
|
|
16081
|
+
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
15546
16082
|
//#endregion
|
|
15547
16083
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
15548
16084
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
@@ -16354,7 +16890,8 @@ const siteOptionSources = [
|
|
|
16354
16890
|
"eventCategories",
|
|
16355
16891
|
"eventSeries",
|
|
16356
16892
|
"venues",
|
|
16357
|
-
"staffMembers"
|
|
16893
|
+
"staffMembers",
|
|
16894
|
+
"appointmentServiceCategories"
|
|
16358
16895
|
];
|
|
16359
16896
|
const mediaDeliverySchema = z.object({
|
|
16360
16897
|
sizes: z.string().optional(),
|
|
@@ -18603,9 +19140,7 @@ function navRow(opts) {
|
|
|
18603
19140
|
rel: { $bind: { from: `${childItemName}.rel` } },
|
|
18604
19141
|
"data-active": { $bind: { from: `${childItemName}.active` } }
|
|
18605
19142
|
}, [text({ as: "span" }, bind(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
|
|
18606
|
-
const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [
|
|
18607
|
-
type: "button",
|
|
18608
|
-
variantId: "",
|
|
19143
|
+
const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [el("headerControl", {
|
|
18609
19144
|
className: prependClassName("nav-dropdown-trigger", linkClassName),
|
|
18610
19145
|
"aria-haspopup": "menu",
|
|
18611
19146
|
"aria-expanded": "false",
|
|
@@ -18673,9 +19208,7 @@ function navColumn(opts) {
|
|
|
18673
19208
|
const dropdown = el("div", {
|
|
18674
19209
|
className: "nav-mobile-dropdown",
|
|
18675
19210
|
"data-nav-mobile-dropdown": "true"
|
|
18676
|
-
}, [
|
|
18677
|
-
type: "button",
|
|
18678
|
-
variantId: "",
|
|
19211
|
+
}, [el("headerControl", {
|
|
18679
19212
|
className: triggerClassName,
|
|
18680
19213
|
"aria-expanded": "false",
|
|
18681
19214
|
"aria-controls": childrenId,
|
|
@@ -24982,6 +25515,49 @@ const layoutTransforms = [
|
|
|
24982
25515
|
footerLogoMediaClassTransform,
|
|
24983
25516
|
footerLogoTextVisibleTransform
|
|
24984
25517
|
];
|
|
25518
|
+
//#endregion
|
|
25519
|
+
//#region ../blocks/src/system/transforms/registry/chromeLogo.ts
|
|
25520
|
+
const chromeLogoSchema = z.object({ surface: z.enum([
|
|
25521
|
+
"header-root",
|
|
25522
|
+
"header-mobile-panel",
|
|
25523
|
+
"footer-root"
|
|
25524
|
+
]) });
|
|
25525
|
+
/** The brand foreground shares the logo's surface; navigation may own a separate capsule. */
|
|
25526
|
+
function chromeSurfaceTextToken(surface, theme, palette) {
|
|
25527
|
+
switch (surface) {
|
|
25528
|
+
case "header-root": {
|
|
25529
|
+
const header = theme.header;
|
|
25530
|
+
const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
|
|
25531
|
+
return foreground.kind === "known" ? foreground.roles.text : resolveHeaderLeafTextColor(header);
|
|
25532
|
+
}
|
|
25533
|
+
case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
|
|
25534
|
+
case "footer-root": {
|
|
25535
|
+
const foreground = resolveFooterRootForeground(theme.footer, palette);
|
|
25536
|
+
return foreground.kind === "known" ? foreground.roles.text : void 0;
|
|
25537
|
+
}
|
|
25538
|
+
}
|
|
25539
|
+
}
|
|
25540
|
+
function readChromeTheme(viewModel) {
|
|
25541
|
+
return asPartialObject(asPartialObject(viewModel?.["$root"])?.theme) ?? {};
|
|
25542
|
+
}
|
|
25543
|
+
function resolveChromeSurfaceTone(surface, context) {
|
|
25544
|
+
return surfaceToneFromForegroundToken(context.theme.palette, chromeSurfaceTextToken(surface, readChromeTheme(context.viewModel), context.theme.palette));
|
|
25545
|
+
}
|
|
25546
|
+
const chromeLogoTransforms = [{
|
|
25547
|
+
id: "layout.chromeLogo",
|
|
25548
|
+
kind: "formatter",
|
|
25549
|
+
summary: "Select the light- or dark-background site logo for a header or footer surface",
|
|
25550
|
+
schema: chromeLogoSchema,
|
|
25551
|
+
run: (value, options, context) => {
|
|
25552
|
+
const content = asPartialObject(value);
|
|
25553
|
+
const variants = asPartialObject(content?.logoVariants);
|
|
25554
|
+
if (!variants) return content?.logo ?? null;
|
|
25555
|
+
return selectLogoVariant(resolveChromeSurfaceTone(options.surface, context), {
|
|
25556
|
+
forLightBackgrounds: variants.forLightBackgrounds ?? null,
|
|
25557
|
+
forDarkBackgrounds: variants.forDarkBackgrounds ?? null
|
|
25558
|
+
});
|
|
25559
|
+
}
|
|
25560
|
+
}];
|
|
24985
25561
|
const headerRuntimeTransforms = [{
|
|
24986
25562
|
id: "layout.headerRuntimeContract",
|
|
24987
25563
|
kind: "formatter",
|
|
@@ -25189,46 +25765,42 @@ const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
|
25189
25765
|
equals
|
|
25190
25766
|
}
|
|
25191
25767
|
});
|
|
25192
|
-
|
|
25768
|
+
/** Draw whichever site logo suits the surface this row sits on. */
|
|
25769
|
+
const bindChromeLogo = (surface) => bind("content", { transforms: [{
|
|
25770
|
+
id: "layout.chromeLogo",
|
|
25771
|
+
options: { surface }
|
|
25772
|
+
}] });
|
|
25773
|
+
/**
|
|
25774
|
+
* The brand link. The logo is chosen per surface because the open mobile menu
|
|
25775
|
+
* paints its own background, which may be the opposite tone to the header.
|
|
25776
|
+
*/
|
|
25777
|
+
const createLogoRow = (surface) => link({
|
|
25193
25778
|
href: "/",
|
|
25194
25779
|
className: bindProp("$root.theme.header.logo", {
|
|
25195
25780
|
transforms: pipe(tx("layout.headerLogoClass")),
|
|
25196
25781
|
fallback: "header-logo rb-flex rb-min-w-0 rb-items-center rb-gap-3 rb-no-underline rb-transition-opacity rb-hover-opacity-80"
|
|
25197
25782
|
})
|
|
25198
|
-
}, [
|
|
25199
|
-
|
|
25200
|
-
|
|
25201
|
-
|
|
25202
|
-
|
|
25203
|
-
|
|
25204
|
-
|
|
25205
|
-
|
|
25206
|
-
}) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
25207
|
-
text({
|
|
25208
|
-
as: "strong",
|
|
25209
|
-
className: "header-logo-text rb-truncate"
|
|
25210
|
-
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
25211
|
-
]);
|
|
25783
|
+
}, [media({ className: bindProp("$root.theme.header.logo", {
|
|
25784
|
+
transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
|
|
25785
|
+
fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
|
|
25786
|
+
}) }, when("content.logo"), bindChromeLogo(surface)), text({
|
|
25787
|
+
as: "strong",
|
|
25788
|
+
className: "header-logo-text rb-truncate"
|
|
25789
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
|
|
25790
|
+
const logoRow = createLogoRow("header-root");
|
|
25212
25791
|
const centeredLogoRow = link({
|
|
25213
25792
|
href: "/",
|
|
25214
25793
|
className: bindProp("$root.theme.header.logo", {
|
|
25215
25794
|
transforms: pipe(tx("layout.headerLogoClass", { base: "header-logo rb-flex rb-items-center rb-justify-center rb-gap-3 rb-text-center rb-no-underline rb-transition-opacity rb-hover-opacity-80" })),
|
|
25216
25795
|
fallback: "header-logo rb-flex rb-items-center rb-justify-center rb-gap-3 rb-text-center rb-no-underline rb-transition-opacity rb-hover-opacity-80"
|
|
25217
25796
|
})
|
|
25218
|
-
}, [
|
|
25219
|
-
|
|
25220
|
-
|
|
25221
|
-
|
|
25222
|
-
|
|
25223
|
-
|
|
25224
|
-
|
|
25225
|
-
fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
|
|
25226
|
-
}) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
25227
|
-
text({
|
|
25228
|
-
as: "strong",
|
|
25229
|
-
className: "header-logo-text"
|
|
25230
|
-
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
25231
|
-
]);
|
|
25797
|
+
}, [media({ className: bindProp("$root.theme.header.logo", {
|
|
25798
|
+
transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
|
|
25799
|
+
fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
|
|
25800
|
+
}) }, when("content.logo"), bindChromeLogo("header-root")), text({
|
|
25801
|
+
as: "strong",
|
|
25802
|
+
className: "header-logo-text"
|
|
25803
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
|
|
25232
25804
|
const createNavRow = (className, align = "end") => navRow({
|
|
25233
25805
|
className: `${className} header-nav-row`,
|
|
25234
25806
|
align,
|
|
@@ -25268,10 +25840,8 @@ const mobileToggleIcon = stack({
|
|
|
25268
25840
|
}
|
|
25269
25841
|
]);
|
|
25270
25842
|
const mobileToggleButton = {
|
|
25271
|
-
type: "
|
|
25843
|
+
type: "headerControl",
|
|
25272
25844
|
props: {
|
|
25273
|
-
type: "button",
|
|
25274
|
-
variantId: "",
|
|
25275
25845
|
className: `nav-mobile-toggle ${mobileOnlyDisplay("inline-flex")} rb-h-10 rb-w-10 rb-items-center rb-justify-center rb-rounded-md transition-theme-standard`,
|
|
25276
25846
|
"aria-label": "Open menu",
|
|
25277
25847
|
"aria-expanded": "false",
|
|
@@ -25281,10 +25851,8 @@ const mobileToggleButton = {
|
|
|
25281
25851
|
children: [mobileToggleIcon]
|
|
25282
25852
|
};
|
|
25283
25853
|
const mobileOverlayToggleButton = {
|
|
25284
|
-
type: "
|
|
25854
|
+
type: "headerControl",
|
|
25285
25855
|
props: {
|
|
25286
|
-
type: "button",
|
|
25287
|
-
variantId: "",
|
|
25288
25856
|
className: "nav-mobile-toggle rb-inline-flex rb-h-10 rb-w-10 rb-items-center rb-justify-center rb-rounded-md transition-theme-standard",
|
|
25289
25857
|
"aria-label": "Open menu",
|
|
25290
25858
|
"aria-expanded": "false",
|
|
@@ -25308,7 +25876,7 @@ const mobileOverlayHeader = inline({
|
|
|
25308
25876
|
align: "center",
|
|
25309
25877
|
justify: "between",
|
|
25310
25878
|
style: borderColorStyle("border")
|
|
25311
|
-
}, [
|
|
25879
|
+
}, [createLogoRow("header-mobile-panel"), mobileOverlayToggleButton]);
|
|
25312
25880
|
const mobileOverlayBody = stack({
|
|
25313
25881
|
className: "rb-flex-1 rb-px-6 rb-py-6",
|
|
25314
25882
|
gap: "md",
|
|
@@ -25495,7 +26063,10 @@ const brandLogo = link({
|
|
|
25495
26063
|
options: { base: "rb-h-10 rb-w-auto" }
|
|
25496
26064
|
}],
|
|
25497
26065
|
fallback: "rb-h-10 rb-w-auto"
|
|
25498
|
-
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content
|
|
26066
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
|
|
26067
|
+
id: "layout.chromeLogo",
|
|
26068
|
+
options: { surface: "footer-root" }
|
|
26069
|
+
}] })), text({
|
|
25499
26070
|
as: "strong",
|
|
25500
26071
|
className: "footer-logo-text rb-nav-text"
|
|
25501
26072
|
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
@@ -27188,6 +27759,15 @@ const appointmentServicesBlockDefinition = {
|
|
|
27188
27759
|
required: false,
|
|
27189
27760
|
ui: { intent: "content" }
|
|
27190
27761
|
},
|
|
27762
|
+
createSiteOptionSelectField({
|
|
27763
|
+
id: "categoryId",
|
|
27764
|
+
label: "Category",
|
|
27765
|
+
description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
|
|
27766
|
+
required: false,
|
|
27767
|
+
multiple: false,
|
|
27768
|
+
optionSource: "appointmentServiceCategories",
|
|
27769
|
+
ui: { intent: "content" }
|
|
27770
|
+
}),
|
|
27191
27771
|
sectionStylesField({
|
|
27192
27772
|
id: "_sectionStyles",
|
|
27193
27773
|
label: "Section styles",
|
|
@@ -27222,6 +27802,7 @@ const appointmentServicesBlockDefinition = {
|
|
|
27222
27802
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
27223
27803
|
el("appointment-services", {
|
|
27224
27804
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
27805
|
+
categoryId: { $bind: { from: "content.categoryId" } },
|
|
27225
27806
|
services: { $bind: { from: "data.services" } },
|
|
27226
27807
|
pathname: { $bind: { from: "$root.pathname" } },
|
|
27227
27808
|
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
@@ -28211,6 +28792,12 @@ const occurrenceContextSchema = z.object({
|
|
|
28211
28792
|
capacityOverride: z.number().nullable().optional(),
|
|
28212
28793
|
overrides: z.record(z.string(), z.unknown()).nullable().optional()
|
|
28213
28794
|
}).nullable();
|
|
28795
|
+
//#endregion
|
|
28796
|
+
//#region ../blocks/src/system/runtime/api/readAuthority.ts
|
|
28797
|
+
const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("published") }).strict(), z.object({
|
|
28798
|
+
kind: z.literal("preview"),
|
|
28799
|
+
token: z.string().min(1)
|
|
28800
|
+
}).strict()]);
|
|
28214
28801
|
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z.object({
|
|
28215
28802
|
kind: z.literal("unsupported"),
|
|
28216
28803
|
reason: z.enum([
|
|
@@ -28321,6 +28908,33 @@ function normalizeEventCalendarDisplayMode$1(input) {
|
|
|
28321
28908
|
if (isEventCalendarDisplayMode(input.variant)) return input.variant;
|
|
28322
28909
|
return isEventCalendarDisplayMode(input.displayMode) ? input.displayMode : void 0;
|
|
28323
28910
|
}
|
|
28911
|
+
/** One closed authority for the projections required by each rendered mode. */
|
|
28912
|
+
function resolveEventCalendarReadPlan(input) {
|
|
28913
|
+
const mode = normalizeEventCalendarDisplayMode$1(input) ?? "combined";
|
|
28914
|
+
switch (mode) {
|
|
28915
|
+
case "combined": return {
|
|
28916
|
+
mode,
|
|
28917
|
+
jobs: "both",
|
|
28918
|
+
readProfile: "listing-card"
|
|
28919
|
+
};
|
|
28920
|
+
case "list": return {
|
|
28921
|
+
mode,
|
|
28922
|
+
jobs: "list",
|
|
28923
|
+
readProfile: "listing-card"
|
|
28924
|
+
};
|
|
28925
|
+
case "calendar": return {
|
|
28926
|
+
mode,
|
|
28927
|
+
jobs: "calendar",
|
|
28928
|
+
readProfile: "listing-card"
|
|
28929
|
+
};
|
|
28930
|
+
case "timetable":
|
|
28931
|
+
case "week-board": return {
|
|
28932
|
+
mode,
|
|
28933
|
+
jobs: "calendar",
|
|
28934
|
+
readProfile: "timetable"
|
|
28935
|
+
};
|
|
28936
|
+
}
|
|
28937
|
+
}
|
|
28324
28938
|
function isEventCalendarDefaultView(value) {
|
|
28325
28939
|
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
28326
28940
|
}
|
|
@@ -28515,6 +29129,7 @@ const eventRegistrationSourceSchema = z.object({
|
|
|
28515
29129
|
apiBaseUrl: z.string().optional(),
|
|
28516
29130
|
portalToken: z.string().nullable().optional(),
|
|
28517
29131
|
previewToken: z.string().nullable().optional(),
|
|
29132
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
28518
29133
|
...eventRegistrationHydrationSchemaShape,
|
|
28519
29134
|
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
28520
29135
|
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
@@ -28552,6 +29167,7 @@ z.object({
|
|
|
28552
29167
|
apiBaseUrl: z.string().optional(),
|
|
28553
29168
|
portalToken: z.string().nullable().optional(),
|
|
28554
29169
|
previewToken: z.string().nullable().optional(),
|
|
29170
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
28555
29171
|
stage: previewStageSchema.optional()
|
|
28556
29172
|
});
|
|
28557
29173
|
function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
|
|
@@ -28810,6 +29426,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
28810
29426
|
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
28811
29427
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
28812
29428
|
eventRegistration(withApiBindings({
|
|
29429
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
28813
29430
|
occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
|
|
28814
29431
|
subject: { $bind: { from: "$root.subject" } },
|
|
28815
29432
|
portalToken: { $bind: {
|
|
@@ -29442,8 +30059,7 @@ function resolveEventListPaginationAction(input) {
|
|
|
29442
30059
|
//#endregion
|
|
29443
30060
|
//#region ../blocks/src/system/blocks/events/shared/calendarWindow.ts
|
|
29444
30061
|
function resolveCalendarReadProfile(content) {
|
|
29445
|
-
|
|
29446
|
-
return mode === "timetable" || mode === "week-board" ? "timetable" : "listing-card";
|
|
30062
|
+
return resolveEventCalendarReadPlan(content).readProfile;
|
|
29447
30063
|
}
|
|
29448
30064
|
/** Runtime picker sentinels and bound loader IDs must describe the same query. */
|
|
29449
30065
|
function normalizeCalendarFilterId(value) {
|
|
@@ -29553,6 +30169,7 @@ const eventCollectionSourceSchemaShape = {
|
|
|
29553
30169
|
events: z.array(publicEventSchema).nullable().optional(),
|
|
29554
30170
|
siteId: z.string(),
|
|
29555
30171
|
apiBaseUrl: z.string().optional(),
|
|
30172
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
29556
30173
|
stage: previewStageSchema.optional(),
|
|
29557
30174
|
listLayout: eventLayoutSchema.optional(),
|
|
29558
30175
|
listColumns: columnOptionSchema.optional(),
|
|
@@ -29605,7 +30222,6 @@ const eventCollectionDisplaySchemaShape = {
|
|
|
29605
30222
|
const eventCollectionHydrationSchema = z.object({
|
|
29606
30223
|
siteId: z.string(),
|
|
29607
30224
|
calendarWindow: calendarWindowPageSchema.optional(),
|
|
29608
|
-
stage: previewStageSchema.optional(),
|
|
29609
30225
|
prefetchedEvents: z.boolean(),
|
|
29610
30226
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
29611
30227
|
filterEventPresets: z.string().nullable(),
|
|
@@ -29680,7 +30296,6 @@ function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date())
|
|
|
29680
30296
|
return {
|
|
29681
30297
|
calendarWindow: source.calendarWindow ?? void 0,
|
|
29682
30298
|
siteId: source.siteId,
|
|
29683
|
-
stage: source.stage,
|
|
29684
30299
|
prefetchedEvents: source.events != null,
|
|
29685
30300
|
eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
|
|
29686
30301
|
filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
@@ -29700,6 +30315,7 @@ const eventListingSourceSchema = z.object({
|
|
|
29700
30315
|
events: z.array(publicEventSchema).nullable().optional(),
|
|
29701
30316
|
siteId: z.string(),
|
|
29702
30317
|
apiBaseUrl: z.string().optional(),
|
|
30318
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
29703
30319
|
stage: previewStageSchema.optional(),
|
|
29704
30320
|
layout: eventLayoutSchema.optional(),
|
|
29705
30321
|
columns: columnOptionSchema.optional(),
|
|
@@ -29740,7 +30356,6 @@ const eventListingDisplaySchema = z.object({
|
|
|
29740
30356
|
});
|
|
29741
30357
|
const eventListingHydrationSchema = z.object({
|
|
29742
30358
|
siteId: z.string(),
|
|
29743
|
-
stage: previewStageSchema.optional(),
|
|
29744
30359
|
eventsPerPage: eventPageSizeSchema,
|
|
29745
30360
|
paginationAction: eventListPaginationActionSchema,
|
|
29746
30361
|
showFilters: z.boolean(),
|
|
@@ -29763,6 +30378,7 @@ const eventListingRenderSchema = z.object({
|
|
|
29763
30378
|
z.object({
|
|
29764
30379
|
siteId: z.string(),
|
|
29765
30380
|
apiBaseUrl: z.string().optional(),
|
|
30381
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
29766
30382
|
stage: previewStageSchema.optional()
|
|
29767
30383
|
});
|
|
29768
30384
|
const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -29797,7 +30413,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
29797
30413
|
},
|
|
29798
30414
|
hydration: {
|
|
29799
30415
|
siteId: source.siteId,
|
|
29800
|
-
stage: source.stage,
|
|
29801
30416
|
eventsPerPage: pageSize,
|
|
29802
30417
|
paginationAction: resolveEventListPaginationAction({
|
|
29803
30418
|
paginationMode: source.paginationMode,
|
|
@@ -30079,6 +30694,7 @@ const eventListingBlockDefinition = {
|
|
|
30079
30694
|
rootType: "stack",
|
|
30080
30695
|
rootProps: { gap: "lg" },
|
|
30081
30696
|
children: [...eventSectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
|
|
30697
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
30082
30698
|
events: { $bind: { from: "data.events" } },
|
|
30083
30699
|
stage: { $bind: {
|
|
30084
30700
|
from: "$root.previewStage",
|
|
@@ -30276,6 +30892,7 @@ const eventCalendarRenderSchema = z.object({
|
|
|
30276
30892
|
z.object({
|
|
30277
30893
|
siteId: z.string(),
|
|
30278
30894
|
apiBaseUrl: z.string().optional(),
|
|
30895
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
30279
30896
|
stage: previewStageSchema.optional()
|
|
30280
30897
|
});
|
|
30281
30898
|
/**
|
|
@@ -30297,7 +30914,7 @@ function buildEventCalendarDisplay(source) {
|
|
|
30297
30914
|
listColumns: source.listColumns ?? source.columns
|
|
30298
30915
|
}),
|
|
30299
30916
|
kind: "event-calendar",
|
|
30300
|
-
displayMode:
|
|
30917
|
+
displayMode: resolveEventCalendarReadPlan(source).mode,
|
|
30301
30918
|
className: source.className ?? null,
|
|
30302
30919
|
events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
|
|
30303
30920
|
boardTitle: normalizeOptionalText(source.boardTitle),
|
|
@@ -30314,13 +30931,16 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
30314
30931
|
source: createZodCodec(eventCalendarSourceSchema),
|
|
30315
30932
|
render: createZodCodec(eventCalendarRenderSchema)
|
|
30316
30933
|
},
|
|
30317
|
-
buildRender: (source) =>
|
|
30318
|
-
|
|
30319
|
-
|
|
30320
|
-
|
|
30321
|
-
|
|
30322
|
-
|
|
30323
|
-
|
|
30934
|
+
buildRender: (source) => {
|
|
30935
|
+
const plan = resolveEventCalendarReadPlan(source);
|
|
30936
|
+
return {
|
|
30937
|
+
display: buildEventCalendarDisplay(source.calendarWindow && plan.jobs === "calendar" ? {
|
|
30938
|
+
...source,
|
|
30939
|
+
events: source.calendarWindow.events
|
|
30940
|
+
} : source),
|
|
30941
|
+
hydration: buildEventCollectionHydration(source)
|
|
30942
|
+
};
|
|
30943
|
+
}
|
|
30324
30944
|
});
|
|
30325
30945
|
//#endregion
|
|
30326
30946
|
//#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
|
|
@@ -30470,6 +31090,7 @@ const eventCalendarLayout = [styledSection({
|
|
|
30470
31090
|
rootType: "stack",
|
|
30471
31091
|
rootProps: { gap: "lg" },
|
|
30472
31092
|
children: [...eventSectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
|
|
31093
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
30473
31094
|
events: { $bind: { from: "data.events" } },
|
|
30474
31095
|
calendarWindow: { $bind: { from: "data.calendarWindow" } },
|
|
30475
31096
|
stage: { $bind: {
|
|
@@ -34033,6 +34654,7 @@ const shopSourceSchema = z.object({
|
|
|
34033
34654
|
products: z.array(publicProductSchema).nullable().optional(),
|
|
34034
34655
|
siteId: z.string().optional(),
|
|
34035
34656
|
apiBaseUrl: z.string().optional(),
|
|
34657
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
34036
34658
|
stage: previewStageSchema.optional()
|
|
34037
34659
|
});
|
|
34038
34660
|
const productVariantOptionDisplaySchema = z.object({
|
|
@@ -34200,6 +34822,7 @@ function resolveShowPricePerCredit(source) {
|
|
|
34200
34822
|
z.object({
|
|
34201
34823
|
siteId: z.string().optional(),
|
|
34202
34824
|
apiBaseUrl: z.string().optional(),
|
|
34825
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
34203
34826
|
stage: previewStageSchema.optional()
|
|
34204
34827
|
});
|
|
34205
34828
|
const shopBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -34540,6 +35163,7 @@ const shopBlockDefinition = {
|
|
|
34540
35163
|
baseClass: "",
|
|
34541
35164
|
spacing: "spacious",
|
|
34542
35165
|
children: sectionContainer([shop(withApiBindings({
|
|
35166
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
34543
35167
|
mode: "passes-memberships",
|
|
34544
35168
|
showPasses: { $bind: {
|
|
34545
35169
|
from: "content.showPasses",
|
|
@@ -34738,6 +35362,7 @@ const productListBlockDefinition = {
|
|
|
34738
35362
|
baseClass: "",
|
|
34739
35363
|
spacing: "spacious",
|
|
34740
35364
|
children: sectionContainer([productList(withApiBindings({
|
|
35365
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
34741
35366
|
mode: "product-list",
|
|
34742
35367
|
heading: { $bind: {
|
|
34743
35368
|
from: "content.heading",
|
|
@@ -34880,6 +35505,7 @@ const productDetailBlockDefinition = {
|
|
|
34880
35505
|
baseClass: "",
|
|
34881
35506
|
spacing: "spacious",
|
|
34882
35507
|
children: sectionContainer([productDetail(withApiBindings({
|
|
35508
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
34883
35509
|
mode: "product-detail",
|
|
34884
35510
|
heading: { $bind: {
|
|
34885
35511
|
from: "content.heading",
|
|
@@ -34996,6 +35622,7 @@ const cartBlockDefinition = {
|
|
|
34996
35622
|
baseClass: "",
|
|
34997
35623
|
spacing: "spacious",
|
|
34998
35624
|
children: sectionContainer([cart(withApiBindings({
|
|
35625
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
34999
35626
|
mode: "cart",
|
|
35000
35627
|
heading: { $bind: {
|
|
35001
35628
|
from: "content.heading",
|
|
@@ -35079,6 +35706,7 @@ const checkoutBlockDefinition = {
|
|
|
35079
35706
|
baseClass: "",
|
|
35080
35707
|
spacing: "spacious",
|
|
35081
35708
|
children: sectionContainer([checkout(withApiBindings({
|
|
35709
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
35082
35710
|
mode: "checkout",
|
|
35083
35711
|
heading: { $bind: {
|
|
35084
35712
|
from: "content.heading",
|
|
@@ -37739,8 +38367,8 @@ const builtinTransformDefinitions = [
|
|
|
37739
38367
|
summary: "Choose the read projection required by the calendar display mode",
|
|
37740
38368
|
schema: z.object({ job: z.enum(["list", "calendar"]) }),
|
|
37741
38369
|
run(value, options) {
|
|
37742
|
-
const
|
|
37743
|
-
return
|
|
38370
|
+
const plan = resolveEventCalendarReadPlan(asPartialObject(value) ?? {});
|
|
38371
|
+
return plan.jobs === "both" || plan.jobs === options.job;
|
|
37744
38372
|
}
|
|
37745
38373
|
},
|
|
37746
38374
|
{
|
|
@@ -37753,6 +38381,7 @@ const builtinTransformDefinitions = [
|
|
|
37753
38381
|
},
|
|
37754
38382
|
...formattingTransforms,
|
|
37755
38383
|
...layoutTransforms,
|
|
38384
|
+
...chromeLogoTransforms,
|
|
37756
38385
|
...uiTransforms,
|
|
37757
38386
|
...mediaTransforms,
|
|
37758
38387
|
...backgroundTransforms,
|
|
@@ -38521,7 +39150,12 @@ const appointmentSetupServiceDraftSchema = z.object({
|
|
|
38521
39150
|
venue: appointmentSetupVenueChoiceSchema,
|
|
38522
39151
|
timezone: z.string().trim().min(1).nullable(),
|
|
38523
39152
|
payment: appointmentSetupPaymentDraftSchema,
|
|
38524
|
-
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
39153
|
+
assignment: appointmentSetupServiceAssignmentDraftSchema,
|
|
39154
|
+
/**
|
|
39155
|
+
* The service's category, or null for "Other" (issue 1403). Omitted leaves
|
|
39156
|
+
* an existing service's category alone and puts a new one in "Other".
|
|
39157
|
+
*/
|
|
39158
|
+
categoryId: z.string().uuid().nullable().optional()
|
|
38525
39159
|
}).superRefine((service, ctx) => {
|
|
38526
39160
|
if (service.payment.kind !== "free" && (service.priceAmount === null || service.priceAmount <= 0)) ctx.addIssue({
|
|
38527
39161
|
code: "custom",
|