@riverbankcms/sdk 0.136.0 → 0.138.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 +109 -0
- package/README.md +7 -4
- package/dist/{PreviewEditorSidebar-BU5ZlhQR.mjs → PreviewEditorSidebar-BVPur_CU.mjs} +12 -18
- package/dist/{PreviewEditorUI-9XkHL-bC.mjs → PreviewEditorUI-DLhWX8oh.mjs} +3 -3
- package/dist/{PreviewQueryProvider-wbEpXryy.mjs → PreviewQueryProvider-BguJY1SW.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CnWmj-2B.mjs → SdkPreviewModeRuntime-Tda6qw4z.mjs} +1375 -495
- package/dist/{SiteChromeCustomizeContext-B6d5zkog.mjs → SiteChromeCustomizeContext-BHFgMjde.mjs} +35665 -33602
- package/dist/_dts/ai/src/contracts/proposals.d.ts +7226 -3057
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +1223 -811
- package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
- package/dist/_dts/api/src/accessAdmin.d.ts +16 -18
- package/dist/_dts/api/src/accountApi.d.ts +49 -2
- package/dist/_dts/api/src/appointmentServiceContracts.d.ts +83 -0
- package/dist/_dts/api/src/appointmentServiceLocation.d.ts +12 -0
- package/dist/_dts/api/src/appointmentServiceVisibility.d.ts +14 -0
- package/dist/_dts/api/src/appointmentSetup.d.ts +8 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +35 -87
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +1 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +2 -69
- package/dist/_dts/api/src/bookingRecords.d.ts +2 -2
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +2 -2
- package/dist/_dts/api/src/bookingServicePricing.d.ts +47 -0
- package/dist/_dts/api/src/bookings.d.ts +2 -2
- package/dist/_dts/api/src/cache-tags.d.ts +7 -2
- package/dist/_dts/api/src/common/index.d.ts +1 -0
- package/dist/_dts/api/src/common/zodFieldErrors.d.ts +34 -0
- package/dist/_dts/api/src/communications.d.ts +14 -8
- package/dist/_dts/api/src/contentRuntime.d.ts +3 -6
- package/dist/_dts/api/src/domainConnection.d.ts +41 -0
- package/dist/_dts/api/src/endpoints.d.ts +1636 -1637
- package/dist/_dts/api/src/eventAttendanceLabels.d.ts +2 -2
- package/dist/_dts/api/src/eventManagementContracts.d.ts +10 -14
- package/dist/_dts/api/src/index.d.ts +11 -9
- 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/media.d.ts +19 -2
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +1 -1
- package/dist/_dts/api/src/participantMessaging.d.ts +3 -3
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +62 -0
- package/dist/_dts/api/src/publicBookingService.d.ts +109 -2
- package/dist/_dts/api/src/publicEventCheckoutEndpointDefinitions.d.ts +27 -0
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +2 -1
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +30 -148
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +8 -26
- package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +5 -13
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +2 -3
- package/dist/_dts/api/src/schemas/admin-allowed-domains.d.ts +76 -0
- package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +61 -0
- package/dist/_dts/api/src/schemas/admin-users.d.ts +80 -0
- package/dist/_dts/api/src/schemas/newsletter-memberships.d.ts +98 -0
- package/dist/_dts/api/src/schemas/sdk-entries.d.ts +128 -0
- package/dist/_dts/api/src/schemas/site-api-keys.d.ts +112 -0
- package/dist/_dts/api/src/schemas/support.d.ts +35 -0
- package/dist/_dts/api/src/sdk-event-booking-offer.d.ts +14 -0
- package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +4 -16
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +11 -21
- package/dist/_dts/api/src/sdkContracts.d.ts +8 -23
- package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +37 -0
- package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
- package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +66 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +157 -146
- package/dist/_dts/api/src/siteInfrastructure.d.ts +37 -37
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +35 -54
- package/dist/_dts/api/src/siteOnboarding.d.ts +3 -3
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +38 -16
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
- package/dist/_dts/api/src/types.d.ts +2 -2
- package/dist/_dts/api/src/{wholeSeriesOfferings.d.ts → wholeSeriesRuns.d.ts} +11 -67
- package/dist/_dts/block-form/src/FormRenderer.d.ts +3 -1
- package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
- package/dist/_dts/block-form/src/backend/types.d.ts +2 -0
- package/dist/_dts/block-form/src/context/FormFocusContext.d.ts +7 -0
- package/dist/_dts/block-form/src/index.d.ts +2 -0
- package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +2 -1
- package/dist/_dts/block-form/src/utils/promotedFieldBackend.d.ts +8 -0
- package/dist/_dts/block-form/src/utils/promotedFieldPlan.d.ts +18 -0
- package/dist/_dts/block-form/src/utils/resolvePromotedFields.d.ts +8 -1
- package/dist/_dts/blocks/src/BlockErrorBoundary.d.ts +46 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -141
- package/dist/_dts/blocks/src/contracts/index.d.ts +2 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -6
- package/dist/_dts/blocks/src/index.d.ts +1 -0
- package/dist/_dts/blocks/src/pageRenderAudience.d.ts +54 -0
- package/dist/_dts/blocks/src/pageRenderDiagnostics.d.ts +26 -0
- package/dist/_dts/blocks/src/pageRenderPlan.d.ts +116 -0
- package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +109 -0
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +1 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +154 -0
- package/dist/_dts/blocks/src/portal/types.d.ts +1 -1
- package/dist/_dts/blocks/src/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +12 -20
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/eventCalendarDataLoaders.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +95 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/runGrouping.d.ts +37 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +1046 -773
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +59 -46
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +161 -161
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +13 -6
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +10 -4
- package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +2 -2
- package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -0
- package/dist/_dts/blocks/src/system/customize/facets.d.ts +4 -4
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +5 -9
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +83 -83
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +12 -3
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -8
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +12 -20
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +32 -37
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +15 -18
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +11 -8
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +38 -22
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/WholeSeriesPricingDisplay.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +16 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +5 -3
- 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/hooks.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +14 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +3 -21
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/siteCreditPreview.d.ts +0 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ticketSelectionLines.d.ts +14 -16
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +13 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +9 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +25 -23
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +11 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -13
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1080 -560
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -7
- package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +11 -0
- package/dist/_dts/commerce/src/moneyReport.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
- package/dist/_dts/commerce/src/purchase/eventOrderOptionSnapshot.d.ts +3 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +6 -3
- package/dist/_dts/commerce/src/purchase/types.d.ts +3 -2
- package/dist/_dts/commerce/src/waitlists.d.ts +1 -1
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +4 -0
- package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +11 -0
- package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/blockedPublishPlan.d.ts +13 -5
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +5 -1
- package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +34 -2
- package/dist/_dts/content-editor/src/index.d.ts +2 -1
- package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +2 -0
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -2
- package/dist/_dts/content-editor/src/ui/stores/types.d.ts +27 -5
- package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
- package/dist/_dts/content-model/src/templates/defaults.d.ts +11 -0
- package/dist/_dts/core/src/branded.d.ts +28 -9
- package/dist/_dts/core/src/event-booking-offer-parser.d.ts +82 -0
- package/dist/_dts/core/src/event-booking-offer.d.ts +89 -0
- package/dist/_dts/core/src/event-page-surface-subject.d.ts +81 -4
- package/dist/_dts/core/src/event-pricing.d.ts +81 -89
- package/dist/_dts/core/src/index.d.ts +3 -0
- package/dist/_dts/core/src/non-empty-array.d.ts +3 -0
- package/dist/_dts/core/src/whole-series-run-schedule.d.ts +92 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +495 -279
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -6
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +4 -2
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +22 -7
- package/dist/_dts/editor-blocks/src/block-editor/useSettingsFieldFocus.d.ts +18 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
- package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
- package/dist/_dts/sdk/src/client/{eventSubrouteReadOperations.d.ts → publicEventReadOperations.d.ts} +4 -3
- package/dist/_dts/sdk/src/client/types.d.ts +6 -10
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +2 -3
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +8 -8
- package/dist/_dts/sdk/src/next/tags.d.ts +5 -8
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -26
- package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +9 -1
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +6 -53
- package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +5 -5
- package/dist/_dts/theme-core/src/buttons/styles/recipes/flatInk.d.ts +25 -25
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +25 -25
- package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +7 -7
- package/dist/_dts/theme-core/src/buttons/types.d.ts +22 -22
- package/dist/_dts/theme-core/src/cards/types.d.ts +49 -49
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +26 -3
- package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +195 -195
- package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/schema.d.ts +258 -257
- package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +10 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
- package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
- package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -9
- package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
- package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +10 -1
- package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +7 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +3 -3
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/button.d.ts +2 -2
- package/dist/client/{BookingConsentAgreement-DCch21a6.mjs → BookingConsentAgreement-DQUik1Mx.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-DIj1T59K.mjs → DiscountCodeDisclosure-CU67Q4vH.mjs} +1 -1
- package/dist/client/{EventCombined.client-BWVNlXTx.mjs → EventCombined.client-a02TXUgg.mjs} +233 -348
- package/dist/client/{EventListing.client-DVFCDe3i.mjs → EventListing.client-99qx7jFl.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BY5mIHw9.mjs → LeafletStaticMap-CWzcq73L.mjs} +1 -1
- package/dist/client/{accordion-CK29E8rG.mjs → accordion-D1nb3-Oj.mjs} +1 -1
- package/dist/client/{bookingForm-DFvnet-N.mjs → bookingForm-BGrmLhaO.mjs} +5 -5
- package/dist/client/bookings.mjs +10555 -10475
- package/dist/client/{carousel-BVU5NQlb.mjs → carousel-DSmOx3ad.mjs} +1 -1
- package/dist/client/{cart-BNItcZVa.mjs → cart-COWeOIUk.mjs} +3 -3
- package/dist/client/{checkout-Bu6iCdkP.mjs → checkout-CeysaIJK.mjs} +3 -3
- package/dist/client/client.mjs +58968 -57441
- package/dist/client/{context-BImarOAq.mjs → context-DBzX85Xc.mjs} +46 -18
- package/dist/client/dates-DCYhZBlW.mjs +264 -0
- package/dist/client/{eventCalendar-DS2h-UXD.mjs → eventCalendar-BgsN73Ul.mjs} +21 -44
- package/dist/client/{eventCombined-Drt4Oq9p.mjs → eventCombined-DcZQAMQP.mjs} +3 -3
- package/dist/client/{eventDetails-Bl2vWgTX.mjs → eventDetails-BWwGJ54l.mjs} +131 -51
- package/dist/client/{eventListing-CS7PHY7v.mjs → eventListing-DqYqV8vp.mjs} +3 -3
- package/dist/client/{eventRegistration-D-j8eNy2.mjs → eventRegistration-DQGDgu_e.mjs} +1122 -803
- package/dist/client/{form-RMpoLTyr.mjs → form-ClfpasVT.mjs} +2 -2
- package/dist/client/{headerSection-BYE3Lb3k.mjs → headerSection-BuOMe98N.mjs} +2 -2
- package/dist/client/hooks.mjs +9630 -9526
- package/dist/client/{locationMap-BxSr7Kkh.mjs → locationMap-CEqu_sfa.mjs} +2 -2
- package/dist/client/{newsletterForm-DerbXwFC.mjs → newsletterForm-IbrHjMxy.mjs} +2 -2
- package/dist/client/pricing-xj7MPZlK.mjs +314 -0
- package/dist/client/{productDetail-4SZCLhAf.mjs → productDetail-vxqTt5Xj.mjs} +3 -3
- package/dist/client/{productList-D7AP4GNq.mjs → productList-OTdZu8sb.mjs} +3 -3
- package/dist/client/{propsDecoder-pzBeCh14.mjs → propsDecoder-CY9gGEF7.mjs} +786 -1194
- package/dist/client/rendering/client.mjs +11481 -10469
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +26871 -25232
- package/dist/client/{scrollToBlock-CduAKf8T.mjs → scrollToBlock--BFV6kl-.mjs} +1 -1
- package/dist/client/{shop-Cp5p_kGe.mjs → shop-CP4YbDL9.mjs} +6 -6
- package/dist/client/{shop-commerce-DicXYaYX.mjs → shop-commerce-APs4XBXE.mjs} +5 -5
- package/dist/client/{shop-commerce-store-CGWnpY4K.mjs → shop-commerce-store-CAVLxLFr.mjs} +1 -1
- package/dist/client/{shopShared-BDf9ljkm.mjs → shopShared-BnSRrwXI.mjs} +3 -3
- package/dist/client/{useEventFilters-DeeyGYuk.mjs → useEventFilters-1a1by4c8.mjs} +33 -18
- package/dist/preview-next/before-render.mjs +186 -148
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +186 -148
- package/dist/preview-next/middleware.mjs +186 -148
- package/dist/{previewAuthStore-DbqBol0V.mjs → previewAuthStore-BkEgnYPP.mjs} +186 -148
- package/dist/{sdk-runtime-19MO27F0.mjs → sdk-runtime-DwGfsT0S.mjs} +2 -2
- package/dist/{separator-DaPLtJ1f.mjs → separator-BeqDLneQ.mjs} +1 -1
- package/dist/server/components.mjs +53243 -51879
- package/dist/server/config-validation.mjs +1015 -906
- package/dist/server/config.mjs +1019 -910
- package/dist/server/data.mjs +10304 -10200
- package/dist/server/index.mjs +217 -198
- package/dist/server/next/tags.mjs +18 -4
- package/dist/server/next.mjs +62787 -61617
- package/dist/server/page-converter.mjs +797 -917
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +52557 -51365
- package/dist/server/rendering.mjs +54373 -53054
- package/dist/server/routing.mjs +13274 -13142
- package/dist/server/server.mjs +1076 -1154
- package/dist/server/theme-bridge.mjs +69 -9
- package/dist/server/theme.mjs +27 -8
- package/dist/styles/index.css +32 -1
- package/package.json +1 -1
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -65
- package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +0 -20
- package/dist/_dts/api/src/sdk-event-pricing.d.ts +0 -61
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/index.d.ts +0 -3
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/pricing.d.ts +0 -50
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +0 -135
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +0 -87
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
- package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +0 -11
- package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +0 -2
- /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
|
|
1
2
|
import type { DiscountContext } from '../../api/types';
|
|
2
3
|
import type { EventTicketSelectionLine, EventRegistrationClientProps, EligibilityData, FormData, Guest, GuestErrors, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult, RegistrationStep } from './types';
|
|
3
4
|
import { usePortalAuth, useEligibility, useExistingEventRegistration } from './hooks';
|
|
@@ -18,7 +19,6 @@ export type UseEventRegistrationWizardOptions = Readonly<{
|
|
|
18
19
|
occurrenceContext: EventRegistrationClientProps['occurrenceContext'];
|
|
19
20
|
subject?: EventRegistrationClientProps['subject'];
|
|
20
21
|
events: PublicEvent[];
|
|
21
|
-
wholeSeriesOfferings?: EventRegistrationClientProps['wholeSeriesOfferings'];
|
|
22
22
|
maxTicketsNum: number;
|
|
23
23
|
}>;
|
|
24
24
|
export type EventRegistrationWizardDeps = Readonly<{
|
|
@@ -58,14 +58,14 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
58
58
|
setSelectedEvent: import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>;
|
|
59
59
|
ticketsCount: number;
|
|
60
60
|
setTicketsCount: (nextTicketsCount: number) => void;
|
|
61
|
-
selectedAttendanceMode: "
|
|
62
|
-
setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"
|
|
61
|
+
selectedAttendanceMode: "in_person" | "online" | null;
|
|
62
|
+
setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>;
|
|
63
63
|
ticketSelections: Readonly<{
|
|
64
|
-
|
|
64
|
+
pricingOptionId: string | null;
|
|
65
65
|
quantity: number;
|
|
66
66
|
}>[];
|
|
67
67
|
selectedTicketLines: Readonly<{
|
|
68
|
-
|
|
68
|
+
pricingOptionId: string | null;
|
|
69
69
|
quantity: number;
|
|
70
70
|
}>[];
|
|
71
71
|
setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
|
|
@@ -78,16 +78,16 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
78
78
|
suggestedAmount: number | null;
|
|
79
79
|
}> | null;
|
|
80
80
|
slidingScaleSelectionMessage: string | null;
|
|
81
|
-
selectedTicketType: import("
|
|
82
|
-
ticketSelectionSummaryLines:
|
|
83
|
-
|
|
81
|
+
selectedTicketType: import("../../..").EventRegistrationPricingOption | null;
|
|
82
|
+
ticketSelectionSummaryLines: {
|
|
83
|
+
pricingOptionId: string | null;
|
|
84
84
|
label: string;
|
|
85
85
|
quantity: number;
|
|
86
86
|
unitPriceCents: number;
|
|
87
87
|
subtotalCents: number;
|
|
88
|
-
}
|
|
89
|
-
ticketSelectionSubtotalCents: number;
|
|
90
|
-
visibleTicketTypes: import("
|
|
88
|
+
}[];
|
|
89
|
+
ticketSelectionSubtotalCents: number | null;
|
|
90
|
+
visibleTicketTypes: import("../../..").EventRegistrationPricingOption[];
|
|
91
91
|
ticketTypeSelectionRequired: boolean;
|
|
92
92
|
hasValidTicketSelection: boolean;
|
|
93
93
|
eventRequiresPayment: boolean;
|
|
@@ -101,6 +101,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
101
101
|
handleGuestShakeEnd: () => void;
|
|
102
102
|
registrationResult: RegistrationResult | null;
|
|
103
103
|
errorMessage: string;
|
|
104
|
+
errorAction: EventRegistrationErrorAction;
|
|
104
105
|
altchaSolution: string | null;
|
|
105
106
|
setAltchaSolution: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
106
107
|
portalAuthState: import("./hooks").PortalAuthState;
|
|
@@ -141,7 +142,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
141
142
|
discountsAvailableLoading: boolean;
|
|
142
143
|
discountContext: DiscountContext | null;
|
|
143
144
|
shouldShowDiscountToggle: boolean;
|
|
144
|
-
verification: import("
|
|
145
|
+
verification: import("./useEventRegistrationStripeReturn").EventRegistrationStripeReturnResult;
|
|
145
146
|
handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
|
|
146
147
|
handlePaymentSelect: () => Promise<void>;
|
|
147
148
|
handleUseCardInsteadOfPass: () => void;
|
|
@@ -178,14 +179,14 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
178
179
|
setSelectedEvent: import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>;
|
|
179
180
|
ticketsCount: number;
|
|
180
181
|
setTicketsCount: (nextTicketsCount: number) => void;
|
|
181
|
-
selectedAttendanceMode: "
|
|
182
|
-
setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"
|
|
182
|
+
selectedAttendanceMode: "in_person" | "online" | null;
|
|
183
|
+
setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>;
|
|
183
184
|
ticketSelections: Readonly<{
|
|
184
|
-
|
|
185
|
+
pricingOptionId: string | null;
|
|
185
186
|
quantity: number;
|
|
186
187
|
}>[];
|
|
187
188
|
selectedTicketLines: Readonly<{
|
|
188
|
-
|
|
189
|
+
pricingOptionId: string | null;
|
|
189
190
|
quantity: number;
|
|
190
191
|
}>[];
|
|
191
192
|
setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
|
|
@@ -198,16 +199,16 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
198
199
|
suggestedAmount: number | null;
|
|
199
200
|
}> | null;
|
|
200
201
|
slidingScaleSelectionMessage: string | null;
|
|
201
|
-
selectedTicketType: import("
|
|
202
|
-
ticketSelectionSummaryLines:
|
|
203
|
-
|
|
202
|
+
selectedTicketType: import("../../..").EventRegistrationPricingOption | null;
|
|
203
|
+
ticketSelectionSummaryLines: {
|
|
204
|
+
pricingOptionId: string | null;
|
|
204
205
|
label: string;
|
|
205
206
|
quantity: number;
|
|
206
207
|
unitPriceCents: number;
|
|
207
208
|
subtotalCents: number;
|
|
208
|
-
}
|
|
209
|
-
ticketSelectionSubtotalCents: number;
|
|
210
|
-
visibleTicketTypes: import("
|
|
209
|
+
}[];
|
|
210
|
+
ticketSelectionSubtotalCents: number | null;
|
|
211
|
+
visibleTicketTypes: import("../../..").EventRegistrationPricingOption[];
|
|
211
212
|
ticketTypeSelectionRequired: boolean;
|
|
212
213
|
hasValidTicketSelection: boolean;
|
|
213
214
|
eventRequiresPayment: boolean;
|
|
@@ -221,6 +222,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
221
222
|
handleGuestShakeEnd: () => void;
|
|
222
223
|
registrationResult: RegistrationResult | null;
|
|
223
224
|
errorMessage: string;
|
|
225
|
+
errorAction: EventRegistrationErrorAction;
|
|
224
226
|
altchaSolution: string | null;
|
|
225
227
|
setAltchaSolution: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
226
228
|
portalAuthState: import("./hooks").PortalAuthState;
|
|
@@ -261,7 +263,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
261
263
|
discountsAvailableLoading: boolean;
|
|
262
264
|
discountContext: DiscountContext | null;
|
|
263
265
|
shouldShowDiscountToggle: boolean;
|
|
264
|
-
verification: import("
|
|
266
|
+
verification: import("./useEventRegistrationStripeReturn").EventRegistrationStripeReturnResult;
|
|
265
267
|
handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
|
|
266
268
|
handlePaymentSelect: () => Promise<void>;
|
|
267
269
|
handleUseCardInsteadOfPass: () => void;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
2
|
import type { ResolveWaitlistClaimResponse } from '../../api/types';
|
|
3
3
|
import type { EventTicketSelectionLine, FormData, Guest, RegistrationEvent, RegistrationStep } from './types';
|
|
4
|
+
import type { EventRegistrationErrorAction } from '../../../../../../commerce/src/purchase/index';
|
|
4
5
|
export type WaitlistClaimRestorationSetters = Readonly<{
|
|
6
|
+
setErrorAction?: (action: EventRegistrationErrorAction) => void;
|
|
5
7
|
setErrorMessage: Dispatch<SetStateAction<string>>;
|
|
6
8
|
setStep: (step: RegistrationStep) => void;
|
|
7
9
|
setSelectedEvent: Dispatch<SetStateAction<RegistrationEvent | null>>;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
import type { EventRegistrationPricingOption } from '../../../blocks/event-registration';
|
|
1
2
|
import type { RegistrationOptionsResponse } from '../../api/types';
|
|
2
|
-
import type { EligibilityData,
|
|
3
|
-
export declare const DEFAULT_EVENT_CURRENCY = "usd";
|
|
3
|
+
import type { EligibilityData, PublicEvent, RegistrationEvent } from './types';
|
|
4
4
|
export declare function getPortalSubjectEmail(profile: Readonly<{
|
|
5
5
|
email: string;
|
|
6
6
|
}> | null): string | null;
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* A ticket type the wizard can offer.
|
|
9
|
+
*
|
|
10
|
+
* It answers to `pricingOptionId` whichever source it came from — the
|
|
11
|
+
* registration-options response or the event record — so the wizard never has
|
|
12
|
+
* to remember which of two names this identity goes by (A44).
|
|
13
|
+
*/
|
|
14
|
+
export type SelectableEventTicketType = EventRegistrationPricingOption;
|
|
8
15
|
type TicketTypeSourceEvent = PublicEvent | RegistrationEvent;
|
|
9
16
|
/**
|
|
10
17
|
* Format date for display
|
|
@@ -56,6 +63,6 @@ export declare function getImplicitSingleAvailableTicketType(ticketTypes: readon
|
|
|
56
63
|
export declare function findSelectedTicketType(input: {
|
|
57
64
|
event: TicketTypeSourceEvent | null;
|
|
58
65
|
eligibility: EligibilityData | null;
|
|
59
|
-
|
|
66
|
+
selectedPricingOptionId: string | null;
|
|
60
67
|
selectedAttendanceMode?: 'in_person' | 'online' | null;
|
|
61
68
|
}): SelectableEventTicketType | null;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { BlockButtonRole } from '../../constants/buttonRoles';
|
|
2
2
|
import type { PublicEvent } from '../../blocks/events/shared/types';
|
|
3
|
-
import type { PublicWholeSeriesOffering } from '../../blocks/events/whole-series';
|
|
4
3
|
import { type PublicMembershipProductCollection, type PublicPassProductCollection } from '../../blocks/shop.shared';
|
|
5
4
|
import type { OccurrenceContext } from '../../blocks/event-registration.shared';
|
|
6
5
|
import type { EventRegistrationClientProps as InternalEventRegistrationClientProps } from './event-registration/types';
|
|
@@ -18,9 +17,8 @@ export type EventRegistrationSourceProps = Readonly<{
|
|
|
18
17
|
occurrenceContext?: OccurrenceContext | null;
|
|
19
18
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
20
19
|
events?: PublicEvent[] | null;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
subjectWholeSeriesOffering?: PublicWholeSeriesOffering | null;
|
|
20
|
+
/** Runs for a whole-series page, loaded independently of the date page. */
|
|
21
|
+
wholeSeriesRunEvents?: PublicEvent[] | null;
|
|
24
22
|
className?: string | null;
|
|
25
23
|
buttonText?: string | null;
|
|
26
24
|
maxTickets?: string | null;
|
|
@@ -70,9 +68,8 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
|
|
|
70
68
|
occurrenceContext?: OccurrenceContext | null;
|
|
71
69
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
72
70
|
events?: PublicEvent[] | null;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
subjectWholeSeriesOffering?: PublicWholeSeriesOffering | null;
|
|
71
|
+
/** Runs for a whole-series page, loaded independently of the date page. */
|
|
72
|
+
wholeSeriesRunEvents?: PublicEvent[] | null;
|
|
76
73
|
className?: string | null;
|
|
77
74
|
buttonText?: string | null;
|
|
78
75
|
maxTickets?: string | null;
|
|
@@ -104,9 +101,8 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
|
|
|
104
101
|
occurrenceContext?: OccurrenceContext | null;
|
|
105
102
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
106
103
|
events?: PublicEvent[] | null;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
subjectWholeSeriesOffering?: PublicWholeSeriesOffering | null;
|
|
104
|
+
/** Runs for a whole-series page, loaded independently of the date page. */
|
|
105
|
+
wholeSeriesRunEvents?: PublicEvent[] | null;
|
|
110
106
|
className?: string | null;
|
|
111
107
|
buttonText?: string | null;
|
|
112
108
|
maxTickets?: string | null;
|
|
@@ -133,9 +129,8 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
|
|
|
133
129
|
occurrenceContext?: OccurrenceContext | null;
|
|
134
130
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
135
131
|
events?: PublicEvent[] | null;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
subjectWholeSeriesOffering?: PublicWholeSeriesOffering | null;
|
|
132
|
+
/** Runs for a whole-series page, loaded independently of the date page. */
|
|
133
|
+
wholeSeriesRunEvents?: PublicEvent[] | null;
|
|
139
134
|
className?: string | null;
|
|
140
135
|
buttonText?: string | null;
|
|
141
136
|
maxTickets?: string | null;
|
|
@@ -50,6 +50,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
|
|
|
50
50
|
buildRender: (source: EventCalendarSourceProps) => Readonly<{
|
|
51
51
|
display: EventCalendarDisplay;
|
|
52
52
|
hydration: Readonly<{
|
|
53
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
53
54
|
siteId: string;
|
|
54
55
|
stage?: "preview" | "published";
|
|
55
56
|
prefetchedEvents: boolean;
|
|
@@ -75,6 +76,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
|
|
|
75
76
|
encode: (value: Readonly<{
|
|
76
77
|
display: EventCalendarDisplay;
|
|
77
78
|
hydration: Readonly<{
|
|
79
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
78
80
|
siteId: string;
|
|
79
81
|
stage?: "preview" | "published";
|
|
80
82
|
prefetchedEvents: boolean;
|
|
@@ -94,6 +96,7 @@ export declare const eventCalendarBlockRuntime: Readonly<{
|
|
|
94
96
|
decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<{
|
|
95
97
|
display: EventCalendarDisplay;
|
|
96
98
|
hydration: Readonly<{
|
|
99
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
97
100
|
siteId: string;
|
|
98
101
|
stage?: "preview" | "published";
|
|
99
102
|
prefetchedEvents: boolean;
|
|
@@ -125,6 +128,7 @@ export declare const eventCalendarInteractiveIslandPropsCodec: Readonly<{
|
|
|
125
128
|
} & Readonly<{
|
|
126
129
|
display: EventCalendarDisplay;
|
|
127
130
|
hydration: Readonly<{
|
|
131
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
128
132
|
siteId: string;
|
|
129
133
|
stage?: "preview" | "published";
|
|
130
134
|
prefetchedEvents: boolean;
|
|
@@ -153,6 +157,7 @@ export declare const eventCalendarInteractiveIslandPropsCodec: Readonly<{
|
|
|
153
157
|
} & Readonly<{
|
|
154
158
|
display: EventCalendarDisplay;
|
|
155
159
|
hydration: Readonly<{
|
|
160
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
156
161
|
siteId: string;
|
|
157
162
|
stage?: "preview" | "published";
|
|
158
163
|
prefetchedEvents: boolean;
|
|
@@ -34,6 +34,7 @@ export type EventCombinedClientProps = Readonly<{
|
|
|
34
34
|
emptyMessage?: string;
|
|
35
35
|
className?: string;
|
|
36
36
|
calendarContext: EventCollectionHydration['calendarContext'];
|
|
37
|
+
calendarWindow?: EventCollectionHydration['calendarWindow'];
|
|
37
38
|
}>;
|
|
38
39
|
export type EventCombinedIslandClientProps = EventCombinedInteractiveIslandProps;
|
|
39
40
|
/**
|
|
@@ -21,7 +21,8 @@ export type EventCombinedInteractiveIslandProps = InteractiveIslandProps<EventCo
|
|
|
21
21
|
export declare const eventCombinedBlockRuntime: Readonly<{
|
|
22
22
|
kind: "progressive";
|
|
23
23
|
buildRender: (source: Readonly<{
|
|
24
|
-
|
|
24
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage | null;
|
|
25
|
+
events?: import("../../../../../../api/src/index").PublicEvent[] | null;
|
|
25
26
|
siteId: string;
|
|
26
27
|
apiBaseUrl?: string;
|
|
27
28
|
stage?: "preview" | "published";
|
|
@@ -56,6 +57,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
|
|
|
56
57
|
}>) => Readonly<{
|
|
57
58
|
display: EventCombinedDisplay;
|
|
58
59
|
hydration: Readonly<{
|
|
60
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
59
61
|
siteId: string;
|
|
60
62
|
stage?: "preview" | "published";
|
|
61
63
|
prefetchedEvents: boolean;
|
|
@@ -75,7 +77,8 @@ export declare const eventCombinedBlockRuntime: Readonly<{
|
|
|
75
77
|
contracts: Readonly<{
|
|
76
78
|
source: Readonly<{
|
|
77
79
|
encode: (value: Readonly<{
|
|
78
|
-
|
|
80
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage | null;
|
|
81
|
+
events?: import("../../../../../../api/src/index").PublicEvent[] | null;
|
|
79
82
|
siteId: string;
|
|
80
83
|
apiBaseUrl?: string;
|
|
81
84
|
stage?: "preview" | "published";
|
|
@@ -109,7 +112,8 @@ export declare const eventCombinedBlockRuntime: Readonly<{
|
|
|
109
112
|
bookingTimeZone?: string;
|
|
110
113
|
}>) => unknown;
|
|
111
114
|
decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<{
|
|
112
|
-
|
|
115
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage | null;
|
|
116
|
+
events?: import("../../../../../../api/src/index").PublicEvent[] | null;
|
|
113
117
|
siteId: string;
|
|
114
118
|
apiBaseUrl?: string;
|
|
115
119
|
stage?: "preview" | "published";
|
|
@@ -147,6 +151,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
|
|
|
147
151
|
encode: (value: Readonly<{
|
|
148
152
|
display: EventCombinedDisplay;
|
|
149
153
|
hydration: Readonly<{
|
|
154
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
150
155
|
siteId: string;
|
|
151
156
|
stage?: "preview" | "published";
|
|
152
157
|
prefetchedEvents: boolean;
|
|
@@ -166,6 +171,7 @@ export declare const eventCombinedBlockRuntime: Readonly<{
|
|
|
166
171
|
decode: (input: unknown) => import("../../../../contracts").DecodeResult<Readonly<{
|
|
167
172
|
display: EventCombinedDisplay;
|
|
168
173
|
hydration: Readonly<{
|
|
174
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
169
175
|
siteId: string;
|
|
170
176
|
stage?: "preview" | "published";
|
|
171
177
|
prefetchedEvents: boolean;
|
|
@@ -197,6 +203,7 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
|
|
|
197
203
|
} & Readonly<{
|
|
198
204
|
display: EventCombinedDisplay;
|
|
199
205
|
hydration: Readonly<{
|
|
206
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
200
207
|
siteId: string;
|
|
201
208
|
stage?: "preview" | "published";
|
|
202
209
|
prefetchedEvents: boolean;
|
|
@@ -225,6 +232,7 @@ export declare const eventCombinedInteractiveIslandPropsCodec: Readonly<{
|
|
|
225
232
|
} & Readonly<{
|
|
226
233
|
display: EventCombinedDisplay;
|
|
227
234
|
hydration: Readonly<{
|
|
235
|
+
calendarWindow?: import("../../../../contracts").CalendarWindowPage;
|
|
228
236
|
siteId: string;
|
|
229
237
|
stage?: "preview" | "published";
|
|
230
238
|
prefetchedEvents: boolean;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import type { PublicEvent, PublicEventAttendanceMode, PublicEventAttendanceModeAvailability } from '../../../../blocks/events/shared/types';
|
|
2
|
+
/**
|
|
3
|
+
* The four fields capacity maths needs. Satisfied by a `PublicEvent`, by the
|
|
4
|
+
* wizard's `RegistrationEvent`, and by a single attendance-mode availability
|
|
5
|
+
* row, so one helper can answer for the whole event or for one mode.
|
|
6
|
+
*/
|
|
7
|
+
export type EventCapacitySource = Pick<PublicEvent, 'capacity' | 'registeredCount' | 'availableSpots' | 'waitlistEnabled'>;
|
|
8
|
+
export type EventAvailability = {
|
|
9
|
+
/** Remaining spots. `null` when the event has no capacity cap. */
|
|
10
|
+
available: number | null;
|
|
11
|
+
/** True when the event has a cap and no spots remain. */
|
|
12
|
+
isFull: boolean;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Compute remaining spots for an event from `availableSpots` with a fallback
|
|
16
|
+
* to `capacity - registeredCount`. Returns `{ available: null, isFull: false }`
|
|
17
|
+
* for uncapped events so call sites can render no capacity indicator at all.
|
|
18
|
+
*
|
|
19
|
+
* The single source of truth for capacity math across event cards, agenda
|
|
20
|
+
* rows, and timetable cells — keep wording variations in the call sites.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getEventAvailability(event: EventCapacitySource): EventAvailability;
|
|
23
|
+
type EventWithAttendanceModes = EventCapacitySource & {
|
|
24
|
+
attendanceModes?: readonly PublicEventAttendanceModeAvailability[] | null;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Pick the capacity row a booking decision should read: the selected
|
|
28
|
+
* attendance mode's availability when the visitor has chosen one and the
|
|
29
|
+
* event publishes it, otherwise the event-level aggregate.
|
|
30
|
+
*
|
|
31
|
+
* The mode row is used wholesale. A mode with `capacity: null` on a capped
|
|
32
|
+
* event is uncapped *by design*: the registration write path applies the
|
|
33
|
+
* same rule via `getEffectiveOccurrenceCapacityForAttendanceMode`, so falling
|
|
34
|
+
* back to the event's `availableSpots` here would block bookings the server
|
|
35
|
+
* accepts. (Waitlist claims are still occurrence-scoped; see issue 1377.)
|
|
36
|
+
*/
|
|
37
|
+
export declare function selectEventCapacitySource(event: EventWithAttendanceModes, attendanceMode?: PublicEventAttendanceMode | null): EventCapacitySource;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the visitor's next step is the waitlist: the source is full *and*
|
|
40
|
+
* a waitlist is open. The one place this is decided — cards, rows, the
|
|
41
|
+
* wizard's steps and its action bar all route through here so they agree,
|
|
42
|
+
* including for producers that omit `availableSpots` and rely on the
|
|
43
|
+
* `capacity - registeredCount` fallback.
|
|
44
|
+
*/
|
|
45
|
+
export declare function canJoinEventWaitlist(event: EventWithAttendanceModes, options?: {
|
|
46
|
+
attendanceMode?: PublicEventAttendanceMode | null;
|
|
47
|
+
}): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Remaining places at or below which an event reads as scarce and the exact
|
|
50
|
+
* count is worth showing. Above it, no number is shown at all: "147 places
|
|
51
|
+
* left" is not something a visitor acts on, and it is the figure most likely
|
|
52
|
+
* to be stale on a cached page.
|
|
53
|
+
*
|
|
54
|
+
* max( min(3, ceil(capacity * 0.25)), ceil(capacity * 0.05) )
|
|
55
|
+
*
|
|
56
|
+
* The 25% arm stops small groups shouting early (3 of 4 is not urgency); the
|
|
57
|
+
* 5% floor stops large events staying silent until three remain.
|
|
58
|
+
* capacity 4 -> 1, 12 -> 3, 40 -> 3, 100 -> 5, 200 -> 10.
|
|
59
|
+
*/
|
|
60
|
+
export declare function lowCapacityThreshold(capacity: number): number;
|
|
61
|
+
/**
|
|
62
|
+
* The remaining-places state every surface renders from. `open` deliberately
|
|
63
|
+
* carries no count: nothing should show one above the threshold, and logic
|
|
64
|
+
* that needs the number (quantity caps) reads {@link getEventAvailability}.
|
|
65
|
+
*/
|
|
66
|
+
export type RemainingPlaces = {
|
|
67
|
+
kind: 'unlimited';
|
|
68
|
+
} | {
|
|
69
|
+
kind: 'open';
|
|
70
|
+
} | {
|
|
71
|
+
kind: 'low';
|
|
72
|
+
remaining: number;
|
|
73
|
+
} | {
|
|
74
|
+
kind: 'full';
|
|
75
|
+
waitlist: boolean;
|
|
76
|
+
};
|
|
77
|
+
export declare function getRemainingPlaces(source: EventCapacitySource): RemainingPlaces;
|
|
78
|
+
export type RemainingPlacesWording = Readonly<{
|
|
79
|
+
/** Label when full with no waitlist. Defaults to "Full". */
|
|
80
|
+
full?: string;
|
|
81
|
+
/** Label when full with a waitlist open. Defaults to "Waitlist". */
|
|
82
|
+
waitlist?: string;
|
|
83
|
+
/** "2 left" instead of "2 places left", for pills and timetable cells. */
|
|
84
|
+
compact?: boolean;
|
|
85
|
+
}>;
|
|
86
|
+
/**
|
|
87
|
+
* The one place a remaining-places count becomes text. Returns `null` when
|
|
88
|
+
* nothing should be shown: uncapped events, and capped events above the
|
|
89
|
+
* scarcity threshold. Surfaces that need their own full-state wording pass
|
|
90
|
+
* it in rather than re-deriving the count.
|
|
91
|
+
*/
|
|
92
|
+
export declare function formatRemainingPlaces(source: EventCapacitySource, wording?: RemainingPlacesWording): string | null;
|
|
93
|
+
/**
|
|
94
|
+
* Ticket types publish only what is left, never a total, so the capacity
|
|
95
|
+
* threshold cannot apply. The absolute arm of {@link lowCapacityThreshold}
|
|
96
|
+
* is used on its own: the count shows at three or fewer, otherwise nothing.
|
|
97
|
+
*/
|
|
98
|
+
export declare const TICKET_TYPE_LOW_COUNT = 3;
|
|
99
|
+
export declare function formatTicketTypeRemaining(remainingCapacity: number | null): string | null;
|
|
100
|
+
/** Total capacity as copy ("12 places"), for detail surfaces that state the size of an event. */
|
|
101
|
+
export declare function formatTotalCapacity(capacity: number | null): string | null;
|
|
102
|
+
/**
|
|
103
|
+
* Three-state availability status for compact boards and pills.
|
|
104
|
+
* - `available`: uncapped, or above the scarcity threshold. No label.
|
|
105
|
+
* - `filling`: at or below {@link lowCapacityThreshold}. Label is the compact count.
|
|
106
|
+
* - `waitlist`: full. Label reflects whether a waitlist is open.
|
|
107
|
+
*/
|
|
108
|
+
export type EventAvailabilityStatus = 'available' | 'filling' | 'waitlist';
|
|
109
|
+
export type EventAvailabilityDetail = {
|
|
110
|
+
status: EventAvailabilityStatus;
|
|
111
|
+
/** Remaining spots. `null` when the event has no capacity cap. */
|
|
112
|
+
available: number | null;
|
|
113
|
+
isFull: boolean;
|
|
114
|
+
/** Short pill label, e.g. "2 left", "Waitlist", "Full". `null` when nothing should show. */
|
|
115
|
+
label: string | null;
|
|
116
|
+
};
|
|
117
|
+
export declare function getEventAvailabilityStatus(event: HybridEventCapacitySource): EventAvailabilityDetail;
|
|
118
|
+
/**
|
|
119
|
+
* An event as the browse surfaces see it: the aggregate capacity fields plus
|
|
120
|
+
* the delivery mode and the per-mode rows. `PublicEvent` satisfies it.
|
|
121
|
+
*/
|
|
122
|
+
export type HybridEventCapacitySource = EventWithAttendanceModes & {
|
|
123
|
+
deliveryMode?: PublicEvent['deliveryMode'];
|
|
124
|
+
};
|
|
125
|
+
/** Remaining places for each side of a hybrid event. */
|
|
126
|
+
export type HybridRemainingPlaces = Readonly<{
|
|
127
|
+
inPerson: RemainingPlaces;
|
|
128
|
+
online: RemainingPlaces;
|
|
129
|
+
}>;
|
|
130
|
+
/**
|
|
131
|
+
* Per-mode remaining places for a hybrid event, or `null` when the event is
|
|
132
|
+
* not hybrid or does not publish both rows — in which case the aggregate is
|
|
133
|
+
* all there is and the existing single-label helpers apply.
|
|
134
|
+
*/
|
|
135
|
+
export declare function getHybridAvailability(event: HybridEventCapacitySource): HybridRemainingPlaces | null;
|
|
136
|
+
/**
|
|
137
|
+
* The capacity row a whole-event decision should read: the most open
|
|
138
|
+
* attendance mode of a hybrid event, otherwise the aggregate. A hybrid event
|
|
139
|
+
* is sold out only when both of its modes are, and its waitlist is reachable
|
|
140
|
+
* when either full mode has one open.
|
|
141
|
+
*/
|
|
142
|
+
export declare function selectMostOpenCapacitySource(event: HybridEventCapacitySource): EventCapacitySource;
|
|
143
|
+
/** True when no attendance mode has room. Hybrid-aware; use this for sold-out decisions. */
|
|
144
|
+
export declare function isEventFull(event: HybridEventCapacitySource): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* True when the event is full on every mode and at least one of those full
|
|
147
|
+
* modes has a waitlist open. An event with a mode still bookable is not a
|
|
148
|
+
* waitlist prospect: it should send the visitor to that mode instead.
|
|
149
|
+
*/
|
|
150
|
+
export declare function canJoinEventWaitlistOnAnyMode(event: HybridEventCapacitySource): boolean;
|
|
151
|
+
/**
|
|
152
|
+
* The browse-surface label for an event's remaining places. Single-mode
|
|
153
|
+
* events get exactly the aggregate label {@link formatRemainingPlaces}
|
|
154
|
+
* produces, and so does a hybrid event whose two modes tell the same story.
|
|
155
|
+
* When the modes differ, both sides are named: "available" on a card is a
|
|
156
|
+
* promise the registration wizard would otherwise have to break.
|
|
157
|
+
*
|
|
158
|
+
* Hybrid examples, in person full with 3 online places left:
|
|
159
|
+
* default -> "Online: 3 places left · In person: Full"
|
|
160
|
+
* { full: 'Sold out' } -> "Online: 3 places left · In person: Sold out"
|
|
161
|
+
* { compact: true } -> "Online: 3 left"
|
|
162
|
+
*/
|
|
163
|
+
export declare function formatEventRemainingPlaces(event: HybridEventCapacitySource, wording?: RemainingPlacesWording): string | null;
|
|
164
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Booking call-to-action resolution for events: where an event links to and
|
|
3
|
+
* what the button says. Sold-out and waitlist decisions come from capacity.ts
|
|
4
|
+
* so cards, rows and the wizard never disagree.
|
|
5
|
+
*/
|
|
6
|
+
import type { PublicEvent } from '../../../../blocks/events/shared/types';
|
|
7
|
+
export type ResolvedEventCta = {
|
|
8
|
+
label: string;
|
|
9
|
+
href: string;
|
|
10
|
+
external: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* True when no booking CTA should render (e.g. sold out with no waitlist).
|
|
13
|
+
* This does NOT mean the event is unreachable: cards and rows link the
|
|
14
|
+
* title to the event page regardless, so a hidden CTA is never a dead end.
|
|
15
|
+
*/
|
|
16
|
+
hidden: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare function resolveEventHref(event: PublicEvent): string;
|
|
19
|
+
export declare function resolveEventLinkProps(event: PublicEvent): {
|
|
20
|
+
href: string;
|
|
21
|
+
target?: '_blank';
|
|
22
|
+
rel?: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Resolve the CTA state for an event.
|
|
26
|
+
* Shared by EventCard and EventCompactRow to keep sold-out, registration-closed,
|
|
27
|
+
* and course-specific defaults consistent.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveEventCta(event: PublicEvent, buttonText?: string | null): ResolvedEventCta;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Date and time presentation for events: the single place an event's
|
|
3
|
+
* timestamps become strings or date buckets. Calendar-grid primitives are
|
|
4
|
+
* re-exported from @riverbankcms/calendar so block code has one import.
|
|
5
|
+
*/
|
|
6
|
+
import type { PublicEvent } from '../../../../blocks/events/shared/types';
|
|
7
|
+
export { DAY_NAMES, MONTH_NAMES } from '../../../../../../../calendar/src/index';
|
|
8
|
+
export type { WeekStart } from '../../../../../../../calendar/src/index';
|
|
9
|
+
type DateTimeFormatOptions = {
|
|
10
|
+
/** When omitted, runtime local timezone is used. */
|
|
11
|
+
timeZone?: string | null;
|
|
12
|
+
locale?: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Format date for display.
|
|
16
|
+
* Returns: "Monday, January 15, 2025"
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatDate(isoTimestamp: string, options?: DateTimeFormatOptions): string;
|
|
19
|
+
/**
|
|
20
|
+
* Format time for display.
|
|
21
|
+
* Returns: "10:00 AM"
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatTime(isoTimestamp: string, options?: DateTimeFormatOptions): string;
|
|
24
|
+
export declare function formatEventDateParts(args: {
|
|
25
|
+
startsAt: string;
|
|
26
|
+
endsAt: string;
|
|
27
|
+
timeZone?: string | null;
|
|
28
|
+
locale?: string;
|
|
29
|
+
}): {
|
|
30
|
+
date: string;
|
|
31
|
+
timeRange: string;
|
|
32
|
+
};
|
|
33
|
+
export type EventCompactDateRail = Readonly<{
|
|
34
|
+
weekday: string;
|
|
35
|
+
day: string;
|
|
36
|
+
month: string;
|
|
37
|
+
label: string;
|
|
38
|
+
}>;
|
|
39
|
+
export declare function formatEventCompactDateRail(isoTimestamp: string, options?: DateTimeFormatOptions): EventCompactDateRail;
|
|
40
|
+
export { addDays, addMonths, buildCalendarViewport, formatCalendarTitle, formatDateKey, getEndOfMonth, getMonthCalendarDays, getOrderedDayNames, getStartOfMonth, getWeekCalendarDays, getWeekCalendarDayTuple, isToday, MAX_EVENTS_PER_DAY, shiftCalendarAnchorDate, } from '../../../../../../../calendar/src/index';
|
|
41
|
+
export type { CalendarDate, CalendarViewport, CalendarViewportKind, MonthCalendarViewport, WeekCalendarDays, WeekCalendarViewport, } from '../../../../../../../calendar/src/index';
|
|
42
|
+
/**
|
|
43
|
+
* Group events by their local date (YYYY-MM-DD key in each event's own
|
|
44
|
+
* timezone). Thin domain wrapper over `groupItemsByDate` from the calendar
|
|
45
|
+
* package; preserves the historical `Map<string, PublicEvent[]>` shape.
|
|
46
|
+
*/
|
|
47
|
+
export declare function groupEventsByDate(events: PublicEvent[], calendarTimeZone: string): Map<string, PublicEvent[]>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event domain helpers: pure functions that turn event data into strings,
|
|
3
|
+
* numbers, hrefs and decisions. One file per concept, no React.
|
|
4
|
+
*
|
|
5
|
+
* If you are about to format a date, a price, a name, a capacity count or a
|
|
6
|
+
* CTA for an event inline in a component, the function belongs here instead.
|
|
7
|
+
* Components in ../shared and the registration wizard import from this barrel.
|
|
8
|
+
*/
|
|
9
|
+
export * from './capacity';
|
|
10
|
+
export * from './cta';
|
|
11
|
+
export * from './dates';
|
|
12
|
+
export * from './destination';
|
|
13
|
+
export * from './people';
|
|
14
|
+
export * from './pricing';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* People presentation for events: teacher lines and name lists.
|
|
3
|
+
*/
|
|
4
|
+
import type { PublicEvent } from '../../../../blocks/events/shared/types';
|
|
5
|
+
export declare function formatTeamMemberNames(names: readonly string[]): string | null;
|
|
6
|
+
export declare function formatEventTeacherLine(event: PublicEvent): string | null;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type PublicEventPricing } from '../../../../../../../core/src/index';
|
|
2
|
+
import type { PublicEvent } from '../../../../blocks/events/shared/types';
|
|
3
|
+
/**
|
|
4
|
+
* Format event price for display.
|
|
5
|
+
* @returns "Free", "£25", "£12 - £25", "Free / £12 - £25", "Course (From £40)", etc.
|
|
6
|
+
*
|
|
7
|
+
* Events render compact amounts (no trailing ".00"); the actual ADT→string
|
|
8
|
+
* mapping lives in `formatBookingPriceDisplay` in @riverbankcms/core so all
|
|
9
|
+
* surfaces stay consistent.
|
|
10
|
+
*/
|
|
11
|
+
export declare function formatEventPrice(event: PublicEvent): string;
|
|
12
|
+
/**
|
|
13
|
+
* Format an event's price directly from its pricing value (without the full
|
|
14
|
+
* event). Same output as {@link formatEventPrice}.
|
|
15
|
+
*/
|
|
16
|
+
export declare function formatEventPriceDisplay(pricing: PublicEventPricing): string;
|
|
17
|
+
/**
|
|
18
|
+
* Format one exact money amount from the canonical Event pricing projection.
|
|
19
|
+
*
|
|
20
|
+
* Used where a surface has an amount rather than a whole pricing model — a
|
|
21
|
+
* discount line, a single run price. Amounts render exactly (trailing minor
|
|
22
|
+
* units kept) because these sit next to other exact figures.
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatEventPriceAmount(amount: number, currency: string, locale?: string): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Heading for an offering card or row. Links to the offering's page when one
|
|
4
|
+
* exists so a sold-out or closed offering stays reachable (issue 1372); the
|
|
5
|
+
* `.event-title-link` rule lives in theme-core's event-list.css.
|
|
6
|
+
*/
|
|
7
|
+
export declare function OfferingTitle({ className, path, title, }: Readonly<{
|
|
8
|
+
className: string;
|
|
9
|
+
path: string | null;
|
|
10
|
+
title: string;
|
|
11
|
+
}>): React.JSX.Element;
|