@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
@@ -424,6 +424,31 @@ export type BlockListItem = {
424
424
  draftContent?: Record<string, unknown> | null;
425
425
  publishedContent?: Record<string, unknown> | null;
426
426
  };
427
+ export type EntryPageContentSlotAllowedBlocks = Readonly<{
428
+ kind: 'default';
429
+ blockKinds: readonly string[];
430
+ }> | Readonly<{
431
+ kind: 'restricted';
432
+ blockKinds: readonly string[];
433
+ }> | Readonly<{
434
+ kind: 'none';
435
+ blockKinds: readonly [];
436
+ }>;
437
+ export type EntryPageContentSlot = Readonly<{
438
+ slotKey: string;
439
+ label: string;
440
+ allowedBlocks: EntryPageContentSlotAllowedBlocks;
441
+ blocks: readonly BlockListItem[];
442
+ }>;
443
+ export type EntryPageContentSlotWarning = Readonly<{
444
+ kind: "orphaned-slot-hidden";
445
+ slotKey: string;
446
+ message: string;
447
+ }>;
448
+ export type EntryPageContentSlotsResponse = Readonly<{
449
+ slots: readonly EntryPageContentSlot[];
450
+ warnings: readonly EntryPageContentSlotWarning[];
451
+ }>;
427
452
  export type PublishedBlockBaseline = {
428
453
  id: string;
429
454
  kind: string;
@@ -512,6 +537,25 @@ export type SdkBlockContent = {
512
537
  draftContentId: string | null;
513
538
  publishedContentId: string | null;
514
539
  };
540
+ export type SdkEntrySlotBlockContent = {
541
+ id: string;
542
+ blockId: string;
543
+ entrySlotId: string;
544
+ identifier: string | null;
545
+ kind: string;
546
+ purpose: string;
547
+ orderIndex: number;
548
+ content: Record<string, unknown>;
549
+ draftContent: unknown;
550
+ publishedContent: unknown;
551
+ draftContentId: string | null;
552
+ publishedContentId: string | null;
553
+ };
554
+ export type SdkEntrySlotContent = {
555
+ entrySlotId: string;
556
+ slotKey: string;
557
+ blocks: SdkEntrySlotBlockContent[];
558
+ };
515
559
  export type SdkTemplateAddon = {
516
560
  addonKey: string;
517
561
  enabled: boolean;
@@ -601,6 +645,7 @@ export type SdkRuntimeEntry = {
601
645
  export type SdkRuntimeEntryResponse = {
602
646
  entry: SdkRuntimeEntry;
603
647
  templates: SdkTemplate[];
648
+ entrySlots?: SdkEntrySlotContent[];
604
649
  contentTypeSchema: Record<string, unknown> | null;
605
650
  mediaAssets?: SdkRuntimeMediaAsset[];
606
651
  };
@@ -614,6 +659,7 @@ export type BlockWithContentResponse = {
614
659
  kind: string;
615
660
  siteId: string;
616
661
  pageId: string | null;
662
+ entrySlotId: string | null;
617
663
  draftContentId: string | null;
618
664
  publishedContentId: string | null;
619
665
  draftContent: Record<string, unknown> | null;
@@ -2745,6 +2745,46 @@ export declare const API_ENDPOINTS: {
2745
2745
  readonly auth: "user";
2746
2746
  readonly responseKind: "json";
2747
2747
  };
2748
+ readonly listEntrySlotBlocks: {
2749
+ readonly path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks";
2750
+ readonly method: "GET";
2751
+ readonly tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slot-{slotKey}", "blocks"];
2752
+ readonly auth: "user";
2753
+ readonly responseKind: "json";
2754
+ readonly errors: readonly ["resource:not_found"];
2755
+ };
2756
+ readonly listEntryPageContentSlots: {
2757
+ readonly path: "/sites/{siteId}/content/{type}/{entryId}/slots";
2758
+ readonly method: "GET";
2759
+ readonly tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slots", "blocks"];
2760
+ readonly auth: "user";
2761
+ readonly responseKind: "json";
2762
+ readonly errors: readonly ["resource:not_found"];
2763
+ };
2764
+ readonly createEntrySlotBlock: {
2765
+ readonly path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks";
2766
+ readonly method: "POST";
2767
+ readonly tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slot-{slotKey}", "blocks"];
2768
+ readonly auth: "user";
2769
+ readonly responseKind: "json";
2770
+ readonly errors: readonly ["validation:invalid_input", "resource:not_found"];
2771
+ };
2772
+ readonly reorderEntrySlotBlocks: {
2773
+ readonly path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/reorder";
2774
+ readonly method: "POST";
2775
+ readonly tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slot-{slotKey}", "blocks"];
2776
+ readonly auth: "user";
2777
+ readonly responseKind: "json";
2778
+ readonly errors: readonly ["validation:invalid_input", "resource:not_found"];
2779
+ };
2780
+ readonly deleteEntrySlotBlock: {
2781
+ readonly path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/{blockId}";
2782
+ readonly method: "DELETE";
2783
+ readonly tags: ["site-{siteId}", "content-entry-{entryId}", "entry-slot-{slotKey}", "blocks"];
2784
+ readonly auth: "user";
2785
+ readonly responseKind: "json";
2786
+ readonly errors: readonly ["resource:not_found"];
2787
+ };
2748
2788
  readonly createBlock: {
2749
2789
  readonly path: "/sites/{siteId}/pages/{pageId}/blocks";
2750
2790
  readonly method: "POST";
@@ -46,7 +46,7 @@ export type { PublicProductCategorySelector, PublicProductCategorySelectorQuery,
46
46
  export { publishContentEntry, discardContentDraft, deleteContentEntry, createContentEntry, updateContentEntryContent, mutateContentEntryUnified, listPublishedEntries, } from "./contentEntries";
47
47
  export { getContentEntryVersion, getPageVersion, listContentEntryVersions, listPageVersions, restoreContentEntryVersion, restorePageVersion, } from "./contentVersionHistoryClient";
48
48
  export type { DraftVersionPrecondition, GetVersionHistoryResponse, ListVersionHistoryResponse, RestoreVersionHistoryRequest, RestoreVersionHistoryResponse, VersionHistoryDetail, VersionHistoryItem, VersionHistoryListQuery, VersionHistoryOwnerKind, VersionHistoryWarning, } from "./contentVersionHistory";
49
- export { mutateBlockContent, createBlock, reorderBlocks, deleteBlock, listBlocks, } from "./blocks";
49
+ export { mutateBlockContent, createBlock, createEntrySlotBlock, reorderBlocks, reorderEntrySlotBlocks, deleteBlock, deleteEntrySlotBlock, listBlocks, listEntryPageContentSlots, listEntrySlotBlocks, } from "./blocks";
50
50
  export { blocksKeys } from "./blocksKeys";
51
51
  export { contentKeys } from "./contentKeys";
52
52
  export { createPage, deletePage, publishPageDraft, discardPageDraft, getPageDesignEditorState, savePageDesignState, applyPageDesignEditorAction, } from "./pages";
@@ -112,4 +112,4 @@ export type { AIChatMessage, AiBriefTurn, AiDesignerThemePatchOp, AiPatchApplyRe
112
112
  export type { CancelFlexibleBalanceBookingDueToNonPaymentRequest, FlexibleBalanceAdminActionPlan, FlexibleBalanceAdminActionResponse, FlexibleBalanceAdminActionSource, FlexibleBalanceAdminActionView, ReopenFlexibleBalanceBookingAfterNonPaymentCancellationRequest, } from "./types";
113
113
  export type { CancelShopOrderItemRequest, CancelShopOrderItemResponse, CancelShopOrderRequest, CancelShopOrderResponse, StaffCancellationContextCategory, StaffCancellationContextInput, StaffCancellationContextUiCategory, } from "./siteOperations";
114
114
  export type { ContentTypeKey } from "./contentEntries";
115
- export type { SiteBookingOfferingPresetSummary, WorkflowContentEntryTargetSnapshot, WorkflowPageDraftContent, WorkflowPagePublishedContent, WorkflowPageStatus, WorkflowPageTargetSnapshot, WorkflowRunStatusResponse, WorkflowTargetEntrySnapshot, } from "./contentRuntime";
115
+ export type { BlockListItem, EntryPageContentSlot, EntryPageContentSlotAllowedBlocks, EntryPageContentSlotWarning, EntryPageContentSlotsResponse, SdkEntrySlotContent, SiteBookingOfferingPresetSummary, WorkflowContentEntryTargetSnapshot, WorkflowPageDraftContent, WorkflowPagePublishedContent, WorkflowPageStatus, WorkflowPageTargetSnapshot, WorkflowRunStatusResponse, WorkflowTargetEntrySnapshot, } from "./contentRuntime";
@@ -0,0 +1,61 @@
1
+ export type SdkEventPricingIssue = Readonly<{
2
+ path: readonly string[];
3
+ message: string;
4
+ }>;
5
+ export type SdkEventTicketTypeInput = Readonly<{
6
+ identifier: string;
7
+ cmsTicketTypeId?: string | null;
8
+ name: string;
9
+ description?: string | null;
10
+ priceAmount: number;
11
+ isActive?: boolean;
12
+ sortOrder?: number;
13
+ capacityLimit?: number | null;
14
+ attendanceScope?: 'in_person' | 'online' | 'both';
15
+ saleStartsAt?: string | null;
16
+ saleEndsAt?: string | null;
17
+ }>;
18
+ export type SdkEventFreePricing = Readonly<{
19
+ kind: 'free';
20
+ priceDisplay?: string | null;
21
+ acceptsPasses?: boolean;
22
+ acceptsMemberships?: boolean;
23
+ }>;
24
+ export type SdkEventFixedPricePricing = Readonly<{
25
+ kind: 'fixed_price';
26
+ priceAmount: number;
27
+ priceCurrency: string;
28
+ priceDisplay?: string | null;
29
+ acceptsPasses?: boolean;
30
+ acceptsMemberships?: boolean;
31
+ }>;
32
+ export type SdkEventTicketTypesPricing = Readonly<{
33
+ kind: 'ticket_types';
34
+ priceCurrency: string;
35
+ priceDisplay?: string | null;
36
+ acceptsPasses?: boolean;
37
+ acceptsMemberships?: boolean;
38
+ ticketTypes: readonly SdkEventTicketTypeInput[];
39
+ }>;
40
+ export type SdkEventPricing = SdkEventFreePricing | SdkEventFixedPricePricing | SdkEventTicketTypesPricing;
41
+ export type SdkEventLegacyPricingInput = Readonly<{
42
+ pricingMode?: 'free' | 'fixed_price' | 'ticket_types' | 'single' | null;
43
+ requiresPayment?: boolean | null;
44
+ priceAmount?: number | null;
45
+ priceCurrency?: string | null;
46
+ priceDisplay?: string | null;
47
+ acceptsPasses?: boolean | null;
48
+ acceptsMemberships?: boolean | null;
49
+ ticketTypes?: readonly SdkEventTicketTypeInput[] | null;
50
+ }>;
51
+ export type SdkEventPricingInput = SdkEventPricing | SdkEventLegacyPricingInput;
52
+ export type SdkEventPricingClassification = Readonly<{
53
+ ok: true;
54
+ pricing: SdkEventPricing;
55
+ }> | Readonly<{
56
+ ok: false;
57
+ issues: readonly SdkEventPricingIssue[];
58
+ }>;
59
+ export declare function sortSdkEventTicketTypes(ticketTypes: readonly SdkEventTicketTypeInput[]): SdkEventTicketTypeInput[];
60
+ export declare function suggestSdkEventTicketIdentifier(name: string, usedIdentifiers: ReadonlySet<string>): string;
61
+ export declare function classifySdkEventPricing(rawInput: unknown): SdkEventPricingClassification;
@@ -0,0 +1,52 @@
1
+ export type SdkEventScheduleIssue = Readonly<{
2
+ path: readonly string[];
3
+ message: string;
4
+ }>;
5
+ export type SdkEventCanonicalSchedule = Readonly<{
6
+ recurrenceRule: string | null;
7
+ startDate?: string | null;
8
+ defaultStartTime: string;
9
+ durationMinutes: number;
10
+ }>;
11
+ export type SdkEventScheduleInput = Readonly<{
12
+ recurrenceRule?: string | null;
13
+ startDate?: string | null;
14
+ defaultStartTime?: string | null;
15
+ durationMinutes?: number | null;
16
+ startsAt?: string | null;
17
+ endsAt?: string | null;
18
+ }>;
19
+ export type SdkEventScheduleClassification = Readonly<{
20
+ ok: true;
21
+ kind: 'canonical';
22
+ canonical: SdkEventCanonicalSchedule;
23
+ }> | Readonly<{
24
+ ok: true;
25
+ kind: 'start-end';
26
+ canonical: SdkEventCanonicalSchedule;
27
+ startsAtIso: string;
28
+ endsAtIso: string;
29
+ }> | Readonly<{
30
+ ok: true;
31
+ kind: 'start-duration';
32
+ canonical: SdkEventCanonicalSchedule;
33
+ startsAtIso: string;
34
+ endsAtIso: string;
35
+ }> | Readonly<{
36
+ ok: false;
37
+ issues: readonly SdkEventScheduleIssue[];
38
+ }>;
39
+ export type ClassifySdkEventScheduleOptions = Readonly<{
40
+ requireCanonicalFields?: boolean;
41
+ maxDurationMinutes?: number;
42
+ maxDurationDays?: number;
43
+ }>;
44
+ type ParsedEventDateTime = Readonly<{
45
+ epochMs: number;
46
+ date: string;
47
+ time: string;
48
+ iso: string;
49
+ }>;
50
+ export declare function parseSdkEventDateTime(value: string): ParsedEventDateTime | null;
51
+ export declare function classifySdkEventSchedule(input: SdkEventScheduleInput, options?: ClassifySdkEventScheduleOptions): SdkEventScheduleClassification;
52
+ export {};
@@ -0,0 +1,50 @@
1
+ import type { SdkPullEventSeries, SdkEventUpsertPricingInput, SdkEventUpsertScheduleInput } from './sdkContracts';
2
+ import { type SdkEventPricing, type SdkEventPricingIssue } from './sdk-event-pricing';
3
+ import { type ClassifySdkEventScheduleOptions, type SdkEventCanonicalSchedule, type SdkEventScheduleInput, type SdkEventScheduleIssue } from './sdk-event-schedule';
4
+ export type SdkEventUpsertBody = Readonly<{
5
+ identifier: string;
6
+ title: string;
7
+ slug: string;
8
+ status?: SdkPullEventSeries['status'];
9
+ visibility?: SdkPullEventSeries['visibility'];
10
+ schedule: SdkEventUpsertScheduleInput;
11
+ capacity?: number | null;
12
+ pricing?: SdkEventUpsertPricingInput;
13
+ venueRef?: string | null;
14
+ categoryRef?: string | null;
15
+ content?: SdkPullEventSeries['content'];
16
+ formRef?: string | null;
17
+ settings?: Record<string, unknown>;
18
+ presentation?: Record<string, unknown> | null;
19
+ tags?: string[];
20
+ }>;
21
+ export type ValidatedSdkEventUpsertInput = Omit<SdkEventUpsertBody, 'schedule' | 'pricing'> & Readonly<{
22
+ schedule: SdkEventCanonicalSchedule;
23
+ pricing?: SdkEventPricing;
24
+ }>;
25
+ export type SdkEventUpsertParseInput = Omit<SdkEventUpsertBody, 'schedule' | 'pricing'> & Readonly<{
26
+ schedule: SdkEventScheduleInput;
27
+ pricing?: unknown;
28
+ }>;
29
+ export type SdkEventUpsertValidationIssue = Readonly<{
30
+ source: 'schedule';
31
+ path: readonly string[];
32
+ message: string;
33
+ issue: SdkEventScheduleIssue;
34
+ }> | Readonly<{
35
+ source: 'pricing';
36
+ path: readonly string[];
37
+ message: string;
38
+ issue: SdkEventPricingIssue;
39
+ }>;
40
+ export type SdkEventUpsertValidationResult = Readonly<{
41
+ ok: true;
42
+ value: ValidatedSdkEventUpsertInput;
43
+ }> | Readonly<{
44
+ ok: false;
45
+ issues: readonly SdkEventUpsertValidationIssue[];
46
+ }>;
47
+ export type ParseSdkEventUpsertInputOptions = Readonly<{
48
+ schedule?: ClassifySdkEventScheduleOptions;
49
+ }>;
50
+ export declare function parseSdkEventUpsertInput(input: SdkEventUpsertParseInput, options?: ParseSdkEventUpsertInputOptions): SdkEventUpsertValidationResult;
@@ -1,5 +1,6 @@
1
- import type { FieldDefinition, FieldDefinitionInput, SdkCustomBlock, SdkCustomBlockInput, SiteFooterContent, Theme } from "../../blocks/src/index";
2
- import type { LinkPayload } from "./navigation/types";
1
+ import type { FieldDefinition, FieldDefinitionInput, SdkCustomBlock, SdkCustomBlockInput, SiteFooterContent, Theme } from '../../blocks/src/index';
2
+ import type { LinkPayload } from './navigation/types';
3
+ import type { SdkEventPricing, SdkEventPricingInput } from './sdk-event-pricing';
3
4
  /**
4
5
  * SDK Site Configuration Types
5
6
  *
@@ -26,12 +27,12 @@ export interface SdkSectionOptionsConfig {
26
27
  backgroundColor?: boolean;
27
28
  backgroundImage?: boolean;
28
29
  backgroundGradient?: boolean;
29
- spacing?: ("compact" | "default" | "spacious")[] | boolean;
30
+ spacing?: ('compact' | 'default' | 'spacious')[] | boolean;
30
31
  textColor?: boolean;
31
32
  }
32
33
  export interface SdkContainerOptionsConfig {
33
- maxWidth?: ("narrow" | "default" | "wide" | "full")[] | boolean;
34
- alignment?: ("left" | "center" | "right")[] | boolean;
34
+ maxWidth?: ('narrow' | 'default' | 'wide' | 'full')[] | boolean;
35
+ alignment?: ('left' | 'center' | 'right')[] | boolean;
35
36
  }
36
37
  export interface SdkSiteStyleConfig {
37
38
  sectionBackgrounds?: SdkSectionBackground[];
@@ -76,7 +77,7 @@ export interface SdkContentTypeConfig {
76
77
  key: string;
77
78
  fields: unknown[];
78
79
  ordering?: {
79
- mode?: "default" | "manual";
80
+ mode?: 'default' | 'manual';
80
81
  };
81
82
  template?: SdkContentTypeTemplateConfig | null;
82
83
  }
@@ -88,7 +89,7 @@ export interface SdkContentConfig {
88
89
  settings?: unknown;
89
90
  }
90
91
  export type SdkWorkflowManualTrigger = {
91
- type: "manual";
92
+ type: 'manual';
92
93
  };
93
94
  export type SdkWorkflowEntryDraftUpdatedCondition = Readonly<{
94
95
  field: string;
@@ -98,7 +99,7 @@ export type SdkWorkflowEntryDraftUpdatedCondition = Readonly<{
98
99
  isEmpty: boolean;
99
100
  }>;
100
101
  export type SdkWorkflowEntryDraftUpdatedTrigger = {
101
- type: "entry.draft.updated";
102
+ type: 'entry.draft.updated';
102
103
  when: SdkWorkflowEntryDraftUpdatedCondition[];
103
104
  };
104
105
  export type SdkWorkflowTrigger = SdkWorkflowManualTrigger | SdkWorkflowEntryDraftUpdatedTrigger;
@@ -115,9 +116,9 @@ export interface SdkWorkflowConfig {
115
116
  triggers: SdkWorkflowTrigger[];
116
117
  confirmation?: SdkWorkflowConfirmation;
117
118
  }
118
- export type DashboardSiteRole = "administrator" | "editor" | "team_member";
119
+ export type DashboardSiteRole = 'administrator' | 'editor' | 'team_member';
119
120
  export interface DashboardNavVisibilityConfig {
120
- mode?: "augment" | "restrict";
121
+ mode?: 'augment' | 'restrict';
121
122
  allowIds?: string[];
122
123
  denyIds?: string[];
123
124
  }
@@ -160,13 +161,13 @@ export interface RiverbankSiteConfig {
160
161
  content?: SdkContentConfig;
161
162
  contentDir?: string;
162
163
  sync?: {
163
- existingEntries?: "skip" | "update";
164
+ existingEntries?: 'skip' | 'update';
164
165
  };
165
166
  deploy?: {
166
167
  verifyCommand?: string;
167
168
  prebuildOutput?: string;
168
169
  };
169
- themeSource?: "local" | "cms";
170
+ themeSource?: 'local' | 'cms';
170
171
  activeTheme?: string;
171
172
  enablePortal?: boolean;
172
173
  dashboard?: DashboardConfig;
@@ -177,7 +178,7 @@ export interface RiverbankSiteConfig {
177
178
  * This is looser than RiverbankSiteConfig (which represents stored/returned config),
178
179
  * allowing field defaults to be omitted in custom block manifests.
179
180
  */
180
- export interface RiverbankSiteConfigInput extends Omit<RiverbankSiteConfig, "customBlocks" | "blockFieldExtensions"> {
181
+ export interface RiverbankSiteConfigInput extends Omit<RiverbankSiteConfig, 'customBlocks' | 'blockFieldExtensions'> {
181
182
  customBlocks?: SdkCustomBlockInput[];
182
183
  blockFieldExtensions?: SdkBlockFieldExtensionsInputMap;
183
184
  }
@@ -283,7 +284,7 @@ export interface SdkMediaUploadUrlResponse {
283
284
  }
284
285
  export interface SdkMediaFinalizeUploadResponse {
285
286
  storagePath: string;
286
- status: "created" | "exists";
287
+ status: 'created' | 'exists';
287
288
  assetId: string;
288
289
  identifier: string | null;
289
290
  }
@@ -321,7 +322,7 @@ export interface SdkPullPage {
321
322
  identifier: string;
322
323
  title: string;
323
324
  path: string;
324
- status: "draft" | "published";
325
+ status: 'draft' | 'published';
325
326
  hasUnpublishedChanges: boolean;
326
327
  updatedAt: string;
327
328
  createdAt: string;
@@ -476,13 +477,13 @@ export interface SdkPullEventSeries {
476
477
  *
477
478
  * IMPORTANT: This must be roundtrip-safe for SDK pull -> push workflows.
478
479
  */
479
- status: "draft" | "active" | "archived" | "cancelled" | "completed";
480
+ status: 'draft' | 'active' | 'archived' | 'cancelled' | 'completed';
480
481
  /**
481
482
  * Mirrors `event_series.visibility` from the bookings system.
482
483
  *
483
484
  * IMPORTANT: This must be roundtrip-safe for SDK pull -> push workflows.
484
485
  */
485
- visibility: "private" | "public" | "unlisted";
486
+ visibility: 'private' | 'public' | 'unlisted';
486
487
  schedule: {
487
488
  recurrenceRule: string | null;
488
489
  /** Date used for the first occurrence; required for one-off SDK-managed events. */
@@ -491,14 +492,7 @@ export interface SdkPullEventSeries {
491
492
  durationMinutes: number;
492
493
  };
493
494
  capacity: number | null;
494
- pricing: {
495
- requiresPayment: boolean;
496
- priceAmount: number | null;
497
- priceCurrency: string | null;
498
- priceDisplay: string | null;
499
- acceptsPasses: boolean;
500
- acceptsMemberships: boolean;
501
- };
495
+ pricing: SdkEventPricing;
502
496
  venueRef: string | null;
503
497
  categoryRef: string | null;
504
498
  content: {
@@ -515,6 +509,33 @@ export interface SdkPullEventSeries {
515
509
  createdAt: string;
516
510
  contentUpdatedAt: string | null;
517
511
  }
512
+ export type SdkEventCanonicalScheduleInput = {
513
+ recurrenceRule: string | null;
514
+ /** Date used for the first occurrence; required for one-off SDK-managed events. */
515
+ startDate?: string | null;
516
+ defaultStartTime: string;
517
+ durationMinutes: number;
518
+ };
519
+ export type SdkEventStartEndScheduleInput = {
520
+ /** Start/end schedules are currently supported for one-off SDK-managed events only. */
521
+ recurrenceRule?: null;
522
+ /** ISO datetime. Local datetime strings are treated as event-local wall time. */
523
+ startsAt: string;
524
+ /** ISO datetime. Must be after startsAt and no more than the shared event duration maximum. */
525
+ endsAt: string;
526
+ durationMinutes?: never;
527
+ };
528
+ export type SdkEventStartDurationScheduleInput = {
529
+ /** Start/duration schedules are currently supported for one-off SDK-managed events only. */
530
+ recurrenceRule?: null;
531
+ /** ISO datetime. Local datetime strings are treated as event-local wall time. */
532
+ startsAt: string;
533
+ /** Must be no more than the shared event duration maximum. */
534
+ durationMinutes: number;
535
+ endsAt?: never;
536
+ };
537
+ export type SdkEventUpsertScheduleInput = SdkEventCanonicalScheduleInput | SdkEventStartEndScheduleInput | SdkEventStartDurationScheduleInput;
538
+ export type SdkEventUpsertPricingInput = SdkEventPricingInput;
518
539
  export interface SdkPullEventsResponse {
519
540
  events: SdkPullEventSeries[];
520
541
  meta: SdkPullMeta;
@@ -531,8 +552,8 @@ export interface SdkPullCourseRun {
531
552
  identifier: string;
532
553
  title: string;
533
554
  slug: string;
534
- status: "draft" | "active" | "archived" | "cancelled" | "completed";
535
- visibility: "private" | "public" | "unlisted";
555
+ status: 'draft' | 'active' | 'archived' | 'cancelled' | 'completed';
556
+ visibility: 'private' | 'public' | 'unlisted';
536
557
  venueRef: string | null;
537
558
  categoryRef: string | null;
538
559
  formRef: string | null;
@@ -552,7 +573,7 @@ export interface SdkPullCoursesResponse {
552
573
  meta: SdkPullMeta;
553
574
  }
554
575
  export interface SdkCourseSessionConflict {
555
- code: "course_sessions_enrolled_conflict";
576
+ code: 'course_sessions_enrolled_conflict';
556
577
  identifier: string;
557
578
  enrollmentCount: number;
558
579
  message: string;
@@ -561,9 +582,21 @@ export interface SdkPulledEntry {
561
582
  identifier: string;
562
583
  title: string;
563
584
  data: Record<string, unknown>;
564
- status: "draft" | "published";
585
+ status: 'draft' | 'published';
565
586
  hasUnpublishedChanges: boolean;
566
587
  slug?: string;
588
+ blocks?: SdkEntrySlotBlocks;
589
+ }
590
+ export interface SdkEntrySlotBlock {
591
+ identifier: string | null;
592
+ kind: string;
593
+ content: Record<string, unknown>;
594
+ }
595
+ export type SdkEntrySlotBlocks = Record<string, SdkEntrySlotBlock[]>;
596
+ export interface SdkEntryUpsertSlotBlock {
597
+ identifier?: string | null;
598
+ kind: string;
599
+ content: Record<string, unknown>;
567
600
  }
568
601
  export interface SdkPullEntryTimestamps {
569
602
  createdAt: string;
@@ -610,7 +643,7 @@ export interface SdkManagementPage {
610
643
  identifier: string;
611
644
  title: string;
612
645
  path: string;
613
- status: "draft" | "published";
646
+ status: 'draft' | 'published';
614
647
  hasUnpublishedChanges: boolean;
615
648
  createdAt: string;
616
649
  updatedAt: string;
@@ -633,12 +666,13 @@ export interface SdkManagementEntry {
633
666
  title: string;
634
667
  data: Record<string, unknown>;
635
668
  publishedData?: Record<string, unknown> | null;
636
- status: "draft" | "published";
669
+ status: 'draft' | 'published';
637
670
  hasUnpublishedChanges: boolean;
638
671
  createdAt: string;
639
672
  updatedAt: string;
640
673
  publishedAt: string | null;
641
674
  manualOrder: number;
675
+ blocks?: SdkEntrySlotBlocks;
642
676
  }
643
677
  export type SdkManagementForm = SdkPullForm & {
644
678
  id: string;
@@ -669,10 +703,10 @@ export interface SdkReorderResponse {
669
703
  reordered: true;
670
704
  }
671
705
  export interface SdkUpsertEntryResponse {
672
- entry: Omit<SdkManagementEntry, "publishedData">;
706
+ entry: Omit<SdkManagementEntry, 'publishedData'>;
673
707
  }
674
708
  export interface SdkPublishOrUnpublishEntryResponse {
675
- entry: Omit<SdkManagementEntry, "publishedData">;
709
+ entry: Omit<SdkManagementEntry, 'publishedData'>;
676
710
  }
677
711
  export interface SdkListEntriesResponse {
678
712
  items: SdkManagementEntry[];
@@ -18,6 +18,19 @@ export type MediaUsageLocation = {
18
18
  blockKind: string;
19
19
  blockIdentifier: string | null;
20
20
  stage: "draft" | "published";
21
+ } | {
22
+ kind: "entrySlotBlock";
23
+ siteId: string;
24
+ entryId: string;
25
+ entryTitle: string;
26
+ typeKey: string;
27
+ routeDraftPath: string | null;
28
+ routePublishedPath: string | null;
29
+ slotKey: string;
30
+ blockId: string;
31
+ blockKind: string;
32
+ blockIdentifier: string | null;
33
+ stage: "draft" | "published";
21
34
  } | {
22
35
  kind: "contentEntry";
23
36
  siteId: string;