@riverbankcms/sdk 0.130.0 → 0.130.2
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 +85 -0
- package/README.md +1 -1
- package/dist/{PreviewEditorSidebar-DiEpbOdw.mjs → PreviewEditorSidebar-BY-1QdE2.mjs} +18 -15
- package/dist/{PreviewEditorUI-C6MvxnIa.mjs → PreviewEditorUI-BS34jI9_.mjs} +3 -3
- package/dist/{PreviewQueryProvider-C2rnoPz6.mjs → PreviewQueryProvider-BD0kOjtI.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DRXA_m5L.mjs → SdkPreviewModeRuntime-B1pWnhu-.mjs} +48 -21
- package/dist/{SiteChromeCustomizeContext-BTHdv5_-.mjs → SiteChromeCustomizeContext-BhUG_72i.mjs} +6180 -5076
- package/dist/_dts/ai/src/contracts/proposals.d.ts +309 -32
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +969 -112
- package/dist/_dts/api/src/accountApi.d.ts +213 -0
- package/dist/_dts/api/src/accountEndpointDefinitions.d.ts +30 -0
- package/dist/_dts/api/src/accountEndpoints.d.ts +254 -0
- package/dist/_dts/api/src/apiCallParams.d.ts +60 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +10 -20
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -5
- package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +15 -0
- package/dist/_dts/api/src/bookingSettingsSections.d.ts +9 -0
- package/dist/_dts/api/src/bookingVerticals.d.ts +2 -2
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -0
- package/dist/_dts/api/src/endpoints.d.ts +1253 -1209
- package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
- package/dist/_dts/api/src/eventManagementContracts.d.ts +83 -7
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +26 -0
- package/dist/_dts/api/src/eventSeriesPresentationPreset.d.ts +12 -0
- package/dist/_dts/api/src/index.d.ts +11 -3
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -0
- package/dist/_dts/api/src/oauth.d.ts +8 -0
- package/dist/_dts/api/src/preview-auth.d.ts +26 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +5 -5
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -1
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -0
- package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +48 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +5 -13
- package/dist/_dts/api/src/sdkEventCategoryContracts.d.ts +9 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +40 -8
- package/dist/_dts/api/src/settings/permissions.d.ts +2 -2
- package/dist/_dts/api/src/siteApiKeyEndpointDefinitions.d.ts +66 -0
- package/dist/_dts/api/src/siteInfrastructure.d.ts +3 -3
- package/dist/_dts/api/src/siteOperations.d.ts +1 -1
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +12 -4
- package/dist/_dts/api/src/types.d.ts +7 -59
- package/dist/_dts/block-form/src/client/index.d.ts +15 -23
- package/dist/_dts/block-form/src/index.d.ts +23 -22
- package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +18 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +61 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +24 -22
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +7 -30
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +0 -1
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +4 -63
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +1 -3
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +13 -1
- package/dist/_dts/blocks/src/system/fields/gridLayout.d.ts +20 -0
- package/dist/_dts/blocks/src/system/node/fragments/classNameBinding.d.ts +6 -1
- package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +24 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.validationErrors.d.ts +17 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +42 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +17 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/spacing.d.ts +1 -1
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/boxStyleClassNames.d.ts +90 -0
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +4 -0
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +26 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +4 -37
- package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +6 -6
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +6 -6
- package/dist/_dts/core/src/branded.d.ts +4 -0
- package/dist/_dts/core/src/event-page-surface-subject.d.ts +25 -4
- package/dist/_dts/core/src/index.d.ts +3 -0
- package/dist/_dts/core/src/public-event-booking-availability.d.ts +8 -0
- package/dist/_dts/core/src/secret.d.ts +44 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +341 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/widgets/button/ButtonField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/button/ButtonVariantField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/button/index.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/content-type-select/ContentTypeSelectField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/index.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/inline-text/InlineTextField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/widgets/offerings-preview/OfferingsPreviewGroupOrderField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewSiteFontStorageContext.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/preview/siteFontPreview.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/sdk/contentStorage.d.ts +10 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -1
- package/dist/_dts/preview-next/src/index.d.ts +1 -0
- package/dist/_dts/preview-next/src/keepAlive.d.ts +3 -5
- package/dist/_dts/preview-next/src/refresh-contract.d.ts +1 -0
- package/dist/_dts/preview-next/src/route-contract.d.ts +7 -0
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +61 -39
- package/dist/_dts/sdk/src/preview-next/keep-alive.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +9 -1
- package/dist/_dts/sdk/src/theme-bridge/types.d.ts +4 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/core.d.ts +54 -10
- package/dist/_dts/theme-core/src/cards/decorations.d.ts +33 -0
- package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +7 -2
- package/dist/_dts/theme-core/src/cards/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/cards/openCardVariant.d.ts +24 -0
- package/dist/_dts/theme-core/src/cards/roles.d.ts +38 -0
- package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +53 -8
- package/dist/_dts/theme-core/src/cards/types.d.ts +489 -21
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +59 -0
- package/dist/_dts/theme-core/src/header/paintTargets.d.ts +2 -2
- package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +3 -2
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +12 -135
- package/dist/_dts/theme-core/src/palette/utils/contrast.d.ts +1 -0
- package/dist/_dts/theme-core/src/palette/utils/opaqueSurfaceColor.d.ts +6 -0
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +301 -94
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +84 -102
- package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +9 -4
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +0 -20
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +84 -102
- package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +48 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +21 -385
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +10 -18
- package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +2 -4
- package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +2 -9
- package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +0 -2
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignAppearanceAvailability.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +22 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +9 -8
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntentEquality.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +19 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +1 -62
- package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +13 -12
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +50 -39
- package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +9 -9
- package/dist/_dts/theme-core/src/status/generateStatusCss.d.ts +1 -0
- package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +39 -0
- package/dist/_dts/ui/src/navigation-tabs.d.ts +3 -2
- package/dist/client/{CourseRegistrationWizard-Bvtz9G9g.mjs → CourseRegistrationWizard-DGW9F0SQ.mjs} +7 -7
- package/dist/client/{DiscountCodeDisclosure-Ur-Xx1U_.mjs → DiscountCodeDisclosure-BPZ-yfGI.mjs} +1 -1
- package/dist/client/{EventCombined.client-EhscD4U6.mjs → EventCombined.client-Cjt3kKYR.mjs} +4 -4
- package/dist/client/{EventListing.client-Bn26cFTY.mjs → EventListing.client-DY9dn6Fh.mjs} +2 -2
- package/dist/client/{FeedbackMessage-ByMrs3cr.mjs → FeedbackMessage-CtLvvS_d.mjs} +15 -3
- package/dist/client/{LeafletStaticMap-BUw9Ntzr.mjs → LeafletStaticMap--2c61XYn.mjs} +1 -1
- package/dist/client/{StepIndicator-BfbdiVQI.mjs → StepIndicator-CLjQhkDb.mjs} +3 -3
- package/dist/client/{accordion-CjIeof73.mjs → accordion-_boYwHHi.mjs} +1 -1
- package/dist/client/{bookingForm-DwEeovf_.mjs → bookingForm--AqEfyBX.mjs} +56 -39
- package/dist/client/bookings.mjs +393 -192
- package/dist/client/{carousel-BMrfgOba.mjs → carousel-CVI2dqZr.mjs} +2 -2
- package/dist/client/{carousel.client-CpwTUhIo.mjs → carousel.client-59G_WMr4.mjs} +1 -1
- package/dist/client/{cart-rXEdxTdb.mjs → cart-DR6IiPz9.mjs} +3 -3
- package/dist/client/{checkout-D3JlSzh3.mjs → checkout-CsrGAfQt.mjs} +3 -3
- package/dist/client/client.mjs +4524 -3512
- package/dist/client/{colorStyles-BWpj_h4C.mjs → colorStyles-CrxJrPjJ.mjs} +277 -1
- package/dist/client/{context-CJz1Vlsz.mjs → context-B83PiNzm.mjs} +6 -21
- package/dist/client/{courseRegistration-DO5XvMAA.mjs → courseRegistration-aNJVaLa3.mjs} +3 -3
- package/dist/client/{eventCalendar-DO6rTqCn.mjs → eventCalendar-OZ7h59VN.mjs} +6 -6
- package/dist/client/{eventCombined-bJ3i_ovU.mjs → eventCombined-BbJ6bFKz.mjs} +3 -3
- package/dist/client/{eventDetails-CCbrXE7o.mjs → eventDetails-BLyUBiCT.mjs} +3 -3
- package/dist/client/{eventListing-Bdlt9YTm.mjs → eventListing-DuP1yhBS.mjs} +3 -3
- package/dist/client/{eventRegistration-B02lt6iY.mjs → eventRegistration-BXyECPa-.mjs} +11 -12
- package/dist/client/{form-DrUBAAox.mjs → form-BA4t3kKU.mjs} +4 -4
- package/dist/client/{headerSection-MzqvHL6T.mjs → headerSection-CpNaJxhW.mjs} +2 -2
- package/dist/client/hooks.mjs +1967 -2059
- package/dist/client/{locationMap-DG8BxTBm.mjs → locationMap-3HGMCL7_.mjs} +3 -3
- package/dist/client/{media-CNE1Z-wb.mjs → media-BOHuueS5.mjs} +16 -4
- package/dist/client/{newsletterForm-BzO-Td3p.mjs → newsletterForm-C2s6Mw67.mjs} +4 -4
- package/dist/client/{pricing-NgK7ozkg.mjs → pricing-BiqIMgZk.mjs} +1 -1
- package/dist/client/{productDetail-CfQ7rhVK.mjs → productDetail-C9joWhdE.mjs} +3 -3
- package/dist/client/{productList-C23rOLUi.mjs → productList-CjzdU3pB.mjs} +3 -3
- package/dist/client/{propsDecoder-CAZdhwjs.mjs → propsDecoder-CBPGXEYX.mjs} +395 -402
- package/dist/client/rendering/client.mjs +2004 -2856
- package/dist/client/rendering/islands.mjs +20 -20
- package/dist/client/rendering.mjs +4605 -3496
- package/dist/client/{scrollToBlock-DSSqVQr1.mjs → scrollToBlock-DZ73aEX6.mjs} +1 -1
- package/dist/client/{shop-BMToKLK7.mjs → shop-CQRai7hj.mjs} +7 -7
- package/dist/client/{shop-commerce-DB4JRKmp.mjs → shop-commerce-hP9UboOx.mjs} +8 -8
- package/dist/client/{shop-commerce-store-BOqSIOuc.mjs → shop-commerce-store-DiD5a32e.mjs} +1 -1
- package/dist/client/{shopShared-B6SK9DZv.mjs → shopShared-DP8DXTkF.mjs} +5 -5
- package/dist/client/{useEventFilters-CULOa4nB.mjs → useEventFilters-pF_OJNQP.mjs} +137 -81
- package/dist/client/{usePolling-BGG_8-jl.mjs → usePolling-Cls91SD2.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +192 -108
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +7406 -29
- package/dist/preview-next/middleware.mjs +186 -107
- package/dist/{previewAuthStore-_GXFRg2W.mjs → previewAuthStore-CX1C_KJ4.mjs} +185 -107
- package/dist/{sdk-runtime-hhSOMShR.mjs → sdk-runtime-5CcPAI14.mjs} +2 -2
- package/dist/{separator-flRaFc14.mjs → separator-BXlYN_gr.mjs} +1 -1
- package/dist/server/components.mjs +6363 -4998
- package/dist/server/config-validation.mjs +1967 -2059
- package/dist/server/config.mjs +1967 -2059
- package/dist/server/data.mjs +1967 -2059
- package/dist/server/index.mjs +186 -108
- package/dist/server/next.mjs +6553 -5285
- package/dist/server/page-converter.mjs +1031 -1844
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3352 -3006
- package/dist/server/rendering.mjs +6289 -4924
- package/dist/server/routing.mjs +1906 -1036
- package/dist/server/server.mjs +1976 -2165
- package/dist/server/theme-bridge.mjs +949 -670
- package/dist/server/theme.mjs +252 -51
- package/dist/styles/index.css +295 -334
- package/package.json +3 -2
- package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +0 -1
- package/dist/_dts/block-form/src/widgets/index.d.ts +0 -20
- package/dist/_dts/blocks/src/system/runtime/api/requestBody.d.ts +0 -7
- package/dist/client/clsx-DgIEfj3H.mjs +0 -16
|
@@ -2,6 +2,7 @@ import type { AppointmentResourceId, AppointmentServiceId, Brand, CustomerPassId
|
|
|
2
2
|
import type { BlockApiConfig, EligibleAppointmentPackage } from "../api/types";
|
|
3
3
|
import type { TimeSlot } from "../api/types";
|
|
4
4
|
import type { BookingFormConfig, BookingFormData, BookingFormField, BookingPaymentStepResolution, BookingFormServicesSource, BookingFormService, BookingSelectedCollectionOptionKind, BookingSubmissionData } from "./booking-form.state";
|
|
5
|
+
import type { BookingValidationErrors } from "./booking-form.validationErrors";
|
|
5
6
|
export type LoadState<T> = Readonly<{
|
|
6
7
|
tag: "idle";
|
|
7
8
|
}> | Readonly<{
|
|
@@ -25,10 +26,6 @@ export type BookingFlowStep = Readonly<{
|
|
|
25
26
|
canEnter: boolean;
|
|
26
27
|
canLeave: boolean;
|
|
27
28
|
}>;
|
|
28
|
-
export type BookingValidationErrors = Readonly<{
|
|
29
|
-
formError: string | null;
|
|
30
|
-
fieldErrors: Readonly<Record<string, string>>;
|
|
31
|
-
}>;
|
|
32
29
|
export type BookingFieldId = Brand<string, "BookingFieldId">;
|
|
33
30
|
export declare const unsafeAsBookingFieldId: (id: string) => BookingFieldId;
|
|
34
31
|
export type BookingFieldValue = string | number | boolean | readonly string[] | null;
|
|
@@ -173,6 +170,13 @@ export type BookingFlowReducerState = Readonly<{
|
|
|
173
170
|
selectedSlot: BookingSlotView | null;
|
|
174
171
|
fieldValues: Readonly<Record<string, BookingFieldValue>>;
|
|
175
172
|
touchedFields: Readonly<Record<string, boolean>>;
|
|
173
|
+
/**
|
|
174
|
+
* Steps the user has tried to advance past. Step validation is derived
|
|
175
|
+
* continuously (it gates `canLeave`), but a step's errors are only ever
|
|
176
|
+
* *shown* once the step has been attempted — so a freshly mounted form is
|
|
177
|
+
* never scolded for input it has not had the chance to give yet.
|
|
178
|
+
*/
|
|
179
|
+
attemptedStepIds: BookingAttemptedStepIds;
|
|
176
180
|
discountCode: string;
|
|
177
181
|
selectedSlidingAmountInput: string;
|
|
178
182
|
selectedCollectionOptionKind?: BookingSelectedCollectionOptionKind;
|
|
@@ -200,6 +204,9 @@ export type BookingFlowEvent = Readonly<{
|
|
|
200
204
|
}> | Readonly<{
|
|
201
205
|
type: "field-touched";
|
|
202
206
|
fieldId: BookingFieldId;
|
|
207
|
+
}> | Readonly<{
|
|
208
|
+
type: "step-advance-attempted";
|
|
209
|
+
stepId: BookingFlowStepId;
|
|
203
210
|
}> | Readonly<{
|
|
204
211
|
type: "payment-option-selected";
|
|
205
212
|
kind: BookingSelectedCollectionOptionKind | null;
|
|
@@ -256,6 +263,13 @@ export type BookingStepPlanItem = Readonly<{
|
|
|
256
263
|
label: string;
|
|
257
264
|
visible: boolean;
|
|
258
265
|
}>;
|
|
266
|
+
/**
|
|
267
|
+
* Steps the user has actually tried to advance past. Step validation is derived
|
|
268
|
+
* continuously (it gates whether a step can be left), but a step's errors are
|
|
269
|
+
* only ever *shown* once the step has been attempted — so a freshly mounted
|
|
270
|
+
* form is never scolded for input it has not had the chance to give yet.
|
|
271
|
+
*/
|
|
272
|
+
export type BookingAttemptedStepIds = Readonly<Partial<Record<BookingFlowStepId, boolean>>>;
|
|
259
273
|
export type BookingStepValidationResult = Readonly<{
|
|
260
274
|
ok: true;
|
|
261
275
|
}> | Readonly<{
|
|
@@ -272,6 +286,12 @@ export type DeriveBookingFlowStepsInput = Readonly<{
|
|
|
272
286
|
requiresServiceSelection?: boolean;
|
|
273
287
|
requiresResourceSelection?: boolean;
|
|
274
288
|
enableAppointmentPackages?: boolean;
|
|
289
|
+
/**
|
|
290
|
+
* Steps whose validation messaging has been earned by an advance attempt.
|
|
291
|
+
* Omitted means "none attempted yet", so callers that only need gating can
|
|
292
|
+
* keep ignoring it.
|
|
293
|
+
*/
|
|
294
|
+
attemptedStepIds?: BookingAttemptedStepIds;
|
|
275
295
|
}>;
|
|
276
296
|
export type DerivedBookingFlowSteps = Readonly<{
|
|
277
297
|
steps: readonly BookingFlowStep[];
|
|
@@ -416,10 +436,6 @@ export type AppointmentBookingOverrideInputResult = Readonly<{
|
|
|
416
436
|
reason: "missing-site-id" | "missing-api-base-url" | "missing-form" | "missing-form-id" | "missing-services";
|
|
417
437
|
message: string;
|
|
418
438
|
}>;
|
|
419
|
-
export declare function createEmptyBookingValidationErrors(): BookingValidationErrors;
|
|
420
|
-
export declare function createFormBookingValidationError(formError: string): BookingValidationErrors;
|
|
421
|
-
export declare function createFieldBookingValidationErrors(fieldErrors: Readonly<Record<string, string>>): BookingValidationErrors;
|
|
422
|
-
export declare function hasBookingValidationErrors(errors: BookingValidationErrors): boolean;
|
|
423
439
|
export declare function createInitialBookingFlowReducerState(input: Readonly<{
|
|
424
440
|
defaultServiceId?: string;
|
|
425
441
|
defaultResourceId?: string;
|
|
@@ -8,6 +8,14 @@ type BookingFormProps = BookingFormSourceProps & Readonly<{
|
|
|
8
8
|
* Server-safe placeholder for booking form.
|
|
9
9
|
* Renders a stable shell plus the typed island envelope so hydration can attach
|
|
10
10
|
* without pulling client hooks into the server graph.
|
|
11
|
+
*
|
|
12
|
+
* The island root carries mount identity only. The loading affordances — the
|
|
13
|
+
* `.rb-reg-surface` card, its `aria-busy` / `role="status"` announcement and the
|
|
14
|
+
* skeleton — live on a *child*, which the island mounter replaces wholesale when
|
|
15
|
+
* React takes over (it swaps the root's children, not the root). That keeps the
|
|
16
|
+
* card drawn exactly once after hydration, because the client wizard renders its
|
|
17
|
+
* own `.rb-reg-surface`, and leaves no stale loading state on the mounted form.
|
|
18
|
+
* `event-registration.server.tsx` follows the same shape.
|
|
11
19
|
*/
|
|
12
20
|
export declare function BookingFormSSR({ blockId, siteId, apiBaseUrl, portalToken, formId, serviceId, resourceId, initialData, noticeMessage, requiresServiceSelection, requiresResourceSelection, shouldAutoSelectSingleResource, rebookContext, submitLabel, successMessage, form, services, spamProtectionEnabled, className, children, }: BookingFormProps): React.JSX.Element;
|
|
13
21
|
export default BookingFormSSR;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The booking flow's validation vocabulary: what a step can complain about, and
|
|
3
|
+
* when the user has earned the right to be told.
|
|
4
|
+
*
|
|
5
|
+
* Split out of `booking-form.headless.state.ts` so the reducer file carries
|
|
6
|
+
* behaviour rather than this small closed value type and its constructors.
|
|
7
|
+
*/
|
|
8
|
+
export type BookingValidationErrors = Readonly<{
|
|
9
|
+
formError: string | null;
|
|
10
|
+
fieldErrors: Readonly<Record<string, string>>;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function createEmptyBookingValidationErrors(): BookingValidationErrors;
|
|
13
|
+
export declare function createFormBookingValidationError(formError: string): BookingValidationErrors;
|
|
14
|
+
export declare function createFieldBookingValidationErrors(fieldErrors: Readonly<Record<string, string>>): BookingValidationErrors;
|
|
15
|
+
export declare function hasBookingValidationErrors(errors: BookingValidationErrors): boolean;
|
|
16
|
+
export declare function clearBookingFormError(errors: BookingValidationErrors): BookingValidationErrors;
|
|
17
|
+
export declare function clearBookingFieldError(errors: BookingValidationErrors, fieldId: string): BookingValidationErrors;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PaymentSelection, PublicEvent, RegistrationStep } from './types';
|
|
2
2
|
import type { UseEventRegistrationWizardResult } from './useEventRegistrationWizard';
|
|
3
3
|
import { type EventRegistrationFlowStatus, type EventRegistrationFlowStep, type EventRegistrationFlowView, type EventRegistrationPaymentSelection, type EventRegistrationSubmitPlan } from './event-registration.headless.contract';
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function isEventRegistrationAvailable(event: Pick<PublicEvent, 'bookingAvailability'>): boolean;
|
|
5
5
|
export declare function normalizeEventRegistrationMaxTickets(value: string | number | undefined): number;
|
|
6
6
|
export declare function toHeadlessPaymentSelection(selection: PaymentSelection): EventRegistrationPaymentSelection;
|
|
7
7
|
export declare function toInternalPaymentSelection(selection: EventRegistrationPaymentSelection): PaymentSelection;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type EventPageSurfaceSubject, type EventPageSurfaceSubjectParseError, type EventOfferingId, type EventSeriesId, type Result } from '../../../../../../core/src/index';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
export declare const unsupportedEventRegistrationPageSurfaceSubjectReasons: readonly ["unsupportedSubject", "invalidEventSeriesId", "invalidEventOfferingId"];
|
|
3
|
+
export declare const unsupportedEventRegistrationPageSurfaceSubjectReasons: readonly ["unsupportedSubject", "invalidEventSeriesId", "invalidEventSeriesBookingScope", "invalidEventOfferingId"];
|
|
4
4
|
export type UnsupportedEventRegistrationPageSurfaceSubjectReason = (typeof unsupportedEventRegistrationPageSurfaceSubjectReasons)[number];
|
|
5
5
|
export type EventRegistrationPageSurfaceSubject = EventPageSurfaceSubject | Readonly<{
|
|
6
6
|
kind: 'unsupported';
|
|
@@ -9,5 +9,5 @@ type EventRegistrationProps = Omit<EventRegistrationSourceProps, 'subject'> & Re
|
|
|
9
9
|
* Server-safe placeholder for event registration.
|
|
10
10
|
* Provides a static container for island hydration without importing client hooks.
|
|
11
11
|
*/
|
|
12
|
-
export declare function EventRegistrationSSR({ blockId,
|
|
12
|
+
export declare function EventRegistrationSSR({ blockId, subject, children, ...sourceProps }: EventRegistrationProps): React.JSX.Element;
|
|
13
13
|
export default EventRegistrationSSR;
|
package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts
CHANGED
|
@@ -138,6 +138,7 @@ export declare const eventCollectionSourceSchemaShape: {
|
|
|
138
138
|
eventPreset: z.ZodOptional<z.ZodEnum<{
|
|
139
139
|
course: "course";
|
|
140
140
|
event: "event";
|
|
141
|
+
term: "term";
|
|
141
142
|
performance: "performance";
|
|
142
143
|
class: "class";
|
|
143
144
|
workshop: "workshop";
|
|
@@ -452,6 +453,24 @@ export declare const eventCollectionSourceSchemaShape: {
|
|
|
452
453
|
label: z.ZodString;
|
|
453
454
|
}, z.core.$strip>], "kind">;
|
|
454
455
|
requiresRegistration: z.ZodBoolean;
|
|
456
|
+
bookingAvailability: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
457
|
+
kind: z.ZodLiteral<"open">;
|
|
458
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
459
|
+
kind: z.ZodLiteral<"closed">;
|
|
460
|
+
reason: z.ZodEnum<{
|
|
461
|
+
occurrence_cancelled: "occurrence_cancelled";
|
|
462
|
+
occurrence_completed: "occurrence_completed";
|
|
463
|
+
series_draft: "series_draft";
|
|
464
|
+
series_cancelled: "series_cancelled";
|
|
465
|
+
series_completed: "series_completed";
|
|
466
|
+
series_archived: "series_archived";
|
|
467
|
+
parent_archived: "parent_archived";
|
|
468
|
+
parent_inconsistent: "parent_inconsistent";
|
|
469
|
+
not_public: "not_public";
|
|
470
|
+
already_started: "already_started";
|
|
471
|
+
enrollment_closed: "enrollment_closed";
|
|
472
|
+
}>;
|
|
473
|
+
}, z.core.$strip>], "kind">;
|
|
455
474
|
deliveryMode: z.ZodEnum<{
|
|
456
475
|
in_person: "in_person";
|
|
457
476
|
hybrid: "hybrid";
|
|
@@ -498,6 +517,8 @@ export declare const eventCollectionSourceSchemaShape: {
|
|
|
498
517
|
active: "active";
|
|
499
518
|
draft: "draft";
|
|
500
519
|
archived: "archived";
|
|
520
|
+
completed: "completed";
|
|
521
|
+
cancelled: "cancelled";
|
|
501
522
|
}>>;
|
|
502
523
|
timeZone: z.ZodString;
|
|
503
524
|
pricing: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -845,6 +866,7 @@ export declare const eventCollectionDisplaySchemaShape: {
|
|
|
845
866
|
eventPreset: z.ZodOptional<z.ZodEnum<{
|
|
846
867
|
course: "course";
|
|
847
868
|
event: "event";
|
|
869
|
+
term: "term";
|
|
848
870
|
performance: "performance";
|
|
849
871
|
class: "class";
|
|
850
872
|
workshop: "workshop";
|
|
@@ -1159,6 +1181,24 @@ export declare const eventCollectionDisplaySchemaShape: {
|
|
|
1159
1181
|
label: z.ZodString;
|
|
1160
1182
|
}, z.core.$strip>], "kind">;
|
|
1161
1183
|
requiresRegistration: z.ZodBoolean;
|
|
1184
|
+
bookingAvailability: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
1185
|
+
kind: z.ZodLiteral<"open">;
|
|
1186
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1187
|
+
kind: z.ZodLiteral<"closed">;
|
|
1188
|
+
reason: z.ZodEnum<{
|
|
1189
|
+
occurrence_cancelled: "occurrence_cancelled";
|
|
1190
|
+
occurrence_completed: "occurrence_completed";
|
|
1191
|
+
series_draft: "series_draft";
|
|
1192
|
+
series_cancelled: "series_cancelled";
|
|
1193
|
+
series_completed: "series_completed";
|
|
1194
|
+
series_archived: "series_archived";
|
|
1195
|
+
parent_archived: "parent_archived";
|
|
1196
|
+
parent_inconsistent: "parent_inconsistent";
|
|
1197
|
+
not_public: "not_public";
|
|
1198
|
+
already_started: "already_started";
|
|
1199
|
+
enrollment_closed: "enrollment_closed";
|
|
1200
|
+
}>;
|
|
1201
|
+
}, z.core.$strip>], "kind">;
|
|
1162
1202
|
deliveryMode: z.ZodEnum<{
|
|
1163
1203
|
in_person: "in_person";
|
|
1164
1204
|
hybrid: "hybrid";
|
|
@@ -1205,6 +1245,8 @@ export declare const eventCollectionDisplaySchemaShape: {
|
|
|
1205
1245
|
active: "active";
|
|
1206
1246
|
draft: "draft";
|
|
1207
1247
|
archived: "archived";
|
|
1248
|
+
completed: "completed";
|
|
1249
|
+
cancelled: "cancelled";
|
|
1208
1250
|
}>>;
|
|
1209
1251
|
timeZone: z.ZodString;
|
|
1210
1252
|
pricing: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -6,7 +6,10 @@ import type { CardOrientation, EventLayout, PublicEvent } from '../../../../bloc
|
|
|
6
6
|
/** Day names starting from Sunday — kept for back-compat re-export. */
|
|
7
7
|
export { DAY_NAMES, MONTH_NAMES } from '../../../../../../../calendar/src/index';
|
|
8
8
|
export type { WeekStart } from '../../../../../../../calendar/src/index';
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Column class mappings for grid layouts, derived from the canonical
|
|
11
|
+
* responsive column ladder (see gridUserColumnLadder).
|
|
12
|
+
*/
|
|
10
13
|
export declare const COLUMN_CLASSES: Record<string, string>;
|
|
11
14
|
/**
|
|
12
15
|
* Build container class based on layout mode
|
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
export type FeedbackTone = 'info' | 'success' | 'warning' | 'error';
|
|
3
3
|
export type FeedbackLiveMode = 'off' | 'polite' | 'assertive';
|
|
4
|
+
/**
|
|
5
|
+
* How loudly a feedback message presents itself. Orthogonal to tone: tone says
|
|
6
|
+
* what kind of message it is, treatment says how much room it takes up.
|
|
7
|
+
*
|
|
8
|
+
* - `panel` — the alert box. The default, and what every existing call site
|
|
9
|
+
* gets. Suits a genuine failure: a declined payment, a lost submission.
|
|
10
|
+
* - `field-note` — a quiet margin note attached to the control or group it
|
|
11
|
+
* describes. Suits inline validation, where the user has simply not finished
|
|
12
|
+
* something yet.
|
|
13
|
+
*
|
|
14
|
+
* Site styles own each treatment's appearance; the CSS is generated in
|
|
15
|
+
* theme-core (`status/generateStatusCss.ts`) from theme tokens, so a block
|
|
16
|
+
* only ever names the treatment.
|
|
17
|
+
*/
|
|
18
|
+
export type FeedbackTreatment = 'panel' | 'field-note';
|
|
4
19
|
export type FeedbackMessageProps = Readonly<{
|
|
5
20
|
tone: FeedbackTone;
|
|
21
|
+
treatment?: FeedbackTreatment;
|
|
6
22
|
children: ReactNode;
|
|
7
23
|
className?: string;
|
|
8
24
|
id?: string;
|
|
@@ -12,4 +28,4 @@ export type FeedbackMessageProps = Readonly<{
|
|
|
12
28
|
role?: 'alert' | 'status';
|
|
13
29
|
live?: FeedbackLiveMode;
|
|
14
30
|
}>;
|
|
15
|
-
export declare function FeedbackMessage({ tone, children, className, id, title, titleClassName, bodyClassName, role, live, }: FeedbackMessageProps): import("react").JSX.Element;
|
|
31
|
+
export declare function FeedbackMessage({ tone, treatment, children, className, id, title, titleClassName, bodyClassName, role, live, }: FeedbackMessageProps): import("react").JSX.Element;
|
|
@@ -15,7 +15,7 @@ export type { BookingOptionGroupViewModel, BookingOptionListProps, } from './Boo
|
|
|
15
15
|
export { FieldValidationMessage, getFieldValidationControlProps, } from './FieldValidationMessage';
|
|
16
16
|
export type { FieldValidationControlInput, FieldValidationControlProps, FieldValidationMessageProps, } from './FieldValidationMessage';
|
|
17
17
|
export { FeedbackMessage } from './FeedbackMessage';
|
|
18
|
-
export type { FeedbackLiveMode, FeedbackMessageProps, FeedbackTone } from './FeedbackMessage';
|
|
18
|
+
export type { FeedbackLiveMode, FeedbackMessageProps, FeedbackTone, FeedbackTreatment, } from './FeedbackMessage';
|
|
19
19
|
export { LoggedInAsUser } from './LoggedInAsUser';
|
|
20
20
|
export { StateIcon } from './StateIcon';
|
|
21
21
|
export type { LoggedInAsUserProps } from './LoggedInAsUser';
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* 2. TypeScript will error until you update both spacing maps
|
|
22
22
|
* 3. No way to get out of sync
|
|
23
23
|
*/
|
|
24
|
-
declare const SEMANTIC_SPACING_VALUES: readonly ["none", "compact", "cozy", "medium", "comfortable", "spacious"];
|
|
24
|
+
export declare const SEMANTIC_SPACING_VALUES: readonly ["none", "compact", "cozy", "medium", "comfortable", "spacious"];
|
|
25
25
|
/**
|
|
26
26
|
* Semantic spacing values used across the block system.
|
|
27
27
|
* These abstract away the specific CSS classes and provide a consistent vocabulary.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type CardRole } from '../../../../../../theme-core/src/cards/index';
|
|
2
|
+
/**
|
|
3
|
+
* @file The one place box-style content becomes CSS classes.
|
|
4
|
+
*
|
|
5
|
+
* `boxStyles.all` runs this for the binding pipeline, and the React nodes that
|
|
6
|
+
* render a card outside that pipeline (offerings-preview) call it directly, so
|
|
7
|
+
* there is a single card-class emission path rather than copies that drift.
|
|
8
|
+
*/
|
|
9
|
+
/** The elevation class an elevated box gets when the theme defines a shadow. */
|
|
10
|
+
export declare const RAISED_SHADOW_CLASS = "rb-shadow-md";
|
|
11
|
+
/** Radius values to their `rb-*` classes (defined in `rb-utilities.css`). */
|
|
12
|
+
export declare const ROUNDED_CLASSES: Readonly<Record<string, string>>;
|
|
13
|
+
export declare const fixedFrameScopeClass = "rb-bg-motion-fixed-frame-scope";
|
|
14
|
+
export declare function hasFixedFrameBackgroundMotion(value: unknown): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The role a card renders with, and the one place a set of card styles becomes
|
|
17
|
+
* a role.
|
|
18
|
+
*
|
|
19
|
+
* Precedence: a per-item override, then the `role` a Look compiled onto the
|
|
20
|
+
* block's card styles, then the legacy `cardVariant` field. `cardVariant` only
|
|
21
|
+
* ever held role names, so it reads *as* a role rather than as a second
|
|
22
|
+
* vocabulary — an explicit `role` wins when a record carries both.
|
|
23
|
+
*
|
|
24
|
+
* Compiled and freshly authored card styles carry only `role`. `cardVariant`
|
|
25
|
+
* survives on content persisted before the role contract, and normalizes here
|
|
26
|
+
* rather than in `cardStylesOverrideSchema` because that content reaches the
|
|
27
|
+
* renderer as a raw record without ever passing through the schema.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveCardRoleForBoxStyles(input: Record<string, unknown>, override: CardRole | null | undefined): CardRole | null;
|
|
30
|
+
/**
|
|
31
|
+
* Parse a block's own per-item surface vocabulary into a card role. The alias
|
|
32
|
+
* map is declared by the block (its persisted values are its own history), and
|
|
33
|
+
* `normalizeCardRole` remains the one untrusted-input boundary after that.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveItemCardRole(value: unknown, aliases: Readonly<Record<string, string>> | undefined): CardRole | null;
|
|
36
|
+
/** The border widths `CardStylesContent['border']` can carry. */
|
|
37
|
+
export type BoxBorderWidth = 'none' | '1' | '2' | '3';
|
|
38
|
+
/**
|
|
39
|
+
* A box border after the one legacy shape has been normalized away, parsed
|
|
40
|
+
* into the vocabulary the field actually declares. The record arrives here as
|
|
41
|
+
* raw persisted JSON, so parsing is this function's job and no reader
|
|
42
|
+
* downstream repeats it.
|
|
43
|
+
*/
|
|
44
|
+
export type NormalizedBoxBorder = Readonly<{
|
|
45
|
+
/** `null` means the box expresses no opinion and inherits its border. */
|
|
46
|
+
enabled: boolean | null;
|
|
47
|
+
width: BoxBorderWidth | undefined;
|
|
48
|
+
colorToken: string | undefined;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* A box's border record with `{ width: 'none' }`-without-`enabled` resolved.
|
|
52
|
+
*
|
|
53
|
+
* That shape used to mean two different things to two different readers: the
|
|
54
|
+
* old private offerings emitter read it as border-off, while the shared
|
|
55
|
+
* emitter read it as "no opinion" and left the caller's base `rb-border` in
|
|
56
|
+
* place. Same persisted bytes, opposite answers. A width of `none` says there
|
|
57
|
+
* is no border, so it is read as `enabled: false` here — once, at the one
|
|
58
|
+
* place box-style content is interpreted — and every reader downstream now
|
|
59
|
+
* agrees.
|
|
60
|
+
*
|
|
61
|
+
* Nothing persisted carries the shape (the #1297 usage audit found zero rows;
|
|
62
|
+
* the authoring UI cannot produce it, since the width control is gated on
|
|
63
|
+
* `enabled === true`), so this is boundary hygiene rather than a migration.
|
|
64
|
+
*/
|
|
65
|
+
export declare function normalizeBoxStylesBorder(value: unknown): NormalizedBoxBorder | null;
|
|
66
|
+
/**
|
|
67
|
+
* The class list for a set of box styles: the caller's base class, the border /
|
|
68
|
+
* spacing / elevation / radius overrides the box carries, and its card surface.
|
|
69
|
+
*
|
|
70
|
+
* Pure, so the React nodes that render a card outside the binding pipeline
|
|
71
|
+
* (offerings-preview) share this one emission path with `boxStyles.all` instead
|
|
72
|
+
* of keeping a copy that drifts.
|
|
73
|
+
*/
|
|
74
|
+
export declare function boxStyleClassNames(value: unknown, options: Readonly<{
|
|
75
|
+
axis?: "y" | "all";
|
|
76
|
+
baseClass?: string;
|
|
77
|
+
includeSpacing?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* A card role that wins over the one compiled into the box styles — the
|
|
80
|
+
* per-item override in blocks that let individual cards pick their surface.
|
|
81
|
+
*/
|
|
82
|
+
cardRoleOverride?: CardRole | null;
|
|
83
|
+
/**
|
|
84
|
+
* The elevation class an elevated box gets. Defaults to the standard raised
|
|
85
|
+
* shadow; pass `null` to opt out explicitly (the binding pipeline does that
|
|
86
|
+
* for a theme whose medium shadow is `none`). Omitting it must never
|
|
87
|
+
* silently flatten a raised card, hence the default.
|
|
88
|
+
*/
|
|
89
|
+
raisedClass?: string | null;
|
|
90
|
+
}>): string;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { resolveSurfaceForeground, type ResolvedSurfaceForeground } from '../../../../../../theme-core/src/surfaces/index';
|
|
2
|
+
import type { ThemeHeader } from '../../../../../../theme-core/src/schema';
|
|
1
3
|
import type { TransformContext } from '../core';
|
|
4
|
+
export declare function resolveHeaderLeafTextColor(header: Partial<ThemeHeader> | undefined): NonNullable<ThemeHeader['textColor']>;
|
|
5
|
+
export declare function resolveHeaderRootForeground(header: Partial<ThemeHeader> | undefined, palette: Parameters<typeof resolveSurfaceForeground>[1], isTransparent: boolean): ResolvedSurfaceForeground;
|
|
2
6
|
export declare function resolveSurfaceForegroundStyles(value: unknown, context: TransformContext, options?: Readonly<{
|
|
3
7
|
fallbackToken?: string;
|
|
4
8
|
}>): Record<string, string>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type TransformDefinition } from "./core";
|
|
2
2
|
import type { SemanticSpacing } from "../../spacing";
|
|
3
|
+
import { type CardRole } from '../../../../../theme-core/src/cards/index';
|
|
3
4
|
/**
|
|
4
5
|
* Maps semantic spacing values to CSS-only `rb-*` spacing classes.
|
|
5
6
|
*
|
|
@@ -59,7 +60,32 @@ export declare const boxStylesCompositeTransform: TransformDefinition<{
|
|
|
59
60
|
axis?: "y" | "all";
|
|
60
61
|
baseClass?: string;
|
|
61
62
|
includeSpacing?: boolean;
|
|
63
|
+
cardRoleOverride?: CardRole | null;
|
|
62
64
|
}>;
|
|
65
|
+
type CardRoleClassOptions = {
|
|
66
|
+
baseClass?: string;
|
|
67
|
+
axis?: "y" | "all";
|
|
68
|
+
/** Where the block's compiled card styles live on the view model. */
|
|
69
|
+
stylesPath?: string;
|
|
70
|
+
/** The block's own per-item surface vocabulary, mapped onto card roles. */
|
|
71
|
+
itemRoleAliases?: Readonly<Record<string, string>>;
|
|
72
|
+
/**
|
|
73
|
+
* `surface` renders the card container (box styles plus the role class);
|
|
74
|
+
* `media` / `content` render the shared child hooks generated card CSS
|
|
75
|
+
* targets, and only while a role is actually in play.
|
|
76
|
+
*/
|
|
77
|
+
emit?: "surface" | "media" | "content";
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Card classes for a block whose items may each pick their own surface.
|
|
81
|
+
*
|
|
82
|
+
* Bound from the per-item role so it can see the repeated item, and reads the
|
|
83
|
+
* block's compiled card styles off the view model — the two live in different
|
|
84
|
+
* binding scopes. Precedence: the Look's block-level role is the base, an
|
|
85
|
+
* explicit per-item role overrides it, and the user's own card fields (border,
|
|
86
|
+
* background, radius) ride along on top as they always have.
|
|
87
|
+
*/
|
|
88
|
+
export declare const cardRoleClassTransform: TransformDefinition<CardRoleClassOptions>;
|
|
63
89
|
export declare const cardVariantClassTransform: TransformDefinition<{
|
|
64
90
|
baseClass?: string;
|
|
65
91
|
}>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import type
|
|
3
|
-
import type { ThemeTokens } from '../../theme';
|
|
2
|
+
import { type ThemeHeader } from '../../../../../theme-core/src/schema';
|
|
4
3
|
import { type TransformDefinition } from './core';
|
|
5
4
|
declare const headerLogoClassSchema: z.ZodObject<{
|
|
6
5
|
base: z.ZodOptional<z.ZodString>;
|
|
@@ -13,7 +12,7 @@ export declare const headerLogoTextVisibleTransform: TransformDefinition;
|
|
|
13
12
|
*
|
|
14
13
|
* - `'inline'` → classic variant with the historical logo-left / nav-right row
|
|
15
14
|
* - `'centered'`→ classic variant with a centred (flex-1) nav and a right CTA
|
|
16
|
-
* - `'other'` → not a classic variant (centered/floating
|
|
15
|
+
* - `'other'` → not a classic variant (centered/floating handle it)
|
|
17
16
|
*
|
|
18
17
|
* Consumed by the site-header block's `$when` gates so the two classic rows are
|
|
19
18
|
* mutually exclusive without introducing a new top-level header variant.
|
|
@@ -32,47 +31,15 @@ declare const headerRootClassSchema: z.ZodObject<{
|
|
|
32
31
|
invert: z.ZodOptional<z.ZodString>;
|
|
33
32
|
}, z.core.$strip>;
|
|
34
33
|
type HeaderRootOptions = z.infer<typeof headerRootClassSchema>;
|
|
35
|
-
export
|
|
36
|
-
export declare function resolveBackgroundVisualStyles(backgroundColor: string | undefined, tokens: ThemeTokens, defaultToken?: string): {
|
|
34
|
+
export declare function resolveBackgroundVisualStyles(backgroundColor: string | undefined, defaultToken?: string): {
|
|
37
35
|
backgroundToken: string;
|
|
38
|
-
paletteHex: string | null;
|
|
39
|
-
backgroundHex: string | null;
|
|
40
|
-
isBackgroundDark: boolean;
|
|
41
|
-
textColorToken: "text";
|
|
42
|
-
textColorOverride: string | null;
|
|
43
|
-
isTransparent: boolean;
|
|
44
|
-
} | {
|
|
45
|
-
backgroundToken: string;
|
|
46
|
-
paletteHex: string | undefined;
|
|
47
|
-
backgroundHex: string;
|
|
48
|
-
isBackgroundDark: boolean;
|
|
49
|
-
textColorToken: "text" | undefined;
|
|
50
|
-
textColorOverride: string | null;
|
|
51
36
|
isTransparent: boolean;
|
|
52
37
|
};
|
|
53
|
-
export declare function resolveHeaderVisualStyles(header: Partial<ThemeHeader> | undefined
|
|
54
|
-
backgroundToken: string;
|
|
55
|
-
paletteHex: string | null;
|
|
56
|
-
backgroundHex: string | null;
|
|
57
|
-
isBackgroundDark: boolean;
|
|
58
|
-
textColorToken: "text";
|
|
59
|
-
textColorOverride: string | null;
|
|
60
|
-
isTransparent: boolean;
|
|
61
|
-
} | {
|
|
38
|
+
export declare function resolveHeaderVisualStyles(header: Partial<ThemeHeader> | undefined): {
|
|
62
39
|
backgroundToken: string;
|
|
63
|
-
paletteHex: string | undefined;
|
|
64
|
-
backgroundHex: string;
|
|
65
|
-
isBackgroundDark: boolean;
|
|
66
|
-
textColorToken: "text" | undefined;
|
|
67
|
-
textColorOverride: string | null;
|
|
68
40
|
isTransparent: boolean;
|
|
69
41
|
} | {
|
|
70
42
|
readonly backgroundToken: "transparent";
|
|
71
|
-
readonly paletteHex: null;
|
|
72
|
-
readonly backgroundHex: null;
|
|
73
|
-
readonly isBackgroundDark: false;
|
|
74
|
-
readonly textColorToken: "text";
|
|
75
|
-
readonly textColorOverride: null;
|
|
76
43
|
readonly isTransparent: true;
|
|
77
44
|
};
|
|
78
45
|
export declare const headerRootClassTransform: TransformDefinition<HeaderRootOptions>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import type { BlockManifest } from '../../../blocks/src/index';
|
|
3
|
-
import { type FieldWidgetComponent } from '../../../block-form/src/
|
|
4
|
-
import type { ManifestFormSource } from '../../../block-form/src/
|
|
3
|
+
import { type FieldWidgetComponent } from '../../../block-form/src/index';
|
|
4
|
+
import type { ManifestFormSource } from '../../../block-form/src/index';
|
|
5
5
|
export type { AutosaveHandle } from '../hooks/useSimpleAutosave';
|
|
6
6
|
export type ContentFieldsFormProps<TValues extends Record<string, unknown>> = {
|
|
7
7
|
siteId: string;
|
|
@@ -57,19 +57,19 @@ export declare const EVENT_CONTENT_TYPE_SCHEMA: {
|
|
|
57
57
|
readonly fields: [{
|
|
58
58
|
readonly id: "summary";
|
|
59
59
|
readonly type: "textarea";
|
|
60
|
-
readonly label: "
|
|
61
|
-
readonly description: "
|
|
60
|
+
readonly label: "Short introduction";
|
|
61
|
+
readonly description: "Write one or two sentences that help people quickly understand what this is. It appears wherever the event is listed and near the top of its page.";
|
|
62
62
|
readonly rows: 3;
|
|
63
63
|
}, {
|
|
64
64
|
readonly id: "image";
|
|
65
65
|
readonly type: "media";
|
|
66
|
-
readonly label: "
|
|
67
|
-
readonly description: "
|
|
66
|
+
readonly label: "Event image";
|
|
67
|
+
readonly description: "Choose the main image people will see wherever the event is listed and on its page.";
|
|
68
68
|
}, {
|
|
69
69
|
readonly id: "body";
|
|
70
70
|
readonly type: "richText";
|
|
71
|
-
readonly label: "
|
|
72
|
-
readonly description: "
|
|
71
|
+
readonly label: "About this event";
|
|
72
|
+
readonly description: "Add the main information people need before booking—what to expect, who it’s for, what’s included, and anything they should bring or know.";
|
|
73
73
|
}];
|
|
74
74
|
readonly routing: {
|
|
75
75
|
readonly enabled: true;
|
|
@@ -162,19 +162,19 @@ export declare const BUILTIN_CONTENT_TYPE_SCHEMAS: {
|
|
|
162
162
|
readonly fields: [{
|
|
163
163
|
readonly id: "summary";
|
|
164
164
|
readonly type: "textarea";
|
|
165
|
-
readonly label: "
|
|
166
|
-
readonly description: "
|
|
165
|
+
readonly label: "Short introduction";
|
|
166
|
+
readonly description: "Write one or two sentences that help people quickly understand what this is. It appears wherever the event is listed and near the top of its page.";
|
|
167
167
|
readonly rows: 3;
|
|
168
168
|
}, {
|
|
169
169
|
readonly id: "image";
|
|
170
170
|
readonly type: "media";
|
|
171
|
-
readonly label: "
|
|
172
|
-
readonly description: "
|
|
171
|
+
readonly label: "Event image";
|
|
172
|
+
readonly description: "Choose the main image people will see wherever the event is listed and on its page.";
|
|
173
173
|
}, {
|
|
174
174
|
readonly id: "body";
|
|
175
175
|
readonly type: "richText";
|
|
176
|
-
readonly label: "
|
|
177
|
-
readonly description: "
|
|
176
|
+
readonly label: "About this event";
|
|
177
|
+
readonly description: "Add the main information people need before booking—what to expect, who it’s for, what’s included, and anything they should bring or know.";
|
|
178
178
|
}];
|
|
179
179
|
readonly routing: {
|
|
180
180
|
readonly enabled: true;
|
|
@@ -24,6 +24,8 @@ export type BrandedIdParseError = {
|
|
|
24
24
|
export declare function expectParsedBrandedId<TBrand>(result: Result<TBrand, BrandedIdParseError>): TBrand;
|
|
25
25
|
export type EventInstanceId = Brand<string, 'EventInstanceId'>;
|
|
26
26
|
export type SiteId = Brand<string, 'SiteId'>;
|
|
27
|
+
/** An API key identifier, independent of the credential family it represents. */
|
|
28
|
+
export type ApiKeyId = Brand<string, 'ApiKeyId'>;
|
|
27
29
|
export type SiteRouteId = Brand<string, 'SiteRouteId'>;
|
|
28
30
|
export type PageId = Brand<string, 'PageId'>;
|
|
29
31
|
export type PageSurfaceId = Brand<string, 'PageSurfaceId'>;
|
|
@@ -159,6 +161,7 @@ export declare const unsafeAsEntryId: (id: string) => EntryId;
|
|
|
159
161
|
export declare const unsafeAsPreviewEntryId: (id: string) => PreviewEntryId;
|
|
160
162
|
export declare const unsafeAsEventInstanceId: (id: string) => EventInstanceId;
|
|
161
163
|
export declare const unsafeAsSiteId: (id: string) => SiteId;
|
|
164
|
+
export declare const unsafeAsApiKeyId: (id: string) => ApiKeyId;
|
|
162
165
|
export declare const unsafeAsSiteRouteId: (id: string) => SiteRouteId;
|
|
163
166
|
export declare const unsafeAsPageId: (id: string) => PageId;
|
|
164
167
|
export declare const unsafeAsPageSurfaceId: (id: string) => PageSurfaceId;
|
|
@@ -268,6 +271,7 @@ export declare const unsafeAsEncounterRecordId: (id: string) => EncounterRecordI
|
|
|
268
271
|
export declare const unsafeAsRecordEntryId: (id: string) => RecordEntryId;
|
|
269
272
|
export declare const unsafeAsProtectedPayloadKeyVersion: (id: string) => ProtectedPayloadKeyVersion;
|
|
270
273
|
export declare const parseSiteId: (value: unknown) => Result<SiteId, BrandedIdParseError>;
|
|
274
|
+
export declare const parseApiKeyId: (value: unknown) => Result<ApiKeyId, BrandedIdParseError>;
|
|
271
275
|
export declare const parseSiteRouteId: (value: unknown) => Result<SiteRouteId, BrandedIdParseError>;
|
|
272
276
|
export declare const parsePageId: (value: unknown) => Result<PageId, BrandedIdParseError>;
|
|
273
277
|
export declare const parsePageSurfaceId: (value: unknown) => Result<PageSurfaceId, BrandedIdParseError>;
|
|
@@ -14,16 +14,33 @@ export type EventPageSurfaceSubjectRefWire = Readonly<{
|
|
|
14
14
|
kind: 'eventOffering';
|
|
15
15
|
eventOfferingId: string;
|
|
16
16
|
}>;
|
|
17
|
-
export type
|
|
17
|
+
export type EventPageSurfaceBookingScope = 'single_occurrence' | 'whole_series';
|
|
18
|
+
export type EventSeriesPageSurfaceSubject = Readonly<{
|
|
18
19
|
kind: 'eventSeries';
|
|
20
|
+
eventSeriesId: EventSeriesId;
|
|
21
|
+
bookingScope: 'single_occurrence';
|
|
22
|
+
}> | Readonly<{
|
|
23
|
+
kind: 'eventSeries';
|
|
24
|
+
eventSeriesId: EventSeriesId;
|
|
25
|
+
bookingScope: 'whole_series';
|
|
26
|
+
isWholeSeriesBooking: true;
|
|
27
|
+
}>;
|
|
28
|
+
export type EventSeriesPageSurfaceSubjectWire = Readonly<{
|
|
29
|
+
kind: 'eventSeries';
|
|
30
|
+
eventSeriesId: string;
|
|
31
|
+
bookingScope: 'single_occurrence';
|
|
19
32
|
}> | Readonly<{
|
|
33
|
+
kind: 'eventSeries';
|
|
34
|
+
eventSeriesId: string;
|
|
35
|
+
bookingScope: 'whole_series';
|
|
36
|
+
isWholeSeriesBooking: true;
|
|
37
|
+
}>;
|
|
38
|
+
export type EventPageSurfaceSubject = EventSeriesPageSurfaceSubject | Readonly<{
|
|
20
39
|
kind: 'eventOffering';
|
|
21
40
|
eventOfferingId: EventOfferingId;
|
|
22
41
|
availableEventSeriesIds: readonly EventSeriesId[];
|
|
23
42
|
}>;
|
|
24
|
-
export type EventPageSurfaceSubjectWire =
|
|
25
|
-
kind: 'eventSeries';
|
|
26
|
-
}> | Readonly<{
|
|
43
|
+
export type EventPageSurfaceSubjectWire = EventSeriesPageSurfaceSubjectWire | Readonly<{
|
|
27
44
|
kind: 'eventOffering';
|
|
28
45
|
eventOfferingId: string;
|
|
29
46
|
availableEventSeriesIds: readonly string[];
|
|
@@ -36,9 +53,13 @@ export type EventPageSurfaceSubjectParseError = Readonly<{
|
|
|
36
53
|
}> | Readonly<{
|
|
37
54
|
kind: 'invalidEventSeriesId';
|
|
38
55
|
error: BrandedIdParseError;
|
|
56
|
+
}> | Readonly<{
|
|
57
|
+
kind: 'invalidEventSeriesBookingScope';
|
|
58
|
+
bookingScope: unknown;
|
|
39
59
|
}> | Readonly<{
|
|
40
60
|
kind: 'invalidEventOfferingId';
|
|
41
61
|
error: BrandedIdParseError;
|
|
42
62
|
}>;
|
|
63
|
+
export declare function createEventSeriesPageSurfaceSubject(eventSeriesId: EventSeriesId, bookingScope: EventPageSurfaceBookingScope): EventSeriesPageSurfaceSubject;
|
|
43
64
|
export declare function parseEventPageSurfaceSubject(value: unknown): Result<EventPageSurfaceSubject, EventPageSurfaceSubjectParseError>;
|
|
44
65
|
export declare function toEventPageSurfaceSubjectWire(subject: EventPageSurfaceSubject): EventPageSurfaceSubjectWire;
|