@riverbankcms/sdk 0.62.4 → 0.67.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 (349) hide show
  1. package/README.md +11 -0
  2. package/dist/_dts/api/src/accessAdmin.d.ts +64 -2
  3. package/dist/_dts/api/src/aiEndpoints.d.ts +2 -2
  4. package/dist/_dts/api/src/aiPlayground.d.ts +18 -11
  5. package/dist/_dts/api/src/apiEndpointTypes.d.ts +12 -0
  6. package/dist/_dts/api/src/billing.d.ts +46 -10
  7. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  8. package/dist/_dts/api/src/bookingOperations.d.ts +1 -1
  9. package/dist/_dts/api/src/bookingRecords.d.ts +26 -0
  10. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +12 -1
  11. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  12. package/dist/_dts/api/src/courses.d.ts +3 -0
  13. package/dist/_dts/api/src/endpoints.d.ts +48 -0
  14. package/dist/_dts/api/src/index.d.ts +8 -5
  15. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +29 -40
  16. package/dist/_dts/api/src/sdkContracts.d.ts +14 -2
  17. package/dist/_dts/api/src/siteMembers.d.ts +1 -1
  18. package/dist/_dts/api/src/siteOnboarding.d.ts +4 -0
  19. package/dist/_dts/api/src/siteOperations.d.ts +11 -1
  20. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +29 -0
  21. package/dist/_dts/api/src/types.d.ts +2 -1
  22. package/dist/_dts/billing/src/plans/registry.d.ts +1 -0
  23. package/dist/_dts/billing/src/plans/types.d.ts +10 -1
  24. package/dist/_dts/block-form/src/FormRenderer.d.ts +38 -0
  25. package/dist/_dts/block-form/src/backend/adapter.d.ts +7 -0
  26. package/dist/_dts/block-form/src/backend/hooks/useRepeaterBackend.d.ts +34 -0
  27. package/dist/_dts/block-form/src/backend/hooks.d.ts +66 -0
  28. package/dist/_dts/block-form/src/backend/index.d.ts +12 -0
  29. package/dist/_dts/block-form/src/backend/rhf-backend.d.ts +34 -0
  30. package/dist/_dts/block-form/src/backend/store-backend.d.ts +60 -0
  31. package/dist/_dts/block-form/src/backend/types.d.ts +137 -0
  32. package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +22 -0
  33. package/dist/_dts/block-form/src/backend/utils/getErrorMessage.d.ts +1 -0
  34. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +70 -0
  35. package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +1 -0
  36. package/dist/_dts/block-form/src/client/index.d.ts +30 -0
  37. package/dist/_dts/block-form/src/context/BlockContext.d.ts +29 -0
  38. package/dist/_dts/block-form/src/context/DisplayLabelResolverContext.d.ts +33 -0
  39. package/dist/_dts/block-form/src/context/FieldPreviewResolverContext.d.ts +30 -0
  40. package/dist/_dts/block-form/src/context/ImageResolveContext.d.ts +1 -0
  41. package/dist/_dts/block-form/src/context/index.d.ts +4 -0
  42. package/dist/_dts/block-form/src/fields/props.d.ts +48 -0
  43. package/dist/_dts/block-form/src/fields/types.d.ts +223 -0
  44. package/dist/_dts/block-form/src/index.d.ts +22 -0
  45. package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +37 -0
  46. package/dist/_dts/block-form/src/manifest/canonicalValidation.d.ts +5 -0
  47. package/dist/_dts/block-form/src/manifest/filterSdkTabs.d.ts +44 -0
  48. package/dist/_dts/block-form/src/manifest/manifestFormAdapter.d.ts +61 -0
  49. package/dist/_dts/block-form/src/manifest/mergeManifestWithSdkOptions.d.ts +24 -0
  50. package/dist/_dts/block-form/src/palette/PaletteContext.d.ts +11 -0
  51. package/dist/_dts/block-form/src/registry/schemas.d.ts +105 -0
  52. package/dist/_dts/block-form/src/registry/widgets.d.ts +59 -0
  53. package/dist/_dts/block-form/src/sdk-config/SdkConfigContext.d.ts +110 -0
  54. package/dist/_dts/block-form/src/sdk-config/hooks.d.ts +21 -0
  55. package/dist/_dts/block-form/src/sdk-config/index.d.ts +2 -0
  56. package/dist/_dts/block-form/src/shared/disclosure.d.ts +1 -0
  57. package/dist/_dts/block-form/src/shared/hooks/index.d.ts +2 -0
  58. package/dist/_dts/block-form/src/shared/hooks/useCoarsePointer.d.ts +5 -0
  59. package/dist/_dts/block-form/src/shared/hooks/useContainerWidth.d.ts +6 -0
  60. package/dist/_dts/block-form/src/utils/VisibilityWrapper.d.ts +25 -0
  61. package/dist/_dts/block-form/src/utils/computeWatchedPath.d.ts +18 -0
  62. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +9 -0
  63. package/dist/_dts/block-form/src/utils/fieldHelpers.d.ts +94 -0
  64. package/dist/_dts/block-form/src/utils/resolvePromotedFields.d.ts +22 -0
  65. package/dist/_dts/block-form/src/utils/slug.d.ts +3 -0
  66. package/dist/_dts/block-form/src/utils/typeGuards.d.ts +3 -0
  67. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorField.d.ts +10 -0
  68. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorWidget.d.ts +23 -0
  69. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/index.d.ts +2 -0
  70. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +13 -0
  71. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +17 -0
  72. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/index.d.ts +2 -0
  73. package/dist/_dts/block-form/src/widgets/BooleanField/BooleanField.d.ts +6 -0
  74. package/dist/_dts/block-form/src/widgets/BooleanField/booleanFieldDefaults.d.ts +6 -0
  75. package/dist/_dts/block-form/src/widgets/BooleanField/booleanFieldSchema.d.ts +7 -0
  76. package/dist/_dts/block-form/src/widgets/BooleanField/index.d.ts +3 -0
  77. package/dist/_dts/block-form/src/widgets/BoxStyleWidget/BoxStyleWidget.d.ts +17 -0
  78. package/dist/_dts/block-form/src/widgets/BoxStyleWidget/index.d.ts +1 -0
  79. package/dist/_dts/block-form/src/widgets/ContentTypeSelectField/contentTypeSelectFieldDefaults.d.ts +3 -0
  80. package/dist/_dts/block-form/src/widgets/ContentTypeSelectField/contentTypeSelectFieldSchema.d.ts +4 -0
  81. package/dist/_dts/block-form/src/widgets/DateField/DateField.d.ts +23 -0
  82. package/dist/_dts/block-form/src/widgets/DateField/dateFieldDefaults.d.ts +8 -0
  83. package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +9 -0
  84. package/dist/_dts/block-form/src/widgets/DateField/datePickerPopover.d.ts +32 -0
  85. package/dist/_dts/block-form/src/widgets/DateField/index.d.ts +4 -0
  86. package/dist/_dts/block-form/src/widgets/DateTimeField/DateTimeField.d.ts +30 -0
  87. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldDefaults.d.ts +8 -0
  88. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +11 -0
  89. package/dist/_dts/block-form/src/widgets/DateTimeField/index.d.ts +4 -0
  90. package/dist/_dts/block-form/src/widgets/DateTimeField/utils/dateTimeUtils.d.ts +22 -0
  91. package/dist/_dts/block-form/src/widgets/DateTimeField/utils/index.d.ts +1 -0
  92. package/dist/_dts/block-form/src/widgets/EntryPickerField/entryPickerFieldDefaults.d.ts +3 -0
  93. package/dist/_dts/block-form/src/widgets/EntryPickerField/entryPickerFieldSchema.d.ts +4 -0
  94. package/dist/_dts/block-form/src/widgets/Field.d.ts +21 -0
  95. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +32 -0
  96. package/dist/_dts/block-form/src/widgets/FieldSettingsModal/FieldSettingsModal.d.ts +34 -0
  97. package/dist/_dts/block-form/src/widgets/FieldSettingsModal/index.d.ts +2 -0
  98. package/dist/_dts/block-form/src/widgets/GroupField/GroupField.d.ts +23 -0
  99. package/dist/_dts/block-form/src/widgets/GroupField/groupFieldDefaults.d.ts +9 -0
  100. package/dist/_dts/block-form/src/widgets/GroupField/groupFieldSchema.d.ts +10 -0
  101. package/dist/_dts/block-form/src/widgets/GroupField/index.d.ts +3 -0
  102. package/dist/_dts/block-form/src/widgets/LinkField/linkFieldDefaults.d.ts +10 -0
  103. package/dist/_dts/block-form/src/widgets/LinkField/linkFieldSchema.d.ts +3 -0
  104. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldDefaults.d.ts +6 -0
  105. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldSchema.d.ts +6 -0
  106. package/dist/_dts/block-form/src/widgets/ModalGroupField/ModalGroupField.d.ts +17 -0
  107. package/dist/_dts/block-form/src/widgets/ModalGroupField/index.d.ts +3 -0
  108. package/dist/_dts/block-form/src/widgets/ModalGroupField/modalFieldDefaults.d.ts +18 -0
  109. package/dist/_dts/block-form/src/widgets/ModalGroupField/modalFieldSchema.d.ts +14 -0
  110. package/dist/_dts/block-form/src/widgets/NumberField/NumberField.d.ts +7 -0
  111. package/dist/_dts/block-form/src/widgets/NumberField/index.d.ts +3 -0
  112. package/dist/_dts/block-form/src/widgets/NumberField/numberFieldDefaults.d.ts +6 -0
  113. package/dist/_dts/block-form/src/widgets/NumberField/numberFieldSchema.d.ts +7 -0
  114. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/PresetOrCustomField.d.ts +11 -0
  115. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/index.d.ts +4 -0
  116. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/presetOrCustomFieldDefaults.d.ts +3 -0
  117. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/presetOrCustomFieldSchema.d.ts +4 -0
  118. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/types.d.ts +37 -0
  119. package/dist/_dts/block-form/src/widgets/ReferenceField/referenceFieldDefaults.d.ts +3 -0
  120. package/dist/_dts/block-form/src/widgets/ReferenceField/referenceFieldSchema.d.ts +4 -0
  121. package/dist/_dts/block-form/src/widgets/RepeaterField/RepeaterField.d.ts +26 -0
  122. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterDragHandle.d.ts +8 -0
  123. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterError.d.ts +11 -0
  124. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterHeader.d.ts +10 -0
  125. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterLayoutGrid.d.ts +27 -0
  126. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +19 -0
  127. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +23 -0
  128. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +16 -0
  129. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowContent.d.ts +19 -0
  130. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterTabbedEditDialog.d.ts +16 -0
  131. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +26 -0
  132. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +20 -0
  133. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +11 -0
  134. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +34 -0
  135. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +6 -0
  136. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/layoutGridCapacityDecision.d.ts +22 -0
  137. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLayoutGridCapacity.d.ts +20 -0
  138. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +23 -0
  139. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +10 -0
  140. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterRowErrors.d.ts +12 -0
  141. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterVisibility.d.ts +6 -0
  142. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +12 -0
  143. package/dist/_dts/block-form/src/widgets/RepeaterField/index.d.ts +3 -0
  144. package/dist/_dts/block-form/src/widgets/RepeaterField/repeaterFieldDefaults.d.ts +7 -0
  145. package/dist/_dts/block-form/src/widgets/RepeaterField/repeaterFieldSchema.d.ts +8 -0
  146. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildItemLabel.d.ts +7 -0
  147. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +7 -0
  148. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/createDefaultItem.d.ts +6 -0
  149. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/getRepeaterItemFieldGroups.d.ts +8 -0
  150. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/getRepeaterItemFields.d.ts +22 -0
  151. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +10 -0
  152. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/layoutGridCapacityContext.d.ts +2 -0
  153. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +43 -0
  154. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterPresentation.d.ts +24 -0
  155. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +12 -0
  156. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldDefaults.d.ts +20 -0
  157. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldSchema.d.ts +16 -0
  158. package/dist/_dts/block-form/src/widgets/SdkSelectField/SdkSelectField.d.ts +11 -0
  159. package/dist/_dts/block-form/src/widgets/SdkSelectField/index.d.ts +1 -0
  160. package/dist/_dts/block-form/src/widgets/SelectField/SelectField.d.ts +7 -0
  161. package/dist/_dts/block-form/src/widgets/SelectField/index.d.ts +3 -0
  162. package/dist/_dts/block-form/src/widgets/SelectField/selectFieldDefaults.d.ts +6 -0
  163. package/dist/_dts/block-form/src/widgets/SelectField/selectFieldSchema.d.ts +7 -0
  164. package/dist/_dts/block-form/src/widgets/SelectWidget.d.ts +34 -0
  165. package/dist/_dts/block-form/src/widgets/SettingsModal/SettingsModal.d.ts +17 -0
  166. package/dist/_dts/block-form/src/widgets/SettingsModal/index.d.ts +2 -0
  167. package/dist/_dts/block-form/src/widgets/SliderField/SliderField.d.ts +16 -0
  168. package/dist/_dts/block-form/src/widgets/SliderField/index.d.ts +1 -0
  169. package/dist/_dts/block-form/src/widgets/SlugField/SlugField.d.ts +39 -0
  170. package/dist/_dts/block-form/src/widgets/SlugField/hooks/index.d.ts +1 -0
  171. package/dist/_dts/block-form/src/widgets/SlugField/hooks/useSlugAutoGeneration.d.ts +29 -0
  172. package/dist/_dts/block-form/src/widgets/SlugField/index.d.ts +5 -0
  173. package/dist/_dts/block-form/src/widgets/SlugField/slugFieldDefaults.d.ts +8 -0
  174. package/dist/_dts/block-form/src/widgets/SlugField/slugFieldSchema.d.ts +14 -0
  175. package/dist/_dts/block-form/src/widgets/SlugField/utils/index.d.ts +2 -0
  176. package/dist/_dts/block-form/src/widgets/SlugField/utils/pathUtils.d.ts +30 -0
  177. package/dist/_dts/block-form/src/widgets/SlugField/utils/slugUtils.d.ts +17 -0
  178. package/dist/_dts/block-form/src/widgets/TabGroupField/TabGroupField.d.ts +13 -0
  179. package/dist/_dts/block-form/src/widgets/TabGroupField/index.d.ts +3 -0
  180. package/dist/_dts/block-form/src/widgets/TabGroupField/tabGroupFieldSchema.d.ts +25 -0
  181. package/dist/_dts/block-form/src/widgets/TabGroupField/types.d.ts +46 -0
  182. package/dist/_dts/block-form/src/widgets/TextField/TextField.d.ts +7 -0
  183. package/dist/_dts/block-form/src/widgets/TextField/index.d.ts +3 -0
  184. package/dist/_dts/block-form/src/widgets/TextField/textFieldDefaults.d.ts +6 -0
  185. package/dist/_dts/block-form/src/widgets/TextField/textFieldSchema.d.ts +7 -0
  186. package/dist/_dts/block-form/src/widgets/TextInputWidget.d.ts +20 -0
  187. package/dist/_dts/block-form/src/widgets/TimeField/TimeField.d.ts +23 -0
  188. package/dist/_dts/block-form/src/widgets/TimeField/index.d.ts +3 -0
  189. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldDefaults.d.ts +8 -0
  190. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +9 -0
  191. package/dist/_dts/block-form/src/widgets/ToggleWidget.d.ts +16 -0
  192. package/dist/_dts/block-form/src/widgets/UrlField/UrlField.d.ts +23 -0
  193. package/dist/_dts/block-form/src/widgets/UrlField/index.d.ts +3 -0
  194. package/dist/_dts/block-form/src/widgets/UrlField/urlFieldDefaults.d.ts +8 -0
  195. package/dist/_dts/block-form/src/widgets/UrlField/urlFieldSchema.d.ts +9 -0
  196. package/dist/_dts/block-form/src/widgets/constants.d.ts +58 -0
  197. package/dist/_dts/block-form/src/widgets/groupFieldHelpers.d.ts +61 -0
  198. package/dist/_dts/block-form/src/widgets/index.d.ts +20 -0
  199. package/dist/_dts/block-form/src/widgets/selectValueMapping.d.ts +9 -0
  200. package/dist/_dts/block-form/src/widgets/types/modalConfig.d.ts +18 -0
  201. package/dist/_dts/block-form/src/widgets/utils/readNumericUiConfig.d.ts +10 -0
  202. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
  203. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +4 -0
  204. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +2 -0
  205. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -1
  206. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -2
  207. package/dist/_dts/blocks/src/system/blocks/blog-post.d.ts +1 -1
  208. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +1 -1
  209. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +1 -1
  210. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +2 -2
  211. package/dist/_dts/blocks/src/system/blocks/columns.d.ts +1 -1
  212. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
  213. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +1 -1
  214. package/dist/_dts/blocks/src/system/blocks/event-details.d.ts +25 -0
  215. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -2
  216. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +2 -2
  217. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +1 -1
  218. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +1 -1
  219. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +1 -1
  220. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +1 -1
  221. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  222. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +6 -6
  223. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +1 -1
  224. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -2
  225. package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +2 -2
  226. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +1 -1
  227. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  228. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +1 -1
  229. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +1 -1
  230. package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +1 -1
  231. package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +1 -1
  232. package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +1 -1
  233. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +1 -1
  234. package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +1 -1
  235. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  236. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +1 -0
  237. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/view.d.ts +4 -1
  238. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +4 -1
  239. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +4 -1
  240. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +1 -0
  241. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
  242. package/dist/_dts/calendar/src/grid.d.ts +60 -0
  243. package/dist/_dts/calendar/src/group.d.ts +14 -0
  244. package/dist/_dts/calendar/src/index.d.ts +6 -0
  245. package/dist/_dts/calendar/src/lane-packing.d.ts +28 -0
  246. package/dist/_dts/calendar/src/timetable.d.ts +90 -0
  247. package/dist/_dts/calendar/src/timezone.d.ts +19 -0
  248. package/dist/_dts/content-editor/src/index.d.ts +1 -4
  249. package/dist/_dts/core/src/booking-date-time.d.ts +1 -0
  250. package/dist/_dts/core/src/branded.d.ts +18 -0
  251. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +900 -69
  252. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  253. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +7 -7
  254. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +1 -2
  255. package/dist/_dts/editor-blocks/src/widgets/link/index.d.ts +1 -0
  256. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +7 -3
  257. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  258. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  259. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  260. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  261. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +4 -0
  262. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +49 -0
  263. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +6 -0
  264. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -1
  265. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
  266. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +18 -0
  267. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +5 -0
  268. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +33 -0
  269. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +2 -0
  270. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +18 -0
  271. package/dist/_dts/sdk/src/cli/content/entryPaths.d.ts +6 -0
  272. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -0
  273. package/dist/_dts/sdk/src/cli/env.d.ts +2 -1
  274. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +3 -0
  275. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +77 -0
  276. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePlan.d.ts +45 -0
  277. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +22 -0
  278. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +30 -0
  279. package/dist/_dts/sdk/src/cli/merge-remote/entryRemote.d.ts +9 -0
  280. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +50 -0
  281. package/dist/_dts/sdk/src/cli/merge-remote/stableJson.d.ts +3 -0
  282. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +13 -0
  283. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +114 -0
  284. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +63 -0
  285. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +50 -0
  286. package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +57 -0
  287. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +7 -0
  288. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +57 -0
  289. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +83 -0
  290. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +83 -0
  291. package/dist/_dts/sdk/src/cli/sync/executor.d.ts +11 -28
  292. package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -1
  293. package/dist/_dts/sdk/src/config/dashboard-validation.d.ts +0 -48
  294. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  295. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  296. package/dist/_dts/sdk/src/version.d.ts +1 -1
  297. package/dist/_dts/site-commands/src/adapter.d.ts +23 -0
  298. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +8 -0
  299. package/dist/_dts/site-commands/src/commands.d.ts +2341 -0
  300. package/dist/_dts/site-commands/src/domain.d.ts +104 -0
  301. package/dist/_dts/site-commands/src/exposure.d.ts +41 -0
  302. package/dist/_dts/site-commands/src/guards.d.ts +1 -0
  303. package/dist/_dts/site-commands/src/index.d.ts +10 -0
  304. package/dist/_dts/site-commands/src/metadata.d.ts +503 -0
  305. package/dist/_dts/site-commands/src/planner.d.ts +58 -0
  306. package/dist/_dts/site-commands/src/refContributions.d.ts +10 -0
  307. package/dist/_dts/site-commands/src/refs.d.ts +87 -0
  308. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +10 -0
  309. package/dist/_dts/theme-core/src/palette/utils/index.d.ts +1 -0
  310. package/dist/_dts/theme-core/src/palette/utils/onColor.d.ts +2 -0
  311. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +83 -0
  312. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  313. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +89 -12
  314. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
  315. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  316. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +3 -2
  317. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -6
  318. package/dist/_dts/ui/src/callout.d.ts +1 -1
  319. package/dist/cli/index.mjs +6446 -1220
  320. package/dist/cli/init-docs/content/cli-reference.md +18 -0
  321. package/dist/client/bookings.mjs +25 -25
  322. package/dist/client/client.mjs +3157 -2858
  323. package/dist/client/hooks.mjs +2608 -2326
  324. package/dist/client/rendering/client.mjs +505 -176
  325. package/dist/client/rendering/islands.mjs +18329 -13012
  326. package/dist/client/rendering.mjs +1204 -903
  327. package/dist/preview-next/before-render.mjs +84 -13
  328. package/dist/preview-next/client/runtime.mjs +3149 -2452
  329. package/dist/preview-next/middleware.mjs +84 -13
  330. package/dist/server/components.mjs +936 -631
  331. package/dist/server/config-validation.mjs +2838 -2556
  332. package/dist/server/config.mjs +2838 -2556
  333. package/dist/server/data.mjs +2608 -2326
  334. package/dist/server/index.mjs +676 -552
  335. package/dist/server/next.mjs +3043 -2738
  336. package/dist/server/page-converter.mjs +201 -51
  337. package/dist/server/prebuild.mjs +1 -1
  338. package/dist/server/rendering/server.mjs +936 -631
  339. package/dist/server/rendering.mjs +936 -631
  340. package/dist/server/routing.mjs +2701 -2426
  341. package/dist/server/server.mjs +2626 -2344
  342. package/dist/server/theme-bridge.mjs +169 -52
  343. package/package.json +2 -1
  344. package/dist/_dts/content-editor/src/ai/patch/allowed.d.ts +0 -2
  345. package/dist/_dts/content-editor/src/ai/patch/diff.d.ts +0 -17
  346. package/dist/_dts/content-editor/src/ai/patch/schema.d.ts +0 -49
  347. package/dist/_dts/path-utils/src/index.d.ts +0 -8
  348. package/dist/_dts/path-utils/src/redirectPaths.d.ts +0 -26
  349. package/dist/_dts/path-utils/src/safeAppPath.d.ts +0 -26
@@ -20,6 +20,17 @@ function encodePublicProductCategorySelector(selector) {
20
20
  }
21
21
  }
22
22
 
23
+ // ../api/src/apiEndpointTypes.ts
24
+ function blockedDemoMutationPolicy(classification, publicMessage) {
25
+ if (publicMessage.trim() === "") {
26
+ throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
27
+ }
28
+ return {
29
+ classification,
30
+ publicMessage
31
+ };
32
+ }
33
+
23
34
  // ../api/src/cache-tags.ts
24
35
  var TAG_TEMPLATES = {
25
36
  siteCollection: "riverbank:site",
@@ -50,6 +61,18 @@ var TAG_TEMPLATES = {
50
61
  };
51
62
 
52
63
  // ../api/src/endpoints.ts
64
+ var DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy(
65
+ "blocked-hidden",
66
+ "This action is not available in demo sites."
67
+ );
68
+ var DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy(
69
+ "blocked-disabled",
70
+ "This setting is disabled in demo sites."
71
+ );
72
+ var DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy(
73
+ "internal-only",
74
+ "This internal operation is not available in demo sites."
75
+ );
53
76
  var ENDPOINT_DEFINITIONS = {
54
77
  // AI endpoints - no cache due to dynamic nature
55
78
  aiContentUpdateChat: {
@@ -166,7 +189,8 @@ var ENDPOINT_DEFINITIONS = {
166
189
  path: "/sites/{siteId}/ai/generate",
167
190
  method: "POST",
168
191
  auth: "user",
169
- responseKind: "json"
192
+ responseKind: "json",
193
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
170
194
  },
171
195
  getOnboardingPreviewStatus: {
172
196
  path: "/public/sites/{siteId}/onboarding/preview-status",
@@ -187,7 +211,8 @@ var ENDPOINT_DEFINITIONS = {
187
211
  method: "POST",
188
212
  auth: "user",
189
213
  errors: [],
190
- responseKind: "json"
214
+ responseKind: "json",
215
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
191
216
  },
192
217
  goLiveSite: {
193
218
  path: "/sites/{siteId}/launch/go-live",
@@ -256,20 +281,23 @@ var ENDPOINT_DEFINITIONS = {
256
281
  path: "/sites/{siteId}/ai/site-wizard/goals",
257
282
  method: "POST",
258
283
  auth: "user",
259
- responseKind: "json"
284
+ responseKind: "json",
285
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
260
286
  },
261
287
  aiSiteWizardIntakeTriage: {
262
288
  path: "/sites/{siteId}/ai/site-wizard/intake-triage",
263
289
  method: "POST",
264
290
  auth: "user",
265
- responseKind: "json"
291
+ responseKind: "json",
292
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
266
293
  },
267
294
  aiSiteWizardTelemetry: {
268
295
  path: "/sites/{siteId}/ai/site-wizard/telemetry",
269
296
  method: "POST",
270
297
  auth: "user",
271
298
  errors: [],
272
- responseKind: "json"
299
+ responseKind: "json",
300
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
273
301
  },
274
302
  // Admin SEO
275
303
  listGscPropertiesAdmin: {
@@ -476,7 +504,7 @@ var ENDPOINT_DEFINITIONS = {
476
504
  responseKind: "json",
477
505
  errors: ["resource:not_found", "server:internal_error"]
478
506
  },
479
- // Ops (event hosts/admins)
507
+ // Ops (staff event operators/admins)
480
508
  opsListUpcomingEventOccurrences: {
481
509
  path: "/ops/sites/{siteId}/events",
482
510
  method: "GET",
@@ -494,6 +522,7 @@ var ENDPOINT_DEFINITIONS = {
494
522
  method: "POST",
495
523
  auth: "user",
496
524
  responseKind: "json",
525
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
497
526
  errors: [
498
527
  "validation:invalid_input",
499
528
  "auth:forbidden",
@@ -506,6 +535,7 @@ var ENDPOINT_DEFINITIONS = {
506
535
  method: "POST",
507
536
  auth: "user",
508
537
  responseKind: "json",
538
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
509
539
  errors: [
510
540
  "validation:invalid_input",
511
541
  "auth:forbidden",
@@ -524,6 +554,7 @@ var ENDPOINT_DEFINITIONS = {
524
554
  method: "POST",
525
555
  auth: "user",
526
556
  responseKind: "json",
557
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
527
558
  errors: [
528
559
  "validation:invalid_input",
529
560
  "auth:forbidden",
@@ -557,6 +588,7 @@ var ENDPOINT_DEFINITIONS = {
557
588
  method: "POST",
558
589
  auth: "user",
559
590
  responseKind: "json",
591
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
560
592
  errors: [
561
593
  "validation:invalid_input",
562
594
  "auth:forbidden",
@@ -585,7 +617,8 @@ var ENDPOINT_DEFINITIONS = {
585
617
  method: "POST",
586
618
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
587
619
  auth: "user",
588
- responseKind: "json"
620
+ responseKind: "json",
621
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
589
622
  },
590
623
  previewEmailTemplate: {
591
624
  path: "/sites/{siteId}/settings/emails/preview",
@@ -636,14 +669,16 @@ var ENDPOINT_DEFINITIONS = {
636
669
  method: "POST",
637
670
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
638
671
  auth: "user",
639
- responseKind: "json"
672
+ responseKind: "json",
673
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
640
674
  },
641
675
  createNewsletterSubscribersImportUploadUrl: {
642
676
  path: "/sites/{siteId}/newsletter/subscribers/import-url",
643
677
  method: "POST",
644
678
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
645
679
  auth: "user",
646
- responseKind: "json"
680
+ responseKind: "json",
681
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
647
682
  },
648
683
  exportNewsletterSubscribersCsv: {
649
684
  path: "/sites/{siteId}/newsletter/subscribers/export.csv",
@@ -840,14 +875,16 @@ var ENDPOINT_DEFINITIONS = {
840
875
  method: "POST",
841
876
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
842
877
  auth: "user",
843
- responseKind: "json"
878
+ responseKind: "json",
879
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
844
880
  },
845
881
  testSendNewsletterCampaign: {
846
882
  path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
847
883
  method: "POST",
848
884
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
849
885
  auth: "user",
850
- responseKind: "json"
886
+ responseKind: "json",
887
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
851
888
  },
852
889
  listNewsletterSendJobs: {
853
890
  path: "/sites/{siteId}/newsletter/jobs",
@@ -1535,7 +1572,8 @@ var ENDPOINT_DEFINITIONS = {
1535
1572
  method: "DELETE",
1536
1573
  tags: ["site", "site-{siteId}"],
1537
1574
  auth: "user",
1538
- responseKind: "json"
1575
+ responseKind: "json",
1576
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1539
1577
  },
1540
1578
  listSiteMembers: {
1541
1579
  path: "/sites/{siteId}/members",
@@ -1991,7 +2029,8 @@ var ENDPOINT_DEFINITIONS = {
1991
2029
  method: "POST",
1992
2030
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
1993
2031
  auth: "user",
1994
- responseKind: "json"
2032
+ responseKind: "json",
2033
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1995
2034
  },
1996
2035
  updateSiteGeneralSettings: {
1997
2036
  path: "/sites/{siteId}/settings/general",
@@ -2799,6 +2838,14 @@ var ENDPOINT_DEFINITIONS = {
2799
2838
  auth: "user",
2800
2839
  responseKind: "json"
2801
2840
  },
2841
+ saveSiteChromeLookSelection: {
2842
+ path: "/sites/{siteId}/theme/site-chrome-look",
2843
+ method: "POST",
2844
+ tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
2845
+ auth: "user",
2846
+ errors: [],
2847
+ responseKind: "json"
2848
+ },
2802
2849
  uploadSiteLogo: {
2803
2850
  path: "/storage/upload-site-logo",
2804
2851
  method: "POST",
@@ -4222,6 +4269,7 @@ var ENDPOINT_DEFINITIONS = {
4222
4269
  method: "POST",
4223
4270
  tags: ["site-{siteId}"],
4224
4271
  auth: "user",
4272
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
4225
4273
  errors: [
4226
4274
  "validation:invalid_input",
4227
4275
  "auth:forbidden",
@@ -4236,6 +4284,7 @@ var ENDPOINT_DEFINITIONS = {
4236
4284
  method: "POST",
4237
4285
  tags: ["site-{siteId}"],
4238
4286
  auth: "user",
4287
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN,
4239
4288
  errors: [
4240
4289
  "validation:invalid_input",
4241
4290
  "auth:forbidden",
@@ -4545,6 +4594,7 @@ var ENDPOINT_DEFINITIONS = {
4545
4594
  tags: ["site-{siteId}", "passes-{siteId}"],
4546
4595
  auth: "user",
4547
4596
  responseKind: "json",
4597
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
4548
4598
  errors: ["validation:invalid_input", "server:internal_error"]
4549
4599
  },
4550
4600
  getBookingPass: {
@@ -4560,6 +4610,7 @@ var ENDPOINT_DEFINITIONS = {
4560
4610
  tags: ["site-{siteId}", "passes-{siteId}"],
4561
4611
  auth: "user",
4562
4612
  responseKind: "json",
4613
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
4563
4614
  errors: [
4564
4615
  "validation:invalid_input",
4565
4616
  "resource:not_found",
@@ -4572,6 +4623,7 @@ var ENDPOINT_DEFINITIONS = {
4572
4623
  tags: ["site-{siteId}", "passes-{siteId}"],
4573
4624
  auth: "user",
4574
4625
  responseKind: "json",
4626
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
4575
4627
  errors: [
4576
4628
  "validation:invalid_input",
4577
4629
  "resource:not_found",
@@ -4627,6 +4679,7 @@ var ENDPOINT_DEFINITIONS = {
4627
4679
  tags: ["site-{siteId}", "memberships-{siteId}"],
4628
4680
  auth: "user",
4629
4681
  responseKind: "json",
4682
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
4630
4683
  errors: ["validation:invalid_input", "server:internal_error"]
4631
4684
  },
4632
4685
  getBookingMembership: {
@@ -4642,6 +4695,7 @@ var ENDPOINT_DEFINITIONS = {
4642
4695
  tags: ["site-{siteId}", "memberships-{siteId}"],
4643
4696
  auth: "user",
4644
4697
  responseKind: "json",
4698
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
4645
4699
  errors: [
4646
4700
  "validation:invalid_input",
4647
4701
  "resource:not_found",
@@ -4654,6 +4708,7 @@ var ENDPOINT_DEFINITIONS = {
4654
4708
  tags: ["site-{siteId}", "memberships-{siteId}"],
4655
4709
  auth: "user",
4656
4710
  responseKind: "json",
4711
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
4657
4712
  errors: [
4658
4713
  "validation:invalid_input",
4659
4714
  "resource:not_found",
@@ -4870,6 +4925,7 @@ var ENDPOINT_DEFINITIONS = {
4870
4925
  tags: ["site-{siteId}", "customers-{siteId}"],
4871
4926
  auth: "user",
4872
4927
  responseKind: "json",
4928
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
4873
4929
  errors: [
4874
4930
  "validation:invalid_input",
4875
4931
  "auth:forbidden",
@@ -5243,6 +5299,14 @@ var ENDPOINT_DEFINITIONS = {
5243
5299
  auth: "admin",
5244
5300
  responseKind: "json"
5245
5301
  },
5302
+ adminScheduleBillingComponentEnd: {
5303
+ path: "/admin/sites/{siteId}/billing/components/{componentId}/end",
5304
+ method: "POST",
5305
+ tags: ["admin", "site-{siteId}", "billing"],
5306
+ auth: "admin",
5307
+ responseKind: "json",
5308
+ errors: []
5309
+ },
5246
5310
  // Admin GSC/SEO endpoints
5247
5311
  adminGscVerifyStart: {
5248
5312
  path: "/admin/seo/gsc/properties/verify/start",
@@ -5967,6 +6031,13 @@ var ENDPOINT_DEFINITIONS = {
5967
6031
  auth: "public",
5968
6032
  responseKind: "json"
5969
6033
  },
6034
+ demoClaimMagicLink: {
6035
+ path: "/demo/auth/send-magic-link",
6036
+ method: "POST",
6037
+ auth: "public",
6038
+ responseKind: "json",
6039
+ errors: []
6040
+ },
5970
6041
  previewExchangeCode: {
5971
6042
  path: "/preview/auth/exchange",
5972
6043
  method: "POST",
@@ -6673,7 +6744,7 @@ var SimpleCache = class {
6673
6744
  };
6674
6745
 
6675
6746
  // src/version.ts
6676
- var SDK_VERSION = "0.62.4";
6747
+ var SDK_VERSION = "0.67.0";
6677
6748
 
6678
6749
  // src/client/error.ts
6679
6750
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -8450,61 +8521,74 @@ function createPrebuildLoader(config) {
8450
8521
  return new PrebuildLoader(config);
8451
8522
  }
8452
8523
 
8453
- // ../api/src/navigation/contracts.ts
8524
+ // ../api/src/accessAdmin.ts
8454
8525
  import { z } from "zod";
8455
- var portalLinkPayloadSchema = z.object({
8456
- kind: z.literal("portal"),
8457
- path: z.string().trim().startsWith("/").optional(),
8458
- labels: z.object({
8459
- loggedOut: z.string().trim().min(1).optional(),
8460
- loggedIn: z.string().trim().min(1).optional()
8526
+ var managedDomainAddOnPricingSnapshotSchema = z.object({
8527
+ formulaVersion: z.literal("managed-domain-overage-v1"),
8528
+ conversionRule: z.literal("usd-to-gbp-1-to-1-v1"),
8529
+ registrarAnnualCost: z.number().nonnegative(),
8530
+ registrarCurrency: z.literal("USD"),
8531
+ includedAnnualAllowance: z.number().nonnegative(),
8532
+ includedAnnualAllowanceCurrency: z.literal("USD"),
8533
+ monthlyAmountCents: z.number().int().nonnegative(),
8534
+ monthlyCurrency: z.literal("gbp")
8535
+ });
8536
+
8537
+ // ../api/src/navigation/contracts.ts
8538
+ import { z as z2 } from "zod";
8539
+ var portalLinkPayloadSchema = z2.object({
8540
+ kind: z2.literal("portal"),
8541
+ path: z2.string().trim().startsWith("/").optional(),
8542
+ labels: z2.object({
8543
+ loggedOut: z2.string().trim().min(1).optional(),
8544
+ loggedIn: z2.string().trim().min(1).optional()
8461
8545
  }).optional()
8462
8546
  });
8463
- var cartLinkLabelConfigSchema = z.discriminatedUnion("kind", [
8464
- z.object({
8465
- kind: z.literal("icon-only")
8547
+ var cartLinkLabelConfigSchema = z2.discriminatedUnion("kind", [
8548
+ z2.object({
8549
+ kind: z2.literal("icon-only")
8466
8550
  }),
8467
- z.object({
8468
- kind: z.literal("icon-with-label"),
8469
- label: z.string().trim().min(1)
8551
+ z2.object({
8552
+ kind: z2.literal("icon-with-label"),
8553
+ label: z2.string().trim().min(1)
8470
8554
  })
8471
8555
  ]);
8472
- var cartLinkPayloadSchema = z.object({
8473
- kind: z.literal("cart"),
8474
- badge: z.enum(["show-count", "hidden"]),
8556
+ var cartLinkPayloadSchema = z2.object({
8557
+ kind: z2.literal("cart"),
8558
+ badge: z2.enum(["show-count", "hidden"]),
8475
8559
  label: cartLinkLabelConfigSchema
8476
8560
  });
8477
- var internalLinkPayloadSchema = z.object({
8478
- kind: z.literal("internal"),
8479
- routeId: z.string().uuid(),
8480
- entityId: z.string().uuid(),
8481
- entityType: z.enum(["page", "content"]),
8482
- href: z.string().min(1),
8483
- title: z.string().min(1),
8484
- typeLabel: z.string().min(1),
8485
- contentTypeKey: z.string().nullable().optional(),
8486
- contentTypeName: z.string().nullable().optional(),
8487
- updatedAt: z.string().nullable().optional()
8561
+ var internalLinkPayloadSchema = z2.object({
8562
+ kind: z2.literal("internal"),
8563
+ routeId: z2.string().uuid(),
8564
+ entityId: z2.string().uuid(),
8565
+ entityType: z2.enum(["page", "content"]),
8566
+ href: z2.string().min(1),
8567
+ title: z2.string().min(1),
8568
+ typeLabel: z2.string().min(1),
8569
+ contentTypeKey: z2.string().nullable().optional(),
8570
+ contentTypeName: z2.string().nullable().optional(),
8571
+ updatedAt: z2.string().nullable().optional()
8488
8572
  }).passthrough();
8489
- var externalLinkSchema = z.object({
8490
- kind: z.literal("external"),
8573
+ var externalLinkSchema = z2.object({
8574
+ kind: z2.literal("external"),
8491
8575
  // Navigation external links are expected to be absolute URLs.
8492
- href: z.string().url()
8576
+ href: z2.string().url()
8493
8577
  });
8494
- var customLinkSchema = z.object({
8495
- kind: z.literal("url"),
8496
- href: z.string().min(1)
8578
+ var customLinkSchema = z2.object({
8579
+ kind: z2.literal("url"),
8580
+ href: z2.string().min(1)
8497
8581
  });
8498
- var pageLinkSchema = z.object({
8499
- kind: z.literal("page"),
8500
- identifier: z.string().min(1)
8582
+ var pageLinkSchema = z2.object({
8583
+ kind: z2.literal("page"),
8584
+ identifier: z2.string().min(1)
8501
8585
  });
8502
- var entryLinkSchema = z.object({
8503
- kind: z.literal("entry"),
8504
- contentType: z.string().min(1),
8505
- identifier: z.string().min(1)
8586
+ var entryLinkSchema = z2.object({
8587
+ kind: z2.literal("entry"),
8588
+ contentType: z2.string().min(1),
8589
+ identifier: z2.string().min(1)
8506
8590
  });
8507
- var linkPayloadSchema = z.discriminatedUnion("kind", [
8591
+ var linkPayloadSchema = z2.discriminatedUnion("kind", [
8508
8592
  internalLinkPayloadSchema,
8509
8593
  pageLinkSchema,
8510
8594
  entryLinkSchema,
@@ -8521,16 +8605,16 @@ var navigationLinkInputSchemaOptions = [
8521
8605
  portalLinkPayloadSchema,
8522
8606
  cartLinkPayloadSchema
8523
8607
  ];
8524
- var navigationLinkInputSchema = z.discriminatedUnion(
8608
+ var navigationLinkInputSchema = z2.discriminatedUnion(
8525
8609
  "kind",
8526
8610
  navigationLinkInputSchemaOptions
8527
8611
  );
8528
8612
 
8529
8613
  // ../api/src/sdkConfig/contracts.ts
8530
- import { z as z4 } from "zod";
8614
+ import { z as z5 } from "zod";
8531
8615
 
8532
8616
  // ../blocks/src/system/manifest/schema.ts
8533
- import { z as z3 } from "zod";
8617
+ import { z as z4 } from "zod";
8534
8618
 
8535
8619
  // ../media-core/src/aspectTransforms.ts
8536
8620
  function parseAspectRatioValue(value) {
@@ -8557,44 +8641,44 @@ function parseAspectRatioValue(value) {
8557
8641
  }
8558
8642
 
8559
8643
  // ../blocks/src/system/node/schema.ts
8560
- import { z as z2 } from "zod";
8561
- var transformStepSchema = z2.object({
8562
- id: z2.string().min(1, "Transform requires an identifier"),
8563
- options: z2.record(z2.string(), z2.unknown()).optional()
8644
+ import { z as z3 } from "zod";
8645
+ var transformStepSchema = z3.object({
8646
+ id: z3.string().min(1, "Transform requires an identifier"),
8647
+ options: z3.record(z3.string(), z3.unknown()).optional()
8564
8648
  });
8565
- var bindingPathSchema = z2.string().min(1, "Binding path is required").regex(/[A-Za-z0-9_\.$\[\]/-]+/, "Binding path contains invalid characters");
8566
- var bindingSchema = z2.object({
8649
+ var bindingPathSchema = z3.string().min(1, "Binding path is required").regex(/[A-Za-z0-9_\.$\[\]/-]+/, "Binding path contains invalid characters");
8650
+ var bindingSchema = z3.object({
8567
8651
  from: bindingPathSchema,
8568
- fallback: z2.unknown().optional(),
8652
+ fallback: z3.unknown().optional(),
8569
8653
  transforms: transformStepSchema.array().default([]),
8570
- pick: z2.enum(["value", "collection", "context"]).default("value"),
8571
- coerce: z2.enum(["number", "boolean", "string"]).optional()
8654
+ pick: z3.enum(["value", "collection", "context"]).default("value"),
8655
+ coerce: z3.enum(["number", "boolean", "string"]).optional()
8572
8656
  });
8573
- var repeatSchema = z2.object({
8657
+ var repeatSchema = z3.object({
8574
8658
  collection: bindingSchema,
8575
- itemName: z2.string().min(1).default("item"),
8576
- indexName: z2.string().min(1).default("index"),
8577
- limit: z2.number().int().positive().optional(),
8578
- sortBy: z2.object({
8659
+ itemName: z3.string().min(1).default("item"),
8660
+ indexName: z3.string().min(1).default("index"),
8661
+ limit: z3.number().int().positive().optional(),
8662
+ sortBy: z3.object({
8579
8663
  path: bindingPathSchema,
8580
- direction: z2.enum(["asc", "desc"]).default("asc")
8664
+ direction: z3.enum(["asc", "desc"]).default("asc")
8581
8665
  }).optional()
8582
8666
  });
8583
- var conditionSchema = z2.object({
8667
+ var conditionSchema = z3.object({
8584
8668
  when: bindingSchema,
8585
- equals: z2.unknown().optional(),
8586
- not: z2.boolean().default(false)
8669
+ equals: z3.unknown().optional(),
8670
+ not: z3.boolean().default(false)
8587
8671
  });
8588
- var dataScopeSchema = z2.object({
8589
- name: z2.string().min(1),
8672
+ var dataScopeSchema = z3.object({
8673
+ name: z3.string().min(1),
8590
8674
  from: bindingSchema
8591
8675
  });
8592
- var nodePropsSchema = z2.record(z2.string(), z2.unknown()).default({});
8593
- var nodeSchema = z2.object({
8594
- type: z2.string().min(1, "Node type is required"),
8595
- key: z2.string().optional(),
8676
+ var nodePropsSchema = z3.record(z3.string(), z3.unknown()).default({});
8677
+ var nodeSchema = z3.object({
8678
+ type: z3.string().min(1, "Node type is required"),
8679
+ key: z3.string().optional(),
8596
8680
  props: nodePropsSchema.optional(),
8597
- children: z2.lazy(() => nodeSchema.array().default([])).optional(),
8681
+ children: z3.lazy(() => nodeSchema.array().default([])).optional(),
8598
8682
  $bind: bindingSchema.optional(),
8599
8683
  $repeat: repeatSchema.optional(),
8600
8684
  $when: conditionSchema.optional(),
@@ -8658,93 +8742,93 @@ var siteOptionSources = [
8658
8742
  "venues",
8659
8743
  "staffMembers"
8660
8744
  ];
8661
- var mediaDeliverySchema = z3.object({
8662
- sizes: z3.string().optional(),
8663
- widthCandidates: z3.array(z3.number().int().positive()).optional(),
8664
- maxCssWidth: z3.number().positive().optional(),
8665
- maxCssHeight: z3.number().positive().optional(),
8666
- strategy: z3.enum(["default", "columnsAuto", "imageGalleryVariant"]).optional(),
8667
- strategyOptions: z3.record(z3.string(), z3.unknown()).optional()
8745
+ var mediaDeliverySchema = z4.object({
8746
+ sizes: z4.string().optional(),
8747
+ widthCandidates: z4.array(z4.number().int().positive()).optional(),
8748
+ maxCssWidth: z4.number().positive().optional(),
8749
+ maxCssHeight: z4.number().positive().optional(),
8750
+ strategy: z4.enum(["default", "columnsAuto", "imageGalleryVariant"]).optional(),
8751
+ strategyOptions: z4.record(z4.string(), z4.unknown()).optional()
8668
8752
  });
8669
- var selectOptionSchema = z3.object({
8670
- value: z3.string(),
8671
- label: z3.string(),
8672
- description: z3.string().optional(),
8673
- icon: z3.string().optional()
8753
+ var selectOptionSchema = z4.object({
8754
+ value: z4.string(),
8755
+ label: z4.string(),
8756
+ description: z4.string().optional(),
8757
+ icon: z4.string().optional()
8674
8758
  });
8675
- var selectSourceSchema = z3.discriminatedUnion("kind", [
8676
- z3.object({
8677
- kind: z3.literal("static")
8759
+ var selectSourceSchema = z4.discriminatedUnion("kind", [
8760
+ z4.object({
8761
+ kind: z4.literal("static")
8678
8762
  }),
8679
- z3.object({
8680
- kind: z3.literal("site"),
8681
- optionSource: z3.enum(siteOptionSources)
8763
+ z4.object({
8764
+ kind: z4.literal("site"),
8765
+ optionSource: z4.enum(siteOptionSources)
8682
8766
  }),
8683
- z3.object({
8684
- kind: z3.literal("sdk")
8767
+ z4.object({
8768
+ kind: z4.literal("sdk")
8685
8769
  })
8686
8770
  ]);
8687
8771
  function assertNeverSelectSource(value) {
8688
8772
  throw new Error(`Unhandled select source: ${JSON.stringify(value)}`);
8689
8773
  }
8690
- var uiSchema = z3.object({
8691
- widget: z3.string().optional(),
8774
+ var uiSchema = z4.object({
8775
+ widget: z4.string().optional(),
8692
8776
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
8693
- preset: z3.enum(["disclosure"]).optional(),
8694
- flattenInRepeater: z3.boolean().optional(),
8695
- hidden: z3.boolean().optional(),
8696
- hideLabel: z3.boolean().optional(),
8697
- hideDescription: z3.boolean().optional(),
8698
- showCharCount: z3.union([
8699
- z3.number().int().positive(),
8700
- z3.object({ max: z3.number().int().positive() })
8777
+ preset: z4.enum(["disclosure"]).optional(),
8778
+ flattenInRepeater: z4.boolean().optional(),
8779
+ hidden: z4.boolean().optional(),
8780
+ hideLabel: z4.boolean().optional(),
8781
+ hideDescription: z4.boolean().optional(),
8782
+ showCharCount: z4.union([
8783
+ z4.number().int().positive(),
8784
+ z4.object({ max: z4.number().int().positive() })
8701
8785
  ]).optional(),
8702
- showSlugPreview: z3.boolean().optional(),
8703
- variant: z3.enum(["full", "inline", "limited", "media", "notes"]).optional(),
8704
- richTextVariant: z3.enum(["full", "inline", "limited", "media", "notes"]).optional(),
8705
- cropEditorMode: z3.enum(["dialog", "inline"]).optional(),
8706
- cropEditorAutoOpen: z3.boolean().optional(),
8707
- mediaPickerAutoOpen: z3.boolean().optional(),
8708
- showMediaPreview: z3.boolean().optional(),
8709
- showMediaOverlayActions: z3.boolean().optional(),
8786
+ showSlugPreview: z4.boolean().optional(),
8787
+ variant: z4.enum(["full", "inline", "limited", "media", "notes"]).optional(),
8788
+ richTextVariant: z4.enum(["full", "inline", "limited", "media", "notes"]).optional(),
8789
+ cropEditorMode: z4.enum(["dialog", "inline"]).optional(),
8790
+ cropEditorAutoOpen: z4.boolean().optional(),
8791
+ mediaPickerAutoOpen: z4.boolean().optional(),
8792
+ showMediaPreview: z4.boolean().optional(),
8793
+ showMediaOverlayActions: z4.boolean().optional(),
8710
8794
  mediaDelivery: mediaDeliverySchema.optional(),
8711
- mediaDeliveryByVariant: z3.record(z3.string(), mediaDeliverySchema).optional(),
8795
+ mediaDeliveryByVariant: z4.record(z4.string(), mediaDeliverySchema).optional(),
8712
8796
  // Optional input hints for validators/widgets
8713
- inputType: z3.enum(["text", "email", "tel", "number"]).optional(),
8714
- min: z3.number().optional(),
8715
- max: z3.number().optional(),
8716
- step: z3.number().optional(),
8717
- showValue: z3.boolean().optional(),
8718
- pattern: z3.string().optional(),
8719
- placeholder: z3.string().optional(),
8720
- visibleWhen: z3.object({
8721
- field: z3.string().min(1),
8722
- equals: z3.any().optional(),
8723
- notEquals: z3.any().optional(),
8724
- oneOf: z3.array(z3.any()).optional(),
8725
- notIn: z3.array(z3.any()).optional()
8797
+ inputType: z4.enum(["text", "email", "tel", "number"]).optional(),
8798
+ min: z4.number().optional(),
8799
+ max: z4.number().optional(),
8800
+ step: z4.number().optional(),
8801
+ showValue: z4.boolean().optional(),
8802
+ pattern: z4.string().optional(),
8803
+ placeholder: z4.string().optional(),
8804
+ visibleWhen: z4.object({
8805
+ field: z4.string().min(1),
8806
+ equals: z4.any().optional(),
8807
+ notEquals: z4.any().optional(),
8808
+ oneOf: z4.array(z4.any()).optional(),
8809
+ notIn: z4.array(z4.any()).optional()
8726
8810
  }).optional(),
8727
8811
  // Modal configuration for modal and group fields
8728
- modalConfig: z3.object({
8729
- buttonLabel: z3.string().optional(),
8730
- description: z3.string().optional(),
8731
- buttonVariant: z3.enum(["default", "outline"]).optional(),
8732
- showCustomizedIndicator: z3.boolean().optional(),
8733
- maxWidth: z3.string().optional()
8812
+ modalConfig: z4.object({
8813
+ buttonLabel: z4.string().optional(),
8814
+ description: z4.string().optional(),
8815
+ buttonVariant: z4.enum(["default", "outline"]).optional(),
8816
+ showCustomizedIndicator: z4.boolean().optional(),
8817
+ maxWidth: z4.string().optional()
8734
8818
  }).optional(),
8735
8819
  // Background field configuration
8736
- allowedTypes: z3.array(z3.enum(["color", "gradient", "image"])).optional(),
8820
+ allowedTypes: z4.array(z4.enum(["color", "gradient", "image"])).optional(),
8737
8821
  // Tab group configuration
8738
- fullWidth: z3.boolean().optional(),
8822
+ fullWidth: z4.boolean().optional(),
8739
8823
  // Field layout configuration
8740
- row: z3.string().optional(),
8741
- colSpan: z3.number().int().min(1).max(4).optional(),
8824
+ row: z4.string().optional(),
8825
+ colSpan: z4.number().int().min(1).max(4).optional(),
8742
8826
  // Group layout configuration
8743
- layout: z3.enum(["stack", "grid"]).optional(),
8744
- columns: z3.number().int().min(2).max(4).optional(),
8827
+ layout: z4.enum(["stack", "grid"]).optional(),
8828
+ columns: z4.number().int().min(2).max(4).optional(),
8745
8829
  // Named grid presets for GroupField grid layout.
8746
8830
  // Use these for common responsive patterns to avoid embedding Tailwind strings in manifests.
8747
- gridColsPreset: z3.enum([
8831
+ gridColsPreset: z4.enum([
8748
8832
  "simple2",
8749
8833
  // base 1 col -> sm 2 cols
8750
8834
  "simple3",
@@ -8757,99 +8841,99 @@ var uiSchema = z3.object({
8757
8841
  // Responsive grid columns for GroupField grid layout (mobile-first).
8758
8842
  // Uses Tailwind breakpoints; when provided, GroupField will build the appropriate
8759
8843
  // `grid-cols-*` classes from this config.
8760
- gridColumns: z3.object({
8761
- base: z3.number().int().min(1).max(4).optional(),
8762
- sm: z3.number().int().min(1).max(4).optional(),
8763
- md: z3.number().int().min(1).max(4).optional(),
8764
- lg: z3.number().int().min(1).max(4).optional(),
8765
- xl: z3.number().int().min(1).max(4).optional()
8844
+ gridColumns: z4.object({
8845
+ base: z4.number().int().min(1).max(4).optional(),
8846
+ sm: z4.number().int().min(1).max(4).optional(),
8847
+ md: z4.number().int().min(1).max(4).optional(),
8848
+ lg: z4.number().int().min(1).max(4).optional(),
8849
+ xl: z4.number().int().min(1).max(4).optional()
8766
8850
  }).optional(),
8767
8851
  // Group grid override: allows custom responsive grid column classes (e.g. unequal column widths)
8768
- gridColsClassName: z3.string().optional(),
8852
+ gridColsClassName: z4.string().optional(),
8769
8853
  // Repeater presentation presets
8770
- repeaterPreset: z3.enum(["thumbnailGrid", "layoutGrid"]).optional(),
8771
- thumbnailField: z3.string().optional(),
8772
- thumbnailAltField: z3.string().optional(),
8773
- thumbnailLabelField: z3.string().optional(),
8774
- thumbnailAspectRatio: z3.string().optional(),
8775
- thumbnailCardDensity: z3.enum(["compact", "comfortable"]).optional(),
8776
- layoutGridColumnsFields: z3.object({
8777
- base: z3.string().optional(),
8778
- sm: z3.string().optional(),
8779
- md: z3.string().optional(),
8780
- lg: z3.string().min(1),
8781
- xl: z3.string().optional()
8854
+ repeaterPreset: z4.enum(["thumbnailGrid", "layoutGrid"]).optional(),
8855
+ thumbnailField: z4.string().optional(),
8856
+ thumbnailAltField: z4.string().optional(),
8857
+ thumbnailLabelField: z4.string().optional(),
8858
+ thumbnailAspectRatio: z4.string().optional(),
8859
+ thumbnailCardDensity: z4.enum(["compact", "comfortable"]).optional(),
8860
+ layoutGridColumnsFields: z4.object({
8861
+ base: z4.string().optional(),
8862
+ sm: z4.string().optional(),
8863
+ md: z4.string().optional(),
8864
+ lg: z4.string().min(1),
8865
+ xl: z4.string().optional()
8782
8866
  }).optional(),
8783
- layoutGridSpanField: z3.string().optional(),
8784
- layoutGridRowField: z3.string().optional(),
8785
- layoutGridColumnField: z3.string().optional(),
8786
- layoutGridMaxRows: z3.number().int().positive().optional(),
8867
+ layoutGridSpanField: z4.string().optional(),
8868
+ layoutGridRowField: z4.string().optional(),
8869
+ layoutGridColumnField: z4.string().optional(),
8870
+ layoutGridMaxRows: z4.number().int().positive().optional(),
8787
8871
  // Icon picker configuration (used when ui.widget === 'iconPicker')
8788
- iconPickerPreset: z3.enum(["cta"]).optional(),
8872
+ iconPickerPreset: z4.enum(["cta"]).optional(),
8789
8873
  // Entry picker configuration
8790
- contentTypeField: z3.string().optional(),
8791
- fixedContentType: z3.string().optional(),
8792
- valueFrom: z3.enum(["id", "identifier", "slug"]).optional(),
8793
- siteOptionSource: z3.enum(siteOptionSources).optional(),
8794
- searchThreshold: z3.number().int().positive().optional(),
8874
+ contentTypeField: z4.string().optional(),
8875
+ fixedContentType: z4.string().optional(),
8876
+ valueFrom: z4.enum(["id", "identifier", "slug"]).optional(),
8877
+ siteOptionSource: z4.enum(siteOptionSources).optional(),
8878
+ searchThreshold: z4.number().int().positive().optional(),
8795
8879
  // Render in block header instead of form body (used for section styles)
8796
- renderInHeader: z3.boolean().optional(),
8880
+ renderInHeader: z4.boolean().optional(),
8797
8881
  // Semantic field intent for content-first form routing and settings tab grouping
8798
- intent: z3.enum(["content", "display", "behavior", "style"]).optional()
8882
+ intent: z4.enum(["content", "display", "behavior", "style"]).optional()
8799
8883
  }).partial();
8800
- var baseFieldSchema = z3.object({
8801
- id: z3.string().min(1, "Field id is required"),
8802
- label: z3.string().min(1, "Field label is required"),
8803
- description: z3.string().optional(),
8804
- visibleRoles: z3.array(z3.enum(visibilityLevels)).optional(),
8805
- defaultValue: z3.any().optional(),
8806
- required: z3.boolean().default(false),
8884
+ var baseFieldSchema = z4.object({
8885
+ id: z4.string().min(1, "Field id is required"),
8886
+ label: z4.string().min(1, "Field label is required"),
8887
+ description: z4.string().optional(),
8888
+ visibleRoles: z4.array(z4.enum(visibilityLevels)).optional(),
8889
+ defaultValue: z4.any().optional(),
8890
+ required: z4.boolean().default(false),
8807
8891
  ui: uiSchema.optional()
8808
8892
  });
8809
8893
  var textFieldSchema = baseFieldSchema.extend({
8810
- type: z3.literal("text"),
8811
- multiline: z3.boolean().default(false),
8812
- maxLength: z3.number().int().positive().optional()
8894
+ type: z4.literal("text"),
8895
+ multiline: z4.boolean().default(false),
8896
+ maxLength: z4.number().int().positive().optional()
8813
8897
  });
8814
8898
  var richTextFieldSchema = baseFieldSchema.extend({
8815
- type: z3.literal("richText")
8899
+ type: z4.literal("richText")
8816
8900
  });
8817
8901
  var mediaFieldSchema = baseFieldSchema.extend({
8818
- type: z3.literal("media"),
8819
- mediaKinds: z3.array(
8820
- z3.enum(["image", "video", "audio", "document", "spreadsheet", "archive"])
8902
+ type: z4.literal("media"),
8903
+ mediaKinds: z4.array(
8904
+ z4.enum(["image", "video", "audio", "document", "spreadsheet", "archive"])
8821
8905
  ).default(["image"]),
8822
- aspectRatio: z3.string().optional()
8906
+ aspectRatio: z4.string().optional()
8823
8907
  });
8824
8908
  var booleanFieldSchema = baseFieldSchema.extend({
8825
- type: z3.literal("boolean")
8909
+ type: z4.literal("boolean")
8826
8910
  });
8827
8911
  var dateFieldSchema = baseFieldSchema.extend({
8828
- type: z3.literal("date")
8912
+ type: z4.literal("date")
8829
8913
  });
8830
8914
  var timeFieldSchema = baseFieldSchema.extend({
8831
- type: z3.literal("time")
8915
+ type: z4.literal("time")
8832
8916
  });
8833
8917
  var dateTimeFieldSchema = baseFieldSchema.extend({
8834
- type: z3.literal("datetime")
8918
+ type: z4.literal("datetime")
8835
8919
  });
8836
8920
  var slugFieldSchema = baseFieldSchema.extend({
8837
- type: z3.literal("slug"),
8838
- sourceFieldId: z3.string().min(1).optional(),
8839
- statusFieldId: z3.string().min(1).optional(),
8840
- maxLength: z3.number().int().positive().optional()
8921
+ type: z4.literal("slug"),
8922
+ sourceFieldId: z4.string().min(1).optional(),
8923
+ statusFieldId: z4.string().min(1).optional(),
8924
+ maxLength: z4.number().int().positive().optional()
8841
8925
  });
8842
8926
  var urlFieldSchema = baseFieldSchema.extend({
8843
- type: z3.literal("url"),
8844
- allowRelative: z3.boolean().default(false)
8927
+ type: z4.literal("url"),
8928
+ allowRelative: z4.boolean().default(false)
8845
8929
  });
8846
8930
  var linkFieldSchema = baseFieldSchema.extend({
8847
- type: z3.literal("link")
8931
+ type: z4.literal("link")
8848
8932
  });
8849
8933
  var selectFieldSchema = baseFieldSchema.extend({
8850
- type: z3.literal("select"),
8851
- options: z3.array(selectOptionSchema),
8852
- multiple: z3.boolean().default(false),
8934
+ type: z4.literal("select"),
8935
+ options: z4.array(selectOptionSchema),
8936
+ multiple: z4.boolean().default(false),
8853
8937
  source: selectSourceSchema.optional()
8854
8938
  }).superRefine((field, ctx) => {
8855
8939
  const widget = field.ui?.widget;
@@ -8857,7 +8941,7 @@ var selectFieldSchema = baseFieldSchema.extend({
8857
8941
  if (!field.source) {
8858
8942
  if (siteOptionSource || widget === "sdkSelect") {
8859
8943
  ctx.addIssue({
8860
- code: z3.ZodIssueCode.custom,
8944
+ code: z4.ZodIssueCode.custom,
8861
8945
  message: "Runtime-backed select fields must declare source.kind explicitly",
8862
8946
  path: ["source"]
8863
8947
  });
@@ -8865,7 +8949,7 @@ var selectFieldSchema = baseFieldSchema.extend({
8865
8949
  }
8866
8950
  if (field.options.length === 0) {
8867
8951
  ctx.addIssue({
8868
- code: z3.ZodIssueCode.custom,
8952
+ code: z4.ZodIssueCode.custom,
8869
8953
  message: "Select fields require at least one option unless a runtime source is configured",
8870
8954
  path: ["options"]
8871
8955
  });
@@ -8876,14 +8960,14 @@ var selectFieldSchema = baseFieldSchema.extend({
8876
8960
  case "static":
8877
8961
  if (siteOptionSource || widget === "sdkSelect") {
8878
8962
  ctx.addIssue({
8879
- code: z3.ZodIssueCode.custom,
8963
+ code: z4.ZodIssueCode.custom,
8880
8964
  message: "Static select fields cannot declare runtime-backed UI metadata",
8881
8965
  path: ["ui"]
8882
8966
  });
8883
8967
  }
8884
8968
  if (field.options.length === 0) {
8885
8969
  ctx.addIssue({
8886
- code: z3.ZodIssueCode.custom,
8970
+ code: z4.ZodIssueCode.custom,
8887
8971
  message: "Static select fields require at least one option",
8888
8972
  path: ["options"]
8889
8973
  });
@@ -8892,21 +8976,21 @@ var selectFieldSchema = baseFieldSchema.extend({
8892
8976
  case "site":
8893
8977
  if (field.options.length > 0) {
8894
8978
  ctx.addIssue({
8895
- code: z3.ZodIssueCode.custom,
8979
+ code: z4.ZodIssueCode.custom,
8896
8980
  message: "Site-backed select fields must not define static options",
8897
8981
  path: ["options"]
8898
8982
  });
8899
8983
  }
8900
8984
  if (widget !== "siteOptionPicker") {
8901
8985
  ctx.addIssue({
8902
- code: z3.ZodIssueCode.custom,
8986
+ code: z4.ZodIssueCode.custom,
8903
8987
  message: "Site-backed select fields must use the siteOptionPicker widget",
8904
8988
  path: ["ui", "widget"]
8905
8989
  });
8906
8990
  }
8907
8991
  if (siteOptionSource !== field.source.optionSource) {
8908
8992
  ctx.addIssue({
8909
- code: z3.ZodIssueCode.custom,
8993
+ code: z4.ZodIssueCode.custom,
8910
8994
  message: "Site-backed select fields must keep ui.siteOptionSource in sync with source.optionSource",
8911
8995
  path: ["ui", "siteOptionSource"]
8912
8996
  });
@@ -8915,14 +8999,14 @@ var selectFieldSchema = baseFieldSchema.extend({
8915
8999
  case "sdk":
8916
9000
  if (widget !== "sdkSelect") {
8917
9001
  ctx.addIssue({
8918
- code: z3.ZodIssueCode.custom,
9002
+ code: z4.ZodIssueCode.custom,
8919
9003
  message: "SDK-backed select fields must use the sdkSelect widget",
8920
9004
  path: ["ui", "widget"]
8921
9005
  });
8922
9006
  }
8923
9007
  if (siteOptionSource) {
8924
9008
  ctx.addIssue({
8925
- code: z3.ZodIssueCode.custom,
9009
+ code: z4.ZodIssueCode.custom,
8926
9010
  message: "SDK-backed select fields cannot declare ui.siteOptionSource",
8927
9011
  path: ["ui", "siteOptionSource"]
8928
9012
  });
@@ -8933,33 +9017,33 @@ var selectFieldSchema = baseFieldSchema.extend({
8933
9017
  }
8934
9018
  });
8935
9019
  var referenceFieldSchema = baseFieldSchema.extend({
8936
- type: z3.literal("reference"),
8937
- referenceKind: z3.string().min(1),
8938
- allowManualEntry: z3.boolean().default(false)
9020
+ type: z4.literal("reference"),
9021
+ referenceKind: z4.string().min(1),
9022
+ allowManualEntry: z4.boolean().default(false)
8939
9023
  });
8940
- var itemTypeSchema = z3.object({
8941
- label: z3.string().min(1),
8942
- icon: z3.string().optional(),
8943
- fields: z3.lazy(
9024
+ var itemTypeSchema = z4.object({
9025
+ label: z4.string().min(1),
9026
+ icon: z4.string().optional(),
9027
+ fields: z4.lazy(
8944
9028
  () => getFieldSchemaInternal().array().min(1, "Item type requires at least one field")
8945
9029
  )
8946
9030
  });
8947
9031
  var repeaterFieldSchema = baseFieldSchema.extend({
8948
- type: z3.literal("repeater"),
8949
- itemLabel: z3.string().default("Item"),
8950
- itemLabelSource: z3.string().optional(),
8951
- minItems: z3.number().int().min(0).default(0),
8952
- maxItems: z3.number().int().positive().optional(),
9032
+ type: z4.literal("repeater"),
9033
+ itemLabel: z4.string().default("Item"),
9034
+ itemLabelSource: z4.string().optional(),
9035
+ minItems: z4.number().int().min(0).default(0),
9036
+ maxItems: z4.number().int().positive().optional(),
8953
9037
  // Monomorphic mode
8954
- schema: z3.object({
8955
- fields: z3.lazy(
9038
+ schema: z4.object({
9039
+ fields: z4.lazy(
8956
9040
  () => getFieldSchemaInternal().array().min(1, "Repeater requires at least one field")
8957
9041
  )
8958
9042
  }).optional(),
8959
9043
  // Polymorphic mode
8960
- polymorphic: z3.boolean().optional(),
8961
- itemTypes: z3.record(z3.string(), itemTypeSchema).optional(),
8962
- allowConversion: z3.boolean().default(true)
9044
+ polymorphic: z4.boolean().optional(),
9045
+ itemTypes: z4.record(z4.string(), itemTypeSchema).optional(),
9046
+ allowConversion: z4.boolean().default(true)
8963
9047
  }).refine(
8964
9048
  (data) => {
8965
9049
  const hasSchema = data.schema !== void 0;
@@ -9051,78 +9135,78 @@ var repeaterFieldSchema = baseFieldSchema.extend({
9051
9135
  }
9052
9136
  );
9053
9137
  var groupFieldSchema = baseFieldSchema.extend({
9054
- type: z3.literal("group"),
9055
- schema: z3.object({
9056
- fields: z3.lazy(
9138
+ type: z4.literal("group"),
9139
+ schema: z4.object({
9140
+ fields: z4.lazy(
9057
9141
  () => getFieldSchemaInternal().array().min(1, "Group requires at least one field")
9058
9142
  )
9059
9143
  })
9060
9144
  });
9061
9145
  var modalFieldSchema = baseFieldSchema.extend({
9062
- type: z3.literal("modal"),
9063
- schema: z3.object({
9064
- fields: z3.lazy(
9146
+ type: z4.literal("modal"),
9147
+ schema: z4.object({
9148
+ fields: z4.lazy(
9065
9149
  () => getFieldSchemaInternal().array().min(1, "Modal requires at least one field")
9066
9150
  )
9067
9151
  })
9068
9152
  });
9069
9153
  var numberFieldSchema = baseFieldSchema.extend({
9070
- type: z3.literal("number"),
9071
- min: z3.number().optional(),
9072
- max: z3.number().optional(),
9073
- step: z3.number().optional()
9154
+ type: z4.literal("number"),
9155
+ min: z4.number().optional(),
9156
+ max: z4.number().optional(),
9157
+ step: z4.number().optional()
9074
9158
  });
9075
- var tabDefinitionSchema = z3.object({
9076
- id: z3.string().min(1),
9077
- label: z3.string().min(1),
9078
- icon: z3.string().optional(),
9079
- description: z3.string().optional(),
9080
- fields: z3.lazy(() => getFieldSchemaInternal().array()),
9159
+ var tabDefinitionSchema = z4.object({
9160
+ id: z4.string().min(1),
9161
+ label: z4.string().min(1),
9162
+ icon: z4.string().optional(),
9163
+ description: z4.string().optional(),
9164
+ fields: z4.lazy(() => getFieldSchemaInternal().array()),
9081
9165
  /** SDK section option that controls tab visibility based on site config */
9082
- sdkSectionOption: z3.enum(["backgroundColor", "backgroundGradient", "backgroundImage"]).optional()
9166
+ sdkSectionOption: z4.enum(["backgroundColor", "backgroundGradient", "backgroundImage"]).optional()
9083
9167
  });
9084
9168
  var tabGroupFieldSchema = baseFieldSchema.extend({
9085
- type: z3.literal("tabGroup"),
9086
- tabs: z3.array(tabDefinitionSchema).min(1, "TabGroup requires at least one tab"),
9087
- activeTabField: z3.string().optional()
9169
+ type: z4.literal("tabGroup"),
9170
+ tabs: z4.array(tabDefinitionSchema).min(1, "TabGroup requires at least one tab"),
9171
+ activeTabField: z4.string().optional()
9088
9172
  });
9089
- var presetOptionSchema = z3.object({
9090
- value: z3.string(),
9091
- label: z3.string()
9173
+ var presetOptionSchema = z4.object({
9174
+ value: z4.string(),
9175
+ label: z4.string()
9092
9176
  });
9093
9177
  var presetOrCustomFieldSchema = baseFieldSchema.extend({
9094
- type: z3.literal("presetOrCustom"),
9095
- presets: z3.array(presetOptionSchema).min(1, "PresetOrCustom requires at least one preset"),
9096
- customInput: z3.object({
9097
- placeholder: z3.string().optional(),
9098
- pattern: z3.string().optional(),
9099
- helpText: z3.string().optional()
9178
+ type: z4.literal("presetOrCustom"),
9179
+ presets: z4.array(presetOptionSchema).min(1, "PresetOrCustom requires at least one preset"),
9180
+ customInput: z4.object({
9181
+ placeholder: z4.string().optional(),
9182
+ pattern: z4.string().optional(),
9183
+ helpText: z4.string().optional()
9100
9184
  }).optional()
9101
9185
  });
9102
9186
  var contentTypeSelectFieldSchema = baseFieldSchema.extend({
9103
- type: z3.literal("contentTypeSelect"),
9187
+ type: z4.literal("contentTypeSelect"),
9104
9188
  /** Filter: all, routable (hasPages=true), nonRoutable (hasPages=false) */
9105
- filter: z3.enum(["all", "routable", "nonRoutable"]).default("all")
9189
+ filter: z4.enum(["all", "routable", "nonRoutable"]).default("all")
9106
9190
  });
9107
9191
  var entryPickerFieldSchema = baseFieldSchema.extend({
9108
- type: z3.literal("entryPicker"),
9192
+ type: z4.literal("entryPicker"),
9109
9193
  // Note: these options also exist under `ui.*` (see uiSchema) because older manifests
9110
9194
  // and some authoring surfaces store widget-specific configuration there. We support
9111
9195
  // both locations so SDK/custom manifests can use the more ergonomic top-level fields
9112
9196
  // without breaking existing `ui.*` configs.
9113
9197
  /** Fixed content type to filter entries by (no sibling contentType field required) */
9114
- fixedContentType: z3.string().optional(),
9198
+ fixedContentType: z4.string().optional(),
9115
9199
  /** Field ID that contains the content type to filter entries by */
9116
- contentTypeField: z3.string().optional(),
9200
+ contentTypeField: z4.string().optional(),
9117
9201
  /** What value should be stored when an entry is selected */
9118
- valueFrom: z3.enum(["id", "identifier", "slug"]).optional()
9202
+ valueFrom: z4.enum(["id", "identifier", "slug"]).optional()
9119
9203
  });
9120
9204
  var _fieldSchemaInternal = null;
9121
9205
  function getFieldSchemaInternal() {
9122
9206
  if (_fieldSchemaInternal) {
9123
9207
  return _fieldSchemaInternal;
9124
9208
  }
9125
- _fieldSchemaInternal = z3.discriminatedUnion("type", [
9209
+ _fieldSchemaInternal = z4.discriminatedUnion("type", [
9126
9210
  textFieldSchema,
9127
9211
  richTextFieldSchema,
9128
9212
  mediaFieldSchema,
@@ -9157,14 +9241,14 @@ var fieldSchema = new Proxy({}, {
9157
9241
  return prop in getFieldSchemaInternal();
9158
9242
  }
9159
9243
  });
9160
- var slotSchema = z3.object({
9161
- id: z3.string().min(1),
9162
- label: z3.string().min(1),
9163
- allowedKinds: z3.array(z3.string()).default([]),
9164
- min: z3.number().int().min(0).default(0),
9165
- max: z3.number().int().positive().optional(),
9166
- help: z3.string().optional(),
9167
- visibleRoles: z3.array(z3.enum(visibilityLevels)).optional()
9244
+ var slotSchema = z4.object({
9245
+ id: z4.string().min(1),
9246
+ label: z4.string().min(1),
9247
+ allowedKinds: z4.array(z4.string()).default([]),
9248
+ min: z4.number().int().min(0).default(0),
9249
+ max: z4.number().int().positive().optional(),
9250
+ help: z4.string().optional(),
9251
+ visibleRoles: z4.array(z4.enum(visibilityLevels)).optional()
9168
9252
  });
9169
9253
  var typographyTokens = [
9170
9254
  "display",
@@ -9182,24 +9266,24 @@ var colorTokens = [
9182
9266
  ];
9183
9267
  var spacingTokens = ["none", "xs", "sm", "md", "lg", "xl"];
9184
9268
  var radiusTokens = ["none", "sm", "md", "lg", "full"];
9185
- var styleTokenSchema = z3.object({
9186
- background: z3.enum(colorTokens).optional(),
9187
- foreground: z3.enum(colorTokens).optional(),
9188
- border: z3.enum(colorTokens).optional(),
9189
- typography: z3.enum(typographyTokens).optional(),
9190
- spacing: z3.enum(spacingTokens).optional(),
9191
- radius: z3.enum(radiusTokens).optional()
9269
+ var styleTokenSchema = z4.object({
9270
+ background: z4.enum(colorTokens).optional(),
9271
+ foreground: z4.enum(colorTokens).optional(),
9272
+ border: z4.enum(colorTokens).optional(),
9273
+ typography: z4.enum(typographyTokens).optional(),
9274
+ spacing: z4.enum(spacingTokens).optional(),
9275
+ radius: z4.enum(radiusTokens).optional()
9192
9276
  });
9193
- var behaviourSchema = z3.object({
9194
- supportsThemeSwitching: z3.boolean().default(true),
9195
- inlineEditing: z3.boolean().default(false),
9196
- animation: z3.boolean().default(false),
9277
+ var behaviourSchema = z4.object({
9278
+ supportsThemeSwitching: z4.boolean().default(true),
9279
+ inlineEditing: z4.boolean().default(false),
9280
+ animation: z4.boolean().default(false),
9197
9281
  // Hide from block picker palettes (e.g., header/footer system blocks)
9198
- paletteHidden: z3.boolean().default(false),
9282
+ paletteHidden: z4.boolean().default(false),
9199
9283
  // Block manages its own wrapper (for sticky/fixed positioning)
9200
- managesOwnWrapper: z3.boolean().optional()
9284
+ managesOwnWrapper: z4.boolean().optional()
9201
9285
  });
9202
- var blockCategoryEnum = z3.enum([
9286
+ var blockCategoryEnum = z4.enum([
9203
9287
  "marketing",
9204
9288
  "content",
9205
9289
  "blog",
@@ -9207,13 +9291,13 @@ var blockCategoryEnum = z3.enum([
9207
9291
  "layout",
9208
9292
  "interactive"
9209
9293
  ]);
9210
- var manifestSchema = z3.object({
9211
- name: z3.string().min(1),
9212
- version: z3.string().min(1),
9213
- title: z3.string().min(1),
9214
- titleSource: z3.union([z3.string().min(1), z3.array(z3.string().min(1)).min(1)]).optional(),
9215
- description: z3.string().optional(),
9216
- component: z3.string().min(1),
9294
+ var manifestSchema = z4.object({
9295
+ name: z4.string().min(1),
9296
+ version: z4.string().min(1),
9297
+ title: z4.string().min(1),
9298
+ titleSource: z4.union([z4.string().min(1), z4.array(z4.string().min(1)).min(1)]).optional(),
9299
+ description: z4.string().optional(),
9300
+ component: z4.string().min(1),
9217
9301
  fields: fieldSchema.array().default([]),
9218
9302
  slots: slotSchema.array().default([]),
9219
9303
  styleTokens: styleTokenSchema.optional(),
@@ -9226,23 +9310,23 @@ var manifestSchema = z3.object({
9226
9310
  *
9227
9311
  * The original fields remain available in settings for power users.
9228
9312
  */
9229
- promotedFields: z3.array(z3.string().min(1)).optional(),
9313
+ promotedFields: z4.array(z4.string().min(1)).optional(),
9230
9314
  // Block variants system
9231
- variants: z3.record(z3.string(), NodeTreeSchema).optional(),
9232
- defaultVariant: z3.string().optional(),
9233
- variantOptions: z3.record(
9234
- z3.string(),
9235
- z3.object({
9236
- label: z3.string().optional(),
9237
- description: z3.string().optional(),
9238
- icon: z3.string().optional()
9315
+ variants: z4.record(z4.string(), NodeTreeSchema).optional(),
9316
+ defaultVariant: z4.string().optional(),
9317
+ variantOptions: z4.record(
9318
+ z4.string(),
9319
+ z4.object({
9320
+ label: z4.string().optional(),
9321
+ description: z4.string().optional(),
9322
+ icon: z4.string().optional()
9239
9323
  }).optional()
9240
9324
  ).optional(),
9241
9325
  // Discovery metadata
9242
9326
  category: blockCategoryEnum.optional(),
9243
- contentTypes: z3.array(z3.string()).optional(),
9244
- tags: z3.array(z3.string()).optional(),
9245
- icon: z3.string().optional()
9327
+ contentTypes: z4.array(z4.string()).optional(),
9328
+ tags: z4.array(z4.string()).optional(),
9329
+ icon: z4.string().optional()
9246
9330
  });
9247
9331
 
9248
9332
  // ../blocks/src/system/data/loaderEndpoints.ts
@@ -9264,76 +9348,75 @@ var SUPPORTED_LOADER_ENDPOINTS = [
9264
9348
  function unsafeRetypeZodSchema(schema) {
9265
9349
  return schema;
9266
9350
  }
9267
- var navIdListSchema = z4.preprocess((value) => {
9351
+ var navIdListSchema = z5.preprocess((value) => {
9268
9352
  if (!Array.isArray(value)) return void 0;
9269
9353
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
9270
9354
  return filtered.length > 0 ? filtered : void 0;
9271
- }, z4.array(z4.string()).max(200).optional());
9272
- var dashboardNavVisibilityBaseSchema = z4.object({
9273
- mode: z4.enum(["augment", "restrict"]).optional(),
9355
+ }, z5.array(z5.string()).max(200).optional());
9356
+ var dashboardNavVisibilityBaseSchema = z5.object({
9357
+ mode: z5.enum(["augment", "restrict"]).optional(),
9274
9358
  allowIds: navIdListSchema,
9275
9359
  denyIds: navIdListSchema
9276
9360
  }).strip();
9277
- var dashboardNavVisibilityRolesSchema = z4.object({
9361
+ var dashboardNavVisibilityRolesSchema = z5.object({
9278
9362
  administrator: dashboardNavVisibilityBaseSchema.optional(),
9279
9363
  editor: dashboardNavVisibilityBaseSchema.optional(),
9280
- team_member: dashboardNavVisibilityBaseSchema.optional(),
9281
- event_host: dashboardNavVisibilityBaseSchema.optional()
9364
+ team_member: dashboardNavVisibilityBaseSchema.optional()
9282
9365
  }).strip().optional();
9283
9366
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
9284
9367
  roles: dashboardNavVisibilityRolesSchema
9285
9368
  }).strip();
9286
- var dashboardNavigationConfigSchema = z4.object({
9369
+ var dashboardNavigationConfigSchema = z5.object({
9287
9370
  siteNav: dashboardNavVisibilitySchema.optional(),
9288
9371
  settingsNav: dashboardNavVisibilitySchema.optional()
9289
9372
  }).strip();
9290
- var dashboardConfigSchema = z4.object({
9291
- previewEditingEnabled: z4.boolean().optional(),
9373
+ var dashboardConfigSchema = z5.object({
9374
+ previewEditingEnabled: z5.boolean().optional(),
9292
9375
  navigation: dashboardNavigationConfigSchema.optional()
9293
9376
  }).strip();
9294
9377
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
9295
9378
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
9296
- var sdkLoaderEndpointSchema = z4.enum(SUPPORTED_LOADER_ENDPOINTS);
9297
- var loaderParamBindingSchema = z4.object({
9298
- $bind: z4.object({
9299
- from: z4.string().min(1, "Binding path is required"),
9300
- fallback: z4.string().optional()
9379
+ var sdkLoaderEndpointSchema = z5.enum(SUPPORTED_LOADER_ENDPOINTS);
9380
+ var loaderParamBindingSchema = z5.object({
9381
+ $bind: z5.object({
9382
+ from: z5.string().min(1, "Binding path is required"),
9383
+ fallback: z5.string().optional()
9301
9384
  })
9302
9385
  });
9303
- var loaderParamValueSchema = z4.union([
9304
- z4.string(),
9305
- z4.number(),
9306
- z4.boolean(),
9386
+ var loaderParamValueSchema = z5.union([
9387
+ z5.string(),
9388
+ z5.number(),
9389
+ z5.boolean(),
9307
9390
  loaderParamBindingSchema
9308
9391
  ]);
9309
- var sdkConfigLoaderSchema = z4.object({
9392
+ var sdkConfigLoaderSchema = z5.object({
9310
9393
  endpoint: sdkLoaderEndpointSchema,
9311
- params: z4.record(z4.string(), loaderParamValueSchema),
9312
- mode: z4.enum(["server", "client"]).default("server")
9394
+ params: z5.record(z5.string(), loaderParamValueSchema),
9395
+ mode: z5.enum(["server", "client"]).default("server")
9313
9396
  });
9314
- var sdkDataLoadersSchema = z4.record(z4.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
9315
- var sdkCustomBlockIdSchema = z4.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
9397
+ var sdkDataLoadersSchema = z5.record(z5.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
9398
+ var sdkCustomBlockIdSchema = z5.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
9316
9399
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
9317
9400
  }).transform((value) => value);
9318
- var sdkCustomBlockInputSchema = z4.object({
9401
+ var sdkCustomBlockInputSchema = z5.object({
9319
9402
  id: sdkCustomBlockIdSchema,
9320
- title: z4.string().min(1),
9321
- titleSource: z4.union([z4.string().min(1), z4.array(z4.string().min(1)).min(1)]).optional(),
9322
- description: z4.string().optional(),
9403
+ title: z5.string().min(1),
9404
+ titleSource: z5.union([z5.string().min(1), z5.array(z5.string().min(1)).min(1)]).optional(),
9405
+ description: z5.string().optional(),
9323
9406
  category: blockCategoryEnum,
9324
- icon: z4.string().optional(),
9325
- tags: z4.array(z4.string()).optional(),
9407
+ icon: z5.string().optional(),
9408
+ tags: z5.array(z5.string()).optional(),
9326
9409
  fields: fieldDefinitionInputSchema.array().min(1),
9327
9410
  dataLoaders: sdkDataLoadersSchema,
9328
9411
  layout: NodeSchema.optional(),
9329
- variants: z4.record(z4.string().min(1), NodeSchema).optional(),
9330
- defaultVariant: z4.string().min(1).optional(),
9331
- variantOptions: z4.record(
9332
- z4.string().min(1),
9333
- z4.object({
9334
- label: z4.string().min(1).optional(),
9335
- description: z4.string().min(1).optional(),
9336
- icon: z4.string().min(1).optional()
9412
+ variants: z5.record(z5.string().min(1), NodeSchema).optional(),
9413
+ defaultVariant: z5.string().min(1).optional(),
9414
+ variantOptions: z5.record(
9415
+ z5.string().min(1),
9416
+ z5.object({
9417
+ label: z5.string().min(1).optional(),
9418
+ description: z5.string().min(1).optional(),
9419
+ icon: z5.string().min(1).optional()
9337
9420
  })
9338
9421
  ).optional()
9339
9422
  }).superRefine((data, ctx) => {
@@ -9343,7 +9426,7 @@ var sdkCustomBlockInputSchema = z4.object({
9343
9426
  const exists = data.fields.some((field) => field.id === source);
9344
9427
  if (!exists) {
9345
9428
  ctx.addIssue({
9346
- code: z4.ZodIssueCode.custom,
9429
+ code: z5.ZodIssueCode.custom,
9347
9430
  message: `titleSource must reference a valid field ID (got "${source}")`,
9348
9431
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
9349
9432
  });
@@ -9352,7 +9435,7 @@ var sdkCustomBlockInputSchema = z4.object({
9352
9435
  }
9353
9436
  if (data.layout && data.variants) {
9354
9437
  ctx.addIssue({
9355
- code: z4.ZodIssueCode.custom,
9438
+ code: z5.ZodIssueCode.custom,
9356
9439
  message: "Custom block must define either `layout` or `variants`, not both",
9357
9440
  path: ["variants"]
9358
9441
  });
@@ -9361,14 +9444,14 @@ var sdkCustomBlockInputSchema = z4.object({
9361
9444
  const keys = Object.keys(data.variants);
9362
9445
  if (keys.length === 0) {
9363
9446
  ctx.addIssue({
9364
- code: z4.ZodIssueCode.custom,
9447
+ code: z5.ZodIssueCode.custom,
9365
9448
  message: "`variants` must contain at least one variant key",
9366
9449
  path: ["variants"]
9367
9450
  });
9368
9451
  }
9369
9452
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
9370
9453
  ctx.addIssue({
9371
- code: z4.ZodIssueCode.custom,
9454
+ code: z5.ZodIssueCode.custom,
9372
9455
  message: "`defaultVariant` must be a key present in `variants`",
9373
9456
  path: ["defaultVariant"]
9374
9457
  });
@@ -9377,7 +9460,7 @@ var sdkCustomBlockInputSchema = z4.object({
9377
9460
  for (const key of Object.keys(data.variantOptions)) {
9378
9461
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
9379
9462
  ctx.addIssue({
9380
- code: z4.ZodIssueCode.custom,
9463
+ code: z5.ZodIssueCode.custom,
9381
9464
  message: "`variantOptions` key must exist in `variants`",
9382
9465
  path: ["variantOptions", key]
9383
9466
  });
@@ -9386,74 +9469,74 @@ var sdkCustomBlockInputSchema = z4.object({
9386
9469
  }
9387
9470
  }
9388
9471
  });
9389
- var sdkBlockFieldExtensionInputSchema = z4.object({
9472
+ var sdkBlockFieldExtensionInputSchema = z5.object({
9390
9473
  fields: fieldDefinitionInputSchema.array().min(1)
9391
9474
  });
9392
- var sdkBlockFieldExtensionsInputSchema = z4.record(
9393
- z4.string().min(1),
9475
+ var sdkBlockFieldExtensionsInputSchema = z5.record(
9476
+ z5.string().min(1),
9394
9477
  sdkBlockFieldExtensionInputSchema
9395
9478
  );
9396
- var sdkThemePaletteSchema = z4.record(z4.string(), z4.string());
9397
- var sdkThemeConfigSchema = z4.object({
9479
+ var sdkThemePaletteSchema = z5.record(z5.string(), z5.string());
9480
+ var sdkThemeConfigSchema = z5.object({
9398
9481
  palette: sdkThemePaletteSchema
9399
9482
  });
9400
- var sdkSectionBackgroundSchema = z4.object({
9401
- id: z4.string().min(1),
9402
- label: z4.string().min(1),
9403
- token: z4.string().min(1)
9483
+ var sdkSectionBackgroundSchema = z5.object({
9484
+ id: z5.string().min(1),
9485
+ label: z5.string().min(1),
9486
+ token: z5.string().min(1)
9404
9487
  });
9405
- var sdkSectionOptionsConfigSchema = z4.object({
9406
- backgroundColor: z4.boolean().optional(),
9407
- backgroundImage: z4.boolean().optional(),
9408
- backgroundGradient: z4.boolean().optional(),
9409
- spacing: z4.union([z4.array(z4.enum(["compact", "default", "spacious"])), z4.boolean()]).optional(),
9410
- textColor: z4.boolean().optional()
9488
+ var sdkSectionOptionsConfigSchema = z5.object({
9489
+ backgroundColor: z5.boolean().optional(),
9490
+ backgroundImage: z5.boolean().optional(),
9491
+ backgroundGradient: z5.boolean().optional(),
9492
+ spacing: z5.union([z5.array(z5.enum(["compact", "default", "spacious"])), z5.boolean()]).optional(),
9493
+ textColor: z5.boolean().optional()
9411
9494
  });
9412
- var sdkContainerOptionsConfigSchema = z4.object({
9413
- maxWidth: z4.union([z4.array(z4.enum(["narrow", "default", "wide", "full"])), z4.boolean()]).optional(),
9414
- alignment: z4.union([z4.array(z4.enum(["left", "center", "right"])), z4.boolean()]).optional()
9495
+ var sdkContainerOptionsConfigSchema = z5.object({
9496
+ maxWidth: z5.union([z5.array(z5.enum(["narrow", "default", "wide", "full"])), z5.boolean()]).optional(),
9497
+ alignment: z5.union([z5.array(z5.enum(["left", "center", "right"])), z5.boolean()]).optional()
9415
9498
  });
9416
- var sdkSiteStyleConfigSchema = z4.object({
9417
- sectionBackgrounds: z4.array(sdkSectionBackgroundSchema).optional(),
9499
+ var sdkSiteStyleConfigSchema = z5.object({
9500
+ sectionBackgrounds: z5.array(sdkSectionBackgroundSchema).optional(),
9418
9501
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
9419
9502
  containerOptions: sdkContainerOptionsConfigSchema.optional()
9420
9503
  });
9421
- var sdkSiteLayoutConfigSchema = z4.object({
9422
- footerBlocks: z4.array(
9423
- z4.object({
9424
- id: z4.string().min(1).optional(),
9425
- kind: z4.string().min(1),
9426
- content: z4.record(z4.string(), z4.unknown()).optional()
9504
+ var sdkSiteLayoutConfigSchema = z5.object({
9505
+ footerBlocks: z5.array(
9506
+ z5.object({
9507
+ id: z5.string().min(1).optional(),
9508
+ kind: z5.string().min(1),
9509
+ content: z5.record(z5.string(), z5.unknown()).optional()
9427
9510
  })
9428
9511
  ).optional()
9429
9512
  });
9430
- var sdkFieldSelectOptionSchema = z4.object({
9431
- value: z4.string(),
9432
- label: z4.string()
9513
+ var sdkFieldSelectOptionSchema = z5.object({
9514
+ value: z5.string(),
9515
+ label: z5.string()
9433
9516
  });
9434
- var sdkBlockFieldConfigSchema = z4.object({
9435
- options: z4.array(sdkFieldSelectOptionSchema).optional()
9517
+ var sdkBlockFieldConfigSchema = z5.object({
9518
+ options: z5.array(sdkFieldSelectOptionSchema).optional()
9436
9519
  });
9437
- var sdkBlockFieldOptionsMapSchema = z4.record(
9438
- z4.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
9520
+ var sdkBlockFieldOptionsMapSchema = z5.record(
9521
+ z5.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
9439
9522
  message: "Block ID must be 'block.*' or 'custom.*' format"
9440
9523
  }),
9441
- z4.record(z4.string().min(1), sdkBlockFieldConfigSchema)
9524
+ z5.record(z5.string().min(1), sdkBlockFieldConfigSchema)
9442
9525
  ).optional();
9443
- var sdkContentTypeTemplateConfigSchema = z4.object({
9444
- blocks: z4.array(z4.unknown())
9526
+ var sdkContentTypeTemplateConfigSchema = z5.object({
9527
+ blocks: z5.array(z5.unknown())
9445
9528
  }).passthrough();
9446
- var sdkContentTypeConfigSchema = z4.object({
9447
- key: z4.string().min(1),
9448
- fields: z4.array(z4.unknown()),
9529
+ var sdkContentTypeConfigSchema = z5.object({
9530
+ key: z5.string().min(1),
9531
+ fields: z5.array(z5.unknown()),
9449
9532
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
9450
9533
  }).passthrough();
9451
- var sdkContentConfigSchema = z4.object({
9452
- contentTypes: z4.array(sdkContentTypeConfigSchema).optional(),
9453
- pages: z4.array(z4.unknown()).optional(),
9454
- entries: z4.array(z4.unknown()).optional(),
9455
- navigationMenus: z4.array(z4.unknown()).optional(),
9456
- settings: z4.unknown().optional()
9534
+ var sdkContentConfigSchema = z5.object({
9535
+ contentTypes: z5.array(sdkContentTypeConfigSchema).optional(),
9536
+ pages: z5.array(z5.unknown()).optional(),
9537
+ entries: z5.array(z5.unknown()).optional(),
9538
+ navigationMenus: z5.array(z5.unknown()).optional(),
9539
+ settings: z5.unknown().optional()
9457
9540
  }).passthrough();
9458
9541
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
9459
9542
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -9461,46 +9544,69 @@ var SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH = 500;
9461
9544
  var SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH = 120;
9462
9545
  var SDK_WORKFLOW_ENDPOINT_MAX_LENGTH = 500;
9463
9546
  var SDK_WORKFLOW_TRIGGER_MAX_COUNT = 5;
9547
+ var SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH = 120;
9548
+ var SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT = 10;
9464
9549
  var SDK_WORKFLOW_MAX_COUNT = 50;
9465
9550
  var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
9466
9551
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
9467
9552
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
9468
9553
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
9469
- var sdkWorkflowIdSchema = z4.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
9554
+ var sdkWorkflowIdSchema = z5.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
9470
9555
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
9471
9556
  });
9472
- var sdkWorkflowEndpointSchema = z4.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
9473
- var sdkWorkflowManualTriggerSchema = z4.object({
9474
- type: z4.literal("manual")
9557
+ var sdkWorkflowEndpointSchema = z5.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
9558
+ var sdkWorkflowManualTriggerSchema = z5.object({
9559
+ type: z5.literal("manual")
9560
+ }).strict();
9561
+ var sdkWorkflowTriggerFieldSchema = z5.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
9562
+ message: "Workflow trigger fields must be top-level content field IDs, not paths"
9563
+ });
9564
+ var sdkWorkflowFieldChangedConditionSchema = z5.object({
9565
+ field: sdkWorkflowTriggerFieldSchema,
9566
+ changed: z5.literal(true)
9567
+ }).strict();
9568
+ var sdkWorkflowFieldEmptyConditionSchema = z5.object({
9569
+ field: sdkWorkflowTriggerFieldSchema,
9570
+ isEmpty: z5.boolean()
9571
+ }).strict();
9572
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z5.object({
9573
+ type: z5.literal("entry.draft.updated"),
9574
+ when: z5.array(
9575
+ z5.union([
9576
+ sdkWorkflowFieldChangedConditionSchema,
9577
+ sdkWorkflowFieldEmptyConditionSchema
9578
+ ])
9579
+ ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
9475
9580
  }).strict();
9476
- var sdkWorkflowTriggerSchema = z4.discriminatedUnion("type", [
9477
- sdkWorkflowManualTriggerSchema
9581
+ var sdkWorkflowTriggerSchema = z5.discriminatedUnion("type", [
9582
+ sdkWorkflowManualTriggerSchema,
9583
+ sdkWorkflowEntryDraftUpdatedTriggerSchema
9478
9584
  ]);
9479
- var sdkWorkflowConfirmationSchema = z4.object({
9480
- title: z4.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
9481
- body: z4.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
9585
+ var sdkWorkflowConfirmationSchema = z5.object({
9586
+ title: z5.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
9587
+ body: z5.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
9482
9588
  }).strict();
9483
- var sdkWorkflowConfigSchema = z4.object({
9589
+ var sdkWorkflowConfigSchema = z5.object({
9484
9590
  id: sdkWorkflowIdSchema,
9485
- title: z4.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
9486
- description: z4.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
9487
- contentType: z4.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
9591
+ title: z5.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
9592
+ description: z5.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
9593
+ contentType: z5.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
9488
9594
  endpoint: sdkWorkflowEndpointSchema,
9489
- triggers: z4.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
9595
+ triggers: z5.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
9490
9596
  confirmation: sdkWorkflowConfirmationSchema.optional()
9491
9597
  }).strict();
9492
- var sdkWorkflowsSchema = z4.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
9598
+ var sdkWorkflowsSchema = z5.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
9493
9599
  const ids = workflows.map((workflow) => workflow.id);
9494
9600
  return ids.length === new Set(ids).size;
9495
9601
  }, { message: "Workflow IDs must be unique" }).optional();
9496
- var riverbankSiteConfigInputSchema = z4.object({
9497
- siteId: z4.string().uuid(),
9498
- previewUrl: z4.string().url().optional(),
9499
- liveUrl: z4.string().url().optional(),
9602
+ var riverbankSiteConfigInputSchema = z5.object({
9603
+ siteId: z5.string().uuid(),
9604
+ previewUrl: z5.string().url().optional(),
9605
+ liveUrl: z5.string().url().optional(),
9500
9606
  theme: sdkThemeConfigSchema.optional(),
9501
9607
  styles: sdkSiteStyleConfigSchema.optional(),
9502
9608
  layout: sdkSiteLayoutConfigSchema.optional(),
9503
- customBlocks: z4.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
9609
+ customBlocks: z5.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
9504
9610
  const ids = blocks.map((b) => b.id);
9505
9611
  return ids.length === new Set(ids).size;
9506
9612
  }, { message: "Block IDs must be unique" }).optional(),
@@ -9508,48 +9614,51 @@ var riverbankSiteConfigInputSchema = z4.object({
9508
9614
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
9509
9615
  workflows: sdkWorkflowsSchema,
9510
9616
  content: sdkContentConfigSchema.optional(),
9511
- contentDir: z4.string().optional(),
9512
- sync: z4.object({
9513
- existingEntries: z4.enum(["skip", "update"]).optional()
9617
+ contentDir: z5.string().optional(),
9618
+ sync: z5.object({
9619
+ existingEntries: z5.enum(["skip", "update"]).optional()
9514
9620
  }).optional(),
9515
- deploy: z4.object({
9516
- verifyCommand: z4.string().optional(),
9517
- prebuildOutput: z4.string().optional()
9621
+ deploy: z5.object({
9622
+ verifyCommand: z5.string().optional(),
9623
+ prebuildOutput: z5.string().optional()
9518
9624
  }).optional(),
9519
- themeSource: z4.enum(["local", "cms"]).optional(),
9520
- activeTheme: z4.string().optional(),
9521
- enablePortal: z4.boolean().optional(),
9625
+ themeSource: z5.enum(["local", "cms"]).optional(),
9626
+ activeTheme: z5.string().optional(),
9627
+ enablePortal: z5.boolean().optional(),
9522
9628
  dashboard: dashboardConfigSchema.optional()
9523
9629
  }).strict();
9524
- var pushSdkConfigBodySchema = z4.object({
9630
+ var pushSdkConfigBodySchema = z5.object({
9525
9631
  config: riverbankSiteConfigInputSchema,
9526
- forceContentTypes: z4.boolean().optional()
9632
+ forceContentTypes: z5.boolean().optional()
9527
9633
  }).strict();
9528
9634
 
9529
9635
  // ../api/src/siteOnboarding.ts
9530
- import { z as z5 } from "zod";
9636
+ import { z as z6 } from "zod";
9531
9637
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
9532
9638
  configure_appointments: {
9533
9639
  requirementId: "configure_appointments",
9534
9640
  reason: "launch_anyway"
9535
9641
  }
9536
9642
  };
9537
- var acknowledgeLaunchRequirementRequestSchema = z5.discriminatedUnion(
9643
+ var acknowledgeLaunchRequirementRequestSchema = z6.discriminatedUnion(
9538
9644
  "requirementId",
9539
9645
  [
9540
- z5.object({
9541
- requirementId: z5.literal("review_generated_site")
9646
+ z6.object({
9647
+ requirementId: z6.literal("review_generated_site")
9542
9648
  }),
9543
- z5.object({
9544
- requirementId: z5.literal(
9649
+ z6.object({
9650
+ requirementId: z6.literal(
9545
9651
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
9546
9652
  ),
9547
- overrideReason: z5.literal(
9653
+ overrideReason: z6.literal(
9548
9654
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
9549
9655
  )
9550
9656
  })
9551
9657
  ]
9552
9658
  );
9659
+ var goLiveSiteRequestSchema = z6.object({
9660
+ acceptExtraSiteCharge: z6.boolean().optional()
9661
+ });
9553
9662
 
9554
9663
  // ../api/src/customerMembershipOutcomes.ts
9555
9664
  var CANONICAL_REFUND_CONFLICT_CODES = [
@@ -9722,79 +9831,94 @@ function isRecord2(value) {
9722
9831
  }
9723
9832
 
9724
9833
  // ../api/src/appointmentSetup.ts
9725
- import { z as z6 } from "zod";
9726
- var appointmentSetupRefSchema = z6.discriminatedUnion("kind", [
9727
- z6.object({ kind: z6.literal("existing"), id: z6.string().min(1) }),
9728
- z6.object({ kind: z6.literal("new"), draftId: z6.string().min(1) })
9834
+ import { z as z7 } from "zod";
9835
+ var appointmentSetupRefSchema = z7.discriminatedUnion("kind", [
9836
+ z7.object({ kind: z7.literal("existing"), id: z7.string().min(1) }),
9837
+ z7.object({ kind: z7.literal("new"), draftId: z7.string().min(1) })
9729
9838
  ]);
9730
- var appointmentSetupVenueChoiceSchema = z6.discriminatedUnion("kind", [
9731
- z6.object({ kind: z6.literal("none") }),
9732
- z6.object({ kind: z6.literal("existing"), venueId: z6.string().min(1) }),
9733
- z6.object({
9734
- kind: z6.literal("create"),
9735
- draftId: z6.string().min(1),
9736
- title: z6.string().trim().min(1),
9737
- description: z6.string().nullable(),
9738
- timezone: z6.string().trim().min(1).nullable(),
9739
- addressJson: z6.record(z6.string(), z6.unknown()),
9740
- locationJson: z6.object({ lat: z6.number(), lng: z6.number() }).nullable()
9839
+ var appointmentSetupVenueChoiceSchema = z7.discriminatedUnion("kind", [
9840
+ z7.object({ kind: z7.literal("none") }),
9841
+ z7.object({ kind: z7.literal("existing"), venueId: z7.string().min(1) }),
9842
+ z7.object({
9843
+ kind: z7.literal("create"),
9844
+ draftId: z7.string().min(1),
9845
+ title: z7.string().trim().min(1),
9846
+ description: z7.string().nullable(),
9847
+ timezone: z7.string().trim().min(1).nullable(),
9848
+ addressJson: z7.record(z7.string(), z7.unknown()),
9849
+ locationJson: z7.object({ lat: z7.number(), lng: z7.number() }).nullable()
9741
9850
  })
9742
9851
  ]);
9743
- var appointmentSetupPaymentDraftSchema = z6.object({
9744
- priceType: z6.union([z6.literal("free"), z6.literal("paid")])
9852
+ var appointmentSetupPaymentDraftSchema = z7.object({
9853
+ priceType: z7.union([z7.literal("free"), z7.literal("paid")])
9745
9854
  });
9746
- var appointmentSetupServiceAssignmentDraftSchema = z6.discriminatedUnion("kind", [
9747
- z6.object({ kind: z6.literal("all_practitioners") }),
9748
- z6.object({
9749
- kind: z6.literal("selected_practitioners"),
9750
- resourceRefs: z6.array(appointmentSetupRefSchema)
9855
+ var appointmentSetupServiceAssignmentDraftSchema = z7.discriminatedUnion("kind", [
9856
+ z7.object({ kind: z7.literal("all_practitioners") }),
9857
+ z7.object({
9858
+ kind: z7.literal("selected_practitioners"),
9859
+ resourceRefs: z7.array(appointmentSetupRefSchema)
9751
9860
  })
9752
9861
  ]);
9753
- var appointmentSetupServiceDraftSchema = z6.object({
9862
+ var appointmentSetupServiceDraftSchema = z7.object({
9754
9863
  ref: appointmentSetupRefSchema,
9755
- title: z6.string().trim().min(1),
9756
- description: z6.string().nullable(),
9757
- durationMinutes: z6.number().int().positive(),
9758
- priceAmount: z6.number().int().nonnegative().nullable(),
9759
- isActive: z6.boolean(),
9760
- locationType: z6.union([
9761
- z6.literal("virtual"),
9762
- z6.literal("in_person"),
9763
- z6.literal("hybrid")
9864
+ title: z7.string().trim().min(1),
9865
+ description: z7.string().nullable(),
9866
+ durationMinutes: z7.number().int().positive(),
9867
+ priceAmount: z7.number().int().nonnegative().nullable(),
9868
+ isActive: z7.boolean(),
9869
+ locationType: z7.union([
9870
+ z7.literal("virtual"),
9871
+ z7.literal("in_person"),
9872
+ z7.literal("hybrid")
9764
9873
  ]),
9765
9874
  venue: appointmentSetupVenueChoiceSchema,
9766
- timezone: z6.string().trim().min(1).nullable(),
9875
+ timezone: z7.string().trim().min(1).nullable(),
9767
9876
  payment: appointmentSetupPaymentDraftSchema,
9768
9877
  assignment: appointmentSetupServiceAssignmentDraftSchema
9878
+ }).superRefine((service, ctx) => {
9879
+ if (service.payment.priceType === "paid" && (service.priceAmount === null || service.priceAmount <= 0)) {
9880
+ ctx.addIssue({
9881
+ code: "custom",
9882
+ path: ["priceAmount"],
9883
+ message: "Paid appointment services need a positive price."
9884
+ });
9885
+ }
9886
+ if (service.payment.priceType === "free" && service.priceAmount !== null && service.priceAmount > 0) {
9887
+ ctx.addIssue({
9888
+ code: "custom",
9889
+ path: ["priceAmount"],
9890
+ message: "Free appointment services cannot carry a positive price."
9891
+ });
9892
+ }
9769
9893
  });
9770
- var appointmentSetupPractitionerDraftSchema = z6.object({
9894
+ var appointmentSetupPractitionerDraftSchema = z7.object({
9771
9895
  ref: appointmentSetupRefSchema,
9772
- displayName: z6.string().trim().min(1),
9773
- bio: z6.string().nullable(),
9774
- timezone: z6.string().trim().min(1),
9775
- colorHex: z6.string().nullable()
9896
+ displayName: z7.string().trim().min(1),
9897
+ bio: z7.string().nullable(),
9898
+ timezone: z7.string().trim().min(1),
9899
+ colorHex: z7.string().nullable()
9776
9900
  });
9777
- var appointmentSetupWeeklyWindowDraftSchema = z6.object({
9778
- weekday: z6.number().int().min(0).max(6),
9779
- startTime: z6.string(),
9780
- endTime: z6.string()
9901
+ var appointmentSetupWeeklyWindowDraftSchema = z7.object({
9902
+ weekday: z7.number().int().min(0).max(6),
9903
+ startTime: z7.string(),
9904
+ endTime: z7.string()
9781
9905
  });
9782
- var appointmentSetupAvailabilityDraftSchema = z6.object({
9783
- kind: z6.literal("weekly_windows"),
9906
+ var appointmentSetupAvailabilityDraftSchema = z7.object({
9907
+ kind: z7.literal("weekly_windows"),
9784
9908
  resourceRef: appointmentSetupRefSchema,
9785
9909
  serviceRef: appointmentSetupRefSchema.nullable(),
9786
- windows: z6.array(appointmentSetupWeeklyWindowDraftSchema)
9910
+ windows: z7.array(appointmentSetupWeeklyWindowDraftSchema)
9787
9911
  });
9788
9912
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
9789
9913
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
9790
- var appointmentSetupBookingNoticeSchema = z6.object({
9791
- minLeadMinutes: z6.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
9792
- maxBookingNoticeMinutes: z6.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
9914
+ var appointmentSetupBookingNoticeSchema = z7.object({
9915
+ minLeadMinutes: z7.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
9916
+ maxBookingNoticeMinutes: z7.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
9793
9917
  });
9794
- var applyAppointmentSetupRequestSchema = z6.object({
9795
- services: z6.array(appointmentSetupServiceDraftSchema),
9796
- practitioners: z6.array(appointmentSetupPractitionerDraftSchema),
9797
- availability: z6.array(appointmentSetupAvailabilityDraftSchema),
9918
+ var applyAppointmentSetupRequestSchema = z7.object({
9919
+ services: z7.array(appointmentSetupServiceDraftSchema),
9920
+ practitioners: z7.array(appointmentSetupPractitionerDraftSchema),
9921
+ availability: z7.array(appointmentSetupAvailabilityDraftSchema),
9798
9922
  bookingNotice: appointmentSetupBookingNoticeSchema
9799
9923
  });
9800
9924
 
@@ -9827,24 +9951,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
9827
9951
  ];
9828
9952
 
9829
9953
  // ../api/src/siteBanner.ts
9830
- import { z as z7 } from "zod";
9954
+ import { z as z8 } from "zod";
9831
9955
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
9832
9956
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
9833
9957
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
9834
9958
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
9835
- var siteBannerScopeSchema = z7.enum(SITE_BANNER_SCOPE_VALUES);
9836
- var siteBannerToneSchema = z7.enum(SITE_BANNER_TONE_VALUES);
9837
- var siteBannerBodySchema = z7.unknown().transform(unwrapRichTextValue);
9838
- var siteBannerCtaSchema = z7.object({
9839
- label: z7.string().trim().min(1),
9959
+ var siteBannerScopeSchema = z8.enum(SITE_BANNER_SCOPE_VALUES);
9960
+ var siteBannerToneSchema = z8.enum(SITE_BANNER_TONE_VALUES);
9961
+ var siteBannerBodySchema = z8.unknown().transform(unwrapRichTextValue);
9962
+ var siteBannerCtaSchema = z8.object({
9963
+ label: z8.string().trim().min(1),
9840
9964
  link: linkPayloadSchema
9841
9965
  });
9842
- var siteBannerSettingsSchema = z7.discriminatedUnion("enabled", [
9843
- z7.object({
9844
- enabled: z7.literal(false)
9966
+ var siteBannerSettingsSchema = z8.discriminatedUnion("enabled", [
9967
+ z8.object({
9968
+ enabled: z8.literal(false)
9845
9969
  }),
9846
- z7.object({
9847
- enabled: z7.literal(true),
9970
+ z8.object({
9971
+ enabled: z8.literal(true),
9848
9972
  scope: siteBannerScopeSchema,
9849
9973
  tone: siteBannerToneSchema,
9850
9974
  body: siteBannerBodySchema,
@@ -9858,7 +9982,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
9858
9982
  const analysis = analyzeSiteBannerBody(value.body);
9859
9983
  for (const issue of analysis.issues) {
9860
9984
  ctx.addIssue({
9861
- code: z7.ZodIssueCode.custom,
9985
+ code: z8.ZodIssueCode.custom,
9862
9986
  path: ["body"],
9863
9987
  message: siteBannerBodyIssueMessage(issue)
9864
9988
  });
@@ -10047,71 +10171,71 @@ function collectText(node) {
10047
10171
  }
10048
10172
 
10049
10173
  // ../api/src/aiPlayground.ts
10050
- import { z as z8 } from "zod";
10051
- var Rfc6902PatchOp = z8.discriminatedUnion("op", [
10174
+ import { z as z9 } from "zod";
10175
+ var Rfc6902PatchOp = z9.discriminatedUnion("op", [
10052
10176
  // Standard RFC-6902 operations
10053
- z8.object({
10054
- op: z8.literal("add"),
10055
- path: z8.string(),
10056
- value: z8.unknown()
10177
+ z9.object({
10178
+ op: z9.literal("add"),
10179
+ path: z9.string(),
10180
+ value: z9.unknown()
10057
10181
  }),
10058
- z8.object({
10059
- op: z8.literal("remove"),
10060
- path: z8.string()
10182
+ z9.object({
10183
+ op: z9.literal("remove"),
10184
+ path: z9.string()
10061
10185
  }),
10062
- z8.object({
10063
- op: z8.literal("replace"),
10064
- path: z8.string(),
10065
- value: z8.unknown()
10186
+ z9.object({
10187
+ op: z9.literal("replace"),
10188
+ path: z9.string(),
10189
+ value: z9.unknown()
10066
10190
  }),
10067
- z8.object({
10068
- op: z8.literal("move"),
10069
- from: z8.string(),
10070
- path: z8.string()
10191
+ z9.object({
10192
+ op: z9.literal("move"),
10193
+ from: z9.string(),
10194
+ path: z9.string()
10071
10195
  }),
10072
- z8.object({
10073
- op: z8.literal("copy"),
10074
- from: z8.string(),
10075
- path: z8.string()
10196
+ z9.object({
10197
+ op: z9.literal("copy"),
10198
+ from: z9.string(),
10199
+ path: z9.string()
10076
10200
  }),
10077
10201
  // Block-level operations (Phase 2)
10078
- z8.object({
10079
- op: z8.literal("add_block"),
10080
- blockKind: z8.string(),
10081
- afterBlockId: z8.string().nullable(),
10082
- content: z8.record(z8.string(), z8.unknown()),
10083
- rationale: z8.string()
10202
+ z9.object({
10203
+ op: z9.literal("add_block"),
10204
+ blockKind: z9.string(),
10205
+ afterBlockId: z9.string().nullable(),
10206
+ content: z9.record(z9.string(), z9.unknown()),
10207
+ rationale: z9.string()
10084
10208
  }),
10085
- z8.object({
10086
- op: z8.literal("delete_block"),
10087
- blockId: z8.string(),
10088
- rationale: z8.string()
10209
+ z9.object({
10210
+ op: z9.literal("delete_block"),
10211
+ blockId: z9.string(),
10212
+ rationale: z9.string()
10089
10213
  }),
10090
- z8.object({
10091
- op: z8.literal("reorder_block"),
10092
- blockId: z8.string(),
10093
- afterBlockId: z8.string().nullable(),
10094
- rationale: z8.string()
10214
+ z9.object({
10215
+ op: z9.literal("reorder_block"),
10216
+ blockId: z9.string(),
10217
+ afterBlockId: z9.string().nullable(),
10218
+ rationale: z9.string()
10095
10219
  })
10096
10220
  ]);
10097
- var PlaygroundProposeRequest = z8.object({
10098
- request: z8.string().min(1).max(2e3)
10221
+ var PlaygroundProposeRequest = z9.object({
10222
+ request: z9.string().min(1).max(2e3)
10099
10223
  });
10100
- var MultiPagePatchEnvelope = z8.object({
10101
- pageId: z8.string(),
10102
- blockId: z8.string().optional(),
10224
+ var MultiPagePatchEnvelope = z9.object({
10225
+ pageId: z9.string(),
10226
+ blockId: z9.string().optional(),
10103
10227
  // Not present for page-level ops
10104
- blockKind: z8.string().optional(),
10105
- blockPurpose: z8.string().optional().nullable(),
10106
- ops: z8.array(Rfc6902PatchOp),
10107
- rationale: z8.string(),
10108
- currentContent: z8.record(z8.string(), z8.unknown()).optional()
10228
+ blockKind: z9.string().optional(),
10229
+ blockPurpose: z9.string().optional().nullable(),
10230
+ ops: z9.array(Rfc6902PatchOp),
10231
+ rationale: z9.string(),
10232
+ currentContent: z9.record(z9.string(), z9.unknown()).optional()
10109
10233
  });
10110
- var MultiPageUpdateResponse = z8.object({
10111
- patches: z8.array(MultiPagePatchEnvelope),
10112
- assistantMessage: z8.string(),
10113
- pagesModified: z8.number(),
10114
- toolCallsUsed: z8.number()
10234
+ var MultiPageUpdateResponse = z9.object({
10235
+ patches: z9.array(MultiPagePatchEnvelope),
10236
+ assistantMessage: z9.string(),
10237
+ pagesModified: z9.number(),
10238
+ toolCallsUsed: z9.number()
10115
10239
  });
10116
10240
 
10117
10241
  // src/public-api/runtime.ts