@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/client/hooks.mjs
CHANGED
|
@@ -2257,6 +2257,8 @@ const buttonSystemSchema = z.strictObject({
|
|
|
2257
2257
|
//#endregion
|
|
2258
2258
|
//#region ../theme-core/src/palette/utils/colorConversion.ts
|
|
2259
2259
|
const clamp01 = (x) => Math.max(0, Math.min(1, x));
|
|
2260
|
+
const mod = (a, n) => (a % n + n) % n;
|
|
2261
|
+
const deg = (x) => mod(x, 360);
|
|
2260
2262
|
function hexToRgb(hex) {
|
|
2261
2263
|
const h = hex.replace(/^#/, "");
|
|
2262
2264
|
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
@@ -2279,6 +2281,45 @@ function srgbToLinear(u) {
|
|
|
2279
2281
|
function linearToSrgb(x) {
|
|
2280
2282
|
return clamp01(x <= .0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - .055) * 255;
|
|
2281
2283
|
}
|
|
2284
|
+
function rgbToHsl(r, g, b) {
|
|
2285
|
+
const R = r / 255, G = g / 255, B = b / 255;
|
|
2286
|
+
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
2287
|
+
const d = max - min;
|
|
2288
|
+
let h = 0;
|
|
2289
|
+
if (d !== 0) {
|
|
2290
|
+
switch (max) {
|
|
2291
|
+
case R:
|
|
2292
|
+
h = (G - B) / d + (G < B ? 6 : 0);
|
|
2293
|
+
break;
|
|
2294
|
+
case G:
|
|
2295
|
+
h = (B - R) / d + 2;
|
|
2296
|
+
break;
|
|
2297
|
+
case B:
|
|
2298
|
+
h = (R - G) / d + 4;
|
|
2299
|
+
break;
|
|
2300
|
+
}
|
|
2301
|
+
h *= 60;
|
|
2302
|
+
}
|
|
2303
|
+
const l = (max + min) / 2;
|
|
2304
|
+
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
2305
|
+
return {
|
|
2306
|
+
h,
|
|
2307
|
+
s,
|
|
2308
|
+
l
|
|
2309
|
+
};
|
|
2310
|
+
}
|
|
2311
|
+
function srgbToOklab(r, g, b) {
|
|
2312
|
+
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
2313
|
+
const l = .4122214708 * R + .5363325363 * G + .0514459929 * B;
|
|
2314
|
+
const m = .2119034982 * R + .6806995451 * G + .1073969566 * B;
|
|
2315
|
+
const s = .0883024619 * R + .2817188376 * G + .6299787005 * B;
|
|
2316
|
+
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
2317
|
+
return {
|
|
2318
|
+
L: .2104542553 * l_ + .793617785 * m_ - .0040720468 * s_,
|
|
2319
|
+
a: 1.9779984951 * l_ - 2.428592205 * m_ + .4505937099 * s_,
|
|
2320
|
+
b: .0259040371 * l_ + .7827717662 * m_ - .808675766 * s_
|
|
2321
|
+
};
|
|
2322
|
+
}
|
|
2282
2323
|
function oklabToSrgb(L, a, b) {
|
|
2283
2324
|
const l_ = Math.pow(L + .3963377774 * a + .2158037573 * b, 3);
|
|
2284
2325
|
const m_ = Math.pow(L - .1055613458 * a - .0638541728 * b, 3);
|
|
@@ -2292,6 +2333,14 @@ function oklabToSrgb(L, a, b) {
|
|
|
2292
2333
|
b: linearToSrgb(B)
|
|
2293
2334
|
};
|
|
2294
2335
|
}
|
|
2336
|
+
function oklabToOklch(L, a, b) {
|
|
2337
|
+
const C = Math.sqrt(a * a + b * b);
|
|
2338
|
+
return {
|
|
2339
|
+
L,
|
|
2340
|
+
C,
|
|
2341
|
+
h: C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI)
|
|
2342
|
+
};
|
|
2343
|
+
}
|
|
2295
2344
|
function oklchToOklab(L, C, h) {
|
|
2296
2345
|
const hr = h * Math.PI / 180;
|
|
2297
2346
|
return {
|
|
@@ -2300,6 +2349,27 @@ function oklchToOklab(L, C, h) {
|
|
|
2300
2349
|
b: C * Math.sin(hr)
|
|
2301
2350
|
};
|
|
2302
2351
|
}
|
|
2352
|
+
function featuresFromHex(hex) {
|
|
2353
|
+
const { r, g, b } = hexToRgb(hex);
|
|
2354
|
+
const { h, s, l } = rgbToHsl(r, g, b);
|
|
2355
|
+
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
2356
|
+
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
2357
|
+
return {
|
|
2358
|
+
r,
|
|
2359
|
+
g,
|
|
2360
|
+
b,
|
|
2361
|
+
h,
|
|
2362
|
+
s,
|
|
2363
|
+
l,
|
|
2364
|
+
v: Math.max(r, g, b) / 255,
|
|
2365
|
+
Y: .2126 * srgbToLinear(r) + .7152 * srgbToLinear(g) + .0722 * srgbToLinear(b),
|
|
2366
|
+
chroma: s,
|
|
2367
|
+
okL,
|
|
2368
|
+
okC,
|
|
2369
|
+
okH,
|
|
2370
|
+
hex
|
|
2371
|
+
};
|
|
2372
|
+
}
|
|
2303
2373
|
function relativeLuminance(r, g, b) {
|
|
2304
2374
|
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
2305
2375
|
return .2126 * R + .7152 * G + .0722 * B;
|
|
@@ -3349,6 +3419,36 @@ function normalizedReference(value) {
|
|
|
3349
3419
|
return normalized.length > 0 ? normalized : null;
|
|
3350
3420
|
}
|
|
3351
3421
|
//#endregion
|
|
3422
|
+
//#region ../theme-core/src/surfaces/logoVariant.ts
|
|
3423
|
+
/** Concrete hex behind a plain, opaque palette token, or null otherwise. */
|
|
3424
|
+
function opaquePaletteHexForToken(expandedPalette, token) {
|
|
3425
|
+
if (!token) return null;
|
|
3426
|
+
const parts = parseColorTokenParts(token);
|
|
3427
|
+
if (parts.kind !== "token" || parts.opacityPercent !== null) return null;
|
|
3428
|
+
return expandedPalette[parts.token] ?? null;
|
|
3429
|
+
}
|
|
3430
|
+
/**
|
|
3431
|
+
* Tone of the surface a foreground token was resolved for.
|
|
3432
|
+
*
|
|
3433
|
+
* A token with opacity has no known underlay to composite against, and a raw
|
|
3434
|
+
* or unrecognised token has no palette hex, so both are `unknown` rather than
|
|
3435
|
+
* a guess.
|
|
3436
|
+
*/
|
|
3437
|
+
function surfaceToneFromForegroundToken(expandedPalette, foregroundToken) {
|
|
3438
|
+
const hex = opaquePaletteHexForToken(expandedPalette, foregroundToken);
|
|
3439
|
+
if (!hex) return "unknown";
|
|
3440
|
+
return featuresFromHex(hex).Y >= .5 ? "dark" : "light";
|
|
3441
|
+
}
|
|
3442
|
+
/**
|
|
3443
|
+
* The logo to draw on a surface of the given tone. A missing variant falls
|
|
3444
|
+
* back to the other one, and an unknown tone uses the light-backgrounds logo,
|
|
3445
|
+
* which is what every site rendered before variants existed.
|
|
3446
|
+
*/
|
|
3447
|
+
function selectLogoVariant(tone, variants) {
|
|
3448
|
+
const { forLightBackgrounds, forDarkBackgrounds } = variants;
|
|
3449
|
+
return tone === "dark" ? forDarkBackgrounds ?? forLightBackgrounds : forLightBackgrounds ?? forDarkBackgrounds;
|
|
3450
|
+
}
|
|
3451
|
+
//#endregion
|
|
3352
3452
|
//#region ../theme-core/src/utils/colorStyles.ts
|
|
3353
3453
|
const COLOR_VAR_PREFIX = "--tb-";
|
|
3354
3454
|
function parseToken(source) {
|
|
@@ -3400,16 +3500,28 @@ function backgroundColorStyle(token) {
|
|
|
3400
3500
|
return { backgroundColor: rgbColorValue(token) };
|
|
3401
3501
|
}
|
|
3402
3502
|
/**
|
|
3503
|
+
* Converts a text color token to a CSS color value that follows the enclosing
|
|
3504
|
+
* surface. The semantic text tokens (`text`, `heading`, `mutedText`) resolve
|
|
3505
|
+
* to the surface foreground variables, so text adapts when a section's
|
|
3506
|
+
* background changes; any other token is a fixed theme color.
|
|
3507
|
+
*
|
|
3508
|
+
* @param token - Theme color token
|
|
3509
|
+
* @returns CSS color value
|
|
3510
|
+
*/
|
|
3511
|
+
function textColorValue(token) {
|
|
3512
|
+
const parsed = parseToken(token);
|
|
3513
|
+
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
3514
|
+
if (!surfaceRole) return rgbColorValue(token);
|
|
3515
|
+
return parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent);
|
|
3516
|
+
}
|
|
3517
|
+
/**
|
|
3403
3518
|
* Creates a text color style object from a theme token.
|
|
3404
3519
|
*
|
|
3405
3520
|
* @param token - Theme color token
|
|
3406
3521
|
* @returns CSSProperties with color
|
|
3407
3522
|
*/
|
|
3408
3523
|
function textColorStyle(token) {
|
|
3409
|
-
|
|
3410
|
-
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
3411
|
-
if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
|
|
3412
|
-
return { color: rgbColorValue(token) };
|
|
3524
|
+
return { color: textColorValue(token) };
|
|
3413
3525
|
}
|
|
3414
3526
|
/**
|
|
3415
3527
|
* Creates a border color style object from a theme token.
|
|
@@ -6593,6 +6705,15 @@ function asSiteStyleId(value) {
|
|
|
6593
6705
|
function asDesignSystemTemplateId(value) {
|
|
6594
6706
|
return brandNonEmptyString(value, "DesignSystemTemplateId");
|
|
6595
6707
|
}
|
|
6708
|
+
function toNonEmptyReadonlyArray(values) {
|
|
6709
|
+
const [first, ...rest] = values;
|
|
6710
|
+
return first === void 0 ? null : [first, ...rest];
|
|
6711
|
+
}
|
|
6712
|
+
function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
|
|
6713
|
+
const result = toNonEmptyReadonlyArray(values);
|
|
6714
|
+
if (!result) throw new Error(message);
|
|
6715
|
+
return result;
|
|
6716
|
+
}
|
|
6596
6717
|
function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
6597
6718
|
return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
|
|
6598
6719
|
}
|
|
@@ -6795,16 +6916,18 @@ const themeV2RuntimeStyleFieldNames = [
|
|
|
6795
6916
|
"_frameStyles",
|
|
6796
6917
|
"_sectionStyles",
|
|
6797
6918
|
"_containerStyles",
|
|
6798
|
-
"_cardStyles"
|
|
6799
|
-
"_transitionStyles",
|
|
6800
|
-
"styleGroup"
|
|
6919
|
+
"_cardStyles"
|
|
6801
6920
|
];
|
|
6802
6921
|
const themeV2BlockSpecificRawStyleFieldNames = [
|
|
6803
6922
|
"_contentCardStyles",
|
|
6804
6923
|
"_heroLayoutStyles",
|
|
6805
6924
|
"_textCardStyles"
|
|
6806
6925
|
];
|
|
6807
|
-
const themeV2NormalEditorRawStyleFieldNames = [
|
|
6926
|
+
const themeV2NormalEditorRawStyleFieldNames = [
|
|
6927
|
+
...themeV2RuntimeStyleFieldNames,
|
|
6928
|
+
...themeV2BlockSpecificRawStyleFieldNames,
|
|
6929
|
+
"styleGroup"
|
|
6930
|
+
];
|
|
6808
6931
|
new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
6809
6932
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
6810
6933
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
@@ -8313,6 +8436,33 @@ function normalizeEventCalendarDisplayMode$1(input) {
|
|
|
8313
8436
|
if (isEventCalendarDisplayMode(input.variant)) return input.variant;
|
|
8314
8437
|
return isEventCalendarDisplayMode(input.displayMode) ? input.displayMode : void 0;
|
|
8315
8438
|
}
|
|
8439
|
+
/** One closed authority for the projections required by each rendered mode. */
|
|
8440
|
+
function resolveEventCalendarReadPlan(input) {
|
|
8441
|
+
const mode = normalizeEventCalendarDisplayMode$1(input) ?? "combined";
|
|
8442
|
+
switch (mode) {
|
|
8443
|
+
case "combined": return {
|
|
8444
|
+
mode,
|
|
8445
|
+
jobs: "both",
|
|
8446
|
+
readProfile: "listing-card"
|
|
8447
|
+
};
|
|
8448
|
+
case "list": return {
|
|
8449
|
+
mode,
|
|
8450
|
+
jobs: "list",
|
|
8451
|
+
readProfile: "listing-card"
|
|
8452
|
+
};
|
|
8453
|
+
case "calendar": return {
|
|
8454
|
+
mode,
|
|
8455
|
+
jobs: "calendar",
|
|
8456
|
+
readProfile: "listing-card"
|
|
8457
|
+
};
|
|
8458
|
+
case "timetable":
|
|
8459
|
+
case "week-board": return {
|
|
8460
|
+
mode,
|
|
8461
|
+
jobs: "calendar",
|
|
8462
|
+
readProfile: "timetable"
|
|
8463
|
+
};
|
|
8464
|
+
}
|
|
8465
|
+
}
|
|
8316
8466
|
function isEventCalendarDefaultView(value) {
|
|
8317
8467
|
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
8318
8468
|
}
|
|
@@ -8322,8 +8472,7 @@ function isEventCalendarListLayout(value) {
|
|
|
8322
8472
|
//#endregion
|
|
8323
8473
|
//#region ../blocks/src/system/blocks/events/shared/calendarWindow.ts
|
|
8324
8474
|
function resolveCalendarReadProfile(content) {
|
|
8325
|
-
|
|
8326
|
-
return mode === "timetable" || mode === "week-board" ? "timetable" : "listing-card";
|
|
8475
|
+
return resolveEventCalendarReadPlan(content).readProfile;
|
|
8327
8476
|
}
|
|
8328
8477
|
/** Runtime picker sentinels and bound loader IDs must describe the same query. */
|
|
8329
8478
|
function normalizeCalendarFilterId(value) {
|
|
@@ -8412,6 +8561,75 @@ const calendarWindowPageSchema = z.discriminatedUnion("kind", [z.object({
|
|
|
8412
8561
|
nextCursor: calendarSourceCursorSchema
|
|
8413
8562
|
})]);
|
|
8414
8563
|
//#endregion
|
|
8564
|
+
//#region ../api/src/defineEndpointDefinitions.ts
|
|
8565
|
+
/**
|
|
8566
|
+
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
8567
|
+
* method, and parameter contract for the typed URL builders.
|
|
8568
|
+
*/
|
|
8569
|
+
function defineEndpointDefinitions(definitions) {
|
|
8570
|
+
return definitions;
|
|
8571
|
+
}
|
|
8572
|
+
//#endregion
|
|
8573
|
+
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
8574
|
+
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8575
|
+
subscribeNewsletter: {
|
|
8576
|
+
path: "/public/sites/{siteId}/newsletter/subscribe",
|
|
8577
|
+
method: "POST",
|
|
8578
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8579
|
+
auth: "public",
|
|
8580
|
+
responseKind: "json"
|
|
8581
|
+
},
|
|
8582
|
+
confirmNewsletter: {
|
|
8583
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
8584
|
+
method: "GET",
|
|
8585
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8586
|
+
auth: "public",
|
|
8587
|
+
responseKind: "text"
|
|
8588
|
+
},
|
|
8589
|
+
unsubscribeNewsletter: {
|
|
8590
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
8591
|
+
method: "GET",
|
|
8592
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8593
|
+
auth: "public",
|
|
8594
|
+
responseKind: "text"
|
|
8595
|
+
},
|
|
8596
|
+
unsubscribeNewsletterPost: {
|
|
8597
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
8598
|
+
method: "POST",
|
|
8599
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8600
|
+
auth: "public",
|
|
8601
|
+
responseKind: "text"
|
|
8602
|
+
},
|
|
8603
|
+
confirmNewsletterPost: {
|
|
8604
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
8605
|
+
method: "POST",
|
|
8606
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8607
|
+
auth: "public",
|
|
8608
|
+
responseKind: "text"
|
|
8609
|
+
},
|
|
8610
|
+
getNewsletterPreferences: {
|
|
8611
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
8612
|
+
method: "GET",
|
|
8613
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8614
|
+
auth: "public",
|
|
8615
|
+
responseKind: "text"
|
|
8616
|
+
},
|
|
8617
|
+
saveNewsletterPreferences: {
|
|
8618
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
8619
|
+
method: "POST",
|
|
8620
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8621
|
+
auth: "public",
|
|
8622
|
+
responseKind: "text"
|
|
8623
|
+
},
|
|
8624
|
+
getNewsletterArchive: {
|
|
8625
|
+
path: "/public/sites/{siteId}/newsletter/archive/{token}",
|
|
8626
|
+
method: "GET",
|
|
8627
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8628
|
+
auth: "public",
|
|
8629
|
+
responseKind: "text"
|
|
8630
|
+
}
|
|
8631
|
+
});
|
|
8632
|
+
//#endregion
|
|
8415
8633
|
//#region ../api/src/apiEndpointTypes.ts
|
|
8416
8634
|
function allowedDemoMutationPolicy() {
|
|
8417
8635
|
return {
|
|
@@ -8503,17 +8721,85 @@ const SDK_ENTRY_READ_ENDPOINTS = {
|
|
|
8503
8721
|
}
|
|
8504
8722
|
};
|
|
8505
8723
|
//#endregion
|
|
8506
|
-
//#region ../api/src/defineEndpointDefinitions.ts
|
|
8507
|
-
/**
|
|
8508
|
-
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
8509
|
-
* method, and parameter contract for the typed URL builders.
|
|
8510
|
-
*/
|
|
8511
|
-
function defineEndpointDefinitions(definitions) {
|
|
8512
|
-
return definitions;
|
|
8513
|
-
}
|
|
8514
|
-
//#endregion
|
|
8515
8724
|
//#region ../api/src/appointmentEndpointDefinitions.ts
|
|
8516
8725
|
const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8726
|
+
...defineEndpointDefinitions({
|
|
8727
|
+
listGroupedAppointmentServices: {
|
|
8728
|
+
path: "/sites/{siteId}/bookings/services/grouped",
|
|
8729
|
+
method: "GET",
|
|
8730
|
+
auth: "user",
|
|
8731
|
+
responseKind: "json",
|
|
8732
|
+
errors: ["server:internal_error"]
|
|
8733
|
+
},
|
|
8734
|
+
reorderAppointmentServices: {
|
|
8735
|
+
path: "/sites/{siteId}/bookings/services/order",
|
|
8736
|
+
method: "PUT",
|
|
8737
|
+
auth: "user",
|
|
8738
|
+
responseKind: "json",
|
|
8739
|
+
errors: [
|
|
8740
|
+
"validation:invalid_input",
|
|
8741
|
+
"auth:forbidden",
|
|
8742
|
+
"resource:not_found",
|
|
8743
|
+
"resource:conflict",
|
|
8744
|
+
"server:internal_error"
|
|
8745
|
+
]
|
|
8746
|
+
},
|
|
8747
|
+
listAppointmentServiceCategories: {
|
|
8748
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
8749
|
+
method: "GET",
|
|
8750
|
+
auth: "user",
|
|
8751
|
+
responseKind: "json",
|
|
8752
|
+
errors: ["server:internal_error"]
|
|
8753
|
+
},
|
|
8754
|
+
createAppointmentServiceCategory: {
|
|
8755
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
8756
|
+
method: "POST",
|
|
8757
|
+
auth: "user",
|
|
8758
|
+
responseKind: "json",
|
|
8759
|
+
errors: [
|
|
8760
|
+
"validation:invalid_input",
|
|
8761
|
+
"auth:forbidden",
|
|
8762
|
+
"resource:conflict",
|
|
8763
|
+
"server:internal_error"
|
|
8764
|
+
]
|
|
8765
|
+
},
|
|
8766
|
+
updateAppointmentServiceCategory: {
|
|
8767
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
8768
|
+
method: "PUT",
|
|
8769
|
+
auth: "user",
|
|
8770
|
+
responseKind: "json",
|
|
8771
|
+
errors: [
|
|
8772
|
+
"validation:invalid_input",
|
|
8773
|
+
"auth:forbidden",
|
|
8774
|
+
"resource:not_found",
|
|
8775
|
+
"resource:conflict",
|
|
8776
|
+
"server:internal_error"
|
|
8777
|
+
]
|
|
8778
|
+
},
|
|
8779
|
+
deleteAppointmentServiceCategory: {
|
|
8780
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
8781
|
+
method: "DELETE",
|
|
8782
|
+
auth: "user",
|
|
8783
|
+
responseKind: "json",
|
|
8784
|
+
errors: [
|
|
8785
|
+
"auth:forbidden",
|
|
8786
|
+
"resource:not_found",
|
|
8787
|
+
"server:internal_error"
|
|
8788
|
+
]
|
|
8789
|
+
},
|
|
8790
|
+
reorderAppointmentServiceCategories: {
|
|
8791
|
+
path: "/sites/{siteId}/bookings/service-categories/order",
|
|
8792
|
+
method: "PUT",
|
|
8793
|
+
auth: "user",
|
|
8794
|
+
responseKind: "json",
|
|
8795
|
+
errors: [
|
|
8796
|
+
"validation:invalid_input",
|
|
8797
|
+
"auth:forbidden",
|
|
8798
|
+
"resource:conflict",
|
|
8799
|
+
"server:internal_error"
|
|
8800
|
+
]
|
|
8801
|
+
}
|
|
8802
|
+
}),
|
|
8517
8803
|
listAppointmentResources: {
|
|
8518
8804
|
path: "/sites/{siteId}/bookings/resources",
|
|
8519
8805
|
method: "GET",
|
|
@@ -9661,39 +9947,6 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
9661
9947
|
auth: "user",
|
|
9662
9948
|
responseKind: "json",
|
|
9663
9949
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
9664
|
-
},
|
|
9665
|
-
listNewsletterSendJobs: {
|
|
9666
|
-
path: "/sites/{siteId}/newsletter/jobs",
|
|
9667
|
-
method: "GET",
|
|
9668
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9669
|
-
auth: "user",
|
|
9670
|
-
responseKind: "json"
|
|
9671
|
-
},
|
|
9672
|
-
retryNewsletterSendJob: {
|
|
9673
|
-
path: "/sites/{siteId}/newsletter/jobs/{jobId}/retry",
|
|
9674
|
-
method: "POST",
|
|
9675
|
-
errors: [
|
|
9676
|
-
"validation:invalid_input",
|
|
9677
|
-
"resource:not_found",
|
|
9678
|
-
"auth:forbidden",
|
|
9679
|
-
"server:internal_error"
|
|
9680
|
-
],
|
|
9681
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9682
|
-
auth: "user",
|
|
9683
|
-
responseKind: "json"
|
|
9684
|
-
},
|
|
9685
|
-
cancelNewsletterSendJob: {
|
|
9686
|
-
path: "/sites/{siteId}/newsletter/jobs/{jobId}/cancel",
|
|
9687
|
-
method: "POST",
|
|
9688
|
-
errors: [
|
|
9689
|
-
"validation:invalid_input",
|
|
9690
|
-
"resource:not_found",
|
|
9691
|
-
"auth:forbidden",
|
|
9692
|
-
"server:internal_error"
|
|
9693
|
-
],
|
|
9694
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9695
|
-
auth: "user",
|
|
9696
|
-
responseKind: "json"
|
|
9697
9950
|
}
|
|
9698
9951
|
});
|
|
9699
9952
|
//#endregion
|
|
@@ -10459,6 +10712,7 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10459
10712
|
}
|
|
10460
10713
|
});
|
|
10461
10714
|
({
|
|
10715
|
+
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10462
10716
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
10463
10717
|
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
10464
10718
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
@@ -12819,11 +13073,260 @@ function cardRoleFromLegacyVocabulary(value) {
|
|
|
12819
13073
|
*/
|
|
12820
13074
|
const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
|
|
12821
13075
|
//#endregion
|
|
12822
|
-
//#region ../theme-core/src/site-styles/
|
|
12823
|
-
|
|
12824
|
-
|
|
12825
|
-
|
|
12826
|
-
|
|
13076
|
+
//#region ../theme-core/src/site-styles/transitionCatalogue.ts
|
|
13077
|
+
/**
|
|
13078
|
+
* Family order for pickers. Entries below are listed family by family in this
|
|
13079
|
+
* same order, so the flat option list and the grouped families agree.
|
|
13080
|
+
*/
|
|
13081
|
+
const transitionCatalogueFamilies = [
|
|
13082
|
+
{
|
|
13083
|
+
id: "gradient",
|
|
13084
|
+
label: "Gradient"
|
|
13085
|
+
},
|
|
13086
|
+
{
|
|
13087
|
+
id: "wave",
|
|
13088
|
+
label: "Wave"
|
|
13089
|
+
},
|
|
13090
|
+
{
|
|
13091
|
+
id: "angle",
|
|
13092
|
+
label: "Angle"
|
|
13093
|
+
}
|
|
13094
|
+
];
|
|
13095
|
+
const mediumHeight = "6rem + 2px";
|
|
13096
|
+
const compactHeight = "4.5rem + 2px";
|
|
13097
|
+
const largeHeight = "7rem + 2px";
|
|
13098
|
+
/**
|
|
13099
|
+
* The single source of transition vocabulary. Order is significant: it is the
|
|
13100
|
+
* order of `boundaryOptions` (after `none`) and of each family's variants,
|
|
13101
|
+
* which persisted pins, page-flow presets and the editor picker all rely on.
|
|
13102
|
+
*
|
|
13103
|
+
* Shapes match what `generateLayoutCss` draws today. Structured
|
|
13104
|
+
* amplitude/frequency treatments (issue 826) extend this list later.
|
|
13105
|
+
*/
|
|
13106
|
+
const transitionCatalogueEntries = defineExactCatalog()([
|
|
13107
|
+
{
|
|
13108
|
+
intent: "soft-fade-short",
|
|
13109
|
+
optionId: asBoundaryOptionId("break:soft"),
|
|
13110
|
+
family: "gradient",
|
|
13111
|
+
variantId: "soft",
|
|
13112
|
+
label: "Soft",
|
|
13113
|
+
variantLabel: "Soft",
|
|
13114
|
+
treatment: {
|
|
13115
|
+
kind: "soft-fade",
|
|
13116
|
+
height: "medium",
|
|
13117
|
+
curve: "soft"
|
|
13118
|
+
},
|
|
13119
|
+
size: "medium",
|
|
13120
|
+
heightExpression: mediumHeight,
|
|
13121
|
+
shape: { kind: "fade" }
|
|
13122
|
+
},
|
|
13123
|
+
{
|
|
13124
|
+
intent: "soft-fade-long",
|
|
13125
|
+
optionId: asBoundaryOptionId("break:spacious"),
|
|
13126
|
+
family: "gradient",
|
|
13127
|
+
variantId: "spacious",
|
|
13128
|
+
label: "Spacious",
|
|
13129
|
+
variantLabel: "Spacious",
|
|
13130
|
+
treatment: {
|
|
13131
|
+
kind: "soft-fade",
|
|
13132
|
+
height: "large",
|
|
13133
|
+
curve: "spacious"
|
|
13134
|
+
},
|
|
13135
|
+
size: "spacious",
|
|
13136
|
+
heightExpression: "10rem",
|
|
13137
|
+
shape: { kind: "fade" }
|
|
13138
|
+
},
|
|
13139
|
+
{
|
|
13140
|
+
intent: "soft-fade-expansive",
|
|
13141
|
+
optionId: asBoundaryOptionId("break:expansive"),
|
|
13142
|
+
family: "gradient",
|
|
13143
|
+
variantId: "expansive",
|
|
13144
|
+
label: "Expansive",
|
|
13145
|
+
variantLabel: "Expansive",
|
|
13146
|
+
treatment: {
|
|
13147
|
+
kind: "soft-fade",
|
|
13148
|
+
height: "expansive",
|
|
13149
|
+
curve: "expansive"
|
|
13150
|
+
},
|
|
13151
|
+
size: "expansive",
|
|
13152
|
+
heightExpression: "14rem",
|
|
13153
|
+
shape: { kind: "fade" }
|
|
13154
|
+
},
|
|
13155
|
+
{
|
|
13156
|
+
intent: "wave-edge-balanced",
|
|
13157
|
+
optionId: asBoundaryOptionId("break:wave-balanced"),
|
|
13158
|
+
family: "wave",
|
|
13159
|
+
variantId: "balanced",
|
|
13160
|
+
label: "Balanced wave",
|
|
13161
|
+
variantLabel: "Balanced",
|
|
13162
|
+
treatment: {
|
|
13163
|
+
kind: "wave-edge",
|
|
13164
|
+
height: "medium",
|
|
13165
|
+
amplitude: "balanced",
|
|
13166
|
+
rhythm: "double",
|
|
13167
|
+
symmetry: "symmetrical"
|
|
13168
|
+
},
|
|
13169
|
+
size: "medium",
|
|
13170
|
+
heightExpression: mediumHeight,
|
|
13171
|
+
shape: {
|
|
13172
|
+
kind: "wave",
|
|
13173
|
+
mask: "balanced"
|
|
13174
|
+
}
|
|
13175
|
+
},
|
|
13176
|
+
{
|
|
13177
|
+
intent: "wave-edge",
|
|
13178
|
+
optionId: asBoundaryOptionId("break:wave"),
|
|
13179
|
+
family: "wave",
|
|
13180
|
+
variantId: "classic",
|
|
13181
|
+
label: "Classic wave",
|
|
13182
|
+
variantLabel: "Classic",
|
|
13183
|
+
treatment: {
|
|
13184
|
+
kind: "wave-edge",
|
|
13185
|
+
height: "medium",
|
|
13186
|
+
amplitude: "balanced",
|
|
13187
|
+
rhythm: "double",
|
|
13188
|
+
symmetry: "asymmetrical"
|
|
13189
|
+
},
|
|
13190
|
+
size: "medium",
|
|
13191
|
+
heightExpression: mediumHeight,
|
|
13192
|
+
shape: {
|
|
13193
|
+
kind: "wave",
|
|
13194
|
+
mask: "classic"
|
|
13195
|
+
}
|
|
13196
|
+
},
|
|
13197
|
+
{
|
|
13198
|
+
intent: "wave-edge-gentle",
|
|
13199
|
+
optionId: asBoundaryOptionId("break:wave-gentle"),
|
|
13200
|
+
family: "wave",
|
|
13201
|
+
variantId: "gentle",
|
|
13202
|
+
label: "Gentle wave",
|
|
13203
|
+
variantLabel: "Gentle",
|
|
13204
|
+
treatment: {
|
|
13205
|
+
kind: "wave-edge",
|
|
13206
|
+
height: "compact",
|
|
13207
|
+
amplitude: "subtle",
|
|
13208
|
+
rhythm: "single",
|
|
13209
|
+
symmetry: "symmetrical"
|
|
13210
|
+
},
|
|
13211
|
+
size: "compact",
|
|
13212
|
+
heightExpression: compactHeight,
|
|
13213
|
+
shape: {
|
|
13214
|
+
kind: "wave",
|
|
13215
|
+
mask: "gentle"
|
|
13216
|
+
}
|
|
13217
|
+
},
|
|
13218
|
+
{
|
|
13219
|
+
intent: "wave-edge-bold",
|
|
13220
|
+
optionId: asBoundaryOptionId("break:wave-bold"),
|
|
13221
|
+
family: "wave",
|
|
13222
|
+
variantId: "bold",
|
|
13223
|
+
label: "Bold wave",
|
|
13224
|
+
variantLabel: "Bold",
|
|
13225
|
+
treatment: {
|
|
13226
|
+
kind: "wave-edge",
|
|
13227
|
+
height: "large",
|
|
13228
|
+
amplitude: "bold",
|
|
13229
|
+
rhythm: "double",
|
|
13230
|
+
symmetry: "symmetrical"
|
|
13231
|
+
},
|
|
13232
|
+
size: "large",
|
|
13233
|
+
heightExpression: largeHeight,
|
|
13234
|
+
shape: {
|
|
13235
|
+
kind: "wave",
|
|
13236
|
+
mask: "bold"
|
|
13237
|
+
}
|
|
13238
|
+
},
|
|
13239
|
+
{
|
|
13240
|
+
intent: "wave-edge-drift",
|
|
13241
|
+
optionId: asBoundaryOptionId("break:wave-drift"),
|
|
13242
|
+
family: "wave",
|
|
13243
|
+
variantId: "drift",
|
|
13244
|
+
label: "Drift wave",
|
|
13245
|
+
variantLabel: "Drift",
|
|
13246
|
+
treatment: {
|
|
13247
|
+
kind: "wave-edge",
|
|
13248
|
+
height: "medium",
|
|
13249
|
+
amplitude: "balanced",
|
|
13250
|
+
rhythm: "double",
|
|
13251
|
+
symmetry: "drift"
|
|
13252
|
+
},
|
|
13253
|
+
size: "medium",
|
|
13254
|
+
heightExpression: mediumHeight,
|
|
13255
|
+
shape: {
|
|
13256
|
+
kind: "wave",
|
|
13257
|
+
mask: "drift"
|
|
13258
|
+
}
|
|
13259
|
+
},
|
|
13260
|
+
{
|
|
13261
|
+
intent: "angle-edge-subtle",
|
|
13262
|
+
optionId: asBoundaryOptionId("break:angle-subtle"),
|
|
13263
|
+
family: "angle",
|
|
13264
|
+
variantId: "subtle",
|
|
13265
|
+
label: "Subtle angle",
|
|
13266
|
+
variantLabel: "Subtle",
|
|
13267
|
+
treatment: {
|
|
13268
|
+
kind: "angle-edge",
|
|
13269
|
+
height: "compact",
|
|
13270
|
+
slope: "subtle",
|
|
13271
|
+
direction: "forward"
|
|
13272
|
+
},
|
|
13273
|
+
size: "compact",
|
|
13274
|
+
heightExpression: compactHeight,
|
|
13275
|
+
shape: {
|
|
13276
|
+
kind: "angle",
|
|
13277
|
+
polygon: {
|
|
13278
|
+
startTopPercent: 34,
|
|
13279
|
+
endTopPercent: 18
|
|
13280
|
+
}
|
|
13281
|
+
}
|
|
13282
|
+
},
|
|
13283
|
+
{
|
|
13284
|
+
intent: "angle-edge",
|
|
13285
|
+
optionId: asBoundaryOptionId("break:angle-balanced"),
|
|
13286
|
+
family: "angle",
|
|
13287
|
+
variantId: "balanced",
|
|
13288
|
+
label: "Balanced angle",
|
|
13289
|
+
variantLabel: "Balanced",
|
|
13290
|
+
treatment: {
|
|
13291
|
+
kind: "angle-edge",
|
|
13292
|
+
height: "medium",
|
|
13293
|
+
slope: "balanced",
|
|
13294
|
+
direction: "forward"
|
|
13295
|
+
},
|
|
13296
|
+
size: "medium",
|
|
13297
|
+
heightExpression: mediumHeight,
|
|
13298
|
+
shape: {
|
|
13299
|
+
kind: "angle",
|
|
13300
|
+
polygon: {
|
|
13301
|
+
startTopPercent: 42,
|
|
13302
|
+
endTopPercent: 8
|
|
13303
|
+
}
|
|
13304
|
+
}
|
|
13305
|
+
},
|
|
13306
|
+
{
|
|
13307
|
+
intent: "angle-edge-steep",
|
|
13308
|
+
optionId: asBoundaryOptionId("break:angle-steep"),
|
|
13309
|
+
family: "angle",
|
|
13310
|
+
variantId: "steep",
|
|
13311
|
+
label: "Steep angle",
|
|
13312
|
+
variantLabel: "Steep",
|
|
13313
|
+
treatment: {
|
|
13314
|
+
kind: "angle-edge",
|
|
13315
|
+
height: "large",
|
|
13316
|
+
slope: "steep",
|
|
13317
|
+
direction: "forward"
|
|
13318
|
+
},
|
|
13319
|
+
size: "large",
|
|
13320
|
+
heightExpression: largeHeight,
|
|
13321
|
+
shape: {
|
|
13322
|
+
kind: "angle",
|
|
13323
|
+
polygon: {
|
|
13324
|
+
startTopPercent: 54,
|
|
13325
|
+
endTopPercent: 0
|
|
13326
|
+
}
|
|
13327
|
+
}
|
|
13328
|
+
}
|
|
13329
|
+
]);
|
|
12827
13330
|
//#endregion
|
|
12828
13331
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
12829
13332
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
@@ -12834,42 +13337,106 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
|
12834
13337
|
reserveCss: `calc((${heightExpression}) / 2)`
|
|
12835
13338
|
};
|
|
12836
13339
|
}
|
|
12837
|
-
|
|
13340
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
|
|
13341
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
|
|
13342
|
+
/**
|
|
13343
|
+
* The catalogue's compile-time coverage check guarantees an entry per
|
|
13344
|
+
* decorative intent, so a miss here is a broken invariant, not bad input.
|
|
13345
|
+
*/
|
|
13346
|
+
function requireCatalogueValue(values, intent) {
|
|
13347
|
+
const value = values.get(intent);
|
|
13348
|
+
if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
|
|
13349
|
+
return value;
|
|
13350
|
+
}
|
|
12838
13351
|
const noneBoundaryOption = {
|
|
12839
13352
|
id: asBoundaryOptionId("break:none"),
|
|
12840
13353
|
label: "None",
|
|
12841
13354
|
transitionAfter: "none",
|
|
12842
13355
|
treatment: { kind: "none" }
|
|
12843
13356
|
};
|
|
12844
|
-
const
|
|
12845
|
-
id:
|
|
12846
|
-
label:
|
|
12847
|
-
transitionAfter:
|
|
12848
|
-
treatment:
|
|
12849
|
-
|
|
12850
|
-
|
|
12851
|
-
|
|
12852
|
-
|
|
13357
|
+
const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
|
|
13358
|
+
id: entry.optionId,
|
|
13359
|
+
label: entry.label,
|
|
13360
|
+
transitionAfter: entry.intent,
|
|
13361
|
+
treatment: entry.treatment
|
|
13362
|
+
}]));
|
|
13363
|
+
function boundaryOptionForTransitionIntent(intent) {
|
|
13364
|
+
return requireCatalogueValue(boundaryOptionByIntent, intent);
|
|
13365
|
+
}
|
|
13366
|
+
const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
|
|
13367
|
+
const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
|
|
13368
|
+
boundaryOptionForTransitionIntent("soft-fade-expansive");
|
|
13369
|
+
boundaryOptionForTransitionIntent("wave-edge");
|
|
13370
|
+
boundaryOptionForTransitionIntent("wave-edge-balanced");
|
|
13371
|
+
boundaryOptionForTransitionIntent("wave-edge-gentle");
|
|
13372
|
+
boundaryOptionForTransitionIntent("wave-edge-bold");
|
|
13373
|
+
boundaryOptionForTransitionIntent("wave-edge-drift");
|
|
13374
|
+
boundaryOptionForTransitionIntent("angle-edge-subtle");
|
|
13375
|
+
boundaryOptionForTransitionIntent("angle-edge");
|
|
13376
|
+
boundaryOptionForTransitionIntent("angle-edge-steep");
|
|
13377
|
+
/**
|
|
13378
|
+
* Must remain non-empty; downstream code indexes `[0]` as the documented default.
|
|
13379
|
+
*/
|
|
13380
|
+
const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
|
|
13381
|
+
const noneTransitionVariant = {
|
|
13382
|
+
familyId: "none",
|
|
13383
|
+
variantId: "none",
|
|
13384
|
+
label: "None",
|
|
13385
|
+
boundaryOption: noneBoundaryOption
|
|
12853
13386
|
};
|
|
12854
|
-
|
|
12855
|
-
|
|
12856
|
-
|
|
12857
|
-
|
|
12858
|
-
|
|
12859
|
-
|
|
12860
|
-
|
|
12861
|
-
|
|
12862
|
-
|
|
13387
|
+
function transitionVariantForEntry(entry) {
|
|
13388
|
+
return {
|
|
13389
|
+
familyId: entry.family,
|
|
13390
|
+
variantId: entry.variantId,
|
|
13391
|
+
label: entry.variantLabel,
|
|
13392
|
+
boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
|
|
13393
|
+
};
|
|
13394
|
+
}
|
|
13395
|
+
const sectionTransitionFamilies = [{
|
|
13396
|
+
id: "none",
|
|
13397
|
+
label: "None",
|
|
13398
|
+
variants: [noneTransitionVariant]
|
|
13399
|
+
}, ...transitionCatalogueFamilies.map((family) => ({
|
|
13400
|
+
id: family.id,
|
|
13401
|
+
label: family.label,
|
|
13402
|
+
variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
|
|
13403
|
+
}))];
|
|
13404
|
+
new Map(boundaryOptions.map((option) => [option.id, option]));
|
|
13405
|
+
new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
|
|
13406
|
+
new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
|
|
13407
|
+
new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
|
|
13408
|
+
function stableTreatmentKey(treatment) {
|
|
13409
|
+
switch (treatment.kind) {
|
|
13410
|
+
case "none": return "none";
|
|
13411
|
+
case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
|
|
13412
|
+
case "wave-edge": return [
|
|
13413
|
+
treatment.kind,
|
|
13414
|
+
treatment.height,
|
|
13415
|
+
treatment.amplitude,
|
|
13416
|
+
treatment.rhythm,
|
|
13417
|
+
treatment.symmetry
|
|
13418
|
+
].join(":");
|
|
13419
|
+
case "angle-edge": return [
|
|
13420
|
+
treatment.kind,
|
|
13421
|
+
treatment.height,
|
|
13422
|
+
treatment.slope,
|
|
13423
|
+
treatment.direction
|
|
13424
|
+
].join(":");
|
|
13425
|
+
case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
|
|
13426
|
+
}
|
|
13427
|
+
}
|
|
13428
|
+
requireThemeColorToken$1("background");
|
|
13429
|
+
function requireThemeColorToken$1(value) {
|
|
13430
|
+
const token = parseThemeColorToken(value);
|
|
13431
|
+
if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
|
|
13432
|
+
return token;
|
|
13433
|
+
}
|
|
13434
|
+
//#endregion
|
|
13435
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
13436
|
+
const defaultHeaderBrandPreferences = {
|
|
13437
|
+
brandDisplay: "auto",
|
|
13438
|
+
logoSize: "auto"
|
|
12863
13439
|
};
|
|
12864
|
-
asBoundaryOptionId("break:expansive");
|
|
12865
|
-
asBoundaryOptionId("break:wave");
|
|
12866
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
12867
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
12868
|
-
asBoundaryOptionId("break:wave-bold");
|
|
12869
|
-
asBoundaryOptionId("break:wave-drift");
|
|
12870
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
12871
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
12872
|
-
asBoundaryOptionId("break:angle-steep");
|
|
12873
13440
|
asBoundaryOptionId("break:unknown");
|
|
12874
13441
|
const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
|
|
12875
13442
|
kind: z.literal("user-pinned"),
|
|
@@ -12996,14 +13563,11 @@ function validateUniquePageDesignPins(intent, ctx) {
|
|
|
12996
13563
|
label: "block Look pin"
|
|
12997
13564
|
});
|
|
12998
13565
|
addDuplicateStringIssues(ctx, {
|
|
12999
|
-
values: intent.boundaryPins.map((pin) =>
|
|
13566
|
+
values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
|
|
13000
13567
|
path: ["boundaryPins"],
|
|
13001
13568
|
label: "boundary pin"
|
|
13002
13569
|
});
|
|
13003
13570
|
}
|
|
13004
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
13005
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
13006
|
-
}
|
|
13007
13571
|
//#endregion
|
|
13008
13572
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
13009
13573
|
/**
|
|
@@ -14631,6 +15195,13 @@ z.object({
|
|
|
14631
15195
|
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
14632
15196
|
authority: styleAuthoritySchema
|
|
14633
15197
|
}).strict();
|
|
15198
|
+
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
15199
|
+
asPageFlowPresetId("generated-default");
|
|
15200
|
+
asSiteStyleId("site-style:south-west-twerk-school");
|
|
15201
|
+
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
15202
|
+
asLayoutVariantKey("classic");
|
|
15203
|
+
asLayoutVariantKey("micro");
|
|
15204
|
+
asBoundaryOptionId("break:wave");
|
|
14634
15205
|
//#endregion
|
|
14635
15206
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
14636
15207
|
function defineSectionForegroundRuntimeTokens(input) {
|
|
@@ -14654,7 +15225,7 @@ function defineComponentRuntimeRules(rules) {
|
|
|
14654
15225
|
}
|
|
14655
15226
|
/**
|
|
14656
15227
|
* Default design rules translate semantic page-level choices into the current
|
|
14657
|
-
* runtime's section background
|
|
15228
|
+
* runtime's section background vocabulary.
|
|
14658
15229
|
*/
|
|
14659
15230
|
const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
14660
15231
|
sectionSurfaces: {
|
|
@@ -14689,8 +15260,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
14689
15260
|
color: "surface",
|
|
14690
15261
|
opacity: .88
|
|
14691
15262
|
}
|
|
14692
|
-
}
|
|
14693
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
15263
|
+
}
|
|
14694
15264
|
});
|
|
14695
15265
|
/**
|
|
14696
15266
|
* Default component rules translate frame and item-surface semantics into the
|
|
@@ -16425,19 +16995,11 @@ const curatedSiteStyles = [
|
|
|
16425
16995
|
})
|
|
16426
16996
|
];
|
|
16427
16997
|
new Map(curatedSiteStyles.map((style) => [style.id, style]));
|
|
16428
|
-
asPageFlowPresetId("generated-default");
|
|
16429
|
-
asSiteStyleId("site-style:south-west-twerk-school");
|
|
16430
|
-
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
16431
|
-
asLayoutVariantKey("classic");
|
|
16432
|
-
asLayoutVariantKey("micro");
|
|
16433
|
-
asBoundaryOptionId("break:wave");
|
|
16434
|
-
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
16435
16998
|
//#endregion
|
|
16436
16999
|
//#region ../theme-core/src/site-styles/resolver.ts
|
|
16437
17000
|
const blockDesignFallback = {
|
|
16438
17001
|
sectionSurface: "base",
|
|
16439
17002
|
contentFrame: plainFrame,
|
|
16440
|
-
transitionAfter: "none",
|
|
16441
17003
|
sectionHeight: "default",
|
|
16442
17004
|
heroLegibility: "none",
|
|
16443
17005
|
imageSurfaceTreatment: { kind: "none" },
|
|
@@ -16448,7 +17010,7 @@ const blockDesignFallback = {
|
|
|
16448
17010
|
accordionIconTreatment: null,
|
|
16449
17011
|
composition: null
|
|
16450
17012
|
};
|
|
16451
|
-
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.
|
|
17013
|
+
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
16452
17014
|
//#endregion
|
|
16453
17015
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
16454
17016
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
@@ -17041,7 +17603,8 @@ const siteOptionSources = [
|
|
|
17041
17603
|
"eventCategories",
|
|
17042
17604
|
"eventSeries",
|
|
17043
17605
|
"venues",
|
|
17044
|
-
"staffMembers"
|
|
17606
|
+
"staffMembers",
|
|
17607
|
+
"appointmentServiceCategories"
|
|
17045
17608
|
];
|
|
17046
17609
|
const mediaDeliverySchema = z.object({
|
|
17047
17610
|
sizes: z.string().optional(),
|
|
@@ -21119,9 +21682,7 @@ function navRow(opts) {
|
|
|
21119
21682
|
rel: { $bind: { from: `${childItemName}.rel` } },
|
|
21120
21683
|
"data-active": { $bind: { from: `${childItemName}.active` } }
|
|
21121
21684
|
}, [text({ as: "span" }, bind(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
|
|
21122
|
-
const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [
|
|
21123
|
-
type: "button",
|
|
21124
|
-
variantId: "",
|
|
21685
|
+
const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [el("headerControl", {
|
|
21125
21686
|
className: prependClassName("nav-dropdown-trigger", linkClassName),
|
|
21126
21687
|
"aria-haspopup": "menu",
|
|
21127
21688
|
"aria-expanded": "false",
|
|
@@ -21189,9 +21750,7 @@ function navColumn(opts) {
|
|
|
21189
21750
|
const dropdown = el("div", {
|
|
21190
21751
|
className: "nav-mobile-dropdown",
|
|
21191
21752
|
"data-nav-mobile-dropdown": "true"
|
|
21192
|
-
}, [
|
|
21193
|
-
type: "button",
|
|
21194
|
-
variantId: "",
|
|
21753
|
+
}, [el("headerControl", {
|
|
21195
21754
|
className: triggerClassName,
|
|
21196
21755
|
"aria-expanded": "false",
|
|
21197
21756
|
"aria-controls": childrenId,
|
|
@@ -27503,6 +28062,49 @@ const layoutTransforms = [
|
|
|
27503
28062
|
footerLogoMediaClassTransform,
|
|
27504
28063
|
footerLogoTextVisibleTransform
|
|
27505
28064
|
];
|
|
28065
|
+
//#endregion
|
|
28066
|
+
//#region ../blocks/src/system/transforms/registry/chromeLogo.ts
|
|
28067
|
+
const chromeLogoSchema = z.object({ surface: z.enum([
|
|
28068
|
+
"header-root",
|
|
28069
|
+
"header-mobile-panel",
|
|
28070
|
+
"footer-root"
|
|
28071
|
+
]) });
|
|
28072
|
+
/** The brand foreground shares the logo's surface; navigation may own a separate capsule. */
|
|
28073
|
+
function chromeSurfaceTextToken(surface, theme, palette) {
|
|
28074
|
+
switch (surface) {
|
|
28075
|
+
case "header-root": {
|
|
28076
|
+
const header = theme.header;
|
|
28077
|
+
const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
|
|
28078
|
+
return foreground.kind === "known" ? foreground.roles.text : resolveHeaderLeafTextColor(header);
|
|
28079
|
+
}
|
|
28080
|
+
case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
|
|
28081
|
+
case "footer-root": {
|
|
28082
|
+
const foreground = resolveFooterRootForeground(theme.footer, palette);
|
|
28083
|
+
return foreground.kind === "known" ? foreground.roles.text : void 0;
|
|
28084
|
+
}
|
|
28085
|
+
}
|
|
28086
|
+
}
|
|
28087
|
+
function readChromeTheme(viewModel) {
|
|
28088
|
+
return asPartialObject(asPartialObject(viewModel?.["$root"])?.theme) ?? {};
|
|
28089
|
+
}
|
|
28090
|
+
function resolveChromeSurfaceTone(surface, context) {
|
|
28091
|
+
return surfaceToneFromForegroundToken(context.theme.palette, chromeSurfaceTextToken(surface, readChromeTheme(context.viewModel), context.theme.palette));
|
|
28092
|
+
}
|
|
28093
|
+
const chromeLogoTransforms = [{
|
|
28094
|
+
id: "layout.chromeLogo",
|
|
28095
|
+
kind: "formatter",
|
|
28096
|
+
summary: "Select the light- or dark-background site logo for a header or footer surface",
|
|
28097
|
+
schema: chromeLogoSchema,
|
|
28098
|
+
run: (value, options, context) => {
|
|
28099
|
+
const content = asPartialObject(value);
|
|
28100
|
+
const variants = asPartialObject(content?.logoVariants);
|
|
28101
|
+
if (!variants) return content?.logo ?? null;
|
|
28102
|
+
return selectLogoVariant(resolveChromeSurfaceTone(options.surface, context), {
|
|
28103
|
+
forLightBackgrounds: variants.forLightBackgrounds ?? null,
|
|
28104
|
+
forDarkBackgrounds: variants.forDarkBackgrounds ?? null
|
|
28105
|
+
});
|
|
28106
|
+
}
|
|
28107
|
+
}];
|
|
27506
28108
|
const headerRuntimeTransforms = [{
|
|
27507
28109
|
id: "layout.headerRuntimeContract",
|
|
27508
28110
|
kind: "formatter",
|
|
@@ -27702,46 +28304,42 @@ const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
|
27702
28304
|
equals
|
|
27703
28305
|
}
|
|
27704
28306
|
});
|
|
27705
|
-
|
|
28307
|
+
/** Draw whichever site logo suits the surface this row sits on. */
|
|
28308
|
+
const bindChromeLogo = (surface) => bind("content", { transforms: [{
|
|
28309
|
+
id: "layout.chromeLogo",
|
|
28310
|
+
options: { surface }
|
|
28311
|
+
}] });
|
|
28312
|
+
/**
|
|
28313
|
+
* The brand link. The logo is chosen per surface because the open mobile menu
|
|
28314
|
+
* paints its own background, which may be the opposite tone to the header.
|
|
28315
|
+
*/
|
|
28316
|
+
const createLogoRow = (surface) => link({
|
|
27706
28317
|
href: "/",
|
|
27707
28318
|
className: bindProp("$root.theme.header.logo", {
|
|
27708
28319
|
transforms: pipe(tx("layout.headerLogoClass")),
|
|
27709
28320
|
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"
|
|
27710
28321
|
})
|
|
27711
|
-
}, [
|
|
27712
|
-
|
|
27713
|
-
|
|
27714
|
-
|
|
27715
|
-
|
|
27716
|
-
|
|
27717
|
-
|
|
27718
|
-
|
|
27719
|
-
}) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
27720
|
-
text({
|
|
27721
|
-
as: "strong",
|
|
27722
|
-
className: "header-logo-text rb-truncate"
|
|
27723
|
-
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
27724
|
-
]);
|
|
28322
|
+
}, [media({ className: bindProp("$root.theme.header.logo", {
|
|
28323
|
+
transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
|
|
28324
|
+
fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
|
|
28325
|
+
}) }, when("content.logo"), bindChromeLogo(surface)), text({
|
|
28326
|
+
as: "strong",
|
|
28327
|
+
className: "header-logo-text rb-truncate"
|
|
28328
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
|
|
28329
|
+
const logoRow = createLogoRow("header-root");
|
|
27725
28330
|
const centeredLogoRow = link({
|
|
27726
28331
|
href: "/",
|
|
27727
28332
|
className: bindProp("$root.theme.header.logo", {
|
|
27728
28333
|
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" })),
|
|
27729
28334
|
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"
|
|
27730
28335
|
})
|
|
27731
|
-
}, [
|
|
27732
|
-
|
|
27733
|
-
|
|
27734
|
-
|
|
27735
|
-
|
|
27736
|
-
|
|
27737
|
-
|
|
27738
|
-
fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
|
|
27739
|
-
}) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
27740
|
-
text({
|
|
27741
|
-
as: "strong",
|
|
27742
|
-
className: "header-logo-text"
|
|
27743
|
-
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
27744
|
-
]);
|
|
28336
|
+
}, [media({ className: bindProp("$root.theme.header.logo", {
|
|
28337
|
+
transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
|
|
28338
|
+
fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
|
|
28339
|
+
}) }, when("content.logo"), bindChromeLogo("header-root")), text({
|
|
28340
|
+
as: "strong",
|
|
28341
|
+
className: "header-logo-text"
|
|
28342
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
|
|
27745
28343
|
const createNavRow = (className, align = "end") => navRow({
|
|
27746
28344
|
className: `${className} header-nav-row`,
|
|
27747
28345
|
align,
|
|
@@ -27781,10 +28379,8 @@ const mobileToggleIcon = stack({
|
|
|
27781
28379
|
}
|
|
27782
28380
|
]);
|
|
27783
28381
|
const mobileToggleButton = {
|
|
27784
|
-
type: "
|
|
28382
|
+
type: "headerControl",
|
|
27785
28383
|
props: {
|
|
27786
|
-
type: "button",
|
|
27787
|
-
variantId: "",
|
|
27788
28384
|
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`,
|
|
27789
28385
|
"aria-label": "Open menu",
|
|
27790
28386
|
"aria-expanded": "false",
|
|
@@ -27794,10 +28390,8 @@ const mobileToggleButton = {
|
|
|
27794
28390
|
children: [mobileToggleIcon]
|
|
27795
28391
|
};
|
|
27796
28392
|
const mobileOverlayToggleButton = {
|
|
27797
|
-
type: "
|
|
28393
|
+
type: "headerControl",
|
|
27798
28394
|
props: {
|
|
27799
|
-
type: "button",
|
|
27800
|
-
variantId: "",
|
|
27801
28395
|
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",
|
|
27802
28396
|
"aria-label": "Open menu",
|
|
27803
28397
|
"aria-expanded": "false",
|
|
@@ -27821,7 +28415,7 @@ const mobileOverlayHeader = inline({
|
|
|
27821
28415
|
align: "center",
|
|
27822
28416
|
justify: "between",
|
|
27823
28417
|
style: borderColorStyle("border")
|
|
27824
|
-
}, [
|
|
28418
|
+
}, [createLogoRow("header-mobile-panel"), mobileOverlayToggleButton]);
|
|
27825
28419
|
const mobileOverlayBody = stack({
|
|
27826
28420
|
className: "rb-flex-1 rb-px-6 rb-py-6",
|
|
27827
28421
|
gap: "md",
|
|
@@ -28008,7 +28602,10 @@ const brandLogo = link({
|
|
|
28008
28602
|
options: { base: "rb-h-10 rb-w-auto" }
|
|
28009
28603
|
}],
|
|
28010
28604
|
fallback: "rb-h-10 rb-w-auto"
|
|
28011
|
-
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content
|
|
28605
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
|
|
28606
|
+
id: "layout.chromeLogo",
|
|
28607
|
+
options: { surface: "footer-root" }
|
|
28608
|
+
}] })), text({
|
|
28012
28609
|
as: "strong",
|
|
28013
28610
|
className: "footer-logo-text rb-nav-text"
|
|
28014
28611
|
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
@@ -29701,6 +30298,15 @@ const appointmentServicesBlockDefinition = {
|
|
|
29701
30298
|
required: false,
|
|
29702
30299
|
ui: { intent: "content" }
|
|
29703
30300
|
},
|
|
30301
|
+
createSiteOptionSelectField({
|
|
30302
|
+
id: "categoryId",
|
|
30303
|
+
label: "Category",
|
|
30304
|
+
description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
|
|
30305
|
+
required: false,
|
|
30306
|
+
multiple: false,
|
|
30307
|
+
optionSource: "appointmentServiceCategories",
|
|
30308
|
+
ui: { intent: "content" }
|
|
30309
|
+
}),
|
|
29704
30310
|
sectionStylesField({
|
|
29705
30311
|
id: "_sectionStyles",
|
|
29706
30312
|
label: "Section styles",
|
|
@@ -29735,6 +30341,7 @@ const appointmentServicesBlockDefinition = {
|
|
|
29735
30341
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
29736
30342
|
el("appointment-services", {
|
|
29737
30343
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
30344
|
+
categoryId: { $bind: { from: "content.categoryId" } },
|
|
29738
30345
|
services: { $bind: { from: "data.services" } },
|
|
29739
30346
|
pathname: { $bind: { from: "$root.pathname" } },
|
|
29740
30347
|
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
@@ -30209,6 +30816,12 @@ const occurrenceContextSchema = z.object({
|
|
|
30209
30816
|
capacityOverride: z.number().nullable().optional(),
|
|
30210
30817
|
overrides: z.record(z.string(), z.unknown()).nullable().optional()
|
|
30211
30818
|
}).nullable();
|
|
30819
|
+
//#endregion
|
|
30820
|
+
//#region ../blocks/src/system/runtime/api/readAuthority.ts
|
|
30821
|
+
const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("published") }).strict(), z.object({
|
|
30822
|
+
kind: z.literal("preview"),
|
|
30823
|
+
token: z.string().min(1)
|
|
30824
|
+
}).strict()]);
|
|
30212
30825
|
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z.object({
|
|
30213
30826
|
kind: z.literal("unsupported"),
|
|
30214
30827
|
reason: z.enum([
|
|
@@ -30471,6 +31084,7 @@ const eventRegistrationSourceSchema = z.object({
|
|
|
30471
31084
|
apiBaseUrl: z.string().optional(),
|
|
30472
31085
|
portalToken: z.string().nullable().optional(),
|
|
30473
31086
|
previewToken: z.string().nullable().optional(),
|
|
31087
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
30474
31088
|
...eventRegistrationHydrationSchemaShape,
|
|
30475
31089
|
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
30476
31090
|
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
@@ -30508,6 +31122,7 @@ z.object({
|
|
|
30508
31122
|
apiBaseUrl: z.string().optional(),
|
|
30509
31123
|
portalToken: z.string().nullable().optional(),
|
|
30510
31124
|
previewToken: z.string().nullable().optional(),
|
|
31125
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
30511
31126
|
stage: previewStageSchema.optional()
|
|
30512
31127
|
});
|
|
30513
31128
|
function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
|
|
@@ -30766,6 +31381,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
30766
31381
|
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
30767
31382
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
30768
31383
|
eventRegistration(withApiBindings({
|
|
31384
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
30769
31385
|
occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
|
|
30770
31386
|
subject: { $bind: { from: "$root.subject" } },
|
|
30771
31387
|
portalToken: { $bind: {
|
|
@@ -31417,6 +32033,7 @@ const eventCollectionSourceSchemaShape = {
|
|
|
31417
32033
|
events: z.array(publicEventSchema).nullable().optional(),
|
|
31418
32034
|
siteId: z.string(),
|
|
31419
32035
|
apiBaseUrl: z.string().optional(),
|
|
32036
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
31420
32037
|
stage: previewStageSchema.optional(),
|
|
31421
32038
|
listLayout: eventLayoutSchema.optional(),
|
|
31422
32039
|
listColumns: columnOptionSchema.optional(),
|
|
@@ -31469,7 +32086,6 @@ const eventCollectionDisplaySchemaShape = {
|
|
|
31469
32086
|
const eventCollectionHydrationSchema = z.object({
|
|
31470
32087
|
siteId: z.string(),
|
|
31471
32088
|
calendarWindow: calendarWindowPageSchema.optional(),
|
|
31472
|
-
stage: previewStageSchema.optional(),
|
|
31473
32089
|
prefetchedEvents: z.boolean(),
|
|
31474
32090
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
31475
32091
|
filterEventPresets: z.string().nullable(),
|
|
@@ -31544,7 +32160,6 @@ function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date())
|
|
|
31544
32160
|
return {
|
|
31545
32161
|
calendarWindow: source.calendarWindow ?? void 0,
|
|
31546
32162
|
siteId: source.siteId,
|
|
31547
|
-
stage: source.stage,
|
|
31548
32163
|
prefetchedEvents: source.events != null,
|
|
31549
32164
|
eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
|
|
31550
32165
|
filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
@@ -31564,6 +32179,7 @@ const eventListingSourceSchema = z.object({
|
|
|
31564
32179
|
events: z.array(publicEventSchema).nullable().optional(),
|
|
31565
32180
|
siteId: z.string(),
|
|
31566
32181
|
apiBaseUrl: z.string().optional(),
|
|
32182
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
31567
32183
|
stage: previewStageSchema.optional(),
|
|
31568
32184
|
layout: eventLayoutSchema.optional(),
|
|
31569
32185
|
columns: columnOptionSchema.optional(),
|
|
@@ -31604,7 +32220,6 @@ const eventListingDisplaySchema = z.object({
|
|
|
31604
32220
|
});
|
|
31605
32221
|
const eventListingHydrationSchema = z.object({
|
|
31606
32222
|
siteId: z.string(),
|
|
31607
|
-
stage: previewStageSchema.optional(),
|
|
31608
32223
|
eventsPerPage: eventPageSizeSchema,
|
|
31609
32224
|
paginationAction: eventListPaginationActionSchema,
|
|
31610
32225
|
showFilters: z.boolean(),
|
|
@@ -31627,6 +32242,7 @@ const eventListingRenderSchema = z.object({
|
|
|
31627
32242
|
z.object({
|
|
31628
32243
|
siteId: z.string(),
|
|
31629
32244
|
apiBaseUrl: z.string().optional(),
|
|
32245
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
31630
32246
|
stage: previewStageSchema.optional()
|
|
31631
32247
|
});
|
|
31632
32248
|
const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -31661,7 +32277,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
31661
32277
|
},
|
|
31662
32278
|
hydration: {
|
|
31663
32279
|
siteId: source.siteId,
|
|
31664
|
-
stage: source.stage,
|
|
31665
32280
|
eventsPerPage: pageSize,
|
|
31666
32281
|
paginationAction: resolveEventListPaginationAction({
|
|
31667
32282
|
paginationMode: source.paginationMode,
|
|
@@ -31943,6 +32558,7 @@ const eventListingBlockDefinition = {
|
|
|
31943
32558
|
rootType: "stack",
|
|
31944
32559
|
rootProps: { gap: "lg" },
|
|
31945
32560
|
children: [...eventSectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
|
|
32561
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
31946
32562
|
events: { $bind: { from: "data.events" } },
|
|
31947
32563
|
stage: { $bind: {
|
|
31948
32564
|
from: "$root.previewStage",
|
|
@@ -32140,6 +32756,7 @@ const eventCalendarRenderSchema = z.object({
|
|
|
32140
32756
|
z.object({
|
|
32141
32757
|
siteId: z.string(),
|
|
32142
32758
|
apiBaseUrl: z.string().optional(),
|
|
32759
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
32143
32760
|
stage: previewStageSchema.optional()
|
|
32144
32761
|
});
|
|
32145
32762
|
/**
|
|
@@ -32161,7 +32778,7 @@ function buildEventCalendarDisplay(source) {
|
|
|
32161
32778
|
listColumns: source.listColumns ?? source.columns
|
|
32162
32779
|
}),
|
|
32163
32780
|
kind: "event-calendar",
|
|
32164
|
-
displayMode:
|
|
32781
|
+
displayMode: resolveEventCalendarReadPlan(source).mode,
|
|
32165
32782
|
className: source.className ?? null,
|
|
32166
32783
|
events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
|
|
32167
32784
|
boardTitle: normalizeOptionalText(source.boardTitle),
|
|
@@ -32178,13 +32795,16 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
32178
32795
|
source: createZodCodec(eventCalendarSourceSchema),
|
|
32179
32796
|
render: createZodCodec(eventCalendarRenderSchema)
|
|
32180
32797
|
},
|
|
32181
|
-
buildRender: (source) =>
|
|
32182
|
-
|
|
32183
|
-
|
|
32184
|
-
|
|
32185
|
-
|
|
32186
|
-
|
|
32187
|
-
|
|
32798
|
+
buildRender: (source) => {
|
|
32799
|
+
const plan = resolveEventCalendarReadPlan(source);
|
|
32800
|
+
return {
|
|
32801
|
+
display: buildEventCalendarDisplay(source.calendarWindow && plan.jobs === "calendar" ? {
|
|
32802
|
+
...source,
|
|
32803
|
+
events: source.calendarWindow.events
|
|
32804
|
+
} : source),
|
|
32805
|
+
hydration: buildEventCollectionHydration(source)
|
|
32806
|
+
};
|
|
32807
|
+
}
|
|
32188
32808
|
});
|
|
32189
32809
|
//#endregion
|
|
32190
32810
|
//#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
|
|
@@ -32334,6 +32954,7 @@ const eventCalendarLayout = [styledSection({
|
|
|
32334
32954
|
rootType: "stack",
|
|
32335
32955
|
rootProps: { gap: "lg" },
|
|
32336
32956
|
children: [...eventSectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
|
|
32957
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
32337
32958
|
events: { $bind: { from: "data.events" } },
|
|
32338
32959
|
calendarWindow: { $bind: { from: "data.calendarWindow" } },
|
|
32339
32960
|
stage: { $bind: {
|
|
@@ -36121,6 +36742,7 @@ const shopSourceSchema = z.object({
|
|
|
36121
36742
|
products: z.array(publicProductSchema).nullable().optional(),
|
|
36122
36743
|
siteId: z.string().optional(),
|
|
36123
36744
|
apiBaseUrl: z.string().optional(),
|
|
36745
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
36124
36746
|
stage: previewStageSchema.optional()
|
|
36125
36747
|
});
|
|
36126
36748
|
const productVariantOptionDisplaySchema = z.object({
|
|
@@ -36288,6 +36910,7 @@ function resolveShowPricePerCredit(source) {
|
|
|
36288
36910
|
z.object({
|
|
36289
36911
|
siteId: z.string().optional(),
|
|
36290
36912
|
apiBaseUrl: z.string().optional(),
|
|
36913
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
36291
36914
|
stage: previewStageSchema.optional()
|
|
36292
36915
|
});
|
|
36293
36916
|
const shopBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -36628,6 +37251,7 @@ const shopBlockDefinition = {
|
|
|
36628
37251
|
baseClass: "",
|
|
36629
37252
|
spacing: "spacious",
|
|
36630
37253
|
children: sectionContainer([shop(withApiBindings({
|
|
37254
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
36631
37255
|
mode: "passes-memberships",
|
|
36632
37256
|
showPasses: { $bind: {
|
|
36633
37257
|
from: "content.showPasses",
|
|
@@ -36826,6 +37450,7 @@ const productListBlockDefinition = {
|
|
|
36826
37450
|
baseClass: "",
|
|
36827
37451
|
spacing: "spacious",
|
|
36828
37452
|
children: sectionContainer([productList(withApiBindings({
|
|
37453
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
36829
37454
|
mode: "product-list",
|
|
36830
37455
|
heading: { $bind: {
|
|
36831
37456
|
from: "content.heading",
|
|
@@ -36968,6 +37593,7 @@ const productDetailBlockDefinition = {
|
|
|
36968
37593
|
baseClass: "",
|
|
36969
37594
|
spacing: "spacious",
|
|
36970
37595
|
children: sectionContainer([productDetail(withApiBindings({
|
|
37596
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
36971
37597
|
mode: "product-detail",
|
|
36972
37598
|
heading: { $bind: {
|
|
36973
37599
|
from: "content.heading",
|
|
@@ -37084,6 +37710,7 @@ const cartBlockDefinition = {
|
|
|
37084
37710
|
baseClass: "",
|
|
37085
37711
|
spacing: "spacious",
|
|
37086
37712
|
children: sectionContainer([cart(withApiBindings({
|
|
37713
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
37087
37714
|
mode: "cart",
|
|
37088
37715
|
heading: { $bind: {
|
|
37089
37716
|
from: "content.heading",
|
|
@@ -37167,6 +37794,7 @@ const checkoutBlockDefinition = {
|
|
|
37167
37794
|
baseClass: "",
|
|
37168
37795
|
spacing: "spacious",
|
|
37169
37796
|
children: sectionContainer([checkout(withApiBindings({
|
|
37797
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
37170
37798
|
mode: "checkout",
|
|
37171
37799
|
heading: { $bind: {
|
|
37172
37800
|
from: "content.heading",
|
|
@@ -39839,8 +40467,8 @@ const defaultTransforms = createTransformRegistry([
|
|
|
39839
40467
|
summary: "Choose the read projection required by the calendar display mode",
|
|
39840
40468
|
schema: z.object({ job: z.enum(["list", "calendar"]) }),
|
|
39841
40469
|
run(value, options) {
|
|
39842
|
-
const
|
|
39843
|
-
return
|
|
40470
|
+
const plan = resolveEventCalendarReadPlan(asPartialObject(value) ?? {});
|
|
40471
|
+
return plan.jobs === "both" || plan.jobs === options.job;
|
|
39844
40472
|
}
|
|
39845
40473
|
},
|
|
39846
40474
|
{
|
|
@@ -39853,6 +40481,7 @@ const defaultTransforms = createTransformRegistry([
|
|
|
39853
40481
|
},
|
|
39854
40482
|
...formattingTransforms,
|
|
39855
40483
|
...layoutTransforms,
|
|
40484
|
+
...chromeLogoTransforms,
|
|
39856
40485
|
...uiTransforms,
|
|
39857
40486
|
...mediaTransforms,
|
|
39858
40487
|
...backgroundTransforms,
|
|
@@ -40185,6 +40814,17 @@ function coerceToString(value) {
|
|
|
40185
40814
|
return "";
|
|
40186
40815
|
}
|
|
40187
40816
|
/**
|
|
40817
|
+
* The appointment-services catalogue (issue 1403) pairs the services with the
|
|
40818
|
+
* site's ordered categories. Both are needed to group them, so that response
|
|
40819
|
+
* is passed through whole; any other `{ services }` wrapper is unwrapped.
|
|
40820
|
+
*/
|
|
40821
|
+
function coerceServicesPayload(record) {
|
|
40822
|
+
return Array.isArray(record.services) && Array.isArray(record.categories) ? {
|
|
40823
|
+
services: record.services,
|
|
40824
|
+
categories: record.categories
|
|
40825
|
+
} : record.services;
|
|
40826
|
+
}
|
|
40827
|
+
/**
|
|
40188
40828
|
* Extract data from API response.
|
|
40189
40829
|
* Unwraps common response wrappers: { data }, { form }, { entries }, { services }, { teamMembers }
|
|
40190
40830
|
*
|
|
@@ -40199,7 +40839,7 @@ function coercePayload(payload) {
|
|
|
40199
40839
|
if ("data" in record && typeof record.data !== "function") return record.data;
|
|
40200
40840
|
if ("form" in record && typeof record.form !== "function") return record.form;
|
|
40201
40841
|
if ("entries" in record && typeof record.entries !== "function") return record.entries;
|
|
40202
|
-
if ("services" in record && typeof record.services !== "function") return record
|
|
40842
|
+
if ("services" in record && typeof record.services !== "function") return coerceServicesPayload(record);
|
|
40203
40843
|
if ("teamMembers" in record && typeof record.teamMembers !== "function") return record.teamMembers;
|
|
40204
40844
|
}
|
|
40205
40845
|
return payload;
|
|
@@ -41101,7 +41741,12 @@ const appointmentSetupServiceDraftSchema = z.object({
|
|
|
41101
41741
|
venue: appointmentSetupVenueChoiceSchema,
|
|
41102
41742
|
timezone: z.string().trim().min(1).nullable(),
|
|
41103
41743
|
payment: appointmentSetupPaymentDraftSchema,
|
|
41104
|
-
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
41744
|
+
assignment: appointmentSetupServiceAssignmentDraftSchema,
|
|
41745
|
+
/**
|
|
41746
|
+
* The service's category, or null for "Other" (issue 1403). Omitted leaves
|
|
41747
|
+
* an existing service's category alone and puts a new one in "Other".
|
|
41748
|
+
*/
|
|
41749
|
+
categoryId: z.string().uuid().nullable().optional()
|
|
41105
41750
|
}).superRefine((service, ctx) => {
|
|
41106
41751
|
if (service.payment.kind !== "free" && (service.priceAmount === null || service.priceAmount <= 0)) ctx.addIssue({
|
|
41107
41752
|
code: "custom",
|
|
@@ -42037,7 +42682,7 @@ function usePage(params) {
|
|
|
42037
42682
|
loading: false,
|
|
42038
42683
|
error: null,
|
|
42039
42684
|
page: pageOutline,
|
|
42040
|
-
|
|
42685
|
+
runtimeJoins: pageData.runtimeJoins,
|
|
42041
42686
|
theme: requireSdkTheme(site.theme, siteId),
|
|
42042
42687
|
siteId,
|
|
42043
42688
|
resolvedData,
|