@riverbankcms/sdk 0.67.0 → 0.70.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 (450) hide show
  1. package/README.md +21 -11
  2. package/dist/_dts/api/src/accessAdmin.d.ts +3 -3
  3. package/dist/_dts/api/src/admin/types.d.ts +1 -1
  4. package/dist/_dts/api/src/aiPlayground.d.ts +13 -39
  5. package/dist/_dts/api/src/appointmentSetup.d.ts +4 -0
  6. package/dist/_dts/api/src/billing.d.ts +7 -40
  7. package/dist/_dts/api/src/bookingConfig.d.ts +2 -2
  8. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -1
  9. package/dist/_dts/api/src/bookingOperations.d.ts +32 -1
  10. package/dist/_dts/api/src/bookingRecords.d.ts +1 -1
  11. package/dist/_dts/api/src/bookings.d.ts +1 -1
  12. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +1 -1
  13. package/dist/_dts/api/src/communications.d.ts +1 -1
  14. package/dist/_dts/api/src/contentRuntime.d.ts +2 -2
  15. package/dist/_dts/api/src/contentTypes.d.ts +1 -1
  16. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  17. package/dist/_dts/api/src/navigation/contracts.d.ts +9 -9
  18. package/dist/_dts/api/src/navigation/linkValue.d.ts +1 -1
  19. package/dist/_dts/api/src/navigation/types.d.ts +1 -1
  20. package/dist/_dts/api/src/public/index.d.ts +2 -2
  21. package/dist/_dts/api/src/public/types.d.ts +3 -3
  22. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +1 -2
  23. package/dist/_dts/api/src/sdkContracts.d.ts +1 -1
  24. package/dist/_dts/api/src/siteBanner.d.ts +9 -9
  25. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -2
  26. package/dist/_dts/api/src/siteOnboarding.d.ts +1 -1
  27. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
  28. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +5 -5
  29. package/dist/_dts/api/src/siteSettings.d.ts +3 -3
  30. package/dist/_dts/api/src/teamMembers.d.ts +1 -1
  31. package/dist/_dts/api/src/types.d.ts +1 -1
  32. package/dist/_dts/api/src/url.d.ts +1 -1
  33. package/dist/_dts/billing/src/components/index.d.ts +484 -0
  34. package/dist/_dts/block-form/src/backend/store-backend.d.ts +1 -1
  35. package/dist/_dts/block-form/src/backend/types.d.ts +2 -2
  36. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +2 -2
  37. package/dist/_dts/block-form/src/context/ImageResolveContext.d.ts +1 -1
  38. package/dist/_dts/block-form/src/fields/types.d.ts +1 -1
  39. package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +1 -1
  40. package/dist/_dts/block-form/src/manifest/canonicalValidation.d.ts +1 -1
  41. package/dist/_dts/block-form/src/manifest/manifestFormAdapter.d.ts +1 -1
  42. package/dist/_dts/block-form/src/manifest/mergeManifestWithSdkOptions.d.ts +1 -1
  43. package/dist/_dts/block-form/src/sdk-config/SdkConfigContext.d.ts +1 -1
  44. package/dist/_dts/block-form/src/shared/disclosure.d.ts +1 -1
  45. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +1 -1
  46. package/dist/_dts/block-form/src/widgets/DateField/datePickerPopover.d.ts +1 -1
  47. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterLayoutGrid.d.ts +1 -1
  48. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +1 -1
  49. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +1 -1
  50. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +1 -1
  51. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterPresentation.d.ts +1 -1
  52. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +1 -1
  53. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldSchema.d.ts +4 -4
  54. package/dist/_dts/block-form/src/widgets/constants.d.ts +1 -1
  55. package/dist/_dts/blocks/src/PageRenderer.d.ts +5 -1
  56. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  57. package/dist/_dts/blocks/src/client.d.ts +11 -3
  58. package/dist/_dts/blocks/src/index.d.ts +28 -27
  59. package/dist/_dts/blocks/src/portal/types.d.ts +1 -1
  60. package/dist/_dts/blocks/src/primitives/content/components/Button.d.ts +1 -1
  61. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  62. package/dist/_dts/blocks/src/server.d.ts +1 -1
  63. package/dist/_dts/blocks/src/structure/schema.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1665 -1665
  65. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +1666 -1666
  66. package/dist/_dts/blocks/src/system/blocks/blog-post.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +1665 -1665
  68. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +1665 -1665
  69. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +1666 -1666
  70. package/dist/_dts/blocks/src/system/blocks/columns.d.ts +1 -1
  71. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +3 -2
  72. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +42 -42
  73. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +1761 -1761
  74. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +2 -2
  75. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +1764 -1764
  76. package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -1
  77. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +44 -44
  78. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -1
  79. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +1665 -1665
  80. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +1 -1
  81. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +1665 -1665
  82. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +1 -1
  83. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -1
  84. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +9 -9
  85. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +139 -139
  86. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +1665 -1665
  87. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +1665 -1665
  88. package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +19 -19
  89. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +1665 -1665
  90. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -3
  91. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +1 -1
  92. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +1 -1
  93. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -1
  94. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  95. package/dist/_dts/blocks/src/system/customize/facets.d.ts +5 -5
  96. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +1 -1
  97. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +1 -1
  98. package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +1761 -1761
  99. package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +1761 -1761
  100. package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +1761 -1761
  101. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +1761 -1761
  102. package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +1761 -1761
  103. package/dist/_dts/blocks/src/system/frame/frameStyles.d.ts +3 -3
  104. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +2 -2
  105. package/dist/_dts/blocks/src/system/manifest/augmentManifest.d.ts +1 -1
  106. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +201 -201
  107. package/dist/_dts/blocks/src/system/media/constrainedVideoMedia.d.ts +1 -1
  108. package/dist/_dts/blocks/src/system/media/slotContracts.d.ts +1 -1
  109. package/dist/_dts/blocks/src/system/node/fragments/ctaButton.d.ts +1 -1
  110. package/dist/_dts/blocks/src/system/node/fragments/typography.d.ts +1 -1
  111. package/dist/_dts/blocks/src/system/node/schema.d.ts +5 -5
  112. package/dist/_dts/blocks/src/system/registry.d.ts +2 -2
  113. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +1 -1
  114. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
  115. package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +1 -1
  116. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.d.ts +1 -0
  117. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +3 -1
  118. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +140 -0
  119. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -0
  120. package/dist/_dts/blocks/src/system/runtime/hooks/useVisibleTabPolling.d.ts +10 -0
  121. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.d.ts +1 -1
  122. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.server.d.ts +1 -1
  123. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -1
  124. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.default-ui.d.ts +8 -0
  125. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +500 -0
  126. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +27 -0
  127. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +15 -8
  128. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -1
  129. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +3 -3
  130. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.shared.d.ts +1 -1
  131. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +1 -1
  132. package/dist/_dts/blocks/src/system/runtime/nodes/shared/LeafletStaticMap.d.ts +1 -1
  133. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +6 -6
  134. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptionCopy.d.ts +1 -1
  135. package/dist/_dts/blocks/src/system/theme/index.d.ts +1 -1
  136. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -1
  137. package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
  138. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +3 -3
  139. package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
  140. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +3 -3
  141. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +3 -3
  142. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +2 -2
  143. package/dist/_dts/content-editor/src/controller/buildPublishSuccessTransition.d.ts +2 -2
  144. package/dist/_dts/content-editor/src/controller/deriveRecoveryConflict.d.ts +1 -1
  145. package/dist/_dts/content-editor/src/controller/invalidBlockRecovery.d.ts +1 -1
  146. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
  147. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +1 -1
  148. package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +3 -3
  149. package/dist/_dts/content-editor/src/controller/useInvalidBlockRecovery.d.ts +1 -1
  150. package/dist/_dts/content-editor/src/hooks/blockedPublishPlan.d.ts +1 -1
  151. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
  152. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +2 -2
  153. package/dist/_dts/content-editor/src/hooks/useStoreAutosave.d.ts +1 -1
  154. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +1 -1
  155. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
  156. package/dist/_dts/content-editor/src/primitives/PreviewTextEditor.d.ts +1 -1
  157. package/dist/_dts/content-editor/src/registry.d.ts +1 -1
  158. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +2 -2
  159. package/dist/_dts/content-editor/src/types.d.ts +2 -2
  160. package/dist/_dts/content-editor/src/ui/blockValidationView.d.ts +3 -3
  161. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +1 -1
  162. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -1
  163. package/dist/_dts/content-editor/src/ui/stores/utils.d.ts +1 -1
  164. package/dist/_dts/content-model/src/content-types/schema.d.ts +8 -8
  165. package/dist/_dts/core/src/branded.d.ts +2 -0
  166. package/dist/_dts/core/src/index.d.ts +2 -0
  167. package/dist/_dts/core/src/planner.d.ts +64 -0
  168. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +17 -18
  169. package/dist/_dts/db/src/schemas/forms.d.ts +62 -62
  170. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +5 -5
  171. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +5 -5
  172. package/dist/_dts/editor-blocks/src/FormProvider.d.ts +2 -2
  173. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +6 -6
  174. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +3 -3
  175. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -2
  176. package/dist/_dts/editor-blocks/src/block-editor/BlockListContext.d.ts +2 -2
  177. package/dist/_dts/editor-blocks/src/block-editor/BlockPickerDialog.d.ts +1 -1
  178. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +2 -2
  179. package/dist/_dts/editor-blocks/src/block-editor/BlockThumbnail.d.ts +1 -1
  180. package/dist/_dts/editor-blocks/src/block-editor/BlockTile.d.ts +1 -1
  181. package/dist/_dts/editor-blocks/src/block-editor/EnhancedBlockPickerDialog.d.ts +1 -1
  182. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +3 -3
  183. package/dist/_dts/editor-blocks/src/block-editor/blockDiscovery.d.ts +1 -1
  184. package/dist/_dts/editor-blocks/src/block-editor/hooks/buildInsertBlockHistoryCommand.d.ts +1 -1
  185. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +1 -1
  186. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +3 -3
  187. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -2
  188. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -2
  189. package/dist/_dts/editor-blocks/src/block-editor/hooks/useDraftContent.d.ts +1 -1
  190. package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +2 -2
  191. package/dist/_dts/editor-blocks/src/block-editor/sdkBlockMerger.d.ts +3 -3
  192. package/dist/_dts/editor-blocks/src/block-editor/settingsIntent.d.ts +1 -1
  193. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -1
  194. package/dist/_dts/editor-blocks/src/block-form/debug.d.ts +1 -1
  195. package/dist/_dts/editor-blocks/src/blockPayload.d.ts +2 -2
  196. package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
  197. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +6 -6
  198. package/dist/_dts/editor-blocks/src/widgets/button/ButtonField.d.ts +1 -1
  199. package/dist/_dts/editor-blocks/src/widgets/button/ButtonVariantField.d.ts +1 -1
  200. package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +1 -1
  201. package/dist/_dts/editor-blocks/src/widgets/button/index.d.ts +1 -1
  202. package/dist/_dts/editor-blocks/src/widgets/content-type-select/ContentTypeSelectField.d.ts +1 -1
  203. package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerField.d.ts +1 -1
  204. package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerWidgetProvider.d.ts +1 -1
  205. package/dist/_dts/editor-blocks/src/widgets/entry-picker/index.d.ts +1 -1
  206. package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +2 -2
  207. package/dist/_dts/editor-blocks/src/widgets/entry-picker/types.d.ts +2 -2
  208. package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
  209. package/dist/_dts/editor-blocks/src/widgets/link/LinkField.d.ts +2 -2
  210. package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +3 -3
  211. package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +1 -1
  212. package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +1 -1
  213. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +3 -3
  214. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -2
  215. package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +3 -3
  216. package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +2 -2
  217. package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +2 -2
  218. package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceField.d.ts +2 -2
  219. package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceWidgetProvider.d.ts +1 -1
  220. package/dist/_dts/editor-blocks/src/widgets/reference/dynamicAdapters.d.ts +1 -1
  221. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +3 -3
  222. package/dist/_dts/editor-blocks/src/widgets/reference/types.d.ts +3 -3
  223. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
  224. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextWidgetProvider.d.ts +1 -1
  225. package/dist/_dts/editor-blocks/src/widgets/rich-text/ensureRichTextImageAssetIdentifier.d.ts +1 -1
  226. package/dist/_dts/editor-blocks/src/widgets/rich-text/richTextImageHydration.d.ts +1 -1
  227. package/dist/_dts/editor-blocks/src/widgets/shared/Combobox.d.ts +1 -1
  228. package/dist/_dts/media-core/src/fileAssetCompatibility.d.ts +1 -1
  229. package/dist/_dts/media-core/src/fileAssetDeletion.d.ts +1 -1
  230. package/dist/_dts/media-core/src/fileDomain.d.ts +1 -1
  231. package/dist/_dts/media-core/src/fileDownloadResolution.d.ts +1 -1
  232. package/dist/_dts/media-core/src/filePersistence.d.ts +1 -1
  233. package/dist/_dts/media-core/src/fileStorage.d.ts +1 -1
  234. package/dist/_dts/media-core/src/fileUploadAssetBuilder.d.ts +1 -1
  235. package/dist/_dts/media-core/src/fileUploadCleanup.d.ts +1 -1
  236. package/dist/_dts/media-core/src/fileUploadCompletion.d.ts +1 -1
  237. package/dist/_dts/media-core/src/fileUploadDurableFinalization.d.ts +1 -1
  238. package/dist/_dts/media-core/src/fileUploadFinalization.d.ts +1 -1
  239. package/dist/_dts/media-core/src/fileUploadSessionCreation.d.ts +1 -1
  240. package/dist/_dts/media-core/src/types.d.ts +2 -2
  241. package/dist/_dts/media-core/src/url.d.ts +1 -1
  242. package/dist/_dts/media-core/src/videoPrep.d.ts +1 -1
  243. package/dist/_dts/media-editor/src/CropDialog.d.ts +1 -1
  244. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -2
  245. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +1 -1
  246. package/dist/_dts/media-editor/src/context.d.ts +3 -3
  247. package/dist/_dts/media-editor/src/createMediaEditorProvider.d.ts +1 -1
  248. package/dist/_dts/media-editor/src/cropEditorSource.d.ts +1 -1
  249. package/dist/_dts/media-editor/src/debug.d.ts +1 -1
  250. package/dist/_dts/media-editor/src/provider.d.ts +3 -3
  251. package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +1 -1
  252. package/dist/_dts/media-editor/src/transformModel.d.ts +1 -1
  253. package/dist/_dts/media-editor/src/types.d.ts +2 -2
  254. package/dist/_dts/media-editor/src/utils.d.ts +1 -1
  255. package/dist/_dts/media-react/src/components/ImageCropper.d.ts +1 -1
  256. package/dist/_dts/media-react/src/components/cropDraftModel.d.ts +1 -1
  257. package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -1
  258. package/dist/_dts/media-react/src/components/cropSessionState.d.ts +1 -1
  259. package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -1
  260. package/dist/_dts/media-react/src/ffmpegLoader.d.ts +1 -1
  261. package/dist/_dts/media-react/src/hooks/internal/classification.d.ts +1 -1
  262. package/dist/_dts/media-react/src/hooks/mediaAssetResponseMapper.d.ts +1 -1
  263. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +4 -4
  264. package/dist/_dts/media-react/src/utils/rotation.d.ts +1 -1
  265. package/dist/_dts/media-react/src/videoFrameExtraction.d.ts +1 -1
  266. package/dist/_dts/media-react/src/videoPrepBrowser.d.ts +2 -2
  267. package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +1 -1
  268. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +1 -1
  269. package/dist/_dts/preview-next/src/client/blocks/composer/composePageFromBlocks.d.ts +1 -1
  270. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +2 -2
  271. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -3
  272. package/dist/_dts/preview-next/src/client/blocks/customizeFacetControls.d.ts +2 -2
  273. package/dist/_dts/preview-next/src/client/blocks/editorRegistry.d.ts +1 -1
  274. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +2 -2
  275. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +2 -2
  276. package/dist/_dts/preview-next/src/client/blocks/previewProjection/aiProposalProjection.d.ts +2 -2
  277. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +2 -2
  278. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  279. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +3 -3
  280. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +5 -5
  281. package/dist/_dts/preview-next/src/client/preview/OnboardingThemeSwitcher.d.ts +2 -2
  282. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +5 -5
  283. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +1 -1
  284. package/dist/_dts/preview-next/src/client/preview/PreviewAuthBanner.d.ts +1 -1
  285. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +9 -9
  286. package/dist/_dts/preview-next/src/client/preview/PreviewEditorUI.d.ts +2 -2
  287. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +2 -2
  288. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +8 -8
  289. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +8 -8
  290. package/dist/_dts/preview-next/src/client/preview/PreviewViewportControls.d.ts +1 -1
  291. package/dist/_dts/preview-next/src/client/preview/PreviewZoomControls.d.ts +1 -1
  292. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +5 -5
  293. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -5
  294. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +4 -4
  295. package/dist/_dts/preview-next/src/client/preview/pageSchema.d.ts +1 -1
  296. package/dist/_dts/preview-next/src/client/preview/previewChromeSurface.d.ts +1 -1
  297. package/dist/_dts/preview-next/src/client/preview/previewChromeSurfacePolicy.d.ts +1 -1
  298. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +3 -3
  299. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -2
  300. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +1 -1
  301. package/dist/_dts/preview-next/src/client/preview/previewSurface.d.ts +1 -1
  302. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +1 -1
  303. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +2 -2
  304. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +4 -4
  305. package/dist/_dts/preview-next/src/client/preview/subrouteNotice.d.ts +1 -1
  306. package/dist/_dts/preview-next/src/client/preview/themeOverlay.d.ts +1 -1
  307. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -2
  308. package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +2 -2
  309. package/dist/_dts/preview-next/src/client/widgets/widgetAdapters.d.ts +3 -3
  310. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -3
  311. package/dist/_dts/sdk/src/bookings/index.d.ts +6 -2
  312. package/dist/_dts/sdk/src/bookings/types.d.ts +16 -8
  313. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +32 -0
  314. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +5 -1
  315. package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -1
  316. package/dist/_dts/sdk/src/cli/env.d.ts +1 -1
  317. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +1 -1
  318. package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
  319. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +1 -1
  320. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +43 -13
  321. package/dist/_dts/sdk/src/cli/site-commands/commandRuntimeCompat.d.ts +21 -0
  322. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +27 -0
  323. package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +56 -0
  324. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +5 -3
  325. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +9 -3
  326. package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +6 -10
  327. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +1 -0
  328. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +6 -10
  329. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +6 -10
  330. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +14 -68
  331. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionPlan.d.ts +8 -0
  332. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +97 -0
  333. package/dist/_dts/sdk/src/cli/site-commands/residualSettingsTrimming.d.ts +15 -0
  334. package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -0
  335. package/dist/_dts/sdk/src/cli/sync/syncResultAggregation.d.ts +4 -0
  336. package/dist/_dts/sdk/src/config/validation.d.ts +37 -43
  337. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -1
  338. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +19 -19
  339. package/dist/_dts/sdk/src/portal/config.d.ts +1 -1
  340. package/dist/_dts/sdk/src/portal/index.d.ts +1 -1
  341. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  342. package/dist/_dts/sdk/src/preview-next/client/runtime.d.ts +1 -1
  343. package/dist/_dts/sdk/src/preview-next/constants.d.ts +1 -1
  344. package/dist/_dts/sdk/src/preview-next/cookies.d.ts +1 -1
  345. package/dist/_dts/sdk/src/preview-next/index.d.ts +2 -2
  346. package/dist/_dts/sdk/src/preview-next/middleware.d.ts +1 -1
  347. package/dist/_dts/sdk/src/preview-next/session.d.ts +1 -1
  348. package/dist/_dts/sdk/src/public-api/contracts.d.ts +18 -4
  349. package/dist/_dts/sdk/src/rendering/islands/blocksContracts.d.ts +1 -1
  350. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +3 -3
  351. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
  352. package/dist/_dts/sdk/src/spam-protection/index.d.ts +3 -3
  353. package/dist/_dts/sdk/src/theme-bridge/ThemeBridgeProvider.d.ts +6 -6
  354. package/dist/_dts/sdk/src/theme-bridge/generateCssVars.d.ts +4 -12
  355. package/dist/_dts/sdk/src/theme-bridge/index.d.ts +1 -1
  356. package/dist/_dts/sdk/src/theme-bridge/types.d.ts +17 -9
  357. package/dist/_dts/sdk/src/version.d.ts +1 -1
  358. package/dist/_dts/site-commands/src/adapter.d.ts +1 -1
  359. package/dist/_dts/site-commands/src/commands.d.ts +292 -34
  360. package/dist/_dts/site-commands/src/domain.d.ts +3 -3
  361. package/dist/_dts/site-commands/src/exposure.d.ts +3 -3
  362. package/dist/_dts/site-commands/src/index.d.ts +1 -0
  363. package/dist/_dts/site-commands/src/metadata.d.ts +79 -1
  364. package/dist/_dts/site-commands/src/planner.d.ts +1 -1
  365. package/dist/_dts/site-commands/src/refContributions.d.ts +1 -0
  366. package/dist/_dts/site-commands/src/refs.d.ts +8 -2
  367. package/dist/_dts/{sdk/src/cli/merge-remote → site-commands/src}/stableJson.d.ts +2 -0
  368. package/dist/_dts/theme-core/src/accordions/types.d.ts +9 -9
  369. package/dist/_dts/theme-core/src/blocks/index.d.ts +2 -2
  370. package/dist/_dts/theme-core/src/blocks/types.d.ts +3 -2
  371. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +5 -5
  372. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +5 -5
  373. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +5 -5
  374. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +35 -35
  375. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +5 -5
  376. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +5 -5
  377. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +5 -5
  378. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +5 -5
  379. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +7 -7
  380. package/dist/_dts/theme-core/src/buttons/types.d.ts +18 -18
  381. package/dist/_dts/theme-core/src/cards/types.d.ts +17 -17
  382. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  383. package/dist/_dts/theme-core/src/index.d.ts +1 -1
  384. package/dist/_dts/theme-core/src/inputs/types.d.ts +13 -13
  385. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  386. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +351 -351
  387. package/dist/_dts/theme-core/src/navigation/types.d.ts +15 -15
  388. package/dist/_dts/theme-core/src/palette/recipes/allRecipes.d.ts +1 -1
  389. package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +24 -24
  390. package/dist/_dts/theme-core/src/palette/variants/high-contrast.d.ts +18 -18
  391. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +65 -65
  392. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +18 -18
  393. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +7 -7
  394. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +18 -18
  395. package/dist/_dts/theme-core/src/progress/generateProgressCss.d.ts +2 -1
  396. package/dist/_dts/theme-core/src/recommend/generateThemes.d.ts +1 -1
  397. package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +32 -21
  398. package/dist/_dts/theme-core/src/schema.d.ts +568 -568
  399. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +2 -2
  400. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +1 -1
  401. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +1 -1
  402. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +34 -34
  403. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
  404. package/dist/_dts/theme-core/src/site-styles/pageDesignAuthority.d.ts +1 -1
  405. package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +1 -1
  406. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +14 -14
  407. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  408. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +4 -4
  409. package/dist/_dts/theme-core/src/status/generateStatusCss.d.ts +2 -1
  410. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +5 -5
  411. package/dist/_dts/ui/src/badge.d.ts +1 -1
  412. package/dist/_dts/ui/src/button.d.ts +2 -2
  413. package/dist/_dts/ui/src/card.d.ts +1 -1
  414. package/dist/_dts/ui/src/color-picker.d.ts +1 -1
  415. package/dist/_dts/ui/src/surface.d.ts +2 -2
  416. package/dist/_dts/ui/src/toggle.d.ts +4 -4
  417. package/dist/cli/index.mjs +5910 -4824
  418. package/dist/client/bookings.mjs +5149 -3320
  419. package/dist/client/client.mjs +11643 -11031
  420. package/dist/client/hooks.mjs +5764 -3868
  421. package/dist/client/rendering/client.mjs +4317 -3724
  422. package/dist/client/rendering/islands.mjs +4087 -3494
  423. package/dist/client/rendering.mjs +4499 -3885
  424. package/dist/preview-next/before-render.mjs +14 -0
  425. package/dist/preview-next/client/runtime.mjs +2927 -2292
  426. package/dist/preview-next/middleware.mjs +14 -0
  427. package/dist/server/components.mjs +536 -368
  428. package/dist/server/config-validation.mjs +6886 -4910
  429. package/dist/server/config.mjs +6876 -4909
  430. package/dist/server/data.mjs +5764 -3868
  431. package/dist/server/index.mjs +174 -1762
  432. package/dist/server/next.mjs +6393 -5024
  433. package/dist/server/prebuild.mjs +1 -1
  434. package/dist/server/rendering/server.mjs +540 -370
  435. package/dist/server/rendering.mjs +540 -370
  436. package/dist/server/routing.mjs +10389 -6835
  437. package/dist/server/server.mjs +5701 -3805
  438. package/dist/server/theme-bridge.mjs +1558 -4902
  439. package/dist/styles/index.css +38 -38
  440. package/package.json +1 -3
  441. package/dist/_dts/blocks/src/system/runtime/components/booking/DateTimeSelectionStep.d.ts +0 -18
  442. package/dist/_dts/blocks/src/system/runtime/components/booking/PaymentOptionSelectionStep.d.ts +0 -9
  443. package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceResourceSelector.d.ts +0 -44
  444. package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceResourceSelector.state.d.ts +0 -23
  445. package/dist/_dts/blocks/src/system/runtime/components/booking/ServiceSelectionStep.d.ts +0 -18
  446. package/dist/_dts/blocks/src/system/runtime/components/booking/slotDisplay.d.ts +0 -2
  447. package/dist/_dts/blocks/src/system/runtime/components/multi-step/MultiStepForm.d.ts +0 -21
  448. package/dist/_dts/blocks/src/system/runtime/components/multi-step/useMultiStep.d.ts +0 -15
  449. package/dist/_dts/blocks/src/system/runtime/components/multi-step/useMultiStep.state.d.ts +0 -51
  450. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSteps.d.ts +0 -22
@@ -371,6 +371,23 @@ function toLocationCoordinates(value) {
371
371
  };
372
372
  }
373
373
 
374
+ // ../core/src/planner.ts
375
+ var systemPlanningClock = {
376
+ now: () => Date.now()
377
+ };
378
+ function resolvePlanningNowDate(input = {}) {
379
+ if (input.now !== void 0) {
380
+ return input.now;
381
+ }
382
+ return new Date((input.clock ?? systemPlanningClock).now());
383
+ }
384
+ function resolvePlanningDateInput(input = {}) {
385
+ if (input instanceof Date) {
386
+ return input;
387
+ }
388
+ return resolvePlanningNowDate(input);
389
+ }
390
+
374
391
  // ../media-core/src/typeGuards.ts
375
392
  function isRecord(value) {
376
393
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
@@ -18917,7 +18934,7 @@ function toExactOrFreeDisplay(amount, currency) {
18917
18934
  }
18918
18935
  return { kind: "exact", amount, currency };
18919
18936
  }
18920
- function getSelectableCoursePricingOptions(course, now = /* @__PURE__ */ new Date()) {
18937
+ function getSelectableCoursePricingOptionsForNow(course, now) {
18921
18938
  if (!course.pricing || course.pricing.pricingStrategy !== "tiered") {
18922
18939
  return [];
18923
18940
  }
@@ -18931,7 +18948,7 @@ function getSelectableCoursePricingOptions(course, now = /* @__PURE__ */ new Dat
18931
18948
  return left.name.localeCompare(right.name);
18932
18949
  });
18933
18950
  }
18934
- function resolveCoursePricingState(course, selectedPricingOptionId, now = /* @__PURE__ */ new Date()) {
18951
+ function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {}) {
18935
18952
  const currency = course.pricing?.currency ?? course.currency;
18936
18953
  if (!course.pricing) {
18937
18954
  const legacyAmount = course.priceCents ?? 0;
@@ -18975,7 +18992,10 @@ function resolveCoursePricingState(course, selectedPricingOptionId, now = /* @__
18975
18992
  };
18976
18993
  }
18977
18994
  case "tiered": {
18978
- const selectableOptions = getSelectableCoursePricingOptions(course, now);
18995
+ const selectableOptions = getSelectableCoursePricingOptionsForNow(
18996
+ course,
18997
+ resolvePlanningDateInput(nowInput)
18998
+ );
18979
18999
  const selectedOption = (selectedPricingOptionId ? selectableOptions.find((option) => option.id === selectedPricingOptionId) : null) ?? (selectableOptions.length === 1 ? selectableOptions[0] ?? null : null);
18980
19000
  const lowestAmount = selectableOptions.reduce((lowest, option) => {
18981
19001
  if (lowest === null || option.priceAmount < lowest) {
@@ -30032,16 +30052,18 @@ function toTrimmedString(value) {
30032
30052
  return trimmed ? trimmed : void 0;
30033
30053
  }
30034
30054
  function normalizeBookingFormConfig(form2) {
30035
- if (!form2) return null;
30055
+ if (!isRecord4(form2)) return null;
30056
+ const id = readNonEmptyString(form2.id);
30057
+ const name = readNonEmptyString(form2.name);
30058
+ if (!id || !name) return null;
30059
+ const schemaSource = isRecord4(form2.schema) ? form2.schema : isRecord4(form2.schemaJson) ? form2.schemaJson : null;
30060
+ const settingsSource = isRecord4(form2.settings) ? form2.settings : isRecord4(form2.settingsJson) ? form2.settingsJson : null;
30036
30061
  return {
30037
- id: form2.id,
30038
- name: form2.name,
30039
- slug: "",
30040
- settings: form2.settingsJson,
30041
- schema: form2.schemaJson ? {
30042
- version: form2.schemaJson.version,
30043
- fields: form2.schemaJson.fields ?? []
30044
- } : void 0
30062
+ id,
30063
+ name,
30064
+ slug: typeof form2.slug === "string" ? form2.slug : "",
30065
+ settings: normalizeBookingSettings(settingsSource),
30066
+ schema: normalizeBookingSchema(schemaSource)
30045
30067
  };
30046
30068
  }
30047
30069
  function normalizeBookingServices(services) {
@@ -30057,12 +30079,106 @@ function normalizeBookingServices(services) {
30057
30079
  return [];
30058
30080
  }
30059
30081
  if (Array.isArray(services)) {
30060
- return services.map(normalizeService);
30082
+ return services.filter(isBookingFormService).map(normalizeService);
30083
+ }
30084
+ if (isRecord4(services) && "services" in services) {
30085
+ return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
30061
30086
  }
30062
- if ("services" in services) {
30063
- return Array.isArray(services.services) ? services.services.map(normalizeService) : [];
30087
+ return isRecord4(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
30088
+ }
30089
+ function normalizeBookingSchema(value) {
30090
+ if (!value) return void 0;
30091
+ const rawFields = Array.isArray(value.fields) ? value.fields : [];
30092
+ const fields3 = rawFields.map(readBookingFormField).filter((field) => field !== null);
30093
+ return {
30094
+ version: typeof value.version === "string" ? value.version : void 0,
30095
+ fields: fields3
30096
+ };
30097
+ }
30098
+ function readBookingFormField(value) {
30099
+ if (!isRecord4(value)) return null;
30100
+ const id = readNonEmptyString(value.id);
30101
+ const label = readNonEmptyString(value.label);
30102
+ const type = readBookingFieldType(value.type);
30103
+ if (!id || !label || !type) return null;
30104
+ return {
30105
+ id,
30106
+ label,
30107
+ type,
30108
+ required: typeof value.required === "boolean" ? value.required : void 0,
30109
+ placeholder: readOptionalString(value.placeholder),
30110
+ helpText: readOptionalString(value.helpText),
30111
+ options: readBookingFieldOptions(value.options),
30112
+ multiple: typeof value.multiple === "boolean" ? value.multiple : void 0,
30113
+ minLength: readOptionalNumber(value.minLength),
30114
+ maxLength: readOptionalNumber(value.maxLength),
30115
+ pattern: readOptionalString(value.pattern),
30116
+ min: readOptionalNumber(value.min),
30117
+ max: readOptionalNumber(value.max)
30118
+ };
30119
+ }
30120
+ function readBookingFieldType(value) {
30121
+ switch (value) {
30122
+ case "text":
30123
+ case "email":
30124
+ case "textarea":
30125
+ case "select":
30126
+ case "radio":
30127
+ case "checkbox":
30128
+ case "booking_requirement_consent":
30129
+ case "tel":
30130
+ case "url":
30131
+ case "number":
30132
+ case "date":
30133
+ case "time":
30134
+ return value;
30135
+ default:
30136
+ return null;
30064
30137
  }
30065
- return Object.values(services).map(normalizeService);
30138
+ }
30139
+ function readBookingFieldOptions(value) {
30140
+ if (!Array.isArray(value)) return void 0;
30141
+ const options = value.map(readBookingFieldOption).filter((option) => option !== null);
30142
+ return options.length > 0 ? options : void 0;
30143
+ }
30144
+ function readBookingFieldOption(value) {
30145
+ if (!isRecord4(value)) return null;
30146
+ const optionValue = readNonEmptyString(value.value);
30147
+ const label = readNonEmptyString(value.label);
30148
+ return optionValue && label ? { value: optionValue, label } : null;
30149
+ }
30150
+ function normalizeBookingSettings(value) {
30151
+ if (!value || value.type !== "booking") return void 0;
30152
+ return {
30153
+ type: "booking",
30154
+ serviceId: readOptionalString(value.serviceId),
30155
+ serviceIds: readStringArray(value.serviceIds),
30156
+ resourceId: readOptionalString(value.resourceId),
30157
+ requiresApproval: typeof value.requiresApproval === "boolean" ? value.requiresApproval : void 0,
30158
+ successMessage: readOptionalString(value.successMessage)
30159
+ };
30160
+ }
30161
+ function isBookingFormService(value) {
30162
+ return isRecord4(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string";
30163
+ }
30164
+ function readNonEmptyString(value) {
30165
+ if (typeof value !== "string") return null;
30166
+ const trimmed = value.trim();
30167
+ return trimmed.length > 0 ? trimmed : null;
30168
+ }
30169
+ function readOptionalString(value) {
30170
+ return typeof value === "string" ? value : void 0;
30171
+ }
30172
+ function readOptionalNumber(value) {
30173
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
30174
+ }
30175
+ function readStringArray(value) {
30176
+ if (!Array.isArray(value)) return void 0;
30177
+ const strings = value.filter((item) => typeof item === "string");
30178
+ return strings.length > 0 ? strings : void 0;
30179
+ }
30180
+ function isRecord4(value) {
30181
+ return typeof value === "object" && value !== null;
30066
30182
  }
30067
30183
 
30068
30184
  // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
@@ -37370,6 +37486,8 @@ var MemoBlockSection = React6.memo(
37370
37486
  themeConfig,
37371
37487
  data: void 0,
37372
37488
  siteId: dataContext?.siteId,
37489
+ apiBaseUrl: dataContext?.apiBaseUrl,
37490
+ portalToken: dataContext?.portalToken ?? null,
37373
37491
  supabaseUrl: dataContext?.supabaseUrl,
37374
37492
  imageResolveContext,
37375
37493
  blockId: block.id ?? null,
@@ -37484,6 +37602,8 @@ var MemoBlockSection = React6.memo(
37484
37602
  themeConfig,
37485
37603
  data: resolved,
37486
37604
  siteId: dataContext?.siteId,
37605
+ apiBaseUrl: dataContext?.apiBaseUrl,
37606
+ portalToken: dataContext?.portalToken ?? null,
37487
37607
  supabaseUrl: dataContext?.supabaseUrl,
37488
37608
  imageResolveContext,
37489
37609
  blockId: block.id ?? null,
@@ -43246,32 +43366,32 @@ var containerResponsiveThemeCss = `/*
43246
43366
  }
43247
43367
 
43248
43368
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-text--muted {
43249
- opacity: var(--ab-text-muted-opacity);
43369
+ opacity: var(--ab-text-muted-opacity, 0.6);
43250
43370
  }
43251
43371
 
43252
43372
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-text--faint {
43253
- opacity: var(--ab-text-faint-opacity);
43373
+ opacity: var(--ab-text-faint-opacity, 0.4);
43254
43374
  }
43255
43375
 
43256
43376
  /* Selection cards (service, resource, time slot) */
43257
43377
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card {
43258
43378
  position: relative;
43259
43379
  padding: 1rem;
43260
- border: 2px solid var(--ab-card-border);
43261
- border-radius: var(--rb-block-radius);
43380
+ border: 2px solid var(--ab-card-border, rgb(var(--tb-border, 226 232 240)));
43381
+ border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
43262
43382
  text-align: left;
43263
43383
  background: transparent;
43264
43384
  cursor: pointer;
43265
- transition: border-color var(--rb-block-transition) ease, background-color var(--rb-block-transition) ease;
43385
+ transition: border-color var(--rb-block-transition, 150ms) ease, background-color var(--rb-block-transition, 150ms) ease;
43266
43386
  }
43267
43387
 
43268
43388
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card:hover {
43269
- border-color: var(--ab-card-border-hover);
43389
+ border-color: var(--ab-card-border-hover, rgba(var(--tb-primary, 17 24 39), 0.5));
43270
43390
  }
43271
43391
 
43272
43392
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-card--selected {
43273
- border-color: var(--ab-card-border-selected);
43274
- background-color: var(--ab-card-bg-selected);
43393
+ border-color: var(--ab-card-border-selected, rgb(var(--tb-primary, 17 24 39)));
43394
+ background-color: var(--ab-card-bg-selected, rgba(var(--tb-primary, 17 24 39), 0.05));
43275
43395
  }
43276
43396
 
43277
43397
  /* Checkmark indicator */
@@ -43280,7 +43400,7 @@ var containerResponsiveThemeCss = `/*
43280
43400
  width: 1.25rem;
43281
43401
  height: 1.25rem;
43282
43402
  border-radius: 50%;
43283
- background-color: var(--ab-check-bg);
43403
+ background-color: var(--ab-check-bg, rgb(var(--tb-primary, 17 24 39)));
43284
43404
  display: flex;
43285
43405
  align-items: center;
43286
43406
  justify-content: center;
@@ -43289,42 +43409,42 @@ var containerResponsiveThemeCss = `/*
43289
43409
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-check svg {
43290
43410
  width: 0.75rem;
43291
43411
  height: 0.75rem;
43292
- color: var(--ab-check-text);
43412
+ color: var(--ab-check-text, rgb(var(--tb-background, 255 255 255)));
43293
43413
  }
43294
43414
 
43295
43415
  /* Info box (service summary) */
43296
43416
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-info-box {
43297
43417
  padding: 1rem;
43298
- border: 1px solid var(--ab-card-border);
43299
- border-radius: var(--rb-block-radius);
43300
- background-color: var(--ab-muted-bg);
43418
+ border: 1px solid var(--ab-card-border, rgb(var(--tb-border, 226 232 240)));
43419
+ border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
43420
+ background-color: var(--ab-muted-bg, rgba(var(--tb-foreground, var(--tb-text, 15 23 42)), 0.05));
43301
43421
  }
43302
43422
 
43303
43423
  /* Alert states */
43304
43424
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert {
43305
43425
  padding: 0.75rem 1rem;
43306
- border-radius: var(--rb-block-radius);
43426
+ border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
43307
43427
  font-size: 0.875rem;
43308
43428
  }
43309
43429
 
43310
43430
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--success {
43311
- background-color: var(--ab-success-bg);
43312
- color: var(--ab-success-text);
43431
+ background-color: var(--ab-success-bg, rgba(var(--tb-success, 22 163 74), 0.1));
43432
+ color: var(--ab-success-text, rgb(var(--tb-success, 22 163 74)));
43313
43433
  }
43314
43434
 
43315
43435
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--error {
43316
- background-color: var(--ab-error-bg);
43317
- color: var(--ab-error-text);
43436
+ background-color: var(--ab-error-bg, rgba(var(--tb-destructive, 220 38 38), 0.1));
43437
+ color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
43318
43438
  }
43319
43439
 
43320
43440
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--warning {
43321
- background-color: var(--ab-warning-bg);
43322
- color: var(--ab-warning-text);
43441
+ background-color: var(--ab-warning-bg, rgba(var(--tb-warning, 245 158 11), 0.1));
43442
+ color: var(--ab-warning-text, rgb(var(--tb-warning, 245 158 11)));
43323
43443
  }
43324
43444
 
43325
43445
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-alert--info {
43326
- background-color: var(--ab-info-bg);
43327
- color: var(--ab-info-text);
43446
+ background-color: var(--ab-info-bg, rgba(var(--tb-info, 14 165 233), 0.1));
43447
+ color: var(--ab-info-text, rgb(var(--tb-info, 14 165 233)));
43328
43448
  }
43329
43449
 
43330
43450
  /* Form elements */
@@ -43336,7 +43456,7 @@ var containerResponsiveThemeCss = `/*
43336
43456
  }
43337
43457
 
43338
43458
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-required {
43339
- color: var(--ab-error-text);
43459
+ color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
43340
43460
  margin-left: 0.125rem;
43341
43461
  }
43342
43462
 
@@ -43345,19 +43465,19 @@ var containerResponsiveThemeCss = `/*
43345
43465
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-textarea {
43346
43466
  width: 100%;
43347
43467
  padding: 0.5rem 0.75rem;
43348
- border: 1px solid var(--ab-input-border);
43349
- border-radius: var(--rb-block-radius);
43468
+ border: 1px solid var(--ab-input-border, rgb(var(--tb-border, 226 232 240)));
43469
+ border-radius: var(--ab-input-radius, var(--radius-control, var(--rb-block-radius, 1rem)));
43350
43470
  background: transparent;
43351
43471
  font-size: 0.875rem;
43352
- transition: border-color var(--rb-block-transition) ease, box-shadow var(--rb-block-transition) ease;
43472
+ transition: border-color var(--rb-block-transition, 150ms) ease, box-shadow var(--rb-block-transition, 150ms) ease;
43353
43473
  }
43354
43474
 
43355
43475
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-input:focus,
43356
43476
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-select:focus,
43357
43477
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-textarea:focus {
43358
43478
  outline: none;
43359
- border-color: var(--ab-card-border-selected);
43360
- box-shadow: 0 0 0 3px var(--ab-input-focus-ring);
43479
+ border-color: var(--ab-card-border-selected, rgb(var(--tb-primary, 17 24 39)));
43480
+ box-shadow: 0 0 0 3px var(--ab-input-focus-ring, rgba(var(--tb-primary, 17 24 39), 0.3));
43361
43481
  }
43362
43482
 
43363
43483
  /* Buttons */
@@ -43366,31 +43486,31 @@ var containerResponsiveThemeCss = `/*
43366
43486
  align-items: center;
43367
43487
  justify-content: center;
43368
43488
  padding: 0.5rem 1.5rem;
43369
- border-radius: var(--rb-block-radius);
43489
+ border-radius: var(--ab-button-radius, var(--rb-button-radius, var(--rb-block-radius, 1rem)));
43370
43490
  font-size: 0.875rem;
43371
43491
  font-weight: 500;
43372
43492
  cursor: pointer;
43373
- transition: background-color var(--rb-block-transition) ease, border-color var(--rb-block-transition) ease;
43493
+ transition: background-color var(--rb-block-transition, 150ms) ease, border-color var(--rb-block-transition, 150ms) ease;
43374
43494
  }
43375
43495
 
43376
43496
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--primary {
43377
43497
  flex: 1;
43378
- background-color: var(--ab-btn-primary-bg);
43379
- color: var(--ab-btn-primary-text);
43498
+ background-color: var(--ab-btn-primary-bg, rgb(var(--tb-primary, 17 24 39)));
43499
+ color: var(--ab-btn-primary-text, rgb(var(--tb-primaryForeground, 255 255 255)));
43380
43500
  border: none;
43381
43501
  }
43382
43502
 
43383
43503
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--primary:hover:not(:disabled) {
43384
- background-color: var(--ab-btn-primary-hover);
43504
+ background-color: var(--ab-btn-primary-hover, rgba(var(--tb-primary, 17 24 39), 0.9));
43385
43505
  }
43386
43506
 
43387
43507
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--secondary {
43388
43508
  background: transparent;
43389
- border: 1px solid var(--ab-btn-secondary-border);
43509
+ border: 1px solid var(--ab-btn-secondary-border, rgb(var(--tb-border, 226 232 240)));
43390
43510
  }
43391
43511
 
43392
43512
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--secondary:hover:not(:disabled) {
43393
- background-color: var(--ab-btn-secondary-hover);
43513
+ background-color: var(--ab-btn-secondary-hover, rgba(var(--tb-foreground, var(--tb-text, 15 23 42)), 0.05));
43394
43514
  }
43395
43515
 
43396
43516
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-btn--link {
@@ -43420,8 +43540,8 @@ var containerResponsiveThemeCss = `/*
43420
43540
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-skeleton {
43421
43541
  height: 2.5rem;
43422
43542
  width: 100%;
43423
- background-color: var(--ab-muted-bg);
43424
- border-radius: var(--rb-block-radius);
43543
+ background-color: var(--ab-muted-bg, rgba(var(--tb-foreground, var(--tb-text, 15 23 42)), 0.05));
43544
+ border-radius: var(--ab-card-radius, var(--rb-block-radius, 1rem));
43425
43545
  animation: ab-pulse 1.5s ease-in-out infinite;
43426
43546
  }
43427
43547
 
@@ -43450,7 +43570,7 @@ var containerResponsiveThemeCss = `/*
43450
43570
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-link {
43451
43571
  display: inline;
43452
43572
  margin-left: 0.5rem;
43453
- color: rgb(var(--tb-primary));
43573
+ color: rgb(var(--tb-primary, 17 24 39));
43454
43574
  background: none;
43455
43575
  border: none;
43456
43576
  padding: 0;
@@ -46830,6 +46950,37 @@ import { Fragment as Fragment7, jsx as jsx54, jsxs as jsxs38 } from "react/jsx-r
46830
46950
  // ../theme-core/src/siteChrome.tsx
46831
46951
  import { Fragment as Fragment8, jsx as jsx55, jsxs as jsxs39 } from "react/jsx-runtime";
46832
46952
 
46953
+ // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
46954
+ import { z as z64 } from "zod";
46955
+ var themeBridgeConfigSchema = z64.object({
46956
+ tokens: z64.record(z64.string(), z64.string()),
46957
+ typography: z64.object({
46958
+ headingFamily: z64.string().optional(),
46959
+ bodyFamily: z64.string().optional(),
46960
+ headingWeight: z64.number().optional(),
46961
+ bodyWeight: z64.number().optional()
46962
+ }).optional(),
46963
+ spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
46964
+ corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
46965
+ shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
46966
+ components: z64.object({
46967
+ buttons: z64.union([
46968
+ z64.boolean(),
46969
+ z64.object({
46970
+ variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
46971
+ })
46972
+ ]).optional(),
46973
+ cards: z64.union([
46974
+ z64.boolean(),
46975
+ z64.object({
46976
+ variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
46977
+ })
46978
+ ]).optional(),
46979
+ inputs: z64.boolean().optional()
46980
+ }).optional(),
46981
+ overrides: z64.record(z64.string(), z64.string()).optional()
46982
+ }).passthrough();
46983
+
46833
46984
  // ../theme-core/src/mock-themes/components/swatch.tsx
46834
46985
  import { jsx as jsx56, jsxs as jsxs40 } from "react/jsx-runtime";
46835
46986
 
@@ -49733,6 +49884,20 @@ var ENDPOINT_DEFINITIONS = {
49733
49884
  responseKind: "json",
49734
49885
  errors: ["validation:invalid_input", "billing:plan_limit_exceeded", "server:internal_error"]
49735
49886
  },
49887
+ createAppointmentResourceWithAccountAccess: {
49888
+ path: "/sites/{siteId}/bookings/resources/account-access",
49889
+ method: "POST",
49890
+ auth: "user",
49891
+ responseKind: "json",
49892
+ errors: [
49893
+ "validation:invalid_input",
49894
+ "auth:forbidden",
49895
+ "billing:plan_limit_exceeded",
49896
+ "resource:conflict",
49897
+ "resource:not_found",
49898
+ "server:internal_error"
49899
+ ]
49900
+ },
49736
49901
  getAppointmentResource: {
49737
49902
  path: "/sites/{siteId}/bookings/resources/{resourceId}",
49738
49903
  method: "GET",
@@ -54998,73 +55163,73 @@ var ENDPOINT_DEFINITIONS = {
54998
55163
  };
54999
55164
 
55000
55165
  // ../api/src/accessAdmin.ts
55001
- import { z as z64 } from "zod";
55002
- var managedDomainAddOnPricingSnapshotSchema = z64.object({
55003
- formulaVersion: z64.literal("managed-domain-overage-v1"),
55004
- conversionRule: z64.literal("usd-to-gbp-1-to-1-v1"),
55005
- registrarAnnualCost: z64.number().nonnegative(),
55006
- registrarCurrency: z64.literal("USD"),
55007
- includedAnnualAllowance: z64.number().nonnegative(),
55008
- includedAnnualAllowanceCurrency: z64.literal("USD"),
55009
- monthlyAmountCents: z64.number().int().nonnegative(),
55010
- monthlyCurrency: z64.literal("gbp")
55166
+ import { z as z65 } from "zod";
55167
+ var managedDomainAddOnPricingSnapshotSchema = z65.object({
55168
+ formulaVersion: z65.literal("managed-domain-overage-v1"),
55169
+ conversionRule: z65.literal("usd-to-gbp-1-to-1-v1"),
55170
+ registrarAnnualCost: z65.number().nonnegative(),
55171
+ registrarCurrency: z65.literal("USD"),
55172
+ includedAnnualAllowance: z65.number().nonnegative(),
55173
+ includedAnnualAllowanceCurrency: z65.literal("USD"),
55174
+ monthlyAmountCents: z65.number().int().nonnegative(),
55175
+ monthlyCurrency: z65.literal("gbp")
55011
55176
  });
55012
55177
 
55013
55178
  // ../api/src/navigation/contracts.ts
55014
- import { z as z65 } from "zod";
55015
- var portalLinkPayloadSchema = z65.object({
55016
- kind: z65.literal("portal"),
55017
- path: z65.string().trim().startsWith("/").optional(),
55018
- labels: z65.object({
55019
- loggedOut: z65.string().trim().min(1).optional(),
55020
- loggedIn: z65.string().trim().min(1).optional()
55179
+ import { z as z66 } from "zod";
55180
+ var portalLinkPayloadSchema = z66.object({
55181
+ kind: z66.literal("portal"),
55182
+ path: z66.string().trim().startsWith("/").optional(),
55183
+ labels: z66.object({
55184
+ loggedOut: z66.string().trim().min(1).optional(),
55185
+ loggedIn: z66.string().trim().min(1).optional()
55021
55186
  }).optional()
55022
55187
  });
55023
- var cartLinkLabelConfigSchema = z65.discriminatedUnion("kind", [
55024
- z65.object({
55025
- kind: z65.literal("icon-only")
55188
+ var cartLinkLabelConfigSchema = z66.discriminatedUnion("kind", [
55189
+ z66.object({
55190
+ kind: z66.literal("icon-only")
55026
55191
  }),
55027
- z65.object({
55028
- kind: z65.literal("icon-with-label"),
55029
- label: z65.string().trim().min(1)
55192
+ z66.object({
55193
+ kind: z66.literal("icon-with-label"),
55194
+ label: z66.string().trim().min(1)
55030
55195
  })
55031
55196
  ]);
55032
- var cartLinkPayloadSchema = z65.object({
55033
- kind: z65.literal("cart"),
55034
- badge: z65.enum(["show-count", "hidden"]),
55197
+ var cartLinkPayloadSchema = z66.object({
55198
+ kind: z66.literal("cart"),
55199
+ badge: z66.enum(["show-count", "hidden"]),
55035
55200
  label: cartLinkLabelConfigSchema
55036
55201
  });
55037
- var internalLinkPayloadSchema = z65.object({
55038
- kind: z65.literal("internal"),
55039
- routeId: z65.string().uuid(),
55040
- entityId: z65.string().uuid(),
55041
- entityType: z65.enum(["page", "content"]),
55042
- href: z65.string().min(1),
55043
- title: z65.string().min(1),
55044
- typeLabel: z65.string().min(1),
55045
- contentTypeKey: z65.string().nullable().optional(),
55046
- contentTypeName: z65.string().nullable().optional(),
55047
- updatedAt: z65.string().nullable().optional()
55202
+ var internalLinkPayloadSchema = z66.object({
55203
+ kind: z66.literal("internal"),
55204
+ routeId: z66.string().uuid(),
55205
+ entityId: z66.string().uuid(),
55206
+ entityType: z66.enum(["page", "content"]),
55207
+ href: z66.string().min(1),
55208
+ title: z66.string().min(1),
55209
+ typeLabel: z66.string().min(1),
55210
+ contentTypeKey: z66.string().nullable().optional(),
55211
+ contentTypeName: z66.string().nullable().optional(),
55212
+ updatedAt: z66.string().nullable().optional()
55048
55213
  }).passthrough();
55049
- var externalLinkSchema2 = z65.object({
55050
- kind: z65.literal("external"),
55214
+ var externalLinkSchema2 = z66.object({
55215
+ kind: z66.literal("external"),
55051
55216
  // Navigation external links are expected to be absolute URLs.
55052
- href: z65.string().url()
55217
+ href: z66.string().url()
55053
55218
  });
55054
- var customLinkSchema2 = z65.object({
55055
- kind: z65.literal("url"),
55056
- href: z65.string().min(1)
55219
+ var customLinkSchema2 = z66.object({
55220
+ kind: z66.literal("url"),
55221
+ href: z66.string().min(1)
55057
55222
  });
55058
- var pageLinkSchema2 = z65.object({
55059
- kind: z65.literal("page"),
55060
- identifier: z65.string().min(1)
55223
+ var pageLinkSchema2 = z66.object({
55224
+ kind: z66.literal("page"),
55225
+ identifier: z66.string().min(1)
55061
55226
  });
55062
- var entryLinkSchema2 = z65.object({
55063
- kind: z65.literal("entry"),
55064
- contentType: z65.string().min(1),
55065
- identifier: z65.string().min(1)
55227
+ var entryLinkSchema2 = z66.object({
55228
+ kind: z66.literal("entry"),
55229
+ contentType: z66.string().min(1),
55230
+ identifier: z66.string().min(1)
55066
55231
  });
55067
- var linkPayloadSchema = z65.discriminatedUnion("kind", [
55232
+ var linkPayloadSchema = z66.discriminatedUnion("kind", [
55068
55233
  internalLinkPayloadSchema,
55069
55234
  pageLinkSchema2,
55070
55235
  entryLinkSchema2,
@@ -55081,27 +55246,27 @@ var navigationLinkInputSchemaOptions = [
55081
55246
  portalLinkPayloadSchema,
55082
55247
  cartLinkPayloadSchema
55083
55248
  ];
55084
- var navigationLinkInputSchema = z65.discriminatedUnion(
55249
+ var navigationLinkInputSchema = z66.discriminatedUnion(
55085
55250
  "kind",
55086
55251
  navigationLinkInputSchemaOptions
55087
55252
  );
55088
55253
 
55089
55254
  // ../api/src/sdkConfig/contracts.ts
55090
- import { z as z66 } from "zod";
55255
+ import { z as z67 } from "zod";
55091
55256
  function unsafeRetypeZodSchema(schema) {
55092
55257
  return schema;
55093
55258
  }
55094
- var navIdListSchema = z66.preprocess((value) => {
55259
+ var navIdListSchema = z67.preprocess((value) => {
55095
55260
  if (!Array.isArray(value)) return void 0;
55096
55261
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
55097
55262
  return filtered.length > 0 ? filtered : void 0;
55098
- }, z66.array(z66.string()).max(200).optional());
55099
- var dashboardNavVisibilityBaseSchema = z66.object({
55100
- mode: z66.enum(["augment", "restrict"]).optional(),
55263
+ }, z67.array(z67.string()).max(200).optional());
55264
+ var dashboardNavVisibilityBaseSchema = z67.object({
55265
+ mode: z67.enum(["augment", "restrict"]).optional(),
55101
55266
  allowIds: navIdListSchema,
55102
55267
  denyIds: navIdListSchema
55103
55268
  }).strip();
55104
- var dashboardNavVisibilityRolesSchema = z66.object({
55269
+ var dashboardNavVisibilityRolesSchema = z67.object({
55105
55270
  administrator: dashboardNavVisibilityBaseSchema.optional(),
55106
55271
  editor: dashboardNavVisibilityBaseSchema.optional(),
55107
55272
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -55109,57 +55274,57 @@ var dashboardNavVisibilityRolesSchema = z66.object({
55109
55274
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
55110
55275
  roles: dashboardNavVisibilityRolesSchema
55111
55276
  }).strip();
55112
- var dashboardNavigationConfigSchema = z66.object({
55277
+ var dashboardNavigationConfigSchema = z67.object({
55113
55278
  siteNav: dashboardNavVisibilitySchema.optional(),
55114
55279
  settingsNav: dashboardNavVisibilitySchema.optional()
55115
55280
  }).strip();
55116
- var dashboardConfigSchema = z66.object({
55117
- previewEditingEnabled: z66.boolean().optional(),
55281
+ var dashboardConfigSchema = z67.object({
55282
+ previewEditingEnabled: z67.boolean().optional(),
55118
55283
  navigation: dashboardNavigationConfigSchema.optional()
55119
55284
  }).strip();
55120
55285
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
55121
55286
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
55122
- var sdkLoaderEndpointSchema = z66.enum(SUPPORTED_LOADER_ENDPOINTS);
55123
- var loaderParamBindingSchema = z66.object({
55124
- $bind: z66.object({
55125
- from: z66.string().min(1, "Binding path is required"),
55126
- fallback: z66.string().optional()
55287
+ var sdkLoaderEndpointSchema = z67.enum(SUPPORTED_LOADER_ENDPOINTS);
55288
+ var loaderParamBindingSchema = z67.object({
55289
+ $bind: z67.object({
55290
+ from: z67.string().min(1, "Binding path is required"),
55291
+ fallback: z67.string().optional()
55127
55292
  })
55128
55293
  });
55129
- var loaderParamValueSchema = z66.union([
55130
- z66.string(),
55131
- z66.number(),
55132
- z66.boolean(),
55294
+ var loaderParamValueSchema = z67.union([
55295
+ z67.string(),
55296
+ z67.number(),
55297
+ z67.boolean(),
55133
55298
  loaderParamBindingSchema
55134
55299
  ]);
55135
- var sdkConfigLoaderSchema = z66.object({
55300
+ var sdkConfigLoaderSchema = z67.object({
55136
55301
  endpoint: sdkLoaderEndpointSchema,
55137
- params: z66.record(z66.string(), loaderParamValueSchema),
55138
- mode: z66.enum(["server", "client"]).default("server")
55302
+ params: z67.record(z67.string(), loaderParamValueSchema),
55303
+ mode: z67.enum(["server", "client"]).default("server")
55139
55304
  });
55140
- var sdkDataLoadersSchema = z66.record(z66.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
55141
- var sdkCustomBlockIdSchema = z66.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
55305
+ var sdkDataLoadersSchema = z67.record(z67.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
55306
+ var sdkCustomBlockIdSchema = z67.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
55142
55307
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
55143
55308
  }).transform((value) => value);
55144
- var sdkCustomBlockInputSchema = z66.object({
55309
+ var sdkCustomBlockInputSchema = z67.object({
55145
55310
  id: sdkCustomBlockIdSchema,
55146
- title: z66.string().min(1),
55147
- titleSource: z66.union([z66.string().min(1), z66.array(z66.string().min(1)).min(1)]).optional(),
55148
- description: z66.string().optional(),
55311
+ title: z67.string().min(1),
55312
+ titleSource: z67.union([z67.string().min(1), z67.array(z67.string().min(1)).min(1)]).optional(),
55313
+ description: z67.string().optional(),
55149
55314
  category: blockCategoryEnum,
55150
- icon: z66.string().optional(),
55151
- tags: z66.array(z66.string()).optional(),
55315
+ icon: z67.string().optional(),
55316
+ tags: z67.array(z67.string()).optional(),
55152
55317
  fields: fieldDefinitionInputSchema.array().min(1),
55153
55318
  dataLoaders: sdkDataLoadersSchema,
55154
55319
  layout: NodeSchema.optional(),
55155
- variants: z66.record(z66.string().min(1), NodeSchema).optional(),
55156
- defaultVariant: z66.string().min(1).optional(),
55157
- variantOptions: z66.record(
55158
- z66.string().min(1),
55159
- z66.object({
55160
- label: z66.string().min(1).optional(),
55161
- description: z66.string().min(1).optional(),
55162
- icon: z66.string().min(1).optional()
55320
+ variants: z67.record(z67.string().min(1), NodeSchema).optional(),
55321
+ defaultVariant: z67.string().min(1).optional(),
55322
+ variantOptions: z67.record(
55323
+ z67.string().min(1),
55324
+ z67.object({
55325
+ label: z67.string().min(1).optional(),
55326
+ description: z67.string().min(1).optional(),
55327
+ icon: z67.string().min(1).optional()
55163
55328
  })
55164
55329
  ).optional()
55165
55330
  }).superRefine((data, ctx) => {
@@ -55169,7 +55334,7 @@ var sdkCustomBlockInputSchema = z66.object({
55169
55334
  const exists = data.fields.some((field) => field.id === source);
55170
55335
  if (!exists) {
55171
55336
  ctx.addIssue({
55172
- code: z66.ZodIssueCode.custom,
55337
+ code: z67.ZodIssueCode.custom,
55173
55338
  message: `titleSource must reference a valid field ID (got "${source}")`,
55174
55339
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
55175
55340
  });
@@ -55178,7 +55343,7 @@ var sdkCustomBlockInputSchema = z66.object({
55178
55343
  }
55179
55344
  if (data.layout && data.variants) {
55180
55345
  ctx.addIssue({
55181
- code: z66.ZodIssueCode.custom,
55346
+ code: z67.ZodIssueCode.custom,
55182
55347
  message: "Custom block must define either `layout` or `variants`, not both",
55183
55348
  path: ["variants"]
55184
55349
  });
@@ -55187,14 +55352,14 @@ var sdkCustomBlockInputSchema = z66.object({
55187
55352
  const keys = Object.keys(data.variants);
55188
55353
  if (keys.length === 0) {
55189
55354
  ctx.addIssue({
55190
- code: z66.ZodIssueCode.custom,
55355
+ code: z67.ZodIssueCode.custom,
55191
55356
  message: "`variants` must contain at least one variant key",
55192
55357
  path: ["variants"]
55193
55358
  });
55194
55359
  }
55195
55360
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
55196
55361
  ctx.addIssue({
55197
- code: z66.ZodIssueCode.custom,
55362
+ code: z67.ZodIssueCode.custom,
55198
55363
  message: "`defaultVariant` must be a key present in `variants`",
55199
55364
  path: ["defaultVariant"]
55200
55365
  });
@@ -55203,7 +55368,7 @@ var sdkCustomBlockInputSchema = z66.object({
55203
55368
  for (const key of Object.keys(data.variantOptions)) {
55204
55369
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
55205
55370
  ctx.addIssue({
55206
- code: z66.ZodIssueCode.custom,
55371
+ code: z67.ZodIssueCode.custom,
55207
55372
  message: "`variantOptions` key must exist in `variants`",
55208
55373
  path: ["variantOptions", key]
55209
55374
  });
@@ -55212,74 +55377,74 @@ var sdkCustomBlockInputSchema = z66.object({
55212
55377
  }
55213
55378
  }
55214
55379
  });
55215
- var sdkBlockFieldExtensionInputSchema = z66.object({
55380
+ var sdkBlockFieldExtensionInputSchema = z67.object({
55216
55381
  fields: fieldDefinitionInputSchema.array().min(1)
55217
55382
  });
55218
- var sdkBlockFieldExtensionsInputSchema = z66.record(
55219
- z66.string().min(1),
55383
+ var sdkBlockFieldExtensionsInputSchema = z67.record(
55384
+ z67.string().min(1),
55220
55385
  sdkBlockFieldExtensionInputSchema
55221
55386
  );
55222
- var sdkThemePaletteSchema = z66.record(z66.string(), z66.string());
55223
- var sdkThemeConfigSchema = z66.object({
55387
+ var sdkThemePaletteSchema = z67.record(z67.string(), z67.string());
55388
+ var sdkThemeConfigSchema = z67.object({
55224
55389
  palette: sdkThemePaletteSchema
55225
55390
  });
55226
- var sdkSectionBackgroundSchema = z66.object({
55227
- id: z66.string().min(1),
55228
- label: z66.string().min(1),
55229
- token: z66.string().min(1)
55391
+ var sdkSectionBackgroundSchema = z67.object({
55392
+ id: z67.string().min(1),
55393
+ label: z67.string().min(1),
55394
+ token: z67.string().min(1)
55230
55395
  });
55231
- var sdkSectionOptionsConfigSchema = z66.object({
55232
- backgroundColor: z66.boolean().optional(),
55233
- backgroundImage: z66.boolean().optional(),
55234
- backgroundGradient: z66.boolean().optional(),
55235
- spacing: z66.union([z66.array(z66.enum(["compact", "default", "spacious"])), z66.boolean()]).optional(),
55236
- textColor: z66.boolean().optional()
55396
+ var sdkSectionOptionsConfigSchema = z67.object({
55397
+ backgroundColor: z67.boolean().optional(),
55398
+ backgroundImage: z67.boolean().optional(),
55399
+ backgroundGradient: z67.boolean().optional(),
55400
+ spacing: z67.union([z67.array(z67.enum(["compact", "default", "spacious"])), z67.boolean()]).optional(),
55401
+ textColor: z67.boolean().optional()
55237
55402
  });
55238
- var sdkContainerOptionsConfigSchema = z66.object({
55239
- maxWidth: z66.union([z66.array(z66.enum(["narrow", "default", "wide", "full"])), z66.boolean()]).optional(),
55240
- alignment: z66.union([z66.array(z66.enum(["left", "center", "right"])), z66.boolean()]).optional()
55403
+ var sdkContainerOptionsConfigSchema = z67.object({
55404
+ maxWidth: z67.union([z67.array(z67.enum(["narrow", "default", "wide", "full"])), z67.boolean()]).optional(),
55405
+ alignment: z67.union([z67.array(z67.enum(["left", "center", "right"])), z67.boolean()]).optional()
55241
55406
  });
55242
- var sdkSiteStyleConfigSchema = z66.object({
55243
- sectionBackgrounds: z66.array(sdkSectionBackgroundSchema).optional(),
55407
+ var sdkSiteStyleConfigSchema = z67.object({
55408
+ sectionBackgrounds: z67.array(sdkSectionBackgroundSchema).optional(),
55244
55409
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
55245
55410
  containerOptions: sdkContainerOptionsConfigSchema.optional()
55246
55411
  });
55247
- var sdkSiteLayoutConfigSchema = z66.object({
55248
- footerBlocks: z66.array(
55249
- z66.object({
55250
- id: z66.string().min(1).optional(),
55251
- kind: z66.string().min(1),
55252
- content: z66.record(z66.string(), z66.unknown()).optional()
55412
+ var sdkSiteLayoutConfigSchema = z67.object({
55413
+ footerBlocks: z67.array(
55414
+ z67.object({
55415
+ id: z67.string().min(1).optional(),
55416
+ kind: z67.string().min(1),
55417
+ content: z67.record(z67.string(), z67.unknown()).optional()
55253
55418
  })
55254
55419
  ).optional()
55255
55420
  });
55256
- var sdkFieldSelectOptionSchema = z66.object({
55257
- value: z66.string(),
55258
- label: z66.string()
55421
+ var sdkFieldSelectOptionSchema = z67.object({
55422
+ value: z67.string(),
55423
+ label: z67.string()
55259
55424
  });
55260
- var sdkBlockFieldConfigSchema = z66.object({
55261
- options: z66.array(sdkFieldSelectOptionSchema).optional()
55425
+ var sdkBlockFieldConfigSchema = z67.object({
55426
+ options: z67.array(sdkFieldSelectOptionSchema).optional()
55262
55427
  });
55263
- var sdkBlockFieldOptionsMapSchema = z66.record(
55264
- z66.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
55428
+ var sdkBlockFieldOptionsMapSchema = z67.record(
55429
+ z67.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
55265
55430
  message: "Block ID must be 'block.*' or 'custom.*' format"
55266
55431
  }),
55267
- z66.record(z66.string().min(1), sdkBlockFieldConfigSchema)
55432
+ z67.record(z67.string().min(1), sdkBlockFieldConfigSchema)
55268
55433
  ).optional();
55269
- var sdkContentTypeTemplateConfigSchema = z66.object({
55270
- blocks: z66.array(z66.unknown())
55434
+ var sdkContentTypeTemplateConfigSchema = z67.object({
55435
+ blocks: z67.array(z67.unknown())
55271
55436
  }).passthrough();
55272
- var sdkContentTypeConfigSchema = z66.object({
55273
- key: z66.string().min(1),
55274
- fields: z66.array(z66.unknown()),
55437
+ var sdkContentTypeConfigSchema = z67.object({
55438
+ key: z67.string().min(1),
55439
+ fields: z67.array(z67.unknown()),
55275
55440
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
55276
55441
  }).passthrough();
55277
- var sdkContentConfigSchema = z66.object({
55278
- contentTypes: z66.array(sdkContentTypeConfigSchema).optional(),
55279
- pages: z66.array(z66.unknown()).optional(),
55280
- entries: z66.array(z66.unknown()).optional(),
55281
- navigationMenus: z66.array(z66.unknown()).optional(),
55282
- settings: z66.unknown().optional()
55442
+ var sdkContentConfigSchema = z67.object({
55443
+ contentTypes: z67.array(sdkContentTypeConfigSchema).optional(),
55444
+ pages: z67.array(z67.unknown()).optional(),
55445
+ entries: z67.array(z67.unknown()).optional(),
55446
+ navigationMenus: z67.array(z67.unknown()).optional(),
55447
+ settings: z67.unknown().optional()
55283
55448
  }).passthrough();
55284
55449
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
55285
55450
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -55294,62 +55459,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
55294
55459
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
55295
55460
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
55296
55461
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
55297
- var sdkWorkflowIdSchema = z66.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
55462
+ var sdkWorkflowIdSchema = z67.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
55298
55463
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
55299
55464
  });
55300
- var sdkWorkflowEndpointSchema = z66.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 "/"' });
55301
- var sdkWorkflowManualTriggerSchema = z66.object({
55302
- type: z66.literal("manual")
55465
+ var sdkWorkflowEndpointSchema = z67.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 "/"' });
55466
+ var sdkWorkflowManualTriggerSchema = z67.object({
55467
+ type: z67.literal("manual")
55303
55468
  }).strict();
55304
- var sdkWorkflowTriggerFieldSchema = z66.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
55469
+ var sdkWorkflowTriggerFieldSchema = z67.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
55305
55470
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
55306
55471
  });
55307
- var sdkWorkflowFieldChangedConditionSchema = z66.object({
55472
+ var sdkWorkflowFieldChangedConditionSchema = z67.object({
55308
55473
  field: sdkWorkflowTriggerFieldSchema,
55309
- changed: z66.literal(true)
55474
+ changed: z67.literal(true)
55310
55475
  }).strict();
55311
- var sdkWorkflowFieldEmptyConditionSchema = z66.object({
55476
+ var sdkWorkflowFieldEmptyConditionSchema = z67.object({
55312
55477
  field: sdkWorkflowTriggerFieldSchema,
55313
- isEmpty: z66.boolean()
55478
+ isEmpty: z67.boolean()
55314
55479
  }).strict();
55315
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z66.object({
55316
- type: z66.literal("entry.draft.updated"),
55317
- when: z66.array(
55318
- z66.union([
55480
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z67.object({
55481
+ type: z67.literal("entry.draft.updated"),
55482
+ when: z67.array(
55483
+ z67.union([
55319
55484
  sdkWorkflowFieldChangedConditionSchema,
55320
55485
  sdkWorkflowFieldEmptyConditionSchema
55321
55486
  ])
55322
55487
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
55323
55488
  }).strict();
55324
- var sdkWorkflowTriggerSchema = z66.discriminatedUnion("type", [
55489
+ var sdkWorkflowTriggerSchema = z67.discriminatedUnion("type", [
55325
55490
  sdkWorkflowManualTriggerSchema,
55326
55491
  sdkWorkflowEntryDraftUpdatedTriggerSchema
55327
55492
  ]);
55328
- var sdkWorkflowConfirmationSchema = z66.object({
55329
- title: z66.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
55330
- body: z66.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
55493
+ var sdkWorkflowConfirmationSchema = z67.object({
55494
+ title: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
55495
+ body: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
55331
55496
  }).strict();
55332
- var sdkWorkflowConfigSchema = z66.object({
55497
+ var sdkWorkflowConfigSchema = z67.object({
55333
55498
  id: sdkWorkflowIdSchema,
55334
- title: z66.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
55335
- description: z66.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
55336
- contentType: z66.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
55499
+ title: z67.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
55500
+ description: z67.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
55501
+ contentType: z67.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
55337
55502
  endpoint: sdkWorkflowEndpointSchema,
55338
- triggers: z66.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
55503
+ triggers: z67.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
55339
55504
  confirmation: sdkWorkflowConfirmationSchema.optional()
55340
55505
  }).strict();
55341
- var sdkWorkflowsSchema = z66.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
55506
+ var sdkWorkflowsSchema = z67.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
55342
55507
  const ids = workflows.map((workflow) => workflow.id);
55343
55508
  return ids.length === new Set(ids).size;
55344
55509
  }, { message: "Workflow IDs must be unique" }).optional();
55345
- var riverbankSiteConfigInputSchema = z66.object({
55346
- siteId: z66.string().uuid(),
55347
- previewUrl: z66.string().url().optional(),
55348
- liveUrl: z66.string().url().optional(),
55510
+ var riverbankSiteConfigInputSchema = z67.object({
55511
+ siteId: z67.string().uuid(),
55512
+ previewUrl: z67.string().url().optional(),
55513
+ liveUrl: z67.string().url().optional(),
55349
55514
  theme: sdkThemeConfigSchema.optional(),
55350
55515
  styles: sdkSiteStyleConfigSchema.optional(),
55351
55516
  layout: sdkSiteLayoutConfigSchema.optional(),
55352
- customBlocks: z66.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
55517
+ customBlocks: z67.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
55353
55518
  const ids = blocks.map((b) => b.id);
55354
55519
  return ids.length === new Set(ids).size;
55355
55520
  }, { message: "Block IDs must be unique" }).optional(),
@@ -55357,50 +55522,50 @@ var riverbankSiteConfigInputSchema = z66.object({
55357
55522
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
55358
55523
  workflows: sdkWorkflowsSchema,
55359
55524
  content: sdkContentConfigSchema.optional(),
55360
- contentDir: z66.string().optional(),
55361
- sync: z66.object({
55362
- existingEntries: z66.enum(["skip", "update"]).optional()
55525
+ contentDir: z67.string().optional(),
55526
+ sync: z67.object({
55527
+ existingEntries: z67.enum(["skip", "update"]).optional()
55363
55528
  }).optional(),
55364
- deploy: z66.object({
55365
- verifyCommand: z66.string().optional(),
55366
- prebuildOutput: z66.string().optional()
55529
+ deploy: z67.object({
55530
+ verifyCommand: z67.string().optional(),
55531
+ prebuildOutput: z67.string().optional()
55367
55532
  }).optional(),
55368
- themeSource: z66.enum(["local", "cms"]).optional(),
55369
- activeTheme: z66.string().optional(),
55370
- enablePortal: z66.boolean().optional(),
55533
+ themeSource: z67.enum(["local", "cms"]).optional(),
55534
+ activeTheme: z67.string().optional(),
55535
+ enablePortal: z67.boolean().optional(),
55371
55536
  dashboard: dashboardConfigSchema.optional()
55372
55537
  }).strict();
55373
- var pushSdkConfigBodySchema = z66.object({
55538
+ var pushSdkConfigBodySchema = z67.object({
55374
55539
  config: riverbankSiteConfigInputSchema,
55375
- forceContentTypes: z66.boolean().optional()
55540
+ forceContentTypes: z67.boolean().optional()
55376
55541
  }).strict();
55377
55542
 
55378
55543
  // ../api/src/siteOnboarding.ts
55379
- import { z as z67 } from "zod";
55544
+ import { z as z68 } from "zod";
55380
55545
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
55381
55546
  configure_appointments: {
55382
55547
  requirementId: "configure_appointments",
55383
55548
  reason: "launch_anyway"
55384
55549
  }
55385
55550
  };
55386
- var acknowledgeLaunchRequirementRequestSchema = z67.discriminatedUnion(
55551
+ var acknowledgeLaunchRequirementRequestSchema = z68.discriminatedUnion(
55387
55552
  "requirementId",
55388
55553
  [
55389
- z67.object({
55390
- requirementId: z67.literal("review_generated_site")
55554
+ z68.object({
55555
+ requirementId: z68.literal("review_generated_site")
55391
55556
  }),
55392
- z67.object({
55393
- requirementId: z67.literal(
55557
+ z68.object({
55558
+ requirementId: z68.literal(
55394
55559
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
55395
55560
  ),
55396
- overrideReason: z67.literal(
55561
+ overrideReason: z68.literal(
55397
55562
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
55398
55563
  )
55399
55564
  })
55400
55565
  ]
55401
55566
  );
55402
- var goLiveSiteRequestSchema = z67.object({
55403
- acceptExtraSiteCharge: z67.boolean().optional()
55567
+ var goLiveSiteRequestSchema = z68.object({
55568
+ acceptExtraSiteCharge: z68.boolean().optional()
55404
55569
  });
55405
55570
 
55406
55571
  // ../surfaces/src/index.ts
@@ -55576,53 +55741,56 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
55576
55741
  }
55577
55742
 
55578
55743
  // ../api/src/utils/isRecord.ts
55579
- function isRecord4(value) {
55744
+ function isRecord5(value) {
55580
55745
  return typeof value === "object" && value !== null && !Array.isArray(value);
55581
55746
  }
55582
55747
 
55583
55748
  // ../api/src/appointmentSetup.ts
55584
- import { z as z68 } from "zod";
55585
- var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
55586
- z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
55587
- z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
55749
+ import { z as z69 } from "zod";
55750
+ var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
55751
+ var appointmentSetupRefSchema = z69.discriminatedUnion("kind", [
55752
+ z69.object({ kind: z69.literal("existing"), id: z69.string().min(1) }),
55753
+ z69.object({ kind: z69.literal("new"), draftId: z69.string().min(1) })
55588
55754
  ]);
55589
- var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
55590
- z68.object({ kind: z68.literal("none") }),
55591
- z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
55592
- z68.object({
55593
- kind: z68.literal("create"),
55594
- draftId: z68.string().min(1),
55595
- title: z68.string().trim().min(1),
55596
- description: z68.string().nullable(),
55597
- timezone: z68.string().trim().min(1).nullable(),
55598
- addressJson: z68.record(z68.string(), z68.unknown()),
55599
- locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
55755
+ var appointmentSetupVenueChoiceSchema = z69.discriminatedUnion("kind", [
55756
+ z69.object({ kind: z69.literal("none") }),
55757
+ z69.object({ kind: z69.literal("existing"), venueId: z69.string().min(1) }),
55758
+ z69.object({
55759
+ kind: z69.literal("create"),
55760
+ draftId: z69.string().min(1),
55761
+ title: z69.string().trim().min(1),
55762
+ description: z69.string().nullable(),
55763
+ timezone: z69.string().trim().min(1).nullable(),
55764
+ addressJson: z69.record(z69.string(), z69.unknown()),
55765
+ locationJson: z69.object({ lat: z69.number(), lng: z69.number() }).nullable()
55600
55766
  })
55601
55767
  ]);
55602
- var appointmentSetupPaymentDraftSchema = z68.object({
55603
- priceType: z68.union([z68.literal("free"), z68.literal("paid")])
55604
- });
55605
- var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
55606
- z68.object({ kind: z68.literal("all_practitioners") }),
55607
- z68.object({
55608
- kind: z68.literal("selected_practitioners"),
55609
- resourceRefs: z68.array(appointmentSetupRefSchema)
55768
+ var appointmentSetupPaymentDraftSchema = z69.object({
55769
+ priceType: z69.union([z69.literal("free"), z69.literal("paid")])
55770
+ });
55771
+ var appointmentSetupServiceAssignmentDraftSchema = z69.discriminatedUnion("kind", [
55772
+ z69.object({ kind: z69.literal("all_practitioners") }),
55773
+ z69.object({
55774
+ kind: z69.literal("selected_practitioners"),
55775
+ resourceRefs: z69.array(appointmentSetupRefSchema)
55610
55776
  })
55611
55777
  ]);
55612
- var appointmentSetupServiceDraftSchema = z68.object({
55778
+ var appointmentSetupServiceDraftSchema = z69.object({
55613
55779
  ref: appointmentSetupRefSchema,
55614
- title: z68.string().trim().min(1),
55615
- description: z68.string().nullable(),
55616
- durationMinutes: z68.number().int().positive(),
55617
- priceAmount: z68.number().int().nonnegative().nullable(),
55618
- isActive: z68.boolean(),
55619
- locationType: z68.union([
55620
- z68.literal("virtual"),
55621
- z68.literal("in_person"),
55622
- z68.literal("hybrid")
55780
+ title: z69.string().trim().min(1),
55781
+ description: z69.string().nullable(),
55782
+ durationMinutes: z69.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
55783
+ prepMinutes: z69.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
55784
+ cleanupMinutes: z69.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
55785
+ priceAmount: z69.number().int().nonnegative().nullable(),
55786
+ isActive: z69.boolean(),
55787
+ locationType: z69.union([
55788
+ z69.literal("virtual"),
55789
+ z69.literal("in_person"),
55790
+ z69.literal("hybrid")
55623
55791
  ]),
55624
55792
  venue: appointmentSetupVenueChoiceSchema,
55625
- timezone: z68.string().trim().min(1).nullable(),
55793
+ timezone: z69.string().trim().min(1).nullable(),
55626
55794
  payment: appointmentSetupPaymentDraftSchema,
55627
55795
  assignment: appointmentSetupServiceAssignmentDraftSchema
55628
55796
  }).superRefine((service, ctx) => {
@@ -55641,34 +55809,34 @@ var appointmentSetupServiceDraftSchema = z68.object({
55641
55809
  });
55642
55810
  }
55643
55811
  });
55644
- var appointmentSetupPractitionerDraftSchema = z68.object({
55812
+ var appointmentSetupPractitionerDraftSchema = z69.object({
55645
55813
  ref: appointmentSetupRefSchema,
55646
- displayName: z68.string().trim().min(1),
55647
- bio: z68.string().nullable(),
55648
- timezone: z68.string().trim().min(1),
55649
- colorHex: z68.string().nullable()
55650
- });
55651
- var appointmentSetupWeeklyWindowDraftSchema = z68.object({
55652
- weekday: z68.number().int().min(0).max(6),
55653
- startTime: z68.string(),
55654
- endTime: z68.string()
55655
- });
55656
- var appointmentSetupAvailabilityDraftSchema = z68.object({
55657
- kind: z68.literal("weekly_windows"),
55814
+ displayName: z69.string().trim().min(1),
55815
+ bio: z69.string().nullable(),
55816
+ timezone: z69.string().trim().min(1),
55817
+ colorHex: z69.string().nullable()
55818
+ });
55819
+ var appointmentSetupWeeklyWindowDraftSchema = z69.object({
55820
+ weekday: z69.number().int().min(0).max(6),
55821
+ startTime: z69.string(),
55822
+ endTime: z69.string()
55823
+ });
55824
+ var appointmentSetupAvailabilityDraftSchema = z69.object({
55825
+ kind: z69.literal("weekly_windows"),
55658
55826
  resourceRef: appointmentSetupRefSchema,
55659
55827
  serviceRef: appointmentSetupRefSchema.nullable(),
55660
- windows: z68.array(appointmentSetupWeeklyWindowDraftSchema)
55828
+ windows: z69.array(appointmentSetupWeeklyWindowDraftSchema)
55661
55829
  });
55662
55830
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
55663
55831
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
55664
- var appointmentSetupBookingNoticeSchema = z68.object({
55665
- minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
55666
- maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
55667
- });
55668
- var applyAppointmentSetupRequestSchema = z68.object({
55669
- services: z68.array(appointmentSetupServiceDraftSchema),
55670
- practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
55671
- availability: z68.array(appointmentSetupAvailabilityDraftSchema),
55832
+ var appointmentSetupBookingNoticeSchema = z69.object({
55833
+ minLeadMinutes: z69.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
55834
+ maxBookingNoticeMinutes: z69.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
55835
+ });
55836
+ var applyAppointmentSetupRequestSchema = z69.object({
55837
+ services: z69.array(appointmentSetupServiceDraftSchema),
55838
+ practitioners: z69.array(appointmentSetupPractitionerDraftSchema),
55839
+ availability: z69.array(appointmentSetupAvailabilityDraftSchema),
55672
55840
  bookingNotice: appointmentSetupBookingNoticeSchema
55673
55841
  });
55674
55842
 
@@ -55701,24 +55869,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
55701
55869
  ];
55702
55870
 
55703
55871
  // ../api/src/siteBanner.ts
55704
- import { z as z69 } from "zod";
55872
+ import { z as z70 } from "zod";
55705
55873
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
55706
55874
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
55707
55875
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
55708
55876
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
55709
- var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
55710
- var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
55711
- var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
55712
- var siteBannerCtaSchema = z69.object({
55713
- label: z69.string().trim().min(1),
55877
+ var siteBannerScopeSchema = z70.enum(SITE_BANNER_SCOPE_VALUES);
55878
+ var siteBannerToneSchema = z70.enum(SITE_BANNER_TONE_VALUES);
55879
+ var siteBannerBodySchema = z70.unknown().transform(unwrapRichTextValue);
55880
+ var siteBannerCtaSchema = z70.object({
55881
+ label: z70.string().trim().min(1),
55714
55882
  link: linkPayloadSchema
55715
55883
  });
55716
- var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
55717
- z69.object({
55718
- enabled: z69.literal(false)
55884
+ var siteBannerSettingsSchema = z70.discriminatedUnion("enabled", [
55885
+ z70.object({
55886
+ enabled: z70.literal(false)
55719
55887
  }),
55720
- z69.object({
55721
- enabled: z69.literal(true),
55888
+ z70.object({
55889
+ enabled: z70.literal(true),
55722
55890
  scope: siteBannerScopeSchema,
55723
55891
  tone: siteBannerToneSchema,
55724
55892
  body: siteBannerBodySchema,
@@ -55732,7 +55900,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
55732
55900
  const analysis = analyzeSiteBannerBody(value.body);
55733
55901
  for (const issue2 of analysis.issues) {
55734
55902
  ctx.addIssue({
55735
- code: z69.ZodIssueCode.custom,
55903
+ code: z70.ZodIssueCode.custom,
55736
55904
  path: ["body"],
55737
55905
  message: siteBannerBodyIssueMessage(issue2)
55738
55906
  });
@@ -55865,7 +56033,7 @@ function sanitizeMarks(marks) {
55865
56033
  if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
55866
56034
  return [{ type: mark.type }];
55867
56035
  }
55868
- if (mark.type === "link" && isRecord4(mark.attrs) && typeof mark.attrs.href === "string") {
56036
+ if (mark.type === "link" && isRecord5(mark.attrs) && typeof mark.attrs.href === "string") {
55869
56037
  const attrs = { href: mark.attrs.href };
55870
56038
  if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
55871
56039
  attrs.target = mark.attrs.target;
@@ -55880,10 +56048,10 @@ function sanitizeMarks(marks) {
55880
56048
  return sanitized.length > 0 ? sanitized : void 0;
55881
56049
  }
55882
56050
  function unwrapRichTextValue(value) {
55883
- if (isRecord4(value) && isRecord4(value.doc)) {
56051
+ if (isRecord5(value) && isRecord5(value.doc)) {
55884
56052
  return unwrapRichTextValue(value.doc);
55885
56053
  }
55886
- if (isRecord4(value) && value.type === "doc") {
56054
+ if (isRecord5(value) && value.type === "doc") {
55887
56055
  return {
55888
56056
  type: "doc",
55889
56057
  content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
@@ -55892,7 +56060,7 @@ function unwrapRichTextValue(value) {
55892
56060
  return EMPTY_SITE_BANNER_BODY;
55893
56061
  }
55894
56062
  function isTipTapNodeLike(value) {
55895
- return isRecord4(value) && typeof value.type === "string";
56063
+ return isRecord5(value) && typeof value.type === "string";
55896
56064
  }
55897
56065
  function coerceTipTapNode(value) {
55898
56066
  return {
@@ -55900,9 +56068,9 @@ function coerceTipTapNode(value) {
55900
56068
  ...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
55901
56069
  ...typeof value.text === "string" ? { text: value.text } : {},
55902
56070
  ...Array.isArray(value.marks) ? {
55903
- marks: value.marks.filter((mark) => isRecord4(mark) && typeof mark.type === "string").map((mark) => ({
56071
+ marks: value.marks.filter((mark) => isRecord5(mark) && typeof mark.type === "string").map((mark) => ({
55904
56072
  type: mark.type,
55905
- ...isRecord4(mark.attrs) ? { attrs: mark.attrs } : {}
56073
+ ...isRecord5(mark.attrs) ? { attrs: mark.attrs } : {}
55906
56074
  }))
55907
56075
  } : {}
55908
56076
  };
@@ -55921,71 +56089,71 @@ function collectText(node) {
55921
56089
  }
55922
56090
 
55923
56091
  // ../api/src/aiPlayground.ts
55924
- import { z as z70 } from "zod";
55925
- var Rfc6902PatchOp = z70.discriminatedUnion("op", [
56092
+ import { z as z71 } from "zod";
56093
+ var Rfc6902PatchOp = z71.discriminatedUnion("op", [
55926
56094
  // Standard RFC-6902 operations
55927
- z70.object({
55928
- op: z70.literal("add"),
55929
- path: z70.string(),
55930
- value: z70.unknown()
56095
+ z71.object({
56096
+ op: z71.literal("add"),
56097
+ path: z71.string(),
56098
+ value: z71.unknown()
55931
56099
  }),
55932
- z70.object({
55933
- op: z70.literal("remove"),
55934
- path: z70.string()
56100
+ z71.object({
56101
+ op: z71.literal("remove"),
56102
+ path: z71.string()
55935
56103
  }),
55936
- z70.object({
55937
- op: z70.literal("replace"),
55938
- path: z70.string(),
55939
- value: z70.unknown()
56104
+ z71.object({
56105
+ op: z71.literal("replace"),
56106
+ path: z71.string(),
56107
+ value: z71.unknown()
55940
56108
  }),
55941
- z70.object({
55942
- op: z70.literal("move"),
55943
- from: z70.string(),
55944
- path: z70.string()
56109
+ z71.object({
56110
+ op: z71.literal("move"),
56111
+ from: z71.string(),
56112
+ path: z71.string()
55945
56113
  }),
55946
- z70.object({
55947
- op: z70.literal("copy"),
55948
- from: z70.string(),
55949
- path: z70.string()
56114
+ z71.object({
56115
+ op: z71.literal("copy"),
56116
+ from: z71.string(),
56117
+ path: z71.string()
55950
56118
  }),
55951
56119
  // Block-level operations (Phase 2)
55952
- z70.object({
55953
- op: z70.literal("add_block"),
55954
- blockKind: z70.string(),
55955
- afterBlockId: z70.string().nullable(),
55956
- content: z70.record(z70.string(), z70.unknown()),
55957
- rationale: z70.string()
56120
+ z71.object({
56121
+ op: z71.literal("add_block"),
56122
+ blockKind: z71.string(),
56123
+ afterBlockId: z71.string().nullable(),
56124
+ content: z71.record(z71.string(), z71.unknown()),
56125
+ rationale: z71.string()
55958
56126
  }),
55959
- z70.object({
55960
- op: z70.literal("delete_block"),
55961
- blockId: z70.string(),
55962
- rationale: z70.string()
56127
+ z71.object({
56128
+ op: z71.literal("delete_block"),
56129
+ blockId: z71.string(),
56130
+ rationale: z71.string()
55963
56131
  }),
55964
- z70.object({
55965
- op: z70.literal("reorder_block"),
55966
- blockId: z70.string(),
55967
- afterBlockId: z70.string().nullable(),
55968
- rationale: z70.string()
56132
+ z71.object({
56133
+ op: z71.literal("reorder_block"),
56134
+ blockId: z71.string(),
56135
+ afterBlockId: z71.string().nullable(),
56136
+ rationale: z71.string()
55969
56137
  })
55970
56138
  ]);
55971
- var PlaygroundProposeRequest = z70.object({
55972
- request: z70.string().min(1).max(2e3)
56139
+ var PlaygroundProposeRequest = z71.object({
56140
+ request: z71.string().min(1).max(2e3)
55973
56141
  });
55974
- var MultiPagePatchEnvelope = z70.object({
55975
- pageId: z70.string(),
55976
- blockId: z70.string().optional(),
56142
+ var MultiPagePatchEnvelope = z71.object({
56143
+ pageId: z71.string(),
56144
+ blockId: z71.string().optional(),
55977
56145
  // Not present for page-level ops
55978
- blockKind: z70.string().optional(),
55979
- blockPurpose: z70.string().optional().nullable(),
55980
- ops: z70.array(Rfc6902PatchOp),
55981
- rationale: z70.string(),
55982
- currentContent: z70.record(z70.string(), z70.unknown()).optional()
55983
- });
55984
- var MultiPageUpdateResponse = z70.object({
55985
- patches: z70.array(MultiPagePatchEnvelope),
55986
- assistantMessage: z70.string(),
55987
- pagesModified: z70.number(),
55988
- toolCallsUsed: z70.number()
56146
+ blockKind: z71.string().optional(),
56147
+ blockPurpose: z71.string().optional().nullable(),
56148
+ ops: z71.array(Rfc6902PatchOp),
56149
+ rationale: z71.string(),
56150
+ currentContent: z71.record(z71.string(), z71.unknown()).optional()
56151
+ });
56152
+ var MultiPageUpdateResponse = z71.object({
56153
+ patches: z71.array(MultiPagePatchEnvelope),
56154
+ assistantMessage: z71.string(),
56155
+ pagesModified: z71.number(),
56156
+ toolCallsUsed: z71.number()
55989
56157
  });
55990
56158
 
55991
56159
  // src/rendering/components/Block.shared.tsx