@riverbankcms/sdk 0.96.0 → 0.98.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 (156) hide show
  1. package/README.md +20 -1
  2. package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-CG3SSJND.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-RHNGKAAU.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-OV5PNJBB.mjs +8 -0
  5. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
  6. package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
  8. package/dist/_dts/api/src/endpoints.d.ts +80 -0
  9. package/dist/_dts/api/src/index.d.ts +3 -2
  10. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  11. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
  12. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  13. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
  14. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
  15. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -1
  16. package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
  17. package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
  18. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  19. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
  20. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
  21. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  22. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
  23. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  24. package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
  25. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  26. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  29. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
  30. package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
  31. package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
  32. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  34. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  35. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  36. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
  37. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
  38. package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
  39. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
  40. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
  41. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
  47. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
  50. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
  51. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
  52. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +1 -1
  53. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
  54. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  55. package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
  56. package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
  57. package/dist/_dts/core/src/branded.d.ts +8 -0
  58. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +505 -2
  59. package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
  60. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
  61. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
  62. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
  63. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
  64. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
  65. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
  66. package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
  67. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
  68. package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
  69. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
  70. package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
  71. package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
  72. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
  73. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
  74. package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
  75. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
  76. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
  77. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
  78. package/dist/_dts/sdk/src/client/types.d.ts +18 -2
  79. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  80. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  81. package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
  82. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
  83. package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
  84. package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
  85. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  86. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
  87. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +52 -1
  88. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
  89. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
  90. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  91. package/dist/_dts/sdk/src/version.d.ts +1 -1
  92. package/dist/{chunk-EL55VV6Q.mjs → chunk-6WDBXCPX.mjs} +31 -10
  93. package/dist/{chunk-XMATDBXO.mjs → chunk-DBRI3PQF.mjs} +731 -180
  94. package/dist/{chunk-VHIMXQ7Z.mjs → chunk-H24OU7WG.mjs} +2 -2
  95. package/dist/{chunk-4TLTV7OB.mjs → chunk-PKDPQHB5.mjs} +2 -2
  96. package/dist/{chunk-VTPPVAOL.mjs → chunk-QPXE2OUZ.mjs} +1 -1
  97. package/dist/{chunk-7ED5UNHL.mjs → chunk-V2BYFSPW.mjs} +109 -0
  98. package/dist/cli/index.mjs +2131 -1033
  99. package/dist/cli/init-docs/content/cli-reference.md +29 -1
  100. package/dist/cli/init-docs/content/getting-started.md +8 -0
  101. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
  102. package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
  103. package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
  104. package/dist/client/{accordion-GUNXIIZR.mjs → accordion-Q2BDNL53.mjs} +1 -1
  105. package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-ZMP4P7EK.mjs} +16 -6
  106. package/dist/client/bookings.mjs +98 -18
  107. package/dist/client/{carousel-4QSX2JPC.mjs → carousel-LW3UXPWO.mjs} +1 -1
  108. package/dist/client/{cart-JKN6C4ZB.mjs → cart-Z6D3KS6K.mjs} +5 -5
  109. package/dist/client/{checkout-YY6YMITW.mjs → checkout-YMT2QJQM.mjs} +5 -5
  110. package/dist/client/{chunk-6H27K6AA.mjs → chunk-26ZBRXFR.mjs} +9 -3
  111. package/dist/client/{chunk-VJROUYOQ.mjs → chunk-DRRQ7QSL.mjs} +2 -2
  112. package/dist/client/{chunk-BFCJZODD.mjs → chunk-ET2MDQQT.mjs} +4 -4
  113. package/dist/client/{chunk-H7A6PUGM.mjs → chunk-HBQEAOG4.mjs} +1 -1
  114. package/dist/client/{chunk-CPKMJVBD.mjs → chunk-IEOECM7U.mjs} +62 -43
  115. package/dist/client/{chunk-TNGL2WJF.mjs → chunk-KDP7ZRZV.mjs} +16 -0
  116. package/dist/client/{chunk-GWCRCJLB.mjs → chunk-R4XK3CKR.mjs} +12 -1
  117. package/dist/client/{chunk-A3YN7M3G.mjs → chunk-SK2BMD22.mjs} +2 -2
  118. package/dist/client/{chunk-SY543WZ3.mjs → chunk-XNTHVZ25.mjs} +1 -1
  119. package/dist/client/client.mjs +3729 -3054
  120. package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-DGKCMC77.mjs} +4 -4
  121. package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-74Z2NNFM.mjs} +7 -7
  122. package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-GK2ODOX2.mjs} +7 -7
  123. package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-MONAGT3N.mjs} +7 -7
  124. package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-SKGAO6PS.mjs} +7 -7
  125. package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-6KISGXRD.mjs} +7 -7
  126. package/dist/client/{form-VKRTFUNQ.mjs → form-FXPRTXHI.mjs} +2 -2
  127. package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-7NAN5WNB.mjs} +2 -2
  128. package/dist/client/hooks.mjs +1661 -1334
  129. package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-UERN74U4.mjs} +2 -2
  130. package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-SGWXMJ7U.mjs} +2 -2
  131. package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-HN3HWZQZ.mjs} +5 -5
  132. package/dist/client/{productList-RX6ZJ7BL.mjs → productList-YT22Z5UR.mjs} +5 -5
  133. package/dist/client/rendering/client.mjs +2208 -1922
  134. package/dist/client/rendering/islands.mjs +18 -18
  135. package/dist/client/rendering.mjs +1497 -811
  136. package/dist/client/{shop-BHN5AKY6.mjs → shop-TKEDNWUS.mjs} +5 -5
  137. package/dist/preview-next/before-render.mjs +109 -0
  138. package/dist/preview-next/client/runtime.mjs +5 -5
  139. package/dist/preview-next/middleware.mjs +109 -0
  140. package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-LWNYCQF2.mjs} +6 -6
  141. package/dist/server/components.mjs +2351 -1872
  142. package/dist/server/config-template-validation.mjs +6 -2
  143. package/dist/server/config-validation.mjs +1861 -1561
  144. package/dist/server/config.mjs +1861 -1561
  145. package/dist/server/data.mjs +1647 -1331
  146. package/dist/server/index.mjs +208 -9
  147. package/dist/server/next/middleware.mjs +2 -2
  148. package/dist/server/next.mjs +2572 -1878
  149. package/dist/server/page-converter.mjs +1461 -1276
  150. package/dist/server/prebuild.mjs +1 -1
  151. package/dist/server/rendering/server.mjs +2372 -1875
  152. package/dist/server/rendering.mjs +2557 -1941
  153. package/dist/server/routing.mjs +1716 -1353
  154. package/dist/server/server.mjs +1911 -1380
  155. package/package.json +1 -1
  156. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
@@ -1,5 +1,10 @@
1
1
  import type { DiscountContext } from '../../api/types';
2
2
  import type { EventTicketSelectionLine, EventRegistrationClientProps, FormData, Guest, GuestErrors, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult, RegistrationStep } from './types';
3
+ import { usePortalAuth, useEligibility, useExistingEventRegistration } from './hooks';
4
+ import { useWaitlistClaim } from '../../shared/useWaitlistClaim';
5
+ import { useEventRegistrationStripeReturn } from './useEventRegistrationStripeReturn';
6
+ import { useEventRegistrationSubmit } from './useEventRegistrationSubmit';
7
+ import { useDiscountCodeUi } from './useDiscountCodeUi';
3
8
  export type EventRegistrationDetailsCompleteResult = Readonly<{
4
9
  ok: true;
5
10
  outcome: 'payment-step' | 'submitted';
@@ -8,13 +13,139 @@ export type EventRegistrationDetailsCompleteResult = Readonly<{
8
13
  reason: 'blocked' | 'validation-failed' | 'submission-failed';
9
14
  message: string;
10
15
  }>;
11
- export declare function useEventRegistrationWizard(options: {
16
+ export type UseEventRegistrationWizardOptions = Readonly<{
12
17
  anchorId: string;
13
18
  occurrenceContext: EventRegistrationClientProps['occurrenceContext'];
14
19
  contentEntry: EventRegistrationClientProps['contentEntry'];
15
20
  events: PublicEvent[];
16
21
  maxTicketsNum: number;
17
- }): {
22
+ }>;
23
+ export type EventRegistrationWizardDeps = Readonly<{
24
+ usePortalAuth: typeof usePortalAuth;
25
+ useEligibility: typeof useEligibility;
26
+ useExistingEventRegistration: typeof useExistingEventRegistration;
27
+ useWaitlistClaim: typeof useWaitlistClaim;
28
+ useEventRegistrationStripeReturn: typeof useEventRegistrationStripeReturn;
29
+ useEventRegistrationSubmit: typeof useEventRegistrationSubmit;
30
+ useDiscountCodeUi: typeof useDiscountCodeUi;
31
+ }>;
32
+ export declare function useEventRegistrationWizard(options: UseEventRegistrationWizardOptions): {
33
+ api: import("../../api").BlockApiClient;
34
+ anchorId: string;
35
+ occurrenceContext: {
36
+ id: string;
37
+ seriesId: string;
38
+ startsAt: string;
39
+ endsAt: string;
40
+ timeZone: string;
41
+ capacityOverride?: number | null | undefined;
42
+ overrides?: Record<string, unknown> | null | undefined;
43
+ } | null | undefined;
44
+ registrationTarget: Readonly<{
45
+ occurrenceId: string;
46
+ selectedEventId: string | null;
47
+ }> | null;
48
+ contentEntry: {
49
+ id: string;
50
+ slug: string;
51
+ contentTypeSlug: string;
52
+ } | null | undefined;
53
+ events: PublicEvent[];
54
+ maxTicketsNum: number;
55
+ scopedEvents: RegistrationEvent[];
56
+ preSelectedEvent: RegistrationEvent | null;
57
+ hasPreSelectedContext: boolean;
58
+ step: RegistrationStep;
59
+ setStep: (nextStep: RegistrationStep) => void;
60
+ selectedEvent: RegistrationEvent | null;
61
+ setSelectedEvent: import("react").Dispatch<import("react").SetStateAction<RegistrationEvent | null>>;
62
+ ticketsCount: number;
63
+ setTicketsCount: (nextTicketsCount: number) => void;
64
+ selectedAttendanceMode: "in_person" | "online" | null;
65
+ setSelectedAttendanceMode: import("react").Dispatch<import("react").SetStateAction<"in_person" | "online" | null>>;
66
+ ticketSelections: Readonly<{
67
+ ticketTypeId: string | null;
68
+ quantity: number;
69
+ }>[];
70
+ selectedTicketLines: Readonly<{
71
+ ticketTypeId: string | null;
72
+ quantity: number;
73
+ }>[];
74
+ setSelectedTicketLines: (lines: readonly EventTicketSelectionLine[]) => void;
75
+ selectedSlidingAmountInput: string;
76
+ setSelectedSlidingAmountInput: import("react").Dispatch<import("react").SetStateAction<string>>;
77
+ selectedSlidingAmount: number | null;
78
+ selectedEventSlidingScale: Readonly<{
79
+ minAmount: number;
80
+ maxAmount: number;
81
+ suggestedAmount: number | null;
82
+ }> | null;
83
+ slidingScaleSelectionMessage: string | null;
84
+ selectedTicketType: import("./utils").SelectableEventTicketType | null;
85
+ ticketSelectionSummaryLines: Readonly<{
86
+ ticketTypeId: string | null;
87
+ label: string;
88
+ quantity: number;
89
+ unitPriceCents: number;
90
+ subtotalCents: number;
91
+ }>[];
92
+ ticketSelectionSubtotalCents: number;
93
+ visibleTicketTypes: import("./utils").SelectableEventTicketType[];
94
+ ticketTypeSelectionRequired: boolean;
95
+ hasValidTicketSelection: boolean;
96
+ eventRequiresPayment: boolean;
97
+ formData: FormData;
98
+ setFormData: import("react").Dispatch<import("react").SetStateAction<FormData>>;
99
+ errors: Partial<Record<keyof FormData, string>>;
100
+ guests: Guest[];
101
+ setGuests: import("react").Dispatch<import("react").SetStateAction<Guest[]>>;
102
+ guestErrors: GuestErrors;
103
+ guestSectionShake: boolean;
104
+ handleGuestShakeEnd: () => void;
105
+ registrationResult: RegistrationResult | null;
106
+ errorMessage: string;
107
+ altchaSolution: string | null;
108
+ setAltchaSolution: import("react").Dispatch<import("react").SetStateAction<string | null>>;
109
+ portalAuthState: import("./hooks").PortalAuthState;
110
+ portalProfile: import("./hooks").PortalProfile | null;
111
+ showMagicLinkModal: boolean;
112
+ setShowMagicLinkModal: import("react").Dispatch<import("react").SetStateAction<boolean>>;
113
+ handleLogout: () => void;
114
+ paymentStepState: PaymentStepState;
115
+ handlePaymentStepStateChange: (state: PaymentStepState) => void;
116
+ handlePaymentSelectionChange: (selection: PaymentSelection) => void;
117
+ paymentSelection: PaymentSelection;
118
+ isMembershipFastTrack: boolean;
119
+ waitlistClaim: import("../../shared/useWaitlistClaim").UseWaitlistClaimResult;
120
+ eligibility: import("./types").EligibilityData | null;
121
+ eligibilityLoading: boolean;
122
+ eligibilityError: string | null;
123
+ existingRegistration: import("../../api").CustomerEventRegistration | null;
124
+ existingRegistrationLoading: boolean;
125
+ existingRegistrationState: import("./hooks.state").ExistingRegistrationLookupState;
126
+ hasEligibility: boolean;
127
+ hasMembershipEligibility: boolean;
128
+ requireGuestDetails: boolean;
129
+ discountCode: string;
130
+ setDiscountCode: (code: string) => void;
131
+ discountUiOpen: boolean;
132
+ setDiscountUiOpen: (isOpen: boolean) => void;
133
+ discountsAvailable: boolean;
134
+ manualCodeEntryAllowed: boolean;
135
+ autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;
136
+ discountsAvailableLoading: boolean;
137
+ discountContext: DiscountContext | null;
138
+ shouldShowDiscountToggle: boolean;
139
+ verification: import("../../hooks/usePaymentVerification").PaymentVerificationResult;
140
+ handleDetailsComplete: () => Promise<EventRegistrationDetailsCompleteResult>;
141
+ handlePaymentSelect: () => Promise<void>;
142
+ handleUseCardInsteadOfPass: () => void;
143
+ handleBookForSomeoneElse: () => void;
144
+ handleSubmit: (method: import("./PaymentSelectionStep").PaymentMethod, passId?: string, membershipId?: string, selection?: PaymentSelection, submitOptions?: import("./useEventRegistrationSubmit").EventRegistrationSubmitOptions) => Promise<import("./useEventRegistrationSubmit").EventRegistrationSubmitResult>;
145
+ handleEventSelect: (event: RegistrationEvent) => void;
146
+ handleRetry: () => void;
147
+ };
148
+ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegistrationWizardOptions, deps: EventRegistrationWizardDeps): {
18
149
  api: import("../../api").BlockApiClient;
19
150
  anchorId: string;
20
151
  occurrenceContext: {
@@ -0,0 +1,3 @@
1
+ import type { BlockApiClient } from "../api";
2
+ import { type WeeklySlotAvailabilityClientInput, type WeeklySlotAvailabilityLoadState } from "./weekly-slot-availability.client.state";
3
+ export declare function useWeeklySlotAvailabilityLoadState(api: BlockApiClient, input: WeeklySlotAvailabilityClientInput): WeeklySlotAvailabilityLoadState;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { WeeklySlotAvailabilityClientInput } from "./weekly-slot-availability.client.state";
3
+ export type WeeklySlotAvailabilityClientProps = WeeklySlotAvailabilityClientInput & Readonly<{
4
+ emptyMessage?: string | null;
5
+ ctaText?: string | null;
6
+ ctaUrl?: string | null;
7
+ }>;
8
+ export declare function WeeklySlotAvailabilityClient({ serviceId, resourceId, horizonWeeks, timezone, availability: initialAvailability, emptyMessage, ctaText, ctaUrl, }: WeeklySlotAvailabilityClientProps): React.JSX.Element;
9
+ export default WeeklySlotAvailabilityClient;
@@ -0,0 +1,14 @@
1
+ import type { WeeklySlotAvailabilityResponse } from "../api/types";
2
+ export type WeeklySlotAvailabilityClientInput = Readonly<{
3
+ serviceId?: string | null;
4
+ resourceId?: string | null;
5
+ horizonWeeks?: number | string | null;
6
+ timezone?: string | null;
7
+ availability?: WeeklySlotAvailabilityResponse | null;
8
+ }>;
9
+ export type WeeklySlotAvailabilityLoadState = Readonly<{
10
+ availability: WeeklySlotAvailabilityResponse | null;
11
+ loading: boolean;
12
+ error: string | null;
13
+ }>;
14
+ export declare function normalizeWeeklySlotAvailabilityHorizonWeeks(value: WeeklySlotAvailabilityClientInput["horizonWeeks"]): number;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import type { WeeklySlotAvailabilityResponse } from "../api/types";
3
+ export type WeeklySlotAvailabilityNodeProps = Readonly<{
4
+ availability?: WeeklySlotAvailabilityResponse | null;
5
+ emptyMessage?: string | null;
6
+ ctaText?: string | null;
7
+ ctaUrl?: string | null;
8
+ }>;
9
+ export declare function WeeklySlotAvailabilitySSR(props: WeeklySlotAvailabilityNodeProps): React.JSX.Element;
10
+ export default WeeklySlotAvailabilitySSR;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { WeeklySlotAvailabilityResponse } from "../api/types";
3
+ export type WeeklySlotAvailabilityViewProps = Readonly<{
4
+ availability?: WeeklySlotAvailabilityResponse | null;
5
+ loading?: boolean;
6
+ error?: string | null;
7
+ emptyMessage?: string | null;
8
+ ctaText?: string | null;
9
+ ctaUrl?: string | null;
10
+ }>;
11
+ export declare function WeeklySlotAvailabilityView({ availability, loading, error, emptyMessage, ctaText, ctaUrl, }: WeeklySlotAvailabilityViewProps): React.JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { NodeDefinition } from "../node";
2
+ import type { ConditionalAuthoringPresence, NodeDefinition } from "../node";
3
3
  import { bindingSchema } from "../node";
4
4
  import { type ThemeTokens } from "../theme";
5
5
  import type { TransformRegistry, RouteMap, PageIdentifierMap, EntryIdentifierMap } from "../transforms";
@@ -10,6 +10,14 @@ export type PreviewTextFieldConstraints = Readonly<{
10
10
  maxLength?: number;
11
11
  }>;
12
12
  export type PreviewFieldConstraintsMap = Readonly<Record<string, PreviewTextFieldConstraints | undefined>>;
13
+ export type PreviewAuthoringContext = Readonly<{
14
+ activeField?: PreviewAuthoringActiveField | null;
15
+ }>;
16
+ export type PreviewAuthoringActiveField = Readonly<{
17
+ kind: 'block-field';
18
+ blockId: string;
19
+ fieldPath: string;
20
+ }>;
13
21
  export type ResolverContext = {
14
22
  viewModel: ViewModel;
15
23
  registry: ComponentRegistry;
@@ -29,6 +37,7 @@ export type ResolverContext = {
29
37
  fragmentRegistry?: Record<string, unknown>;
30
38
  fieldConstraints?: PreviewFieldConstraintsMap;
31
39
  imageResolveContext?: ResolveImageUrlContext;
40
+ previewAuthoring?: PreviewAuthoringContext;
32
41
  };
33
42
  /** @internal Exported for testing */
34
43
  export type ScopeEntry = {
@@ -46,6 +55,26 @@ export type ScopeEntry = {
46
55
  export type InternalContext = ResolverContext & {
47
56
  scopes: ScopeEntry[];
48
57
  };
58
+ type ConditionalValuePresence = Readonly<{
59
+ kind: 'present';
60
+ }> | Readonly<{
61
+ kind: 'empty';
62
+ }>;
63
+ export type ConditionalNodeRenderDecision = Readonly<{
64
+ kind: 'render';
65
+ reason: 'condition-passed' | 'authoring-presence';
66
+ }> | Readonly<{
67
+ kind: 'skip';
68
+ reason: 'condition-failed' | 'not-editable' | 'inactive-authoring-context';
69
+ }>;
70
+ export declare function planConditionalNodeRender(input: {
71
+ readonly conditionMatched: boolean;
72
+ readonly conditionPresence: ConditionalValuePresence;
73
+ readonly conditionUsesPresenceSemantics: boolean;
74
+ readonly authoringPresence: ConditionalAuthoringPresence;
75
+ readonly editableTarget: PreviewAuthoringActiveField | null;
76
+ readonly authoringContext: PreviewAuthoringContext | undefined;
77
+ }): ConditionalNodeRenderDecision;
49
78
  /**
50
79
  * Resolves a binding to its value from the viewModel or scopes.
51
80
  * Applies transforms and fallback handling.
@@ -68,3 +97,4 @@ export declare function resolveNode(node: NodeDefinition, context: InternalConte
68
97
  * Accepts a single node or array of nodes and returns React elements.
69
98
  */
70
99
  export declare function resolveTree(node: NodeDefinition | NodeDefinition[], options: ResolverContext): React.ReactNode;
100
+ export {};
@@ -1,3 +1,4 @@
1
+ import { useBlockApi } from "../api";
1
2
  import type { ResolveWaitlistClaimResponse } from "../api/types";
2
3
  export declare function getWaitlistClaimTokenFromUrl(): string | null;
3
4
  export type UseWaitlistClaimResult = {
@@ -8,4 +9,8 @@ export type UseWaitlistClaimResult = {
8
9
  requiresPortalLogin: boolean;
9
10
  isLoading: boolean;
10
11
  };
12
+ export type UseWaitlistClaimDeps = Readonly<{
13
+ useBlockApi: typeof useBlockApi;
14
+ }>;
11
15
  export declare function useWaitlistClaim(): UseWaitlistClaimResult;
16
+ export declare function useWaitlistClaimWithDeps(deps: UseWaitlistClaimDeps): UseWaitlistClaimResult;
@@ -17,7 +17,7 @@ export declare function getRuntimeTimeZone(): string;
17
17
  * @param days - Number of days to generate
18
18
  * @returns Array of date strings
19
19
  */
20
- export declare function generateDateRange(days: number): string[];
20
+ export declare function generateDateRange(days: number, from?: Date): string[];
21
21
  /**
22
22
  * Formats an ISO date string (YYYY-MM-DD) to a human-readable format
23
23
  * @param dateStr - ISO date string (e.g., "2025-03-15")
@@ -5,5 +5,5 @@ type PreviewInlineTextEditorProps = TextProps & {
5
5
  fallbackPlainText?: string;
6
6
  onBlockFieldFocus?: (path: string) => void;
7
7
  };
8
- export declare function PreviewInlineTextEditor({ path, plainTextPath, fallbackPlainText, onBlockFieldFocus, className, maxLength, as: Comp, }: PreviewInlineTextEditorProps): import("react").JSX.Element | null;
8
+ export declare function PreviewInlineTextEditor({ path, plainTextPath, fallbackPlainText, onBlockFieldFocus, className, maxLength, placeholder, ariaLabel, as: Comp, }: PreviewInlineTextEditorProps): import("react").JSX.Element | null;
9
9
  export {};
@@ -8,5 +8,5 @@ type PreviewRichTextEditorProps = RichTextPrimitiveProps & {
8
8
  * Memoized version to prevent unnecessary re-renders.
9
9
  * Only re-renders when path, doc, variant, or className props actually change.
10
10
  */
11
- export declare const PreviewRichTextEditor: import("react").MemoExoticComponent<({ path, linkedEntryField, onLinkedEntryFieldFocus, onBlockFieldFocus, className, doc, variant }: PreviewRichTextEditorProps) => import("react").JSX.Element>;
11
+ export declare const PreviewRichTextEditor: import("react").MemoExoticComponent<({ path, linkedEntryField, onLinkedEntryFieldFocus, onBlockFieldFocus, className, doc, variant, placeholder, ariaLabel, }: PreviewRichTextEditorProps) => import("react").JSX.Element>;
12
12
  export {};
@@ -56,7 +56,7 @@ export declare const DEFAULT_TEMPLATE_DEFINITIONS: {
56
56
  }>;
57
57
  readonly headlineInline: Readonly<{
58
58
  source: "transform";
59
- transform: import("./types").TemplateBindingTransformName;
59
+ transform: import("../../../field-primitives/src/bindings/index").BindingTransformName;
60
60
  input?: import("./types").TemplateBindingDescriptor | string;
61
61
  path?: string;
62
62
  }>;
@@ -115,7 +115,7 @@ export declare const DEFAULT_TEMPLATE_DEFINITIONS: {
115
115
  }>;
116
116
  readonly headlineInline: Readonly<{
117
117
  source: "transform";
118
- transform: import("./types").TemplateBindingTransformName;
118
+ transform: import("../../../field-primitives/src/bindings/index").BindingTransformName;
119
119
  input?: import("./types").TemplateBindingDescriptor | string;
120
120
  path?: string;
121
121
  }>;
@@ -191,7 +191,7 @@ export declare const DEFAULT_TEMPLATE_DEFINITIONS: {
191
191
  }>;
192
192
  readonly headlineInline: Readonly<{
193
193
  source: "transform";
194
- transform: import("./types").TemplateBindingTransformName;
194
+ transform: import("../../../field-primitives/src/bindings/index").BindingTransformName;
195
195
  input?: import("./types").TemplateBindingDescriptor | string;
196
196
  path?: string;
197
197
  }>;
@@ -255,7 +255,7 @@ export declare const DEFAULT_TEMPLATE_DEFINITIONS: {
255
255
  }>;
256
256
  readonly headlineInline: Readonly<{
257
257
  source: "transform";
258
- transform: import("./types").TemplateBindingTransformName;
258
+ transform: import("../../../field-primitives/src/bindings/index").BindingTransformName;
259
259
  input?: import("./types").TemplateBindingDescriptor | string;
260
260
  path?: string;
261
261
  }>;
@@ -306,7 +306,7 @@ export declare const DEFAULT_TEMPLATE_DEFINITIONS: {
306
306
  }>;
307
307
  readonly headlineInline: Readonly<{
308
308
  source: "transform";
309
- transform: import("./types").TemplateBindingTransformName;
309
+ transform: import("../../../field-primitives/src/bindings/index").BindingTransformName;
310
310
  input?: import("./types").TemplateBindingDescriptor | string;
311
311
  path?: string;
312
312
  }>;
@@ -1,16 +1,12 @@
1
+ import { type BindingTransformName } from '../../../field-primitives/src/bindings/index';
1
2
  export type TemplateScope = 'entry' | 'template';
2
- /**
3
- * Keep in sync with:
4
- * - @riverbankcms/blocks `TRANSFORMS`
5
- * - @riverbankcms/sdk `BINDING_TRANSFORMS`
6
- */
7
3
  export declare const TEMPLATE_BINDING_TRANSFORMS: {
8
4
  readonly RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph";
9
5
  readonly DATE_FORMAT_SHORT: "date.formatShort";
10
6
  readonly DATE_FORMAT_LONG: "date.formatLong";
11
7
  readonly TEXT_INLINE_TEXT: "text.inlineText";
12
8
  };
13
- export type TemplateBindingTransformName = typeof TEMPLATE_BINDING_TRANSFORMS[keyof typeof TEMPLATE_BINDING_TRANSFORMS];
9
+ export type TemplateBindingTransformName = BindingTransformName;
14
10
  export type TemplateBindingDescriptor = {
15
11
  source: 'field' | 'meta';
16
12
  path: string;
@@ -72,6 +72,9 @@ export type EnrollmentId = Brand<string, 'EnrollmentId'>;
72
72
  export type AppointmentId = Brand<string, 'AppointmentId'>;
73
73
  export type AppointmentServiceId = Brand<string, 'AppointmentServiceId'>;
74
74
  export type AppointmentResourceId = Brand<string, 'AppointmentResourceId'>;
75
+ export type AppointmentReservationId = Brand<string, 'AppointmentReservationId'>;
76
+ export type AppointmentReservationRunId = Brand<string, 'AppointmentReservationRunId'>;
77
+ export type AppointmentPaymentRequestId = Brand<string, 'AppointmentPaymentRequestId'>;
75
78
  export type StaffMemberId = Brand<string, 'StaffMemberId'>;
76
79
  export type BookingCalendarFeedTokenId = Brand<string, 'BookingCalendarFeedTokenId'>;
77
80
  export type BookingCalendarFeedTokenPublicId = Brand<string, 'BookingCalendarFeedTokenPublicId'>;
@@ -188,6 +191,9 @@ export declare const unsafeAsEnrollmentId: (id: string) => EnrollmentId;
188
191
  export declare const unsafeAsAppointmentId: (id: string) => AppointmentId;
189
192
  export declare const unsafeAsAppointmentServiceId: (id: string) => AppointmentServiceId;
190
193
  export declare const unsafeAsAppointmentResourceId: (id: string) => AppointmentResourceId;
194
+ export declare const unsafeAsAppointmentReservationId: (id: string) => AppointmentReservationId;
195
+ export declare const unsafeAsAppointmentReservationRunId: (id: string) => AppointmentReservationRunId;
196
+ export declare const unsafeAsAppointmentPaymentRequestId: (id: string) => AppointmentPaymentRequestId;
191
197
  export declare const unsafeAsStaffMemberId: (id: string) => StaffMemberId;
192
198
  export declare const unsafeAsBookingCalendarFeedTokenId: (id: string) => BookingCalendarFeedTokenId;
193
199
  export declare const unsafeAsBookingCalendarFeedTokenPublicId: (id: string) => BookingCalendarFeedTokenPublicId;
@@ -250,6 +256,8 @@ export declare const parsePassId: (value: unknown) => Result<PassId, BrandedIdPa
250
256
  export declare const parseMembershipId: (value: unknown) => Result<MembershipId, BrandedIdParseError>;
251
257
  export declare const parseCourseId: (value: unknown) => Result<CourseId, BrandedIdParseError>;
252
258
  export declare const parseAppointmentId: (value: unknown) => Result<AppointmentId, BrandedIdParseError>;
259
+ export declare const parseAppointmentReservationId: (value: unknown) => Result<AppointmentReservationId, BrandedIdParseError>;
260
+ export declare const parseAppointmentReservationRunId: (value: unknown) => Result<AppointmentReservationRunId, BrandedIdParseError>;
253
261
  export declare const parseAttendeeId: (value: unknown) => Result<AttendeeId, BrandedIdParseError>;
254
262
  export declare const parseCustomerId: (value: unknown) => Result<CustomerId, BrandedIdParseError>;
255
263
  export declare const parseCustomerMembershipId: (value: unknown) => Result<CustomerMembershipId, BrandedIdParseError>;