@riverbankcms/sdk 0.82.0 → 0.84.1

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 (206) hide show
  1. package/README.md +16 -0
  2. package/dist/{PreviewEditorSidebar-LHGK6RIO.mjs → PreviewEditorSidebar-X7RLMEI6.mjs} +330 -11
  3. package/dist/{PreviewEditorUI-AXZG2SDC.mjs → PreviewEditorUI-CT67N4O3.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-EIMQ3S2V.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/EventRegistrationWizard.d.ts +0 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +275 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +10 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +22 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +3 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +20 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +13 -4
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +1 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +28 -6
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +14 -0
  61. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +1 -1
  62. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +1 -1
  63. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
  64. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +1 -1
  65. package/dist/_dts/content-editor/src/controller/useInvalidBlockRecovery.d.ts +1 -1
  66. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +2 -1
  67. package/dist/_dts/content-editor/src/primitives/PreviewTextEditor.d.ts +1 -0
  68. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  69. package/dist/_dts/content-model/src/entry-slots/types.d.ts +356 -0
  70. package/dist/_dts/content-model/src/index.d.ts +1 -0
  71. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
  72. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +100 -5
  73. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +6 -1
  74. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +7 -5
  75. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +3 -2
  76. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +3 -2
  77. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +3 -2
  78. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +27 -0
  79. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  80. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +8 -0
  81. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +37 -3
  82. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  83. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  84. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
  85. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +19 -0
  86. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +8 -0
  87. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
  88. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -1
  89. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +9 -0
  90. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +9 -8
  91. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +10 -1
  92. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +5 -1
  93. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  94. package/dist/_dts/sdk/src/bookings/types.d.ts +2 -2
  95. package/dist/_dts/sdk/src/cli/content/reader.d.ts +9 -8
  96. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -1
  97. package/dist/_dts/sdk/src/cli/helpers.d.ts +10 -5
  98. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +2 -2
  99. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +2 -1
  100. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -2
  101. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  102. package/dist/_dts/sdk/src/client/management/types.d.ts +40 -10
  103. package/dist/_dts/sdk/src/config/field-definitions.d.ts +13 -7
  104. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +26 -3
  105. package/dist/_dts/sdk/src/public-api/contracts.d.ts +13 -0
  106. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  107. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +6 -1
  108. package/dist/_dts/sdk/src/rendering/overrides.d.ts +6 -1
  109. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  110. package/dist/_dts/sdk/src/version.d.ts +1 -1
  111. package/dist/_dts/site-commands/src/commands.d.ts +15 -0
  112. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  113. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  114. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +16 -0
  115. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  116. package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
  117. package/dist/_dts/theme-core/src/cards/types.d.ts +15 -15
  118. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  119. package/dist/_dts/theme-core/src/inputs/types.d.ts +1 -1
  120. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +33 -33
  121. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  122. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +16 -0
  123. package/dist/_dts/theme-core/src/schema.d.ts +30 -25
  124. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  125. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +141 -1
  126. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -0
  127. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +110 -5
  128. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  129. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  130. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -1
  131. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  132. package/dist/_dts/theme-core/src/site-styles/types.d.ts +1 -1
  133. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  134. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +1 -0
  135. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +6 -6
  136. package/dist/{chunk-2BUMISSH.mjs → chunk-3LXFQS7T.mjs} +1 -1
  137. package/dist/{chunk-FIREV57T.mjs → chunk-LBBPD2IW.mjs} +40 -0
  138. package/dist/{chunk-XQR6THQJ.mjs → chunk-O62NDCTI.mjs} +3390 -1331
  139. package/dist/{chunk-6FWNF3DJ.mjs → chunk-QRKJDWT7.mjs} +158 -20
  140. package/dist/{chunk-HKB6XVIP.mjs → chunk-RCTJAZSK.mjs} +2 -2
  141. package/dist/{chunk-G35HOQEN.mjs → chunk-X5ZCSU6F.mjs} +132 -46
  142. package/dist/cli/index.mjs +2925 -577
  143. package/dist/cli/init-docs/content/agents-section.md +5 -0
  144. package/dist/cli/init-docs/content/cli-reference.md +13 -0
  145. package/dist/cli/init-docs/content/content-management.md +31 -0
  146. package/dist/cli/init-docs/content/getting-started.md +14 -0
  147. package/dist/cli/init-docs/content/workflow-add-block.md +3 -1
  148. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +81 -0
  149. package/dist/cli/init-docs/content/workflow-create-page.md +13 -3
  150. package/dist/cli/init-docs/content/workflow-custom-block.md +9 -0
  151. package/dist/cli/init-docs/content/workflow-templates.md +107 -2
  152. package/dist/client/{accordion-G34C45TW.mjs → accordion-2UZPBMYM.mjs} +2 -2
  153. package/dist/client/{bookingForm-BLBVKSAQ.mjs → bookingForm-DYXT6YB6.mjs} +5 -5
  154. package/dist/client/bookings.mjs +3477 -186
  155. package/dist/client/{carousel-7ZVTBRMD.mjs → carousel-QH77HR6X.mjs} +3 -3
  156. package/dist/client/{cart-Q6S6LZUO.mjs → cart-X4YK4FTW.mjs} +6 -6
  157. package/dist/client/{checkout-5QJLDE4I.mjs → checkout-OM2BEPWD.mjs} +6 -6
  158. package/dist/client/{chunk-ZF4XEWDM.mjs → chunk-3DTWLTXM.mjs} +1 -1
  159. package/dist/client/{chunk-5PQH4Y75.mjs → chunk-4OXKTA3D.mjs} +2 -2
  160. package/dist/client/{chunk-WJFHDTYF.mjs → chunk-52CGCQ7B.mjs} +5 -5
  161. package/dist/client/{chunk-CHAB5ACD.mjs → chunk-7UCLJ5SP.mjs} +2 -2
  162. package/dist/client/{chunk-U2EW7RSR.mjs → chunk-F5VRX5Y6.mjs} +1 -1
  163. package/dist/client/{chunk-SBBSMFFG.mjs → chunk-SYIJ5JO2.mjs} +1 -1
  164. package/dist/client/{chunk-EQKYMX4N.mjs → chunk-UHDWIXVR.mjs} +180 -157
  165. package/dist/client/{chunk-RJHTCTCZ.mjs → chunk-VGDBVNOO.mjs} +429 -15
  166. package/dist/client/{chunk-S3MKFGOG.mjs → chunk-ZE5G642V.mjs} +1 -1
  167. package/dist/client/{chunk-CSZGLBYR.mjs → chunk-ZKUO52W3.mjs} +1 -1
  168. package/dist/client/client.mjs +2685 -847
  169. package/dist/client/{courseRegistration-VUG2JJDB.mjs → courseRegistration-YBOGURTA.mjs} +5 -5
  170. package/dist/client/{eventCalendar-E7D2LD4N.mjs → eventCalendar-K4QJVCMD.mjs} +7 -7
  171. package/dist/client/{eventCombined-FUZ2Z3CS.mjs → eventCombined-MTXGMTCZ.mjs} +7 -7
  172. package/dist/client/{eventDetails-QRITJAOW.mjs → eventDetails-3PC4NL3U.mjs} +7 -7
  173. package/dist/client/{eventListing-INMQMJZ5.mjs → eventListing-TFJET6DN.mjs} +7 -7
  174. package/dist/client/{eventRegistration-TOOJD4WU.mjs → eventRegistration-QGPBGJTW.mjs} +7 -7
  175. package/dist/client/{form-BOWN7ZNQ.mjs → form-MDKR4FNB.mjs} +2 -2
  176. package/dist/client/{headerSection-HFQNZOUU.mjs → headerSection-Y5TMR3TW.mjs} +3 -3
  177. package/dist/client/hooks.mjs +2077 -546
  178. package/dist/client/{locationMap-VUZGC7Y5.mjs → locationMap-RH2LG7FZ.mjs} +2 -2
  179. package/dist/client/{newsletterForm-X2XQTPCB.mjs → newsletterForm-ZR5UDGBT.mjs} +2 -2
  180. package/dist/client/{productDetail-TA7D2G2B.mjs → productDetail-OIGDR4YE.mjs} +6 -6
  181. package/dist/client/{productList-AZOLOZKM.mjs → productList-4MA5S2CX.mjs} +6 -6
  182. package/dist/client/rendering/client.mjs +2560 -1205
  183. package/dist/client/rendering/islands.mjs +19 -19
  184. package/dist/client/rendering.mjs +2932 -1021
  185. package/dist/client/{shop-ZDLO7IIG.mjs → shop-WXSYV5QO.mjs} +6 -6
  186. package/dist/preview-next/before-render.mjs +40 -0
  187. package/dist/preview-next/client/runtime.mjs +5 -5
  188. package/dist/preview-next/middleware.mjs +40 -0
  189. package/dist/{sdk-runtime-CTWKNBDQ.mjs → sdk-runtime-7HJYPRWQ.mjs} +6 -6
  190. package/dist/server/components.mjs +2232 -534
  191. package/dist/server/config-validation.mjs +2068 -536
  192. package/dist/server/config.mjs +2068 -536
  193. package/dist/server/data.mjs +2077 -546
  194. package/dist/server/index.mjs +42 -1
  195. package/dist/server/next.mjs +2345 -574
  196. package/dist/server/page-converter.mjs +2684 -1220
  197. package/dist/server/prebuild.mjs +1 -1
  198. package/dist/server/rendering/server.mjs +2244 -546
  199. package/dist/server/rendering.mjs +2323 -552
  200. package/dist/server/routing.mjs +2012 -420
  201. package/dist/server/server.mjs +2153 -549
  202. package/dist/server/theme-bridge.mjs +1180 -101
  203. package/dist/server/theme.mjs +92 -1
  204. package/dist/styles/index.css +292 -36
  205. package/package.json +1 -1
  206. package/dist/SdkPreviewModeRuntime-RNVRHFFR.mjs +0 -8
@@ -1,6 +1,7 @@
1
1
  import type { ApiClient } from '../../../../api/src/request';
2
2
  import { type EditorInsertBlockCommand } from '../../../../core/src/index';
3
3
  import type { BlockItem, BlockFocusTarget } from '../types';
4
+ import { type BlockEditorOwner } from '../owner';
4
5
  type UiStore = {
5
6
  getState: () => {
6
7
  history: {
@@ -8,11 +9,11 @@ type UiStore = {
8
9
  };
9
10
  };
10
11
  };
11
- export declare function useBlockDuplication({ allowCreation, apiClient, siteId, pageId, blockList, setBlockList, onBlocksChange, triggerFocus, setErrorMessage, uiStore, }: {
12
+ export declare function useBlockDuplication({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, setErrorMessage, uiStore, }: {
12
13
  allowCreation: boolean;
13
14
  apiClient: ApiClient;
14
15
  siteId: string;
15
- pageId: string;
16
+ owner: BlockEditorOwner;
16
17
  blockList: BlockItem[];
17
18
  setBlockList: (next: BlockItem[]) => void;
18
19
  onBlocksChange?: (blocks: BlockItem[]) => void;
@@ -2,6 +2,7 @@ import type { ApiClient } from '../../../../api/src/request';
2
2
  import { createEditorReorderBlocksCommand } from '../../../../core/src/index';
3
3
  import type { DragEndEvent } from '@dnd-kit/core';
4
4
  import type { BlockItem } from '../types';
5
+ import { type BlockEditorOwner } from '../owner';
5
6
  type UiStore = {
6
7
  getState: () => {
7
8
  history: {
@@ -14,11 +15,11 @@ type UiStore = {
14
15
  };
15
16
  subscribe: (listener: () => void) => () => void;
16
17
  };
17
- export declare function useBlockReorder({ allowReordering, apiClient, siteId, pageId, blockList, setBlockList, onBlocksChange, setErrorMessage, uiStore, }: {
18
+ export declare function useBlockReorder({ allowReordering, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, setErrorMessage, uiStore, }: {
18
19
  allowReordering: boolean;
19
20
  apiClient: ApiClient;
20
21
  siteId: string;
21
- pageId: string;
22
+ owner: BlockEditorOwner;
22
23
  blockList: BlockItem[];
23
24
  setBlockList: (next: BlockItem[]) => void;
24
25
  onBlocksChange?: (blocks: BlockItem[]) => void;
@@ -0,0 +1,27 @@
1
+ import type { ApiClient } from '../../../api/src/request';
2
+ export type BlockEditorOwner = Readonly<{
3
+ kind: 'page';
4
+ pageId: string;
5
+ }> | Readonly<{
6
+ kind: 'entry-slot';
7
+ type: string;
8
+ entryId: string;
9
+ slotKey: string;
10
+ }>;
11
+ export type CreateEditableBlockInput = Readonly<{
12
+ kind: string;
13
+ position?: number;
14
+ purpose?: string;
15
+ duplicatedFromBlockId?: string;
16
+ }>;
17
+ export declare function blockEditorOwnerKey(owner: BlockEditorOwner): string;
18
+ export declare function createEditableBlockForOwner(apiClient: ApiClient, siteId: string, owner: BlockEditorOwner, input: CreateEditableBlockInput): Promise<{
19
+ ok: boolean;
20
+ block: Record<string, unknown>;
21
+ }>;
22
+ export declare function reorderEditableBlocksForOwner(apiClient: ApiClient, siteId: string, owner: BlockEditorOwner, blockIds: string[]): Promise<{
23
+ ok: boolean;
24
+ }>;
25
+ export declare function deleteEditableBlockForOwner(apiClient: ApiClient, siteId: string, owner: BlockEditorOwner, blockId: string): Promise<{
26
+ ok: boolean;
27
+ }>;
@@ -1,5 +1,6 @@
1
1
  export { BlockEditor } from './BlockEditor';
2
2
  export type { BlockEditorProps } from './BlockEditor';
3
+ export type { BlockEditorOwner } from './block-editor/owner';
3
4
  export { createCustomBlockRegistry, mergeBlockDescriptorsWithRegistry, mergeBlockDescriptors, getBlockManifestFromSdkConfig, transformSdkBlockToManifest, transformSdkBlockToDefinition, transformToBlockDescriptor, } from './block-editor/sdkBlockMerger';
4
5
  export type { CustomBlockManifestSource, CustomBlockRegistry, CustomBlockRegistryEntry, ResolvedCustomBlockManifest, SdkCustomBlock, SdkConfigForBlockPicker, } from './block-editor/sdkBlockMerger';
5
6
  export type { BlockEditorHandle, BlockFocusRequest, BlockFocusTarget, BlockItem, } from './block-editor/types';
@@ -6,6 +6,14 @@ export type AssetsInUseLocationLike = Readonly<{
6
6
  pageTitle?: string | null;
7
7
  stage: AssetsInUseStage;
8
8
  blockKind: string;
9
+ }> | Readonly<{
10
+ kind: 'entrySlotBlock';
11
+ routeDraftPath?: string | null;
12
+ routePublishedPath?: string | null;
13
+ entryTitle: string;
14
+ slotKey: string;
15
+ stage: AssetsInUseStage;
16
+ blockKind: string;
9
17
  }> | Readonly<{
10
18
  kind: 'contentEntry';
11
19
  routeDraftPath?: string | null;
@@ -6,12 +6,23 @@ export type MediaUsagePageRouteProjection = Readonly<{
6
6
  draftPath: string | null;
7
7
  publishedPath: string | null;
8
8
  }>;
9
- export type MediaUsageBlockProjection = Readonly<{
9
+ export type MediaUsagePageBlockProjection = Readonly<{
10
10
  id: string;
11
11
  pageId: string;
12
12
  kind: string;
13
13
  identifier: string | null;
14
14
  }>;
15
+ export type MediaUsageEntrySlotBlockProjection = Readonly<{
16
+ id: string;
17
+ entrySlotId: string;
18
+ kind: string;
19
+ identifier: string | null;
20
+ }>;
21
+ export type MediaUsageEntrySlotProjection = Readonly<{
22
+ id: string;
23
+ contentEntryId: string;
24
+ slotKey: string;
25
+ }>;
15
26
  export type MediaUsageContentEntryProjection = Readonly<{
16
27
  id: string;
17
28
  identifier: string | null;
@@ -41,6 +52,20 @@ export type PageBlockMediaUsageLocation = Readonly<{
41
52
  blockIdentifier: string | null;
42
53
  stage: MediaUsageStage;
43
54
  }>;
55
+ export type EntrySlotBlockMediaUsageLocation = Readonly<{
56
+ kind: 'entrySlotBlock';
57
+ siteId: string;
58
+ entryId: string;
59
+ entryTitle: string;
60
+ typeKey: string;
61
+ routeDraftPath: string | null;
62
+ routePublishedPath: string | null;
63
+ slotKey: string;
64
+ blockId: string;
65
+ blockKind: string;
66
+ blockIdentifier: string | null;
67
+ stage: MediaUsageStage;
68
+ }>;
44
69
  export type ContentEntryMediaUsageLocation = Readonly<{
45
70
  kind: 'contentEntry';
46
71
  siteId: string;
@@ -57,7 +82,7 @@ export type ProductFileDownloadMediaUsageLocation = Readonly<{
57
82
  productId: string;
58
83
  productTitle: string;
59
84
  }>;
60
- export type MediaUsageLocationProjection = PageBlockMediaUsageLocation | ContentEntryMediaUsageLocation | ProductFileDownloadMediaUsageLocation;
85
+ export type MediaUsageLocationProjection = PageBlockMediaUsageLocation | EntrySlotBlockMediaUsageLocation | ContentEntryMediaUsageLocation | ProductFileDownloadMediaUsageLocation;
61
86
  export type MediaUsageCheckItemProjection = Readonly<{
62
87
  assetId: string;
63
88
  filename: string | null;
@@ -66,10 +91,19 @@ export type MediaUsageCheckItemProjection = Readonly<{
66
91
  }>;
67
92
  export declare function projectPageBlockMediaUsageLocation(params: Readonly<{
68
93
  siteId: string;
69
- block: MediaUsageBlockProjection | null;
94
+ block: MediaUsagePageBlockProjection | null;
70
95
  pageRoute: MediaUsagePageRouteProjection | null;
71
96
  stage: MediaUsageStage;
72
97
  }>): PageBlockMediaUsageLocation | null;
98
+ export declare function projectEntrySlotBlockMediaUsageLocation(params: Readonly<{
99
+ siteId: string;
100
+ block: MediaUsageEntrySlotBlockProjection | null;
101
+ entrySlot: MediaUsageEntrySlotProjection | null;
102
+ entry: MediaUsageContentEntryProjection | null;
103
+ typeKey: string | null;
104
+ route: MediaUsageRouteProjection | null;
105
+ stage: MediaUsageStage;
106
+ }>): EntrySlotBlockMediaUsageLocation | null;
73
107
  export declare function projectContentEntryMediaUsageLocation(params: Readonly<{
74
108
  siteId: string;
75
109
  entry: MediaUsageContentEntryProjection | null;
@@ -1,5 +1,5 @@
1
1
  import type { BlockItem } from '../../../../editor-blocks/src/index';
2
- import type { PageDesignEditorReadModel, SurfaceResolutionContext } from '../../../../theme-core/src/site-styles/previewCompiler';
2
+ import type { DesignRuntimeRules, PageDesignEditorReadModel, SurfaceResolutionContext } from '../../../../theme-core/src/site-styles/previewCompiler';
3
3
  import type { PreviewPageDesignEditorState } from '../preview/PageDesignEditorStateContext';
4
4
  import { type RuntimeContentDecorationProjection } from './previewProjection';
5
5
  export type RuntimePreviewSource = Readonly<{
@@ -8,12 +8,14 @@ export type RuntimePreviewSource = Readonly<{
8
8
  kind: 'apply-editor-model';
9
9
  editorModel: PageDesignEditorReadModel;
10
10
  surfaceResolutionContext: SurfaceResolutionContext;
11
+ designRules?: DesignRuntimeRules;
11
12
  }>;
12
13
  export declare function applyPageDesignRuntimeFieldsToBlockItems(blockItems: readonly BlockItem[], source: RuntimePreviewSource): BlockItem[];
13
14
  export declare function applyPageDesignRuntimeFieldsToBlockContent(block: BlockItem, content: Record<string, unknown> | null, source: RuntimePreviewSource): Record<string, unknown> | null;
14
- export declare function buildPageDesignRuntimeFieldsByBlockId(editorModel: PageDesignEditorReadModel, surfaceResolutionContext: SurfaceResolutionContext): RuntimeContentDecorationProjection['fieldsByBlockId'];
15
+ export declare function buildPageDesignRuntimeFieldsByBlockId(editorModel: PageDesignEditorReadModel, surfaceResolutionContext: SurfaceResolutionContext, designRules?: DesignRuntimeRules): RuntimeContentDecorationProjection['fieldsByBlockId'];
15
16
  export declare function pageDesignRuntimeProjectionFromSource(source: RuntimePreviewSource): RuntimeContentDecorationProjection | null;
16
17
  export declare function resolveRuntimePreviewSource(input: Readonly<{
17
18
  pageDesignState: PreviewPageDesignEditorState;
18
19
  surfaceResolutionContext: SurfaceResolutionContext | null;
20
+ designRules?: DesignRuntimeRules;
19
21
  }>): RuntimePreviewSource;
@@ -1,5 +1,5 @@
1
1
  import type { BlockItem } from '../../../../../editor-blocks/src/index';
2
- import { type PageDesignEditorReadModel, type SurfaceResolutionContext } from '../../../../../theme-core/src/site-styles/previewCompiler';
2
+ import { type DesignRuntimeRules, type PageDesignEditorReadModel, type SurfaceResolutionContext } from '../../../../../theme-core/src/site-styles/previewCompiler';
3
3
  import type { CanonicalBlockContent, PreviewRenderContent, RuntimeContentDecorationProjection } from './types';
4
- export declare function runtimeContentDecorationProjectionFromEditorModel(editorModel: PageDesignEditorReadModel, surfaceResolutionContext: SurfaceResolutionContext): RuntimeContentDecorationProjection;
4
+ export declare function runtimeContentDecorationProjectionFromEditorModel(editorModel: PageDesignEditorReadModel, surfaceResolutionContext: SurfaceResolutionContext, designRules?: DesignRuntimeRules): RuntimeContentDecorationProjection;
5
5
  export declare function applyRuntimeContentDecorationProjection(block: BlockItem, content: CanonicalBlockContent | PreviewRenderContent | null, projection: RuntimeContentDecorationProjection): PreviewRenderContent;
@@ -4,6 +4,7 @@ import { type ContentTypeSchema } from '../../../../content-model/src/index';
4
4
  import { type ZoomLevel } from '../../../../content-editor/src/index';
5
5
  import type { EntrySubrouteContextData, MediaAssetIndexItem, Theme } from '../../../../blocks/src/index';
6
6
  import type { FieldWidgetComponent } from '../../../../block-form/src/client/index';
7
+ import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
7
8
  import { type ViewportMode, type ViewportWidth } from './PreviewViewportControls';
8
9
  import type { PreviewEditorSidebarProps, PreviewTemplateData } from './PreviewEditorSidebar';
9
10
  import { type PreviewLinkedEntrySidebarSection } from './PreviewSidebarSection';
@@ -23,6 +24,7 @@ type EntryEditorPanelProps = {
23
24
  linkedEntrySection?: PreviewLinkedEntrySidebarSection | null;
24
25
  mediaAssets?: MediaAssetIndexItem[];
25
26
  widgets: Record<string, FieldWidgetComponent>;
27
+ sdkConfig?: SdkConfigForBlockPicker | null;
26
28
  viewportMode: ViewportMode;
27
29
  viewportWidth: ViewportWidth;
28
30
  zoom: ZoomLevel;
@@ -30,5 +32,5 @@ type EntryEditorPanelProps = {
30
32
  onViewportWidthChange: (width: ViewportWidth) => void;
31
33
  onZoomChange: (zoom: ZoomLevel) => void;
32
34
  };
33
- export declare function EntryEditorPanel({ siteId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, metadataPanel, linkedEntrySection, mediaAssets, widgets, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: EntryEditorPanelProps): React.JSX.Element;
35
+ export declare function EntryEditorPanel({ siteId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, metadataPanel, linkedEntrySection, mediaAssets, widgets, sdkConfig, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: EntryEditorPanelProps): React.JSX.Element;
34
36
  export {};
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import type { ApiClient } from "../../../../api/src/request";
3
+ import type { MediaAssetIndexItem, Theme } from "../../../../blocks/src/index";
4
+ import type { FieldWidgetComponent } from "../../../../block-form/src/client/index";
5
+ import type { SdkConfigForBlockPicker } from "../../../../editor-blocks/src/index";
6
+ type EntrySlotBlockEditorPanelProps = {
7
+ siteId: string;
8
+ typeKey: string;
9
+ entryId: string;
10
+ theme?: Theme | null;
11
+ apiClient: ApiClient;
12
+ bearerToken?: string | null;
13
+ supabaseUrl?: string;
14
+ sdkConfig?: SdkConfigForBlockPicker | null;
15
+ mediaAssets?: MediaAssetIndexItem[];
16
+ widgets: Record<string, FieldWidgetComponent>;
17
+ };
18
+ export declare function EntrySlotBlockEditorPanel({ siteId, typeKey, entryId, theme, apiClient, bearerToken, supabaseUrl, sdkConfig, mediaAssets, widgets, }: EntrySlotBlockEditorPanelProps): React.JSX.Element | null;
19
+ export {};
@@ -4,3 +4,11 @@ export declare function SiteChromeCustomizeButton({ surface, containerClassName,
4
4
  surface: SiteChromeEditableSurfaceKind;
5
5
  containerClassName?: string;
6
6
  }): React.JSX.Element;
7
+ type SiteChromeCustomizePopoverSide = 'above' | 'below';
8
+ export declare function chooseSiteChromeCustomizePopoverSide(input: Readonly<{
9
+ preferredSide: SiteChromeCustomizePopoverSide;
10
+ panelHeight: number;
11
+ availableAbove: number;
12
+ availableBelow: number;
13
+ }>): SiteChromeCustomizePopoverSide;
14
+ export {};
@@ -3,7 +3,7 @@ import { type ApiClient } from '../../../../api/src/request';
3
3
  import type { Theme } from '../../../../blocks/src/index';
4
4
  import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
5
5
  import type { PaletteOverrides, PaletteVariantId } from '../../../../theme-core/src/palette/index';
6
- import type { BrandDisplayMode, FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId, LogoSizePolicy, SiteChromeBackgroundColorToken, SiteChromeBackgroundOverride, TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
6
+ import type { BrandDisplayMode, FooterLayoutId, FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId, LogoSizePolicy, SiteChromeBackgroundColorToken, SiteChromeBackgroundOverride, TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
7
7
  import { type StyleConfiguratorHistoryEntry } from './StyleConfigurator.state';
8
8
  import type { SiteStyleAccess } from './siteStyleAccess';
9
9
  import { type SiteChromeLookOption } from './siteChromeLookRows';
@@ -75,6 +75,9 @@ type SiteChromeCustomizeSurfaceState = Readonly<{
75
75
  kind: 'available';
76
76
  surface: 'footer';
77
77
  label: string;
78
+ currentLayoutId: FooterLayoutId;
79
+ currentLayoutLabel: string;
80
+ layoutOptions: readonly SiteChromeLookOption<FooterLayoutId>[];
78
81
  currentId: FooterLookId | null;
79
82
  currentLabel: string;
80
83
  options: readonly SiteChromeLookOption<FooterLookId | null>[];
@@ -25,7 +25,7 @@ export type StyleConfiguratorSaveStatus = Readonly<{
25
25
  kind: 'failed';
26
26
  message: string;
27
27
  }>;
28
- export type StyleConfiguratorExpandedRow = 'style' | 'header-layout' | 'header-style' | 'footer' | 'buttons' | 'typography' | 'palette' | 'colours' | null;
28
+ export type StyleConfiguratorExpandedRow = 'style' | 'header-layout' | 'header-style' | 'footer-layout' | 'footer' | 'buttons' | 'typography' | 'palette' | 'colours' | null;
29
29
  /**
30
30
  * Configurator-level notices that aren't compiler selection fallback warnings.
31
31
  * Kept separate from `SelectionFallbackWarning` (which comes from
@@ -1,9 +1,18 @@
1
1
  import type { LinkedContentEditTarget, PreviewLinkedEntryFieldBinding } from '../../../../blocks/src/system/data/index';
2
2
  export declare const LINKED_ENTRY_EDIT_EVENT: "riverbank:preview:linked-entry-edit";
3
3
  export declare const LINKED_ENTRY_FIELD_FOCUS_EVENT: "riverbank:preview:linked-entry-field-focus";
4
+ export declare const BLOCK_FIELD_FOCUS_EVENT: "riverbank:preview:block-field-focus";
4
5
  export type LinkedEntryEditEvent = CustomEvent<LinkedContentEditTarget>;
5
6
  export type LinkedEntryFieldFocusEvent = CustomEvent<PreviewLinkedEntryFieldBinding>;
7
+ export type BlockFieldFocusTarget = Readonly<{
8
+ kind: 'block-field';
9
+ blockId: string;
10
+ fieldPath: string;
11
+ }>;
12
+ export type BlockFieldFocusEvent = CustomEvent<BlockFieldFocusTarget>;
6
13
  export declare function dispatchLinkedEntryEditEvent(target: LinkedContentEditTarget): void;
7
14
  export declare function dispatchLinkedEntryFieldFocusEvent(binding: PreviewLinkedEntryFieldBinding): void;
15
+ export declare function dispatchBlockFieldFocusEvent(target: BlockFieldFocusTarget): void;
8
16
  export declare function isLinkedEntryEditEvent(event: Event): event is LinkedEntryEditEvent;
9
17
  export declare function isLinkedEntryFieldFocusEvent(event: Event): event is LinkedEntryFieldFocusEvent;
18
+ export declare function isBlockFieldFocusEvent(event: Event): event is BlockFieldFocusEvent;
@@ -1,4 +1,4 @@
1
- import React, { type KeyboardEvent, type MouseEvent, type ReactNode, type Ref } from 'react';
1
+ import React, { type KeyboardEvent, type MouseEvent, type ReactNode, type RefObject } from 'react';
2
2
  export type CustomizeControlUnavailableReason = 'single-option' | 'preview-only';
3
3
  export type CustomizeControlAvailability = Readonly<{
4
4
  kind: 'available';
@@ -15,16 +15,16 @@ export type CustomizePopoverController = Readonly<{
15
15
  open: boolean;
16
16
  close: () => void;
17
17
  toggle: (event: MouseEvent<HTMLElement>) => void;
18
- buttonRef: Ref<HTMLButtonElement>;
18
+ buttonRef: RefObject<HTMLButtonElement | null>;
19
19
  panelId: string;
20
20
  descriptionId: string;
21
- dialogRef: Ref<HTMLDivElement>;
22
- registerInitialFocus: Ref<HTMLButtonElement>;
21
+ dialogRef: RefObject<HTMLDivElement | null>;
22
+ registerInitialFocus: (node: HTMLButtonElement | null) => void;
23
23
  handleDialogKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void;
24
24
  }>;
25
25
  export declare function useCustomizePopoverController(): CustomizePopoverController;
26
26
  export type CustomizePillButtonProps = Readonly<{
27
- buttonRef: Ref<HTMLButtonElement>;
27
+ buttonRef: RefObject<HTMLButtonElement | null>;
28
28
  ariaLabel: string;
29
29
  open: boolean;
30
30
  controlsId: string;
@@ -38,14 +38,15 @@ export type CustomizePopoverShellProps = Readonly<{
38
38
  dialogLabel: string;
39
39
  eyebrow: string;
40
40
  title: string;
41
- dialogRef: Ref<HTMLDivElement>;
42
- closeButtonRef: Ref<HTMLButtonElement>;
41
+ dialogRef: RefObject<HTMLDivElement | null>;
42
+ closeButtonRef: (node: HTMLButtonElement | null) => void;
43
43
  onClose: () => void;
44
44
  onKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void;
45
45
  spacing?: 'normal' | 'compact';
46
+ side?: 'above' | 'below';
46
47
  children: ReactNode;
47
48
  }>;
48
- export declare function CustomizePopoverShell({ panelId, descriptionId, dialogLabel, eyebrow, title, dialogRef, closeButtonRef, onClose, onKeyDown, spacing, children, }: CustomizePopoverShellProps): React.JSX.Element;
49
+ export declare function CustomizePopoverShell({ panelId, descriptionId, dialogLabel, eyebrow, title, dialogRef, closeButtonRef, onClose, onKeyDown, spacing, side, children, }: CustomizePopoverShellProps): React.JSX.Element;
49
50
  export type CustomizeCycleRowProps = Readonly<{
50
51
  label: string;
51
52
  valueLabel: string;
@@ -1,5 +1,5 @@
1
1
  import { type CuratedSiteStyle } from '../../../../theme-core/src/site-styles/previewCompiler';
2
- import { type FooterLookId, type FooterSelectionContext, type HeaderLayoutId, type HeaderLookId, type HeaderSelectionContext, type HeaderStyleId, type LookCustomizationWritePlan } from '../../../../theme-core/src/site-styles/index';
2
+ import { type FooterLayoutId, type FooterLookId, type FooterSelectionContext, type HeaderLayoutId, type HeaderLookId, type HeaderSelectionContext, type HeaderStyleId, type LookCustomizationWritePlan } from '../../../../theme-core/src/site-styles/index';
3
3
  import type { SelectionSnapshot, StyleConfiguratorState } from './StyleConfigurator.state';
4
4
  export type SiteChromeLookOption<TId extends string | null> = Readonly<{
5
5
  id: TId;
@@ -25,6 +25,10 @@ export type SiteChromeLookModels = Readonly<{
25
25
  options: readonly SiteChromeLookOption<HeaderStyleId>[];
26
26
  renderedStyleId: HeaderStyleId;
27
27
  }>;
28
+ footerLayout: Readonly<{
29
+ options: readonly SiteChromeLookOption<FooterLayoutId>[];
30
+ renderedLayoutId: FooterLayoutId;
31
+ }>;
28
32
  footer: SiteChromeLookRowModel<FooterLookId>;
29
33
  }>;
30
34
  type SiteChromeLookModelInput = Readonly<{
@@ -44,6 +48,10 @@ export type SiteChromeLookSelectionCommand = Readonly<{
44
48
  surface: 'footer';
45
49
  lookId: FooterLookId | null;
46
50
  }>;
51
+ export type SiteChromeFooterLayoutSelectionCommand = Readonly<{
52
+ layoutId: FooterLayoutId;
53
+ currentLookId: FooterLookId;
54
+ }>;
47
55
  export type SiteChromeLookSelectionPlan = Readonly<{
48
56
  kind: 'header';
49
57
  writePlan: LookCustomizationWritePlan<HeaderLookId>;
@@ -54,4 +62,5 @@ export type SiteChromeLookSelectionPlan = Readonly<{
54
62
  next: Pick<SelectionSnapshot, 'footerLookId'>;
55
63
  }>;
56
64
  export declare function planSiteChromeLookSelection(command: SiteChromeLookSelectionCommand): SiteChromeLookSelectionPlan;
65
+ export declare function planSiteChromeFooterLayoutSelection(command: SiteChromeFooterLayoutSelectionCommand): FooterLookId | undefined;
57
66
  export {};
@@ -16,6 +16,10 @@ export type SiteChromeQuickControlHistoryEntry = Readonly<{
16
16
  kind: 'footer-look';
17
17
  previous: FooterLookId | null;
18
18
  next: FooterLookId | null;
19
+ }> | Readonly<{
20
+ kind: 'footer-layout';
21
+ previous: FooterLookId | null;
22
+ next: FooterLookId | null;
19
23
  }> | Readonly<{
20
24
  kind: 'header-background';
21
25
  previous: SiteChromeBackgroundOverride;
@@ -93,7 +97,7 @@ export type SiteChromeQuickControlHistoryFailure = Readonly<{
93
97
  kind: 'retryable' | 'stale';
94
98
  message: string;
95
99
  }>;
96
- export type SiteChromeQuickControlSelectionTarget = 'header-layout' | 'header-style' | 'footer-look';
100
+ export type SiteChromeQuickControlSelectionTarget = 'header-layout' | 'header-style' | 'footer-layout' | 'footer-look';
97
101
  export type SiteChromeQuickControlBrandTarget = 'header-brand-display' | 'header-logo-size';
98
102
  export type SiteChromeQuickControlBackgroundTarget = 'header-background' | 'footer-background';
99
103
  export declare function createSiteChromeQuickControlHistoryState(present: SiteChromeQuickControlHistoryPresentInput): SiteChromeQuickControlHistoryState;
@@ -25,13 +25,14 @@
25
25
  * @packageDocumentation
26
26
  */
27
27
  import * as React from 'react';
28
- import { HeadlessBookingAltchaWidget, createBookingBlockApiConfig, getAppointmentBookingOverrideInput, useHeadlessBookingFlow } from '../../../blocks/src/client';
29
- import type { BookingFormClientProps, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, UseBookingFormConfigResult } from './types';
28
+ import { HeadlessBookingAltchaWidget, HeadlessEventRegistrationAltchaWidget, createBookingBlockApiConfig, createEventRegistrationBlockApiConfig, getAppointmentBookingOverrideInput, getEventRegistrationOverrideInput, useHeadlessBookingFlow, useHeadlessEventRegistrationFlow } from '../../../blocks/src/client';
29
+ import type { BookingFormClientProps, HeadlessEventRegistrationProviderProps, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, UseBookingFormConfigResult } from './types';
30
30
  export declare const BookingFormClient: React.FC<BookingFormClientProps>;
31
31
  export declare function useBookingFormConfig(siteId: string, formId: string): UseBookingFormConfigResult;
32
32
  export declare const HeadlessBookingProvider: React.FC<HeadlessBookingProviderProps>;
33
+ export declare const HeadlessEventRegistrationProvider: React.FC<HeadlessEventRegistrationProviderProps>;
33
34
  export declare const HeadlessBookingPaymentSelectionStep: React.FC<HeadlessBookingPaymentSelectionStepProps>;
34
35
  export { BOOKING_FORM_DATA_RESERVED_KEY_VALUES } from '../../../blocks/src/client';
35
- export { HeadlessBookingAltchaWidget, createBookingBlockApiConfig, getAppointmentBookingOverrideInput, useHeadlessBookingFlow, };
36
+ export { HeadlessBookingAltchaWidget, HeadlessEventRegistrationAltchaWidget, createBookingBlockApiConfig, createEventRegistrationBlockApiConfig, getAppointmentBookingOverrideInput, getEventRegistrationOverrideInput, useHeadlessBookingFlow, useHeadlessEventRegistrationFlow, };
36
37
  export type { BookingService, BookingFormConfig } from './types';
37
- export type { Service, TimeSlot, BookingFormSettings, BookingFormSchema, BookingFormField, BookingFormData, BookingSelectedCollectionOptionKind, BookingSubmissionData, BookingSubmissionResult, BookingFormClientProps, BookingFormClientForm, BookingFormClientService, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingProviderProps, AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingResourcesModel, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, UseBookingFormConfigResult, } from './types';
38
+ export type { Service, TimeSlot, BookingFormSettings, BookingFormSchema, BookingFormField, BookingFormData, BookingSelectedCollectionOptionKind, BookingSubmissionData, BookingSubmissionResult, BookingFormClientProps, BookingFormClientForm, BookingFormClientService, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingResourcesModel, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, UseBookingFormConfigResult, } from './types';
@@ -8,10 +8,10 @@
8
8
  * responses.
9
9
  */
10
10
  import type { BookingFlexibleBalanceConfig, BookingInstalmentPlanConfig } from '../../../core/src/index';
11
- import type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps } from '../../../blocks/src/client';
11
+ import type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps } from '../../../blocks/src/client';
12
12
  import type { BookingFormData as BlocksBookingFormData, BookingSelectedCollectionOptionKind } from '../../../blocks/src/client';
13
13
  export { BOOKING_FORM_DATA_RESERVED_KEY_VALUES, } from '../../../blocks/src/client';
14
- export type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, BookingSelectedCollectionOptionKind, };
14
+ export type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, BookingSelectedCollectionOptionKind, };
15
15
  /**
16
16
  * A bookable service (e.g., "30-minute consultation", "Hair cut")
17
17
  *
@@ -5,6 +5,7 @@
5
5
  * Mirrors the structure created by writer.ts.
6
6
  */
7
7
  import type { NavigationAuthoringLinkInput, NavigationLocalItemInput } from '../../../../api/src/navigation';
8
+ import type { SdkEventPricingInput } from '../../../../api/src/sdk-event-pricing';
8
9
  import type { Theme } from '../../contracts';
9
10
  export interface LocalEntry {
10
11
  identifier: string;
@@ -13,6 +14,11 @@ export interface LocalEntry {
13
14
  hasUnpublishedChanges?: boolean;
14
15
  slug?: string;
15
16
  manualOrder?: number;
17
+ blocks?: Record<string, Array<{
18
+ identifier?: string | null;
19
+ kind: string;
20
+ content: Record<string, unknown>;
21
+ }>>;
16
22
  }
17
23
  export declare class LegacyEntryTitleError extends Error {
18
24
  readonly filePath: string;
@@ -148,15 +154,10 @@ export interface LocalEventSchedule {
148
154
  startDate?: string | null;
149
155
  defaultStartTime?: string | null;
150
156
  durationMinutes?: number | null;
157
+ startsAt?: string | null;
158
+ endsAt?: string | null;
151
159
  }
152
- export interface LocalEventPricing {
153
- requiresPayment?: boolean;
154
- priceAmount?: number | null;
155
- priceCurrency?: string;
156
- priceDisplay?: string | null;
157
- acceptsPasses?: boolean;
158
- acceptsMemberships?: boolean;
159
- }
160
+ export type LocalEventPricing = SdkEventPricingInput;
160
161
  export interface LocalEventContent {
161
162
  summary?: string | null;
162
163
  body?: string | Record<string, unknown> | null;
@@ -5,12 +5,16 @@
5
5
  */
6
6
  import type { PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledFooter, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses } from '../../client/management/types';
7
7
  import type { Theme } from '../../contracts';
8
+ import { type PulledEntryOutput } from '../helpers';
8
9
  import type { EntryBaseSnapshotTarget } from '../merge-remote/entrySnapshots';
9
10
  export interface WriterOptions {
10
11
  skipMeta?: boolean;
11
12
  cleanupMissing?: boolean;
12
13
  entryBaseSnapshot?: EntryBaseSnapshotTarget;
13
14
  }
15
+ type WritablePulledEntries = Omit<PulledEntries, 'entries'> & {
16
+ entries: PulledEntryOutput[];
17
+ };
14
18
  /**
15
19
  * Write entries to content directory
16
20
  *
@@ -20,7 +24,7 @@ export interface WriterOptions {
20
24
  * This is a breaking change from the old format (one file per content type).
21
25
  * Old format files are automatically deleted on pull.
22
26
  */
23
- export declare function writeEntries(contentDir: string, pulledEntries: PulledEntries, options?: WriterOptions): Promise<{
27
+ export declare function writeEntries(contentDir: string, pulledEntries: WritablePulledEntries, options?: WriterOptions): Promise<{
24
28
  dirPath: string;
25
29
  metaPath: string;
26
30
  count: number;
@@ -209,3 +213,4 @@ export declare function writeAllContent(contentDir: string, content: {
209
213
  settings: PulledSettings;
210
214
  forms?: PulledForms;
211
215
  }): Promise<WriteAllResult>;
216
+ export {};
@@ -95,23 +95,28 @@ export interface PulledEntryOutput {
95
95
  hasUnpublishedChanges: boolean;
96
96
  /** Slug for URL routing - only present for routable content types */
97
97
  slug?: string;
98
- /** Resolved title (routable title when present, otherwise content title) */
99
- title: string;
100
98
  manualOrder?: number;
99
+ blocks?: Record<string, Array<{
100
+ identifier: string | null;
101
+ kind: string;
102
+ content: Record<string, unknown>;
103
+ }>>;
101
104
  }
102
105
  /**
103
106
  * Map an entry from API response to pull output format.
104
107
  * Conditionally includes slug only for routable content (when slug is defined).
105
108
  */
106
- export declare function mapEntryForOutput<T extends {
109
+ export interface EntryForOutput {
107
110
  identifier: string;
108
111
  data: Record<string, unknown>;
109
112
  status: 'draft' | 'published';
110
113
  hasUnpublishedChanges: boolean;
111
114
  slug?: string;
112
- title: string;
115
+ title?: string;
113
116
  manualOrder?: number;
114
- }>(entry: T): PulledEntryOutput;
117
+ blocks?: PulledEntryOutput['blocks'];
118
+ }
119
+ export declare function mapEntryForOutput<T extends EntryForOutput>(entry: T): PulledEntryOutput;
115
120
  /**
116
121
  * Parse pagination options from command flags.
117
122
  *
@@ -1,3 +1,3 @@
1
- import type { PulledEntries } from '../../client/management/types';
1
+ import type { EntryForOutput } from '../helpers';
2
2
  import type { LocalEntry } from '../content/reader';
3
- export declare function pulledEntryToLocalEntry(entry: PulledEntries['entries'][number]): LocalEntry;
3
+ export declare function pulledEntryToLocalEntry(entry: EntryForOutput): LocalEntry;
@@ -69,8 +69,9 @@ export type ComparableEntry = Readonly<{
69
69
  status?: LocalEntry['status'];
70
70
  hasUnpublishedChanges?: boolean;
71
71
  data: Readonly<Record<string, unknown>>;
72
+ blocks?: Readonly<Record<string, unknown>>;
72
73
  }>;
73
- export type ComparableEntryContent = Pick<ComparableEntry, 'identifier' | 'slug' | 'data'>;
74
+ export type ComparableEntryContent = Pick<ComparableEntry, 'identifier' | 'slug' | 'data' | 'blocks'>;
74
75
  export declare function planEntryMerge(input: EntryMergeInputs): EntryMergeDecision;
75
76
  export declare function comparableEntry(entry: LocalEntry | null): ComparableEntry | null;
76
77
  export declare function comparableEntryContent(entry: LocalEntry | null): ComparableEntryContent | null;
@@ -1,5 +1,5 @@
1
1
  import type { PulledEntries } from '../../client/management/types';
2
- import type { EnvTarget } from '../helpers';
2
+ import type { EntryForOutput, EnvTarget } from '../helpers';
3
3
  import type { LocalEntry } from '../content/reader';
4
4
  export type EntryBaseSnapshotTarget = Readonly<{
5
5
  env: EnvTarget;
@@ -28,7 +28,7 @@ export type WriteEntryBaseSnapshotsInput = Readonly<{
28
28
  contentDir: string;
29
29
  target: EntryBaseSnapshotTarget;
30
30
  contentType: string;
31
- entries: PulledEntries['entries'];
31
+ entries: EntryForOutput[];
32
32
  meta: PulledEntries['meta'];
33
33
  cleanupMissing?: boolean;
34
34
  }>;
@@ -36,7 +36,7 @@ import { CourseSessionConflictError } from './courses';
36
36
  * @returns ManagementClient instance
37
37
  */
38
38
  export declare function createManagementClient(config: ManagementClientConfig): ManagementClient;
39
- export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventPricing, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInput, ThemeUpsertResult, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, WebhookOperations, SetupRevalidationWebhookInput, SetupRevalidationWebhookResult, ManagementWebhookEndpoint, RevalidationWebhookPlannedEndpoint, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
39
+ export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventScheduleUpsertInput, EventStartDurationSchedule, EventStartEndSchedule, EventPricing, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInput, ThemeUpsertResult, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, WebhookOperations, SetupRevalidationWebhookInput, SetupRevalidationWebhookResult, ManagementWebhookEndpoint, RevalidationWebhookPlannedEndpoint, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
40
40
  export { ManagementApiError, type ManagementApiErrorRequest } from './http';
41
41
  export { applySiteStyleSelectionBodyFromCommand, buildApplySiteStyleSelectionCommand, } from './theme';
42
42
  export { CourseSessionConflictError };