@riverbankcms/sdk 0.90.1 → 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.
Files changed (113) hide show
  1. package/dist/{PreviewEditorSidebar-FNFRVSIM.mjs → PreviewEditorSidebar-3CI5MKV3.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-3WXJFQXG.mjs → PreviewEditorUI-DKEP636I.mjs} +3 -3
  3. package/dist/SdkPreviewModeRuntime-BRGRDQFH.mjs +8 -0
  4. package/dist/_dts/api/src/bookingConfig.d.ts +13 -1
  5. package/dist/_dts/api/src/bookingOperations.d.ts +1 -0
  6. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  7. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
  8. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +6 -0
  9. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -0
  10. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +12 -1
  11. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +12 -0
  12. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +4 -1
  13. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +44 -0
  14. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +24 -0
  15. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +8 -1
  16. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
  17. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -0
  18. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +4 -0
  19. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +40 -0
  20. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
  21. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +29 -0
  22. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +1 -0
  23. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/components.d.ts +6 -0
  24. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +8 -0
  25. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +8 -0
  26. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +1 -0
  27. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -1
  28. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +1 -0
  29. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +9 -0
  30. package/dist/_dts/content-model/src/entry-slots/types.d.ts +110 -2
  31. package/dist/_dts/core/src/branded.d.ts +3 -0
  32. package/dist/_dts/core/src/event-pricing.d.ts +18 -1
  33. package/dist/_dts/core/src/money-input.d.ts +34 -4
  34. package/dist/_dts/core/src/string.d.ts +12 -0
  35. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +70 -0
  36. package/dist/_dts/media-core/src/fileAssetCompatibility.d.ts +1 -1
  37. package/dist/_dts/media-core/src/filePersistence.d.ts +5 -1
  38. package/dist/_dts/media-core/src/fileStorage.d.ts +1 -0
  39. package/dist/_dts/media-core/src/videoPrep.d.ts +15 -6
  40. package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +5 -5
  41. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +2 -0
  42. package/dist/_dts/sdk/src/cli/commands/push/execute/localMediaReporting.d.ts +23 -0
  43. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +54 -0
  44. package/dist/_dts/sdk/src/cli/commands/push/scopes/mediaPrep.d.ts +7 -2
  45. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +6 -0
  46. package/dist/_dts/sdk/src/cli/media/local-sync.d.ts +35 -0
  47. package/dist/_dts/sdk/src/cli/sync/validation.d.ts +2 -2
  48. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +23 -1
  49. package/dist/_dts/sdk/src/version.d.ts +1 -1
  50. package/dist/{chunk-SYYJZPKU.mjs → chunk-6D7PLF4M.mjs} +2 -2
  51. package/dist/{chunk-CR2VX432.mjs → chunk-I6EOKV6B.mjs} +568 -76
  52. package/dist/{chunk-FA6LVZ7C.mjs → chunk-LERKJM3E.mjs} +7 -7
  53. package/dist/{chunk-UG7I7S7W.mjs → chunk-U5YM4AWE.mjs} +1 -1
  54. package/dist/{chunk-H6TT5ZXI.mjs → chunk-UOMTCHZD.mjs} +1 -1
  55. package/dist/{chunk-BOQXMCSP.mjs → chunk-ZA2S7H34.mjs} +3 -3
  56. package/dist/cli/index.mjs +755 -414
  57. package/dist/cli/init-docs/content/workflow-add-block.md +48 -0
  58. package/dist/cli/init-docs/content/workflow-custom-block.md +10 -0
  59. package/dist/client/{accordion-4K7VGZ3I.mjs → accordion-BUDH2G3S.mjs} +2 -2
  60. package/dist/client/{bookingForm-3QXA3CIS.mjs → bookingForm-NQMCELVB.mjs} +90 -15
  61. package/dist/client/bookings.mjs +259 -32
  62. package/dist/client/{carousel-BEJKNGQ7.mjs → carousel-ONCEW6IJ.mjs} +3 -3
  63. package/dist/client/{cart-44BBM6XG.mjs → cart-V2TCK2GI.mjs} +7 -7
  64. package/dist/client/{checkout-THMHEYKF.mjs → checkout-ZI7SWNCS.mjs} +7 -7
  65. package/dist/client/{chunk-PEDNDLPB.mjs → chunk-AUMRQ242.mjs} +52 -5
  66. package/dist/client/{chunk-EJBHK74Y.mjs → chunk-B5UC2D6X.mjs} +7 -6
  67. package/dist/client/{chunk-DQIRKNZE.mjs → chunk-ERQDHUS2.mjs} +1 -1
  68. package/dist/client/{chunk-3H5CLFKT.mjs → chunk-GH6IIOOE.mjs} +39 -10
  69. package/dist/client/{chunk-ZIAF2DA4.mjs → chunk-HQWIJLYN.mjs} +1 -1
  70. package/dist/client/{chunk-4COPESPO.mjs → chunk-JXY6NHG6.mjs} +6 -6
  71. package/dist/client/{chunk-JV7ZNAOU.mjs → chunk-KXYEKEV6.mjs} +155 -17
  72. package/dist/client/{chunk-HIHOQGIP.mjs → chunk-LJCX6V7Q.mjs} +9 -9
  73. package/dist/client/{chunk-5AJIMWKS.mjs → chunk-N2WJPTF7.mjs} +3 -3
  74. package/dist/client/{chunk-KNTLBQ3N.mjs → chunk-QQNVQ62W.mjs} +1 -1
  75. package/dist/client/{chunk-B4H6QMPY.mjs → chunk-R3CZQLXF.mjs} +73 -8
  76. package/dist/client/{chunk-WHZQDPBZ.mjs → chunk-TNGL2WJF.mjs} +1 -0
  77. package/dist/client/{chunk-SLY6UDAS.mjs → chunk-ZJDBOLX7.mjs} +3 -3
  78. package/dist/client/client.mjs +548 -68
  79. package/dist/client/{courseRegistration-URX7RCCK.mjs → courseRegistration-JPWAQ6KM.mjs} +112 -12
  80. package/dist/client/{eventCalendar-GTENOQCE.mjs → eventCalendar-QDOCHBBV.mjs} +10 -10
  81. package/dist/client/{eventCombined-EZVB72MF.mjs → eventCombined-ZS2CXSIE.mjs} +10 -10
  82. package/dist/client/{eventDetails-CH4BJR5Z.mjs → eventDetails-5LOBMPLN.mjs} +10 -10
  83. package/dist/client/{eventListing-4BVOI5HS.mjs → eventListing-SBGY4I3L.mjs} +10 -10
  84. package/dist/client/{eventRegistration-37LPIKIE.mjs → eventRegistration-XGPIU3Z2.mjs} +10 -10
  85. package/dist/client/{form-FX3Y54YK.mjs → form-R7D4LZWW.mjs} +4 -4
  86. package/dist/client/{headerSection-UOZZGVYL.mjs → headerSection-RRLYUCGC.mjs} +3 -3
  87. package/dist/client/hooks.mjs +29 -9
  88. package/dist/client/{locationMap-VSIPKV35.mjs → locationMap-35ZJMRBZ.mjs} +3 -3
  89. package/dist/client/{newsletterForm-6FRJKNAF.mjs → newsletterForm-MJ2VCFUT.mjs} +4 -4
  90. package/dist/client/{productDetail-6AHMLXCO.mjs → productDetail-2O7YQNBX.mjs} +7 -7
  91. package/dist/client/{productList-M2CYIZVH.mjs → productList-FDP5BH7W.mjs} +7 -7
  92. package/dist/client/rendering/client.mjs +526 -64
  93. package/dist/client/rendering/islands.mjs +19 -19
  94. package/dist/client/rendering.mjs +547 -67
  95. package/dist/client/{shop-AUOT6GEX.mjs → shop-BGYJ3LDT.mjs} +7 -7
  96. package/dist/client/spam-protection.mjs +10 -10
  97. package/dist/preview-next/client/runtime.mjs +5 -5
  98. package/dist/{sdk-runtime-6GPJNLU6.mjs → sdk-runtime-B3TFXRXZ.mjs} +6 -6
  99. package/dist/server/components.mjs +179 -18
  100. package/dist/server/config-validation.mjs +30 -9
  101. package/dist/server/config.mjs +30 -9
  102. package/dist/server/data.mjs +29 -9
  103. package/dist/server/index.mjs +1 -1
  104. package/dist/server/navigation.mjs +2 -2
  105. package/dist/server/next.mjs +180 -19
  106. package/dist/server/page-converter.mjs +24 -7
  107. package/dist/server/prebuild.mjs +1 -1
  108. package/dist/server/rendering/server.mjs +179 -18
  109. package/dist/server/rendering.mjs +179 -18
  110. package/dist/server/routing.mjs +43 -19
  111. package/dist/server/server.mjs +30 -10
  112. package/package.json +1 -1
  113. package/dist/SdkPreviewModeRuntime-2UCIMKUB.mjs +0 -8
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, previewWidgetOverrides, canInspectSiteStyle, mapContentSchemaToFormFields, PreviewFormProvider, usePreviewBlockCustomizeSelectionOptional, BlockEditor, canApplySiteStyle, useBlockCustomizeControls, MAX_QUICK_MANIFEST_FIELDS } from './chunk-H6TT5ZXI.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-CR2VX432.mjs';
4
- import { usePreviewAuth, getDashboardUrl } from './chunk-BOQXMCSP.mjs';
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
+ 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';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab } from './chunk-SYYJZPKU.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-CR2VX432.mjs';
4
- import { usePreviewAuth } from './chunk-BOQXMCSP.mjs';
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
+ import { usePreviewAuth } from './chunk-ZA2S7H34.mjs';
5
5
  import './chunk-R7POPVJR.mjs';
6
6
  import { useState, useMemo, useCallback, useEffect, useTransition } from 'react';
7
7
  import { createPortal } from 'react-dom';
@@ -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">;
@@ -134,6 +134,20 @@ type BaseIssue<K extends string, Extra extends object = Record<never, never>> =
134
134
  fieldId: string;
135
135
  label: string;
136
136
  }> & Readonly<Extra>;
137
+ export type ManifestContentRequiredScope = "topLevel" | "nested";
138
+ export type ManifestContentValidationIssue = Readonly<{
139
+ kind: FieldValidationIssue["kind"];
140
+ field: string;
141
+ message: string;
142
+ requiredScope: ManifestContentRequiredScope | null;
143
+ }>;
144
+ export type ManifestContentValidationResult = Readonly<{
145
+ kind: "valid";
146
+ issues: readonly [];
147
+ }> | Readonly<{
148
+ kind: "invalid";
149
+ issues: readonly ManifestContentValidationIssue[];
150
+ }>;
137
151
  type PlanBase<K extends string, ValueKind extends string, Constraints extends FieldConstraint> = Readonly<{
138
152
  kind: K;
139
153
  valueKind: ValueKind;
@@ -196,6 +210,11 @@ export type PassthroughFieldValidationPlan = PlanBase<"passthrough", "unknown",
196
210
  fieldType: "presetOrCustom" | "contentTypeSelect" | "entryPicker";
197
211
  }>;
198
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
+ }>;
199
218
  export type RepeatedItemValidationPlan = Readonly<{
200
219
  typeId: string;
201
220
  fields: readonly FieldValidationPlan[];
@@ -211,8 +230,13 @@ export declare function normalizeFieldInput(plan: FieldValidationPlan, value: un
211
230
  export declare function normalizeStoredContentValues(plans: readonly FieldValidationPlan[], content: unknown, options?: FieldValidationOptions): Record<string, unknown>;
212
231
  export declare function validateFieldValue(plan: FieldValidationPlan, value: unknown, options?: FieldValidationOptions): FieldValidationIssue[];
213
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;
214
235
  export declare function resolveFieldValidationDescriptor(plans: readonly FieldValidationPlan[], path: FieldPath): FieldValidationDescriptor | null;
215
236
  export declare function validateManifestValues(fields: readonly FieldDefinition[], values: Record<string, unknown>, options?: FieldValidationOptions): FieldValidationIssue[];
237
+ export declare function validateManifestContentForPush(fields: readonly FieldDefinition[], values: Record<string, unknown>, options?: FieldValidationOptions): ManifestContentValidationResult;
238
+ export declare function isTopLevelRequiredManifestContentIssue(issue: ManifestContentValidationIssue): boolean;
239
+ export declare function formatManifestContentValidationIssue(issue: ManifestContentValidationIssue): string;
216
240
  export declare function isCanonicalEmailValue(value: string): boolean;
217
241
  export declare function isCanonicalPhoneValue(value: string): boolean;
218
242
  export declare function isCanonicalUrlValue(value: string, options?: Readonly<{
@@ -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;