@riverbankcms/sdk 0.82.0 → 0.84.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 (194) hide show
  1. package/README.md +16 -0
  2. package/dist/{PreviewEditorSidebar-LHGK6RIO.mjs → PreviewEditorSidebar-HML67UDA.mjs} +330 -11
  3. package/dist/{PreviewEditorUI-AXZG2SDC.mjs → PreviewEditorUI-I4BQUU6K.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-MCKMVDTK.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +200 -0
  6. package/dist/_dts/api/src/blocks.d.ts +36 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +46 -0
  8. package/dist/_dts/api/src/endpoints.d.ts +40 -0
  9. package/dist/_dts/api/src/index.d.ts +2 -2
  10. package/dist/_dts/api/src/sdk-event-pricing.d.ts +61 -0
  11. package/dist/_dts/api/src/sdk-event-schedule.d.ts +52 -0
  12. package/dist/_dts/api/src/sdk-event-upsert.d.ts +50 -0
  13. package/dist/_dts/api/src/sdkContracts.d.ts +67 -33
  14. package/dist/_dts/api/src/shared-contracts.d.ts +13 -0
  15. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +22 -36
  16. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +46 -1
  17. package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +6 -1
  18. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +3 -2
  19. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +7 -0
  20. package/dist/_dts/blocks/src/PageRenderer.d.ts +11 -0
  21. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
  22. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  23. package/dist/_dts/blocks/src/client.d.ts +4 -0
  24. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +16 -4
  25. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -2016
  26. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -2016
  27. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -2016
  28. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -2016
  29. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -2016
  30. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +171 -0
  31. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +288 -2016
  32. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -2016
  33. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +3 -2
  34. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  35. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -7
  36. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +2534 -151
  37. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -2016
  38. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -2016
  39. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -2016
  40. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +36 -3
  41. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  42. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  43. package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +4 -1
  44. package/dist/_dts/blocks/src/system/fields/imageShape.d.ts +30 -0
  45. package/dist/_dts/blocks/src/system/fragments/library/heroLayoutControls.d.ts +25 -0
  46. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +35 -161
  47. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -6
  48. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -3
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +33 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +303 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +20 -1
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -3
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +1 -1
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +26 -6
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +14 -0
  56. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +1 -1
  57. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +1 -1
  58. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
  59. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +1 -1
  60. package/dist/_dts/content-editor/src/controller/useInvalidBlockRecovery.d.ts +1 -1
  61. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +2 -1
  62. package/dist/_dts/content-editor/src/primitives/PreviewTextEditor.d.ts +1 -0
  63. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  64. package/dist/_dts/content-model/src/entry-slots/types.d.ts +356 -0
  65. package/dist/_dts/content-model/src/index.d.ts +1 -0
  66. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
  67. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +100 -5
  68. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +6 -1
  69. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +1 -1
  70. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +3 -2
  71. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +3 -2
  72. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +3 -2
  73. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +27 -0
  74. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  75. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +8 -0
  76. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +37 -3
  77. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  78. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  79. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
  80. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +19 -0
  81. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +8 -0
  82. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
  83. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -1
  84. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +9 -0
  85. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +9 -8
  86. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +10 -1
  87. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +5 -1
  88. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  89. package/dist/_dts/sdk/src/bookings/types.d.ts +2 -2
  90. package/dist/_dts/sdk/src/cli/content/reader.d.ts +9 -8
  91. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -1
  92. package/dist/_dts/sdk/src/cli/helpers.d.ts +10 -5
  93. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +2 -2
  94. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +2 -1
  95. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -2
  96. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  97. package/dist/_dts/sdk/src/client/management/types.d.ts +40 -10
  98. package/dist/_dts/sdk/src/config/field-definitions.d.ts +13 -7
  99. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +26 -3
  100. package/dist/_dts/sdk/src/public-api/contracts.d.ts +13 -0
  101. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  102. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +6 -1
  103. package/dist/_dts/sdk/src/rendering/overrides.d.ts +6 -1
  104. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  105. package/dist/_dts/sdk/src/version.d.ts +1 -1
  106. package/dist/_dts/site-commands/src/commands.d.ts +15 -0
  107. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  108. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  109. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +16 -0
  110. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  111. package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
  112. package/dist/_dts/theme-core/src/cards/types.d.ts +15 -15
  113. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  114. package/dist/_dts/theme-core/src/inputs/types.d.ts +1 -1
  115. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +33 -33
  116. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  117. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +16 -0
  118. package/dist/_dts/theme-core/src/schema.d.ts +30 -25
  119. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  120. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +141 -1
  121. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -0
  122. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +110 -5
  123. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  124. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  125. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -1
  126. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  127. package/dist/_dts/theme-core/src/site-styles/types.d.ts +1 -1
  128. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  129. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +1 -0
  130. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +6 -6
  131. package/dist/{chunk-2BUMISSH.mjs → chunk-3LXFQS7T.mjs} +1 -1
  132. package/dist/{chunk-G35HOQEN.mjs → chunk-5E33VO6J.mjs} +132 -46
  133. package/dist/{chunk-HKB6XVIP.mjs → chunk-6X2OVO3S.mjs} +2 -2
  134. package/dist/{chunk-6FWNF3DJ.mjs → chunk-HFMGVJCE.mjs} +158 -20
  135. package/dist/{chunk-FIREV57T.mjs → chunk-LBBPD2IW.mjs} +40 -0
  136. package/dist/{chunk-XQR6THQJ.mjs → chunk-MSHZO4SL.mjs} +3193 -1216
  137. package/dist/cli/index.mjs +2635 -575
  138. package/dist/cli/init-docs/content/getting-started.md +2 -0
  139. package/dist/cli/init-docs/content/workflow-templates.md +93 -2
  140. package/dist/client/{accordion-G34C45TW.mjs → accordion-ESY65T56.mjs} +2 -2
  141. package/dist/client/{bookingForm-BLBVKSAQ.mjs → bookingForm-JRFNZUHD.mjs} +5 -5
  142. package/dist/client/bookings.mjs +3539 -269
  143. package/dist/client/{carousel-7ZVTBRMD.mjs → carousel-CPR5VWIP.mjs} +3 -3
  144. package/dist/client/{cart-Q6S6LZUO.mjs → cart-ZUX5BA7O.mjs} +6 -6
  145. package/dist/client/{checkout-5QJLDE4I.mjs → checkout-RULGBADZ.mjs} +6 -6
  146. package/dist/client/{chunk-CHAB5ACD.mjs → chunk-52I7BGEK.mjs} +2 -2
  147. package/dist/client/{chunk-CSZGLBYR.mjs → chunk-5ZEAZ33K.mjs} +1 -1
  148. package/dist/client/{chunk-ZF4XEWDM.mjs → chunk-BT6AEIKN.mjs} +1 -1
  149. package/dist/client/{chunk-RJHTCTCZ.mjs → chunk-HXPWP5EN.mjs} +268 -15
  150. package/dist/client/{chunk-5PQH4Y75.mjs → chunk-JWEYB4V6.mjs} +2 -2
  151. package/dist/client/{chunk-EQKYMX4N.mjs → chunk-RDJFCPY3.mjs} +158 -51
  152. package/dist/client/{chunk-SBBSMFFG.mjs → chunk-SYIJ5JO2.mjs} +1 -1
  153. package/dist/client/{chunk-WJFHDTYF.mjs → chunk-URQCZD5W.mjs} +5 -5
  154. package/dist/client/{chunk-U2EW7RSR.mjs → chunk-Z5OBQ5I4.mjs} +1 -1
  155. package/dist/client/{chunk-S3MKFGOG.mjs → chunk-ZE5G642V.mjs} +1 -1
  156. package/dist/client/client.mjs +2391 -673
  157. package/dist/client/{courseRegistration-VUG2JJDB.mjs → courseRegistration-QTUDC35T.mjs} +5 -5
  158. package/dist/client/{eventCalendar-E7D2LD4N.mjs → eventCalendar-Q7NS4XLD.mjs} +7 -7
  159. package/dist/client/{eventCombined-FUZ2Z3CS.mjs → eventCombined-QAO7VUO5.mjs} +7 -7
  160. package/dist/client/{eventDetails-QRITJAOW.mjs → eventDetails-WTNNU6Q3.mjs} +7 -7
  161. package/dist/client/{eventListing-INMQMJZ5.mjs → eventListing-5TA2ELDT.mjs} +7 -7
  162. package/dist/client/{eventRegistration-TOOJD4WU.mjs → eventRegistration-M6USZGRF.mjs} +7 -7
  163. package/dist/client/{form-BOWN7ZNQ.mjs → form-DGVGXLMH.mjs} +2 -2
  164. package/dist/client/{headerSection-HFQNZOUU.mjs → headerSection-O2AGMPCU.mjs} +3 -3
  165. package/dist/client/hooks.mjs +1636 -385
  166. package/dist/client/{locationMap-VUZGC7Y5.mjs → locationMap-EJRNRIKJ.mjs} +2 -2
  167. package/dist/client/{newsletterForm-X2XQTPCB.mjs → newsletterForm-7NTC2DTR.mjs} +2 -2
  168. package/dist/client/{productDetail-TA7D2G2B.mjs → productDetail-HH4LP53D.mjs} +6 -6
  169. package/dist/client/{productList-AZOLOZKM.mjs → productList-YVHYM2AF.mjs} +6 -6
  170. package/dist/client/rendering/client.mjs +2303 -1068
  171. package/dist/client/rendering/islands.mjs +19 -19
  172. package/dist/client/rendering.mjs +2587 -796
  173. package/dist/client/{shop-ZDLO7IIG.mjs → shop-UIFX7XRK.mjs} +6 -6
  174. package/dist/preview-next/before-render.mjs +40 -0
  175. package/dist/preview-next/client/runtime.mjs +5 -5
  176. package/dist/preview-next/middleware.mjs +40 -0
  177. package/dist/{sdk-runtime-CTWKNBDQ.mjs → sdk-runtime-ZENAOYMN.mjs} +6 -6
  178. package/dist/server/components.mjs +2028 -457
  179. package/dist/server/config-validation.mjs +1629 -377
  180. package/dist/server/config.mjs +1629 -377
  181. package/dist/server/data.mjs +1636 -385
  182. package/dist/server/index.mjs +42 -1
  183. package/dist/server/next.mjs +2215 -571
  184. package/dist/server/page-converter.mjs +2068 -884
  185. package/dist/server/prebuild.mjs +1 -1
  186. package/dist/server/rendering/server.mjs +2040 -469
  187. package/dist/server/rendering.mjs +2119 -475
  188. package/dist/server/routing.mjs +1711 -419
  189. package/dist/server/server.mjs +1718 -394
  190. package/dist/server/theme-bridge.mjs +1180 -101
  191. package/dist/server/theme.mjs +92 -1
  192. package/dist/styles/index.css +292 -36
  193. package/package.json +1 -1
  194. package/dist/SdkPreviewModeRuntime-RNVRHFFR.mjs +0 -8
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { type BlockApiConfig } from '../api';
3
+ import type { EventRegistrationClientProps } from '../nodes/event-registration/types';
4
+ import { useEventRegistrationWizard } from '../nodes/event-registration/useEventRegistrationWizard';
5
+ import type { HeadlessEventRegistrationFlow } from '../nodes/event-registration/event-registration.headless.state';
6
+ import { createEventRegistrationBlockApiConfig } from '../nodes/event-registration/event-registration.headless.state';
7
+ export type { BlockApiConfig };
8
+ export { createEventRegistrationBlockApiConfig };
9
+ export type { EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessEventRegistrationFlow, } from '../nodes/event-registration/event-registration.headless.state';
10
+ export type { EventRegistrationSubmitOptions, EventRegistrationSubmitResult, } from '../nodes/event-registration/useEventRegistrationSubmit';
11
+ export type HeadlessEventRegistrationFlowOptions = Readonly<{
12
+ anchorId?: string;
13
+ occurrenceContext?: EventRegistrationClientProps['occurrenceContext'];
14
+ contentEntry?: EventRegistrationClientProps['contentEntry'];
15
+ events?: readonly NonNullable<EventRegistrationClientProps['events']>[number][];
16
+ maxTickets?: string | number;
17
+ spamProtectionEnabled?: boolean;
18
+ }>;
19
+ export type HeadlessEventRegistrationProviderProps = Readonly<{
20
+ config: BlockApiConfig;
21
+ children?: React.ReactNode;
22
+ }>;
23
+ export type EventRegistrationController = Readonly<{
24
+ flow: HeadlessEventRegistrationFlow;
25
+ wizard: ReturnType<typeof useEventRegistrationWizard>;
26
+ }>;
27
+ export type EventRegistrationWizardController = Readonly<{
28
+ wizard: ReturnType<typeof useEventRegistrationWizard>;
29
+ }>;
30
+ export declare function HeadlessEventRegistrationProvider({ config, children, }: HeadlessEventRegistrationProviderProps): React.ReactElement;
31
+ export declare function useHeadlessEventRegistrationFlow(options: HeadlessEventRegistrationFlowOptions): HeadlessEventRegistrationFlow;
32
+ export declare function useEventRegistrationController(options: HeadlessEventRegistrationFlowOptions): EventRegistrationController;
33
+ export declare function useEventRegistrationWizardController(options: HeadlessEventRegistrationFlowOptions): EventRegistrationWizardController;
@@ -0,0 +1,303 @@
1
+ import type { BlockApiConfig } from '../../api';
2
+ import type { PaymentMethod } from '../../api/types';
3
+ import type { EventRegistrationContentEntry } from '../event-registration.interactive';
4
+ import type { EligibilityData, FormData, Guest, GuestErrors, OccurrenceContext, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult, RegistrationStep } from './types';
5
+ import type { SelectableEventTicketType } from './utils';
6
+ import type { PortalAuthState, PortalProfile } from './hooks';
7
+ import type { UseWaitlistClaimResult } from '../../shared/useWaitlistClaim';
8
+ import type { UseEventRegistrationWizardResult } from './useEventRegistrationWizard';
9
+ import type { EventRegistrationSubmitOptions, EventRegistrationSubmitResult } from './useEventRegistrationSubmit';
10
+ export declare const DEFAULT_EVENT_REGISTRATION_MAX_TICKETS = 5;
11
+ export type EventRegistrationLoadState<T> = Readonly<{
12
+ tag: 'idle';
13
+ value: T | null;
14
+ }> | Readonly<{
15
+ tag: 'loading';
16
+ value: T | null;
17
+ }> | Readonly<{
18
+ tag: 'loaded';
19
+ value: T;
20
+ }>;
21
+ export type EventRegistrationSubmitArgs = Readonly<{
22
+ method: PaymentMethod;
23
+ passId?: string;
24
+ membershipId?: string;
25
+ selection?: PaymentSelection;
26
+ }>;
27
+ export type EventRegistrationSubmitPlan = Readonly<{
28
+ ok: true;
29
+ args: EventRegistrationSubmitArgs;
30
+ }> | Readonly<{
31
+ ok: false;
32
+ reason: 'payment-selection-required';
33
+ message: string;
34
+ }>;
35
+ export type EventRegistrationFlowStatus = Readonly<{
36
+ tag: 'ready';
37
+ }> | Readonly<{
38
+ tag: 'submitting';
39
+ }> | Readonly<{
40
+ tag: 'redirecting';
41
+ }> | Readonly<{
42
+ tag: 'verifying-payment';
43
+ }> | Readonly<{
44
+ tag: 'verifying-timeout';
45
+ }> | Readonly<{
46
+ tag: 'payment-failed';
47
+ message: string;
48
+ }> | Readonly<{
49
+ tag: 'success';
50
+ result: RegistrationResult;
51
+ }> | Readonly<{
52
+ tag: 'error';
53
+ message: string;
54
+ }>;
55
+ export type EventRegistrationFlowView = Readonly<{
56
+ kind: 'empty';
57
+ message: string;
58
+ }> | Readonly<{
59
+ kind: 'unavailable';
60
+ message: string;
61
+ }> | Readonly<{
62
+ kind: 'form';
63
+ }> | Readonly<{
64
+ kind: 'verifying';
65
+ message: string;
66
+ }> | Readonly<{
67
+ kind: 'success';
68
+ result: RegistrationResult;
69
+ }> | Readonly<{
70
+ kind: 'error';
71
+ message: string;
72
+ }>;
73
+ export type EventRegistrationFlowStepId = 'select-event' | 'select-tickets' | 'enter-details' | 'select-payment';
74
+ export type EventRegistrationFlowStepState = 'complete' | 'active' | 'available' | 'blocked';
75
+ export type EventRegistrationFlowStep = Readonly<{
76
+ id: EventRegistrationFlowStepId;
77
+ label: string;
78
+ state: EventRegistrationFlowStepState;
79
+ index: number;
80
+ canEnter: boolean;
81
+ canLeave: boolean;
82
+ }>;
83
+ export type EventRegistrationFlowActionResult = Readonly<{
84
+ ok: true;
85
+ }> | Readonly<{
86
+ ok: false;
87
+ reason: 'blocked' | 'validation-failed' | 'submission-failed';
88
+ message: string;
89
+ }>;
90
+ export type EventRegistrationEventsModel = Readonly<{
91
+ items: readonly PublicEvent[];
92
+ scoped: readonly RegistrationEvent[];
93
+ selected: RegistrationEvent | null;
94
+ preSelected: RegistrationEvent | null;
95
+ hasPreSelectedContext: boolean;
96
+ target: UseEventRegistrationWizardResult['registrationTarget'];
97
+ occurrenceContext: OccurrenceContext | null | undefined;
98
+ contentEntry: EventRegistrationContentEntry | null | undefined;
99
+ }>;
100
+ export type EventRegistrationTicketsModel = Readonly<{
101
+ count: number;
102
+ max: number;
103
+ selectedTicketTypeId: string | null;
104
+ selectedTicketType: SelectableEventTicketType | null;
105
+ visibleTicketTypes: readonly SelectableEventTicketType[];
106
+ selectionRequired: boolean;
107
+ hasValidSelection: boolean;
108
+ eventRequiresPayment: boolean;
109
+ selectedAttendanceMode: 'in_person' | 'online' | null;
110
+ }>;
111
+ export type EventRegistrationAttendeeModel = Readonly<{
112
+ values: FormData;
113
+ errors: Partial<Record<keyof FormData, string>>;
114
+ }>;
115
+ export type EventRegistrationGuestsModel = Readonly<{
116
+ required: boolean;
117
+ items: readonly Guest[];
118
+ errors: GuestErrors;
119
+ shake: boolean;
120
+ }>;
121
+ export type EventRegistrationPaymentSelection = Readonly<{
122
+ method: 'none';
123
+ }> | Readonly<{
124
+ method: 'free';
125
+ }> | Readonly<{
126
+ method: 'stripe';
127
+ }> | Readonly<{
128
+ method: 'pass';
129
+ passId: string;
130
+ productName?: string;
131
+ }> | Readonly<{
132
+ method: 'membership';
133
+ membershipId: string;
134
+ productName?: string;
135
+ }> | Readonly<{
136
+ method: 'pass_bundle';
137
+ passId: string;
138
+ productName?: string;
139
+ }> | Readonly<{
140
+ method: 'membership_bundle';
141
+ membershipId: string;
142
+ productName?: string;
143
+ }>;
144
+ export type EventRegistrationPaymentModel = Readonly<{
145
+ kind: 'hidden';
146
+ selection: EventRegistrationPaymentSelection;
147
+ stepState: PaymentStepState;
148
+ }> | Readonly<{
149
+ kind: 'loading' | 'error' | 'not-eligible' | 'ready';
150
+ selection: EventRegistrationPaymentSelection;
151
+ stepState: PaymentStepState;
152
+ eligibility: EligibilityData | null;
153
+ eligibilityError: string | null | undefined;
154
+ }>;
155
+ export type EventRegistrationDiscountModel = Readonly<{
156
+ code: string;
157
+ isOpen: boolean;
158
+ available: boolean;
159
+ manualCodeEntryAllowed: boolean;
160
+ loading: boolean;
161
+ autoAppliedDiscount: UseEventRegistrationWizardResult['autoAppliedDiscount'];
162
+ }>;
163
+ export type EventRegistrationPortalAuthModel = Readonly<{
164
+ state: PortalAuthState;
165
+ profile: PortalProfile | null;
166
+ isAuthenticated: boolean;
167
+ showMagicLinkModal: boolean;
168
+ }>;
169
+ export type EventRegistrationSpamProtectionModel = Readonly<{
170
+ enabled: false;
171
+ }> | Readonly<{
172
+ enabled: true;
173
+ provider: 'altcha';
174
+ challenge: {
175
+ url: string;
176
+ auto: 'onfocus';
177
+ };
178
+ solution: string | null;
179
+ }>;
180
+ export type EventRegistrationTerminalModel = Readonly<{
181
+ result: RegistrationResult | null;
182
+ errorMessage: string;
183
+ verification: UseEventRegistrationWizardResult['verification'];
184
+ }>;
185
+ export type EventRegistrationFlowActions = Readonly<{
186
+ selectEvent: (event: RegistrationEvent) => void;
187
+ selectAttendanceMode: (mode: 'in_person' | 'online' | null) => void;
188
+ selectTicketType: (ticketTypeId: string | null) => void;
189
+ setTicketsCount: (count: number) => void;
190
+ updateAttendee: (values: FormData) => void;
191
+ updateGuests: (guests: Guest[]) => void;
192
+ selectPayment: (selection: EventRegistrationPaymentSelection) => void;
193
+ setDiscountCode: (code: string) => void;
194
+ setDiscountOpen: (isOpen: boolean) => void;
195
+ setAltchaSolution: (solution: string | null) => void;
196
+ requestLogin: () => void;
197
+ logout: () => void;
198
+ next: () => Promise<EventRegistrationFlowActionResult>;
199
+ back: () => void;
200
+ submit: (options?: EventRegistrationSubmitOptions) => Promise<EventRegistrationSubmitResult>;
201
+ retry: () => void;
202
+ }>;
203
+ export type HeadlessEventRegistrationFlow = Readonly<{
204
+ status: EventRegistrationFlowStatus;
205
+ view: EventRegistrationFlowView;
206
+ steps: readonly EventRegistrationFlowStep[];
207
+ currentStep: EventRegistrationFlowStep | null;
208
+ events: EventRegistrationEventsModel;
209
+ tickets: EventRegistrationTicketsModel;
210
+ attendee: EventRegistrationAttendeeModel;
211
+ guests: EventRegistrationGuestsModel;
212
+ payment: EventRegistrationPaymentModel;
213
+ discount: EventRegistrationDiscountModel;
214
+ portalAuth: EventRegistrationPortalAuthModel;
215
+ existingRegistration: Readonly<{
216
+ state: EventRegistrationLoadState<UseEventRegistrationWizardResult['existingRegistration']>;
217
+ registration: UseEventRegistrationWizardResult['existingRegistration'];
218
+ }>;
219
+ waitlistClaim: UseWaitlistClaimResult;
220
+ spamProtection: EventRegistrationSpamProtectionModel;
221
+ terminal: EventRegistrationTerminalModel;
222
+ actions: EventRegistrationFlowActions;
223
+ }>;
224
+ export type EventRegistrationOverrideData = Readonly<{
225
+ events?: readonly PublicEvent[] | null;
226
+ }>;
227
+ export type EventRegistrationOverridePropsLike = Readonly<{
228
+ content?: Partial<{
229
+ maxTickets: string | null;
230
+ showVenue: boolean | null;
231
+ showCapacity: boolean | null;
232
+ successMessage: string | null;
233
+ waitlistMessage: string | null;
234
+ buttonVariant: 'primary' | 'secondary' | 'outline' | null;
235
+ buttonText: string | null;
236
+ spamProtectionEnabled: boolean | null;
237
+ supportEmail: string | null;
238
+ }> | null;
239
+ data?: EventRegistrationOverrideData | Record<string, unknown> | null;
240
+ siteId?: string;
241
+ apiBaseUrl?: string;
242
+ portalToken?: string | null;
243
+ previewToken?: string | null;
244
+ stage?: 'preview' | 'published';
245
+ occurrenceContext?: OccurrenceContext | null;
246
+ contentEntry?: Record<string, unknown> | null;
247
+ blockId?: string | null;
248
+ }>;
249
+ export type EventRegistrationOverrideInput = Readonly<{
250
+ siteId: string;
251
+ apiBaseUrl: string;
252
+ portalToken: string | null;
253
+ previewToken: string | null;
254
+ stage?: 'preview' | 'published';
255
+ occurrenceContext?: OccurrenceContext | null;
256
+ contentEntry?: EventRegistrationContentEntry | null;
257
+ events: readonly PublicEvent[];
258
+ maxTickets?: string;
259
+ showVenue?: boolean;
260
+ showCapacity?: boolean;
261
+ successMessage?: string;
262
+ waitlistMessage?: string;
263
+ buttonText?: string | null;
264
+ buttonVariant?: 'primary' | 'secondary' | 'outline';
265
+ spamProtectionEnabled?: boolean;
266
+ supportEmail?: string;
267
+ blockId?: string | null;
268
+ }>;
269
+ export type EventRegistrationOverrideInputResult = Readonly<{
270
+ ok: true;
271
+ value: EventRegistrationOverrideInput;
272
+ }> | Readonly<{
273
+ ok: false;
274
+ reason: 'missing-site-id' | 'missing-api-base-url';
275
+ message: string;
276
+ }>;
277
+ export declare function createEventRegistrationBlockApiConfig(input: Readonly<{
278
+ siteId: string;
279
+ apiBaseUrl: string;
280
+ portalToken?: string | null;
281
+ previewToken?: string | null;
282
+ stage?: 'preview' | 'published';
283
+ }>): BlockApiConfig;
284
+ export declare function getRegistrableStatuses(isPreview: boolean | undefined): readonly PublicEvent['status'][];
285
+ export declare function normalizeEventRegistrationMaxTickets(value: string | number | undefined): number;
286
+ export declare function getEventRegistrationOverrideInput(props: EventRegistrationOverridePropsLike): EventRegistrationOverrideInputResult;
287
+ export declare function toHeadlessPaymentSelection(selection: PaymentSelection): EventRegistrationPaymentSelection;
288
+ export declare function toInternalPaymentSelection(selection: EventRegistrationPaymentSelection): PaymentSelection;
289
+ export declare function resolveEventRegistrationSubmitPlan(input: Readonly<{
290
+ paymentSelection: PaymentSelection;
291
+ eventRequiresPayment: boolean;
292
+ canJoinWaitlist?: boolean | null;
293
+ }>): EventRegistrationSubmitPlan;
294
+ export declare function resolveHeadlessEventRegistrationStatus(wizard: Pick<UseEventRegistrationWizardResult, 'step' | 'registrationResult' | 'errorMessage'>): EventRegistrationFlowStatus;
295
+ export declare function resolveHeadlessEventRegistrationView(wizard: Readonly<Pick<UseEventRegistrationWizardResult, 'step' | 'scopedEvents' | 'occurrenceContext' | 'registrationResult' | 'errorMessage'> & {
296
+ api: Pick<UseEventRegistrationWizardResult['api'], 'config'>;
297
+ }>): EventRegistrationFlowView;
298
+ export declare function deriveEventRegistrationSteps(input: Readonly<{
299
+ step: RegistrationStep;
300
+ hasPreSelectedContext: boolean;
301
+ eventRequiresPayment: boolean;
302
+ paymentSelection: PaymentSelection;
303
+ }>): readonly EventRegistrationFlowStep[];
@@ -2,6 +2,25 @@ import type { BlockApiClient } from '../../api';
2
2
  import type { FormData, Guest, RegistrationResult, RegistrationStep, PaymentSelection } from './types';
3
3
  import type { PaymentMethod } from '../../api/types';
4
4
  import type { RegistrationTarget } from './registrationDerivations';
5
+ export type EventRegistrationSubmitOptions = Readonly<{
6
+ redirect?: 'auto' | 'manual';
7
+ }>;
8
+ export type EventRegistrationSubmitResult = Readonly<{
9
+ ok: true;
10
+ outcome: {
11
+ kind: 'completed';
12
+ };
13
+ }> | Readonly<{
14
+ ok: true;
15
+ outcome: {
16
+ kind: 'checkout_redirect';
17
+ checkoutUrl: string;
18
+ };
19
+ }> | Readonly<{
20
+ ok: false;
21
+ reason: 'blocked' | 'missing-target' | 'submission-failed';
22
+ message: string;
23
+ }>;
5
24
  export declare function useEventRegistrationSubmit(options: {
6
25
  api: BlockApiClient;
7
26
  registrationTarget: RegistrationTarget | null;
@@ -18,4 +37,4 @@ export declare function useEventRegistrationSubmit(options: {
18
37
  setStep: (step: RegistrationStep) => void;
19
38
  setRegistrationResult: (result: RegistrationResult) => void;
20
39
  setErrorMessage: (message: string) => void;
21
- }): (method: PaymentMethod, passId?: string, membershipId?: string, selection?: PaymentSelection) => Promise<void>;
40
+ }): (method: PaymentMethod, passId?: string, membershipId?: string, selection?: PaymentSelection, submitOptions?: EventRegistrationSubmitOptions) => Promise<EventRegistrationSubmitResult>;
@@ -1,6 +1,5 @@
1
1
  import type { DiscountContext } from '../../api/types';
2
2
  import type { EventRegistrationClientProps, FormData, Guest, GuestErrors, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult, RegistrationStep } from './types';
3
- import type { PaymentMethod } from './PaymentSelectionStep';
4
3
  export declare function useEventRegistrationWizard(options: {
5
4
  anchorId: string;
6
5
  occurrenceContext: EventRegistrationClientProps['occurrenceContext'];
@@ -61,6 +60,7 @@ export declare function useEventRegistrationWizard(options: {
61
60
  altchaSolution: string | null;
62
61
  setAltchaSolution: import("react").Dispatch<import("react").SetStateAction<string | null>>;
63
62
  portalAuthState: import("./hooks").PortalAuthState;
63
+ portalProfile: import("./hooks").PortalProfile | null;
64
64
  showMagicLinkModal: boolean;
65
65
  setShowMagicLinkModal: import("react").Dispatch<import("react").SetStateAction<boolean>>;
66
66
  handleLogout: () => void;
@@ -75,6 +75,7 @@ export declare function useEventRegistrationWizard(options: {
75
75
  eligibilityError: string | null;
76
76
  existingRegistration: import("../../api").CustomerEventRegistration | null;
77
77
  existingRegistrationLoading: boolean;
78
+ existingRegistrationState: import("./hooks.state").ExistingRegistrationLookupState;
78
79
  hasEligibility: boolean;
79
80
  hasMembershipEligibility: boolean;
80
81
  requireGuestDetails: boolean;
@@ -90,10 +91,10 @@ export declare function useEventRegistrationWizard(options: {
90
91
  shouldShowDiscountToggle: boolean;
91
92
  verification: import("../../hooks/usePaymentVerification").PaymentVerificationResult;
92
93
  handleDetailsComplete: () => Promise<void>;
93
- handlePaymentSelect: (method: PaymentMethod, passId?: string, membershipId?: string) => Promise<void>;
94
+ handlePaymentSelect: () => Promise<void>;
94
95
  handleUseCardInsteadOfPass: () => void;
95
96
  handleBookForSomeoneElse: () => void;
96
- handleSubmit: (method: PaymentMethod, passId?: string, membershipId?: string, selection?: PaymentSelection) => Promise<void>;
97
+ handleSubmit: (method: import("./PaymentSelectionStep").PaymentMethod, passId?: string, membershipId?: string, selection?: PaymentSelection, submitOptions?: import("./useEventRegistrationSubmit").EventRegistrationSubmitOptions) => Promise<import("./useEventRegistrationSubmit").EventRegistrationSubmitResult>;
97
98
  handleEventSelect: (event: RegistrationEvent) => void;
98
99
  handleRetry: () => void;
99
100
  };
@@ -2,7 +2,7 @@ import type { EligibilityCheckResponse } from '../../api/types';
2
2
  import type { EligibilityData, EligibilityEventTicketType, PublicEvent, PublicEventTicketType, RegistrationEvent } from './types';
3
3
  export declare const DEFAULT_EVENT_CURRENCY = "usd";
4
4
  export type SelectableEventTicketType = EligibilityEventTicketType | PublicEventTicketType;
5
- type TicketTypeSourceEvent = Pick<PublicEvent, 'pricing'> | Pick<RegistrationEvent, 'pricing'>;
5
+ type TicketTypeSourceEvent = PublicEvent | RegistrationEvent;
6
6
  /**
7
7
  * Format date for display
8
8
  */
@@ -7,6 +7,8 @@ export type EventRegistrationContentEntry = Readonly<{
7
7
  slug: string;
8
8
  contentTypeSlug: string;
9
9
  }>;
10
+ export declare const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS: readonly ["Date", "Tickets", "Details"];
11
+ export type EventRegistrationGenericShellStepLabels = typeof EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
10
12
  export type EventRegistrationSourceProps = Readonly<{
11
13
  siteId?: string;
12
14
  apiBaseUrl?: string;
@@ -29,8 +31,11 @@ export type EventRegistrationSourceProps = Readonly<{
29
31
  }>;
30
32
  export type EventRegistrationDisplay = Readonly<{
31
33
  kind: 'event-registration';
32
- state: 'shell';
34
+ state: 'generic-shell';
33
35
  className: string | null;
36
+ titleText: string;
37
+ bodyText: string;
38
+ stepLabels: EventRegistrationGenericShellStepLabels;
34
39
  summaryButtonText: string;
35
40
  }>;
36
41
  export type EventRegistrationHydration = Readonly<Omit<InternalEventRegistrationClientProps, 'siteId' | 'stage' | 'registrationEndpoint' | 'eligibilityEndpoint' | 'checkoutEndpoint' | 'buttonText' | 'className'>>;
@@ -71,8 +76,11 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
71
76
  }>) => Readonly<{
72
77
  display: Readonly<{
73
78
  kind: "event-registration";
74
- state: "shell";
79
+ state: "generic-shell";
75
80
  className: string | null;
81
+ titleText: string;
82
+ bodyText: string;
83
+ stepLabels: EventRegistrationGenericShellStepLabels;
76
84
  summaryButtonText: string;
77
85
  }>;
78
86
  hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -132,8 +140,11 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
132
140
  encode: (value: Readonly<{
133
141
  display: Readonly<{
134
142
  kind: "event-registration";
135
- state: "shell";
143
+ state: "generic-shell";
136
144
  className: string | null;
145
+ titleText: string;
146
+ bodyText: string;
147
+ stepLabels: EventRegistrationGenericShellStepLabels;
137
148
  summaryButtonText: string;
138
149
  }>;
139
150
  hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -141,8 +152,11 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
141
152
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
142
153
  display: Readonly<{
143
154
  kind: "event-registration";
144
- state: "shell";
155
+ state: "generic-shell";
145
156
  className: string | null;
157
+ titleText: string;
158
+ bodyText: string;
159
+ stepLabels: EventRegistrationGenericShellStepLabels;
146
160
  summaryButtonText: string;
147
161
  }>;
148
162
  hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -164,8 +178,11 @@ export declare const eventRegistrationInteractiveIslandPropsCodec: Readonly<{
164
178
  } & Readonly<{
165
179
  display: Readonly<{
166
180
  kind: "event-registration";
167
- state: "shell";
181
+ state: "generic-shell";
168
182
  className: string | null;
183
+ titleText: string;
184
+ bodyText: string;
185
+ stepLabels: EventRegistrationGenericShellStepLabels;
169
186
  summaryButtonText: string;
170
187
  }>;
171
188
  hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -184,8 +201,11 @@ export declare const eventRegistrationInteractiveIslandPropsCodec: Readonly<{
184
201
  } & Readonly<{
185
202
  display: Readonly<{
186
203
  kind: "event-registration";
187
- state: "shell";
204
+ state: "generic-shell";
188
205
  className: string | null;
206
+ titleText: string;
207
+ bodyText: string;
208
+ stepLabels: EventRegistrationGenericShellStepLabels;
189
209
  summaryButtonText: string;
190
210
  }>;
191
211
  hydration: Readonly<Omit<InternalEventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -0,0 +1,14 @@
1
+ import type { PublicEventPricing } from '../../../../../../../core/src/index';
2
+ import type { PublicEventTicketType } from '../../../../blocks/events/shared/types';
3
+ type RuntimeEventPricingSource = {
4
+ pricing?: unknown;
5
+ requiresRegistration?: boolean | null;
6
+ pricingType?: unknown;
7
+ price?: unknown;
8
+ currency?: unknown;
9
+ priceDisplay?: unknown;
10
+ pricingMode?: unknown;
11
+ ticketTypes?: unknown;
12
+ };
13
+ export declare function resolveRuntimeEventPricing(event: RuntimeEventPricingSource): PublicEventPricing<PublicEventTicketType>;
14
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { type ContentEntrySnapshot, type ContentTypeSchema, type ToolbarState } from "../../../content-model/src/index";
2
2
  import type { EditorBlockId } from "../../../core/src/index";
3
- import type { BlockItem } from "../../../editor-blocks/src/index";
3
+ import type { BlockItem } from "../../../editor-blocks/src/block-editor/types";
4
4
  import { type ReactNode } from "react";
5
5
  import { type PublishOptions } from "../hooks/useEntryActions";
6
6
  import { type ApiClient } from "../services";
@@ -1,4 +1,4 @@
1
1
  import { type EditorBlockPublishedBaselineInput } from '../../../core/src/index';
2
- import type { BlockItem } from '../../../editor-blocks/src/index';
2
+ import type { BlockItem } from '../../../editor-blocks/src/block-editor/types';
3
3
  export type BlockPublishedBaselineInput = EditorBlockPublishedBaselineInput;
4
4
  export declare function buildBlockPublishedBaselines(blocks: readonly BlockItem[]): BlockPublishedBaselineInput[];
@@ -1,4 +1,4 @@
1
- import type { BlockItem } from '../../../editor-blocks/src/index';
1
+ import type { BlockItem } from '../../../editor-blocks/src/block-editor/types';
2
2
  import type { EditorUiState } from '../ui/editorUiStore';
3
3
  type StoreApi<T> = {
4
4
  getState: () => T;
@@ -1,4 +1,4 @@
1
- import type { BlockItem } from '../../../editor-blocks/src/index';
1
+ import type { BlockItem } from '../../../editor-blocks/src/block-editor/types';
2
2
  import type { EditorUiState } from '../ui/editorUiStore';
3
3
  import type { ApiClient } from '../services';
4
4
  type StoreApi<T> = {
@@ -1,4 +1,4 @@
1
- import type { BlockItem } from '../../../editor-blocks/src/index';
1
+ import type { BlockItem } from '../../../editor-blocks/src/block-editor/types';
2
2
  import type { EditorUiStoreInstance } from '../ui/editorUiStore';
3
3
  import { type RecoveryConflict } from './deriveRecoveryConflict';
4
4
  type UseInvalidBlockRecoveryOptions = Readonly<{
@@ -2,10 +2,11 @@ import type { RichTextPrimitiveProps } from "../../../blocks/src/index";
2
2
  import type { PreviewLinkedEntryFieldBinding } from '../../../blocks/src/system/data/index';
3
3
  type PreviewRichTextEditorProps = RichTextPrimitiveProps & {
4
4
  onLinkedEntryFieldFocus?: (binding: PreviewLinkedEntryFieldBinding) => void;
5
+ onBlockFieldFocus?: (path: string) => void;
5
6
  };
6
7
  /**
7
8
  * Memoized version to prevent unnecessary re-renders.
8
9
  * Only re-renders when path, doc, variant, or className props actually change.
9
10
  */
10
- export declare const PreviewRichTextEditor: import("react").MemoExoticComponent<({ path, linkedEntryField, onLinkedEntryFieldFocus, className, doc, variant }: PreviewRichTextEditorProps) => import("react").JSX.Element>;
11
+ export declare const PreviewRichTextEditor: import("react").MemoExoticComponent<({ path, linkedEntryField, onLinkedEntryFieldFocus, onBlockFieldFocus, className, doc, variant }: PreviewRichTextEditorProps) => import("react").JSX.Element>;
11
12
  export {};
@@ -2,6 +2,7 @@ import type { TextProps } from '../../../blocks/src/index';
2
2
  import type { PreviewLinkedEntryFieldBinding } from '../../../blocks/src/system/data/index';
3
3
  type PreviewTextEditorProps = TextProps & {
4
4
  onLinkedEntryFieldFocus?: (binding: PreviewLinkedEntryFieldBinding) => void;
5
+ onBlockFieldFocus?: (path: string) => void;
5
6
  };
6
7
  /**
7
8
  * Inline text editor for preview mode with local authority.
@@ -0,0 +1 @@
1
+ export * from './types';