@riverbankcms/sdk 0.109.0 → 0.118.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 (294) hide show
  1. package/dist/{PreviewEditorSidebar-DWqwfy3_.mjs → PreviewEditorSidebar-BBcK1DjD.mjs} +178 -117
  2. package/dist/{PreviewEditorUI-B7OL4sfR.mjs → PreviewEditorUI-CuBFoYes.mjs} +3 -4
  3. package/dist/{PreviewQueryProvider-D0y2l8JN.mjs → PreviewQueryProvider-nKUT4TL-.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-D8Gt9Gbe.mjs → SdkPreviewModeRuntime-BWIO_Dsi.mjs} +2789 -34525
  5. package/dist/{SiteChromeCustomizeContext-DUpalEdL.mjs → SiteChromeCustomizeContext-CciG60M5.mjs} +88526 -57212
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +6939 -727
  7. package/dist/_dts/ai/src/designer/themePatch.d.ts +1 -1
  8. package/dist/_dts/api/src/bookingAdjustments.d.ts +30 -36
  9. package/dist/_dts/api/src/bookingRecords.d.ts +6 -74
  10. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +3 -3
  11. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
  12. package/dist/_dts/api/src/contentRuntime.d.ts +9 -2
  13. package/dist/_dts/api/src/courses.d.ts +30 -15
  14. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
  15. package/dist/_dts/api/src/endpoints.d.ts +49 -4
  16. package/dist/_dts/api/src/event-presentation.d.ts +4 -0
  17. package/dist/_dts/api/src/index.d.ts +3 -3
  18. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +2 -2
  19. package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
  20. package/dist/_dts/api/src/sdkContracts.d.ts +108 -18
  21. package/dist/_dts/api/src/siteBanner.d.ts +8 -8
  22. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
  23. package/dist/_dts/api/src/siteOperations.d.ts +12 -20
  24. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +32 -4
  25. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -6
  26. package/dist/_dts/api/src/webhooks.d.ts +98 -1
  27. package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
  28. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldDefaults.d.ts +3 -12
  29. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldSchema.d.ts +1 -5
  30. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -10
  31. package/dist/_dts/blocks/src/client/course-registration.d.ts +4 -1
  32. package/dist/_dts/blocks/src/client.d.ts +4 -1
  33. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  34. package/dist/_dts/blocks/src/index.d.ts +6 -7
  35. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +2 -2
  37. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -1
  38. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
  39. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +2 -4
  40. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -1
  41. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
  42. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  43. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +5 -4
  44. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +2 -8
  45. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
  46. package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +2 -2
  47. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +3 -3
  48. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +2 -1
  49. package/dist/_dts/blocks/src/system/blocks/form.d.ts +2 -15
  50. package/dist/_dts/blocks/src/system/blocks/intro.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +66 -66
  52. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +4 -17
  53. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  54. package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
  55. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +0 -3
  56. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
  57. package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
  58. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +2 -1
  59. package/dist/_dts/blocks/src/system/fragments/index.d.ts +0 -1
  60. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
  61. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +19 -2
  62. package/dist/_dts/blocks/src/system/manifest/richTextSchema.d.ts +8 -70
  63. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +1 -0
  64. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +6 -0
  65. package/dist/_dts/blocks/src/system/node/schema.d.ts +4 -4
  66. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -18
  67. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -9
  68. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -10
  70. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +5 -21
  71. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
  72. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
  73. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
  74. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
  76. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
  82. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
  83. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  84. package/dist/_dts/blocks/src/system/runtime/nodes/richText-coerce.d.ts +14 -2
  85. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +6 -3
  86. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
  87. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  88. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
  89. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  90. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
  91. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
  92. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +17 -1
  93. package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +1 -1
  94. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +1 -1
  95. package/dist/_dts/content-editor/src/index.d.ts +12 -12
  96. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -2
  97. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +19 -4
  98. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +1 -1
  99. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -1
  100. package/dist/_dts/content-model/src/content-types/builtins.d.ts +3 -15
  101. package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +2 -0
  102. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  103. package/dist/_dts/content-model/src/templates/defaults.d.ts +1 -21
  104. package/dist/_dts/core/src/editor-state.d.ts +14 -1
  105. package/dist/_dts/core/src/footer-composition.d.ts +2 -1
  106. package/dist/_dts/core/src/index.d.ts +1 -0
  107. package/dist/_dts/core/src/rich-text.d.ts +16 -0
  108. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +367 -69
  109. package/dist/_dts/editor/src/index.d.ts +1 -1
  110. package/dist/_dts/editor/src/primitives/rich-text/utils.d.ts +3 -5
  111. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -1
  112. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -1
  113. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -1
  114. package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +15 -0
  115. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +3 -7
  116. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +12 -0
  117. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  118. package/dist/_dts/editor-blocks/src/block-editor/utils.d.ts +1 -1
  119. package/dist/_dts/editor-blocks/src/index.d.ts +6 -5
  120. package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
  121. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
  122. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +104 -0
  123. package/dist/_dts/media-core/src/contentMediaAuditFieldAdapter.d.ts +8 -0
  124. package/dist/_dts/media-core/src/contentMediaSnapshotAudit.d.ts +22 -0
  125. package/dist/_dts/media-core/src/index.d.ts +3 -1
  126. package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
  127. package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
  128. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
  129. package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
  130. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
  131. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
  132. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
  133. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
  134. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
  135. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +7 -7
  136. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
  137. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
  138. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
  139. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
  140. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
  141. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
  142. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  143. package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
  144. package/dist/_dts/sdk/src/cli/commands/event.d.ts +18 -1
  145. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +2 -16
  146. package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
  147. package/dist/_dts/sdk/src/cli/content/reader.d.ts +8 -5
  148. package/dist/_dts/sdk/src/client/management/events.d.ts +2 -1
  149. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  150. package/dist/_dts/sdk/src/client/management/types.d.ts +38 -10
  151. package/dist/_dts/sdk/src/config/typed-entries.d.ts +7 -7
  152. package/dist/_dts/sdk/src/config/validation.d.ts +7 -7
  153. package/dist/_dts/sdk/src/contracts/content.d.ts +5 -15
  154. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  155. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +24 -40
  156. package/dist/_dts/sdk/src/contracts/theme.d.ts +2 -18
  157. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +1 -1
  158. package/dist/_dts/sdk/src/manifest/three-pass-converter.d.ts +4 -4
  159. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
  160. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +1 -2
  161. package/dist/_dts/sdk/src/rendering/helpers/index.d.ts +1 -1
  162. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -13
  163. package/dist/_dts/sdk/src/theme/index.d.ts +0 -29
  164. package/dist/_dts/sdk/src/version.d.ts +1 -1
  165. package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
  166. package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
  167. package/dist/_dts/site-commands/src/commands.d.ts +160 -24
  168. package/dist/_dts/theme-core/src/buttons/affordanceIcons.d.ts +2 -2
  169. package/dist/_dts/theme-core/src/buttons/core.d.ts +0 -1
  170. package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +22 -9
  171. package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -2
  172. package/dist/_dts/theme-core/src/buttons/effects/presets/border.d.ts +1 -2
  173. package/dist/_dts/theme-core/src/buttons/effects/presets/overlay.d.ts +3 -1
  174. package/dist/_dts/theme-core/src/buttons/effects/presets/shadow.d.ts +2 -2
  175. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +8 -18
  176. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +2 -2
  177. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -5
  178. package/dist/_dts/theme-core/src/buttons/index.d.ts +2 -5
  179. package/dist/_dts/theme-core/src/buttons/parseThemeForPersistence.d.ts +36 -0
  180. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
  181. package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
  182. package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
  183. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
  184. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
  185. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
  186. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
  187. package/dist/_dts/theme-core/src/buttons/types.d.ts +1638 -93
  188. package/dist/_dts/theme-core/src/cards/types.d.ts +13 -13
  189. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +969 -69
  190. package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -2
  191. package/dist/_dts/theme-core/src/recommend/generateThemes.d.ts +0 -1
  192. package/dist/_dts/theme-core/src/schema.d.ts +1100 -116
  193. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  194. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
  195. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +14 -14
  196. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
  197. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  198. package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
  199. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  200. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
  201. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +4 -4
  202. package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
  203. package/dist/cli/index.mjs +7368 -6668
  204. package/dist/cli/init-docs/content/cli-reference.md +40 -1
  205. package/dist/cli/init-docs/content/content-management.md +6 -0
  206. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
  207. package/dist/client/{DiscountCodeDisclosure-DU1ygxU2.mjs → DiscountCodeDisclosure-DIWj-P9v.mjs} +1 -1
  208. package/dist/client/{EventCombined.client-DB5zagCo.mjs → EventCombined.client-De8YWBSr.mjs} +2 -3
  209. package/dist/client/{EventListing.client-CTX9JHBL.mjs → EventListing.client-seHTjimY.mjs} +2 -2
  210. package/dist/client/{LeafletStaticMap-BYImhgiB.mjs → LeafletStaticMap-BmQxFcJW.mjs} +1 -1
  211. package/dist/client/{MagicLinkForm-CRkw_M3l.mjs → MagicLinkForm-OoJAIUIj.mjs} +1 -2
  212. package/dist/client/{StepIndicator-BnmVBJJh.mjs → StepIndicator-CiZ8kdPk.mjs} +2 -2
  213. package/dist/client/{accordion-CeGreumd.mjs → accordion-6lnN__XJ.mjs} +1 -1
  214. package/dist/client/{bookingForm-CSzFNrpN.mjs → bookingForm-5uyqhONU.mjs} +6 -7
  215. package/dist/client/bookings.mjs +9179 -5865
  216. package/dist/client/{carousel-B2jDtogf.mjs → carousel-Dtnifil_.mjs} +1 -1
  217. package/dist/client/{cart-D-jZ-vaY.mjs → cart-5Tc5S7NV.mjs} +3 -3
  218. package/dist/client/{checkout-Dza-LA7N.mjs → checkout-CYKKN5Hr.mjs} +3 -3
  219. package/dist/client/client.mjs +3252 -3361
  220. package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorStyles-BWpj_h4C.mjs} +118 -1
  221. package/dist/client/{courseRegistration-TYkNychb.mjs → courseRegistration-CxCBybB4.mjs} +100 -37
  222. package/dist/client/{eventCalendar-BI_90SsT.mjs → eventCalendar-Xj2jZS9X.mjs} +4 -5
  223. package/dist/client/{eventCombined-mNrpryE9.mjs → eventCombined-CgcMoOgM.mjs} +2 -2
  224. package/dist/client/{eventDetails-D4GVlCIY.mjs → eventDetails-CEAH8Edc.mjs} +3 -3
  225. package/dist/client/{eventListing-YhKN018y.mjs → eventListing-qyPVQ0wP.mjs} +2 -2
  226. package/dist/client/{eventRegistration-CdHGtilr.mjs → eventRegistration-DDu79CtL.mjs} +6 -7
  227. package/dist/client/{form-AcAL45rA.mjs → form-Bc7JKI7I.mjs} +1 -2
  228. package/dist/client/{headerSection-uEC52ueD.mjs → headerSection-vTku_LEl.mjs} +2 -3
  229. package/dist/client/hooks.mjs +1774 -2273
  230. package/dist/client/{locationMap-_wJDSUYe.mjs → locationMap-Bg7X4Jna.mjs} +8 -5
  231. package/dist/client/{media-BK0O3b-U.mjs → media-CNE1Z-wb.mjs} +1 -2
  232. package/dist/client/{newsletterForm-DrArsb2B.mjs → newsletterForm-lpylVdp5.mjs} +1 -2
  233. package/dist/client/{pricing-BSYVghwo.mjs → pricing-DE8fjJiT.mjs} +1 -1
  234. package/dist/client/{productDetail-Dyk90sMs.mjs → productDetail-D7Bo2RMH.mjs} +3 -3
  235. package/dist/client/{productList-BCKThwAI.mjs → productList-VjnZqiqN.mjs} +3 -3
  236. package/dist/client/{propsDecoder-CkXxkdSR.mjs → propsDecoder-DreFXjNP.mjs} +4256 -443
  237. package/dist/client/rendering/client.mjs +21776 -21970
  238. package/dist/client/rendering/islands.mjs +20 -20
  239. package/dist/client/rendering.mjs +3092 -3322
  240. package/dist/client/{shop-DeltVH10.mjs → shop-IRsHHbf7.mjs} +5 -6
  241. package/dist/client/{shop-commerce-BD9Jsm2Z.mjs → shop-commerce-gnI8PieZ.mjs} +27 -11
  242. package/dist/client/{shop-commerce-store-CmXD6FDS.mjs → shop-commerce-store-BTbrhObn.mjs} +1 -1
  243. package/dist/client/{shopShared-B8v-lH_F.mjs → shopShared-D6KS2_qk.mjs} +3 -3
  244. package/dist/client/{useDiscountCodeUi-DbWJN8ld.mjs → useDiscountCodeUi-DCccGCxV.mjs} +1 -1
  245. package/dist/client/{useEventFilters-EJIMUnqT.mjs → useEventFilters-eGs3rPZQ.mjs} +24 -126
  246. package/dist/client/{usePolling-Cmh14fc7.mjs → usePolling-CvSU2sur.mjs} +2 -2
  247. package/dist/preview-next/before-render.mjs +94 -6
  248. package/dist/preview-next/client/runtime.mjs +4 -4
  249. package/dist/preview-next/middleware.mjs +94 -6
  250. package/dist/{previewAuthStore-CTO7CRPk.mjs → previewAuthStore-DN7vcRsv.mjs} +94 -6
  251. package/dist/{sdk-runtime-Dou0GAav.mjs → sdk-runtime-vW8QbyPN.mjs} +2 -2
  252. package/dist/{separator-CI5wZNXT.mjs → separator-DJ4bkeY3.mjs} +1 -1
  253. package/dist/server/components.mjs +5194 -5568
  254. package/dist/server/config-template-validation.mjs +4 -23
  255. package/dist/server/config-validation.mjs +1774 -2273
  256. package/dist/server/config.mjs +2043 -2508
  257. package/dist/server/data.mjs +1774 -2273
  258. package/dist/server/index.mjs +95 -7
  259. package/dist/server/next/revalidate.mjs +53 -1
  260. package/dist/server/next.mjs +5337 -5632
  261. package/dist/server/page-converter.mjs +1833 -2307
  262. package/dist/server/prebuild.mjs +1 -1
  263. package/dist/server/rendering/server.mjs +6713 -4874
  264. package/dist/server/rendering.mjs +5203 -5586
  265. package/dist/server/routing.mjs +2199 -2698
  266. package/dist/server/server.mjs +1885 -2355
  267. package/dist/server/theme-bridge.mjs +1986 -2222
  268. package/dist/server/theme.mjs +2367 -1581
  269. package/dist/server/webhooks.mjs +54 -2
  270. package/package.json +1 -1
  271. package/dist/_dts/blocks/src/primitives/content/components/Button.d.ts +0 -40
  272. package/dist/_dts/blocks/src/system/fragments/library/footerBottomText.d.ts +0 -19
  273. package/dist/_dts/media-core/src/legacyMediaValue.d.ts +0 -11
  274. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
  275. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
  276. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
  277. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
  278. package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
  279. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
  280. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
  281. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
  282. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
  283. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
  284. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
  285. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
  286. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
  287. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
  288. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -285
  289. package/dist/_dts/theme-core/src/styles/buttons.d.ts +0 -27
  290. package/dist/_dts/theme-core/src/styles/buttonsLibrary.d.ts +0 -2
  291. package/dist/_dts/theme-core/src/styles/glow.d.ts +0 -3
  292. package/dist/client/buttons-DoFV7KDL.mjs +0 -2115
  293. package/dist/client/colorStyles-CrgzoXsm.mjs +0 -99
  294. package/dist/client/foregroundContract-xICPq59x.mjs +0 -31
@@ -201,7 +201,7 @@ export type InlineTextFieldValidationPlan = PlanBase<"inlineText", "array", Inli
201
201
  }>;
202
202
  export type MediaFieldValidationPlan = PlanBase<"media", "object", ObjectConstraint> & Readonly<{
203
203
  fieldType: "media" | "file";
204
- legacyStringType: string;
204
+ allowedMediaTypes: readonly string[];
205
205
  }>;
206
206
  export type LinkFieldValidationPlan = PlanBase<"link", "object", ObjectConstraint> & Readonly<{
207
207
  fieldType: "link";
@@ -216,7 +216,17 @@ export type RepeaterFieldValidationPlan = PlanBase<"repeater", "array", ArrayCon
216
216
  }>;
217
217
  export type GroupFieldValidationPlan = PlanBase<"group", "object", ObjectConstraint> & Readonly<{
218
218
  fieldType: "group" | "modal" | "tabGroup";
219
- children: readonly FieldValidationPlan[];
219
+ childSelection: Readonly<{
220
+ kind: "all";
221
+ fields: readonly FieldValidationPlan[];
222
+ }> | Readonly<{
223
+ kind: "discriminatedTabs";
224
+ activeTabField: string;
225
+ tabs: readonly Readonly<{
226
+ typeId: string;
227
+ fields: readonly FieldValidationPlan[];
228
+ }>[];
229
+ }>;
220
230
  allowNullChildren?: boolean;
221
231
  }>;
222
232
  export type PassthroughFieldValidationPlan = PlanBase<"passthrough", "unknown", RequiredConstraint> & Readonly<{
@@ -241,6 +251,13 @@ export declare function deriveFieldValidationPlans(fields: readonly FieldDefinit
241
251
  export declare function fieldPlanToNativeInputProps(plan: FieldValidationPlan): NativeInputValidationProps;
242
252
  export declare function normalizeFieldInput(plan: FieldValidationPlan, value: unknown, options?: FieldValidationOptions): unknown;
243
253
  export declare function normalizeStoredContentValues(plans: readonly FieldValidationPlan[], content: unknown, options?: FieldValidationOptions): Record<string, unknown>;
254
+ /**
255
+ * Produces the portable representation accepted by content persistence.
256
+ * Runtime-hydrated media fields are stripped only when a canonical identifier
257
+ * is already present; unresolved environment-specific references remain
258
+ * invalid and must be handled by the site-scoped media write normalizer first.
259
+ */
260
+ export declare function normalizeManifestContentForWrite(plans: readonly FieldValidationPlan[], content: unknown, options?: FieldValidationOptions): Record<string, unknown>;
244
261
  export declare function validateFieldValue(plan: FieldValidationPlan, value: unknown, options?: FieldValidationOptions): FieldValidationIssue[];
245
262
  export declare function fieldPlanToZod(plan: FieldValidationPlan, options?: FieldValidationOptions): z.ZodTypeAny;
246
263
  export declare function fieldPresenceForPlan(plan: Pick<FieldValidationPlan, "required">): FieldPresence;
@@ -1,17 +1,7 @@
1
1
  import { z } from 'zod';
2
+ import type { RichTextDoc, TipTapNode } from '../../../../core/src/index';
3
+ export type { RichTextDoc, TipTapMark, TipTapNode, } from '../../../../core/src/index';
2
4
  export declare const TipTapNodeSchema: z.ZodType<TipTapNode>;
3
- /**
4
- * Rich text value schema
5
- *
6
- * Producers MUST emit the canonical unwrapped form `{ type: 'doc', content: [...] }`.
7
- * The wrapped form `{ doc: {...} }` is accepted only as a reading tolerance for data
8
- * that pre-dates the unwrap migration (Supabase migrations `20251029173500_unwrap_richtext_format`
9
- * and `20251029174000_update_template_bindings_unwrapped`). Do not introduce new
10
- * producers of the wrapped shape.
11
- */
12
- export declare const RichTextValueSchema: z.ZodUnion<readonly [z.ZodType<TipTapNode, unknown, z.core.$ZodTypeInternals<TipTapNode, unknown>>, z.ZodObject<{
13
- doc: z.ZodType<TipTapNode, unknown, z.core.$ZodTypeInternals<TipTapNode, unknown>>;
14
- }, z.core.$strip>]>;
15
5
  /**
16
6
  * Build Zod validation schema for rich text fields
17
7
  *
@@ -28,24 +18,7 @@ export declare const RichTextValueSchema: z.ZodUnion<readonly [z.ZodType<TipTapN
28
18
  * // Required field with custom label
29
19
  * const schema = buildRichTextSchema({ required: true, label: 'Description' })
30
20
  */
31
- /**
32
- * TypeScript type for a TipTap document node
33
- *
34
- * Use this type for rich text content fields in block definitions.
35
- * Defined explicitly (rather than inferred) because recursive Zod schemas
36
- * require `z.ZodType<any>` which loses type information.
37
- */
38
- export type TipTapNode = {
39
- type: string;
40
- content?: TipTapNode[];
41
- text?: string;
42
- attrs?: Record<string, unknown>;
43
- marks?: TipTapMark[];
44
- };
45
- export type TipTapMark = {
46
- type: string;
47
- attrs?: Record<string, unknown>;
48
- };
21
+ /** Narrow node variants used by the inline Markdown helpers below. */
49
22
  export type RichTextTextNode = TipTapNode & {
50
23
  type: 'text';
51
24
  text: string;
@@ -65,49 +38,16 @@ export type RichTextInlineNode = RichTextTextNode | RichTextHardBreakNode;
65
38
  * (dummy content, editor output, migrations) must emit, and the shape every
66
39
  * non-legacy consumer can rely on.
67
40
  *
68
- * Legacy envelopes are read-tolerated by {@link RichTextValueSchema} but
69
- * normalised before reaching anywhere typed as `RichTextDoc`.
70
41
  */
71
- export declare const RichTextDocSchema: z.ZodObject<{
72
- type: z.ZodLiteral<"doc">;
73
- content: z.ZodArray<z.ZodType<TipTapNode, unknown, z.core.$ZodTypeInternals<TipTapNode, unknown>>>;
74
- }, z.core.$strip>;
75
- /**
76
- * A TipTap document root — the canonical shape for rich text content
77
- * in this codebase. Derived from {@link RichTextDocSchema} so the type and
78
- * its runtime validator can never drift.
79
- */
80
- export type RichTextDoc = z.infer<typeof RichTextDocSchema>;
42
+ export declare const RichTextDocSchema: z.ZodType<RichTextDoc>;
81
43
  /**
82
44
  * Type guard for {@link RichTextDoc}.
83
45
  *
84
- * Returns `true` only for the canonical unwrapped form. Callers that may
85
- * receive a legacy `{ doc: {...} }` envelope must normalise first via
86
- * {@link unwrapRichTextRoot}.
46
+ * Returns `true` only for the canonical unwrapped form. The shared structural
47
+ * contract lives in `@riverbankcms/core`; parity tests keep its dependency-free
48
+ * guard aligned with this detailed Zod validator.
87
49
  */
88
50
  export declare function isRichTextDoc(value: unknown): value is RichTextDoc;
89
- /**
90
- * Permissive unwrap for a value known to be the root of a rich-text field.
91
- *
92
- * Producers should emit the canonical unwrapped form `{ type: 'doc', content: [...] }`,
93
- * but two legacy shapes still appear in older data and pre-Phase-1 fixtures:
94
- *
95
- * - `{ doc: <typed-doc> }` — pre-migration DB storage.
96
- * - `{ doc: <typed-doc>, html, plain }` — pre-Phase-1 dummy-content output.
97
- *
98
- * This helper is the single right place to tolerate either shape at a known
99
- * rich-text root (transforms, coercion, validators that operate on rich text).
100
- * The strictness sits on the inner node's `type === 'doc'`, which prevents
101
- * misidentifying random objects that happen to carry a field named `doc`.
102
- *
103
- * Returns the inner doc node when the input matches a legacy shape, otherwise
104
- * returns the input unchanged.
105
- *
106
- * For deep structural traversal where any nested key might be named `doc`
107
- * (and unwrapping would be incorrect), use the strict `isDocWrapper` private
108
- * helper inside `@riverbankcms/blocks/bindings`.
109
- */
110
- export declare function unwrapRichTextRoot(value: unknown): unknown;
111
51
  /**
112
52
  * Build a canonical {@link RichTextDoc} from plain-text paragraphs.
113
53
  *
@@ -141,6 +81,4 @@ export declare function createRichTextDocFromMarkdown(markdown: string): RichTex
141
81
  export declare function buildRichTextSchema(options?: {
142
82
  required?: boolean;
143
83
  label?: string;
144
- }): z.ZodUnion<readonly [z.ZodType<TipTapNode, unknown, z.core.$ZodTypeInternals<TipTapNode, unknown>>, z.ZodObject<{
145
- doc: z.ZodType<TipTapNode, unknown, z.core.$ZodTypeInternals<TipTapNode, unknown>>;
146
- }, z.core.$strip>]>;
84
+ }): z.ZodType<RichTextDoc, unknown, z.core.$ZodTypeInternals<RichTextDoc, unknown>>;
@@ -11,6 +11,7 @@ export declare const MEDIA_KINDS: readonly ["image", "video", "audio", "document
11
11
  export type MediaKind = (typeof MEDIA_KINDS)[number];
12
12
  export declare const DISPLAY_MEDIA_KINDS: readonly ["image", "video", "audio"];
13
13
  export type DisplayMediaKind = (typeof DISPLAY_MEDIA_KINDS)[number];
14
+ export declare const DEFAULT_MEDIA_FIELD_KINDS: readonly ["image"];
14
15
  export declare const PUBLIC_FILE_FIELD_KINDS: readonly ["document", "spreadsheet", "archive", "audio"];
15
16
  export type FileFieldKind = (typeof PUBLIC_FILE_FIELD_KINDS)[number];
16
17
  export declare const siteOptionSources: readonly ["eventCategories", "venues", "staffMembers"];
@@ -20,4 +20,10 @@ type ValidatorOptions = {
20
20
  };
21
21
  export declare function deriveContentZodFromManifest(manifestOrFields: BlockManifest | FieldDefinition[], options?: ValidatorOptions): z.ZodObject<FieldShape>;
22
22
  export declare function createManifestValidator(manifestOrFields: BlockManifest | FieldDefinition[], options?: ValidatorOptions): z.ZodType<Record<string, unknown>>;
23
+ /**
24
+ * Validates content at a persistence boundary and returns identifier-only media
25
+ * values. Render-time validation intentionally uses createManifestValidator so
26
+ * hydrated projection fields remain available to renderers.
27
+ */
28
+ export declare function createManifestWriteValidator(manifestOrFields: BlockManifest | FieldDefinition[], options?: ValidatorOptions): z.ZodType<Record<string, unknown>>;
23
29
  export {};
@@ -9,8 +9,8 @@ export declare const bindingSchema: z.ZodObject<{
9
9
  }, z.core.$strip>>>;
10
10
  pick: z.ZodDefault<z.ZodEnum<{
11
11
  value: "value";
12
- collection: "collection";
13
12
  context: "context";
13
+ collection: "collection";
14
14
  }>>;
15
15
  coerce: z.ZodOptional<z.ZodEnum<{
16
16
  string: "string";
@@ -29,8 +29,8 @@ export declare const repeatSchema: z.ZodObject<{
29
29
  }, z.core.$strip>>>;
30
30
  pick: z.ZodDefault<z.ZodEnum<{
31
31
  value: "value";
32
- collection: "collection";
33
32
  context: "context";
33
+ collection: "collection";
34
34
  }>>;
35
35
  coerce: z.ZodOptional<z.ZodEnum<{
36
36
  string: "string";
@@ -67,8 +67,8 @@ export declare const conditionSchema: z.ZodObject<{
67
67
  }, z.core.$strip>>>;
68
68
  pick: z.ZodDefault<z.ZodEnum<{
69
69
  value: "value";
70
- collection: "collection";
71
70
  context: "context";
71
+ collection: "collection";
72
72
  }>>;
73
73
  coerce: z.ZodOptional<z.ZodEnum<{
74
74
  string: "string";
@@ -97,8 +97,8 @@ export declare const dataScopeSchema: z.ZodObject<{
97
97
  }, z.core.$strip>>>;
98
98
  pick: z.ZodDefault<z.ZodEnum<{
99
99
  value: "value";
100
- collection: "collection";
101
100
  context: "context";
101
+ collection: "collection";
102
102
  }>>;
103
103
  coerce: z.ZodOptional<z.ZodEnum<{
104
104
  string: "string";
@@ -2090,7 +2090,7 @@ export declare const runtimeBackedBlockClientEntries: {
2090
2090
  waitlistMessage?: string;
2091
2091
  membershipMessage?: string;
2092
2092
  buttonText?: string | null;
2093
- buttonVariant?: "primary" | "secondary" | "outline";
2093
+ buttonVariant?: import("../../..").BlockButtonRole;
2094
2094
  stage?: "preview" | "published";
2095
2095
  }>) => Readonly<{
2096
2096
  display: Readonly<{
@@ -2124,7 +2124,7 @@ export declare const runtimeBackedBlockClientEntries: {
2124
2124
  waitlistMessage?: string;
2125
2125
  membershipMessage?: string;
2126
2126
  buttonText?: string | null;
2127
- buttonVariant?: "primary" | "secondary" | "outline";
2127
+ buttonVariant?: import("../../..").BlockButtonRole;
2128
2128
  stage?: "preview" | "published";
2129
2129
  }>) => unknown;
2130
2130
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
@@ -2148,7 +2148,7 @@ export declare const runtimeBackedBlockClientEntries: {
2148
2148
  waitlistMessage?: string;
2149
2149
  membershipMessage?: string;
2150
2150
  buttonText?: string | null;
2151
- buttonVariant?: "primary" | "secondary" | "outline";
2151
+ buttonVariant?: import("../../..").BlockButtonRole;
2152
2152
  stage?: "preview" | "published";
2153
2153
  }>>;
2154
2154
  }>;
@@ -2200,7 +2200,7 @@ export declare const runtimeBackedBlockClientEntries: {
2200
2200
  waitlistMessage?: string;
2201
2201
  membershipMessage?: string;
2202
2202
  buttonText?: string | null;
2203
- buttonVariant?: "primary" | "secondary" | "outline";
2203
+ buttonVariant?: import("../../..").BlockButtonRole;
2204
2204
  stage?: "preview" | "published";
2205
2205
  }>) => Readonly<{
2206
2206
  display: Readonly<{
@@ -2234,7 +2234,7 @@ export declare const runtimeBackedBlockClientEntries: {
2234
2234
  waitlistMessage?: string;
2235
2235
  membershipMessage?: string;
2236
2236
  buttonText?: string | null;
2237
- buttonVariant?: "primary" | "secondary" | "outline";
2237
+ buttonVariant?: import("../../..").BlockButtonRole;
2238
2238
  stage?: "preview" | "published";
2239
2239
  }>) => unknown;
2240
2240
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
@@ -2258,7 +2258,7 @@ export declare const runtimeBackedBlockClientEntries: {
2258
2258
  waitlistMessage?: string;
2259
2259
  membershipMessage?: string;
2260
2260
  buttonText?: string | null;
2261
- buttonVariant?: "primary" | "secondary" | "outline";
2261
+ buttonVariant?: import("../../..").BlockButtonRole;
2262
2262
  stage?: "preview" | "published";
2263
2263
  }>>;
2264
2264
  }>;
@@ -2445,7 +2445,7 @@ export declare const runtimeBackedBlockClientEntries: {
2445
2445
  showCapacity?: boolean;
2446
2446
  successMessage?: string;
2447
2447
  waitlistMessage?: string;
2448
- buttonVariant?: "primary" | "secondary" | "outline";
2448
+ buttonVariant?: import("../../..").BlockButtonRole;
2449
2449
  overlayEnabled?: boolean;
2450
2450
  spamProtectionEnabled?: boolean;
2451
2451
  stage?: "preview" | "published";
@@ -2490,7 +2490,7 @@ export declare const runtimeBackedBlockClientEntries: {
2490
2490
  showCapacity?: boolean;
2491
2491
  successMessage?: string;
2492
2492
  waitlistMessage?: string;
2493
- buttonVariant?: "primary" | "secondary" | "outline";
2493
+ buttonVariant?: import("../../..").BlockButtonRole;
2494
2494
  overlayEnabled?: boolean;
2495
2495
  spamProtectionEnabled?: boolean;
2496
2496
  stage?: "preview" | "published";
@@ -2522,7 +2522,7 @@ export declare const runtimeBackedBlockClientEntries: {
2522
2522
  showCapacity?: boolean;
2523
2523
  successMessage?: string;
2524
2524
  waitlistMessage?: string;
2525
- buttonVariant?: "primary" | "secondary" | "outline";
2525
+ buttonVariant?: import("../../..").BlockButtonRole;
2526
2526
  overlayEnabled?: boolean;
2527
2527
  spamProtectionEnabled?: boolean;
2528
2528
  stage?: "preview" | "published";
@@ -2588,7 +2588,7 @@ export declare const runtimeBackedBlockClientEntries: {
2588
2588
  showCapacity?: boolean;
2589
2589
  successMessage?: string;
2590
2590
  waitlistMessage?: string;
2591
- buttonVariant?: "primary" | "secondary" | "outline";
2591
+ buttonVariant?: import("../../..").BlockButtonRole;
2592
2592
  overlayEnabled?: boolean;
2593
2593
  spamProtectionEnabled?: boolean;
2594
2594
  stage?: "preview" | "published";
@@ -2633,7 +2633,7 @@ export declare const runtimeBackedBlockClientEntries: {
2633
2633
  showCapacity?: boolean;
2634
2634
  successMessage?: string;
2635
2635
  waitlistMessage?: string;
2636
- buttonVariant?: "primary" | "secondary" | "outline";
2636
+ buttonVariant?: import("../../..").BlockButtonRole;
2637
2637
  overlayEnabled?: boolean;
2638
2638
  spamProtectionEnabled?: boolean;
2639
2639
  stage?: "preview" | "published";
@@ -2665,7 +2665,7 @@ export declare const runtimeBackedBlockClientEntries: {
2665
2665
  showCapacity?: boolean;
2666
2666
  successMessage?: string;
2667
2667
  waitlistMessage?: string;
2668
- buttonVariant?: "primary" | "secondary" | "outline";
2668
+ buttonVariant?: import("../../..").BlockButtonRole;
2669
2669
  overlayEnabled?: boolean;
2670
2670
  spamProtectionEnabled?: boolean;
2671
2671
  stage?: "preview" | "published";
@@ -2747,7 +2747,7 @@ export declare const runtimeBackedBlockClientEntries: {
2747
2747
  passes: readonly import("../..").PublicPassProduct[];
2748
2748
  memberships: readonly import("../..").PublicMembershipProduct[];
2749
2749
  passPurchaseMode: "add_to_cart" | "buy_now";
2750
- buttonVariant: "primary" | "secondary" | "outline" | "link";
2750
+ buttonVariant: import("../../..").BlockButtonRole;
2751
2751
  }>;
2752
2752
  }>;
2753
2753
  contracts: Readonly<{
@@ -2789,7 +2789,7 @@ export declare const runtimeBackedBlockClientEntries: {
2789
2789
  passes: readonly import("../..").PublicPassProduct[];
2790
2790
  memberships: readonly import("../..").PublicMembershipProduct[];
2791
2791
  passPurchaseMode: "add_to_cart" | "buy_now";
2792
- buttonVariant: "primary" | "secondary" | "outline" | "link";
2792
+ buttonVariant: import("../../..").BlockButtonRole;
2793
2793
  }>;
2794
2794
  }>) => unknown;
2795
2795
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
@@ -2825,7 +2825,7 @@ export declare const runtimeBackedBlockClientEntries: {
2825
2825
  passes: readonly import("../..").PublicPassProduct[];
2826
2826
  memberships: readonly import("../..").PublicMembershipProduct[];
2827
2827
  passPurchaseMode: "add_to_cart" | "buy_now";
2828
- buttonVariant: "primary" | "secondary" | "outline" | "link";
2828
+ buttonVariant: import("../../..").BlockButtonRole;
2829
2829
  }>;
2830
2830
  }>>;
2831
2831
  }>;
@@ -2869,7 +2869,7 @@ export declare const runtimeBackedBlockClientEntries: {
2869
2869
  passes: readonly import("../..").PublicPassProduct[];
2870
2870
  memberships: readonly import("../..").PublicMembershipProduct[];
2871
2871
  passPurchaseMode: "add_to_cart" | "buy_now";
2872
- buttonVariant: "primary" | "secondary" | "outline" | "link";
2872
+ buttonVariant: import("../../..").BlockButtonRole;
2873
2873
  }>;
2874
2874
  }>;
2875
2875
  contracts: Readonly<{
@@ -2911,7 +2911,7 @@ export declare const runtimeBackedBlockClientEntries: {
2911
2911
  passes: readonly import("../..").PublicPassProduct[];
2912
2912
  memberships: readonly import("../..").PublicMembershipProduct[];
2913
2913
  passPurchaseMode: "add_to_cart" | "buy_now";
2914
- buttonVariant: "primary" | "secondary" | "outline" | "link";
2914
+ buttonVariant: import("../../..").BlockButtonRole;
2915
2915
  }>;
2916
2916
  }>) => unknown;
2917
2917
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
@@ -2947,7 +2947,7 @@ export declare const runtimeBackedBlockClientEntries: {
2947
2947
  passes: readonly import("../..").PublicPassProduct[];
2948
2948
  memberships: readonly import("../..").PublicMembershipProduct[];
2949
2949
  passPurchaseMode: "add_to_cart" | "buy_now";
2950
- buttonVariant: "primary" | "secondary" | "outline" | "link";
2950
+ buttonVariant: import("../../..").BlockButtonRole;
2951
2951
  }>;
2952
2952
  }>>;
2953
2953
  }>;
@@ -1056,7 +1056,7 @@ export declare const runtimeBackedBlockServerEntries: {
1056
1056
  waitlistMessage?: string;
1057
1057
  membershipMessage?: string;
1058
1058
  buttonText?: string | null;
1059
- buttonVariant?: "primary" | "secondary" | "outline";
1059
+ buttonVariant?: import("../../..").BlockButtonRole;
1060
1060
  stage?: "preview" | "published";
1061
1061
  }>) => Readonly<{
1062
1062
  display: Readonly<{
@@ -1090,7 +1090,7 @@ export declare const runtimeBackedBlockServerEntries: {
1090
1090
  waitlistMessage?: string;
1091
1091
  membershipMessage?: string;
1092
1092
  buttonText?: string | null;
1093
- buttonVariant?: "primary" | "secondary" | "outline";
1093
+ buttonVariant?: import("../../..").BlockButtonRole;
1094
1094
  stage?: "preview" | "published";
1095
1095
  }>) => unknown;
1096
1096
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
@@ -1114,7 +1114,7 @@ export declare const runtimeBackedBlockServerEntries: {
1114
1114
  waitlistMessage?: string;
1115
1115
  membershipMessage?: string;
1116
1116
  buttonText?: string | null;
1117
- buttonVariant?: "primary" | "secondary" | "outline";
1117
+ buttonVariant?: import("../../..").BlockButtonRole;
1118
1118
  stage?: "preview" | "published";
1119
1119
  }>>;
1120
1120
  }>;
@@ -1232,7 +1232,7 @@ export declare const runtimeBackedBlockServerEntries: {
1232
1232
  showCapacity?: boolean;
1233
1233
  successMessage?: string;
1234
1234
  waitlistMessage?: string;
1235
- buttonVariant?: "primary" | "secondary" | "outline";
1235
+ buttonVariant?: import("../../..").BlockButtonRole;
1236
1236
  overlayEnabled?: boolean;
1237
1237
  spamProtectionEnabled?: boolean;
1238
1238
  stage?: "preview" | "published";
@@ -1277,7 +1277,7 @@ export declare const runtimeBackedBlockServerEntries: {
1277
1277
  showCapacity?: boolean;
1278
1278
  successMessage?: string;
1279
1279
  waitlistMessage?: string;
1280
- buttonVariant?: "primary" | "secondary" | "outline";
1280
+ buttonVariant?: import("../../..").BlockButtonRole;
1281
1281
  overlayEnabled?: boolean;
1282
1282
  spamProtectionEnabled?: boolean;
1283
1283
  stage?: "preview" | "published";
@@ -1309,7 +1309,7 @@ export declare const runtimeBackedBlockServerEntries: {
1309
1309
  showCapacity?: boolean;
1310
1310
  successMessage?: string;
1311
1311
  waitlistMessage?: string;
1312
- buttonVariant?: "primary" | "secondary" | "outline";
1312
+ buttonVariant?: import("../../..").BlockButtonRole;
1313
1313
  overlayEnabled?: boolean;
1314
1314
  spamProtectionEnabled?: boolean;
1315
1315
  stage?: "preview" | "published";
@@ -1389,7 +1389,7 @@ export declare const runtimeBackedBlockServerEntries: {
1389
1389
  passes: readonly import("../..").PublicPassProduct[];
1390
1390
  memberships: readonly import("../..").PublicMembershipProduct[];
1391
1391
  passPurchaseMode: "add_to_cart" | "buy_now";
1392
- buttonVariant: "primary" | "secondary" | "outline" | "link";
1392
+ buttonVariant: import("../../..").BlockButtonRole;
1393
1393
  }>;
1394
1394
  }>;
1395
1395
  contracts: Readonly<{
@@ -1431,7 +1431,7 @@ export declare const runtimeBackedBlockServerEntries: {
1431
1431
  passes: readonly import("../..").PublicPassProduct[];
1432
1432
  memberships: readonly import("../..").PublicMembershipProduct[];
1433
1433
  passPurchaseMode: "add_to_cart" | "buy_now";
1434
- buttonVariant: "primary" | "secondary" | "outline" | "link";
1434
+ buttonVariant: import("../../..").BlockButtonRole;
1435
1435
  }>;
1436
1436
  }>) => unknown;
1437
1437
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
@@ -1467,7 +1467,7 @@ export declare const runtimeBackedBlockServerEntries: {
1467
1467
  passes: readonly import("../..").PublicPassProduct[];
1468
1468
  memberships: readonly import("../..").PublicMembershipProduct[];
1469
1469
  passPurchaseMode: "add_to_cart" | "buy_now";
1470
- buttonVariant: "primary" | "secondary" | "outline" | "link";
1470
+ buttonVariant: import("../../..").BlockButtonRole;
1471
1471
  }>;
1472
1472
  }>>;
1473
1473
  }>;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { type BlockApiConfig } from '../api';
3
+ import type { CourseRegistrationClientProps } from '../nodes/course-registration/types';
4
+ import { useCourseRegistrationWizard } from '../nodes/course-registration/useCourseRegistrationWizard';
5
+ import type { HeadlessWholeSeriesRegistrationFlow, WholeSeriesRegistrationRunInput } from '../nodes/course-registration/whole-series-registration.headless.contract';
6
+ export type { BlockApiConfig };
7
+ export type { HeadlessWholeSeriesRegistrationFlow, WholeSeriesRegistrationAvailabilityModel, WholeSeriesRegistrationFlowActionResult, WholeSeriesRegistrationFlowActions, WholeSeriesRegistrationFlowStatus, WholeSeriesRegistrationFlowStep, WholeSeriesRegistrationFlowStepId, WholeSeriesRegistrationFlowView, WholeSeriesRegistrationPaymentModel, WholeSeriesRegistrationPaymentSelection, WholeSeriesRegistrationPricingInput, WholeSeriesRegistrationPricingModel, WholeSeriesRegistrationPricingOptionInput, WholeSeriesRegistrationRun, WholeSeriesRegistrationRunInput, WholeSeriesRegistrationRunsModel, WholeSeriesRegistrationSpamProtectionModel, WholeSeriesRegistrationWaitlistClaimModel, } from '../nodes/course-registration/whole-series-registration.headless.contract';
8
+ export type HeadlessWholeSeriesRegistrationFlowOptions = Readonly<{
9
+ runs?: readonly WholeSeriesRegistrationRunInput[];
10
+ contentEntry?: CourseRegistrationClientProps['contentEntry'];
11
+ subject?: CourseRegistrationClientProps['subject'];
12
+ }>;
13
+ export type HeadlessWholeSeriesRegistrationProviderProps = Readonly<{
14
+ config: BlockApiConfig;
15
+ children?: React.ReactNode;
16
+ }>;
17
+ export type WholeSeriesRegistrationControllerDeps = Readonly<{
18
+ useCourseRegistrationWizard: typeof useCourseRegistrationWizard;
19
+ }>;
20
+ export declare function createWholeSeriesRegistrationBlockApiConfig(input: Readonly<{
21
+ siteId: string;
22
+ apiBaseUrl: string;
23
+ portalToken?: string | null;
24
+ previewToken?: string | null;
25
+ stage?: 'preview' | 'published';
26
+ }>): BlockApiConfig;
27
+ export declare function HeadlessWholeSeriesRegistrationProvider({ config, children, }: HeadlessWholeSeriesRegistrationProviderProps): React.ReactElement;
28
+ export declare function useHeadlessWholeSeriesRegistrationFlow(options: HeadlessWholeSeriesRegistrationFlowOptions): HeadlessWholeSeriesRegistrationFlow;
29
+ export declare function useWholeSeriesRegistrationControllerWithDeps(options: HeadlessWholeSeriesRegistrationFlowOptions, deps: WholeSeriesRegistrationControllerDeps): HeadlessWholeSeriesRegistrationFlow;
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type ButtonSizeName } from '../../../../../theme-core/src/buttons/index';
3
- import { type ButtonAffordance } from './buttonAffordance';
4
3
  import type { PreviewLinkedEntryFieldBinding } from '../../data';
5
4
  export type TextNodeProps = {
6
5
  value?: unknown;
@@ -52,17 +51,9 @@ export type ButtonNodeProps = {
52
51
  linkRequired?: boolean;
53
52
  /**
54
53
  * Optional trailing affordance icon (a registry icon id, e.g. `'ArrowRight'`)
55
- * rendered after the label. Overrides any personality-supplied affordance.
54
+ * rendered after the label. Overrides any theme-owned affordance.
56
55
  */
57
56
  trailingIcon?: string;
58
- /** Optional palette token for the trailing icon colour (e.g. `'accent'`). */
59
- trailingIconColorToken?: string;
60
- /**
61
- * Personality/variant affordance default, supplied by the theme so a variant
62
- * can carry a trailing icon without per-node authoring. Node-level
63
- * `trailingIcon` takes precedence.
64
- */
65
- personalityAffordance?: ButtonAffordance;
66
57
  };
67
58
  export declare const ButtonNode: React.FC<ButtonNodeProps & {
68
59
  blockId?: string;
@@ -1,33 +1,17 @@
1
1
  /**
2
- * Pure resolution of a button's trailing affordance icon.
2
+ * Pure normalization of a button node's authored trailing icon.
3
3
  *
4
- * A button can acquire a trailing icon from two places:
5
- * 1. The node itself (`trailingIcon` / `trailingIconColorToken` props).
6
- * 2. The active button personality/variant (`affordance`), supplied by the
7
- * theme so a variant carries an affordance without per-node authoring.
8
- *
9
- * Node-level wins over the personality default. When neither supplies one, the
10
- * button renders no trailing icon (and the personality's CSS `::after`
11
- * affordance, if any, is left to show through).
4
+ * Theme-owned affordances render through canonical button CSS and `currentColor`;
5
+ * they are not duplicated as a second runtime colour contract.
12
6
  */
13
- export type ButtonAffordance = {
7
+ export type ResolvedButtonAffordance = {
14
8
  iconId: string;
15
- colorToken?: string;
16
9
  };
17
10
  export type ResolveButtonAffordanceInput = {
18
11
  /** Node-level icon id (e.g. `'ArrowRight'`). Highest priority. */
19
12
  trailingIcon?: string | null;
20
- /** Node-level colour token for the node icon. */
21
- trailingIconColorToken?: string | null;
22
- /** Personality/variant affordance default (theme-supplied). */
23
- personalityAffordance?: ButtonAffordance | null;
24
- };
25
- export type ResolvedButtonAffordance = ButtonAffordance & {
26
- /** Where the affordance came from — useful for suppression decisions and tests. */
27
- source: 'node' | 'personality';
28
13
  };
29
14
  /**
30
- * Resolve the trailing affordance a button should render. Node overrides
31
- * personality; returns `null` when nothing is configured.
15
+ * Resolve the node-authored trailing affordance, or `null` when no icon exists.
32
16
  */
33
17
  export declare function resolveButtonAffordance(input: ResolveButtonAffordanceInput): ResolvedButtonAffordance | null;
@@ -2,13 +2,14 @@
2
2
  * Error terminal state component.
3
3
  * Shows error message with retry option.
4
4
  */
5
+ import type { BlockButtonRole } from '../../../constants/buttonRoles';
5
6
  type ErrorStepProps = {
6
7
  /** Error message to display */
7
8
  message: string;
8
9
  /** Button text */
9
10
  buttonText?: string;
10
11
  /** Button style variant */
11
- buttonVariant?: 'primary' | 'secondary' | 'outline';
12
+ buttonVariant?: BlockButtonRole;
12
13
  /** Callback when retry is clicked */
13
14
  onRetry: () => void;
14
15
  };
@@ -2,13 +2,14 @@
2
2
  * Payment failed terminal state component.
3
3
  * Shows when payment could not be processed.
4
4
  */
5
+ import type { BlockButtonRole } from '../../../constants/buttonRoles';
5
6
  type PaymentFailedStepProps = {
6
7
  /** Error message to display */
7
8
  message?: string;
8
9
  /** Button text */
9
10
  buttonText?: string;
10
11
  /** Button style variant */
11
- buttonVariant?: 'primary' | 'secondary' | 'outline';
12
+ buttonVariant?: BlockButtonRole;
12
13
  /** Callback when retry is clicked */
13
14
  onRetry: () => void;
14
15
  };
@@ -2,11 +2,12 @@
2
2
  * Verifying timeout terminal state component.
3
3
  * Shows when payment verification takes too long.
4
4
  */
5
+ import type { BlockButtonRole } from '../../../constants/buttonRoles';
5
6
  type VerifyingTimeoutStepProps = {
6
7
  /** Button text */
7
8
  buttonText?: string;
8
9
  /** Button style variant */
9
- buttonVariant?: 'primary' | 'secondary' | 'outline';
10
+ buttonVariant?: BlockButtonRole;
10
11
  /** Callback when check again is clicked */
11
12
  onCheckAgain: () => void;
12
13
  /** Optional support email to display */
@@ -29,6 +29,20 @@ export type EnrollmentResult = {
29
29
  waitlistPosition?: number;
30
30
  usedMembership?: boolean;
31
31
  };
32
+ export type CourseRegistrationWizardActionResult = Readonly<{
33
+ kind: 'state-updated';
34
+ }> | Readonly<{
35
+ kind: 'checkout-redirect';
36
+ checkoutUrl: string;
37
+ }> | Readonly<{
38
+ kind: 'validation-failed';
39
+ }> | Readonly<{
40
+ kind: 'blocked';
41
+ message: string;
42
+ }> | Readonly<{
43
+ kind: 'failed';
44
+ message: string;
45
+ }>;
32
46
  /**
33
47
  * Content entry context from CMS
34
48
  */
@@ -105,3 +119,10 @@ export interface CourseRegistrationClientProps extends CourseRegistrationBasePro
105
119
  /** @deprecated Stage is now controlled by BlockApiProvider's isPreview config */
106
120
  stage?: 'preview' | 'published';
107
121
  }
122
+ export type CourseRegistrationWizardOptions = Readonly<{
123
+ /**
124
+ * Receives checkout destinations for headless consumers. The default UI
125
+ * navigates automatically when this callback is absent.
126
+ */
127
+ onCheckoutRedirect?: (checkoutUrl: string) => void;
128
+ }>;