@riverbankcms/sdk 0.91.0 → 0.92.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PreviewEditorSidebar-3TT47WCF.mjs → PreviewEditorSidebar-3CI5MKV3.mjs} +2 -2
- package/dist/{PreviewEditorUI-ORCLLUNZ.mjs → PreviewEditorUI-DKEP636I.mjs} +2 -2
- package/dist/SdkPreviewModeRuntime-BRGRDQFH.mjs +8 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +13 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +1 -0
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +6 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -0
- package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +12 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +12 -0
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +4 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +44 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +8 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +40 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/components.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +9 -0
- package/dist/_dts/content-model/src/entry-slots/types.d.ts +110 -2
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/event-pricing.d.ts +18 -1
- package/dist/_dts/core/src/money-input.d.ts +34 -4
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +70 -0
- package/dist/_dts/media-core/src/fileAssetCompatibility.d.ts +1 -1
- package/dist/_dts/media-core/src/filePersistence.d.ts +5 -1
- package/dist/_dts/media-core/src/fileStorage.d.ts +1 -0
- package/dist/_dts/media-core/src/videoPrep.d.ts +15 -6
- package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +5 -5
- package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/commands/push/execute/localMediaReporting.d.ts +23 -0
- package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +54 -0
- package/dist/_dts/sdk/src/cli/commands/push/scopes/mediaPrep.d.ts +7 -2
- package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +6 -0
- package/dist/_dts/sdk/src/cli/media/local-sync.d.ts +35 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +23 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/{chunk-AFPMCLS7.mjs → chunk-6D7PLF4M.mjs} +1 -1
- package/dist/{chunk-RQUZYSES.mjs → chunk-I6EOKV6B.mjs} +520 -40
- package/dist/{chunk-S3YHJWEU.mjs → chunk-LERKJM3E.mjs} +5 -5
- package/dist/{chunk-GDT2QGIL.mjs → chunk-UOMTCHZD.mjs} +1 -1
- package/dist/cli/index.mjs +552 -80
- package/dist/client/{accordion-AFX37652.mjs → accordion-BUDH2G3S.mjs} +2 -2
- package/dist/client/{bookingForm-32V5QCOW.mjs → bookingForm-NQMCELVB.mjs} +89 -14
- package/dist/client/bookings.mjs +243 -17
- package/dist/client/{carousel-TJGQJ7ER.mjs → carousel-ONCEW6IJ.mjs} +3 -3
- package/dist/client/{cart-JUU2JEW4.mjs → cart-V2TCK2GI.mjs} +7 -7
- package/dist/client/{checkout-RD6BTFX4.mjs → checkout-ZI7SWNCS.mjs} +7 -7
- package/dist/client/{chunk-FMZZHAIR.mjs → chunk-AUMRQ242.mjs} +52 -5
- package/dist/client/{chunk-PMNAV6LO.mjs → chunk-B5UC2D6X.mjs} +7 -6
- package/dist/client/{chunk-6RN62XBV.mjs → chunk-ERQDHUS2.mjs} +1 -1
- package/dist/client/{chunk-RWYFG625.mjs → chunk-GH6IIOOE.mjs} +30 -2
- package/dist/client/{chunk-C4LP6BPG.mjs → chunk-HQWIJLYN.mjs} +1 -1
- package/dist/client/{chunk-RMOFBBNA.mjs → chunk-JXY6NHG6.mjs} +6 -6
- package/dist/client/{chunk-6QZIBNGV.mjs → chunk-KXYEKEV6.mjs} +154 -16
- package/dist/client/{chunk-E6VIWZUG.mjs → chunk-N2WJPTF7.mjs} +3 -3
- package/dist/client/{chunk-ISAUXU5R.mjs → chunk-QQNVQ62W.mjs} +1 -1
- package/dist/client/{chunk-MLBNVN4H.mjs → chunk-R3CZQLXF.mjs} +67 -4
- package/dist/client/{chunk-WHZQDPBZ.mjs → chunk-TNGL2WJF.mjs} +1 -0
- package/dist/client/{chunk-CKXEUWWA.mjs → chunk-ZJDBOLX7.mjs} +3 -3
- package/dist/client/client.mjs +515 -38
- package/dist/client/{courseRegistration-X63QAIVV.mjs → courseRegistration-JPWAQ6KM.mjs} +111 -11
- package/dist/client/{eventCalendar-5T24GCZL.mjs → eventCalendar-QDOCHBBV.mjs} +9 -9
- package/dist/client/{eventCombined-AZVTF22X.mjs → eventCombined-ZS2CXSIE.mjs} +9 -9
- package/dist/client/{eventDetails-7GPFNLGF.mjs → eventDetails-5LOBMPLN.mjs} +9 -9
- package/dist/client/{eventListing-QEUMTMUM.mjs → eventListing-SBGY4I3L.mjs} +9 -9
- package/dist/client/{eventRegistration-P2EDKCQZ.mjs → eventRegistration-XGPIU3Z2.mjs} +9 -9
- package/dist/client/{form-NUJ7H4IN.mjs → form-R7D4LZWW.mjs} +3 -3
- package/dist/client/{headerSection-JB7LECPL.mjs → headerSection-RRLYUCGC.mjs} +3 -3
- package/dist/client/hooks.mjs +22 -2
- package/dist/client/{locationMap-UEYWUCSW.mjs → locationMap-35ZJMRBZ.mjs} +3 -3
- package/dist/client/{newsletterForm-S2YZQ2X7.mjs → newsletterForm-MJ2VCFUT.mjs} +3 -3
- package/dist/client/{productDetail-H5MADGG7.mjs → productDetail-2O7YQNBX.mjs} +7 -7
- package/dist/client/{productList-DK7YON7H.mjs → productList-FDP5BH7W.mjs} +7 -7
- package/dist/client/rendering/client.mjs +495 -36
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +514 -37
- package/dist/client/{shop-6PA7RDRJ.mjs → shop-BGYJ3LDT.mjs} +7 -7
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-JP5347OB.mjs → sdk-runtime-B3TFXRXZ.mjs} +4 -4
- package/dist/server/components.mjs +166 -7
- package/dist/server/config-validation.mjs +23 -2
- package/dist/server/config.mjs +23 -2
- package/dist/server/data.mjs +22 -2
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +167 -8
- package/dist/server/page-converter.mjs +19 -2
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +166 -7
- package/dist/server/rendering.mjs +166 -7
- package/dist/server/routing.mjs +29 -5
- package/dist/server/server.mjs +23 -3
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-GMCDQPZZ.mjs +0 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, previewWidgetOverrides, canInspectSiteStyle, mapContentSchemaToFormFields, PreviewFormProvider, usePreviewBlockCustomizeSelectionOptional, BlockEditor, canApplySiteStyle, useBlockCustomizeControls, MAX_QUICK_MANIFEST_FIELDS } from './chunk-
|
|
3
|
-
import { useEntryController, useEditorUiStoreInstance, useUISelector, resolvePreviewSidebarTab, unsafeAsEditorBlockId, Tabs, TabsList, TabsTrigger, Button, X, TabsContent, useEditorUiStore, deriveRouteMetadataPresentation, resolvePageRouteSlug, createManifestValidation, createStoreBackend, ManifestForm, previewAssistantEnabled, Collapsible, CollapsibleTrigger, ChevronRight, CollapsibleContent, ContentFieldsForm, usePreviewDesignCoordinator, useSiteChromeCustomizeOptional, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, isPreviewingChange, createOptimisticActionRunner, syncStyleConfiguratorState, getCuratedSiteStyle, planSiteStylePreviewChange, openRow, previewSiteStyle, applyResolvedSelections, previewButtonPersonality, previewHeaderLayout, previewHeaderStyle, planSiteChromeLookSelection, previewFooterLook, buildSiteChromeLookModels, planSiteChromeFooterLayoutSelection, previewPaletteVariant, previewTypographyPreset, setTypographyBodyFontOverride, setTypographyHeadingFontOverride, clearTypographyFontOverrides, paletteOverridesSchema, setPaletteOverrides, toggleRow, cancelPreview, dismissWarnings, dismissNotices, deriveStyleConfiguratorCapabilities, buildApplySiteStyleSelectionBody, markApplyFailed, selectionSnapshotFromApplySiteStyleSelectionResponse, styleConfiguratorHistoryEntryForPersistedSelection, markApplySaved, unwrapResponse, markApplySaving, findButtonPersonality, findPaletteVariant, findTypographyPreset, getHeaderLayout, getHeaderStyle, getFooterLayout, findFooterLook, cycleSiteChromeLookId, resolveContentTitle, foldSubroute, SUBROUTE_KINDS, Smartphone, Tablet, Monitor, Maximize2, cn, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, listEntryPageContentSlots, ContentSpinner, Callout, CalloutDescription, curatedSiteStyles, ChevronLeft, cycleableSiteChromeOptions, requireEntriesForCuratedChoices, buttonPersonalities, typographyPresets, paletteVariants, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, FormRenderer, evaluateTypographyFontSlot, Separator, Surface, ColorPicker, Input } from './chunk-
|
|
2
|
+
import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, previewWidgetOverrides, canInspectSiteStyle, mapContentSchemaToFormFields, PreviewFormProvider, usePreviewBlockCustomizeSelectionOptional, BlockEditor, canApplySiteStyle, useBlockCustomizeControls, MAX_QUICK_MANIFEST_FIELDS } from './chunk-UOMTCHZD.mjs';
|
|
3
|
+
import { useEntryController, useEditorUiStoreInstance, useUISelector, resolvePreviewSidebarTab, unsafeAsEditorBlockId, Tabs, TabsList, TabsTrigger, Button, X, TabsContent, useEditorUiStore, deriveRouteMetadataPresentation, resolvePageRouteSlug, createManifestValidation, createStoreBackend, ManifestForm, previewAssistantEnabled, Collapsible, CollapsibleTrigger, ChevronRight, CollapsibleContent, ContentFieldsForm, usePreviewDesignCoordinator, useSiteChromeCustomizeOptional, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, isPreviewingChange, createOptimisticActionRunner, syncStyleConfiguratorState, getCuratedSiteStyle, planSiteStylePreviewChange, openRow, previewSiteStyle, applyResolvedSelections, previewButtonPersonality, previewHeaderLayout, previewHeaderStyle, planSiteChromeLookSelection, previewFooterLook, buildSiteChromeLookModels, planSiteChromeFooterLayoutSelection, previewPaletteVariant, previewTypographyPreset, setTypographyBodyFontOverride, setTypographyHeadingFontOverride, clearTypographyFontOverrides, paletteOverridesSchema, setPaletteOverrides, toggleRow, cancelPreview, dismissWarnings, dismissNotices, deriveStyleConfiguratorCapabilities, buildApplySiteStyleSelectionBody, markApplyFailed, selectionSnapshotFromApplySiteStyleSelectionResponse, styleConfiguratorHistoryEntryForPersistedSelection, markApplySaved, unwrapResponse, markApplySaving, findButtonPersonality, findPaletteVariant, findTypographyPreset, getHeaderLayout, getHeaderStyle, getFooterLayout, findFooterLook, cycleSiteChromeLookId, resolveContentTitle, foldSubroute, SUBROUTE_KINDS, Smartphone, Tablet, Monitor, Maximize2, cn, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, listEntryPageContentSlots, ContentSpinner, Callout, CalloutDescription, curatedSiteStyles, ChevronLeft, cycleableSiteChromeOptions, requireEntriesForCuratedChoices, buttonPersonalities, typographyPresets, paletteVariants, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, FormRenderer, evaluateTypographyFontSlot, Separator, Surface, ColorPicker, Input } from './chunk-I6EOKV6B.mjs';
|
|
4
4
|
import { usePreviewAuth, getDashboardUrl } from './chunk-ZA2S7H34.mjs';
|
|
5
5
|
import './chunk-R7POPVJR.mjs';
|
|
6
6
|
import { useMemo, useRef, useCallback, useEffect, useState, useTransition, useLayoutEffect, useSyncExternalStore, useId } from 'react';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab } from './chunk-
|
|
3
|
-
import { useEntryEditorController, useEditorUiStore, useMultiAutosave, usePreviewDesignHistoryOrder, useSiteChromeCustomizeOptional, selectPreviewDesignHistoryDomain, EditorChrome, previewDesignHistoryDomainForCommand, classifyHistoryShortcut, previewAssistantEnabled, unwrapResponse, cn, Dialog, Button, Palette, DialogContent, DialogHeader, DialogTitle, DialogDescription, TriangleAlert, Pencil, Sparkles, useEditorUiStoreInstance } from './chunk-
|
|
2
|
+
import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab } from './chunk-6D7PLF4M.mjs';
|
|
3
|
+
import { useEntryEditorController, useEditorUiStore, useMultiAutosave, usePreviewDesignHistoryOrder, useSiteChromeCustomizeOptional, selectPreviewDesignHistoryDomain, EditorChrome, previewDesignHistoryDomainForCommand, classifyHistoryShortcut, previewAssistantEnabled, unwrapResponse, cn, Dialog, Button, Palette, DialogContent, DialogHeader, DialogTitle, DialogDescription, TriangleAlert, Pencil, Sparkles, useEditorUiStoreInstance } from './chunk-I6EOKV6B.mjs';
|
|
4
4
|
import { usePreviewAuth } from './chunk-ZA2S7H34.mjs';
|
|
5
5
|
import './chunk-R7POPVJR.mjs';
|
|
6
6
|
import { useState, useMemo, useCallback, useEffect, useTransition } from 'react';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export { SdkPreviewModeRuntime } from './chunk-LERKJM3E.mjs';
|
|
3
|
+
import './chunk-U5YM4AWE.mjs';
|
|
4
|
+
import './chunk-UOMTCHZD.mjs';
|
|
5
|
+
import './chunk-6D7PLF4M.mjs';
|
|
6
|
+
import './chunk-I6EOKV6B.mjs';
|
|
7
|
+
import './chunk-ZA2S7H34.mjs';
|
|
8
|
+
import './chunk-R7POPVJR.mjs';
|
|
@@ -74,7 +74,7 @@ export type PublicBookingPaymentTermsAvailability = {
|
|
|
74
74
|
};
|
|
75
75
|
export type BookingPaymentDefaults = Record<BookingPaymentArchetype, BookingPaymentTermsConfig>;
|
|
76
76
|
export type BookingPricingRequirement = "none" | "required";
|
|
77
|
-
export type BookingPricingStrategy = "free" | "single" | "tiered";
|
|
77
|
+
export type BookingPricingStrategy = "free" | "single" | "tiered" | "sliding_scale";
|
|
78
78
|
export type BookingPricingAttendanceScope = "in_person" | "online" | "both";
|
|
79
79
|
export type BookingPricingOption = {
|
|
80
80
|
id: string;
|
|
@@ -105,6 +105,9 @@ export type BookingPricing = {
|
|
|
105
105
|
pricingStrategy: BookingPricingStrategy;
|
|
106
106
|
currency: string;
|
|
107
107
|
singlePriceAmount: number | null;
|
|
108
|
+
slidingMinAmount: number | null;
|
|
109
|
+
slidingMaxAmount: number | null;
|
|
110
|
+
slidingSuggestedAmount: number | null;
|
|
108
111
|
paymentTerms: BookingPaymentTermsConfig;
|
|
109
112
|
options: readonly BookingPricingOption[];
|
|
110
113
|
};
|
|
@@ -113,6 +116,9 @@ export type BookingPricingInput = {
|
|
|
113
116
|
pricingStrategy: BookingPricingStrategy;
|
|
114
117
|
currency: string;
|
|
115
118
|
singlePriceAmount?: number | null;
|
|
119
|
+
slidingMinAmount?: number | null;
|
|
120
|
+
slidingMaxAmount?: number | null;
|
|
121
|
+
slidingSuggestedAmount?: number | null;
|
|
116
122
|
paymentTerms?: BookingPaymentTermsConfig;
|
|
117
123
|
options?: readonly BookingPricingOptionInput[];
|
|
118
124
|
};
|
|
@@ -203,6 +209,9 @@ export type EventSeriesRecord = {
|
|
|
203
209
|
requiresPayment: boolean;
|
|
204
210
|
priceAmount: number | null;
|
|
205
211
|
priceCurrency: string | null;
|
|
212
|
+
slidingMinAmount: number | null;
|
|
213
|
+
slidingMaxAmount: number | null;
|
|
214
|
+
slidingSuggestedAmount: number | null;
|
|
206
215
|
acceptsPasses: boolean;
|
|
207
216
|
acceptsMemberships: boolean;
|
|
208
217
|
paymentTerms: BookingPaymentTermsConfig;
|
|
@@ -247,6 +256,9 @@ export type CreateEventSeriesRequest = {
|
|
|
247
256
|
paymentOptionsSource?: BookingPaymentOptionsSource;
|
|
248
257
|
requiresPayment?: boolean;
|
|
249
258
|
priceAmount?: number | null;
|
|
259
|
+
slidingMinAmount?: number | null;
|
|
260
|
+
slidingMaxAmount?: number | null;
|
|
261
|
+
slidingSuggestedAmount?: number | null;
|
|
250
262
|
acceptsPasses?: boolean;
|
|
251
263
|
acceptsMemberships?: boolean;
|
|
252
264
|
waitlistMode?: WaitlistOverride;
|
|
@@ -494,6 +494,7 @@ export type PublicCreateBookingAppointmentRequest = {
|
|
|
494
494
|
customFields: Record<string, unknown>;
|
|
495
495
|
timezone?: string;
|
|
496
496
|
discountCode?: string;
|
|
497
|
+
selectedSlidingAmount?: number;
|
|
497
498
|
selectedCollectionOptionKind?: "upfront" | "deferred_manual" | "instalment_plan" | "flexible_balance";
|
|
498
499
|
altchaSolution?: string | null;
|
|
499
500
|
successUrl?: string;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { type RefundCodeClassification } from './customerMembershipOutcomes';
|
|
2
|
-
export declare const STANDARD_LINE_ITEM_REFUND_INVALID_CODES: readonly ["missing_amount", "amount_exceeds_remaining", "credit_refunds_disabled", "missing_credit_customer", "deposit_refund_override_required", "refund_revoke_requires_full_line_refund", "unified_order_link_required"];
|
|
2
|
+
export declare const STANDARD_LINE_ITEM_REFUND_INVALID_CODES: readonly ["missing_amount", "invalid_amount", "amount_exceeds_remaining", "credit_refunds_disabled", "missing_credit_customer", "deposit_refund_override_required", "refund_revoke_requires_full_line_refund", "unified_order_link_required"];
|
|
3
3
|
export type StandardLineItemRefundInvalidCode = (typeof STANDARD_LINE_ITEM_REFUND_INVALID_CODES)[number];
|
|
4
|
-
export declare const EVENT_ATTENDEE_REFUND_INVALID_CODES: readonly ["manual_booking_not_refundable", "missing_amount", "amount_exceeds_remaining", "credit_refunds_disabled", "missing_credit_customer", "deposit_refund_override_required", "refund_revoke_requires_full_line_refund", "unified_order_link_required"];
|
|
4
|
+
export declare const EVENT_ATTENDEE_REFUND_INVALID_CODES: readonly ["manual_booking_not_refundable", "missing_amount", "invalid_amount", "amount_exceeds_remaining", "credit_refunds_disabled", "missing_credit_customer", "deposit_refund_override_required", "refund_revoke_requires_full_line_refund", "unified_order_link_required"];
|
|
5
5
|
export type EventAttendeeRefundInvalidCode = (typeof EVENT_ATTENDEE_REFUND_INVALID_CODES)[number];
|
|
6
|
-
export declare const CUSTOMER_PASS_REFUND_INVALID_CODES: readonly ["credit_refunds_disabled", "not_refundable", "amount_exceeds_remaining", "pass_revoke_requires_full_refund"];
|
|
6
|
+
export declare const CUSTOMER_PASS_REFUND_INVALID_CODES: readonly ["credit_refunds_disabled", "not_refundable", "invalid_amount", "amount_exceeds_remaining", "pass_revoke_requires_full_refund"];
|
|
7
7
|
export type CustomerPassRefundInvalidCode = (typeof CUSTOMER_PASS_REFUND_INVALID_CODES)[number];
|
|
8
|
-
export declare const CUSTOMER_PASS_REFUND_FAILED_CODES: readonly ["not_found", "credit_refunds_disabled", "payment_intent_lookup_failed", "already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context", "non_refundable_deposit_remaining"];
|
|
8
|
+
export declare const CUSTOMER_PASS_REFUND_FAILED_CODES: readonly ["not_found", "credit_refunds_disabled", "payment_intent_lookup_failed", "already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "invalid_amount", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context", "non_refundable_deposit_remaining"];
|
|
9
9
|
export type CustomerPassRefundFailedCode = (typeof CUSTOMER_PASS_REFUND_FAILED_CODES)[number];
|
|
10
10
|
export declare const CUSTOMER_PASS_REFUND_SKIPPED_CODES: readonly ["not_refundable"];
|
|
11
11
|
export type CustomerPassRefundSkippedCode = (typeof CUSTOMER_PASS_REFUND_SKIPPED_CODES)[number];
|
|
12
12
|
export type CustomerPassRefundErrorCode = CustomerPassRefundFailedCode | CustomerPassRefundSkippedCode;
|
|
13
|
-
export declare const EVENT_ATTENDEE_REFUND_FAILED_CODES: readonly ["not_found", "refund_not_allowed", "manual_booking_not_refundable", "missing_amount", "amount_exceeds_remaining", "credit_refunds_disabled", "missing_credit_customer", "deposit_refund_override_required", "refund_revoke_requires_full_line_refund", "unified_order_link_required", "already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context", "non_refundable_deposit_remaining"];
|
|
13
|
+
export declare const EVENT_ATTENDEE_REFUND_FAILED_CODES: readonly ["not_found", "refund_not_allowed", "manual_booking_not_refundable", "missing_amount", "invalid_amount", "amount_exceeds_remaining", "credit_refunds_disabled", "missing_credit_customer", "deposit_refund_override_required", "refund_revoke_requires_full_line_refund", "unified_order_link_required", "already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "invalid_amount", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context", "non_refundable_deposit_remaining"];
|
|
14
14
|
export type EventAttendeeRefundFailedCode = (typeof EVENT_ATTENDEE_REFUND_FAILED_CODES)[number];
|
|
15
|
-
export declare const COURSE_ENROLLMENT_REFUND_FAILED_CODES: readonly ["not_found", "missing_amount", "amount_exceeds_remaining", "credit_refunds_disabled", "missing_credit_customer", "deposit_refund_override_required", "refund_revoke_requires_full_line_refund", "unified_order_link_required", "already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context", "non_refundable_deposit_remaining"];
|
|
15
|
+
export declare const COURSE_ENROLLMENT_REFUND_FAILED_CODES: readonly ["not_found", "missing_amount", "invalid_amount", "amount_exceeds_remaining", "credit_refunds_disabled", "missing_credit_customer", "deposit_refund_override_required", "refund_revoke_requires_full_line_refund", "unified_order_link_required", "already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "invalid_amount", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context", "non_refundable_deposit_remaining"];
|
|
16
16
|
export type CourseEnrollmentRefundFailedCode = (typeof COURSE_ENROLLMENT_REFUND_FAILED_CODES)[number];
|
|
17
17
|
export declare function isCustomerPassRefundFailedCode(code: string): code is CustomerPassRefundFailedCode;
|
|
18
18
|
export declare function isEventAttendeeRefundFailedCode(code: string): code is EventAttendeeRefundFailedCode;
|
|
@@ -2,14 +2,14 @@ export declare const CUSTOMER_MEMBERSHIP_CANCELLATION_RESULT_KINDS: readonly ["a
|
|
|
2
2
|
export type CustomerMembershipCancellationResultKind = (typeof CUSTOMER_MEMBERSHIP_CANCELLATION_RESULT_KINDS)[number];
|
|
3
3
|
export declare const CANONICAL_REFUND_CONFLICT_CODES: readonly ["already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress"];
|
|
4
4
|
export type CanonicalRefundConflictCode = (typeof CANONICAL_REFUND_CONFLICT_CODES)[number];
|
|
5
|
-
export declare const CANONICAL_REFUND_PLANNER_ERROR_CODES: readonly ["already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed"];
|
|
5
|
+
export declare const CANONICAL_REFUND_PLANNER_ERROR_CODES: readonly ["already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "invalid_amount", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed"];
|
|
6
6
|
export type CanonicalRefundPlannerErrorCode = (typeof CANONICAL_REFUND_PLANNER_ERROR_CODES)[number];
|
|
7
|
-
export declare const CANONICAL_ADMIN_REFUND_FAILURE_CODES: readonly ["already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context", "non_refundable_deposit_remaining"];
|
|
7
|
+
export declare const CANONICAL_ADMIN_REFUND_FAILURE_CODES: readonly ["already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "invalid_amount", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context", "non_refundable_deposit_remaining"];
|
|
8
8
|
export type CanonicalAdminRefundFailureCode = (typeof CANONICAL_ADMIN_REFUND_FAILURE_CODES)[number];
|
|
9
9
|
export type CustomerMembershipPaymentRefundConflictCode = CanonicalRefundConflictCode;
|
|
10
|
-
export declare const CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_INVALID_CODES: readonly ["stripe_not_connected", "credit_refunds_disabled", "not_refundable", "amount_exceeds_remaining"];
|
|
10
|
+
export declare const CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_INVALID_CODES: readonly ["stripe_not_connected", "credit_refunds_disabled", "not_refundable", "invalid_amount", "amount_exceeds_remaining"];
|
|
11
11
|
export type CustomerMembershipPaymentRefundInvalidCode = (typeof CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_INVALID_CODES)[number];
|
|
12
|
-
export declare const CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES: readonly ["not_found", "stripe_not_connected", "credit_refunds_disabled", "invoice_not_found", "invoice_lookup_failed", "already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context"];
|
|
12
|
+
export declare const CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES: readonly ["not_found", "stripe_not_connected", "credit_refunds_disabled", "invoice_not_found", "invoice_lookup_failed", "already_refunded", "idempotency_amount_mismatch", "idempotency_method_mismatch", "refund_in_progress", "invalid_amount", "amount_exceeds_remaining", "pass_revoke_requires_full_refund", "refund_failed", "payment_intent_not_found", "stripe_error", "stale_pending_missing_context"];
|
|
13
13
|
export type CustomerMembershipPaymentRefundFailedCode = (typeof CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES)[number];
|
|
14
14
|
export declare const CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_SKIPPED_CODES: readonly ["not_refundable"];
|
|
15
15
|
export type CustomerMembershipPaymentRefundSkippedCode = (typeof CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_SKIPPED_CODES)[number];
|
|
@@ -305,6 +305,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
305
305
|
enrollInCourse: APIEndpoint<{
|
|
306
306
|
courseId: string;
|
|
307
307
|
pricingOptionId?: string;
|
|
308
|
+
selectedSlidingAmount?: number;
|
|
308
309
|
email: string;
|
|
309
310
|
name: string;
|
|
310
311
|
phone?: string;
|
|
@@ -394,6 +395,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
394
395
|
createCourseCheckout: APIEndpoint<{
|
|
395
396
|
courseId: string;
|
|
396
397
|
pricingOptionId?: string;
|
|
398
|
+
selectedSlidingAmount?: number;
|
|
397
399
|
email: string;
|
|
398
400
|
name: string;
|
|
399
401
|
phone?: string;
|
|
@@ -579,6 +581,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
579
581
|
type: "event_ticket";
|
|
580
582
|
occurrenceId: string;
|
|
581
583
|
ticketTypeId?: string;
|
|
584
|
+
selectedSlidingAmount?: number;
|
|
582
585
|
ticketCount: number;
|
|
583
586
|
attendeeInfo: {
|
|
584
587
|
email: string;
|
|
@@ -597,6 +600,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
597
600
|
type: "course_enrollment";
|
|
598
601
|
courseId: string;
|
|
599
602
|
pricingOptionId?: string;
|
|
603
|
+
selectedSlidingAmount?: number;
|
|
600
604
|
attendeeInfo: {
|
|
601
605
|
email: string;
|
|
602
606
|
name: string;
|
|
@@ -782,6 +786,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
782
786
|
registerForEvent: APIEndpoint<{
|
|
783
787
|
occurrenceId: string;
|
|
784
788
|
attendanceMode?: EventAttendanceMode;
|
|
789
|
+
selectedSlidingAmount?: number;
|
|
785
790
|
email: string;
|
|
786
791
|
name: string;
|
|
787
792
|
ticketsCount?: number;
|
|
@@ -841,6 +846,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
841
846
|
email: string;
|
|
842
847
|
ticketsCount?: number;
|
|
843
848
|
ticketTypeId?: string;
|
|
849
|
+
selectedSlidingAmount?: number;
|
|
844
850
|
}, {
|
|
845
851
|
siteId: string;
|
|
846
852
|
}, {
|
|
@@ -80,6 +80,14 @@ export declare const proofBlockIslandCodecs: {
|
|
|
80
80
|
title: string;
|
|
81
81
|
description?: string;
|
|
82
82
|
durationMinutes?: number;
|
|
83
|
+
pricing?: Readonly<{
|
|
84
|
+
pricingStrategy: "free" | "single" | "tiered" | "sliding_scale";
|
|
85
|
+
currency: string;
|
|
86
|
+
singlePriceAmount?: number | null;
|
|
87
|
+
slidingMinAmount?: number | null;
|
|
88
|
+
slidingMaxAmount?: number | null;
|
|
89
|
+
slidingSuggestedAmount?: number | null;
|
|
90
|
+
}>;
|
|
83
91
|
priceAmount?: number | null;
|
|
84
92
|
priceCurrency?: string | null;
|
|
85
93
|
paymentTerms?: import("../system/blocks/shared/bookingPaymentTerms").BlockBookingPaymentTerms;
|
|
@@ -165,6 +173,14 @@ export declare const proofBlockIslandCodecs: {
|
|
|
165
173
|
title: string;
|
|
166
174
|
description?: string;
|
|
167
175
|
durationMinutes?: number;
|
|
176
|
+
pricing?: Readonly<{
|
|
177
|
+
pricingStrategy: "free" | "single" | "tiered" | "sliding_scale";
|
|
178
|
+
currency: string;
|
|
179
|
+
singlePriceAmount?: number | null;
|
|
180
|
+
slidingMinAmount?: number | null;
|
|
181
|
+
slidingMaxAmount?: number | null;
|
|
182
|
+
slidingSuggestedAmount?: number | null;
|
|
183
|
+
}>;
|
|
168
184
|
priceAmount?: number | null;
|
|
169
185
|
priceCurrency?: string | null;
|
|
170
186
|
paymentTerms?: import("../system/blocks/shared/bookingPaymentTerms").BlockBookingPaymentTerms;
|
|
@@ -1134,6 +1150,14 @@ export declare const runtimeIslandCodecs: {
|
|
|
1134
1150
|
title: string;
|
|
1135
1151
|
description?: string;
|
|
1136
1152
|
durationMinutes?: number;
|
|
1153
|
+
pricing?: Readonly<{
|
|
1154
|
+
pricingStrategy: "free" | "single" | "tiered" | "sliding_scale";
|
|
1155
|
+
currency: string;
|
|
1156
|
+
singlePriceAmount?: number | null;
|
|
1157
|
+
slidingMinAmount?: number | null;
|
|
1158
|
+
slidingMaxAmount?: number | null;
|
|
1159
|
+
slidingSuggestedAmount?: number | null;
|
|
1160
|
+
}>;
|
|
1137
1161
|
priceAmount?: number | null;
|
|
1138
1162
|
priceCurrency?: string | null;
|
|
1139
1163
|
paymentTerms?: import("../system/blocks/shared/bookingPaymentTerms").BlockBookingPaymentTerms;
|
|
@@ -1219,6 +1243,14 @@ export declare const runtimeIslandCodecs: {
|
|
|
1219
1243
|
title: string;
|
|
1220
1244
|
description?: string;
|
|
1221
1245
|
durationMinutes?: number;
|
|
1246
|
+
pricing?: Readonly<{
|
|
1247
|
+
pricingStrategy: "free" | "single" | "tiered" | "sliding_scale";
|
|
1248
|
+
currency: string;
|
|
1249
|
+
singlePriceAmount?: number | null;
|
|
1250
|
+
slidingMinAmount?: number | null;
|
|
1251
|
+
slidingMaxAmount?: number | null;
|
|
1252
|
+
slidingSuggestedAmount?: number | null;
|
|
1253
|
+
}>;
|
|
1222
1254
|
priceAmount?: number | null;
|
|
1223
1255
|
priceCurrency?: string | null;
|
|
1224
1256
|
paymentTerms?: import("../system/blocks/shared/bookingPaymentTerms").BlockBookingPaymentTerms;
|
|
@@ -11,6 +11,11 @@ export type CoursePriceDisplay = Readonly<{
|
|
|
11
11
|
kind: 'from';
|
|
12
12
|
amount: number;
|
|
13
13
|
currency: string;
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
kind: 'range';
|
|
16
|
+
minAmount: number;
|
|
17
|
+
maxAmount: number;
|
|
18
|
+
currency: string;
|
|
14
19
|
}> | Readonly<{
|
|
15
20
|
kind: 'unavailable';
|
|
16
21
|
currency: string;
|
|
@@ -21,6 +26,12 @@ export type ResolvedCoursePricingState = Readonly<{
|
|
|
21
26
|
selectableOptions: readonly CoursePricingOption[];
|
|
22
27
|
requiresSelection: boolean;
|
|
23
28
|
selectedOption: CoursePricingOption | null;
|
|
29
|
+
slidingScale: Readonly<{
|
|
30
|
+
minAmount: number;
|
|
31
|
+
maxAmount: number;
|
|
32
|
+
suggestedAmount: number | null;
|
|
33
|
+
}> | null;
|
|
34
|
+
selectedSlidingAmount: number | null;
|
|
24
35
|
selectedPriceAmount: number | null;
|
|
25
36
|
selectedRequiresPayment: boolean;
|
|
26
37
|
hasPaidSelection: boolean;
|
|
@@ -32,7 +43,7 @@ type CourseCurrencyFormatOptions = Readonly<{
|
|
|
32
43
|
maximumFractionDigits?: number;
|
|
33
44
|
}>;
|
|
34
45
|
export declare function getSelectableCoursePricingOptions(course: Pick<PublicCourse, 'pricing'>, nowInput?: PlanningDateInput): readonly CoursePricingOption[];
|
|
35
|
-
export declare function resolveCoursePricingState(course: Pick<PublicCourse, 'pricing' | 'priceCents' | 'currency'>, selectedPricingOptionId?: string | null, nowInput?: PlanningDateInput): ResolvedCoursePricingState;
|
|
46
|
+
export declare function resolveCoursePricingState(course: Pick<PublicCourse, 'pricing' | 'priceCents' | 'currency'>, selectedPricingOptionId?: string | null, selectedSlidingAmountOrNowInput?: number | null | PlanningDateInput, nowInput?: PlanningDateInput): ResolvedCoursePricingState;
|
|
36
47
|
export declare function formatCoursePriceDisplay(display: CoursePriceDisplay, locale?: string): string;
|
|
37
48
|
export declare function formatCourseCurrencyAmount(amount: number, currency: string, options?: CourseCurrencyFormatOptions): string;
|
|
38
49
|
export declare function formatCoursePriceAmount(amount: number, currency: string, locale?: string): string;
|
|
@@ -48,11 +48,15 @@ export declare const coursePricingSchema: z.ZodObject<{
|
|
|
48
48
|
}>;
|
|
49
49
|
pricingStrategy: z.ZodEnum<{
|
|
50
50
|
single: "single";
|
|
51
|
+
sliding_scale: "sliding_scale";
|
|
51
52
|
free: "free";
|
|
52
53
|
tiered: "tiered";
|
|
53
54
|
}>;
|
|
54
55
|
currency: z.ZodString;
|
|
55
56
|
singlePriceAmount: z.ZodNullable<z.ZodNumber>;
|
|
57
|
+
slidingMinAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
58
|
+
slidingMaxAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
59
|
+
slidingSuggestedAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
56
60
|
paymentTerms: z.ZodObject<{
|
|
57
61
|
allowedOptions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
58
62
|
kind: z.ZodLiteral<"upfront">;
|
|
@@ -155,11 +159,15 @@ export declare const publicCourseSchema: z.ZodObject<{
|
|
|
155
159
|
}>;
|
|
156
160
|
pricingStrategy: z.ZodEnum<{
|
|
157
161
|
single: "single";
|
|
162
|
+
sliding_scale: "sliding_scale";
|
|
158
163
|
free: "free";
|
|
159
164
|
tiered: "tiered";
|
|
160
165
|
}>;
|
|
161
166
|
currency: z.ZodString;
|
|
162
167
|
singlePriceAmount: z.ZodNullable<z.ZodNumber>;
|
|
168
|
+
slidingMinAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
169
|
+
slidingMaxAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
170
|
+
slidingSuggestedAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
163
171
|
paymentTerms: z.ZodObject<{
|
|
164
172
|
allowedOptions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
165
173
|
kind: z.ZodLiteral<"upfront">;
|
|
@@ -351,11 +359,15 @@ export declare const publicCoursesArraySchema: z.ZodArray<z.ZodObject<{
|
|
|
351
359
|
}>;
|
|
352
360
|
pricingStrategy: z.ZodEnum<{
|
|
353
361
|
single: "single";
|
|
362
|
+
sliding_scale: "sliding_scale";
|
|
354
363
|
free: "free";
|
|
355
364
|
tiered: "tiered";
|
|
356
365
|
}>;
|
|
357
366
|
currency: z.ZodString;
|
|
358
367
|
singlePriceAmount: z.ZodNullable<z.ZodNumber>;
|
|
368
|
+
slidingMinAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
369
|
+
slidingMaxAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
370
|
+
slidingSuggestedAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
359
371
|
paymentTerms: z.ZodObject<{
|
|
360
372
|
allowedOptions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
361
373
|
kind: z.ZodLiteral<"upfront">;
|
|
@@ -40,9 +40,12 @@ export type CoursePricingOption = {
|
|
|
40
40
|
};
|
|
41
41
|
export type CoursePricing = {
|
|
42
42
|
bookingRequirement: 'none' | 'required';
|
|
43
|
-
pricingStrategy: 'free' | 'single' | 'tiered';
|
|
43
|
+
pricingStrategy: 'free' | 'single' | 'tiered' | 'sliding_scale';
|
|
44
44
|
currency: string;
|
|
45
45
|
singlePriceAmount: number | null;
|
|
46
|
+
slidingMinAmount?: number | null;
|
|
47
|
+
slidingMaxAmount?: number | null;
|
|
48
|
+
slidingSuggestedAmount?: number | null;
|
|
46
49
|
paymentTerms: BlockBookingPaymentTerms;
|
|
47
50
|
options: readonly CoursePricingOption[];
|
|
48
51
|
};
|
|
@@ -305,6 +305,18 @@ export declare const publicEventPricingSchema: z.ZodDiscriminatedUnion<[z.ZodObj
|
|
|
305
305
|
kind: z.ZodLiteral<"unavailable">;
|
|
306
306
|
currency: z.ZodString;
|
|
307
307
|
}, z.core.$strip>]>;
|
|
308
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
309
|
+
kind: z.ZodLiteral<"sliding_scale">;
|
|
310
|
+
minAmount: z.ZodNumber;
|
|
311
|
+
maxAmount: z.ZodNumber;
|
|
312
|
+
suggestedAmount: z.ZodNullable<z.ZodNumber>;
|
|
313
|
+
currency: z.ZodString;
|
|
314
|
+
display: z.ZodObject<{
|
|
315
|
+
kind: z.ZodLiteral<"range">;
|
|
316
|
+
minAmount: z.ZodNumber;
|
|
317
|
+
maxAmount: z.ZodNumber;
|
|
318
|
+
currency: z.ZodString;
|
|
319
|
+
}, z.core.$strip>;
|
|
308
320
|
}, z.core.$strip>, z.ZodObject<{
|
|
309
321
|
kind: z.ZodLiteral<"course">;
|
|
310
322
|
display: z.ZodObject<{
|
|
@@ -788,6 +800,18 @@ export declare const publicEventSchema: z.ZodObject<{
|
|
|
788
800
|
kind: z.ZodLiteral<"unavailable">;
|
|
789
801
|
currency: z.ZodString;
|
|
790
802
|
}, z.core.$strip>]>;
|
|
803
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
804
|
+
kind: z.ZodLiteral<"sliding_scale">;
|
|
805
|
+
minAmount: z.ZodNumber;
|
|
806
|
+
maxAmount: z.ZodNumber;
|
|
807
|
+
suggestedAmount: z.ZodNullable<z.ZodNumber>;
|
|
808
|
+
currency: z.ZodString;
|
|
809
|
+
display: z.ZodObject<{
|
|
810
|
+
kind: z.ZodLiteral<"range">;
|
|
811
|
+
minAmount: z.ZodNumber;
|
|
812
|
+
maxAmount: z.ZodNumber;
|
|
813
|
+
currency: z.ZodString;
|
|
814
|
+
}, z.core.$strip>;
|
|
791
815
|
}, z.core.$strip>, z.ZodObject<{
|
|
792
816
|
kind: z.ZodLiteral<"course">;
|
|
793
817
|
display: z.ZodObject<{
|
|
@@ -894,11 +918,15 @@ export declare const publicEventSchema: z.ZodObject<{
|
|
|
894
918
|
}>;
|
|
895
919
|
pricingStrategy: z.ZodEnum<{
|
|
896
920
|
single: "single";
|
|
921
|
+
sliding_scale: "sliding_scale";
|
|
897
922
|
free: "free";
|
|
898
923
|
tiered: "tiered";
|
|
899
924
|
}>;
|
|
900
925
|
currency: z.ZodString;
|
|
901
926
|
singlePriceAmount: z.ZodNullable<z.ZodNumber>;
|
|
927
|
+
slidingMinAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
928
|
+
slidingMaxAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
929
|
+
slidingSuggestedAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
902
930
|
paymentTerms: z.ZodObject<{
|
|
903
931
|
allowedOptions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
904
932
|
kind: z.ZodLiteral<"upfront">;
|
|
@@ -1432,6 +1460,18 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodObject<{
|
|
|
1432
1460
|
kind: z.ZodLiteral<"unavailable">;
|
|
1433
1461
|
currency: z.ZodString;
|
|
1434
1462
|
}, z.core.$strip>]>;
|
|
1463
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1464
|
+
kind: z.ZodLiteral<"sliding_scale">;
|
|
1465
|
+
minAmount: z.ZodNumber;
|
|
1466
|
+
maxAmount: z.ZodNumber;
|
|
1467
|
+
suggestedAmount: z.ZodNullable<z.ZodNumber>;
|
|
1468
|
+
currency: z.ZodString;
|
|
1469
|
+
display: z.ZodObject<{
|
|
1470
|
+
kind: z.ZodLiteral<"range">;
|
|
1471
|
+
minAmount: z.ZodNumber;
|
|
1472
|
+
maxAmount: z.ZodNumber;
|
|
1473
|
+
currency: z.ZodString;
|
|
1474
|
+
}, z.core.$strip>;
|
|
1435
1475
|
}, z.core.$strip>, z.ZodObject<{
|
|
1436
1476
|
kind: z.ZodLiteral<"course">;
|
|
1437
1477
|
display: z.ZodObject<{
|
|
@@ -1538,11 +1578,15 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodObject<{
|
|
|
1538
1578
|
}>;
|
|
1539
1579
|
pricingStrategy: z.ZodEnum<{
|
|
1540
1580
|
single: "single";
|
|
1581
|
+
sliding_scale: "sliding_scale";
|
|
1541
1582
|
free: "free";
|
|
1542
1583
|
tiered: "tiered";
|
|
1543
1584
|
}>;
|
|
1544
1585
|
currency: z.ZodString;
|
|
1545
1586
|
singlePriceAmount: z.ZodNullable<z.ZodNumber>;
|
|
1587
|
+
slidingMinAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1588
|
+
slidingMaxAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1589
|
+
slidingSuggestedAmount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
1546
1590
|
paymentTerms: z.ZodObject<{
|
|
1547
1591
|
allowedOptions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
1548
1592
|
kind: z.ZodLiteral<"upfront">;
|
|
@@ -210,6 +210,11 @@ export type PassthroughFieldValidationPlan = PlanBase<"passthrough", "unknown",
|
|
|
210
210
|
fieldType: "presetOrCustom" | "contentTypeSelect" | "entryPicker";
|
|
211
211
|
}>;
|
|
212
212
|
export type FieldValidationPlan = StringFieldValidationPlan | NumberFieldValidationPlan | BooleanFieldValidationPlan | RichTextFieldValidationPlan | MediaFieldValidationPlan | LinkFieldValidationPlan | SelectFieldValidationPlan | RepeaterFieldValidationPlan | GroupFieldValidationPlan | PassthroughFieldValidationPlan;
|
|
213
|
+
export type FieldPresence = Readonly<{
|
|
214
|
+
kind: "required";
|
|
215
|
+
}> | Readonly<{
|
|
216
|
+
kind: "optional";
|
|
217
|
+
}>;
|
|
213
218
|
export type RepeatedItemValidationPlan = Readonly<{
|
|
214
219
|
typeId: string;
|
|
215
220
|
fields: readonly FieldValidationPlan[];
|
|
@@ -225,6 +230,8 @@ export declare function normalizeFieldInput(plan: FieldValidationPlan, value: un
|
|
|
225
230
|
export declare function normalizeStoredContentValues(plans: readonly FieldValidationPlan[], content: unknown, options?: FieldValidationOptions): Record<string, unknown>;
|
|
226
231
|
export declare function validateFieldValue(plan: FieldValidationPlan, value: unknown, options?: FieldValidationOptions): FieldValidationIssue[];
|
|
227
232
|
export declare function fieldPlanToZod(plan: FieldValidationPlan, options?: FieldValidationOptions): z.ZodTypeAny;
|
|
233
|
+
export declare function fieldPresenceForPlan(plan: Pick<FieldValidationPlan, "required">): FieldPresence;
|
|
234
|
+
export declare function fieldPlanToObjectPropertyZod(plan: FieldValidationPlan, options?: FieldValidationOptions): z.ZodTypeAny;
|
|
228
235
|
export declare function resolveFieldValidationDescriptor(plans: readonly FieldValidationPlan[], path: FieldPath): FieldValidationDescriptor | null;
|
|
229
236
|
export declare function validateManifestValues(fields: readonly FieldDefinition[], values: Record<string, unknown>, options?: FieldValidationOptions): FieldValidationIssue[];
|
|
230
237
|
export declare function validateManifestContentForPush(fields: readonly FieldDefinition[], values: Record<string, unknown>, options?: FieldValidationOptions): ManifestContentValidationResult;
|
|
@@ -116,6 +116,7 @@ export interface BookingSubmitRequest {
|
|
|
116
116
|
customFields: Record<string, unknown>;
|
|
117
117
|
timezone: string;
|
|
118
118
|
discountCode?: string;
|
|
119
|
+
selectedSlidingAmount?: number;
|
|
119
120
|
selectedCollectionOptionKind?: "upfront" | "deferred_manual" | "instalment_plan" | "flexible_balance";
|
|
120
121
|
altchaSolution?: string | null;
|
|
121
122
|
successUrl?: string;
|
|
@@ -212,6 +213,7 @@ export interface BookingService {
|
|
|
212
213
|
title: string;
|
|
213
214
|
description?: string;
|
|
214
215
|
durationMinutes?: number;
|
|
216
|
+
pricing?: import("../nodes/booking-form.state").BookingFormServicePricing;
|
|
215
217
|
priceAmount?: number | null;
|
|
216
218
|
priceCurrency?: string | null;
|
|
217
219
|
paymentTerms?: import("../../blocks/shared/bookingPaymentTerms").BlockBookingPaymentTerms;
|
|
@@ -339,6 +341,7 @@ export interface EventRegisterRequest {
|
|
|
339
341
|
occurrenceId: string;
|
|
340
342
|
attendanceMode?: 'in_person' | 'online';
|
|
341
343
|
ticketTypeId?: string;
|
|
344
|
+
selectedSlidingAmount?: number;
|
|
342
345
|
email: string;
|
|
343
346
|
name: string;
|
|
344
347
|
ticketsCount: number;
|
|
@@ -424,6 +427,7 @@ export interface EligibilityCheckRequest {
|
|
|
424
427
|
occurrenceId: string;
|
|
425
428
|
attendanceMode?: 'in_person' | 'online';
|
|
426
429
|
ticketTypeId?: string;
|
|
430
|
+
selectedSlidingAmount?: number;
|
|
427
431
|
email: string;
|
|
428
432
|
ticketsCount: number;
|
|
429
433
|
}
|
|
@@ -436,7 +440,7 @@ export interface EligibilityCheckResponse {
|
|
|
436
440
|
membership: EligibleMembership | null;
|
|
437
441
|
passes: EligiblePass[];
|
|
438
442
|
requiresPayment: boolean;
|
|
439
|
-
pricingMode?: "single" | "ticket_types";
|
|
443
|
+
pricingMode?: "single" | "ticket_types" | "sliding_scale";
|
|
440
444
|
selectedTicketTypeId?: string | null;
|
|
441
445
|
ticketTypes?: EligibilityEventTicketType[];
|
|
442
446
|
eventPrice: number | null;
|
|
@@ -469,6 +473,7 @@ export interface CourseEnrollRequest {
|
|
|
469
473
|
siteId: string;
|
|
470
474
|
courseId: string;
|
|
471
475
|
pricingOptionId?: string;
|
|
476
|
+
selectedSlidingAmount?: number;
|
|
472
477
|
email: string;
|
|
473
478
|
name: string;
|
|
474
479
|
phone?: string;
|
|
@@ -528,6 +533,7 @@ export interface CourseCheckoutRequest {
|
|
|
528
533
|
siteId: string;
|
|
529
534
|
courseId: string;
|
|
530
535
|
pricingOptionId?: string;
|
|
536
|
+
selectedSlidingAmount?: number;
|
|
531
537
|
email: string;
|
|
532
538
|
name: string;
|
|
533
539
|
phone?: string;
|
|
@@ -744,6 +750,7 @@ export type UnifiedCheckoutItem = {
|
|
|
744
750
|
type: "course_enrollment";
|
|
745
751
|
courseId: string;
|
|
746
752
|
pricingOptionId?: string;
|
|
753
|
+
selectedSlidingAmount?: number;
|
|
747
754
|
attendeeInfo: {
|
|
748
755
|
email: string;
|
|
749
756
|
name: string;
|
|
@@ -3,7 +3,7 @@ import { type BlockApiConfig } from "../api";
|
|
|
3
3
|
import type { AutoAppliedDiscountPreview } from "../api/types";
|
|
4
4
|
import type { BookingFormConfig, BookingFormData, BookingFormService, BookingSelectedCollectionOptionKind } from "../nodes/booking-form.state";
|
|
5
5
|
import { type BookingPaymentSelectionViewModel } from "../shared/bookingPaymentOptions";
|
|
6
|
-
import { createBookingBlockApiConfig, type BookingAppointmentPackagesModel, type BookingFieldValue, type BookingFieldView, type BookingFlowActionResult, type BookingFlowFeedback, type BookingFlowStatus, type BookingFlowView, type BookingResourceView, type BookingFlowStep, type BookingFlowStepId, type BookingSlotSelection, type BookingSlotView, type BookingSubmitActionResult, type BookingSubmitOptions, type LoadState } from "./useHeadlessBookingFlow.state";
|
|
6
|
+
import { createBookingBlockApiConfig, type BookingAppointmentPackagesModel, type BookingFieldValue, type BookingFieldView, type BookingFlowActionResult, type BookingFlowFeedback, type BookingFlowStatus, type BookingFlowView, type BookingResourceView, type BookingFlowStep, type BookingFlowStepId, type BookingSlotSelection, type BookingSlotView, type BookingSubmitActionResult, type BookingSubmitOptions, getBookingServiceSlidingScale, type LoadState } from "./useHeadlessBookingFlow.state";
|
|
7
7
|
export type { BlockApiConfig };
|
|
8
8
|
export type { BookingAppointmentPackagesModel };
|
|
9
9
|
export { createBookingBlockApiConfig };
|
|
@@ -61,6 +61,9 @@ export type BookingPaymentModel = Readonly<{
|
|
|
61
61
|
selection: null;
|
|
62
62
|
selectedCollectionOptionKind?: BookingSelectedCollectionOptionKind;
|
|
63
63
|
selectedAppointmentPackageId?: string;
|
|
64
|
+
selectedSlidingAmountInput: string;
|
|
65
|
+
selectedSlidingAmount: number | null;
|
|
66
|
+
slidingScale: ReturnType<typeof getBookingServiceSlidingScale>;
|
|
64
67
|
appointmentPackages: BookingAppointmentPackagesModel;
|
|
65
68
|
errorMessage: string;
|
|
66
69
|
}> | Readonly<{
|
|
@@ -69,6 +72,9 @@ export type BookingPaymentModel = Readonly<{
|
|
|
69
72
|
selection: BookingPaymentSelectionViewModel | null;
|
|
70
73
|
selectedCollectionOptionKind?: BookingSelectedCollectionOptionKind;
|
|
71
74
|
selectedAppointmentPackageId?: string;
|
|
75
|
+
selectedSlidingAmountInput: string;
|
|
76
|
+
selectedSlidingAmount: number | null;
|
|
77
|
+
slidingScale: ReturnType<typeof getBookingServiceSlidingScale>;
|
|
72
78
|
appointmentPackages: BookingAppointmentPackagesModel;
|
|
73
79
|
}>;
|
|
74
80
|
export type BookingDiscountModel = Readonly<{
|
|
@@ -101,6 +107,7 @@ export type BookingFlowActions = Readonly<{
|
|
|
101
107
|
markFieldTouched: (fieldId: string) => void;
|
|
102
108
|
selectPaymentOption: (kind: BookingSelectedCollectionOptionKind | null) => void;
|
|
103
109
|
selectAppointmentPackage: (packageId: string | null) => void;
|
|
110
|
+
setSlidingAmountInput: (value: string) => void;
|
|
104
111
|
setDiscountCode: (code: string) => void;
|
|
105
112
|
clearDiscountCode: () => void;
|
|
106
113
|
setAltchaSolution: (solution: string | null) => void;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export { unsafeAsBookingFieldId, bookingFlowReducer, buildBookingAvailabilityQuery, buildBookingStepPlan, buildBookingSubmitPlan, createBookingBlockApiConfig, createEmptyBookingValidationErrors, createFieldBookingValidationErrors, createFormBookingValidationError, createInitialBookingFlowReducerState, describeUnknownError, deriveBookingFieldViews, deriveBookingFlowSteps, getAppointmentBookingOverrideInput, hasBookingValidationErrors, resolveAppointmentPackagesModel, resolveAvailabilitySelectionInvalidation, resolveHeadlessBookingStatus, resolveHeadlessBookingView, toBookingFormData, toBookingSlotView, toBookingSlotViews, toOptionalAppointmentResourceId, toOptionalAppointmentServiceId, validateBookingField, validateBookingFields, validateBookingStep, } from "../nodes/booking-form.headless.state";
|
|
2
|
+
export { formatBookingCentsAsCurrencyInput, getBookingServiceSlidingScale, parseBookingCurrencyInputToCents, } from "../nodes/booking-form.state";
|
|
2
3
|
export type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, AppointmentBookingOverridePropsLike, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingFieldId, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourceView, BookingSlotSelection, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, LoadState, } from "../nodes/booking-form.headless.state";
|
|
@@ -167,6 +167,7 @@ export type BookingFlowReducerState = Readonly<{
|
|
|
167
167
|
fieldValues: Readonly<Record<string, BookingFieldValue>>;
|
|
168
168
|
touchedFields: Readonly<Record<string, boolean>>;
|
|
169
169
|
discountCode: string;
|
|
170
|
+
selectedSlidingAmountInput: string;
|
|
170
171
|
selectedCollectionOptionKind?: BookingSelectedCollectionOptionKind;
|
|
171
172
|
selectedAppointmentPackageId?: CustomerPassId;
|
|
172
173
|
altchaSolution: string | null;
|
|
@@ -195,6 +196,9 @@ export type BookingFlowEvent = Readonly<{
|
|
|
195
196
|
}> | Readonly<{
|
|
196
197
|
type: "payment-option-selected";
|
|
197
198
|
kind: BookingSelectedCollectionOptionKind | null;
|
|
199
|
+
}> | Readonly<{
|
|
200
|
+
type: "sliding-amount-changed";
|
|
201
|
+
value: string;
|
|
198
202
|
}> | Readonly<{
|
|
199
203
|
type: "appointment-package-selected";
|
|
200
204
|
packageId: CustomerPassId | null;
|