@riverbankcms/sdk 0.108.0 → 0.111.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 (278) hide show
  1. package/README.md +21 -1
  2. package/dist/{PreviewEditorSidebar-BBT-kZAM.mjs → PreviewEditorSidebar-CTR6LUhN.mjs} +181 -135
  3. package/dist/{PreviewEditorUI-D69xNKT2.mjs → PreviewEditorUI-DZg15Zip.mjs} +3 -4
  4. package/dist/{PreviewQueryProvider-RRu7wyQ5.mjs → PreviewQueryProvider-kkmjklLG.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CuDjXH6o.mjs → SdkPreviewModeRuntime-DeOTAFvR.mjs} +436 -367
  6. package/dist/{SiteChromeCustomizeContext-BQUY2dEk.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs} +3442 -3029
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +12633 -10490
  8. package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
  9. package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
  10. package/dist/_dts/api/src/bookingRecords.d.ts +2 -17
  11. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  12. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
  13. package/dist/_dts/api/src/common/envelope.d.ts +7 -0
  14. package/dist/_dts/api/src/contentRuntime.d.ts +4 -1
  15. package/dist/_dts/api/src/courses.d.ts +31 -15
  16. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
  17. package/dist/_dts/api/src/endpoints.d.ts +49 -4
  18. package/dist/_dts/api/src/index.d.ts +3 -3
  19. package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
  20. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
  21. package/dist/_dts/api/src/sdkContracts.d.ts +259 -1
  22. package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
  23. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +6 -6
  24. package/dist/_dts/api/src/siteOperations.d.ts +11 -19
  25. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +29 -1
  26. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -31
  27. package/dist/_dts/api/src/webhooks.d.ts +98 -1
  28. package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
  29. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
  30. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
  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 +8 -8
  34. package/dist/_dts/blocks/src/index.d.ts +4 -2
  35. package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
  36. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
  38. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +3 -23
  39. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +5 -4
  41. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -23
  42. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
  43. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  44. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +3 -2
  45. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
  46. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +5 -1
  47. package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
  48. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
  49. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
  50. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +5 -1
  51. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  52. package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
  53. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
  54. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  55. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
  56. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
  57. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  58. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
  59. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
  60. package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
  61. package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
  62. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +10 -1
  63. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
  64. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +31 -0
  65. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -24
  66. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -12
  67. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +1 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
  70. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
  71. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
  72. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
  73. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
  74. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
  76. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
  80. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
  81. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -4
  83. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
  84. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  85. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
  86. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
  87. package/dist/_dts/content-editor/src/index.d.ts +12 -12
  88. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +17 -2
  89. package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
  90. package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
  91. package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
  92. package/dist/_dts/content-model/src/index.d.ts +3 -0
  93. package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
  94. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3278 -3196
  95. package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
  96. package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
  97. package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
  98. package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
  99. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
  100. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
  101. package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
  102. package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
  103. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
  104. package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
  105. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
  106. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
  107. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
  108. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
  109. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
  110. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -7
  111. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
  112. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
  113. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
  114. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
  115. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
  116. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
  117. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
  118. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  119. package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
  120. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
  121. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
  122. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
  123. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
  124. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
  125. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
  126. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
  127. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
  128. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
  129. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
  130. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
  131. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
  132. package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
  133. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
  134. package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
  135. package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
  136. package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
  137. package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
  138. package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
  139. package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
  140. package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
  141. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  142. package/dist/_dts/sdk/src/client/management/types.d.ts +45 -20
  143. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -15
  144. package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
  145. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -1
  146. package/dist/_dts/sdk/src/version.d.ts +1 -1
  147. package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
  148. package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
  149. package/dist/_dts/site-commands/src/commands.d.ts +1010 -817
  150. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  151. package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
  152. package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
  153. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
  154. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
  155. package/dist/_dts/theme-core/src/buttons/index.d.ts +2 -1
  156. package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
  157. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
  158. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
  159. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
  160. package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
  161. package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
  162. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
  163. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
  164. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
  165. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
  166. package/dist/_dts/theme-core/src/buttons/types.d.ts +101 -83
  167. package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
  168. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  169. package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
  170. package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
  171. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +87 -126
  172. package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
  173. package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -2
  174. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
  175. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
  176. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
  177. package/dist/_dts/theme-core/src/schema.d.ts +112 -138
  178. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  179. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
  180. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
  181. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
  182. package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
  183. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
  184. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
  185. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
  186. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +33 -12
  187. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
  188. package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
  189. package/dist/cli/index.mjs +68396 -67339
  190. package/dist/cli/init-docs/content/cli-reference.md +50 -7
  191. package/dist/cli/init-docs/content/content-management.md +7 -4
  192. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
  193. package/dist/cli/init-docs/content/workflow-publish.md +5 -1
  194. package/dist/client/{DiscountCodeDisclosure-D6TOf6Hi.mjs → DiscountCodeDisclosure-C4xvTBux.mjs} +1 -1
  195. package/dist/client/{EventCombined.client-Dao3zxRk.mjs → EventCombined.client-Cr7G131j.mjs} +2 -3
  196. package/dist/client/{EventListing.client-B2NNt4y1.mjs → EventListing.client-CAjbseNy.mjs} +2 -2
  197. package/dist/client/{LeafletStaticMap-BhwFo16w.mjs → LeafletStaticMap-BMlWfwz3.mjs} +1 -1
  198. package/dist/client/{MagicLinkForm-BWnB7cMR.mjs → MagicLinkForm-ChdFz96y.mjs} +1 -2
  199. package/dist/client/{StepIndicator-TzRiQ0BY.mjs → StepIndicator-7D3GaBeM.mjs} +2 -2
  200. package/dist/client/{accordion-BPy-AJ4_.mjs → accordion-D8JTs2Si.mjs} +1 -1
  201. package/dist/client/{bookingForm-BL4PGZds.mjs → bookingForm-H3DCRBHs.mjs} +6 -7
  202. package/dist/client/bookings.mjs +4649 -2767
  203. package/dist/client/{carousel-C2b7Cn9-.mjs → carousel-DMr_QWlz.mjs} +1 -1
  204. package/dist/client/{cart-BQcbXIVD.mjs → cart-DWMbfBdR.mjs} +3 -3
  205. package/dist/client/{checkout-DEmpGRJu.mjs → checkout-zmfdkXLx.mjs} +3 -3
  206. package/dist/client/client.mjs +3195 -2488
  207. package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-gcTh5yZT.mjs} +2 -41
  208. package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorTokenParts-FSS3al6l.mjs} +31 -1
  209. package/dist/client/{courseRegistration-BqRZPmsq.mjs → courseRegistration-Z_mn18jy.mjs} +100 -37
  210. package/dist/client/{eventCalendar-B8N_tSl5.mjs → eventCalendar-CYp0YJGF.mjs} +4 -5
  211. package/dist/client/{eventCombined-Gjn6gtq7.mjs → eventCombined-rKyYZUa9.mjs} +2 -2
  212. package/dist/client/{eventDetails-M-VCxA-r.mjs → eventDetails-X0ZaUuMj.mjs} +3 -3
  213. package/dist/client/{eventListing-DR19hqYi.mjs → eventListing-W1SuL7EP.mjs} +2 -2
  214. package/dist/client/{eventRegistration-BR02a0k3.mjs → eventRegistration-ClWricui.mjs} +6 -7
  215. package/dist/client/{form-LY2xIbwg.mjs → form--eKPwAAD.mjs} +1 -2
  216. package/dist/client/{headerSection-CYwwXJfh.mjs → headerSection-BSeGr-FS.mjs} +2 -3
  217. package/dist/client/hooks.mjs +2169 -2093
  218. package/dist/client/{locationMap-DWnBXrFq.mjs → locationMap-BpOrtNYn.mjs} +8 -5
  219. package/dist/client/{media-DHtSxS5V.mjs → media-DoF0dcVx.mjs} +4 -3
  220. package/dist/client/{newsletterForm-D9s-fQ2P.mjs → newsletterForm-Bt7it7Dy.mjs} +1 -2
  221. package/dist/client/{pricing-DDq80oYc.mjs → pricing-BTjSDDr4.mjs} +1 -1
  222. package/dist/client/{productDetail-B0SbWd45.mjs → productDetail-ICnVTcCg.mjs} +3 -3
  223. package/dist/client/{productList-PwYlZn0y.mjs → productList-ZHr6D604.mjs} +3 -3
  224. package/dist/client/{propsDecoder-BRWBiH7i.mjs → propsDecoder-wWN0tBDF.mjs} +2484 -223
  225. package/dist/client/rendering/client.mjs +2532 -2144
  226. package/dist/client/rendering/islands.mjs +20 -20
  227. package/dist/client/rendering.mjs +3322 -2462
  228. package/dist/client/{shop-CMwZPYME.mjs → shop-C1u_BUn0.mjs} +5 -6
  229. package/dist/client/{shop-commerce-BuxsFate.mjs → shop-commerce-CleZdRha.mjs} +5 -6
  230. package/dist/client/{shop-commerce-store-boYlEJ91.mjs → shop-commerce-store-ycnoB2Ce.mjs} +1 -1
  231. package/dist/client/{shopShared-D2naaOes.mjs → shopShared-CPhByt2a.mjs} +3 -3
  232. package/dist/client/{useDiscountCodeUi-D9RHpVoj.mjs → useDiscountCodeUi-cStSQI6C.mjs} +1 -1
  233. package/dist/client/{useEventFilters-igGiK1re.mjs → useEventFilters-DKPN7hSY.mjs} +46 -70
  234. package/dist/client/{usePolling-CI7MbsFB.mjs → usePolling-BKAd6pkZ.mjs} +2 -2
  235. package/dist/preview-next/before-render.mjs +72 -6
  236. package/dist/preview-next/client/runtime.mjs +4 -4
  237. package/dist/preview-next/middleware.mjs +72 -6
  238. package/dist/{previewAuthStore-a_cBD28m.mjs → previewAuthStore-BkT1D06A.mjs} +72 -6
  239. package/dist/{sdk-runtime-MBzD-GmP.mjs → sdk-runtime-hu3wr3ng.mjs} +2 -2
  240. package/dist/{separator-5ahRBC85.mjs → separator-Bln8izQ9.mjs} +1 -1
  241. package/dist/server/components.mjs +3123 -2391
  242. package/dist/server/config-validation.mjs +2169 -2093
  243. package/dist/server/config.mjs +2169 -2093
  244. package/dist/server/data.mjs +2169 -2093
  245. package/dist/server/date-time.mjs +386 -0
  246. package/dist/server/index.mjs +73 -7
  247. package/dist/server/next/revalidate.mjs +53 -1
  248. package/dist/server/next.mjs +3195 -2397
  249. package/dist/server/page-converter.mjs +2192 -1945
  250. package/dist/server/prebuild.mjs +1 -1
  251. package/dist/server/rendering/server.mjs +2844 -2325
  252. package/dist/server/rendering.mjs +3123 -2391
  253. package/dist/server/routing.mjs +2269 -2149
  254. package/dist/server/server.mjs +2244 -2102
  255. package/dist/server/theme-bridge.mjs +2720 -1887
  256. package/dist/server/theme.mjs +1669 -1322
  257. package/dist/server/webhooks.mjs +54 -2
  258. package/dist/styles/index.css +5 -0
  259. package/package.json +7 -1
  260. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
  261. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
  262. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
  263. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
  264. package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
  265. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
  266. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
  267. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
  268. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
  269. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
  270. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
  271. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
  272. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
  273. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
  274. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -273
  275. package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
  276. package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
  277. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
  278. package/dist/client/buttons-EBjyslaX.mjs +0 -1852
@@ -4,6 +4,7 @@ import type { NodeDefinition } from "../../node";
4
4
  import { type SectionStylesContent } from "../../fields/boxStyles";
5
5
  import { type BlockConfig, type BlockContentShapeInput, type DefinedBlockManifest } from "../../defineBlock";
6
6
  import type { EventCardVariantInput } from "./shared/types";
7
+ import type { BlockButtonRole } from "../../constants/buttonRoles";
7
8
  /**
8
9
  * Event Spotlight Block
9
10
  *
@@ -34,7 +35,7 @@ export type EventSpotlightContent = {
34
35
  layout?: "grid" | "stack" | null;
35
36
  columns?: "2" | "3" | null;
36
37
  cardVariant?: EventCardVariantInput | null;
37
- buttonVariant?: "primary" | "secondary" | "outline" | "link" | null;
38
+ buttonVariant?: BlockButtonRole | null;
38
39
  buttonText?: string | null;
39
40
  showVenue?: boolean | null;
40
41
  showMap?: boolean | null;
@@ -3,6 +3,7 @@ import type { TipTapNode } from '../../manifest/richTextSchema';
3
3
  import type { LinkValue } from '../../types/link';
4
4
  import { type BlockConfig, type BlockContentShapeInput, type DefinedBlockManifest } from '../../defineBlock';
5
5
  import { type SectionStylesContent } from '../../fields/boxStyles';
6
+ import type { BlockButtonRole } from '../../constants/buttonRoles';
6
7
  export { projectRecurringSchedule, recurringScheduleProjectionSchema, } from './recurring-schedule-projection';
7
8
  export type { RecurringScheduleBooking, RecurringScheduleCadence, RecurringScheduleDiagnostic, RecurringScheduleItem, RecurringScheduleProjection, } from './recurring-schedule-projection';
8
9
  export declare const recurringScheduleManifest: DefinedBlockManifest<BlockContentShapeInput<BlockConfig>>;
@@ -11,8 +12,8 @@ export type RecurringScheduleContent = Readonly<{
11
12
  heading?: string | null;
12
13
  description?: TipTapNode | null;
13
14
  showVenue?: boolean | null;
14
- buttonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
15
- seeAllButtonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
15
+ buttonVariant?: BlockButtonRole | null;
16
+ seeAllButtonVariant?: BlockButtonRole | null;
16
17
  buttonText?: string | null;
17
18
  seeAllUrl?: LinkValue | null;
18
19
  seeAllLabel?: string | null;
@@ -10,6 +10,7 @@ import type { CoursePricing } from '../../courses/shared/types';
10
10
  import type { eventCalendarDefaultViewValues, eventCalendarDisplayModeValues, eventCalendarListLayoutValues } from '../../../constants/events';
11
11
  import type { EventBlockKind, EventScheduleScope, EventSurfacePreset, EventSurfaceScope } from './filtering';
12
12
  import type { CardVariantRole, LegacyCardVariantRoleAlias } from '../../../../../../theme-core/src/cards/index';
13
+ import type { BlockButtonRole } from '../../../constants/buttonRoles';
13
14
  /**
14
15
  * Geographic coordinates for venue location
15
16
  */
@@ -185,7 +186,7 @@ export type CardOrientation = "vertical" | "horizontal";
185
186
  /**
186
187
  * Button variant options for event actions
187
188
  */
188
- export type ButtonVariant = "primary" | "secondary" | "outline" | "link";
189
+ export type ButtonVariant = BlockButtonRole;
189
190
  /**
190
191
  * Layout options for event lists
191
192
  */
@@ -1,10 +1,14 @@
1
1
  import { type PublicDownloadMedia } from "../../lib/media";
2
2
  import type { SystemBlockDefinition } from "../registry";
3
+ import type { BlockButtonRole } from "../constants/buttonRoles";
3
4
  export declare const fileDownloadManifest: import("..").DefinedBlockManifest<import("..").BlockContentShapeInput<{
4
5
  readonly id: "block.file-download";
5
6
  readonly title: "File Download";
6
7
  readonly titleSource: ["title", "file.filename"];
7
8
  readonly category: "media";
9
+ readonly contentSource: {
10
+ readonly kind: "inline";
11
+ };
8
12
  readonly description: "Add a simple public download link for a document, ZIP, or audio file.";
9
13
  readonly tags: readonly ["file", "download", "document", "zip", "media"];
10
14
  readonly icon: "Download";
@@ -53,6 +57,6 @@ export type FileDownloadContent = {
53
57
  title?: string | null;
54
58
  description?: string | null;
55
59
  buttonLabel?: string | null;
56
- buttonVariant?: "primary" | "secondary" | "outline" | "link" | null;
60
+ buttonVariant?: BlockButtonRole | null;
57
61
  };
58
62
  export declare const fileDownloadBlockDefinition: SystemBlockDefinition<FileDownloadContent>;
@@ -78,6 +78,9 @@ export declare const formManifest: import("..").DefinedBlockManifest<import(".."
78
78
  readonly paletteHidden: false;
79
79
  };
80
80
  readonly category: "interactive";
81
+ readonly contentSource: {
82
+ readonly kind: "inline";
83
+ };
81
84
  readonly tags: readonly ["form", "contact", "input", "submit", "fields", "signup", "lead-capture"];
82
85
  readonly icon: "FormInput";
83
86
  }>>;
@@ -6,6 +6,9 @@ export declare const imageGalleryManifest: import("..").DefinedBlockManifest<imp
6
6
  readonly id: "block.image-gallery";
7
7
  readonly title: "Image Gallery";
8
8
  readonly category: "content";
9
+ readonly contentSource: {
10
+ readonly kind: "inline";
11
+ };
9
12
  readonly previewCustomize: {
10
13
  readonly quickFieldPriority: ["aspectRatio", "slidesToShow", "fullBleed", "marqueeSpeed", "marqueePauseOnHover"];
11
14
  };
@@ -31,6 +31,9 @@ export declare const mediaTextManifest: import("..").DefinedBlockManifest<import
31
31
  readonly id: "block.media-text";
32
32
  readonly title: "Media and Text";
33
33
  readonly category: "layout";
34
+ readonly contentSource: {
35
+ readonly kind: "inline";
36
+ };
34
37
  readonly includeContainerStyles: true;
35
38
  readonly titleSource: "title";
36
39
  readonly previewCustomize: {
@@ -2,12 +2,16 @@ import type { SystemBlockDefinition } from "../registry";
2
2
  import type { SectionStylesContent } from "../fields/boxStyles";
3
3
  import { newsletterFormBlockRuntime } from "../runtime/nodes/newsletter-form.interactive";
4
4
  import type { NewsletterSignupAuthoringDestination, NewsletterSignupFieldPreset } from "./newsletter-signup-destination";
5
+ import type { BlockButtonRole } from "../constants/buttonRoles";
5
6
  export declare const newsletterSignupManifest: import("..").DefinedBlockManifest<import("..").BlockContentShapeInput<{
6
7
  readonly id: "block.newsletter-signup";
7
8
  readonly title: "Newsletter Signup";
8
9
  readonly titleSource: "title";
9
10
  readonly description: "Newsletter subscription form with configurable field presets.";
10
11
  readonly category: "interactive";
12
+ readonly contentSource: {
13
+ readonly kind: "inline";
14
+ };
11
15
  readonly fragments: readonly [{
12
16
  readonly fragment: import("..").DefinedFragment<{
13
17
  readonly fields: readonly [{
@@ -202,7 +206,7 @@ export type NewsletterSignupContent = {
202
206
  preset: NewsletterSignupPreset;
203
207
  includePhone?: boolean | null;
204
208
  buttonLabel?: string | null;
205
- buttonVariant?: 'primary' | 'secondary' | 'outline' | null;
209
+ buttonVariant?: BlockButtonRole | null;
206
210
  successMessage?: string | null;
207
211
  privacyNote?: string | null;
208
212
  tags?: string | null;
@@ -3,6 +3,7 @@ import { type SectionStylesContent } from "../fields/boxStyles";
3
3
  import { publicMembershipProductSchema, publicPassProductSchema, publicMembershipProductCollectionSchema, publicPassProductCollectionSchema, type PublicMembershipProductCollection, type PublicMembershipProduct, type PublicPassProductCollection, type PublicPassProduct } from "./shop.shared";
4
4
  import { shopBlockRuntime } from "../runtime/nodes/shop.interactive";
5
5
  import type { BlockManifest } from "../manifest/schema";
6
+ import type { BlockButtonRole } from "../constants/buttonRoles";
6
7
  /**
7
8
  * Passes & Memberships Block
8
9
  *
@@ -28,7 +29,7 @@ export type ShopContent = {
28
29
  showDescriptions?: boolean | null;
29
30
  showValidityPeriod?: boolean | null;
30
31
  showPricePerCredit?: boolean | null;
31
- buttonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
32
+ buttonVariant?: BlockButtonRole | null;
32
33
  passesHeading?: string | null;
33
34
  membershipsHeading?: string | null;
34
35
  buyButtonText?: string | null;
@@ -1,11 +1,12 @@
1
1
  import type { SystemBlockDefinition } from "../registry";
2
2
  import type { LinkValue } from "../types/link";
3
+ import type { BlockButtonRole } from "../constants/buttonRoles";
3
4
  export type SingleButtonContent = {
4
5
  title?: string | null;
5
6
  button?: {
6
7
  label?: string | null;
7
8
  link?: LinkValue | null;
8
- variant?: string | null;
9
+ variant?: BlockButtonRole | null;
9
10
  } | null;
10
11
  };
11
12
  export declare const singleButtonManifest: import("..").DefinedBlockManifest<{
@@ -4,6 +4,9 @@ export declare const siteHeaderManifest: import("..").DefinedBlockManifest<impor
4
4
  readonly id: "block.site-header";
5
5
  readonly title: "Site Header";
6
6
  readonly category: "layout";
7
+ readonly contentSource: {
8
+ readonly kind: "inline";
9
+ };
7
10
  readonly additionalFields: readonly [{
8
11
  readonly id: "mode";
9
12
  readonly type: "select";
@@ -13,6 +13,9 @@ export declare const teamMembersManifest: import("..").DefinedBlockManifest<impo
13
13
  readonly id: "block.team-members";
14
14
  readonly title: "Team Members";
15
15
  readonly category: "content";
16
+ readonly contentSource: {
17
+ readonly kind: "mixed";
18
+ };
16
19
  readonly titleSource: "heading";
17
20
  readonly additionalFields: readonly [import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, import("../../../../block-form/src/backend/index").FieldDefinition, {
18
21
  readonly ui: {
@@ -5,6 +5,9 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
5
5
  readonly id: "block.testimonials";
6
6
  readonly title: "Testimonials";
7
7
  readonly category: "marketing";
8
+ readonly contentSource: {
9
+ readonly kind: "inline";
10
+ };
8
11
  readonly includeContainerStyles: true;
9
12
  readonly previewCustomize: {
10
13
  readonly quickFieldPriority: ["avatarLayout", "gridColumns", "slidesToShow", "maxEntries", "autoplay"];
@@ -4,6 +4,9 @@ export declare const videoGridManifest: import("..").DefinedBlockManifest<import
4
4
  readonly id: "block.video-grid";
5
5
  readonly title: "Video Grid";
6
6
  readonly category: "media";
7
+ readonly contentSource: {
8
+ readonly kind: "inline";
9
+ };
7
10
  readonly skipSectionStyles: true;
8
11
  readonly additionalFields: import("../../../../block-form/src/backend/index").FieldDefinition[];
9
12
  readonly layout: NodeDefinition;
@@ -54,7 +54,7 @@ export declare const BACKGROUND_POSITION_PRESETS: readonly [{
54
54
  readonly value: "right bottom";
55
55
  readonly label: "Right Bottom";
56
56
  }];
57
- export declare const BACKGROUND_POSITION_PRESET_VALUES: ("bottom" | "left" | "right" | "top" | "center" | "right center" | "top left" | "top right" | "bottom left" | "bottom right" | "top center" | "bottom center" | "left center" | "left top" | "right top" | "left bottom" | "right bottom")[];
57
+ export declare const BACKGROUND_POSITION_PRESET_VALUES: ("left" | "right" | "bottom" | "top" | "center" | "right center" | "top center" | "top left" | "top right" | "bottom left" | "bottom right" | "bottom center" | "left center" | "left top" | "right top" | "left bottom" | "right bottom")[];
58
58
  /**
59
59
  * Maps position keywords to rb-* anchor positioning classes.
60
60
  * Used for positioning scaled/overflow images within their containers.
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ import { type PublicButtonRole } from '../../../../theme-core/src/buttons/index';
3
+ /**
4
+ * Semantic button roles available to block authors.
5
+ *
6
+ * These roles are deliberately independent of a site's visual button style:
7
+ * the active theme owns how each role looks.
8
+ */
9
+ export declare const BLOCK_BUTTON_ROLES: readonly ["primary", "secondary", "outline", "ghost", "accent"];
10
+ export type BlockButtonRole = PublicButtonRole;
11
+ export declare const blockButtonRoleSchema: z.ZodEnum<{
12
+ outline: "outline";
13
+ accent: "accent";
14
+ primary: "primary";
15
+ secondary: "secondary";
16
+ ghost: "ghost";
17
+ }>;
18
+ /**
19
+ * Temporary rollout boundary for persisted content written before issue #1220.
20
+ * Authoring remains strict through `blockButtonRoleSchema`; this parser exists
21
+ * only until the post-deploy role rewrite has been audited in production.
22
+ */
23
+ export declare function canonicalizePersistedBlockButtonRole(value: string): string;
24
+ export declare const persistedBlockButtonRoleSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodEnum<{
25
+ outline: "outline";
26
+ accent: "accent";
27
+ primary: "primary";
28
+ secondary: "secondary";
29
+ ghost: "ghost";
30
+ }>>;
31
+ export declare const BLOCK_BUTTON_ROLE_OPTIONS: ReadonlyArray<{
32
+ readonly value: BlockButtonRole;
33
+ readonly label: string;
34
+ }>;
35
+ export declare function isBlockButtonRole(value: unknown): value is BlockButtonRole;
@@ -1,15 +1,14 @@
1
1
  import { type MediaAssetId } from '../../../../core/src/index';
2
2
  import { type ThemeBackgroundTextLegibilityPlan, type AppearancePresetId, type LayoutVariantKey, type PageDesignEditorBackgroundSupport } from '../../../../theme-core/src/site-styles/index';
3
3
  import type { ThemeColorToken } from '../../../../theme-core/src/tokens/index';
4
+ import { type GradientPresetId } from '../../../../theme-core/src/gradients/index';
4
5
  import type { RenderableMediaAsset } from '../../../../media-core/src/index';
6
+ export { isGradientPresetId, parseGradientPresetId, type GradientPresetId, } from '../../../../theme-core/src/gradients/index';
5
7
  export type BackgroundMode = 'default' | 'color' | 'gradient' | 'image';
6
8
  export type BackgroundModeCycleDirection = 'prev' | 'next';
7
9
  export type BackgroundColorToken = ThemeColorToken & {
8
10
  readonly __backgroundColorTokenBrand: 'BackgroundColorToken';
9
11
  };
10
- export type GradientPresetId = string & {
11
- readonly __brand: 'GradientPresetId';
12
- };
13
12
  export type BackgroundOverride = Readonly<{
14
13
  kind: 'default';
15
14
  }> | Readonly<{
@@ -31,6 +30,15 @@ export type ParsedBackgroundOverride = Readonly<{
31
30
  reason: LegacyBackgroundReason;
32
31
  background: Readonly<Record<string, unknown>>;
33
32
  }>;
33
+ export type CanonicalSectionBackground = Readonly<{
34
+ kind: 'none';
35
+ }> | Readonly<{
36
+ kind: 'block-authored';
37
+ background: Readonly<Record<string, unknown>>;
38
+ }> | Readonly<{
39
+ kind: 'page-design-override';
40
+ parsed: ParsedBackgroundOverride;
41
+ }>;
34
42
  export type BackgroundImagePoolSource = 'current' | 'generated-ambient' | 'previous-background' | 'general-media';
35
43
  export type BackgroundImagePoolMediaAsset = RenderableMediaAsset;
36
44
  type BaseBackgroundImagePoolItem = Readonly<{
@@ -169,8 +177,6 @@ export declare function isBackgroundColorToken(value: unknown): value is Backgro
169
177
  export declare function foregroundTokenForBackgroundColorToken(token: BackgroundColorToken): string;
170
178
  export declare function planBackgroundColorTextLegibility(token: BackgroundColorToken): ThemeBackgroundTextLegibilityPlan;
171
179
  export declare function dedupeBackgroundColorTokensByPalette(tokens: readonly BackgroundColorToken[], palette: BackgroundColorPalette): readonly BackgroundColorToken[];
172
- export declare function parseGradientPresetId(value: unknown): GradientPresetId | null;
173
- export declare function isGradientPresetId(value: unknown): value is GradientPresetId;
174
180
  export declare function backgroundModeForOverride(override: BackgroundOverride): BackgroundMode;
175
181
  export declare function backgroundOverrideEquals(left: BackgroundOverride, right: BackgroundOverride): boolean;
176
182
  export declare function imagePoolForOverride(override: BackgroundOverride): readonly BackgroundImagePoolItem[];
@@ -178,6 +184,11 @@ export declare function defaultBackgroundOverrideForMode(mode: BackgroundMode, c
178
184
  export declare function resolveBackgroundCapability(input: ResolveBackgroundCapabilityInput): BackgroundCapability;
179
185
  export declare function backgroundCapabilityFromModes(modeCapabilities: readonly BackgroundModeCapability[]): BackgroundCapability;
180
186
  export declare function parseBackgroundOverrideFromContent(content: BackgroundCustomizeContent): ParsedBackgroundOverride;
187
+ /**
188
+ * Classifies persisted content before runtime Look decoration is considered.
189
+ * Only the explicit owner marker can make a background a page-design override.
190
+ */
191
+ export declare function parseCanonicalSectionBackground(content: BackgroundCustomizeContent): CanonicalSectionBackground;
181
192
  export declare function parseBackgroundOverride(value: unknown): ParsedBackgroundOverride;
182
193
  export declare function serializeBackgroundOverride(override: BackgroundOverride): Record<string, unknown> | null;
183
194
  export declare function applyBackgroundOverrideContentPatch(content: BackgroundCustomizeContent, override: BackgroundOverride): BackgroundCustomizeContent;
@@ -187,4 +198,3 @@ export declare function rankBackgroundImagePoolItems(items: readonly BackgroundI
187
198
  export declare function enabledBackgroundModes(capability: BackgroundCapability): readonly BackgroundMode[];
188
199
  export declare function backgroundColorTokensForValueCycling(capability: BackgroundCapability): readonly BackgroundColorToken[];
189
200
  export declare function canCycleBackgroundOverrideValue(override: BackgroundOverride, capability: BackgroundCapability): boolean;
190
- export {};
@@ -1,4 +1,4 @@
1
- import type { BlockManifest, BlockCategory, PreviewCustomizeManifestCuration, StyleTokenConfig, BehaviourConfig } from './manifest/schema';
1
+ import type { BlockManifest, BlockCategory, BlockContentSource, PreviewCustomizeManifestCuration, StyleTokenConfig, BehaviourConfig } from './manifest/schema';
2
2
  import type { NodeDefinition } from './node';
3
3
  import { type FragmentFieldConfigInput, type FragmentConfigInputOf, type FragmentDefinition } from './fragments';
4
4
  /**
@@ -72,6 +72,14 @@ export type BlockConfig = {
72
72
  previewCustomize?: PreviewCustomizeManifestCuration;
73
73
  /** Content types this block is compatible with */
74
74
  contentTypes?: readonly string[];
75
+ /**
76
+ * Explicit content-source classification for this block: whether its rendered
77
+ * content is authored inline, comes from content-type entries, or both.
78
+ * Declared per block (not inferred) and REQUIRED — a system block cannot be
79
+ * defined without classifying itself, and a registry-wide test double-checks
80
+ * the assembled manifests.
81
+ */
82
+ contentSource: BlockContentSource;
75
83
  };
76
84
  declare const BlockInput: unique symbol;
77
85
  type PickConfigProperty<C, K extends keyof BlockConfig> = K extends keyof C ? {
@@ -1,11 +1,12 @@
1
1
  import type { FieldDefinition, GroupFieldDefinition } from '../manifest/schema';
2
+ import { type BlockButtonRole } from '../constants/buttonRoles';
2
3
  type ButtonSelectOption = {
3
- readonly value: string;
4
+ readonly value: BlockButtonRole;
4
5
  readonly label: string;
5
6
  };
6
7
  export type ButtonOptions = {
7
8
  variants?: readonly ButtonSelectOption[];
8
- defaultVariant?: string;
9
+ defaultVariant?: BlockButtonRole;
9
10
  includeSize?: boolean;
10
11
  defaultSize?: 'sm' | 'md' | 'lg' | 'xl';
11
12
  showGroupLabel?: boolean;
@@ -13,7 +14,7 @@ export type ButtonOptions = {
13
14
  groupLabel?: string;
14
15
  flattenInRepeater?: boolean;
15
16
  };
16
- type DefaultButtonVariant = 'primary' | 'secondary' | 'outline';
17
+ type DefaultButtonVariant = BlockButtonRole;
17
18
  type ButtonSize = 'sm' | 'md' | 'lg' | 'xl';
18
19
  type ButtonOptionVariants<O> = O extends {
19
20
  variants: readonly (infer Option extends ButtonSelectOption)[];
@@ -77,28 +78,16 @@ export type ButtonGroupField<O extends ButtonOptions = {}> = GroupFieldDefinitio
77
78
  readonly fields: ButtonGroupFields<ButtonOptionVariants<O>, ButtonOptionIncludeSize<O>>;
78
79
  };
79
80
  };
80
- export declare const DEFAULT_THEME_BUTTON_VARIANTS: readonly [{
81
- readonly value: "primary";
82
- readonly label: "Primary";
83
- }, {
84
- readonly value: "secondary";
85
- readonly label: "Secondary";
86
- }, {
87
- readonly value: "outline";
88
- readonly label: "Outline";
89
- }, {
90
- readonly value: "link";
91
- readonly label: "Link";
92
- }];
81
+ export declare const DEFAULT_THEME_BUTTON_VARIANTS: readonly {
82
+ readonly value: BlockButtonRole;
83
+ readonly label: string;
84
+ }[];
93
85
  export type ButtonVariantFieldOptions = {
94
86
  id?: string;
95
87
  label?: string;
96
88
  description?: string;
97
- defaultValue?: string;
98
- variants?: ReadonlyArray<{
99
- value: string;
100
- label: string;
101
- }>;
89
+ defaultValue?: BlockButtonRole;
90
+ variants?: ReadonlyArray<ButtonSelectOption>;
102
91
  };
103
92
  export declare function createButtonVariantField(options?: ButtonVariantFieldOptions): FieldDefinition;
104
93
  export declare function createButtonGroup<const O extends ButtonOptions = {}>(options?: O): ButtonGroupField<O>;
@@ -1,4 +1,5 @@
1
1
  import type { FieldDefinition } from '../manifest/schema';
2
+ import type { BlockButtonRole } from '../constants/buttonRoles';
2
3
  import { type ButtonGroupField, type ButtonOptions } from './button';
3
4
  type CtasOptions = {
4
5
  id?: string;
@@ -7,6 +8,14 @@ type CtasOptions = {
7
8
  minItems?: number;
8
9
  maxItems?: number;
9
10
  button?: ButtonOptions;
11
+ /**
12
+ * Explicit default value for the repeater. Pass `[]` to guarantee the CTA
13
+ * repeater materializes with NO seeded row (see 8.1: onboarding must not leave
14
+ * placeholder `label:"Label"` CTA stubs). Without this the repeater still
15
+ * defaults to `[]` via `minItems: 0`, but declaring it makes the no-seed
16
+ * contract explicit and regression-proof against a future `minItems` change.
17
+ */
18
+ defaultValue?: readonly Record<string, unknown>[];
10
19
  };
11
20
  type CtasOptionId<O> = O extends {
12
21
  id: infer Id extends string;
@@ -29,7 +38,7 @@ export type BlockCtaContent = {
29
38
  label?: string | null;
30
39
  href?: string | null;
31
40
  link?: unknown;
32
- variant?: string | null;
41
+ variant?: BlockButtonRole | null;
33
42
  size?: string | null;
34
43
  };
35
44
  export declare function createCtasRepeater<const O extends CtasOptions = {}>(options?: O): CtasRepeaterField<O>;
@@ -2,10 +2,6 @@ import { type DefinedFragment } from "../types";
2
2
  import { type CtasRepeaterField } from "../../fields/ctas";
3
3
  type HeroCtaButtonOptions = {
4
4
  readonly variants: readonly [
5
- {
6
- readonly value: "default";
7
- readonly label: "Default";
8
- },
9
5
  {
10
6
  readonly value: "primary";
11
7
  readonly label: "Primary";
@@ -17,9 +13,17 @@ type HeroCtaButtonOptions = {
17
13
  {
18
14
  readonly value: "outline";
19
15
  readonly label: "Outline";
16
+ },
17
+ {
18
+ readonly value: "ghost";
19
+ readonly label: "Ghost";
20
+ },
21
+ {
22
+ readonly value: "accent";
23
+ readonly label: "Accent";
20
24
  }
21
25
  ];
22
- readonly defaultVariant: "default";
26
+ readonly defaultVariant: "primary";
23
27
  readonly includeSize: true;
24
28
  readonly defaultSize: "lg";
25
29
  };
@@ -4845,6 +4845,29 @@ export declare const blockCategoryEnum: z.ZodEnum<{
4845
4845
  interactive: "interactive";
4846
4846
  }>;
4847
4847
  export type BlockCategory = z.infer<typeof blockCategoryEnum>;
4848
+ /**
4849
+ * Explicit authoring classification of where a block's rendered content comes from.
4850
+ *
4851
+ * - `inline` — all content is authored inline in the block's own fields.
4852
+ * - `entries` — the block renders content-type entries; `contentType` names the backing type.
4853
+ * - `mixed` — the block has inline fields AND renders entries; `contentType` names the
4854
+ * backing type when a single one applies.
4855
+ *
4856
+ * This is EXPLICIT metadata declared on every block definition (not inferred from
4857
+ * dataLoaders/field types), so the catalog can classify entry-backed vs inline blocks
4858
+ * honestly. A registry-wide test asserts every registered block declares it.
4859
+ */
4860
+ export declare const blockContentSourceKinds: readonly ["inline", "entries", "mixed"];
4861
+ export type BlockContentSourceKind = (typeof blockContentSourceKinds)[number];
4862
+ export declare const blockContentSourceSchema: z.ZodObject<{
4863
+ kind: z.ZodEnum<{
4864
+ entries: "entries";
4865
+ mixed: "mixed";
4866
+ inline: "inline";
4867
+ }>;
4868
+ contentType: z.ZodOptional<z.ZodString>;
4869
+ }, z.core.$strip>;
4870
+ export type BlockContentSource = z.infer<typeof blockContentSourceSchema>;
4848
4871
  export declare const manifestSchema: z.ZodObject<{
4849
4872
  name: z.ZodString;
4850
4873
  version: z.ZodString;
@@ -4939,6 +4962,14 @@ export declare const manifestSchema: z.ZodObject<{
4939
4962
  interactive: "interactive";
4940
4963
  }>>;
4941
4964
  contentTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
4965
+ contentSource: z.ZodOptional<z.ZodObject<{
4966
+ kind: z.ZodEnum<{
4967
+ entries: "entries";
4968
+ mixed: "mixed";
4969
+ inline: "inline";
4970
+ }>;
4971
+ contentType: z.ZodOptional<z.ZodString>;
4972
+ }, z.core.$strip>>;
4942
4973
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
4943
4974
  icon: z.ZodOptional<z.ZodString>;
4944
4975
  }, z.core.$strip>;