@riverbankcms/sdk 0.144.0 → 0.146.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/CHANGELOG.md +17 -0
- package/dist/{PreviewEditorSidebar-CQZNnFiM.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
- package/dist/{PreviewEditorUI-DCNxnmI0.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BJolUbr1.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +688 -519
- package/dist/{SiteChromeCustomizeContext-CKgEpoxi.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +3381 -2017
- package/dist/_dts/ai/src/contracts/proposals.d.ts +5643 -66
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +513 -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/bookingConfig.d.ts +8 -1
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +10 -26
- package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
- package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
- package/dist/_dts/api/src/communications.d.ts +32 -24
- package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
- package/dist/_dts/api/src/endpoints.d.ts +316 -134
- package/dist/_dts/api/src/event-visibility.d.ts +20 -0
- package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
- package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
- package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
- package/dist/_dts/api/src/index.d.ts +7 -1
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +22 -2
- package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
- package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +30 -11
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
- package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
- package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
- package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
- 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/sdk-event-upsert.d.ts +40 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
- package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
- package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
- package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
- package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
- package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
- package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
- package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
- package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
- package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +4 -38
- package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
- package/dist/_dts/api/src/types.d.ts +8 -1
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
- 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 +24 -0
- package/dist/_dts/blocks/src/index.d.ts +3 -1
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
- 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 -1
- 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/events/shared/schemas.d.ts +27 -5
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -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/icons/social.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
- package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
- 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/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/event-registration/eventSourceRecovery.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +23 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
- package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -3
- 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/block-content-identity.d.ts +5 -0
- package/dist/_dts/core/src/editor-state.d.ts +2 -1
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
- package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
- package/dist/_dts/core/src/public-profile.d.ts +12 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +711 -242
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -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/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 +3 -3
- 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 -1
- package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
- package/dist/_dts/sdk/src/client/types.d.ts +1 -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/next/renderSdkContent.d.ts +0 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -8
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +6 -2
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +10 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
- package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
- 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/ui/src/navigation-tabs.d.ts +2 -1
- package/dist/client/{BookingConsentAgreement-DoAILrkN.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
- package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
- package/dist/client/{DiscountCodeDisclosure-X528hUTf.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
- package/dist/client/{EventCombined.client-DSBVwq5m.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
- package/dist/client/{EventListing.client-DmFAX7Vb.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BAqXdfhq.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
- package/dist/client/{ThemedButton-BwNFVwi4.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
- package/dist/client/{accordion-DRhMdkbd.mjs → accordion-BEQNSptH.mjs} +1 -1
- package/dist/client/{bookingForm-iJ_nCsNF.mjs → bookingForm-AMr-s5vw.mjs} +168 -95
- package/dist/client/bookings.mjs +239 -110
- package/dist/client/{carousel-D8zuffZr.mjs → carousel-Bbt_QgJy.mjs} +1 -1
- package/dist/client/{cart-DeMGJViN.mjs → cart-CnWi30zJ.mjs} +3 -3
- package/dist/client/{checkout-DXc06Km2.mjs → checkout-f3nkWgd4.mjs} +3 -3
- package/dist/client/client.mjs +3222 -1612
- package/dist/client/{context-CDLCfDep.mjs → context-Bc8T6pCe.mjs} +1 -1
- package/dist/client/{dates-ClFx7Epy.mjs → dates-DUsCEzLb.mjs} +2 -3
- package/dist/client/{eventCalendar-BaGpnOGN.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
- package/dist/client/{eventCombined-ywONOx2m.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
- package/dist/client/{eventDetails-B2LlOTYY.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
- package/dist/client/{eventListing-CMgxWpqP.mjs → eventListing-CA3frIH5.mjs} +4 -4
- package/dist/client/{eventRegistration-BarLDNHR.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
- package/dist/client/{form-BjqKaBJ7.mjs → form-C2h3YAcg.mjs} +135 -104
- package/dist/client/{headerSection-CP4XDwz1.mjs → headerSection-lwMuMTH9.mjs} +3 -3
- package/dist/client/hooks.mjs +1023 -148
- package/dist/client/{locationMap-C5gW-d-w.mjs → locationMap-DJ2bLODV.mjs} +3 -3
- package/dist/client/{newsletterForm-afXlVSA0.mjs → newsletterForm-8Pu5K32g.mjs} +225 -102
- package/dist/client/{pricing-Bl1CAl28.mjs → pricing-HHx3IgBz.mjs} +1 -1
- package/dist/client/{productDetail-CvQ3jWQe.mjs → productDetail-C_1odnAf.mjs} +3 -3
- package/dist/client/{productList-U874PGO7.mjs → productList-CtCv-Nmx.mjs} +3 -3
- package/dist/client/{propsDecoder-DPXtCZWP.mjs → propsDecoder-Dcgsncxb.mjs} +111 -55
- package/dist/client/rendering/client.mjs +1389 -722
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +3136 -1400
- package/dist/client/{routeIslandApiConfig-NGYiUWXu.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
- package/dist/client/{scrollToBlock-0-C3DVhK.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
- package/dist/client/{shop-BXjXhM9P.mjs → shop-DQXrQ8kJ.mjs} +7 -7
- package/dist/client/{shop-commerce-BZ6UlWJ7.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DlSBXb3D.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
- package/dist/client/{shopShared-kkEOiLPA.mjs → shopShared-cuaONpkJ.mjs} +4 -4
- package/dist/client/{useEventFilters-zvnnE1ro.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +500 -165
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-base.css +11 -0
- package/dist/preview-next/keepAlive.mjs +460 -165
- package/dist/preview-next/middleware.mjs +461 -165
- package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-h5IgbSp4.mjs} +485 -165
- package/dist/{sdk-runtime-DFJlQt3q.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
- package/dist/{separator-o8GHb1xh.mjs → separator-BpHS1KZK.mjs} +1 -1
- package/dist/server/components.mjs +3088 -1307
- package/dist/server/config-validation.mjs +927 -109
- package/dist/server/config.mjs +927 -109
- package/dist/server/data.mjs +939 -110
- package/dist/server/index.mjs +513 -169
- package/dist/server/next.mjs +2874 -1195
- package/dist/server/page-converter.mjs +420 -79
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3071 -1289
- package/dist/server/rendering.mjs +3169 -1350
- package/dist/server/routing.mjs +1085 -159
- package/dist/server/server.mjs +1042 -291
- package/dist/server/theme-bridge.mjs +1658 -137
- package/dist/server/theme.mjs +6 -4
- package/dist/styles/index.css +186 -65
- package/package.json +2 -1
|
@@ -10,7 +10,7 @@ export type DisplayMediaKind = (typeof DISPLAY_MEDIA_KINDS)[number];
|
|
|
10
10
|
export declare const DEFAULT_MEDIA_FIELD_KINDS: readonly ["image"];
|
|
11
11
|
export declare const PUBLIC_FILE_FIELD_KINDS: readonly ["document", "spreadsheet", "archive", "audio"];
|
|
12
12
|
export type FileFieldKind = (typeof PUBLIC_FILE_FIELD_KINDS)[number];
|
|
13
|
-
export declare const siteOptionSources: readonly ["eventCategories", "eventSeries", "venues", "staffMembers"];
|
|
13
|
+
export declare const siteOptionSources: readonly ["eventCategories", "eventSeries", "venues", "staffMembers", "appointmentServiceCategories"];
|
|
14
14
|
export type SiteOptionSource = (typeof siteOptionSources)[number];
|
|
15
15
|
declare const selectOptionSchema: z.ZodObject<{
|
|
16
16
|
value: z.ZodString;
|
|
@@ -27,6 +27,7 @@ declare const selectSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
27
27
|
eventCategories: "eventCategories";
|
|
28
28
|
venues: "venues";
|
|
29
29
|
staffMembers: "staffMembers";
|
|
30
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
30
31
|
}>;
|
|
31
32
|
}, z.core.$strip>, z.ZodObject<{
|
|
32
33
|
kind: z.ZodLiteral<"sdk">;
|
|
@@ -210,6 +211,7 @@ declare const uiSchema: z.ZodObject<{
|
|
|
210
211
|
eventCategories: "eventCategories";
|
|
211
212
|
venues: "venues";
|
|
212
213
|
staffMembers: "staffMembers";
|
|
214
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
213
215
|
}>>>;
|
|
214
216
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
215
217
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -399,6 +401,7 @@ declare const baseFieldSchema: z.ZodObject<{
|
|
|
399
401
|
eventCategories: "eventCategories";
|
|
400
402
|
venues: "venues";
|
|
401
403
|
staffMembers: "staffMembers";
|
|
404
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
402
405
|
}>>>;
|
|
403
406
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
404
407
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -589,6 +592,7 @@ declare const textFieldSchema: z.ZodObject<{
|
|
|
589
592
|
eventCategories: "eventCategories";
|
|
590
593
|
venues: "venues";
|
|
591
594
|
staffMembers: "staffMembers";
|
|
595
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
592
596
|
}>>>;
|
|
593
597
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
594
598
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -782,6 +786,7 @@ declare const richTextFieldSchema: z.ZodObject<{
|
|
|
782
786
|
eventCategories: "eventCategories";
|
|
783
787
|
venues: "venues";
|
|
784
788
|
staffMembers: "staffMembers";
|
|
789
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
785
790
|
}>>>;
|
|
786
791
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
787
792
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -973,6 +978,7 @@ declare const inlineTextFieldSchema: z.ZodObject<{
|
|
|
973
978
|
eventCategories: "eventCategories";
|
|
974
979
|
venues: "venues";
|
|
975
980
|
staffMembers: "staffMembers";
|
|
981
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
976
982
|
}>>>;
|
|
977
983
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
978
984
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -1166,6 +1172,7 @@ declare const mediaFieldSchema: z.ZodObject<{
|
|
|
1166
1172
|
eventCategories: "eventCategories";
|
|
1167
1173
|
venues: "venues";
|
|
1168
1174
|
staffMembers: "staffMembers";
|
|
1175
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
1169
1176
|
}>>>;
|
|
1170
1177
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
1171
1178
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -1366,6 +1373,7 @@ declare const fileFieldSchema: z.ZodObject<{
|
|
|
1366
1373
|
eventCategories: "eventCategories";
|
|
1367
1374
|
venues: "venues";
|
|
1368
1375
|
staffMembers: "staffMembers";
|
|
1376
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
1369
1377
|
}>>>;
|
|
1370
1378
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
1371
1379
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -1563,6 +1571,7 @@ declare const booleanFieldSchema: z.ZodObject<{
|
|
|
1563
1571
|
eventCategories: "eventCategories";
|
|
1564
1572
|
venues: "venues";
|
|
1565
1573
|
staffMembers: "staffMembers";
|
|
1574
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
1566
1575
|
}>>>;
|
|
1567
1576
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
1568
1577
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -1754,6 +1763,7 @@ declare const dateFieldSchema: z.ZodObject<{
|
|
|
1754
1763
|
eventCategories: "eventCategories";
|
|
1755
1764
|
venues: "venues";
|
|
1756
1765
|
staffMembers: "staffMembers";
|
|
1766
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
1757
1767
|
}>>>;
|
|
1758
1768
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
1759
1769
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -1945,6 +1955,7 @@ declare const timeFieldSchema: z.ZodObject<{
|
|
|
1945
1955
|
eventCategories: "eventCategories";
|
|
1946
1956
|
venues: "venues";
|
|
1947
1957
|
staffMembers: "staffMembers";
|
|
1958
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
1948
1959
|
}>>>;
|
|
1949
1960
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
1950
1961
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -2136,6 +2147,7 @@ declare const dateTimeFieldSchema: z.ZodObject<{
|
|
|
2136
2147
|
eventCategories: "eventCategories";
|
|
2137
2148
|
venues: "venues";
|
|
2138
2149
|
staffMembers: "staffMembers";
|
|
2150
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
2139
2151
|
}>>>;
|
|
2140
2152
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
2141
2153
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -2327,6 +2339,7 @@ declare const slugFieldSchema: z.ZodObject<{
|
|
|
2327
2339
|
eventCategories: "eventCategories";
|
|
2328
2340
|
venues: "venues";
|
|
2329
2341
|
staffMembers: "staffMembers";
|
|
2342
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
2330
2343
|
}>>>;
|
|
2331
2344
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
2332
2345
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -2521,6 +2534,7 @@ declare const urlFieldSchema: z.ZodObject<{
|
|
|
2521
2534
|
eventCategories: "eventCategories";
|
|
2522
2535
|
venues: "venues";
|
|
2523
2536
|
staffMembers: "staffMembers";
|
|
2537
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
2524
2538
|
}>>>;
|
|
2525
2539
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
2526
2540
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -2713,6 +2727,7 @@ declare const linkFieldSchema: z.ZodObject<{
|
|
|
2713
2727
|
eventCategories: "eventCategories";
|
|
2714
2728
|
venues: "venues";
|
|
2715
2729
|
staffMembers: "staffMembers";
|
|
2730
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
2716
2731
|
}>>>;
|
|
2717
2732
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
2718
2733
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -2904,6 +2919,7 @@ declare const selectFieldSchema: z.ZodObject<{
|
|
|
2904
2919
|
eventCategories: "eventCategories";
|
|
2905
2920
|
venues: "venues";
|
|
2906
2921
|
staffMembers: "staffMembers";
|
|
2922
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
2907
2923
|
}>>>;
|
|
2908
2924
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
2909
2925
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -2934,6 +2950,7 @@ declare const selectFieldSchema: z.ZodObject<{
|
|
|
2934
2950
|
eventCategories: "eventCategories";
|
|
2935
2951
|
venues: "venues";
|
|
2936
2952
|
staffMembers: "staffMembers";
|
|
2953
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
2937
2954
|
}>;
|
|
2938
2955
|
}, z.core.$strip>, z.ZodObject<{
|
|
2939
2956
|
kind: z.ZodLiteral<"sdk">;
|
|
@@ -3115,6 +3132,7 @@ declare const referenceFieldSchema: z.ZodObject<{
|
|
|
3115
3132
|
eventCategories: "eventCategories";
|
|
3116
3133
|
venues: "venues";
|
|
3117
3134
|
staffMembers: "staffMembers";
|
|
3135
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
3118
3136
|
}>>>;
|
|
3119
3137
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
3120
3138
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -3318,6 +3336,7 @@ declare const repeaterFieldSchema: z.ZodObject<{
|
|
|
3318
3336
|
eventCategories: "eventCategories";
|
|
3319
3337
|
venues: "venues";
|
|
3320
3338
|
staffMembers: "staffMembers";
|
|
3339
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
3321
3340
|
}>>>;
|
|
3322
3341
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
3323
3342
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -3526,6 +3545,7 @@ declare const groupFieldSchema: z.ZodObject<{
|
|
|
3526
3545
|
eventCategories: "eventCategories";
|
|
3527
3546
|
venues: "venues";
|
|
3528
3547
|
staffMembers: "staffMembers";
|
|
3548
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
3529
3549
|
}>>>;
|
|
3530
3550
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
3531
3551
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -3720,6 +3740,7 @@ declare const modalFieldSchema: z.ZodObject<{
|
|
|
3720
3740
|
eventCategories: "eventCategories";
|
|
3721
3741
|
venues: "venues";
|
|
3722
3742
|
staffMembers: "staffMembers";
|
|
3743
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
3723
3744
|
}>>>;
|
|
3724
3745
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
3725
3746
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -3914,6 +3935,7 @@ declare const numberFieldSchema: z.ZodObject<{
|
|
|
3914
3935
|
eventCategories: "eventCategories";
|
|
3915
3936
|
venues: "venues";
|
|
3916
3937
|
staffMembers: "staffMembers";
|
|
3938
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
3917
3939
|
}>>>;
|
|
3918
3940
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
3919
3941
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -4108,6 +4130,7 @@ declare const tabGroupFieldSchema: z.ZodObject<{
|
|
|
4108
4130
|
eventCategories: "eventCategories";
|
|
4109
4131
|
venues: "venues";
|
|
4110
4132
|
staffMembers: "staffMembers";
|
|
4133
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
4111
4134
|
}>>>;
|
|
4112
4135
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
4113
4136
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -4312,6 +4335,7 @@ declare const presetOrCustomFieldSchema: z.ZodObject<{
|
|
|
4312
4335
|
eventCategories: "eventCategories";
|
|
4313
4336
|
venues: "venues";
|
|
4314
4337
|
staffMembers: "staffMembers";
|
|
4338
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
4315
4339
|
}>>>;
|
|
4316
4340
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
4317
4341
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -4512,6 +4536,7 @@ declare const contentTypeSelectFieldSchema: z.ZodObject<{
|
|
|
4512
4536
|
eventCategories: "eventCategories";
|
|
4513
4537
|
venues: "venues";
|
|
4514
4538
|
staffMembers: "staffMembers";
|
|
4539
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
4515
4540
|
}>>>;
|
|
4516
4541
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
4517
4542
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -4708,6 +4733,7 @@ declare const entryPickerFieldSchema: z.ZodObject<{
|
|
|
4708
4733
|
eventCategories: "eventCategories";
|
|
4709
4734
|
venues: "venues";
|
|
4710
4735
|
staffMembers: "staffMembers";
|
|
4736
|
+
appointmentServiceCategories: "appointmentServiceCategories";
|
|
4711
4737
|
}>>>;
|
|
4712
4738
|
searchThreshold: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
4713
4739
|
renderInHeader: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -4933,8 +4959,8 @@ export declare const previewCustomizeManifestCurationSchema: z.ZodObject<{
|
|
|
4933
4959
|
export type PreviewCustomizeManifestCuration = z.infer<typeof previewCustomizeManifestCurationSchema>;
|
|
4934
4960
|
export declare const blockCategoryEnum: z.ZodEnum<{
|
|
4935
4961
|
content: "content";
|
|
4936
|
-
media: "media";
|
|
4937
4962
|
layout: "layout";
|
|
4963
|
+
media: "media";
|
|
4938
4964
|
marketing: "marketing";
|
|
4939
4965
|
blog: "blog";
|
|
4940
4966
|
interactive: "interactive";
|
|
@@ -5050,8 +5076,8 @@ export declare const manifestSchema: z.ZodObject<{
|
|
|
5050
5076
|
}, z.core.$strip>>>>;
|
|
5051
5077
|
category: z.ZodOptional<z.ZodEnum<{
|
|
5052
5078
|
content: "content";
|
|
5053
|
-
media: "media";
|
|
5054
5079
|
layout: "layout";
|
|
5080
|
+
media: "media";
|
|
5055
5081
|
marketing: "marketing";
|
|
5056
5082
|
blog: "blog";
|
|
5057
5083
|
interactive: "interactive";
|
|
@@ -25,7 +25,7 @@ export type SystemBlockComponentProps<TContent = Record<string, unknown>> = {
|
|
|
25
25
|
data?: Record<string, unknown>;
|
|
26
26
|
pathBase?: string;
|
|
27
27
|
blockId?: string | null;
|
|
28
|
-
|
|
28
|
+
newsletterBlockSubmission?: ResolverContext['newsletterBlockSubmission'];
|
|
29
29
|
blockKind?: string;
|
|
30
30
|
blockBindings?: Record<string, unknown>;
|
|
31
31
|
editableRouteMetadataFieldIds?: ResolverContext['editableRouteMetadataFieldIds'];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type BlockApiConfig } from "../api";
|
|
3
3
|
import type { AutoAppliedDiscountPreview } from "../api/types";
|
|
4
|
-
import type { BookingFormConfig, BookingFormData, BookingFormService, BookingSelectedCollectionOptionKind } from "../nodes/booking-form.state";
|
|
4
|
+
import type { BookingFormConfig, BookingFormData, BookingFormService, BookingFormServiceCategory, BookingSelectedCollectionOptionKind } from "../nodes/booking-form.state";
|
|
5
5
|
import { type BookingPaymentSelectionViewModel } from "../shared/bookingPaymentOptions";
|
|
6
6
|
import { createBookingBlockApiConfig, type BookingAppointmentPackagesModel, type BookingFieldValue, type BookingFieldView, type BookingFlowActionResult, type BookingFlowFeedback, type BookingFlowStatus, type BookingFlowView, type BookingResourceView, type BookingFlowStep, type BookingFlowStepId, type BookingSlotSelection, type BookingSlotView, type BookingSubmitActionResult, type BookingSubmitOptions, getBookingServiceSlidingScale, type LoadState } from "./useHeadlessBookingFlow.state";
|
|
7
7
|
export type { BlockApiConfig };
|
|
@@ -12,6 +12,11 @@ export type HeadlessBookingFlowOptions = Readonly<{
|
|
|
12
12
|
formId: string;
|
|
13
13
|
form: BookingFormConfig | null;
|
|
14
14
|
services: readonly BookingFormService[];
|
|
15
|
+
/**
|
|
16
|
+
* The site's ordered service categories (issue 1403), used to group the
|
|
17
|
+
* service choice. Omitted or empty means a site without categories.
|
|
18
|
+
*/
|
|
19
|
+
serviceCategories?: readonly BookingFormServiceCategory[];
|
|
15
20
|
initialServiceId?: string;
|
|
16
21
|
initialResourceId?: string;
|
|
17
22
|
initialData?: Partial<BookingFormData>;
|
|
@@ -27,6 +32,8 @@ export type HeadlessBookingFlowOptions = Readonly<{
|
|
|
27
32
|
}>;
|
|
28
33
|
export type BookingServicesModel = Readonly<{
|
|
29
34
|
items: readonly BookingFormService[];
|
|
35
|
+
/** Ordered service categories for grouping `items`; empty when the site has none. */
|
|
36
|
+
categories: readonly BookingFormServiceCategory[];
|
|
30
37
|
selected: BookingFormService | null;
|
|
31
38
|
defaultServiceId?: string;
|
|
32
39
|
requiresSelection: boolean;
|
|
@@ -57,6 +57,7 @@ declare const publicAppointmentServiceSchema: z.ZodObject<{
|
|
|
57
57
|
area: z.ZodNullable<z.ZodString>;
|
|
58
58
|
}, z.core.$strip>>;
|
|
59
59
|
}, z.core.$strip>], "mode">;
|
|
60
|
+
categoryId: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodString>>, z.ZodTransform<string | null, string | null | undefined>>;
|
|
60
61
|
}, z.core.$strip>;
|
|
61
62
|
type PublicAppointmentService = z.infer<typeof publicAppointmentServiceSchema>;
|
|
62
63
|
export type AppointmentServiceRow = Readonly<{
|
|
@@ -69,9 +70,25 @@ export type AppointmentServiceRow = Readonly<{
|
|
|
69
70
|
href: string;
|
|
70
71
|
detailsHref: string | null;
|
|
71
72
|
}>;
|
|
73
|
+
/** One category (or the trailing "Other") with its heading, intro and rows. */
|
|
74
|
+
export type AppointmentServiceGroup = Readonly<{
|
|
75
|
+
key: string;
|
|
76
|
+
heading: string;
|
|
77
|
+
intro: string | null;
|
|
78
|
+
rows: readonly AppointmentServiceRow[];
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* `items` is the flat list of a site with no categories, unchanged from before
|
|
82
|
+
* categories existed. `groups` is a categorised site: every non-empty
|
|
83
|
+
* category in order and then "Other", or the one category a block is
|
|
84
|
+
* filtered to.
|
|
85
|
+
*/
|
|
72
86
|
export type AppointmentServicesView = Readonly<{
|
|
73
87
|
kind: 'items';
|
|
74
88
|
rows: readonly AppointmentServiceRow[];
|
|
89
|
+
}> | Readonly<{
|
|
90
|
+
kind: 'groups';
|
|
91
|
+
groups: readonly AppointmentServiceGroup[];
|
|
75
92
|
}> | Readonly<{
|
|
76
93
|
kind: 'empty';
|
|
77
94
|
message: string;
|
|
@@ -81,18 +98,21 @@ export type AppointmentServicesView = Readonly<{
|
|
|
81
98
|
}>;
|
|
82
99
|
export type AppointmentServicesNodeProps = Readonly<{
|
|
83
100
|
sectionHeading?: unknown;
|
|
101
|
+
categoryId?: unknown;
|
|
84
102
|
services?: unknown;
|
|
85
103
|
pathname?: unknown;
|
|
86
104
|
servicePathPrefix?: unknown;
|
|
105
|
+
blockId?: string | null;
|
|
87
106
|
className?: string | null;
|
|
88
107
|
}>;
|
|
89
108
|
export declare function formatAppointmentDuration(durationMinutes: number): string;
|
|
90
109
|
export declare function formatAppointmentLocation(location: PublicAppointmentLocation): string | null;
|
|
91
|
-
export declare function formatAppointmentPrice(service: PublicAppointmentService): string | null;
|
|
110
|
+
export declare function formatAppointmentPrice(service: Pick<PublicAppointmentService, 'pricing' | 'priceAmount' | 'priceCurrency'>): string | null;
|
|
92
111
|
export declare function buildAppointmentServicesView(input: Readonly<{
|
|
93
112
|
services: unknown;
|
|
113
|
+
categoryId?: unknown;
|
|
94
114
|
pathname: string | undefined;
|
|
95
115
|
servicePathPrefix?: string | null;
|
|
96
116
|
}>): AppointmentServicesView;
|
|
97
|
-
export declare function AppointmentServicesNode({ sectionHeading, services, pathname, servicePathPrefix, className, }: AppointmentServicesNodeProps): React.ReactElement;
|
|
117
|
+
export declare function AppointmentServicesNode({ sectionHeading, categoryId, services, pathname, servicePathPrefix, blockId, className, }: AppointmentServicesNodeProps): React.ReactElement;
|
|
98
118
|
export default AppointmentServicesNode;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AppointmentResourceId, AppointmentServiceId, Brand, CustomerPassId, FormId, PassId, SiteId } from "../../../../../core/src/index";
|
|
2
2
|
import type { BlockApiConfig, EligibleAppointmentPackage } from "../api/types";
|
|
3
3
|
import type { TimeSlot } from "../api/types";
|
|
4
|
-
import type { BookingFormConfig, BookingFormData, BookingFormField, BookingPaymentStepResolution, BookingFormServicesSource, BookingFormService, BookingSelectedCollectionOptionKind, BookingSubmissionData } from "./booking-form.state";
|
|
4
|
+
import type { BookingFormConfig, BookingFormData, BookingFormField, BookingPaymentStepResolution, BookingFormServicesSource, BookingFormService, BookingFormServiceCategory, BookingSelectedCollectionOptionKind, BookingSubmissionData } from "./booking-form.state";
|
|
5
5
|
import type { BookingValidationErrors } from "./booking-form.validationErrors";
|
|
6
6
|
import { type BookingFieldValue } from "./booking-form.field-values";
|
|
7
7
|
export type { BookingFieldValue } from "./booking-form.field-values";
|
|
@@ -416,6 +416,8 @@ export type AppointmentBookingOverrideInput = Readonly<{
|
|
|
416
416
|
formId: FormId;
|
|
417
417
|
form: BookingFormConfig;
|
|
418
418
|
services: readonly BookingFormService[];
|
|
419
|
+
/** Ordered service categories (issue 1403); empty when the site has none. */
|
|
420
|
+
serviceCategories: readonly BookingFormServiceCategory[];
|
|
419
421
|
initialServiceId?: AppointmentServiceId;
|
|
420
422
|
initialResourceId?: AppointmentResourceId;
|
|
421
423
|
requiresServiceSelection: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type InteractiveIslandProps } from "../../../contracts/islands";
|
|
2
|
-
import { type BookingFormService, type BookingFormConfig, type BookingFormServicesSource } from "./booking-form.state";
|
|
2
|
+
import { type BookingFormService, type BookingFormServiceCategory, type BookingFormConfig, type BookingFormServicesSource } from "./booking-form.state";
|
|
3
3
|
import { type BookingFormRebookContext, type BookingFormSourceProps } from "./booking-runtime-sources";
|
|
4
|
-
export type { BookingFormConfig, BookingFormService };
|
|
4
|
+
export type { BookingFormConfig, BookingFormService, BookingFormServiceCategory };
|
|
5
5
|
export type { BookingFormRebookContext, BookingFormSourceProps };
|
|
6
6
|
export type BookingFormDisplay = Readonly<{
|
|
7
7
|
kind: "booking-form";
|
|
@@ -23,6 +23,11 @@ export type BookingFormHydration = Readonly<{
|
|
|
23
23
|
rebookContext?: BookingFormRebookContext | null;
|
|
24
24
|
form: BookingFormConfig | null;
|
|
25
25
|
services: readonly BookingFormService[];
|
|
26
|
+
/**
|
|
27
|
+
* The site's ordered service categories (issue 1403). Optional so a page
|
|
28
|
+
* rendered before categories existed still hydrates, as a site without any.
|
|
29
|
+
*/
|
|
30
|
+
serviceCategories?: readonly BookingFormServiceCategory[];
|
|
26
31
|
spamProtectionEnabled?: boolean;
|
|
27
32
|
}>;
|
|
28
33
|
type BookingFormIslandMeta = Readonly<{
|
|
@@ -143,6 +148,16 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
143
148
|
agreement: import("../../../../../core/src/index").RichTextDoc;
|
|
144
149
|
checkboxLabel: string;
|
|
145
150
|
}>;
|
|
151
|
+
categoryId?: string | null;
|
|
152
|
+
}>[];
|
|
153
|
+
/**
|
|
154
|
+
* The site's ordered service categories (issue 1403). Optional so a page
|
|
155
|
+
* rendered before categories existed still hydrates, as a site without any.
|
|
156
|
+
*/
|
|
157
|
+
serviceCategories?: readonly Readonly<{
|
|
158
|
+
id: string;
|
|
159
|
+
name: string;
|
|
160
|
+
description: string | null;
|
|
146
161
|
}>[];
|
|
147
162
|
spamProtectionEnabled?: boolean;
|
|
148
163
|
}>;
|
|
@@ -302,6 +317,16 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
302
317
|
agreement: import("../../../../../core/src/index").RichTextDoc;
|
|
303
318
|
checkboxLabel: string;
|
|
304
319
|
}>;
|
|
320
|
+
categoryId?: string | null;
|
|
321
|
+
}>[];
|
|
322
|
+
/**
|
|
323
|
+
* The site's ordered service categories (issue 1403). Optional so a page
|
|
324
|
+
* rendered before categories existed still hydrates, as a site without any.
|
|
325
|
+
*/
|
|
326
|
+
serviceCategories?: readonly Readonly<{
|
|
327
|
+
id: string;
|
|
328
|
+
name: string;
|
|
329
|
+
description: string | null;
|
|
305
330
|
}>[];
|
|
306
331
|
spamProtectionEnabled?: boolean;
|
|
307
332
|
}>;
|
|
@@ -375,6 +400,16 @@ export declare const bookingFormBlockRuntime: Readonly<{
|
|
|
375
400
|
agreement: import("../../../../../core/src/index").RichTextDoc;
|
|
376
401
|
checkboxLabel: string;
|
|
377
402
|
}>;
|
|
403
|
+
categoryId?: string | null;
|
|
404
|
+
}>[];
|
|
405
|
+
/**
|
|
406
|
+
* The site's ordered service categories (issue 1403). Optional so a page
|
|
407
|
+
* rendered before categories existed still hydrates, as a site without any.
|
|
408
|
+
*/
|
|
409
|
+
serviceCategories?: readonly Readonly<{
|
|
410
|
+
id: string;
|
|
411
|
+
name: string;
|
|
412
|
+
description: string | null;
|
|
378
413
|
}>[];
|
|
379
414
|
spamProtectionEnabled?: boolean;
|
|
380
415
|
}>;
|
|
@@ -460,6 +495,16 @@ export declare const bookingFormInteractiveIslandPropsCodec: Readonly<{
|
|
|
460
495
|
agreement: import("../../../../../core/src/index").RichTextDoc;
|
|
461
496
|
checkboxLabel: string;
|
|
462
497
|
}>;
|
|
498
|
+
categoryId?: string | null;
|
|
499
|
+
}>[];
|
|
500
|
+
/**
|
|
501
|
+
* The site's ordered service categories (issue 1403). Optional so a page
|
|
502
|
+
* rendered before categories existed still hydrates, as a site without any.
|
|
503
|
+
*/
|
|
504
|
+
serviceCategories?: readonly Readonly<{
|
|
505
|
+
id: string;
|
|
506
|
+
name: string;
|
|
507
|
+
description: string | null;
|
|
463
508
|
}>[];
|
|
464
509
|
spamProtectionEnabled?: boolean;
|
|
465
510
|
}>;
|
|
@@ -542,6 +587,16 @@ export declare const bookingFormInteractiveIslandPropsCodec: Readonly<{
|
|
|
542
587
|
agreement: import("../../../../../core/src/index").RichTextDoc;
|
|
543
588
|
checkboxLabel: string;
|
|
544
589
|
}>;
|
|
590
|
+
categoryId?: string | null;
|
|
591
|
+
}>[];
|
|
592
|
+
/**
|
|
593
|
+
* The site's ordered service categories (issue 1403). Optional so a page
|
|
594
|
+
* rendered before categories existed still hydrates, as a site without any.
|
|
595
|
+
*/
|
|
596
|
+
serviceCategories?: readonly Readonly<{
|
|
597
|
+
id: string;
|
|
598
|
+
name: string;
|
|
599
|
+
description: string | null;
|
|
545
600
|
}>[];
|
|
546
601
|
spamProtectionEnabled?: boolean;
|
|
547
602
|
}>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Appointment-service categories in the booking block (issue 1403): the
|
|
3
|
+
* headings the service step groups its choices under.
|
|
4
|
+
*/
|
|
5
|
+
import type { ServiceCategorySummary } from "../../../../../core/src/index";
|
|
6
|
+
import type { BookingFormService } from "./booking-form.state";
|
|
7
|
+
/**
|
|
8
|
+
* The services a booking block was given. Only the catalogue shape
|
|
9
|
+
* `{ services, categories }` carries categories; the other shapes read as a
|
|
10
|
+
* site without categories.
|
|
11
|
+
*/
|
|
12
|
+
export type BookingFormServicesSource = readonly BookingFormService[] | Readonly<{
|
|
13
|
+
services?: readonly BookingFormService[];
|
|
14
|
+
categories?: readonly BookingFormServiceCategory[];
|
|
15
|
+
}> | Readonly<Record<string, BookingFormService>>;
|
|
16
|
+
/** A category heading in the service step: the shared category summary. */
|
|
17
|
+
export type BookingFormServiceCategory = ServiceCategorySummary;
|
|
18
|
+
/**
|
|
19
|
+
* The ordered service categories carried by a catalogue-shaped services
|
|
20
|
+
* source (`{ services, categories }`). Every other shape has none, which
|
|
21
|
+
* reads as a site without categories. Order is preserved: the database owns
|
|
22
|
+
* it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeBookingServiceCategories(services: unknown): readonly BookingFormServiceCategory[];
|
|
25
|
+
/**
|
|
26
|
+
* The ordered service categories a headless booking override was given in
|
|
27
|
+
* its loader data (`data.services`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function readOverrideServiceCategories(data: unknown): readonly BookingFormServiceCategory[];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { HeadlessBookingFlow } from "../hooks/useHeadlessBookingFlow";
|
|
3
|
+
export declare function optionCardClassName(isSelected: boolean): string;
|
|
4
|
+
export declare function SelectedCheck(): React.ReactElement;
|
|
5
|
+
/**
|
|
6
|
+
* The service buttons. A site with no categories keeps its single grid; a
|
|
7
|
+
* categorised site gets a heading per category, then "Other", above the same
|
|
8
|
+
* grid (issue 1403). Empty categories are skipped, and there are no intros
|
|
9
|
+
* here, to keep the step compact.
|
|
10
|
+
*/
|
|
11
|
+
export declare function DefaultServiceChoices({ booking, }: Readonly<{
|
|
12
|
+
booking: HeadlessBookingFlow;
|
|
13
|
+
}>): React.ReactElement;
|
|
@@ -3,6 +3,7 @@ import { type BlockBookingConsent } from "../../blocks/shared/bookingConsent";
|
|
|
3
3
|
import type { AppointmentBookingStatusResponse } from "../api/types";
|
|
4
4
|
import type { BookingFormDataReservedKey } from "./booking-form.reserved-fields";
|
|
5
5
|
import type { BookingFormField } from "./booking-form.fields";
|
|
6
|
+
export type { BookingFormServiceCategory, BookingFormServicesSource, } from "./booking-form.service-categories";
|
|
6
7
|
export type { BookingFormField, BookingFormFieldOption, StandardBookingFormField, } from "./booking-form.fields";
|
|
7
8
|
export { APPOINTMENT_BOOKING_BLOCK_ID, BOOKING_FORM_DATA_RESERVED_KEYS, BOOKING_FORM_DATA_RESERVED_KEY_VALUES, collectBookingReservedFieldCollisions, findBookingFormDataReservedFieldCollisions, formatBookingReservedFieldCollisionMessages, formatBookingFormDataReservedFieldMessage, isBookingFormDataReservedKey, type BookingFormDataReservedKey, type BookingReservedFieldCollision, } from "./booking-form.reserved-fields";
|
|
8
9
|
export type BookingFormSettings = Readonly<{
|
|
@@ -65,11 +66,10 @@ export type BookingFormService = Readonly<{
|
|
|
65
66
|
paymentTerms?: BlockBookingPaymentTerms;
|
|
66
67
|
paymentTermsAvailability?: BlockBookingPaymentTermsAvailability;
|
|
67
68
|
consent?: BlockBookingConsent;
|
|
69
|
+
/** The service's category (issue 1403); null or absent is "Other". */
|
|
70
|
+
categoryId?: string | null;
|
|
68
71
|
}>;
|
|
69
72
|
export { projectSelectedAppointmentConsentIntoForm, resolveSelectedAppointmentConsent, type SelectedAppointmentConsent, } from "./booking-form.consent";
|
|
70
|
-
export type BookingFormServicesSource = readonly BookingFormService[] | Readonly<{
|
|
71
|
-
services?: readonly BookingFormService[];
|
|
72
|
-
}> | Readonly<Record<string, BookingFormService>>;
|
|
73
73
|
export type BookingSelectedCollectionOptionKind = "upfront" | "deferred_manual" | "instalment_plan" | "flexible_balance";
|
|
74
74
|
type BookingCustomFieldData<TCustomFieldId extends string> = Readonly<{
|
|
75
75
|
[K in TCustomFieldId as K extends BookingFormDataReservedKey ? never : K]?: unknown;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { PublicEvent } from "../../blocks/events/shared/types";
|
|
3
|
-
import type { StandardBookingFormField, BookingFormService, BookingFormServicesSource, BookingFormSettings, BookingFormSourceRecord } from "./booking-form.state";
|
|
3
|
+
import type { StandardBookingFormField, BookingFormService, BookingFormServiceCategory, BookingFormServicesSource, BookingFormSettings, BookingFormSourceRecord } from "./booking-form.state";
|
|
4
4
|
import type { EventRegistrationSourceProps } from "./event-registration.interactive";
|
|
5
5
|
export declare const APPOINTMENT_BOOKING_RUNTIME_FORM_ID = "booking-form";
|
|
6
6
|
export type BookingFormRebookContext = Readonly<{
|
|
@@ -97,12 +97,18 @@ export type AppointmentBookingServiceSourceInput = Readonly<{
|
|
|
97
97
|
paymentTerms?: BookingFormService["paymentTerms"];
|
|
98
98
|
paymentTermsAvailability?: BookingFormService["paymentTermsAvailability"];
|
|
99
99
|
consent?: BookingFormService["consent"];
|
|
100
|
+
categoryId?: string | null;
|
|
100
101
|
}>;
|
|
101
102
|
export type AppointmentBookingSourceProps = BookingFormSourceProps & Readonly<{
|
|
102
103
|
siteId: string;
|
|
103
104
|
formId: string;
|
|
104
105
|
form: BookingFormSourceRecord;
|
|
105
106
|
services: BookingFormService[];
|
|
107
|
+
/**
|
|
108
|
+
* The site's ordered service categories (issue 1403). The booking island
|
|
109
|
+
* receives them beside the services as `{ services, categories }`.
|
|
110
|
+
*/
|
|
111
|
+
serviceCategories: readonly BookingFormServiceCategory[];
|
|
106
112
|
serviceId: string | null;
|
|
107
113
|
resourceId: string | null;
|
|
108
114
|
initialData: Readonly<Record<string, unknown>> | null;
|
|
@@ -137,6 +143,12 @@ export declare function buildAppointmentBookingSourceProps(input: Readonly<{
|
|
|
137
143
|
previewToken?: string | null;
|
|
138
144
|
form: AppointmentBookingFormSourceInput;
|
|
139
145
|
services: readonly AppointmentBookingServiceSourceInput[];
|
|
146
|
+
/**
|
|
147
|
+
* Optional because the frontend and dashboard deploy separately: a
|
|
148
|
+
* services response from before categories (issue 1403) has none, and
|
|
149
|
+
* that must render the flat list rather than fail.
|
|
150
|
+
*/
|
|
151
|
+
serviceCategories?: readonly BookingFormServiceCategory[];
|
|
140
152
|
serviceId: string | null;
|
|
141
153
|
resourceId: string | null;
|
|
142
154
|
initialData: Readonly<Record<string, unknown>> | null;
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import type { PublicEventsRequest } from '../../api/types/events';
|
|
|
4
4
|
export declare const eventRecoveryRequestSchema: z.ZodObject<{
|
|
5
5
|
limit: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
6
6
|
eventSurface: z.ZodOptional<z.ZodEnum<{
|
|
7
|
-
custom: "custom";
|
|
8
7
|
all: "all";
|
|
8
|
+
custom: "custom";
|
|
9
9
|
regularClassSchedule: "regularClassSchedule";
|
|
10
10
|
specialDatedEvents: "specialDatedEvents";
|
|
11
11
|
}>>;
|
|
@@ -36,6 +36,7 @@ export declare const eventRecoveryRequestSchema: z.ZodObject<{
|
|
|
36
36
|
seriesSlug: z.ZodOptional<z.ZodString>;
|
|
37
37
|
includeOccurrenceId: z.ZodOptional<z.ZodString>;
|
|
38
38
|
readIntent: z.ZodOptional<z.ZodString>;
|
|
39
|
+
detailAdmission: z.ZodOptional<z.ZodString>;
|
|
39
40
|
readProfile: z.ZodOptional<z.ZodString>;
|
|
40
41
|
}, z.core.$strip>;
|
|
41
42
|
export type EventRecoveryRequest = Omit<PublicEventsRequest, 'siteId'>;
|