@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/server.mjs
CHANGED
|
@@ -43,6 +43,75 @@ function parsePublicProductCategorySelector(value) {
|
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
//#endregion
|
|
46
|
+
//#region ../api/src/defineEndpointDefinitions.ts
|
|
47
|
+
/**
|
|
48
|
+
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
49
|
+
* method, and parameter contract for the typed URL builders.
|
|
50
|
+
*/
|
|
51
|
+
function defineEndpointDefinitions(definitions) {
|
|
52
|
+
return definitions;
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
56
|
+
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
57
|
+
subscribeNewsletter: {
|
|
58
|
+
path: "/public/sites/{siteId}/newsletter/subscribe",
|
|
59
|
+
method: "POST",
|
|
60
|
+
tags: ["public-newsletter-{siteId}"],
|
|
61
|
+
auth: "public",
|
|
62
|
+
responseKind: "json"
|
|
63
|
+
},
|
|
64
|
+
confirmNewsletter: {
|
|
65
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
66
|
+
method: "GET",
|
|
67
|
+
tags: ["public-newsletter-{siteId}"],
|
|
68
|
+
auth: "public",
|
|
69
|
+
responseKind: "text"
|
|
70
|
+
},
|
|
71
|
+
unsubscribeNewsletter: {
|
|
72
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
73
|
+
method: "GET",
|
|
74
|
+
tags: ["public-newsletter-{siteId}"],
|
|
75
|
+
auth: "public",
|
|
76
|
+
responseKind: "text"
|
|
77
|
+
},
|
|
78
|
+
unsubscribeNewsletterPost: {
|
|
79
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
80
|
+
method: "POST",
|
|
81
|
+
tags: ["public-newsletter-{siteId}"],
|
|
82
|
+
auth: "public",
|
|
83
|
+
responseKind: "text"
|
|
84
|
+
},
|
|
85
|
+
confirmNewsletterPost: {
|
|
86
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
87
|
+
method: "POST",
|
|
88
|
+
tags: ["public-newsletter-{siteId}"],
|
|
89
|
+
auth: "public",
|
|
90
|
+
responseKind: "text"
|
|
91
|
+
},
|
|
92
|
+
getNewsletterPreferences: {
|
|
93
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
94
|
+
method: "GET",
|
|
95
|
+
tags: ["public-newsletter-{siteId}"],
|
|
96
|
+
auth: "public",
|
|
97
|
+
responseKind: "text"
|
|
98
|
+
},
|
|
99
|
+
saveNewsletterPreferences: {
|
|
100
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
101
|
+
method: "POST",
|
|
102
|
+
tags: ["public-newsletter-{siteId}"],
|
|
103
|
+
auth: "public",
|
|
104
|
+
responseKind: "text"
|
|
105
|
+
},
|
|
106
|
+
getNewsletterArchive: {
|
|
107
|
+
path: "/public/sites/{siteId}/newsletter/archive/{token}",
|
|
108
|
+
method: "GET",
|
|
109
|
+
tags: ["public-newsletter-{siteId}"],
|
|
110
|
+
auth: "public",
|
|
111
|
+
responseKind: "text"
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
//#endregion
|
|
46
115
|
//#region ../api/src/apiEndpointTypes.ts
|
|
47
116
|
function allowedDemoMutationPolicy() {
|
|
48
117
|
return {
|
|
@@ -134,17 +203,85 @@ const SDK_ENTRY_READ_ENDPOINTS = {
|
|
|
134
203
|
}
|
|
135
204
|
};
|
|
136
205
|
//#endregion
|
|
137
|
-
//#region ../api/src/defineEndpointDefinitions.ts
|
|
138
|
-
/**
|
|
139
|
-
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
140
|
-
* method, and parameter contract for the typed URL builders.
|
|
141
|
-
*/
|
|
142
|
-
function defineEndpointDefinitions(definitions) {
|
|
143
|
-
return definitions;
|
|
144
|
-
}
|
|
145
|
-
//#endregion
|
|
146
206
|
//#region ../api/src/appointmentEndpointDefinitions.ts
|
|
147
207
|
const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
208
|
+
...defineEndpointDefinitions({
|
|
209
|
+
listGroupedAppointmentServices: {
|
|
210
|
+
path: "/sites/{siteId}/bookings/services/grouped",
|
|
211
|
+
method: "GET",
|
|
212
|
+
auth: "user",
|
|
213
|
+
responseKind: "json",
|
|
214
|
+
errors: ["server:internal_error"]
|
|
215
|
+
},
|
|
216
|
+
reorderAppointmentServices: {
|
|
217
|
+
path: "/sites/{siteId}/bookings/services/order",
|
|
218
|
+
method: "PUT",
|
|
219
|
+
auth: "user",
|
|
220
|
+
responseKind: "json",
|
|
221
|
+
errors: [
|
|
222
|
+
"validation:invalid_input",
|
|
223
|
+
"auth:forbidden",
|
|
224
|
+
"resource:not_found",
|
|
225
|
+
"resource:conflict",
|
|
226
|
+
"server:internal_error"
|
|
227
|
+
]
|
|
228
|
+
},
|
|
229
|
+
listAppointmentServiceCategories: {
|
|
230
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
231
|
+
method: "GET",
|
|
232
|
+
auth: "user",
|
|
233
|
+
responseKind: "json",
|
|
234
|
+
errors: ["server:internal_error"]
|
|
235
|
+
},
|
|
236
|
+
createAppointmentServiceCategory: {
|
|
237
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
238
|
+
method: "POST",
|
|
239
|
+
auth: "user",
|
|
240
|
+
responseKind: "json",
|
|
241
|
+
errors: [
|
|
242
|
+
"validation:invalid_input",
|
|
243
|
+
"auth:forbidden",
|
|
244
|
+
"resource:conflict",
|
|
245
|
+
"server:internal_error"
|
|
246
|
+
]
|
|
247
|
+
},
|
|
248
|
+
updateAppointmentServiceCategory: {
|
|
249
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
250
|
+
method: "PUT",
|
|
251
|
+
auth: "user",
|
|
252
|
+
responseKind: "json",
|
|
253
|
+
errors: [
|
|
254
|
+
"validation:invalid_input",
|
|
255
|
+
"auth:forbidden",
|
|
256
|
+
"resource:not_found",
|
|
257
|
+
"resource:conflict",
|
|
258
|
+
"server:internal_error"
|
|
259
|
+
]
|
|
260
|
+
},
|
|
261
|
+
deleteAppointmentServiceCategory: {
|
|
262
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
263
|
+
method: "DELETE",
|
|
264
|
+
auth: "user",
|
|
265
|
+
responseKind: "json",
|
|
266
|
+
errors: [
|
|
267
|
+
"auth:forbidden",
|
|
268
|
+
"resource:not_found",
|
|
269
|
+
"server:internal_error"
|
|
270
|
+
]
|
|
271
|
+
},
|
|
272
|
+
reorderAppointmentServiceCategories: {
|
|
273
|
+
path: "/sites/{siteId}/bookings/service-categories/order",
|
|
274
|
+
method: "PUT",
|
|
275
|
+
auth: "user",
|
|
276
|
+
responseKind: "json",
|
|
277
|
+
errors: [
|
|
278
|
+
"validation:invalid_input",
|
|
279
|
+
"auth:forbidden",
|
|
280
|
+
"resource:conflict",
|
|
281
|
+
"server:internal_error"
|
|
282
|
+
]
|
|
283
|
+
}
|
|
284
|
+
}),
|
|
148
285
|
listAppointmentResources: {
|
|
149
286
|
path: "/sites/{siteId}/bookings/resources",
|
|
150
287
|
method: "GET",
|
|
@@ -1292,39 +1429,6 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1292
1429
|
auth: "user",
|
|
1293
1430
|
responseKind: "json",
|
|
1294
1431
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1295
|
-
},
|
|
1296
|
-
listNewsletterSendJobs: {
|
|
1297
|
-
path: "/sites/{siteId}/newsletter/jobs",
|
|
1298
|
-
method: "GET",
|
|
1299
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1300
|
-
auth: "user",
|
|
1301
|
-
responseKind: "json"
|
|
1302
|
-
},
|
|
1303
|
-
retryNewsletterSendJob: {
|
|
1304
|
-
path: "/sites/{siteId}/newsletter/jobs/{jobId}/retry",
|
|
1305
|
-
method: "POST",
|
|
1306
|
-
errors: [
|
|
1307
|
-
"validation:invalid_input",
|
|
1308
|
-
"resource:not_found",
|
|
1309
|
-
"auth:forbidden",
|
|
1310
|
-
"server:internal_error"
|
|
1311
|
-
],
|
|
1312
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1313
|
-
auth: "user",
|
|
1314
|
-
responseKind: "json"
|
|
1315
|
-
},
|
|
1316
|
-
cancelNewsletterSendJob: {
|
|
1317
|
-
path: "/sites/{siteId}/newsletter/jobs/{jobId}/cancel",
|
|
1318
|
-
method: "POST",
|
|
1319
|
-
errors: [
|
|
1320
|
-
"validation:invalid_input",
|
|
1321
|
-
"resource:not_found",
|
|
1322
|
-
"auth:forbidden",
|
|
1323
|
-
"server:internal_error"
|
|
1324
|
-
],
|
|
1325
|
-
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1326
|
-
auth: "user",
|
|
1327
|
-
responseKind: "json"
|
|
1328
1432
|
}
|
|
1329
1433
|
});
|
|
1330
1434
|
//#endregion
|
|
@@ -3403,6 +3507,7 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
3403
3507
|
}
|
|
3404
3508
|
});
|
|
3405
3509
|
const API_ENDPOINTS$1 = {
|
|
3510
|
+
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3406
3511
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
3407
3512
|
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
3408
3513
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
@@ -6537,41 +6642,6 @@ const API_ENDPOINTS$1 = {
|
|
|
6537
6642
|
"server:internal_error"
|
|
6538
6643
|
]
|
|
6539
6644
|
},
|
|
6540
|
-
subscribeNewsletter: {
|
|
6541
|
-
path: "/public/sites/{siteId}/newsletter/subscribe",
|
|
6542
|
-
method: "POST",
|
|
6543
|
-
tags: ["public-newsletter-{siteId}"],
|
|
6544
|
-
auth: "public",
|
|
6545
|
-
responseKind: "json"
|
|
6546
|
-
},
|
|
6547
|
-
confirmNewsletter: {
|
|
6548
|
-
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
6549
|
-
method: "GET",
|
|
6550
|
-
tags: ["public-newsletter-{siteId}"],
|
|
6551
|
-
auth: "public",
|
|
6552
|
-
responseKind: "text"
|
|
6553
|
-
},
|
|
6554
|
-
unsubscribeNewsletter: {
|
|
6555
|
-
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
6556
|
-
method: "GET",
|
|
6557
|
-
tags: ["public-newsletter-{siteId}"],
|
|
6558
|
-
auth: "public",
|
|
6559
|
-
responseKind: "text"
|
|
6560
|
-
},
|
|
6561
|
-
unsubscribeNewsletterPost: {
|
|
6562
|
-
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
6563
|
-
method: "POST",
|
|
6564
|
-
tags: ["public-newsletter-{siteId}"],
|
|
6565
|
-
auth: "public",
|
|
6566
|
-
responseKind: "text"
|
|
6567
|
-
},
|
|
6568
|
-
getNewsletterArchive: {
|
|
6569
|
-
path: "/public/sites/{siteId}/newsletter/archive/{token}",
|
|
6570
|
-
method: "GET",
|
|
6571
|
-
tags: ["public-newsletter-{siteId}"],
|
|
6572
|
-
auth: "public",
|
|
6573
|
-
responseKind: "text"
|
|
6574
|
-
},
|
|
6575
6645
|
listSiteContentTypes: {
|
|
6576
6646
|
path: "/sites/{siteId}/content-types",
|
|
6577
6647
|
method: "GET",
|
|
@@ -9539,7 +9609,7 @@ var SimpleCache = class {
|
|
|
9539
9609
|
* 1. This constant
|
|
9540
9610
|
* 2. The "version" field in package.json
|
|
9541
9611
|
*/
|
|
9542
|
-
const SDK_VERSION = "0.
|
|
9612
|
+
const SDK_VERSION = "0.145.0";
|
|
9543
9613
|
//#endregion
|
|
9544
9614
|
//#region src/client/error.ts
|
|
9545
9615
|
let _Symbol$for;
|
|
@@ -10606,6 +10676,8 @@ const buttonSystemSchema = z.strictObject({
|
|
|
10606
10676
|
//#endregion
|
|
10607
10677
|
//#region ../theme-core/src/palette/utils/colorConversion.ts
|
|
10608
10678
|
const clamp01 = (x) => Math.max(0, Math.min(1, x));
|
|
10679
|
+
const mod = (a, n) => (a % n + n) % n;
|
|
10680
|
+
const deg = (x) => mod(x, 360);
|
|
10609
10681
|
function hexToRgb(hex) {
|
|
10610
10682
|
const h = hex.replace(/^#/, "");
|
|
10611
10683
|
const m = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
|
|
@@ -10628,6 +10700,45 @@ function srgbToLinear(u) {
|
|
|
10628
10700
|
function linearToSrgb(x) {
|
|
10629
10701
|
return clamp01(x <= .0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - .055) * 255;
|
|
10630
10702
|
}
|
|
10703
|
+
function rgbToHsl(r, g, b) {
|
|
10704
|
+
const R = r / 255, G = g / 255, B = b / 255;
|
|
10705
|
+
const max = Math.max(R, G, B), min = Math.min(R, G, B);
|
|
10706
|
+
const d = max - min;
|
|
10707
|
+
let h = 0;
|
|
10708
|
+
if (d !== 0) {
|
|
10709
|
+
switch (max) {
|
|
10710
|
+
case R:
|
|
10711
|
+
h = (G - B) / d + (G < B ? 6 : 0);
|
|
10712
|
+
break;
|
|
10713
|
+
case G:
|
|
10714
|
+
h = (B - R) / d + 2;
|
|
10715
|
+
break;
|
|
10716
|
+
case B:
|
|
10717
|
+
h = (R - G) / d + 4;
|
|
10718
|
+
break;
|
|
10719
|
+
}
|
|
10720
|
+
h *= 60;
|
|
10721
|
+
}
|
|
10722
|
+
const l = (max + min) / 2;
|
|
10723
|
+
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
10724
|
+
return {
|
|
10725
|
+
h,
|
|
10726
|
+
s,
|
|
10727
|
+
l
|
|
10728
|
+
};
|
|
10729
|
+
}
|
|
10730
|
+
function srgbToOklab(r, g, b) {
|
|
10731
|
+
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
10732
|
+
const l = .4122214708 * R + .5363325363 * G + .0514459929 * B;
|
|
10733
|
+
const m = .2119034982 * R + .6806995451 * G + .1073969566 * B;
|
|
10734
|
+
const s = .0883024619 * R + .2817188376 * G + .6299787005 * B;
|
|
10735
|
+
const l_ = Math.cbrt(l), m_ = Math.cbrt(m), s_ = Math.cbrt(s);
|
|
10736
|
+
return {
|
|
10737
|
+
L: .2104542553 * l_ + .793617785 * m_ - .0040720468 * s_,
|
|
10738
|
+
a: 1.9779984951 * l_ - 2.428592205 * m_ + .4505937099 * s_,
|
|
10739
|
+
b: .0259040371 * l_ + .7827717662 * m_ - .808675766 * s_
|
|
10740
|
+
};
|
|
10741
|
+
}
|
|
10631
10742
|
function oklabToSrgb(L, a, b) {
|
|
10632
10743
|
const l_ = Math.pow(L + .3963377774 * a + .2158037573 * b, 3);
|
|
10633
10744
|
const m_ = Math.pow(L - .1055613458 * a - .0638541728 * b, 3);
|
|
@@ -10641,6 +10752,14 @@ function oklabToSrgb(L, a, b) {
|
|
|
10641
10752
|
b: linearToSrgb(B)
|
|
10642
10753
|
};
|
|
10643
10754
|
}
|
|
10755
|
+
function oklabToOklch(L, a, b) {
|
|
10756
|
+
const C = Math.sqrt(a * a + b * b);
|
|
10757
|
+
return {
|
|
10758
|
+
L,
|
|
10759
|
+
C,
|
|
10760
|
+
h: C < 1e-7 ? 0 : deg(Math.atan2(b, a) * 180 / Math.PI)
|
|
10761
|
+
};
|
|
10762
|
+
}
|
|
10644
10763
|
function oklchToOklab(L, C, h) {
|
|
10645
10764
|
const hr = h * Math.PI / 180;
|
|
10646
10765
|
return {
|
|
@@ -10649,6 +10768,27 @@ function oklchToOklab(L, C, h) {
|
|
|
10649
10768
|
b: C * Math.sin(hr)
|
|
10650
10769
|
};
|
|
10651
10770
|
}
|
|
10771
|
+
function featuresFromHex(hex) {
|
|
10772
|
+
const { r, g, b } = hexToRgb(hex);
|
|
10773
|
+
const { h, s, l } = rgbToHsl(r, g, b);
|
|
10774
|
+
const { L, a, b: b2 } = srgbToOklab(r, g, b);
|
|
10775
|
+
const { L: okL, C: okC, h: okH } = oklabToOklch(L, a, b2);
|
|
10776
|
+
return {
|
|
10777
|
+
r,
|
|
10778
|
+
g,
|
|
10779
|
+
b,
|
|
10780
|
+
h,
|
|
10781
|
+
s,
|
|
10782
|
+
l,
|
|
10783
|
+
v: Math.max(r, g, b) / 255,
|
|
10784
|
+
Y: .2126 * srgbToLinear(r) + .7152 * srgbToLinear(g) + .0722 * srgbToLinear(b),
|
|
10785
|
+
chroma: s,
|
|
10786
|
+
okL,
|
|
10787
|
+
okC,
|
|
10788
|
+
okH,
|
|
10789
|
+
hex
|
|
10790
|
+
};
|
|
10791
|
+
}
|
|
10652
10792
|
function relativeLuminance(r, g, b) {
|
|
10653
10793
|
const R = srgbToLinear(r), G = srgbToLinear(g), B = srgbToLinear(b);
|
|
10654
10794
|
return .2126 * R + .7152 * G + .0722 * B;
|
|
@@ -11698,6 +11838,36 @@ function normalizedReference(value) {
|
|
|
11698
11838
|
return normalized.length > 0 ? normalized : null;
|
|
11699
11839
|
}
|
|
11700
11840
|
//#endregion
|
|
11841
|
+
//#region ../theme-core/src/surfaces/logoVariant.ts
|
|
11842
|
+
/** Concrete hex behind a plain, opaque palette token, or null otherwise. */
|
|
11843
|
+
function opaquePaletteHexForToken(expandedPalette, token) {
|
|
11844
|
+
if (!token) return null;
|
|
11845
|
+
const parts = parseColorTokenParts(token);
|
|
11846
|
+
if (parts.kind !== "token" || parts.opacityPercent !== null) return null;
|
|
11847
|
+
return expandedPalette[parts.token] ?? null;
|
|
11848
|
+
}
|
|
11849
|
+
/**
|
|
11850
|
+
* Tone of the surface a foreground token was resolved for.
|
|
11851
|
+
*
|
|
11852
|
+
* A token with opacity has no known underlay to composite against, and a raw
|
|
11853
|
+
* or unrecognised token has no palette hex, so both are `unknown` rather than
|
|
11854
|
+
* a guess.
|
|
11855
|
+
*/
|
|
11856
|
+
function surfaceToneFromForegroundToken(expandedPalette, foregroundToken) {
|
|
11857
|
+
const hex = opaquePaletteHexForToken(expandedPalette, foregroundToken);
|
|
11858
|
+
if (!hex) return "unknown";
|
|
11859
|
+
return featuresFromHex(hex).Y >= .5 ? "dark" : "light";
|
|
11860
|
+
}
|
|
11861
|
+
/**
|
|
11862
|
+
* The logo to draw on a surface of the given tone. A missing variant falls
|
|
11863
|
+
* back to the other one, and an unknown tone uses the light-backgrounds logo,
|
|
11864
|
+
* which is what every site rendered before variants existed.
|
|
11865
|
+
*/
|
|
11866
|
+
function selectLogoVariant(tone, variants) {
|
|
11867
|
+
const { forLightBackgrounds, forDarkBackgrounds } = variants;
|
|
11868
|
+
return tone === "dark" ? forDarkBackgrounds ?? forLightBackgrounds : forLightBackgrounds ?? forDarkBackgrounds;
|
|
11869
|
+
}
|
|
11870
|
+
//#endregion
|
|
11701
11871
|
//#region ../theme-core/src/utils/colorStyles.ts
|
|
11702
11872
|
const COLOR_VAR_PREFIX = "--tb-";
|
|
11703
11873
|
function parseToken(source) {
|
|
@@ -11749,16 +11919,28 @@ function backgroundColorStyle(token) {
|
|
|
11749
11919
|
return { backgroundColor: rgbColorValue(token) };
|
|
11750
11920
|
}
|
|
11751
11921
|
/**
|
|
11922
|
+
* Converts a text color token to a CSS color value that follows the enclosing
|
|
11923
|
+
* surface. The semantic text tokens (`text`, `heading`, `mutedText`) resolve
|
|
11924
|
+
* to the surface foreground variables, so text adapts when a section's
|
|
11925
|
+
* background changes; any other token is a fixed theme color.
|
|
11926
|
+
*
|
|
11927
|
+
* @param token - Theme color token
|
|
11928
|
+
* @returns CSS color value
|
|
11929
|
+
*/
|
|
11930
|
+
function textColorValue(token) {
|
|
11931
|
+
const parsed = parseToken(token);
|
|
11932
|
+
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
11933
|
+
if (!surfaceRole) return rgbColorValue(token);
|
|
11934
|
+
return parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent);
|
|
11935
|
+
}
|
|
11936
|
+
/**
|
|
11752
11937
|
* Creates a text color style object from a theme token.
|
|
11753
11938
|
*
|
|
11754
11939
|
* @param token - Theme color token
|
|
11755
11940
|
* @returns CSSProperties with color
|
|
11756
11941
|
*/
|
|
11757
11942
|
function textColorStyle(token) {
|
|
11758
|
-
|
|
11759
|
-
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
11760
|
-
if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
|
|
11761
|
-
return { color: rgbColorValue(token) };
|
|
11943
|
+
return { color: textColorValue(token) };
|
|
11762
11944
|
}
|
|
11763
11945
|
/**
|
|
11764
11946
|
* Creates a border color style object from a theme token.
|
|
@@ -14943,6 +15125,15 @@ function asSiteStyleId(value) {
|
|
|
14943
15125
|
function asDesignSystemTemplateId(value) {
|
|
14944
15126
|
return brandNonEmptyString(value, "DesignSystemTemplateId");
|
|
14945
15127
|
}
|
|
15128
|
+
function toNonEmptyReadonlyArray(values) {
|
|
15129
|
+
const [first, ...rest] = values;
|
|
15130
|
+
return first === void 0 ? null : [first, ...rest];
|
|
15131
|
+
}
|
|
15132
|
+
function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
|
|
15133
|
+
const result = toNonEmptyReadonlyArray(values);
|
|
15134
|
+
if (!result) throw new Error(message);
|
|
15135
|
+
return result;
|
|
15136
|
+
}
|
|
14946
15137
|
function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
14947
15138
|
return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
|
|
14948
15139
|
}
|
|
@@ -15145,16 +15336,18 @@ const themeV2RuntimeStyleFieldNames = [
|
|
|
15145
15336
|
"_frameStyles",
|
|
15146
15337
|
"_sectionStyles",
|
|
15147
15338
|
"_containerStyles",
|
|
15148
|
-
"_cardStyles"
|
|
15149
|
-
"_transitionStyles",
|
|
15150
|
-
"styleGroup"
|
|
15339
|
+
"_cardStyles"
|
|
15151
15340
|
];
|
|
15152
15341
|
const themeV2BlockSpecificRawStyleFieldNames = [
|
|
15153
15342
|
"_contentCardStyles",
|
|
15154
15343
|
"_heroLayoutStyles",
|
|
15155
15344
|
"_textCardStyles"
|
|
15156
15345
|
];
|
|
15157
|
-
const themeV2NormalEditorRawStyleFieldNames = [
|
|
15346
|
+
const themeV2NormalEditorRawStyleFieldNames = [
|
|
15347
|
+
...themeV2RuntimeStyleFieldNames,
|
|
15348
|
+
...themeV2BlockSpecificRawStyleFieldNames,
|
|
15349
|
+
"styleGroup"
|
|
15350
|
+
];
|
|
15158
15351
|
new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
15159
15352
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
15160
15353
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
@@ -16435,7 +16628,8 @@ const siteOptionSources = [
|
|
|
16435
16628
|
"eventCategories",
|
|
16436
16629
|
"eventSeries",
|
|
16437
16630
|
"venues",
|
|
16438
|
-
"staffMembers"
|
|
16631
|
+
"staffMembers",
|
|
16632
|
+
"appointmentServiceCategories"
|
|
16439
16633
|
];
|
|
16440
16634
|
const mediaDeliverySchema = z.object({
|
|
16441
16635
|
sizes: z.string().optional(),
|
|
@@ -19810,11 +20004,260 @@ function cardRoleFromLegacyVocabulary(value) {
|
|
|
19810
20004
|
*/
|
|
19811
20005
|
const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
|
|
19812
20006
|
//#endregion
|
|
19813
|
-
//#region ../theme-core/src/site-styles/
|
|
19814
|
-
|
|
19815
|
-
|
|
19816
|
-
|
|
19817
|
-
|
|
20007
|
+
//#region ../theme-core/src/site-styles/transitionCatalogue.ts
|
|
20008
|
+
/**
|
|
20009
|
+
* Family order for pickers. Entries below are listed family by family in this
|
|
20010
|
+
* same order, so the flat option list and the grouped families agree.
|
|
20011
|
+
*/
|
|
20012
|
+
const transitionCatalogueFamilies = [
|
|
20013
|
+
{
|
|
20014
|
+
id: "gradient",
|
|
20015
|
+
label: "Gradient"
|
|
20016
|
+
},
|
|
20017
|
+
{
|
|
20018
|
+
id: "wave",
|
|
20019
|
+
label: "Wave"
|
|
20020
|
+
},
|
|
20021
|
+
{
|
|
20022
|
+
id: "angle",
|
|
20023
|
+
label: "Angle"
|
|
20024
|
+
}
|
|
20025
|
+
];
|
|
20026
|
+
const mediumHeight = "6rem + 2px";
|
|
20027
|
+
const compactHeight = "4.5rem + 2px";
|
|
20028
|
+
const largeHeight = "7rem + 2px";
|
|
20029
|
+
/**
|
|
20030
|
+
* The single source of transition vocabulary. Order is significant: it is the
|
|
20031
|
+
* order of `boundaryOptions` (after `none`) and of each family's variants,
|
|
20032
|
+
* which persisted pins, page-flow presets and the editor picker all rely on.
|
|
20033
|
+
*
|
|
20034
|
+
* Shapes match what `generateLayoutCss` draws today. Structured
|
|
20035
|
+
* amplitude/frequency treatments (issue 826) extend this list later.
|
|
20036
|
+
*/
|
|
20037
|
+
const transitionCatalogueEntries = defineExactCatalog()([
|
|
20038
|
+
{
|
|
20039
|
+
intent: "soft-fade-short",
|
|
20040
|
+
optionId: asBoundaryOptionId("break:soft"),
|
|
20041
|
+
family: "gradient",
|
|
20042
|
+
variantId: "soft",
|
|
20043
|
+
label: "Soft",
|
|
20044
|
+
variantLabel: "Soft",
|
|
20045
|
+
treatment: {
|
|
20046
|
+
kind: "soft-fade",
|
|
20047
|
+
height: "medium",
|
|
20048
|
+
curve: "soft"
|
|
20049
|
+
},
|
|
20050
|
+
size: "medium",
|
|
20051
|
+
heightExpression: mediumHeight,
|
|
20052
|
+
shape: { kind: "fade" }
|
|
20053
|
+
},
|
|
20054
|
+
{
|
|
20055
|
+
intent: "soft-fade-long",
|
|
20056
|
+
optionId: asBoundaryOptionId("break:spacious"),
|
|
20057
|
+
family: "gradient",
|
|
20058
|
+
variantId: "spacious",
|
|
20059
|
+
label: "Spacious",
|
|
20060
|
+
variantLabel: "Spacious",
|
|
20061
|
+
treatment: {
|
|
20062
|
+
kind: "soft-fade",
|
|
20063
|
+
height: "large",
|
|
20064
|
+
curve: "spacious"
|
|
20065
|
+
},
|
|
20066
|
+
size: "spacious",
|
|
20067
|
+
heightExpression: "10rem",
|
|
20068
|
+
shape: { kind: "fade" }
|
|
20069
|
+
},
|
|
20070
|
+
{
|
|
20071
|
+
intent: "soft-fade-expansive",
|
|
20072
|
+
optionId: asBoundaryOptionId("break:expansive"),
|
|
20073
|
+
family: "gradient",
|
|
20074
|
+
variantId: "expansive",
|
|
20075
|
+
label: "Expansive",
|
|
20076
|
+
variantLabel: "Expansive",
|
|
20077
|
+
treatment: {
|
|
20078
|
+
kind: "soft-fade",
|
|
20079
|
+
height: "expansive",
|
|
20080
|
+
curve: "expansive"
|
|
20081
|
+
},
|
|
20082
|
+
size: "expansive",
|
|
20083
|
+
heightExpression: "14rem",
|
|
20084
|
+
shape: { kind: "fade" }
|
|
20085
|
+
},
|
|
20086
|
+
{
|
|
20087
|
+
intent: "wave-edge-balanced",
|
|
20088
|
+
optionId: asBoundaryOptionId("break:wave-balanced"),
|
|
20089
|
+
family: "wave",
|
|
20090
|
+
variantId: "balanced",
|
|
20091
|
+
label: "Balanced wave",
|
|
20092
|
+
variantLabel: "Balanced",
|
|
20093
|
+
treatment: {
|
|
20094
|
+
kind: "wave-edge",
|
|
20095
|
+
height: "medium",
|
|
20096
|
+
amplitude: "balanced",
|
|
20097
|
+
rhythm: "double",
|
|
20098
|
+
symmetry: "symmetrical"
|
|
20099
|
+
},
|
|
20100
|
+
size: "medium",
|
|
20101
|
+
heightExpression: mediumHeight,
|
|
20102
|
+
shape: {
|
|
20103
|
+
kind: "wave",
|
|
20104
|
+
mask: "balanced"
|
|
20105
|
+
}
|
|
20106
|
+
},
|
|
20107
|
+
{
|
|
20108
|
+
intent: "wave-edge",
|
|
20109
|
+
optionId: asBoundaryOptionId("break:wave"),
|
|
20110
|
+
family: "wave",
|
|
20111
|
+
variantId: "classic",
|
|
20112
|
+
label: "Classic wave",
|
|
20113
|
+
variantLabel: "Classic",
|
|
20114
|
+
treatment: {
|
|
20115
|
+
kind: "wave-edge",
|
|
20116
|
+
height: "medium",
|
|
20117
|
+
amplitude: "balanced",
|
|
20118
|
+
rhythm: "double",
|
|
20119
|
+
symmetry: "asymmetrical"
|
|
20120
|
+
},
|
|
20121
|
+
size: "medium",
|
|
20122
|
+
heightExpression: mediumHeight,
|
|
20123
|
+
shape: {
|
|
20124
|
+
kind: "wave",
|
|
20125
|
+
mask: "classic"
|
|
20126
|
+
}
|
|
20127
|
+
},
|
|
20128
|
+
{
|
|
20129
|
+
intent: "wave-edge-gentle",
|
|
20130
|
+
optionId: asBoundaryOptionId("break:wave-gentle"),
|
|
20131
|
+
family: "wave",
|
|
20132
|
+
variantId: "gentle",
|
|
20133
|
+
label: "Gentle wave",
|
|
20134
|
+
variantLabel: "Gentle",
|
|
20135
|
+
treatment: {
|
|
20136
|
+
kind: "wave-edge",
|
|
20137
|
+
height: "compact",
|
|
20138
|
+
amplitude: "subtle",
|
|
20139
|
+
rhythm: "single",
|
|
20140
|
+
symmetry: "symmetrical"
|
|
20141
|
+
},
|
|
20142
|
+
size: "compact",
|
|
20143
|
+
heightExpression: compactHeight,
|
|
20144
|
+
shape: {
|
|
20145
|
+
kind: "wave",
|
|
20146
|
+
mask: "gentle"
|
|
20147
|
+
}
|
|
20148
|
+
},
|
|
20149
|
+
{
|
|
20150
|
+
intent: "wave-edge-bold",
|
|
20151
|
+
optionId: asBoundaryOptionId("break:wave-bold"),
|
|
20152
|
+
family: "wave",
|
|
20153
|
+
variantId: "bold",
|
|
20154
|
+
label: "Bold wave",
|
|
20155
|
+
variantLabel: "Bold",
|
|
20156
|
+
treatment: {
|
|
20157
|
+
kind: "wave-edge",
|
|
20158
|
+
height: "large",
|
|
20159
|
+
amplitude: "bold",
|
|
20160
|
+
rhythm: "double",
|
|
20161
|
+
symmetry: "symmetrical"
|
|
20162
|
+
},
|
|
20163
|
+
size: "large",
|
|
20164
|
+
heightExpression: largeHeight,
|
|
20165
|
+
shape: {
|
|
20166
|
+
kind: "wave",
|
|
20167
|
+
mask: "bold"
|
|
20168
|
+
}
|
|
20169
|
+
},
|
|
20170
|
+
{
|
|
20171
|
+
intent: "wave-edge-drift",
|
|
20172
|
+
optionId: asBoundaryOptionId("break:wave-drift"),
|
|
20173
|
+
family: "wave",
|
|
20174
|
+
variantId: "drift",
|
|
20175
|
+
label: "Drift wave",
|
|
20176
|
+
variantLabel: "Drift",
|
|
20177
|
+
treatment: {
|
|
20178
|
+
kind: "wave-edge",
|
|
20179
|
+
height: "medium",
|
|
20180
|
+
amplitude: "balanced",
|
|
20181
|
+
rhythm: "double",
|
|
20182
|
+
symmetry: "drift"
|
|
20183
|
+
},
|
|
20184
|
+
size: "medium",
|
|
20185
|
+
heightExpression: mediumHeight,
|
|
20186
|
+
shape: {
|
|
20187
|
+
kind: "wave",
|
|
20188
|
+
mask: "drift"
|
|
20189
|
+
}
|
|
20190
|
+
},
|
|
20191
|
+
{
|
|
20192
|
+
intent: "angle-edge-subtle",
|
|
20193
|
+
optionId: asBoundaryOptionId("break:angle-subtle"),
|
|
20194
|
+
family: "angle",
|
|
20195
|
+
variantId: "subtle",
|
|
20196
|
+
label: "Subtle angle",
|
|
20197
|
+
variantLabel: "Subtle",
|
|
20198
|
+
treatment: {
|
|
20199
|
+
kind: "angle-edge",
|
|
20200
|
+
height: "compact",
|
|
20201
|
+
slope: "subtle",
|
|
20202
|
+
direction: "forward"
|
|
20203
|
+
},
|
|
20204
|
+
size: "compact",
|
|
20205
|
+
heightExpression: compactHeight,
|
|
20206
|
+
shape: {
|
|
20207
|
+
kind: "angle",
|
|
20208
|
+
polygon: {
|
|
20209
|
+
startTopPercent: 34,
|
|
20210
|
+
endTopPercent: 18
|
|
20211
|
+
}
|
|
20212
|
+
}
|
|
20213
|
+
},
|
|
20214
|
+
{
|
|
20215
|
+
intent: "angle-edge",
|
|
20216
|
+
optionId: asBoundaryOptionId("break:angle-balanced"),
|
|
20217
|
+
family: "angle",
|
|
20218
|
+
variantId: "balanced",
|
|
20219
|
+
label: "Balanced angle",
|
|
20220
|
+
variantLabel: "Balanced",
|
|
20221
|
+
treatment: {
|
|
20222
|
+
kind: "angle-edge",
|
|
20223
|
+
height: "medium",
|
|
20224
|
+
slope: "balanced",
|
|
20225
|
+
direction: "forward"
|
|
20226
|
+
},
|
|
20227
|
+
size: "medium",
|
|
20228
|
+
heightExpression: mediumHeight,
|
|
20229
|
+
shape: {
|
|
20230
|
+
kind: "angle",
|
|
20231
|
+
polygon: {
|
|
20232
|
+
startTopPercent: 42,
|
|
20233
|
+
endTopPercent: 8
|
|
20234
|
+
}
|
|
20235
|
+
}
|
|
20236
|
+
},
|
|
20237
|
+
{
|
|
20238
|
+
intent: "angle-edge-steep",
|
|
20239
|
+
optionId: asBoundaryOptionId("break:angle-steep"),
|
|
20240
|
+
family: "angle",
|
|
20241
|
+
variantId: "steep",
|
|
20242
|
+
label: "Steep angle",
|
|
20243
|
+
variantLabel: "Steep",
|
|
20244
|
+
treatment: {
|
|
20245
|
+
kind: "angle-edge",
|
|
20246
|
+
height: "large",
|
|
20247
|
+
slope: "steep",
|
|
20248
|
+
direction: "forward"
|
|
20249
|
+
},
|
|
20250
|
+
size: "large",
|
|
20251
|
+
heightExpression: largeHeight,
|
|
20252
|
+
shape: {
|
|
20253
|
+
kind: "angle",
|
|
20254
|
+
polygon: {
|
|
20255
|
+
startTopPercent: 54,
|
|
20256
|
+
endTopPercent: 0
|
|
20257
|
+
}
|
|
20258
|
+
}
|
|
20259
|
+
}
|
|
20260
|
+
]);
|
|
19818
20261
|
//#endregion
|
|
19819
20262
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
19820
20263
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
@@ -19825,42 +20268,106 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
|
19825
20268
|
reserveCss: `calc((${heightExpression}) / 2)`
|
|
19826
20269
|
};
|
|
19827
20270
|
}
|
|
19828
|
-
|
|
20271
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
|
|
20272
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
|
|
20273
|
+
/**
|
|
20274
|
+
* The catalogue's compile-time coverage check guarantees an entry per
|
|
20275
|
+
* decorative intent, so a miss here is a broken invariant, not bad input.
|
|
20276
|
+
*/
|
|
20277
|
+
function requireCatalogueValue(values, intent) {
|
|
20278
|
+
const value = values.get(intent);
|
|
20279
|
+
if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
|
|
20280
|
+
return value;
|
|
20281
|
+
}
|
|
19829
20282
|
const noneBoundaryOption = {
|
|
19830
20283
|
id: asBoundaryOptionId("break:none"),
|
|
19831
20284
|
label: "None",
|
|
19832
20285
|
transitionAfter: "none",
|
|
19833
20286
|
treatment: { kind: "none" }
|
|
19834
20287
|
};
|
|
19835
|
-
const
|
|
19836
|
-
id:
|
|
19837
|
-
label:
|
|
19838
|
-
transitionAfter:
|
|
19839
|
-
treatment:
|
|
19840
|
-
|
|
19841
|
-
|
|
19842
|
-
|
|
19843
|
-
|
|
20288
|
+
const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
|
|
20289
|
+
id: entry.optionId,
|
|
20290
|
+
label: entry.label,
|
|
20291
|
+
transitionAfter: entry.intent,
|
|
20292
|
+
treatment: entry.treatment
|
|
20293
|
+
}]));
|
|
20294
|
+
function boundaryOptionForTransitionIntent(intent) {
|
|
20295
|
+
return requireCatalogueValue(boundaryOptionByIntent, intent);
|
|
20296
|
+
}
|
|
20297
|
+
const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
|
|
20298
|
+
const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
|
|
20299
|
+
boundaryOptionForTransitionIntent("soft-fade-expansive");
|
|
20300
|
+
boundaryOptionForTransitionIntent("wave-edge");
|
|
20301
|
+
boundaryOptionForTransitionIntent("wave-edge-balanced");
|
|
20302
|
+
boundaryOptionForTransitionIntent("wave-edge-gentle");
|
|
20303
|
+
boundaryOptionForTransitionIntent("wave-edge-bold");
|
|
20304
|
+
boundaryOptionForTransitionIntent("wave-edge-drift");
|
|
20305
|
+
boundaryOptionForTransitionIntent("angle-edge-subtle");
|
|
20306
|
+
boundaryOptionForTransitionIntent("angle-edge");
|
|
20307
|
+
boundaryOptionForTransitionIntent("angle-edge-steep");
|
|
20308
|
+
/**
|
|
20309
|
+
* Must remain non-empty; downstream code indexes `[0]` as the documented default.
|
|
20310
|
+
*/
|
|
20311
|
+
const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
|
|
20312
|
+
const noneTransitionVariant = {
|
|
20313
|
+
familyId: "none",
|
|
20314
|
+
variantId: "none",
|
|
20315
|
+
label: "None",
|
|
20316
|
+
boundaryOption: noneBoundaryOption
|
|
19844
20317
|
};
|
|
19845
|
-
|
|
19846
|
-
|
|
19847
|
-
|
|
19848
|
-
|
|
19849
|
-
|
|
19850
|
-
|
|
19851
|
-
|
|
19852
|
-
|
|
19853
|
-
|
|
20318
|
+
function transitionVariantForEntry(entry) {
|
|
20319
|
+
return {
|
|
20320
|
+
familyId: entry.family,
|
|
20321
|
+
variantId: entry.variantId,
|
|
20322
|
+
label: entry.variantLabel,
|
|
20323
|
+
boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
|
|
20324
|
+
};
|
|
20325
|
+
}
|
|
20326
|
+
const sectionTransitionFamilies = [{
|
|
20327
|
+
id: "none",
|
|
20328
|
+
label: "None",
|
|
20329
|
+
variants: [noneTransitionVariant]
|
|
20330
|
+
}, ...transitionCatalogueFamilies.map((family) => ({
|
|
20331
|
+
id: family.id,
|
|
20332
|
+
label: family.label,
|
|
20333
|
+
variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
|
|
20334
|
+
}))];
|
|
20335
|
+
new Map(boundaryOptions.map((option) => [option.id, option]));
|
|
20336
|
+
new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
|
|
20337
|
+
new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
|
|
20338
|
+
new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
|
|
20339
|
+
function stableTreatmentKey(treatment) {
|
|
20340
|
+
switch (treatment.kind) {
|
|
20341
|
+
case "none": return "none";
|
|
20342
|
+
case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
|
|
20343
|
+
case "wave-edge": return [
|
|
20344
|
+
treatment.kind,
|
|
20345
|
+
treatment.height,
|
|
20346
|
+
treatment.amplitude,
|
|
20347
|
+
treatment.rhythm,
|
|
20348
|
+
treatment.symmetry
|
|
20349
|
+
].join(":");
|
|
20350
|
+
case "angle-edge": return [
|
|
20351
|
+
treatment.kind,
|
|
20352
|
+
treatment.height,
|
|
20353
|
+
treatment.slope,
|
|
20354
|
+
treatment.direction
|
|
20355
|
+
].join(":");
|
|
20356
|
+
case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
|
|
20357
|
+
}
|
|
20358
|
+
}
|
|
20359
|
+
requireThemeColorToken$1("background");
|
|
20360
|
+
function requireThemeColorToken$1(value) {
|
|
20361
|
+
const token = parseThemeColorToken(value);
|
|
20362
|
+
if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
|
|
20363
|
+
return token;
|
|
20364
|
+
}
|
|
20365
|
+
//#endregion
|
|
20366
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
20367
|
+
const defaultHeaderBrandPreferences = {
|
|
20368
|
+
brandDisplay: "auto",
|
|
20369
|
+
logoSize: "auto"
|
|
19854
20370
|
};
|
|
19855
|
-
asBoundaryOptionId("break:expansive");
|
|
19856
|
-
asBoundaryOptionId("break:wave");
|
|
19857
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
19858
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
19859
|
-
asBoundaryOptionId("break:wave-bold");
|
|
19860
|
-
asBoundaryOptionId("break:wave-drift");
|
|
19861
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
19862
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
19863
|
-
asBoundaryOptionId("break:angle-steep");
|
|
19864
20371
|
asBoundaryOptionId("break:unknown");
|
|
19865
20372
|
const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
|
|
19866
20373
|
kind: z.literal("user-pinned"),
|
|
@@ -19987,14 +20494,11 @@ function validateUniquePageDesignPins(intent, ctx) {
|
|
|
19987
20494
|
label: "block Look pin"
|
|
19988
20495
|
});
|
|
19989
20496
|
addDuplicateStringIssues(ctx, {
|
|
19990
|
-
values: intent.boundaryPins.map((pin) =>
|
|
20497
|
+
values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
|
|
19991
20498
|
path: ["boundaryPins"],
|
|
19992
20499
|
label: "boundary pin"
|
|
19993
20500
|
});
|
|
19994
20501
|
}
|
|
19995
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
19996
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
19997
|
-
}
|
|
19998
20502
|
//#endregion
|
|
19999
20503
|
//#region ../theme-core/src/site-styles/styleTags.ts
|
|
20000
20504
|
/**
|
|
@@ -22950,6 +23454,13 @@ z.object({
|
|
|
22950
23454
|
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
22951
23455
|
authority: styleAuthoritySchema
|
|
22952
23456
|
}).strict();
|
|
23457
|
+
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
23458
|
+
asPageFlowPresetId("generated-default");
|
|
23459
|
+
asSiteStyleId("site-style:south-west-twerk-school");
|
|
23460
|
+
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
23461
|
+
asLayoutVariantKey("classic");
|
|
23462
|
+
asLayoutVariantKey("micro");
|
|
23463
|
+
asBoundaryOptionId("break:wave");
|
|
22953
23464
|
//#endregion
|
|
22954
23465
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
22955
23466
|
function defineSectionForegroundRuntimeTokens(input) {
|
|
@@ -22973,7 +23484,7 @@ function defineComponentRuntimeRules(rules) {
|
|
|
22973
23484
|
}
|
|
22974
23485
|
/**
|
|
22975
23486
|
* Default design rules translate semantic page-level choices into the current
|
|
22976
|
-
* runtime's section background
|
|
23487
|
+
* runtime's section background vocabulary.
|
|
22977
23488
|
*/
|
|
22978
23489
|
const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
22979
23490
|
sectionSurfaces: {
|
|
@@ -23008,8 +23519,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
23008
23519
|
color: "surface",
|
|
23009
23520
|
opacity: .88
|
|
23010
23521
|
}
|
|
23011
|
-
}
|
|
23012
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
23522
|
+
}
|
|
23013
23523
|
});
|
|
23014
23524
|
/**
|
|
23015
23525
|
* Default component rules translate frame and item-surface semantics into the
|
|
@@ -24744,19 +25254,11 @@ const curatedSiteStyles = [
|
|
|
24744
25254
|
})
|
|
24745
25255
|
];
|
|
24746
25256
|
new Map(curatedSiteStyles.map((style) => [style.id, style]));
|
|
24747
|
-
asPageFlowPresetId("generated-default");
|
|
24748
|
-
asSiteStyleId("site-style:south-west-twerk-school");
|
|
24749
|
-
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
24750
|
-
asLayoutVariantKey("classic");
|
|
24751
|
-
asLayoutVariantKey("micro");
|
|
24752
|
-
asBoundaryOptionId("break:wave");
|
|
24753
|
-
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
24754
25257
|
//#endregion
|
|
24755
25258
|
//#region ../theme-core/src/site-styles/resolver.ts
|
|
24756
25259
|
const blockDesignFallback = {
|
|
24757
25260
|
sectionSurface: "base",
|
|
24758
25261
|
contentFrame: plainFrame,
|
|
24759
|
-
transitionAfter: "none",
|
|
24760
25262
|
sectionHeight: "default",
|
|
24761
25263
|
heroLegibility: "none",
|
|
24762
25264
|
imageSurfaceTreatment: { kind: "none" },
|
|
@@ -24767,7 +25269,7 @@ const blockDesignFallback = {
|
|
|
24767
25269
|
accordionIconTreatment: null,
|
|
24768
25270
|
composition: null
|
|
24769
25271
|
};
|
|
24770
|
-
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.
|
|
25272
|
+
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
24771
25273
|
//#endregion
|
|
24772
25274
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
24773
25275
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
@@ -26703,9 +27205,7 @@ function navRow(opts) {
|
|
|
26703
27205
|
rel: { $bind: { from: `${childItemName}.rel` } },
|
|
26704
27206
|
"data-active": { $bind: { from: `${childItemName}.active` } }
|
|
26705
27207
|
}, [text({ as: "span" }, bind(`${childItemName}.label`))], repeat(`${itemName}.children`, childItemName));
|
|
26706
|
-
const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [
|
|
26707
|
-
type: "button",
|
|
26708
|
-
variantId: "",
|
|
27208
|
+
const dropdown = el("div", { className: "nav-dropdown rb-relative" }, [el("headerControl", {
|
|
26709
27209
|
className: prependClassName("nav-dropdown-trigger", linkClassName),
|
|
26710
27210
|
"aria-haspopup": "menu",
|
|
26711
27211
|
"aria-expanded": "false",
|
|
@@ -26773,9 +27273,7 @@ function navColumn(opts) {
|
|
|
26773
27273
|
const dropdown = el("div", {
|
|
26774
27274
|
className: "nav-mobile-dropdown",
|
|
26775
27275
|
"data-nav-mobile-dropdown": "true"
|
|
26776
|
-
}, [
|
|
26777
|
-
type: "button",
|
|
26778
|
-
variantId: "",
|
|
27276
|
+
}, [el("headerControl", {
|
|
26779
27277
|
className: triggerClassName,
|
|
26780
27278
|
"aria-expanded": "false",
|
|
26781
27279
|
"aria-controls": childrenId,
|
|
@@ -33124,6 +33622,49 @@ const layoutTransforms = [
|
|
|
33124
33622
|
footerLogoMediaClassTransform,
|
|
33125
33623
|
footerLogoTextVisibleTransform
|
|
33126
33624
|
];
|
|
33625
|
+
//#endregion
|
|
33626
|
+
//#region ../blocks/src/system/transforms/registry/chromeLogo.ts
|
|
33627
|
+
const chromeLogoSchema = z.object({ surface: z.enum([
|
|
33628
|
+
"header-root",
|
|
33629
|
+
"header-mobile-panel",
|
|
33630
|
+
"footer-root"
|
|
33631
|
+
]) });
|
|
33632
|
+
/** The brand foreground shares the logo's surface; navigation may own a separate capsule. */
|
|
33633
|
+
function chromeSurfaceTextToken(surface, theme, palette) {
|
|
33634
|
+
switch (surface) {
|
|
33635
|
+
case "header-root": {
|
|
33636
|
+
const header = theme.header;
|
|
33637
|
+
const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
|
|
33638
|
+
return foreground.kind === "known" ? foreground.roles.text : resolveHeaderLeafTextColor(header);
|
|
33639
|
+
}
|
|
33640
|
+
case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
|
|
33641
|
+
case "footer-root": {
|
|
33642
|
+
const foreground = resolveFooterRootForeground(theme.footer, palette);
|
|
33643
|
+
return foreground.kind === "known" ? foreground.roles.text : void 0;
|
|
33644
|
+
}
|
|
33645
|
+
}
|
|
33646
|
+
}
|
|
33647
|
+
function readChromeTheme(viewModel) {
|
|
33648
|
+
return asPartialObject(asPartialObject(viewModel?.["$root"])?.theme) ?? {};
|
|
33649
|
+
}
|
|
33650
|
+
function resolveChromeSurfaceTone(surface, context) {
|
|
33651
|
+
return surfaceToneFromForegroundToken(context.theme.palette, chromeSurfaceTextToken(surface, readChromeTheme(context.viewModel), context.theme.palette));
|
|
33652
|
+
}
|
|
33653
|
+
const chromeLogoTransforms = [{
|
|
33654
|
+
id: "layout.chromeLogo",
|
|
33655
|
+
kind: "formatter",
|
|
33656
|
+
summary: "Select the light- or dark-background site logo for a header or footer surface",
|
|
33657
|
+
schema: chromeLogoSchema,
|
|
33658
|
+
run: (value, options, context) => {
|
|
33659
|
+
const content = asPartialObject(value);
|
|
33660
|
+
const variants = asPartialObject(content?.logoVariants);
|
|
33661
|
+
if (!variants) return content?.logo ?? null;
|
|
33662
|
+
return selectLogoVariant(resolveChromeSurfaceTone(options.surface, context), {
|
|
33663
|
+
forLightBackgrounds: variants.forLightBackgrounds ?? null,
|
|
33664
|
+
forDarkBackgrounds: variants.forDarkBackgrounds ?? null
|
|
33665
|
+
});
|
|
33666
|
+
}
|
|
33667
|
+
}];
|
|
33127
33668
|
const headerRuntimeTransforms = [{
|
|
33128
33669
|
id: "layout.headerRuntimeContract",
|
|
33129
33670
|
kind: "formatter",
|
|
@@ -33326,46 +33867,42 @@ const whenTransformed = (from, transformId, equals = true) => (node) => ({
|
|
|
33326
33867
|
equals
|
|
33327
33868
|
}
|
|
33328
33869
|
});
|
|
33329
|
-
|
|
33870
|
+
/** Draw whichever site logo suits the surface this row sits on. */
|
|
33871
|
+
const bindChromeLogo = (surface) => bind("content", { transforms: [{
|
|
33872
|
+
id: "layout.chromeLogo",
|
|
33873
|
+
options: { surface }
|
|
33874
|
+
}] });
|
|
33875
|
+
/**
|
|
33876
|
+
* The brand link. The logo is chosen per surface because the open mobile menu
|
|
33877
|
+
* paints its own background, which may be the opposite tone to the header.
|
|
33878
|
+
*/
|
|
33879
|
+
const createLogoRow = (surface) => link({
|
|
33330
33880
|
href: "/",
|
|
33331
33881
|
className: bindProp("$root.theme.header.logo", {
|
|
33332
33882
|
transforms: pipe(tx("layout.headerLogoClass")),
|
|
33333
33883
|
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"
|
|
33334
33884
|
})
|
|
33335
|
-
}, [
|
|
33336
|
-
|
|
33337
|
-
|
|
33338
|
-
|
|
33339
|
-
|
|
33340
|
-
|
|
33341
|
-
|
|
33342
|
-
|
|
33343
|
-
}) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
33344
|
-
text({
|
|
33345
|
-
as: "strong",
|
|
33346
|
-
className: "header-logo-text rb-truncate"
|
|
33347
|
-
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
33348
|
-
]);
|
|
33885
|
+
}, [media({ className: bindProp("$root.theme.header.logo", {
|
|
33886
|
+
transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300" })),
|
|
33887
|
+
fallback: "rb-header-logo-sm rb-w-auto rb-transition-all rb-duration-300"
|
|
33888
|
+
}) }, when("content.logo"), bindChromeLogo(surface)), text({
|
|
33889
|
+
as: "strong",
|
|
33890
|
+
className: "header-logo-text rb-truncate"
|
|
33891
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
|
|
33892
|
+
const logoRow = createLogoRow("header-root");
|
|
33349
33893
|
const centeredLogoRow = link({
|
|
33350
33894
|
href: "/",
|
|
33351
33895
|
className: bindProp("$root.theme.header.logo", {
|
|
33352
33896
|
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" })),
|
|
33353
33897
|
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"
|
|
33354
33898
|
})
|
|
33355
|
-
}, [
|
|
33356
|
-
|
|
33357
|
-
|
|
33358
|
-
|
|
33359
|
-
|
|
33360
|
-
|
|
33361
|
-
|
|
33362
|
-
fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
|
|
33363
|
-
}) }, when("site.logo"), bind("site.logo"))], when("content.logo", { not: true })),
|
|
33364
|
-
text({
|
|
33365
|
-
as: "strong",
|
|
33366
|
-
className: "header-logo-text"
|
|
33367
|
-
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))
|
|
33368
|
-
]);
|
|
33899
|
+
}, [media({ className: bindProp("$root.theme.header.logo", {
|
|
33900
|
+
transforms: pipe(tx("layout.headerLogoMediaClass", { base: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300" })),
|
|
33901
|
+
fallback: "rb-header-logo-lg rb-w-auto rb-transition-all rb-duration-300"
|
|
33902
|
+
}) }, when("content.logo"), bindChromeLogo("header-root")), text({
|
|
33903
|
+
as: "strong",
|
|
33904
|
+
className: "header-logo-text"
|
|
33905
|
+
}, whenTransformed("$root.theme.header.logo", "layout.headerLogoTextVisible"), bind("site.title", { fallback: "Your Site" }))]);
|
|
33369
33906
|
const createNavRow = (className, align = "end") => navRow({
|
|
33370
33907
|
className: `${className} header-nav-row`,
|
|
33371
33908
|
align,
|
|
@@ -33405,10 +33942,8 @@ const mobileToggleIcon = stack({
|
|
|
33405
33942
|
}
|
|
33406
33943
|
]);
|
|
33407
33944
|
const mobileToggleButton = {
|
|
33408
|
-
type: "
|
|
33945
|
+
type: "headerControl",
|
|
33409
33946
|
props: {
|
|
33410
|
-
type: "button",
|
|
33411
|
-
variantId: "",
|
|
33412
33947
|
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`,
|
|
33413
33948
|
"aria-label": "Open menu",
|
|
33414
33949
|
"aria-expanded": "false",
|
|
@@ -33418,10 +33953,8 @@ const mobileToggleButton = {
|
|
|
33418
33953
|
children: [mobileToggleIcon]
|
|
33419
33954
|
};
|
|
33420
33955
|
const mobileOverlayToggleButton = {
|
|
33421
|
-
type: "
|
|
33956
|
+
type: "headerControl",
|
|
33422
33957
|
props: {
|
|
33423
|
-
type: "button",
|
|
33424
|
-
variantId: "",
|
|
33425
33958
|
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",
|
|
33426
33959
|
"aria-label": "Open menu",
|
|
33427
33960
|
"aria-expanded": "false",
|
|
@@ -33445,7 +33978,7 @@ const mobileOverlayHeader = inline({
|
|
|
33445
33978
|
align: "center",
|
|
33446
33979
|
justify: "between",
|
|
33447
33980
|
style: borderColorStyle("border")
|
|
33448
|
-
}, [
|
|
33981
|
+
}, [createLogoRow("header-mobile-panel"), mobileOverlayToggleButton]);
|
|
33449
33982
|
const mobileOverlayBody = stack({
|
|
33450
33983
|
className: "rb-flex-1 rb-px-6 rb-py-6",
|
|
33451
33984
|
gap: "md",
|
|
@@ -33632,7 +34165,10 @@ const brandLogo = link({
|
|
|
33632
34165
|
options: { base: "rb-h-10 rb-w-auto" }
|
|
33633
34166
|
}],
|
|
33634
34167
|
fallback: "rb-h-10 rb-w-auto"
|
|
33635
|
-
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content
|
|
34168
|
+
} } }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
|
|
34169
|
+
id: "layout.chromeLogo",
|
|
34170
|
+
options: { surface: "footer-root" }
|
|
34171
|
+
}] })), text({
|
|
33636
34172
|
as: "strong",
|
|
33637
34173
|
className: "footer-logo-text rb-nav-text"
|
|
33638
34174
|
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }))], when("module.kind", { equals: "brand" }));
|
|
@@ -35325,6 +35861,15 @@ const appointmentServicesBlockDefinition = {
|
|
|
35325
35861
|
required: false,
|
|
35326
35862
|
ui: { intent: "content" }
|
|
35327
35863
|
},
|
|
35864
|
+
createSiteOptionSelectField({
|
|
35865
|
+
id: "categoryId",
|
|
35866
|
+
label: "Category",
|
|
35867
|
+
description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
|
|
35868
|
+
required: false,
|
|
35869
|
+
multiple: false,
|
|
35870
|
+
optionSource: "appointmentServiceCategories",
|
|
35871
|
+
ui: { intent: "content" }
|
|
35872
|
+
}),
|
|
35328
35873
|
sectionStylesField({
|
|
35329
35874
|
id: "_sectionStyles",
|
|
35330
35875
|
label: "Section styles",
|
|
@@ -35359,6 +35904,7 @@ const appointmentServicesBlockDefinition = {
|
|
|
35359
35904
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
35360
35905
|
el("appointment-services", {
|
|
35361
35906
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
35907
|
+
categoryId: { $bind: { from: "content.categoryId" } },
|
|
35362
35908
|
services: { $bind: { from: "data.services" } },
|
|
35363
35909
|
pathname: { $bind: { from: "$root.pathname" } },
|
|
35364
35910
|
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
@@ -36271,6 +36817,12 @@ const occurrenceContextSchema = z.object({
|
|
|
36271
36817
|
capacityOverride: z.number().nullable().optional(),
|
|
36272
36818
|
overrides: z.record(z.string(), z.unknown()).nullable().optional()
|
|
36273
36819
|
}).nullable();
|
|
36820
|
+
//#endregion
|
|
36821
|
+
//#region ../blocks/src/system/runtime/api/readAuthority.ts
|
|
36822
|
+
const browserReadAuthoritySchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("published") }).strict(), z.object({
|
|
36823
|
+
kind: z.literal("preview"),
|
|
36824
|
+
token: z.string().min(1)
|
|
36825
|
+
}).strict()]);
|
|
36274
36826
|
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z.object({
|
|
36275
36827
|
kind: z.literal("unsupported"),
|
|
36276
36828
|
reason: z.enum([
|
|
@@ -36381,6 +36933,33 @@ function normalizeEventCalendarDisplayMode$1(input) {
|
|
|
36381
36933
|
if (isEventCalendarDisplayMode(input.variant)) return input.variant;
|
|
36382
36934
|
return isEventCalendarDisplayMode(input.displayMode) ? input.displayMode : void 0;
|
|
36383
36935
|
}
|
|
36936
|
+
/** One closed authority for the projections required by each rendered mode. */
|
|
36937
|
+
function resolveEventCalendarReadPlan(input) {
|
|
36938
|
+
const mode = normalizeEventCalendarDisplayMode$1(input) ?? "combined";
|
|
36939
|
+
switch (mode) {
|
|
36940
|
+
case "combined": return {
|
|
36941
|
+
mode,
|
|
36942
|
+
jobs: "both",
|
|
36943
|
+
readProfile: "listing-card"
|
|
36944
|
+
};
|
|
36945
|
+
case "list": return {
|
|
36946
|
+
mode,
|
|
36947
|
+
jobs: "list",
|
|
36948
|
+
readProfile: "listing-card"
|
|
36949
|
+
};
|
|
36950
|
+
case "calendar": return {
|
|
36951
|
+
mode,
|
|
36952
|
+
jobs: "calendar",
|
|
36953
|
+
readProfile: "listing-card"
|
|
36954
|
+
};
|
|
36955
|
+
case "timetable":
|
|
36956
|
+
case "week-board": return {
|
|
36957
|
+
mode,
|
|
36958
|
+
jobs: "calendar",
|
|
36959
|
+
readProfile: "timetable"
|
|
36960
|
+
};
|
|
36961
|
+
}
|
|
36962
|
+
}
|
|
36384
36963
|
function isEventCalendarDefaultView(value) {
|
|
36385
36964
|
return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
|
|
36386
36965
|
}
|
|
@@ -36575,6 +37154,7 @@ const eventRegistrationSourceSchema = z.object({
|
|
|
36575
37154
|
apiBaseUrl: z.string().optional(),
|
|
36576
37155
|
portalToken: z.string().nullable().optional(),
|
|
36577
37156
|
previewToken: z.string().nullable().optional(),
|
|
37157
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
36578
37158
|
...eventRegistrationHydrationSchemaShape,
|
|
36579
37159
|
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
36580
37160
|
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
@@ -36612,6 +37192,7 @@ z.object({
|
|
|
36612
37192
|
apiBaseUrl: z.string().optional(),
|
|
36613
37193
|
portalToken: z.string().nullable().optional(),
|
|
36614
37194
|
previewToken: z.string().nullable().optional(),
|
|
37195
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
36615
37196
|
stage: previewStageSchema.optional()
|
|
36616
37197
|
});
|
|
36617
37198
|
function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
|
|
@@ -36870,6 +37451,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
36870
37451
|
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
36871
37452
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
36872
37453
|
eventRegistration(withApiBindings({
|
|
37454
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
36873
37455
|
occurrenceContext: { $bind: { from: "$root.occurrenceContext" } },
|
|
36874
37456
|
subject: { $bind: { from: "$root.subject" } },
|
|
36875
37457
|
portalToken: { $bind: {
|
|
@@ -37502,8 +38084,7 @@ function resolveEventListPaginationAction(input) {
|
|
|
37502
38084
|
//#endregion
|
|
37503
38085
|
//#region ../blocks/src/system/blocks/events/shared/calendarWindow.ts
|
|
37504
38086
|
function resolveCalendarReadProfile(content) {
|
|
37505
|
-
|
|
37506
|
-
return mode === "timetable" || mode === "week-board" ? "timetable" : "listing-card";
|
|
38087
|
+
return resolveEventCalendarReadPlan(content).readProfile;
|
|
37507
38088
|
}
|
|
37508
38089
|
/** Runtime picker sentinels and bound loader IDs must describe the same query. */
|
|
37509
38090
|
function normalizeCalendarFilterId(value) {
|
|
@@ -37613,6 +38194,7 @@ const eventCollectionSourceSchemaShape = {
|
|
|
37613
38194
|
events: z.array(publicEventSchema).nullable().optional(),
|
|
37614
38195
|
siteId: z.string(),
|
|
37615
38196
|
apiBaseUrl: z.string().optional(),
|
|
38197
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
37616
38198
|
stage: previewStageSchema.optional(),
|
|
37617
38199
|
listLayout: eventLayoutSchema.optional(),
|
|
37618
38200
|
listColumns: columnOptionSchema.optional(),
|
|
@@ -37665,7 +38247,6 @@ const eventCollectionDisplaySchemaShape = {
|
|
|
37665
38247
|
const eventCollectionHydrationSchema = z.object({
|
|
37666
38248
|
siteId: z.string(),
|
|
37667
38249
|
calendarWindow: calendarWindowPageSchema.optional(),
|
|
37668
|
-
stage: previewStageSchema.optional(),
|
|
37669
38250
|
prefetchedEvents: z.boolean(),
|
|
37670
38251
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
37671
38252
|
filterEventPresets: z.string().nullable(),
|
|
@@ -37740,7 +38321,6 @@ function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date())
|
|
|
37740
38321
|
return {
|
|
37741
38322
|
calendarWindow: source.calendarWindow ?? void 0,
|
|
37742
38323
|
siteId: source.siteId,
|
|
37743
|
-
stage: source.stage,
|
|
37744
38324
|
prefetchedEvents: source.events != null,
|
|
37745
38325
|
eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
|
|
37746
38326
|
filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
@@ -37760,6 +38340,7 @@ const eventListingSourceSchema = z.object({
|
|
|
37760
38340
|
events: z.array(publicEventSchema).nullable().optional(),
|
|
37761
38341
|
siteId: z.string(),
|
|
37762
38342
|
apiBaseUrl: z.string().optional(),
|
|
38343
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
37763
38344
|
stage: previewStageSchema.optional(),
|
|
37764
38345
|
layout: eventLayoutSchema.optional(),
|
|
37765
38346
|
columns: columnOptionSchema.optional(),
|
|
@@ -37800,7 +38381,6 @@ const eventListingDisplaySchema = z.object({
|
|
|
37800
38381
|
});
|
|
37801
38382
|
const eventListingHydrationSchema = z.object({
|
|
37802
38383
|
siteId: z.string(),
|
|
37803
|
-
stage: previewStageSchema.optional(),
|
|
37804
38384
|
eventsPerPage: eventPageSizeSchema,
|
|
37805
38385
|
paginationAction: eventListPaginationActionSchema,
|
|
37806
38386
|
showFilters: z.boolean(),
|
|
@@ -37823,6 +38403,7 @@ const eventListingRenderSchema = z.object({
|
|
|
37823
38403
|
z.object({
|
|
37824
38404
|
siteId: z.string(),
|
|
37825
38405
|
apiBaseUrl: z.string().optional(),
|
|
38406
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
37826
38407
|
stage: previewStageSchema.optional()
|
|
37827
38408
|
});
|
|
37828
38409
|
const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -37857,7 +38438,6 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
37857
38438
|
},
|
|
37858
38439
|
hydration: {
|
|
37859
38440
|
siteId: source.siteId,
|
|
37860
|
-
stage: source.stage,
|
|
37861
38441
|
eventsPerPage: pageSize,
|
|
37862
38442
|
paginationAction: resolveEventListPaginationAction({
|
|
37863
38443
|
paginationMode: source.paginationMode,
|
|
@@ -38139,6 +38719,7 @@ const eventListingBlockDefinition = {
|
|
|
38139
38719
|
rootType: "stack",
|
|
38140
38720
|
rootProps: { gap: "lg" },
|
|
38141
38721
|
children: [...eventSectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
|
|
38722
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
38142
38723
|
events: { $bind: { from: "data.events" } },
|
|
38143
38724
|
stage: { $bind: {
|
|
38144
38725
|
from: "$root.previewStage",
|
|
@@ -38336,6 +38917,7 @@ const eventCalendarRenderSchema = z.object({
|
|
|
38336
38917
|
z.object({
|
|
38337
38918
|
siteId: z.string(),
|
|
38338
38919
|
apiBaseUrl: z.string().optional(),
|
|
38920
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
38339
38921
|
stage: previewStageSchema.optional()
|
|
38340
38922
|
});
|
|
38341
38923
|
/**
|
|
@@ -38357,7 +38939,7 @@ function buildEventCalendarDisplay(source) {
|
|
|
38357
38939
|
listColumns: source.listColumns ?? source.columns
|
|
38358
38940
|
}),
|
|
38359
38941
|
kind: "event-calendar",
|
|
38360
|
-
displayMode:
|
|
38942
|
+
displayMode: resolveEventCalendarReadPlan(source).mode,
|
|
38361
38943
|
className: source.className ?? null,
|
|
38362
38944
|
events: (source.events ?? []).slice().sort((left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()),
|
|
38363
38945
|
boardTitle: normalizeOptionalText(source.boardTitle),
|
|
@@ -38374,13 +38956,16 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
38374
38956
|
source: createZodCodec(eventCalendarSourceSchema),
|
|
38375
38957
|
render: createZodCodec(eventCalendarRenderSchema)
|
|
38376
38958
|
},
|
|
38377
|
-
buildRender: (source) =>
|
|
38378
|
-
|
|
38379
|
-
|
|
38380
|
-
|
|
38381
|
-
|
|
38382
|
-
|
|
38383
|
-
|
|
38959
|
+
buildRender: (source) => {
|
|
38960
|
+
const plan = resolveEventCalendarReadPlan(source);
|
|
38961
|
+
return {
|
|
38962
|
+
display: buildEventCalendarDisplay(source.calendarWindow && plan.jobs === "calendar" ? {
|
|
38963
|
+
...source,
|
|
38964
|
+
events: source.calendarWindow.events
|
|
38965
|
+
} : source),
|
|
38966
|
+
hydration: buildEventCollectionHydration(source)
|
|
38967
|
+
};
|
|
38968
|
+
}
|
|
38384
38969
|
});
|
|
38385
38970
|
//#endregion
|
|
38386
38971
|
//#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
|
|
@@ -38530,6 +39115,7 @@ const eventCalendarLayout = [styledSection({
|
|
|
38530
39115
|
rootType: "stack",
|
|
38531
39116
|
rootProps: { gap: "lg" },
|
|
38532
39117
|
children: [...eventSectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
|
|
39118
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
38533
39119
|
events: { $bind: { from: "data.events" } },
|
|
38534
39120
|
calendarWindow: { $bind: { from: "data.calendarWindow" } },
|
|
38535
39121
|
stage: { $bind: {
|
|
@@ -42317,6 +42903,7 @@ const shopSourceSchema = z.object({
|
|
|
42317
42903
|
products: z.array(publicProductSchema).nullable().optional(),
|
|
42318
42904
|
siteId: z.string().optional(),
|
|
42319
42905
|
apiBaseUrl: z.string().optional(),
|
|
42906
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
42320
42907
|
stage: previewStageSchema.optional()
|
|
42321
42908
|
});
|
|
42322
42909
|
const productVariantOptionDisplaySchema = z.object({
|
|
@@ -42484,6 +43071,7 @@ function resolveShowPricePerCredit(source) {
|
|
|
42484
43071
|
z.object({
|
|
42485
43072
|
siteId: z.string().optional(),
|
|
42486
43073
|
apiBaseUrl: z.string().optional(),
|
|
43074
|
+
readAuthority: browserReadAuthoritySchema.optional(),
|
|
42487
43075
|
stage: previewStageSchema.optional()
|
|
42488
43076
|
});
|
|
42489
43077
|
const shopBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -42824,6 +43412,7 @@ const shopBlockDefinition = {
|
|
|
42824
43412
|
baseClass: "",
|
|
42825
43413
|
spacing: "spacious",
|
|
42826
43414
|
children: sectionContainer([shop(withApiBindings({
|
|
43415
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
42827
43416
|
mode: "passes-memberships",
|
|
42828
43417
|
showPasses: { $bind: {
|
|
42829
43418
|
from: "content.showPasses",
|
|
@@ -43022,6 +43611,7 @@ const productListBlockDefinition = {
|
|
|
43022
43611
|
baseClass: "",
|
|
43023
43612
|
spacing: "spacious",
|
|
43024
43613
|
children: sectionContainer([productList(withApiBindings({
|
|
43614
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
43025
43615
|
mode: "product-list",
|
|
43026
43616
|
heading: { $bind: {
|
|
43027
43617
|
from: "content.heading",
|
|
@@ -43164,6 +43754,7 @@ const productDetailBlockDefinition = {
|
|
|
43164
43754
|
baseClass: "",
|
|
43165
43755
|
spacing: "spacious",
|
|
43166
43756
|
children: sectionContainer([productDetail(withApiBindings({
|
|
43757
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
43167
43758
|
mode: "product-detail",
|
|
43168
43759
|
heading: { $bind: {
|
|
43169
43760
|
from: "content.heading",
|
|
@@ -43280,6 +43871,7 @@ const cartBlockDefinition = {
|
|
|
43280
43871
|
baseClass: "",
|
|
43281
43872
|
spacing: "spacious",
|
|
43282
43873
|
children: sectionContainer([cart(withApiBindings({
|
|
43874
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
43283
43875
|
mode: "cart",
|
|
43284
43876
|
heading: { $bind: {
|
|
43285
43877
|
from: "content.heading",
|
|
@@ -43363,6 +43955,7 @@ const checkoutBlockDefinition = {
|
|
|
43363
43955
|
baseClass: "",
|
|
43364
43956
|
spacing: "spacious",
|
|
43365
43957
|
children: sectionContainer([checkout(withApiBindings({
|
|
43958
|
+
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
43366
43959
|
mode: "checkout",
|
|
43367
43960
|
heading: { $bind: {
|
|
43368
43961
|
from: "content.heading",
|
|
@@ -46035,8 +46628,8 @@ const defaultTransforms = createTransformRegistry([
|
|
|
46035
46628
|
summary: "Choose the read projection required by the calendar display mode",
|
|
46036
46629
|
schema: z.object({ job: z.enum(["list", "calendar"]) }),
|
|
46037
46630
|
run(value, options) {
|
|
46038
|
-
const
|
|
46039
|
-
return
|
|
46631
|
+
const plan = resolveEventCalendarReadPlan(asPartialObject(value) ?? {});
|
|
46632
|
+
return plan.jobs === "both" || plan.jobs === options.job;
|
|
46040
46633
|
}
|
|
46041
46634
|
},
|
|
46042
46635
|
{
|
|
@@ -46049,6 +46642,7 @@ const defaultTransforms = createTransformRegistry([
|
|
|
46049
46642
|
},
|
|
46050
46643
|
...formattingTransforms,
|
|
46051
46644
|
...layoutTransforms,
|
|
46645
|
+
...chromeLogoTransforms,
|
|
46052
46646
|
...uiTransforms,
|
|
46053
46647
|
...mediaTransforms,
|
|
46054
46648
|
...backgroundTransforms,
|
|
@@ -46381,6 +46975,17 @@ function coerceToString(value) {
|
|
|
46381
46975
|
return "";
|
|
46382
46976
|
}
|
|
46383
46977
|
/**
|
|
46978
|
+
* The appointment-services catalogue (issue 1403) pairs the services with the
|
|
46979
|
+
* site's ordered categories. Both are needed to group them, so that response
|
|
46980
|
+
* is passed through whole; any other `{ services }` wrapper is unwrapped.
|
|
46981
|
+
*/
|
|
46982
|
+
function coerceServicesPayload(record) {
|
|
46983
|
+
return Array.isArray(record.services) && Array.isArray(record.categories) ? {
|
|
46984
|
+
services: record.services,
|
|
46985
|
+
categories: record.categories
|
|
46986
|
+
} : record.services;
|
|
46987
|
+
}
|
|
46988
|
+
/**
|
|
46384
46989
|
* Extract data from API response.
|
|
46385
46990
|
* Unwraps common response wrappers: { data }, { form }, { entries }, { services }, { teamMembers }
|
|
46386
46991
|
*
|
|
@@ -46395,7 +47000,7 @@ function coercePayload(payload) {
|
|
|
46395
47000
|
if ("data" in record && typeof record.data !== "function") return record.data;
|
|
46396
47001
|
if ("form" in record && typeof record.form !== "function") return record.form;
|
|
46397
47002
|
if ("entries" in record && typeof record.entries !== "function") return record.entries;
|
|
46398
|
-
if ("services" in record && typeof record.services !== "function") return record
|
|
47003
|
+
if ("services" in record && typeof record.services !== "function") return coerceServicesPayload(record);
|
|
46399
47004
|
if ("teamMembers" in record && typeof record.teamMembers !== "function") return record.teamMembers;
|
|
46400
47005
|
}
|
|
46401
47006
|
return payload;
|
|
@@ -47237,20 +47842,24 @@ function createPublicAppointmentReadOperations(deps) {
|
|
|
47237
47842
|
//#region src/client/publicEventReadOperations.ts
|
|
47238
47843
|
function createPublicEventReadOperations(deps) {
|
|
47239
47844
|
async function resolveEventSubroute(params, kind) {
|
|
47240
|
-
const { siteId, subject, segment, signal } = params;
|
|
47845
|
+
const { siteId, subject, segment, signal, preview = false } = params;
|
|
47241
47846
|
if (!siteId || !segment) throw new Error(`${kind === "event-run" ? "resolveEventRun" : "resolveEventOccurrence"}() requires siteId, subject, and segment`);
|
|
47242
47847
|
const subjectId = subject.kind === "eventOffering" ? subject.eventOfferingId : subject.eventSeriesId;
|
|
47243
|
-
return deps.resilientFetchData("resolveEventSubroute", `${kind}:${siteId}:${subject.kind}:${subjectId}:${segment}`, (requestSignal) => deps.apiClient({
|
|
47848
|
+
return deps.resilientFetchData("resolveEventSubroute", `${kind}:${siteId}:${subject.kind}:${subjectId}:${segment}:${preview ? "preview" : "published"}`, (requestSignal) => deps.apiClient({
|
|
47244
47849
|
endpoint: "resolveEventSubroute",
|
|
47245
47850
|
params: {
|
|
47246
47851
|
siteId,
|
|
47247
47852
|
kind,
|
|
47248
47853
|
subjectKind: subject.kind,
|
|
47249
47854
|
subjectId,
|
|
47250
|
-
segment
|
|
47855
|
+
segment,
|
|
47856
|
+
stage: preview ? "preview" : "published"
|
|
47251
47857
|
},
|
|
47252
47858
|
options: { signal: requestSignal }
|
|
47253
|
-
}), {
|
|
47859
|
+
}), {
|
|
47860
|
+
signal,
|
|
47861
|
+
preview
|
|
47862
|
+
});
|
|
47254
47863
|
}
|
|
47255
47864
|
return {
|
|
47256
47865
|
async listPublicEventCalendarWindow({ signal, ...params }) {
|
|
@@ -47925,7 +48534,7 @@ function createRiverbankClientWithDeps(deps, config) {
|
|
|
47925
48534
|
const result = await reader({
|
|
47926
48535
|
cacheKey: plan.cacheKey,
|
|
47927
48536
|
endpoint: plan.endpoint,
|
|
47928
|
-
payloadSchemaVersion:
|
|
48537
|
+
payloadSchemaVersion: 2
|
|
47929
48538
|
});
|
|
47930
48539
|
if (result.kind === "miss") return {
|
|
47931
48540
|
kind: "miss",
|
|
@@ -47974,7 +48583,7 @@ function createRiverbankClientWithDeps(deps, config) {
|
|
|
47974
48583
|
siteId: plan.siteId ?? getRuntimePayloadSiteId(payload),
|
|
47975
48584
|
freshTtlSec: plan.freshTtlSec,
|
|
47976
48585
|
staleTtlSec: plan.staleTtlSec,
|
|
47977
|
-
payloadSchemaVersion:
|
|
48586
|
+
payloadSchemaVersion: 2,
|
|
47978
48587
|
writeReason: "live_success"
|
|
47979
48588
|
});
|
|
47980
48589
|
} catch {}
|
|
@@ -49729,7 +50338,12 @@ const appointmentSetupServiceDraftSchema = z.object({
|
|
|
49729
50338
|
venue: appointmentSetupVenueChoiceSchema,
|
|
49730
50339
|
timezone: z.string().trim().min(1).nullable(),
|
|
49731
50340
|
payment: appointmentSetupPaymentDraftSchema,
|
|
49732
|
-
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
50341
|
+
assignment: appointmentSetupServiceAssignmentDraftSchema,
|
|
50342
|
+
/**
|
|
50343
|
+
* The service's category, or null for "Other" (issue 1403). Omitted leaves
|
|
50344
|
+
* an existing service's category alone and puts a new one in "Other".
|
|
50345
|
+
*/
|
|
50346
|
+
categoryId: z.string().uuid().nullable().optional()
|
|
49733
50347
|
}).superRefine((service, ctx) => {
|
|
49734
50348
|
if (service.payment.kind !== "free" && (service.priceAmount === null || service.priceAmount <= 0)) ctx.addIssue({
|
|
49735
50349
|
code: "custom",
|
|
@@ -50715,7 +51329,7 @@ async function loadPageWithDeps(deps, params) {
|
|
|
50715
51329
|
});
|
|
50716
51330
|
return {
|
|
50717
51331
|
page: pageOutline,
|
|
50718
|
-
|
|
51332
|
+
runtimeJoins: pageData.runtimeJoins,
|
|
50719
51333
|
theme: requireSdkTheme(support.theme, siteId),
|
|
50720
51334
|
sdkConfig: support.sdkConfig,
|
|
50721
51335
|
siteId,
|
|
@@ -51498,7 +52112,7 @@ async function loadContentFromContentResponseWithDeps(deps, params) {
|
|
|
51498
52112
|
ogImageId: pageRecord.ogImageId ?? null
|
|
51499
52113
|
},
|
|
51500
52114
|
page: pageOutline,
|
|
51501
|
-
|
|
52115
|
+
runtimeJoins: pageData.runtimeJoins,
|
|
51502
52116
|
theme: support.theme,
|
|
51503
52117
|
siteId,
|
|
51504
52118
|
...support.customBlocks ? { customBlocks: support.customBlocks } : {},
|