@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
package/dist/server/data.mjs
CHANGED
|
@@ -2220,6 +2220,8 @@ const buttonSystemSchema = z.strictObject({
|
|
|
2220
2220
|
//#endregion
|
|
2221
2221
|
//#region ../theme-core/src/palette/utils/colorConversion.ts
|
|
2222
2222
|
const clamp01 = (x) => Math.max(0, Math.min(1, x));
|
|
2223
|
+
const mod = (a, n) => (a % n + n) % n;
|
|
2224
|
+
const deg = (x) => mod(x, 360);
|
|
2223
2225
|
function hexToRgb(hex) {
|
|
2224
2226
|
const h = hex.replace(/^#/, "");
|
|
2225
2227
|
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
@@ -2242,6 +2244,45 @@ function srgbToLinear(u) {
|
|
|
2242
2244
|
function linearToSrgb(x) {
|
|
2243
2245
|
return clamp01(x <= .0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - .055) * 255;
|
|
2244
2246
|
}
|
|
2247
|
+
function rgbToHsl(r, g, b) {
|
|
2248
|
+
const R = r / 255, G = g / 255, B = b / 255;
|
|
2249
|
+
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
2250
|
+
const d = max - min;
|
|
2251
|
+
let h = 0;
|
|
2252
|
+
if (d !== 0) {
|
|
2253
|
+
switch (max) {
|
|
2254
|
+
case R:
|
|
2255
|
+
h = (G - B) / d + (G < B ? 6 : 0);
|
|
2256
|
+
break;
|
|
2257
|
+
case G:
|
|
2258
|
+
h = (B - R) / d + 2;
|
|
2259
|
+
break;
|
|
2260
|
+
case B:
|
|
2261
|
+
h = (R - G) / d + 4;
|
|
2262
|
+
break;
|
|
2263
|
+
}
|
|
2264
|
+
h *= 60;
|
|
2265
|
+
}
|
|
2266
|
+
const l = (max + min) / 2;
|
|
2267
|
+
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
2268
|
+
return {
|
|
2269
|
+
h,
|
|
2270
|
+
s,
|
|
2271
|
+
l
|
|
2272
|
+
};
|
|
2273
|
+
}
|
|
2274
|
+
function srgbToOklab(r, g, b) {
|
|
2275
|
+
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
2276
|
+
const l = .4122214708 * R + .5363325363 * G + .0514459929 * B;
|
|
2277
|
+
const m = .2119034982 * R + .6806995451 * G + .1073969566 * B;
|
|
2278
|
+
const s = .0883024619 * R + .2817188376 * G + .6299787005 * B;
|
|
2279
|
+
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
2280
|
+
return {
|
|
2281
|
+
L: .2104542553 * l_ + .793617785 * m_ - .0040720468 * s_,
|
|
2282
|
+
a: 1.9779984951 * l_ - 2.428592205 * m_ + .4505937099 * s_,
|
|
2283
|
+
b: .0259040371 * l_ + .7827717662 * m_ - .808675766 * s_
|
|
2284
|
+
};
|
|
2285
|
+
}
|
|
2245
2286
|
function oklabToSrgb(L, a, b) {
|
|
2246
2287
|
const l_ = Math.pow(L + .3963377774 * a + .2158037573 * b, 3);
|
|
2247
2288
|
const m_ = Math.pow(L - .1055613458 * a - .0638541728 * b, 3);
|
|
@@ -2255,6 +2296,14 @@ function oklabToSrgb(L, a, b) {
|
|
|
2255
2296
|
b: linearToSrgb(B)
|
|
2256
2297
|
};
|
|
2257
2298
|
}
|
|
2299
|
+
function oklabToOklch(L, a, b) {
|
|
2300
|
+
const C = Math.sqrt(a * a + b * b);
|
|
2301
|
+
return {
|
|
2302
|
+
L,
|
|
2303
|
+
C,
|
|
2304
|
+
h: C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI)
|
|
2305
|
+
};
|
|
2306
|
+
}
|
|
2258
2307
|
function oklchToOklab(L, C, h) {
|
|
2259
2308
|
const hr = h * Math.PI / 180;
|
|
2260
2309
|
return {
|
|
@@ -2263,6 +2312,27 @@ function oklchToOklab(L, C, h) {
|
|
|
2263
2312
|
b: C * Math.sin(hr)
|
|
2264
2313
|
};
|
|
2265
2314
|
}
|
|
2315
|
+
function featuresFromHex(hex) {
|
|
2316
|
+
const { r, g, b } = hexToRgb(hex);
|
|
2317
|
+
const { h, s, l } = rgbToHsl(r, g, b);
|
|
2318
|
+
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
2319
|
+
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
2320
|
+
return {
|
|
2321
|
+
r,
|
|
2322
|
+
g,
|
|
2323
|
+
b,
|
|
2324
|
+
h,
|
|
2325
|
+
s,
|
|
2326
|
+
l,
|
|
2327
|
+
v: Math.max(r, g, b) / 255,
|
|
2328
|
+
Y: .2126 * srgbToLinear(r) + .7152 * srgbToLinear(g) + .0722 * srgbToLinear(b),
|
|
2329
|
+
chroma: s,
|
|
2330
|
+
okL,
|
|
2331
|
+
okC,
|
|
2332
|
+
okH,
|
|
2333
|
+
hex
|
|
2334
|
+
};
|
|
2335
|
+
}
|
|
2266
2336
|
function relativeLuminance(r, g, b) {
|
|
2267
2337
|
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
2268
2338
|
return .2126 * R + .7152 * G + .0722 * B;
|
|
@@ -3312,6 +3382,36 @@ function normalizedReference(value) {
|
|
|
3312
3382
|
return normalized.length > 0 ? normalized : null;
|
|
3313
3383
|
}
|
|
3314
3384
|
//#endregion
|
|
3385
|
+
//#region ../theme-core/src/surfaces/logoVariant.ts
|
|
3386
|
+
/** Concrete hex behind a plain, opaque palette token, or null otherwise. */
|
|
3387
|
+
function opaquePaletteHexForToken(expandedPalette, token) {
|
|
3388
|
+
if (!token) return null;
|
|
3389
|
+
const parts = parseColorTokenParts(token);
|
|
3390
|
+
if (parts.kind !== "token" || parts.opacityPercent !== null) return null;
|
|
3391
|
+
return expandedPalette[parts.token] ?? null;
|
|
3392
|
+
}
|
|
3393
|
+
/**
|
|
3394
|
+
* Tone of the surface a foreground token was resolved for.
|
|
3395
|
+
*
|
|
3396
|
+
* A token with opacity has no known underlay to composite against, and a raw
|
|
3397
|
+
* or unrecognised token has no palette hex, so both are `unknown` rather than
|
|
3398
|
+
* a guess.
|
|
3399
|
+
*/
|
|
3400
|
+
function surfaceToneFromForegroundToken(expandedPalette, foregroundToken) {
|
|
3401
|
+
const hex = opaquePaletteHexForToken(expandedPalette, foregroundToken);
|
|
3402
|
+
if (!hex) return "unknown";
|
|
3403
|
+
return featuresFromHex(hex).Y >= .5 ? "dark" : "light";
|
|
3404
|
+
}
|
|
3405
|
+
/**
|
|
3406
|
+
* The logo to draw on a surface of the given tone. A missing variant falls
|
|
3407
|
+
* back to the other one, and an unknown tone uses the light-backgrounds logo,
|
|
3408
|
+
* which is what every site rendered before variants existed.
|
|
3409
|
+
*/
|
|
3410
|
+
function selectLogoVariant(tone, variants) {
|
|
3411
|
+
const { forLightBackgrounds, forDarkBackgrounds } = variants;
|
|
3412
|
+
return tone === "dark" ? forDarkBackgrounds ?? forLightBackgrounds : forLightBackgrounds ?? forDarkBackgrounds;
|
|
3413
|
+
}
|
|
3414
|
+
//#endregion
|
|
3315
3415
|
//#region ../theme-core/src/utils/colorStyles.ts
|
|
3316
3416
|
const COLOR_VAR_PREFIX = "--tb-";
|
|
3317
3417
|
function parseToken(source) {
|
|
@@ -3363,16 +3463,28 @@ function backgroundColorStyle(token) {
|
|
|
3363
3463
|
return { backgroundColor: rgbColorValue(token) };
|
|
3364
3464
|
}
|
|
3365
3465
|
/**
|
|
3466
|
+
* Converts a text color token to a CSS color value that follows the enclosing
|
|
3467
|
+
* surface. The semantic text tokens (`text`, `heading`, `mutedText`) resolve
|
|
3468
|
+
* to the surface foreground variables, so text adapts when a section's
|
|
3469
|
+
* background changes; any other token is a fixed theme color.
|
|
3470
|
+
*
|
|
3471
|
+
* @param token - Theme color token
|
|
3472
|
+
* @returns CSS color value
|
|
3473
|
+
*/
|
|
3474
|
+
function textColorValue(token) {
|
|
3475
|
+
const parsed = parseToken(token);
|
|
3476
|
+
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
3477
|
+
if (!surfaceRole) return rgbColorValue(token);
|
|
3478
|
+
return parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent);
|
|
3479
|
+
}
|
|
3480
|
+
/**
|
|
3366
3481
|
* Creates a text color style object from a theme token.
|
|
3367
3482
|
*
|
|
3368
3483
|
* @param token - Theme color token
|
|
3369
3484
|
* @returns CSSProperties with color
|
|
3370
3485
|
*/
|
|
3371
3486
|
function textColorStyle(token) {
|
|
3372
|
-
|
|
3373
|
-
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
3374
|
-
if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
|
|
3375
|
-
return { color: rgbColorValue(token) };
|
|
3487
|
+
return { color: textColorValue(token) };
|
|
3376
3488
|
}
|
|
3377
3489
|
/**
|
|
3378
3490
|
* Creates a border color style object from a theme token.
|
|
@@ -6557,6 +6669,15 @@ function asSiteStyleId(value) {
|
|
|
6557
6669
|
function asDesignSystemTemplateId(value) {
|
|
6558
6670
|
return brandNonEmptyString(value, "DesignSystemTemplateId");
|
|
6559
6671
|
}
|
|
6672
|
+
function toNonEmptyReadonlyArray(values) {
|
|
6673
|
+
const [first, ...rest] = values;
|
|
6674
|
+
return first === void 0 ? null : [first, ...rest];
|
|
6675
|
+
}
|
|
6676
|
+
function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
|
|
6677
|
+
const result = toNonEmptyReadonlyArray(values);
|
|
6678
|
+
if (!result) throw new Error(message);
|
|
6679
|
+
return result;
|
|
6680
|
+
}
|
|
6560
6681
|
function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
6561
6682
|
return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
|
|
6562
6683
|
}
|
|
@@ -6759,16 +6880,18 @@ const themeV2RuntimeStyleFieldNames = [
|
|
|
6759
6880
|
"_frameStyles",
|
|
6760
6881
|
"_sectionStyles",
|
|
6761
6882
|
"_containerStyles",
|
|
6762
|
-
"_cardStyles"
|
|
6763
|
-
"_transitionStyles",
|
|
6764
|
-
"styleGroup"
|
|
6883
|
+
"_cardStyles"
|
|
6765
6884
|
];
|
|
6766
6885
|
const themeV2BlockSpecificRawStyleFieldNames = [
|
|
6767
6886
|
"_contentCardStyles",
|
|
6768
6887
|
"_heroLayoutStyles",
|
|
6769
6888
|
"_textCardStyles"
|
|
6770
6889
|
];
|
|
6771
|
-
const themeV2NormalEditorRawStyleFieldNames = [
|
|
6890
|
+
const themeV2NormalEditorRawStyleFieldNames = [
|
|
6891
|
+
...themeV2RuntimeStyleFieldNames,
|
|
6892
|
+
...themeV2BlockSpecificRawStyleFieldNames,
|
|
6893
|
+
"styleGroup"
|
|
6894
|
+
];
|
|
6772
6895
|
new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
6773
6896
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
6774
6897
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
@@ -8267,6 +8390,33 @@ function normalizeEventCalendarDisplayMode$1(input) {
|
|
|
8267
8390
|
if (isEventCalendarDisplayMode(input.variant)) return input.variant;
|
|
8268
8391
|
return isEventCalendarDisplayMode(input.displayMode) ? input.displayMode : void 0;
|
|
8269
8392
|
}
|
|
8393
|
+
/** One closed authority for the projections required by each rendered mode. */
|
|
8394
|
+
function resolveEventCalendarReadPlan(input) {
|
|
8395
|
+
const mode = normalizeEventCalendarDisplayMode$1(input) ?? "combined";
|
|
8396
|
+
switch (mode) {
|
|
8397
|
+
case "combined": return {
|
|
8398
|
+
mode,
|
|
8399
|
+
jobs: "both",
|
|
8400
|
+
readProfile: "listing-card"
|
|
8401
|
+
};
|
|
8402
|
+
case "list": return {
|
|
8403
|
+
mode,
|
|
8404
|
+
jobs: "list",
|
|
8405
|
+
readProfile: "listing-card"
|
|
8406
|
+
};
|
|
8407
|
+
case "calendar": return {
|
|
8408
|
+
mode,
|
|
8409
|
+
jobs: "calendar",
|
|
8410
|
+
readProfile: "listing-card"
|
|
8411
|
+
};
|
|
8412
|
+
case "timetable":
|
|
8413
|
+
case "week-board": return {
|
|
8414
|
+
mode,
|
|
8415
|
+
jobs: "calendar",
|
|
8416
|
+
readProfile: "timetable"
|
|
8417
|
+
};
|
|
8418
|
+
}
|
|
8419
|
+
}
|
|
8270
8420
|
function isEventCalendarDefaultView(value) {
|
|
8271
8421
|
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
8272
8422
|
}
|
|
@@ -8276,8 +8426,7 @@ function isEventCalendarListLayout(value) {
|
|
|
8276
8426
|
//#endregion
|
|
8277
8427
|
//#region ../blocks/src/system/blocks/events/shared/calendarWindow.ts
|
|
8278
8428
|
function resolveCalendarReadProfile(content) {
|
|
8279
|
-
|
|
8280
|
-
return mode === "timetable" || mode === "week-board" ? "timetable" : "listing-card";
|
|
8429
|
+
return resolveEventCalendarReadPlan(content).readProfile;
|
|
8281
8430
|
}
|
|
8282
8431
|
/** Runtime picker sentinels and bound loader IDs must describe the same query. */
|
|
8283
8432
|
function normalizeCalendarFilterId(value) {
|
|
@@ -8366,6 +8515,75 @@ const calendarWindowPageSchema = z.discriminatedUnion("kind", [z.object({
|
|
|
8366
8515
|
nextCursor: calendarSourceCursorSchema
|
|
8367
8516
|
})]);
|
|
8368
8517
|
//#endregion
|
|
8518
|
+
//#region ../api/src/defineEndpointDefinitions.ts
|
|
8519
|
+
/**
|
|
8520
|
+
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
8521
|
+
* method, and parameter contract for the typed URL builders.
|
|
8522
|
+
*/
|
|
8523
|
+
function defineEndpointDefinitions(definitions) {
|
|
8524
|
+
return definitions;
|
|
8525
|
+
}
|
|
8526
|
+
//#endregion
|
|
8527
|
+
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
8528
|
+
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8529
|
+
subscribeNewsletter: {
|
|
8530
|
+
path: "/public/sites/{siteId}/newsletter/subscribe",
|
|
8531
|
+
method: "POST",
|
|
8532
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8533
|
+
auth: "public",
|
|
8534
|
+
responseKind: "json"
|
|
8535
|
+
},
|
|
8536
|
+
confirmNewsletter: {
|
|
8537
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
8538
|
+
method: "GET",
|
|
8539
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8540
|
+
auth: "public",
|
|
8541
|
+
responseKind: "text"
|
|
8542
|
+
},
|
|
8543
|
+
unsubscribeNewsletter: {
|
|
8544
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
8545
|
+
method: "GET",
|
|
8546
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8547
|
+
auth: "public",
|
|
8548
|
+
responseKind: "text"
|
|
8549
|
+
},
|
|
8550
|
+
unsubscribeNewsletterPost: {
|
|
8551
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
8552
|
+
method: "POST",
|
|
8553
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8554
|
+
auth: "public",
|
|
8555
|
+
responseKind: "text"
|
|
8556
|
+
},
|
|
8557
|
+
confirmNewsletterPost: {
|
|
8558
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
8559
|
+
method: "POST",
|
|
8560
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8561
|
+
auth: "public",
|
|
8562
|
+
responseKind: "text"
|
|
8563
|
+
},
|
|
8564
|
+
getNewsletterPreferences: {
|
|
8565
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
8566
|
+
method: "GET",
|
|
8567
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8568
|
+
auth: "public",
|
|
8569
|
+
responseKind: "text"
|
|
8570
|
+
},
|
|
8571
|
+
saveNewsletterPreferences: {
|
|
8572
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
8573
|
+
method: "POST",
|
|
8574
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8575
|
+
auth: "public",
|
|
8576
|
+
responseKind: "text"
|
|
8577
|
+
},
|
|
8578
|
+
getNewsletterArchive: {
|
|
8579
|
+
path: "/public/sites/{siteId}/newsletter/archive/{token}",
|
|
8580
|
+
method: "GET",
|
|
8581
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8582
|
+
auth: "public",
|
|
8583
|
+
responseKind: "text"
|
|
8584
|
+
}
|
|
8585
|
+
});
|
|
8586
|
+
//#endregion
|
|
8369
8587
|
//#region ../api/src/apiEndpointTypes.ts
|
|
8370
8588
|
function allowedDemoMutationPolicy() {
|
|
8371
8589
|
return {
|
|
@@ -8457,17 +8675,85 @@ const SDK_ENTRY_READ_ENDPOINTS = {
|
|
|
8457
8675
|
}
|
|
8458
8676
|
};
|
|
8459
8677
|
//#endregion
|
|
8460
|
-
//#region ../api/src/defineEndpointDefinitions.ts
|
|
8461
|
-
/**
|
|
8462
|
-
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
8463
|
-
* method, and parameter contract for the typed URL builders.
|
|
8464
|
-
*/
|
|
8465
|
-
function defineEndpointDefinitions(definitions) {
|
|
8466
|
-
return definitions;
|
|
8467
|
-
}
|
|
8468
|
-
//#endregion
|
|
8469
8678
|
//#region ../api/src/appointmentEndpointDefinitions.ts
|
|
8470
8679
|
const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8680
|
+
...defineEndpointDefinitions({
|
|
8681
|
+
listGroupedAppointmentServices: {
|
|
8682
|
+
path: "/sites/{siteId}/bookings/services/grouped",
|
|
8683
|
+
method: "GET",
|
|
8684
|
+
auth: "user",
|
|
8685
|
+
responseKind: "json",
|
|
8686
|
+
errors: ["server:internal_error"]
|
|
8687
|
+
},
|
|
8688
|
+
reorderAppointmentServices: {
|
|
8689
|
+
path: "/sites/{siteId}/bookings/services/order",
|
|
8690
|
+
method: "PUT",
|
|
8691
|
+
auth: "user",
|
|
8692
|
+
responseKind: "json",
|
|
8693
|
+
errors: [
|
|
8694
|
+
"validation:invalid_input",
|
|
8695
|
+
"auth:forbidden",
|
|
8696
|
+
"resource:not_found",
|
|
8697
|
+
"resource:conflict",
|
|
8698
|
+
"server:internal_error"
|
|
8699
|
+
]
|
|
8700
|
+
},
|
|
8701
|
+
listAppointmentServiceCategories: {
|
|
8702
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
8703
|
+
method: "GET",
|
|
8704
|
+
auth: "user",
|
|
8705
|
+
responseKind: "json",
|
|
8706
|
+
errors: ["server:internal_error"]
|
|
8707
|
+
},
|
|
8708
|
+
createAppointmentServiceCategory: {
|
|
8709
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
8710
|
+
method: "POST",
|
|
8711
|
+
auth: "user",
|
|
8712
|
+
responseKind: "json",
|
|
8713
|
+
errors: [
|
|
8714
|
+
"validation:invalid_input",
|
|
8715
|
+
"auth:forbidden",
|
|
8716
|
+
"resource:conflict",
|
|
8717
|
+
"server:internal_error"
|
|
8718
|
+
]
|
|
8719
|
+
},
|
|
8720
|
+
updateAppointmentServiceCategory: {
|
|
8721
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
8722
|
+
method: "PUT",
|
|
8723
|
+
auth: "user",
|
|
8724
|
+
responseKind: "json",
|
|
8725
|
+
errors: [
|
|
8726
|
+
"validation:invalid_input",
|
|
8727
|
+
"auth:forbidden",
|
|
8728
|
+
"resource:not_found",
|
|
8729
|
+
"resource:conflict",
|
|
8730
|
+
"server:internal_error"
|
|
8731
|
+
]
|
|
8732
|
+
},
|
|
8733
|
+
deleteAppointmentServiceCategory: {
|
|
8734
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
8735
|
+
method: "DELETE",
|
|
8736
|
+
auth: "user",
|
|
8737
|
+
responseKind: "json",
|
|
8738
|
+
errors: [
|
|
8739
|
+
"auth:forbidden",
|
|
8740
|
+
"resource:not_found",
|
|
8741
|
+
"server:internal_error"
|
|
8742
|
+
]
|
|
8743
|
+
},
|
|
8744
|
+
reorderAppointmentServiceCategories: {
|
|
8745
|
+
path: "/sites/{siteId}/bookings/service-categories/order",
|
|
8746
|
+
method: "PUT",
|
|
8747
|
+
auth: "user",
|
|
8748
|
+
responseKind: "json",
|
|
8749
|
+
errors: [
|
|
8750
|
+
"validation:invalid_input",
|
|
8751
|
+
"auth:forbidden",
|
|
8752
|
+
"resource:conflict",
|
|
8753
|
+
"server:internal_error"
|
|
8754
|
+
]
|
|
8755
|
+
}
|
|
8756
|
+
}),
|
|
8471
8757
|
listAppointmentResources: {
|
|
8472
8758
|
path: "/sites/{siteId}/bookings/resources",
|
|
8473
8759
|
method: "GET",
|
|
@@ -9615,39 +9901,6 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
9615
9901
|
auth: "user",
|
|
9616
9902
|
responseKind: "json",
|
|
9617
9903
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
9618
|
-
},
|
|
9619
|
-
listNewsletterSendJobs: {
|
|
9620
|
-
path: "/sites/{siteId}/newsletter/jobs",
|
|
9621
|
-
method: "GET",
|
|
9622
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9623
|
-
auth: "user",
|
|
9624
|
-
responseKind: "json"
|
|
9625
|
-
},
|
|
9626
|
-
retryNewsletterSendJob: {
|
|
9627
|
-
path: "/sites/{siteId}/newsletter/jobs/{jobId}/retry",
|
|
9628
|
-
method: "POST",
|
|
9629
|
-
errors: [
|
|
9630
|
-
"validation:invalid_input",
|
|
9631
|
-
"resource:not_found",
|
|
9632
|
-
"auth:forbidden",
|
|
9633
|
-
"server:internal_error"
|
|
9634
|
-
],
|
|
9635
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9636
|
-
auth: "user",
|
|
9637
|
-
responseKind: "json"
|
|
9638
|
-
},
|
|
9639
|
-
cancelNewsletterSendJob: {
|
|
9640
|
-
path: "/sites/{siteId}/newsletter/jobs/{jobId}/cancel",
|
|
9641
|
-
method: "POST",
|
|
9642
|
-
errors: [
|
|
9643
|
-
"validation:invalid_input",
|
|
9644
|
-
"resource:not_found",
|
|
9645
|
-
"auth:forbidden",
|
|
9646
|
-
"server:internal_error"
|
|
9647
|
-
],
|
|
9648
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9649
|
-
auth: "user",
|
|
9650
|
-
responseKind: "json"
|
|
9651
9904
|
}
|
|
9652
9905
|
});
|
|
9653
9906
|
//#endregion
|
|
@@ -10413,6 +10666,7 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10413
10666
|
}
|
|
10414
10667
|
});
|
|
10415
10668
|
({
|
|
10669
|
+
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10416
10670
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
10417
10671
|
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
10418
10672
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
@@ -12773,11 +13027,260 @@ function cardRoleFromLegacyVocabulary(value) {
|
|
|
12773
13027
|
*/
|
|
12774
13028
|
const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
|
|
12775
13029
|
//#endregion
|
|
12776
|
-
//#region ../theme-core/src/site-styles/
|
|
12777
|
-
|
|
12778
|
-
|
|
12779
|
-
|
|
12780
|
-
|
|
13030
|
+
//#region ../theme-core/src/site-styles/transitionCatalogue.ts
|
|
13031
|
+
/**
|
|
13032
|
+
* Family order for pickers. Entries below are listed family by family in this
|
|
13033
|
+
* same order, so the flat option list and the grouped families agree.
|
|
13034
|
+
*/
|
|
13035
|
+
const transitionCatalogueFamilies = [
|
|
13036
|
+
{
|
|
13037
|
+
id: "gradient",
|
|
13038
|
+
label: "Gradient"
|
|
13039
|
+
},
|
|
13040
|
+
{
|
|
13041
|
+
id: "wave",
|
|
13042
|
+
label: "Wave"
|
|
13043
|
+
},
|
|
13044
|
+
{
|
|
13045
|
+
id: "angle",
|
|
13046
|
+
label: "Angle"
|
|
13047
|
+
}
|
|
13048
|
+
];
|
|
13049
|
+
const mediumHeight = "6rem + 2px";
|
|
13050
|
+
const compactHeight = "4.5rem + 2px";
|
|
13051
|
+
const largeHeight = "7rem + 2px";
|
|
13052
|
+
/**
|
|
13053
|
+
* The single source of transition vocabulary. Order is significant: it is the
|
|
13054
|
+
* order of `boundaryOptions` (after `none`) and of each family's variants,
|
|
13055
|
+
* which persisted pins, page-flow presets and the editor picker all rely on.
|
|
13056
|
+
*
|
|
13057
|
+
* Shapes match what `generateLayoutCss` draws today. Structured
|
|
13058
|
+
* amplitude/frequency treatments (issue 826) extend this list later.
|
|
13059
|
+
*/
|
|
13060
|
+
const transitionCatalogueEntries = defineExactCatalog()([
|
|
13061
|
+
{
|
|
13062
|
+
intent: "soft-fade-short",
|
|
13063
|
+
optionId: asBoundaryOptionId("break:soft"),
|
|
13064
|
+
family: "gradient",
|
|
13065
|
+
variantId: "soft",
|
|
13066
|
+
label: "Soft",
|
|
13067
|
+
variantLabel: "Soft",
|
|
13068
|
+
treatment: {
|
|
13069
|
+
kind: "soft-fade",
|
|
13070
|
+
height: "medium",
|
|
13071
|
+
curve: "soft"
|
|
13072
|
+
},
|
|
13073
|
+
size: "medium",
|
|
13074
|
+
heightExpression: mediumHeight,
|
|
13075
|
+
shape: { kind: "fade" }
|
|
13076
|
+
},
|
|
13077
|
+
{
|
|
13078
|
+
intent: "soft-fade-long",
|
|
13079
|
+
optionId: asBoundaryOptionId("break:spacious"),
|
|
13080
|
+
family: "gradient",
|
|
13081
|
+
variantId: "spacious",
|
|
13082
|
+
label: "Spacious",
|
|
13083
|
+
variantLabel: "Spacious",
|
|
13084
|
+
treatment: {
|
|
13085
|
+
kind: "soft-fade",
|
|
13086
|
+
height: "large",
|
|
13087
|
+
curve: "spacious"
|
|
13088
|
+
},
|
|
13089
|
+
size: "spacious",
|
|
13090
|
+
heightExpression: "10rem",
|
|
13091
|
+
shape: { kind: "fade" }
|
|
13092
|
+
},
|
|
13093
|
+
{
|
|
13094
|
+
intent: "soft-fade-expansive",
|
|
13095
|
+
optionId: asBoundaryOptionId("break:expansive"),
|
|
13096
|
+
family: "gradient",
|
|
13097
|
+
variantId: "expansive",
|
|
13098
|
+
label: "Expansive",
|
|
13099
|
+
variantLabel: "Expansive",
|
|
13100
|
+
treatment: {
|
|
13101
|
+
kind: "soft-fade",
|
|
13102
|
+
height: "expansive",
|
|
13103
|
+
curve: "expansive"
|
|
13104
|
+
},
|
|
13105
|
+
size: "expansive",
|
|
13106
|
+
heightExpression: "14rem",
|
|
13107
|
+
shape: { kind: "fade" }
|
|
13108
|
+
},
|
|
13109
|
+
{
|
|
13110
|
+
intent: "wave-edge-balanced",
|
|
13111
|
+
optionId: asBoundaryOptionId("break:wave-balanced"),
|
|
13112
|
+
family: "wave",
|
|
13113
|
+
variantId: "balanced",
|
|
13114
|
+
label: "Balanced wave",
|
|
13115
|
+
variantLabel: "Balanced",
|
|
13116
|
+
treatment: {
|
|
13117
|
+
kind: "wave-edge",
|
|
13118
|
+
height: "medium",
|
|
13119
|
+
amplitude: "balanced",
|
|
13120
|
+
rhythm: "double",
|
|
13121
|
+
symmetry: "symmetrical"
|
|
13122
|
+
},
|
|
13123
|
+
size: "medium",
|
|
13124
|
+
heightExpression: mediumHeight,
|
|
13125
|
+
shape: {
|
|
13126
|
+
kind: "wave",
|
|
13127
|
+
mask: "balanced"
|
|
13128
|
+
}
|
|
13129
|
+
},
|
|
13130
|
+
{
|
|
13131
|
+
intent: "wave-edge",
|
|
13132
|
+
optionId: asBoundaryOptionId("break:wave"),
|
|
13133
|
+
family: "wave",
|
|
13134
|
+
variantId: "classic",
|
|
13135
|
+
label: "Classic wave",
|
|
13136
|
+
variantLabel: "Classic",
|
|
13137
|
+
treatment: {
|
|
13138
|
+
kind: "wave-edge",
|
|
13139
|
+
height: "medium",
|
|
13140
|
+
amplitude: "balanced",
|
|
13141
|
+
rhythm: "double",
|
|
13142
|
+
symmetry: "asymmetrical"
|
|
13143
|
+
},
|
|
13144
|
+
size: "medium",
|
|
13145
|
+
heightExpression: mediumHeight,
|
|
13146
|
+
shape: {
|
|
13147
|
+
kind: "wave",
|
|
13148
|
+
mask: "classic"
|
|
13149
|
+
}
|
|
13150
|
+
},
|
|
13151
|
+
{
|
|
13152
|
+
intent: "wave-edge-gentle",
|
|
13153
|
+
optionId: asBoundaryOptionId("break:wave-gentle"),
|
|
13154
|
+
family: "wave",
|
|
13155
|
+
variantId: "gentle",
|
|
13156
|
+
label: "Gentle wave",
|
|
13157
|
+
variantLabel: "Gentle",
|
|
13158
|
+
treatment: {
|
|
13159
|
+
kind: "wave-edge",
|
|
13160
|
+
height: "compact",
|
|
13161
|
+
amplitude: "subtle",
|
|
13162
|
+
rhythm: "single",
|
|
13163
|
+
symmetry: "symmetrical"
|
|
13164
|
+
},
|
|
13165
|
+
size: "compact",
|
|
13166
|
+
heightExpression: compactHeight,
|
|
13167
|
+
shape: {
|
|
13168
|
+
kind: "wave",
|
|
13169
|
+
mask: "gentle"
|
|
13170
|
+
}
|
|
13171
|
+
},
|
|
13172
|
+
{
|
|
13173
|
+
intent: "wave-edge-bold",
|
|
13174
|
+
optionId: asBoundaryOptionId("break:wave-bold"),
|
|
13175
|
+
family: "wave",
|
|
13176
|
+
variantId: "bold",
|
|
13177
|
+
label: "Bold wave",
|
|
13178
|
+
variantLabel: "Bold",
|
|
13179
|
+
treatment: {
|
|
13180
|
+
kind: "wave-edge",
|
|
13181
|
+
height: "large",
|
|
13182
|
+
amplitude: "bold",
|
|
13183
|
+
rhythm: "double",
|
|
13184
|
+
symmetry: "symmetrical"
|
|
13185
|
+
},
|
|
13186
|
+
size: "large",
|
|
13187
|
+
heightExpression: largeHeight,
|
|
13188
|
+
shape: {
|
|
13189
|
+
kind: "wave",
|
|
13190
|
+
mask: "bold"
|
|
13191
|
+
}
|
|
13192
|
+
},
|
|
13193
|
+
{
|
|
13194
|
+
intent: "wave-edge-drift",
|
|
13195
|
+
optionId: asBoundaryOptionId("break:wave-drift"),
|
|
13196
|
+
family: "wave",
|
|
13197
|
+
variantId: "drift",
|
|
13198
|
+
label: "Drift wave",
|
|
13199
|
+
variantLabel: "Drift",
|
|
13200
|
+
treatment: {
|
|
13201
|
+
kind: "wave-edge",
|
|
13202
|
+
height: "medium",
|
|
13203
|
+
amplitude: "balanced",
|
|
13204
|
+
rhythm: "double",
|
|
13205
|
+
symmetry: "drift"
|
|
13206
|
+
},
|
|
13207
|
+
size: "medium",
|
|
13208
|
+
heightExpression: mediumHeight,
|
|
13209
|
+
shape: {
|
|
13210
|
+
kind: "wave",
|
|
13211
|
+
mask: "drift"
|
|
13212
|
+
}
|
|
13213
|
+
},
|
|
13214
|
+
{
|
|
13215
|
+
intent: "angle-edge-subtle",
|
|
13216
|
+
optionId: asBoundaryOptionId("break:angle-subtle"),
|
|
13217
|
+
family: "angle",
|
|
13218
|
+
variantId: "subtle",
|
|
13219
|
+
label: "Subtle angle",
|
|
13220
|
+
variantLabel: "Subtle",
|
|
13221
|
+
treatment: {
|
|
13222
|
+
kind: "angle-edge",
|
|
13223
|
+
height: "compact",
|
|
13224
|
+
slope: "subtle",
|
|
13225
|
+
direction: "forward"
|
|
13226
|
+
},
|
|
13227
|
+
size: "compact",
|
|
13228
|
+
heightExpression: compactHeight,
|
|
13229
|
+
shape: {
|
|
13230
|
+
kind: "angle",
|
|
13231
|
+
polygon: {
|
|
13232
|
+
startTopPercent: 34,
|
|
13233
|
+
endTopPercent: 18
|
|
13234
|
+
}
|
|
13235
|
+
}
|
|
13236
|
+
},
|
|
13237
|
+
{
|
|
13238
|
+
intent: "angle-edge",
|
|
13239
|
+
optionId: asBoundaryOptionId("break:angle-balanced"),
|
|
13240
|
+
family: "angle",
|
|
13241
|
+
variantId: "balanced",
|
|
13242
|
+
label: "Balanced angle",
|
|
13243
|
+
variantLabel: "Balanced",
|
|
13244
|
+
treatment: {
|
|
13245
|
+
kind: "angle-edge",
|
|
13246
|
+
height: "medium",
|
|
13247
|
+
slope: "balanced",
|
|
13248
|
+
direction: "forward"
|
|
13249
|
+
},
|
|
13250
|
+
size: "medium",
|
|
13251
|
+
heightExpression: mediumHeight,
|
|
13252
|
+
shape: {
|
|
13253
|
+
kind: "angle",
|
|
13254
|
+
polygon: {
|
|
13255
|
+
startTopPercent: 42,
|
|
13256
|
+
endTopPercent: 8
|
|
13257
|
+
}
|
|
13258
|
+
}
|
|
13259
|
+
},
|
|
13260
|
+
{
|
|
13261
|
+
intent: "angle-edge-steep",
|
|
13262
|
+
optionId: asBoundaryOptionId("break:angle-steep"),
|
|
13263
|
+
family: "angle",
|
|
13264
|
+
variantId: "steep",
|
|
13265
|
+
label: "Steep angle",
|
|
13266
|
+
variantLabel: "Steep",
|
|
13267
|
+
treatment: {
|
|
13268
|
+
kind: "angle-edge",
|
|
13269
|
+
height: "large",
|
|
13270
|
+
slope: "steep",
|
|
13271
|
+
direction: "forward"
|
|
13272
|
+
},
|
|
13273
|
+
size: "large",
|
|
13274
|
+
heightExpression: largeHeight,
|
|
13275
|
+
shape: {
|
|
13276
|
+
kind: "angle",
|
|
13277
|
+
polygon: {
|
|
13278
|
+
startTopPercent: 54,
|
|
13279
|
+
endTopPercent: 0
|
|
13280
|
+
}
|
|
13281
|
+
}
|
|
13282
|
+
}
|
|
13283
|
+
]);
|
|
12781
13284
|
//#endregion
|
|
12782
13285
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
12783
13286
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
@@ -12788,42 +13291,106 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
|
12788
13291
|
reserveCss: `calc((${heightExpression}) / 2)`
|
|
12789
13292
|
};
|
|
12790
13293
|
}
|
|
12791
|
-
|
|
13294
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
|
|
13295
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
|
|
13296
|
+
/**
|
|
13297
|
+
* The catalogue's compile-time coverage check guarantees an entry per
|
|
13298
|
+
* decorative intent, so a miss here is a broken invariant, not bad input.
|
|
13299
|
+
*/
|
|
13300
|
+
function requireCatalogueValue(values, intent) {
|
|
13301
|
+
const value = values.get(intent);
|
|
13302
|
+
if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
|
|
13303
|
+
return value;
|
|
13304
|
+
}
|
|
12792
13305
|
const noneBoundaryOption = {
|
|
12793
13306
|
id: asBoundaryOptionId("break:none"),
|
|
12794
13307
|
label: "None",
|
|
12795
13308
|
transitionAfter: "none",
|
|
12796
13309
|
treatment: { kind: "none" }
|
|
12797
13310
|
};
|
|
12798
|
-
const
|
|
12799
|
-
id:
|
|
12800
|
-
label:
|
|
12801
|
-
transitionAfter:
|
|
12802
|
-
treatment:
|
|
12803
|
-
|
|
12804
|
-
|
|
12805
|
-
|
|
12806
|
-
|
|
13311
|
+
const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
|
|
13312
|
+
id: entry.optionId,
|
|
13313
|
+
label: entry.label,
|
|
13314
|
+
transitionAfter: entry.intent,
|
|
13315
|
+
treatment: entry.treatment
|
|
13316
|
+
}]));
|
|
13317
|
+
function boundaryOptionForTransitionIntent(intent) {
|
|
13318
|
+
return requireCatalogueValue(boundaryOptionByIntent, intent);
|
|
13319
|
+
}
|
|
13320
|
+
const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
|
|
13321
|
+
const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
|
|
13322
|
+
boundaryOptionForTransitionIntent("soft-fade-expansive");
|
|
13323
|
+
boundaryOptionForTransitionIntent("wave-edge");
|
|
13324
|
+
boundaryOptionForTransitionIntent("wave-edge-balanced");
|
|
13325
|
+
boundaryOptionForTransitionIntent("wave-edge-gentle");
|
|
13326
|
+
boundaryOptionForTransitionIntent("wave-edge-bold");
|
|
13327
|
+
boundaryOptionForTransitionIntent("wave-edge-drift");
|
|
13328
|
+
boundaryOptionForTransitionIntent("angle-edge-subtle");
|
|
13329
|
+
boundaryOptionForTransitionIntent("angle-edge");
|
|
13330
|
+
boundaryOptionForTransitionIntent("angle-edge-steep");
|
|
13331
|
+
/**
|
|
13332
|
+
* Must remain non-empty; downstream code indexes `[0]` as the documented default.
|
|
13333
|
+
*/
|
|
13334
|
+
const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
|
|
13335
|
+
const noneTransitionVariant = {
|
|
13336
|
+
familyId: "none",
|
|
13337
|
+
variantId: "none",
|
|
13338
|
+
label: "None",
|
|
13339
|
+
boundaryOption: noneBoundaryOption
|
|
12807
13340
|
};
|
|
12808
|
-
|
|
12809
|
-
|
|
12810
|
-
|
|
12811
|
-
|
|
12812
|
-
|
|
12813
|
-
|
|
12814
|
-
|
|
12815
|
-
|
|
12816
|
-
|
|
13341
|
+
function transitionVariantForEntry(entry) {
|
|
13342
|
+
return {
|
|
13343
|
+
familyId: entry.family,
|
|
13344
|
+
variantId: entry.variantId,
|
|
13345
|
+
label: entry.variantLabel,
|
|
13346
|
+
boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
|
|
13347
|
+
};
|
|
13348
|
+
}
|
|
13349
|
+
const sectionTransitionFamilies = [{
|
|
13350
|
+
id: "none",
|
|
13351
|
+
label: "None",
|
|
13352
|
+
variants: [noneTransitionVariant]
|
|
13353
|
+
}, ...transitionCatalogueFamilies.map((family) => ({
|
|
13354
|
+
id: family.id,
|
|
13355
|
+
label: family.label,
|
|
13356
|
+
variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
|
|
13357
|
+
}))];
|
|
13358
|
+
new Map(boundaryOptions.map((option) => [option.id, option]));
|
|
13359
|
+
new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
|
|
13360
|
+
new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
|
|
13361
|
+
new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
|
|
13362
|
+
function stableTreatmentKey(treatment) {
|
|
13363
|
+
switch (treatment.kind) {
|
|
13364
|
+
case "none": return "none";
|
|
13365
|
+
case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
|
|
13366
|
+
case "wave-edge": return [
|
|
13367
|
+
treatment.kind,
|
|
13368
|
+
treatment.height,
|
|
13369
|
+
treatment.amplitude,
|
|
13370
|
+
treatment.rhythm,
|
|
13371
|
+
treatment.symmetry
|
|
13372
|
+
].join(":");
|
|
13373
|
+
case "angle-edge": return [
|
|
13374
|
+
treatment.kind,
|
|
13375
|
+
treatment.height,
|
|
13376
|
+
treatment.slope,
|
|
13377
|
+
treatment.direction
|
|
13378
|
+
].join(":");
|
|
13379
|
+
case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
|
|
13380
|
+
}
|
|
13381
|
+
}
|
|
13382
|
+
requireThemeColorToken$1("background");
|
|
13383
|
+
function requireThemeColorToken$1(value) {
|
|
13384
|
+
const token = parseThemeColorToken(value);
|
|
13385
|
+
if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
|
|
13386
|
+
return token;
|
|
13387
|
+
}
|
|
13388
|
+
//#endregion
|
|
13389
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
13390
|
+
const defaultHeaderBrandPreferences = {
|
|
13391
|
+
brandDisplay: "auto",
|
|
13392
|
+
logoSize: "auto"
|
|
12817
13393
|
};
|
|
12818
|
-
asBoundaryOptionId("break:expansive");
|
|
12819
|
-
asBoundaryOptionId("break:wave");
|
|
12820
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
12821
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
12822
|
-
asBoundaryOptionId("break:wave-bold");
|
|
12823
|
-
asBoundaryOptionId("break:wave-drift");
|
|
12824
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
12825
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
12826
|
-
asBoundaryOptionId("break:angle-steep");
|
|
12827
13394
|
asBoundaryOptionId("break:unknown");
|
|
12828
13395
|
const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
|
|
12829
13396
|
kind: z.literal("user-pinned"),
|
|
@@ -12950,14 +13517,11 @@ function validateUniquePageDesignPins(intent, ctx) {
|
|
|
12950
13517
|
label: "block Look pin"
|
|
12951
13518
|
});
|
|
12952
13519
|
addDuplicateStringIssues(ctx, {
|
|
12953
|
-
values: intent.boundaryPins.map((pin) =>
|
|
13520
|
+
values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
|
|
12954
13521
|
path: ["boundaryPins"],
|
|
12955
13522
|
label: "boundary pin"
|
|
12956
13523
|
});
|
|
12957
13524
|
}
|
|
12958
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
12959
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
12960
|
-
}
|
|
12961
13525
|
//#endregion
|
|
12962
13526
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
12963
13527
|
/**
|
|
@@ -14585,6 +15149,13 @@ z.object({
|
|
|
14585
15149
|
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
14586
15150
|
authority: styleAuthoritySchema
|
|
14587
15151
|
}).strict();
|
|
15152
|
+
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
15153
|
+
asPageFlowPresetId("generated-default");
|
|
15154
|
+
asSiteStyleId("site-style:south-west-twerk-school");
|
|
15155
|
+
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
15156
|
+
asLayoutVariantKey("classic");
|
|
15157
|
+
asLayoutVariantKey("micro");
|
|
15158
|
+
asBoundaryOptionId("break:wave");
|
|
14588
15159
|
//#endregion
|
|
14589
15160
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
14590
15161
|
function defineSectionForegroundRuntimeTokens(input) {
|
|
@@ -14608,7 +15179,7 @@ function defineComponentRuntimeRules(rules) {
|
|
|
14608
15179
|
}
|
|
14609
15180
|
/**
|
|
14610
15181
|
* Default design rules translate semantic page-level choices into the current
|
|
14611
|
-
* runtime's section background
|
|
15182
|
+
* runtime's section background vocabulary.
|
|
14612
15183
|
*/
|
|
14613
15184
|
const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
14614
15185
|
sectionSurfaces: {
|
|
@@ -14643,8 +15214,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
14643
15214
|
color: "surface",
|
|
14644
15215
|
opacity: .88
|
|
14645
15216
|
}
|
|
14646
|
-
}
|
|
14647
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
15217
|
+
}
|
|
14648
15218
|
});
|
|
14649
15219
|
/**
|
|
14650
15220
|
* Default component rules translate frame and item-surface semantics into the
|
|
@@ -16379,19 +16949,11 @@ const curatedSiteStyles = [
|
|
|
16379
16949
|
})
|
|
16380
16950
|
];
|
|
16381
16951
|
new Map(curatedSiteStyles.map((style) => [style.id, style]));
|
|
16382
|
-
asPageFlowPresetId("generated-default");
|
|
16383
|
-
asSiteStyleId("site-style:south-west-twerk-school");
|
|
16384
|
-
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
16385
|
-
asLayoutVariantKey("classic");
|
|
16386
|
-
asLayoutVariantKey("micro");
|
|
16387
|
-
asBoundaryOptionId("break:wave");
|
|
16388
|
-
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
16389
16952
|
//#endregion
|
|
16390
16953
|
//#region ../theme-core/src/site-styles/resolver.ts
|
|
16391
16954
|
const blockDesignFallback = {
|
|
16392
16955
|
sectionSurface: "base",
|
|
16393
16956
|
contentFrame: plainFrame,
|
|
16394
|
-
transitionAfter: "none",
|
|
16395
16957
|
sectionHeight: "default",
|
|
16396
16958
|
heroLegibility: "none",
|
|
16397
16959
|
imageSurfaceTreatment: { kind: "none" },
|
|
@@ -16402,7 +16964,7 @@ const blockDesignFallback = {
|
|
|
16402
16964
|
accordionIconTreatment: null,
|
|
16403
16965
|
composition: null
|
|
16404
16966
|
};
|
|
16405
|
-
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.
|
|
16967
|
+
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
16406
16968
|
//#endregion
|
|
16407
16969
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
16408
16970
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
@@ -17005,7 +17567,8 @@ const siteOptionSources = [
|
|
|
17005
17567
|
"eventCategories",
|
|
17006
17568
|
"eventSeries",
|
|
17007
17569
|
"venues",
|
|
17008
|
-
"staffMembers"
|
|
17570
|
+
"staffMembers",
|
|
17571
|
+
"appointmentServiceCategories"
|
|
17009
17572
|
];
|
|
17010
17573
|
const mediaDeliverySchema = z.object({
|
|
17011
17574
|
sizes: z.string().optional(),
|
|
@@ -19254,9 +19817,7 @@ function navRow(opts) {
|
|
|
19254
19817
|
rel: { $bind: { from: `${childItemName}.rel` } },
|
|
19255
19818
|
"data-active": { $bind: { from: `${childItemName}.active` } }
|
|
19256
19819
|
}, [text({ as: "span" }, bind(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
|
|
19257
|
-
const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [
|
|
19258
|
-
type: "button",
|
|
19259
|
-
variantId: "",
|
|
19820
|
+
const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [el("headerControl", {
|
|
19260
19821
|
className: prependClassName("nav-dropdown-trigger", linkClassName),
|
|
19261
19822
|
"aria-haspopup": "menu",
|
|
19262
19823
|
"aria-expanded": "false",
|
|
@@ -19324,9 +19885,7 @@ function navColumn(opts) {
|
|
|
19324
19885
|
const dropdown = el("div", {
|
|
19325
19886
|
className: "nav-mobile-dropdown",
|
|
19326
19887
|
"data-nav-mobile-dropdown": "true"
|
|
19327
|
-
}, [
|
|
19328
|
-
type: "button",
|
|
19329
|
-
variantId: "",
|
|
19888
|
+
}, [el("headerControl", {
|
|
19330
19889
|
className: triggerClassName,
|
|
19331
19890
|
"aria-expanded": "false",
|
|
19332
19891
|
"aria-controls": childrenId,
|
|
@@ -25642,6 +26201,49 @@ const layoutTransforms = [
|
|
|
25642
26201
|
footerLogoMediaClassTransform,
|
|
25643
26202
|
footerLogoTextVisibleTransform
|
|
25644
26203
|
];
|
|
26204
|
+
//#endregion
|
|
26205
|
+
//#region ../blocks/src/system/transforms/registry/chromeLogo.ts
|
|
26206
|
+
const chromeLogoSchema = z.object({ surface: z.enum([
|
|
26207
|
+
"header-root",
|
|
26208
|
+
"header-mobile-panel",
|
|
26209
|
+
"footer-root"
|
|
26210
|
+
]) });
|
|
26211
|
+
/** The brand foreground shares the logo's surface; navigation may own a separate capsule. */
|
|
26212
|
+
function chromeSurfaceTextToken(surface, theme, palette) {
|
|
26213
|
+
switch (surface) {
|
|
26214
|
+
case "header-root": {
|
|
26215
|
+
const header = theme.header;
|
|
26216
|
+
const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
|
|
26217
|
+
return foreground.kind === "known" ? foreground.roles.text : resolveHeaderLeafTextColor(header);
|
|
26218
|
+
}
|
|
26219
|
+
case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
|
|
26220
|
+
case "footer-root": {
|
|
26221
|
+
const foreground = resolveFooterRootForeground(theme.footer, palette);
|
|
26222
|
+
return foreground.kind === "known" ? foreground.roles.text : void 0;
|
|
26223
|
+
}
|
|
26224
|
+
}
|
|
26225
|
+
}
|
|
26226
|
+
function readChromeTheme(viewModel) {
|
|
26227
|
+
return asPartialObject(asPartialObject(viewModel?.["$root"])?.theme) ?? {};
|
|
26228
|
+
}
|
|
26229
|
+
function resolveChromeSurfaceTone(surface, context) {
|
|
26230
|
+
return surfaceToneFromForegroundToken(context.theme.palette, chromeSurfaceTextToken(surface, readChromeTheme(context.viewModel), context.theme.palette));
|
|
26231
|
+
}
|
|
26232
|
+
const chromeLogoTransforms = [{
|
|
26233
|
+
id: "layout.chromeLogo",
|
|
26234
|
+
kind: "formatter",
|
|
26235
|
+
summary: "Select the light- or dark-background site logo for a header or footer surface",
|
|
26236
|
+
schema: chromeLogoSchema,
|
|
26237
|
+
run: (value, options, context) => {
|
|
26238
|
+
const content = asPartialObject(value);
|
|
26239
|
+
const variants = asPartialObject(content?.logoVariants);
|
|
26240
|
+
if (!variants) return content?.logo ?? null;
|
|
26241
|
+
return selectLogoVariant(resolveChromeSurfaceTone(options.surface, context), {
|
|
26242
|
+
forLightBackgrounds: variants.forLightBackgrounds ?? null,
|
|
26243
|
+
forDarkBackgrounds: variants.forDarkBackgrounds ?? null
|
|
26244
|
+
});
|
|
26245
|
+
}
|
|
26246
|
+
}];
|
|
25645
26247
|
const headerRuntimeTransforms = [{
|
|
25646
26248
|
id: "layout.headerRuntimeContract",
|
|
25647
26249
|
kind: "formatter",
|
|
@@ -25841,46 +26443,42 @@ const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
|
25841
26443
|
equals
|
|
25842
26444
|
}
|
|
25843
26445
|
});
|
|
25844
|
-
|
|
26446
|
+
/** Draw whichever site logo suits the surface this row sits on. */
|
|
26447
|
+
const bindChromeLogo = (surface) => bind("content", { transforms: [{
|
|
26448
|
+
id: "layout.chromeLogo",
|
|
26449
|
+
options: { surface }
|
|
26450
|
+
}] });
|
|
26451
|
+
/**
|
|
26452
|
+
* The brand link. The logo is chosen per surface because the open mobile menu
|
|
26453
|
+
* paints its own background, which may be the opposite tone to the header.
|
|
26454
|
+
*/
|
|
26455
|
+
const createLogoRow = (surface) => link({
|
|
25845
26456
|
href: "/",
|
|
25846
26457
|
className: bindProp("$root.theme.header.logo", {
|
|
25847
26458
|
transforms: pipe(tx("layout.headerLogoClass")),
|
|
25848
26459
|
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"
|
|
25849
26460
|
})
|
|
25850
|
-
}, [
|
|
25851
|
-
|
|
25852
|
-
|
|
25853
|
-
|
|
25854
|
-
|
|
25855
|
-
|
|
25856
|
-
|
|
25857
|
-
|
|
25858
|
-
}) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
25859
|
-
text({
|
|
25860
|
-
as: "strong",
|
|
25861
|
-
className: "header-logo-text rb-truncate"
|
|
25862
|
-
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
25863
|
-
]);
|
|
26461
|
+
}, [media({ className: bindProp("$root.theme.header.logo", {
|
|
26462
|
+
transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
|
|
26463
|
+
fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
|
|
26464
|
+
}) }, when("content.logo"), bindChromeLogo(surface)), text({
|
|
26465
|
+
as: "strong",
|
|
26466
|
+
className: "header-logo-text rb-truncate"
|
|
26467
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
|
|
26468
|
+
const logoRow = createLogoRow("header-root");
|
|
25864
26469
|
const centeredLogoRow = link({
|
|
25865
26470
|
href: "/",
|
|
25866
26471
|
className: bindProp("$root.theme.header.logo", {
|
|
25867
26472
|
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" })),
|
|
25868
26473
|
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"
|
|
25869
26474
|
})
|
|
25870
|
-
}, [
|
|
25871
|
-
|
|
25872
|
-
|
|
25873
|
-
|
|
25874
|
-
|
|
25875
|
-
|
|
25876
|
-
|
|
25877
|
-
fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
|
|
25878
|
-
}) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
25879
|
-
text({
|
|
25880
|
-
as: "strong",
|
|
25881
|
-
className: "header-logo-text"
|
|
25882
|
-
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
25883
|
-
]);
|
|
26475
|
+
}, [media({ className: bindProp("$root.theme.header.logo", {
|
|
26476
|
+
transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
|
|
26477
|
+
fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
|
|
26478
|
+
}) }, when("content.logo"), bindChromeLogo("header-root")), text({
|
|
26479
|
+
as: "strong",
|
|
26480
|
+
className: "header-logo-text"
|
|
26481
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
|
|
25884
26482
|
const createNavRow = (className, align = "end") => navRow({
|
|
25885
26483
|
className: `${className} header-nav-row`,
|
|
25886
26484
|
align,
|
|
@@ -25920,10 +26518,8 @@ const mobileToggleIcon = stack({
|
|
|
25920
26518
|
}
|
|
25921
26519
|
]);
|
|
25922
26520
|
const mobileToggleButton = {
|
|
25923
|
-
type: "
|
|
26521
|
+
type: "headerControl",
|
|
25924
26522
|
props: {
|
|
25925
|
-
type: "button",
|
|
25926
|
-
variantId: "",
|
|
25927
26523
|
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`,
|
|
25928
26524
|
"aria-label": "Open menu",
|
|
25929
26525
|
"aria-expanded": "false",
|
|
@@ -25933,10 +26529,8 @@ const mobileToggleButton = {
|
|
|
25933
26529
|
children: [mobileToggleIcon]
|
|
25934
26530
|
};
|
|
25935
26531
|
const mobileOverlayToggleButton = {
|
|
25936
|
-
type: "
|
|
26532
|
+
type: "headerControl",
|
|
25937
26533
|
props: {
|
|
25938
|
-
type: "button",
|
|
25939
|
-
variantId: "",
|
|
25940
26534
|
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",
|
|
25941
26535
|
"aria-label": "Open menu",
|
|
25942
26536
|
"aria-expanded": "false",
|
|
@@ -25960,7 +26554,7 @@ const mobileOverlayHeader = inline({
|
|
|
25960
26554
|
align: "center",
|
|
25961
26555
|
justify: "between",
|
|
25962
26556
|
style: borderColorStyle("border")
|
|
25963
|
-
}, [
|
|
26557
|
+
}, [createLogoRow("header-mobile-panel"), mobileOverlayToggleButton]);
|
|
25964
26558
|
const mobileOverlayBody = stack({
|
|
25965
26559
|
className: "rb-flex-1 rb-px-6 rb-py-6",
|
|
25966
26560
|
gap: "md",
|
|
@@ -26147,7 +26741,10 @@ const brandLogo = link({
|
|
|
26147
26741
|
options: { base: "rb-h-10 rb-w-auto" }
|
|
26148
26742
|
}],
|
|
26149
26743
|
fallback: "rb-h-10 rb-w-auto"
|
|
26150
|
-
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content
|
|
26744
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
|
|
26745
|
+
id: "layout.chromeLogo",
|
|
26746
|
+
options: { surface: "footer-root" }
|
|
26747
|
+
}] })), text({
|
|
26151
26748
|
as: "strong",
|
|
26152
26749
|
className: "footer-logo-text rb-nav-text"
|
|
26153
26750
|
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
@@ -27840,6 +28437,15 @@ const appointmentServicesBlockDefinition = {
|
|
|
27840
28437
|
required: false,
|
|
27841
28438
|
ui: { intent: "content" }
|
|
27842
28439
|
},
|
|
28440
|
+
createSiteOptionSelectField({
|
|
28441
|
+
id: "categoryId",
|
|
28442
|
+
label: "Category",
|
|
28443
|
+
description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
|
|
28444
|
+
required: false,
|
|
28445
|
+
multiple: false,
|
|
28446
|
+
optionSource: "appointmentServiceCategories",
|
|
28447
|
+
ui: { intent: "content" }
|
|
28448
|
+
}),
|
|
27843
28449
|
sectionStylesField({
|
|
27844
28450
|
id: "_sectionStyles",
|
|
27845
28451
|
label: "Section styles",
|
|
@@ -27874,6 +28480,7 @@ const appointmentServicesBlockDefinition = {
|
|
|
27874
28480
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
27875
28481
|
el("appointment-services", {
|
|
27876
28482
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
28483
|
+
categoryId: { $bind: { from: "content.categoryId" } },
|
|
27877
28484
|
services: { $bind: { from: "data.services" } },
|
|
27878
28485
|
pathname: { $bind: { from: "$root.pathname" } },
|
|
27879
28486
|
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
@@ -28348,6 +28955,12 @@ const occurrenceContextSchema = z.object({
|
|
|
28348
28955
|
capacityOverride: z.number().nullable().optional(),
|
|
28349
28956
|
overrides: z.record(z.string(), z.unknown()).nullable().optional()
|
|
28350
28957
|
}).nullable();
|
|
28958
|
+
//#endregion
|
|
28959
|
+
//#region ../blocks/src/system/runtime/api/readAuthority.ts
|
|
28960
|
+
const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("published") }).strict(), z.object({
|
|
28961
|
+
kind: z.literal("preview"),
|
|
28962
|
+
token: z.string().min(1)
|
|
28963
|
+
}).strict()]);
|
|
28351
28964
|
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z.object({
|
|
28352
28965
|
kind: z.literal("unsupported"),
|
|
28353
28966
|
reason: z.enum([
|
|
@@ -28610,6 +29223,7 @@ const eventRegistrationSourceSchema = z.object({
|
|
|
28610
29223
|
apiBaseUrl: z.string().optional(),
|
|
28611
29224
|
portalToken: z.string().nullable().optional(),
|
|
28612
29225
|
previewToken: z.string().nullable().optional(),
|
|
29226
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
28613
29227
|
...eventRegistrationHydrationSchemaShape,
|
|
28614
29228
|
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
28615
29229
|
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
@@ -28647,6 +29261,7 @@ z.object({
|
|
|
28647
29261
|
apiBaseUrl: z.string().optional(),
|
|
28648
29262
|
portalToken: z.string().nullable().optional(),
|
|
28649
29263
|
previewToken: z.string().nullable().optional(),
|
|
29264
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
28650
29265
|
stage: previewStageSchema.optional()
|
|
28651
29266
|
});
|
|
28652
29267
|
function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
|
|
@@ -28905,6 +29520,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
28905
29520
|
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
28906
29521
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
28907
29522
|
eventRegistration(withApiBindings({
|
|
29523
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
28908
29524
|
occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
|
|
28909
29525
|
subject: { $bind: { from: "$root.subject" } },
|
|
28910
29526
|
portalToken: { $bind: {
|
|
@@ -29556,6 +30172,7 @@ const eventCollectionSourceSchemaShape = {
|
|
|
29556
30172
|
events: z.array(publicEventSchema).nullable().optional(),
|
|
29557
30173
|
siteId: z.string(),
|
|
29558
30174
|
apiBaseUrl: z.string().optional(),
|
|
30175
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
29559
30176
|
stage: previewStageSchema.optional(),
|
|
29560
30177
|
listLayout: eventLayoutSchema.optional(),
|
|
29561
30178
|
listColumns: columnOptionSchema.optional(),
|
|
@@ -29608,7 +30225,6 @@ const eventCollectionDisplaySchemaShape = {
|
|
|
29608
30225
|
const eventCollectionHydrationSchema = z.object({
|
|
29609
30226
|
siteId: z.string(),
|
|
29610
30227
|
calendarWindow: calendarWindowPageSchema.optional(),
|
|
29611
|
-
stage: previewStageSchema.optional(),
|
|
29612
30228
|
prefetchedEvents: z.boolean(),
|
|
29613
30229
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
29614
30230
|
filterEventPresets: z.string().nullable(),
|
|
@@ -29683,7 +30299,6 @@ function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date())
|
|
|
29683
30299
|
return {
|
|
29684
30300
|
calendarWindow: source.calendarWindow ?? void 0,
|
|
29685
30301
|
siteId: source.siteId,
|
|
29686
|
-
stage: source.stage,
|
|
29687
30302
|
prefetchedEvents: source.events != null,
|
|
29688
30303
|
eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
|
|
29689
30304
|
filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
@@ -29703,6 +30318,7 @@ const eventListingSourceSchema = z.object({
|
|
|
29703
30318
|
events: z.array(publicEventSchema).nullable().optional(),
|
|
29704
30319
|
siteId: z.string(),
|
|
29705
30320
|
apiBaseUrl: z.string().optional(),
|
|
30321
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
29706
30322
|
stage: previewStageSchema.optional(),
|
|
29707
30323
|
layout: eventLayoutSchema.optional(),
|
|
29708
30324
|
columns: columnOptionSchema.optional(),
|
|
@@ -29743,7 +30359,6 @@ const eventListingDisplaySchema = z.object({
|
|
|
29743
30359
|
});
|
|
29744
30360
|
const eventListingHydrationSchema = z.object({
|
|
29745
30361
|
siteId: z.string(),
|
|
29746
|
-
stage: previewStageSchema.optional(),
|
|
29747
30362
|
eventsPerPage: eventPageSizeSchema,
|
|
29748
30363
|
paginationAction: eventListPaginationActionSchema,
|
|
29749
30364
|
showFilters: z.boolean(),
|
|
@@ -29766,6 +30381,7 @@ const eventListingRenderSchema = z.object({
|
|
|
29766
30381
|
z.object({
|
|
29767
30382
|
siteId: z.string(),
|
|
29768
30383
|
apiBaseUrl: z.string().optional(),
|
|
30384
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
29769
30385
|
stage: previewStageSchema.optional()
|
|
29770
30386
|
});
|
|
29771
30387
|
const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -29800,7 +30416,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
29800
30416
|
},
|
|
29801
30417
|
hydration: {
|
|
29802
30418
|
siteId: source.siteId,
|
|
29803
|
-
stage: source.stage,
|
|
29804
30419
|
eventsPerPage: pageSize,
|
|
29805
30420
|
paginationAction: resolveEventListPaginationAction({
|
|
29806
30421
|
paginationMode: source.paginationMode,
|
|
@@ -30082,6 +30697,7 @@ const eventListingBlockDefinition = {
|
|
|
30082
30697
|
rootType: "stack",
|
|
30083
30698
|
rootProps: { gap: "lg" },
|
|
30084
30699
|
children: [...eventSectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
|
|
30700
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
30085
30701
|
events: { $bind: { from: "data.events" } },
|
|
30086
30702
|
stage: { $bind: {
|
|
30087
30703
|
from: "$root.previewStage",
|
|
@@ -30279,6 +30895,7 @@ const eventCalendarRenderSchema = z.object({
|
|
|
30279
30895
|
z.object({
|
|
30280
30896
|
siteId: z.string(),
|
|
30281
30897
|
apiBaseUrl: z.string().optional(),
|
|
30898
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
30282
30899
|
stage: previewStageSchema.optional()
|
|
30283
30900
|
});
|
|
30284
30901
|
/**
|
|
@@ -30300,7 +30917,7 @@ function buildEventCalendarDisplay(source) {
|
|
|
30300
30917
|
listColumns: source.listColumns ?? source.columns
|
|
30301
30918
|
}),
|
|
30302
30919
|
kind: "event-calendar",
|
|
30303
|
-
displayMode:
|
|
30920
|
+
displayMode: resolveEventCalendarReadPlan(source).mode,
|
|
30304
30921
|
className: source.className ?? null,
|
|
30305
30922
|
events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
|
|
30306
30923
|
boardTitle: normalizeOptionalText(source.boardTitle),
|
|
@@ -30317,13 +30934,16 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
30317
30934
|
source: createZodCodec(eventCalendarSourceSchema),
|
|
30318
30935
|
render: createZodCodec(eventCalendarRenderSchema)
|
|
30319
30936
|
},
|
|
30320
|
-
buildRender: (source) =>
|
|
30321
|
-
|
|
30322
|
-
|
|
30323
|
-
|
|
30324
|
-
|
|
30325
|
-
|
|
30326
|
-
|
|
30937
|
+
buildRender: (source) => {
|
|
30938
|
+
const plan = resolveEventCalendarReadPlan(source);
|
|
30939
|
+
return {
|
|
30940
|
+
display: buildEventCalendarDisplay(source.calendarWindow && plan.jobs === "calendar" ? {
|
|
30941
|
+
...source,
|
|
30942
|
+
events: source.calendarWindow.events
|
|
30943
|
+
} : source),
|
|
30944
|
+
hydration: buildEventCollectionHydration(source)
|
|
30945
|
+
};
|
|
30946
|
+
}
|
|
30327
30947
|
});
|
|
30328
30948
|
//#endregion
|
|
30329
30949
|
//#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
|
|
@@ -30473,6 +31093,7 @@ const eventCalendarLayout = [styledSection({
|
|
|
30473
31093
|
rootType: "stack",
|
|
30474
31094
|
rootProps: { gap: "lg" },
|
|
30475
31095
|
children: [...eventSectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
|
|
31096
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
30476
31097
|
events: { $bind: { from: "data.events" } },
|
|
30477
31098
|
calendarWindow: { $bind: { from: "data.calendarWindow" } },
|
|
30478
31099
|
stage: { $bind: {
|
|
@@ -34260,6 +34881,7 @@ const shopSourceSchema = z.object({
|
|
|
34260
34881
|
products: z.array(publicProductSchema).nullable().optional(),
|
|
34261
34882
|
siteId: z.string().optional(),
|
|
34262
34883
|
apiBaseUrl: z.string().optional(),
|
|
34884
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
34263
34885
|
stage: previewStageSchema.optional()
|
|
34264
34886
|
});
|
|
34265
34887
|
const productVariantOptionDisplaySchema = z.object({
|
|
@@ -34427,6 +35049,7 @@ function resolveShowPricePerCredit(source) {
|
|
|
34427
35049
|
z.object({
|
|
34428
35050
|
siteId: z.string().optional(),
|
|
34429
35051
|
apiBaseUrl: z.string().optional(),
|
|
35052
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
34430
35053
|
stage: previewStageSchema.optional()
|
|
34431
35054
|
});
|
|
34432
35055
|
const shopBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -34767,6 +35390,7 @@ const shopBlockDefinition = {
|
|
|
34767
35390
|
baseClass: "",
|
|
34768
35391
|
spacing: "spacious",
|
|
34769
35392
|
children: sectionContainer([shop(withApiBindings({
|
|
35393
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
34770
35394
|
mode: "passes-memberships",
|
|
34771
35395
|
showPasses: { $bind: {
|
|
34772
35396
|
from: "content.showPasses",
|
|
@@ -34965,6 +35589,7 @@ const productListBlockDefinition = {
|
|
|
34965
35589
|
baseClass: "",
|
|
34966
35590
|
spacing: "spacious",
|
|
34967
35591
|
children: sectionContainer([productList(withApiBindings({
|
|
35592
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
34968
35593
|
mode: "product-list",
|
|
34969
35594
|
heading: { $bind: {
|
|
34970
35595
|
from: "content.heading",
|
|
@@ -35107,6 +35732,7 @@ const productDetailBlockDefinition = {
|
|
|
35107
35732
|
baseClass: "",
|
|
35108
35733
|
spacing: "spacious",
|
|
35109
35734
|
children: sectionContainer([productDetail(withApiBindings({
|
|
35735
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
35110
35736
|
mode: "product-detail",
|
|
35111
35737
|
heading: { $bind: {
|
|
35112
35738
|
from: "content.heading",
|
|
@@ -35223,6 +35849,7 @@ const cartBlockDefinition = {
|
|
|
35223
35849
|
baseClass: "",
|
|
35224
35850
|
spacing: "spacious",
|
|
35225
35851
|
children: sectionContainer([cart(withApiBindings({
|
|
35852
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
35226
35853
|
mode: "cart",
|
|
35227
35854
|
heading: { $bind: {
|
|
35228
35855
|
from: "content.heading",
|
|
@@ -35306,6 +35933,7 @@ const checkoutBlockDefinition = {
|
|
|
35306
35933
|
baseClass: "",
|
|
35307
35934
|
spacing: "spacious",
|
|
35308
35935
|
children: sectionContainer([checkout(withApiBindings({
|
|
35936
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
35309
35937
|
mode: "checkout",
|
|
35310
35938
|
heading: { $bind: {
|
|
35311
35939
|
from: "content.heading",
|
|
@@ -37964,8 +38592,8 @@ const defaultTransforms = createTransformRegistry([
|
|
|
37964
38592
|
summary: "Choose the read projection required by the calendar display mode",
|
|
37965
38593
|
schema: z.object({ job: z.enum(["list", "calendar"]) }),
|
|
37966
38594
|
run(value, options) {
|
|
37967
|
-
const
|
|
37968
|
-
return
|
|
38595
|
+
const plan = resolveEventCalendarReadPlan(asPartialObject(value) ?? {});
|
|
38596
|
+
return plan.jobs === "both" || plan.jobs === options.job;
|
|
37969
38597
|
}
|
|
37970
38598
|
},
|
|
37971
38599
|
{
|
|
@@ -37978,6 +38606,7 @@ const defaultTransforms = createTransformRegistry([
|
|
|
37978
38606
|
},
|
|
37979
38607
|
...formattingTransforms,
|
|
37980
38608
|
...layoutTransforms,
|
|
38609
|
+
...chromeLogoTransforms,
|
|
37981
38610
|
...uiTransforms,
|
|
37982
38611
|
...mediaTransforms,
|
|
37983
38612
|
...backgroundTransforms,
|
|
@@ -38310,6 +38939,17 @@ function coerceToString(value) {
|
|
|
38310
38939
|
return "";
|
|
38311
38940
|
}
|
|
38312
38941
|
/**
|
|
38942
|
+
* The appointment-services catalogue (issue 1403) pairs the services with the
|
|
38943
|
+
* site's ordered categories. Both are needed to group them, so that response
|
|
38944
|
+
* is passed through whole; any other `{ services }` wrapper is unwrapped.
|
|
38945
|
+
*/
|
|
38946
|
+
function coerceServicesPayload(record) {
|
|
38947
|
+
return Array.isArray(record.services) && Array.isArray(record.categories) ? {
|
|
38948
|
+
services: record.services,
|
|
38949
|
+
categories: record.categories
|
|
38950
|
+
} : record.services;
|
|
38951
|
+
}
|
|
38952
|
+
/**
|
|
38313
38953
|
* Extract data from API response.
|
|
38314
38954
|
* Unwraps common response wrappers: { data }, { form }, { entries }, { services }, { teamMembers }
|
|
38315
38955
|
*
|
|
@@ -38324,7 +38964,7 @@ function coercePayload(payload) {
|
|
|
38324
38964
|
if ("data" in record && typeof record.data !== "function") return record.data;
|
|
38325
38965
|
if ("form" in record && typeof record.form !== "function") return record.form;
|
|
38326
38966
|
if ("entries" in record && typeof record.entries !== "function") return record.entries;
|
|
38327
|
-
if ("services" in record && typeof record.services !== "function") return record
|
|
38967
|
+
if ("services" in record && typeof record.services !== "function") return coerceServicesPayload(record);
|
|
38328
38968
|
if ("teamMembers" in record && typeof record.teamMembers !== "function") return record.teamMembers;
|
|
38329
38969
|
}
|
|
38330
38970
|
return payload;
|
|
@@ -39226,7 +39866,12 @@ const appointmentSetupServiceDraftSchema = z.object({
|
|
|
39226
39866
|
venue: appointmentSetupVenueChoiceSchema,
|
|
39227
39867
|
timezone: z.string().trim().min(1).nullable(),
|
|
39228
39868
|
payment: appointmentSetupPaymentDraftSchema,
|
|
39229
|
-
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
39869
|
+
assignment: appointmentSetupServiceAssignmentDraftSchema,
|
|
39870
|
+
/**
|
|
39871
|
+
* The service's category, or null for "Other" (issue 1403). Omitted leaves
|
|
39872
|
+
* an existing service's category alone and puts a new one in "Other".
|
|
39873
|
+
*/
|
|
39874
|
+
categoryId: z.string().uuid().nullable().optional()
|
|
39230
39875
|
}).superRefine((service, ctx) => {
|
|
39231
39876
|
if (service.payment.kind !== "free" && (service.priceAmount === null || service.priceAmount <= 0)) ctx.addIssue({
|
|
39232
39877
|
code: "custom",
|