@riverbankcms/sdk 0.107.0 → 0.109.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 (256) hide show
  1. package/README.md +21 -1
  2. package/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-DWqwfy3_.mjs} +48 -28
  3. package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-B7OL4sfR.mjs} +10 -9
  4. package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-D0y2l8JN.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-D8Gt9Gbe.mjs} +633 -220
  6. package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-DUpalEdL.mjs} +5764 -1556
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +15383 -11388
  8. package/dist/_dts/api/src/blocks.d.ts +41 -7
  9. package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
  10. package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
  11. package/dist/_dts/api/src/bookingRecords.d.ts +177 -127
  12. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  13. package/dist/_dts/api/src/cache-tags.d.ts +3 -0
  14. package/dist/_dts/api/src/common/envelope.d.ts +7 -0
  15. package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
  16. package/dist/_dts/api/src/courses.d.ts +1 -0
  17. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
  18. package/dist/_dts/api/src/endpoints.d.ts +134 -0
  19. package/dist/_dts/api/src/footer-settings.d.ts +1 -0
  20. package/dist/_dts/api/src/footerSettings.d.ts +8 -0
  21. package/dist/_dts/api/src/index.d.ts +7 -4
  22. package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
  23. package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
  24. package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
  25. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
  26. package/dist/_dts/api/src/sdkContracts.d.ts +309 -1
  27. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  28. package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
  29. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +144 -60
  30. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +35 -1
  31. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +74 -28
  32. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
  33. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
  34. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  35. package/dist/_dts/blocks/src/index.d.ts +1 -1
  36. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
  37. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
  38. package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
  39. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
  40. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
  41. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +1 -22
  42. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +3 -0
  43. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -22
  44. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -0
  45. package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
  46. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
  47. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
  48. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +3 -0
  49. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
  50. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
  51. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
  52. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  53. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
  54. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
  55. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  56. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
  57. package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
  58. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +8 -0
  59. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
  60. package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
  61. package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
  62. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +33 -2
  63. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
  64. package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
  65. package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
  66. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
  67. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
  69. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  70. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
  71. package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
  72. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
  73. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
  74. package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
  75. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
  76. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
  77. package/dist/_dts/content-editor/src/index.d.ts +2 -0
  78. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
  79. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
  80. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
  81. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
  82. package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
  83. package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
  84. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  85. package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
  86. package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
  87. package/dist/_dts/content-model/src/index.d.ts +3 -0
  88. package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
  89. package/dist/_dts/core/src/branded.d.ts +3 -0
  90. package/dist/_dts/core/src/editor-state.d.ts +4 -0
  91. package/dist/_dts/core/src/footer-composition.d.ts +143 -0
  92. package/dist/_dts/core/src/index.d.ts +2 -0
  93. package/dist/_dts/core/src/public-profile.d.ts +73 -0
  94. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -205
  95. package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
  96. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
  97. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
  98. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
  99. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
  100. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
  101. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
  102. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  103. package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
  104. package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
  105. package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
  106. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
  107. package/dist/_dts/path-utils/src/index.d.ts +5 -0
  108. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
  109. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
  110. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  111. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  112. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  113. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  114. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
  115. package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
  116. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
  117. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
  118. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
  119. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
  120. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
  121. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
  122. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
  123. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
  124. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
  125. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
  126. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
  127. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
  128. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
  129. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
  130. package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
  131. package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
  132. package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
  133. package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
  134. package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
  135. package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
  136. package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
  137. package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
  138. package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
  139. package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
  140. package/dist/_dts/sdk/src/client/management/types.d.ts +58 -20
  141. package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
  142. package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
  143. package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
  144. package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
  145. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -2
  146. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
  147. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
  148. package/dist/_dts/sdk/src/version.d.ts +1 -1
  149. package/dist/_dts/site-commands/src/commands.d.ts +900 -827
  150. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  151. package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
  152. package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
  153. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
  154. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
  155. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  156. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  157. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
  158. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +45 -33
  159. package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
  160. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
  161. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
  162. package/dist/_dts/theme-core/src/buttons/types.d.ts +104 -86
  163. package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
  164. package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
  165. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  166. package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
  167. package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
  168. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  169. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +117 -150
  170. package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
  171. package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
  172. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
  173. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
  174. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
  175. package/dist/_dts/theme-core/src/schema.d.ts +1264 -138
  176. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  177. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
  178. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
  179. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
  180. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
  181. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +29 -8
  182. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
  183. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
  184. package/dist/cli/index.mjs +68552 -66955
  185. package/dist/cli/init-docs/content/cli-reference.md +50 -7
  186. package/dist/cli/init-docs/content/content-management.md +7 -4
  187. package/dist/cli/init-docs/content/workflow-publish.md +5 -1
  188. package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-DU1ygxU2.mjs} +1 -1
  189. package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-DB5zagCo.mjs} +3 -3
  190. package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-CTX9JHBL.mjs} +2 -2
  191. package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BYImhgiB.mjs} +1 -1
  192. package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-CRkw_M3l.mjs} +2 -2
  193. package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-BnmVBJJh.mjs} +2 -2
  194. package/dist/client/{accordion-DAIBVpTS.mjs → accordion-CeGreumd.mjs} +1 -1
  195. package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-CSzFNrpN.mjs} +6 -6
  196. package/dist/client/bookings.mjs +637 -328
  197. package/dist/client/{buttons-DJgynGHQ.mjs → buttons-DoFV7KDL.mjs} +618 -306
  198. package/dist/client/{carousel-D-SLfX8r.mjs → carousel-B2jDtogf.mjs} +1 -1
  199. package/dist/client/{cart-CEgbgJhX.mjs → cart-D-jZ-vaY.mjs} +3 -3
  200. package/dist/client/{checkout-CXWrCRAA.mjs → checkout-Dza-LA7N.mjs} +3 -3
  201. package/dist/client/client.mjs +2497 -1216
  202. package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-CrgzoXsm.mjs} +1 -30
  203. package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-TYkNychb.mjs} +7 -7
  204. package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-BI_90SsT.mjs} +5 -5
  205. package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-mNrpryE9.mjs} +2 -2
  206. package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-D4GVlCIY.mjs} +3 -3
  207. package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-YhKN018y.mjs} +2 -2
  208. package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-CdHGtilr.mjs} +7 -7
  209. package/dist/client/foregroundContract-xICPq59x.mjs +31 -0
  210. package/dist/client/{form-CH1lCusH.mjs → form-AcAL45rA.mjs} +2 -2
  211. package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-uEC52ueD.mjs} +3 -3
  212. package/dist/client/hooks.mjs +1249 -841
  213. package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-_wJDSUYe.mjs} +3 -3
  214. package/dist/client/{media-DHtSxS5V.mjs → media-BK0O3b-U.mjs} +3 -2
  215. package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-DrArsb2B.mjs} +2 -2
  216. package/dist/client/{pricing-BIbzmV0G.mjs → pricing-BSYVghwo.mjs} +1 -1
  217. package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-Dyk90sMs.mjs} +3 -3
  218. package/dist/client/{productList-Cc7OMrqN.mjs → productList-BCKThwAI.mjs} +3 -3
  219. package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-CkXxkdSR.mjs} +96 -33
  220. package/dist/client/rendering/client.mjs +1278 -523
  221. package/dist/client/rendering/islands.mjs +19 -19
  222. package/dist/client/rendering.mjs +2308 -1028
  223. package/dist/client/{shop-CQ_YbCnn.mjs → shop-DeltVH10.mjs} +6 -6
  224. package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BD9Jsm2Z.mjs} +6 -6
  225. package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-CmXD6FDS.mjs} +1 -1
  226. package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-B8v-lH_F.mjs} +2 -2
  227. package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-DbWJN8ld.mjs} +1 -1
  228. package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-EJIMUnqT.mjs} +46 -69
  229. package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-Cmh14fc7.mjs} +2 -2
  230. package/dist/preview-next/before-render.mjs +213 -0
  231. package/dist/preview-next/client/runtime.mjs +4 -4
  232. package/dist/preview-next/middleware.mjs +213 -0
  233. package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-CTO7CRPk.mjs} +213 -0
  234. package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-Dou0GAav.mjs} +2 -2
  235. package/dist/{separator-BoMSQnsP.mjs → separator-CI5wZNXT.mjs} +1 -1
  236. package/dist/server/components.mjs +2370 -1132
  237. package/dist/server/config-validation.mjs +1256 -842
  238. package/dist/server/config.mjs +1256 -843
  239. package/dist/server/data.mjs +1249 -841
  240. package/dist/server/date-time.mjs +386 -0
  241. package/dist/server/index.mjs +214 -1
  242. package/dist/server/navigation.mjs +9 -3
  243. package/dist/server/next.mjs +3421 -1949
  244. package/dist/server/page-converter.mjs +1236 -659
  245. package/dist/server/prebuild.mjs +1 -1
  246. package/dist/server/rendering/server.mjs +2074 -1060
  247. package/dist/server/rendering.mjs +2370 -1132
  248. package/dist/server/routing.mjs +1543 -1062
  249. package/dist/server/server.mjs +1464 -843
  250. package/dist/server/theme-bridge.mjs +1581 -474
  251. package/dist/server/theme.mjs +614 -305
  252. package/dist/styles/index.css +12 -1
  253. package/package.json +7 -1
  254. package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
  255. package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
  256. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
package/README.md CHANGED
@@ -14,6 +14,7 @@ A lightweight TypeScript SDK for consuming Riverbank CMS content in React Server
14
14
  - ✅ **Custom blocks** - Define site-specific blocks with full CMS editing support
15
15
  - ✅ **Content tooling** - Define content type schema in config and sync pages, entries, and navigation through explicit content push scopes
16
16
  - ✅ **Site URLs** - Configure preview and live URLs for dashboard integration
17
+ - ✅ **Timezone-safe dates** - Format event and booking times in an explicit IANA timezone
17
18
 
18
19
  ## Installation
19
20
 
@@ -187,6 +188,13 @@ SDK sites that need bespoke appointment booking UI can use the headless booking
187
188
 
188
189
  SDK sites that need bespoke event registration UI can use the headless event registration runtime from `@riverbankcms/sdk/bookings`. See [`docs/headless-event-registration.md`](./docs/headless-event-registration.md) for the real `blockOverrides` pattern with an `'event-registration'` override, `HeadlessEventRegistrationProvider`, `getEventRegistrationOverrideInput`, and `useHeadlessEventRegistrationFlow`.
189
190
 
191
+ ### Date and time formatting
192
+
193
+ Use `@riverbankcms/sdk/date-time` to render event and booking timestamps in
194
+ their intended timezone, including daylight-saving changes. See
195
+ [`docs/date-time-formatting.md`](./docs/date-time-formatting.md) for the
196
+ formatters, compact event-time defaults, range behavior, and error handling.
197
+
190
198
  ### Server-Side API
191
199
 
192
200
  ```tsx
@@ -1597,6 +1605,14 @@ Token values can be:
1597
1605
  - **CSS variable refs**: `'var(--brand-purple)'` (passed through)
1598
1606
  - **RGB values**: `'109 40 217'` (used directly)
1599
1607
 
1608
+ CSS variable references are suitable for emitted variables, structural block
1609
+ styles, cards, and inputs. Opt-in generated button skins resolve and validate
1610
+ foreground/background contrast while building the runtime, so every token used
1611
+ by `components.buttons` must be a concrete hex or RGB value. When your design
1612
+ system owns brand colours through `var(...)`, leave `components.buttons`
1613
+ disabled and style the button classes in your design-system CSS, or provide
1614
+ concrete button tokens to ThemeBridge.
1615
+
1600
1616
  Canonical tokens win when aliases are also present. Accepted aliases are `text -> foreground`, `mutedText -> mutedForeground`, `white -> primaryForeground`, and `danger -> destructive`.
1601
1617
 
1602
1618
  ### Design Presets
@@ -1688,7 +1704,8 @@ Add custom CSS rules scoped to theme components:
1688
1704
 
1689
1705
  ### Pass-Through to Design Systems
1690
1706
 
1691
- Reference existing CSS variables from your design system:
1707
+ Reference existing CSS variables from your design system when ThemeBridge is
1708
+ not generating button skins:
1692
1709
 
1693
1710
  ```tsx
1694
1711
  <ThemeBridgeProvider
@@ -1699,6 +1716,9 @@ Reference existing CSS variables from your design system:
1699
1716
  background: 'var(--ds-bg)',
1700
1717
  foreground: 'var(--ds-text)',
1701
1718
  },
1719
+ components: {
1720
+ buttons: false,
1721
+ },
1702
1722
  }}
1703
1723
  >
1704
1724
  ```
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { A as markApplySaved, B as previewHeaderStyle, Bl as Popover, C as committedPaletteForSnapshot, Cf as ChevronLeft, Cu as DropdownMenuTrigger, D as dismissWarnings, E as deriveStyleConfiguratorCapabilities, F as prepareStalePaletteRetry, Fd as Tablet, Fl as SelectTrigger, G as setPaletteColors, Gl as TabsContent, H as previewSiteStyle, Hl as PopoverTrigger, Hu as cn, I as previewButtonPersonality, Ii as getCuratedSiteStyle, Il as SelectValue, It as deriveRouteMetadataPresentation, J as toggleRow, Jd as Monitor, K as styleConfiguratorHistoryEntryForPersistedSelection, Kc as buttonPersonalities, Kl as TabsList, Kt as createManifestValidation, L as previewCuratedPalette, Lt as resolvePageRouteSlug, M as openRow, Ml as Select, N as paletteMutationCapability, Nl as SelectContent, O as isPreviewingChange, P as palettePreviewProjection, Pi as curatedSiteStyles, Pl as SelectItem, R as previewFooterLook, Rd as Smartphone, Rt as resolveContentTitle, S as cancelPreview, Sf as ChevronRight, St as useEditorUiStoreInstance, Su as DropdownMenuSeparator, T as createStyleConfiguratorState, Tf as Check, U as reconcilePaletteLibraryActive, Ul as Input, V as previewSitePalette, Vl as PopoverContent, W as resetTypographyToSaved, Wd as Plus, Wl as Tabs, Wt as ManifestForm, Xd as Maximize2, Yt as createStoreBackend, Zd as LoaderCircle, _ as usePreviewDesignCoordinator, _a as findCuratedPalette, _u as Surface, b as applyResolvedSelections, ba as paletteColorsEqual, bu as DropdownMenuItem, c as selectionSnapshotFromApplySiteStyleSelectionResponse, cu as CollapsibleTrigger, d as cycleSiteChromeLookId, ea as requireEntriesForCuratedChoices, f as cycleableSiteChromeOptions, ga as curatedPalettes, h as planSiteStylePreviewChange, ht as useUISelector, ia as getHeaderStyle, in as listEntryPageContentSlots, j as markApplySaving, k as markApplyFailed, kd as X$1, l as resolveStyleConfiguratorInitialSnapshot, m as planSiteChromeLookSelection, md as assertNever$1, mt as ContentFieldsForm, n as useSiteChromeCustomizeOptional, na as getFooterLayout, nt as resolvePreviewSidebarTab, ou as Collapsible, p as planSiteChromeFooterLayoutSelection, q as syncStyleConfiguratorState, qc as findButtonPersonality, ql as TabsTrigger, qt as FormRenderer, qu as unsafeAsEditorBlockId, ra as getHeaderLayout, s as buildApplySiteStyleSelectionBody, su as CollapsibleContent, ta as findFooterLook, tt as createOptimisticActionRunner, u as buildSiteChromeLookModels, va as buildPaletteLibraryReadModel, vt as useEntryController, vu as DropdownMenu, w as createPalette, x as applyTypographyDraftPatch, xa as paletteColorsSchema, xt as useEditorUiStore, xu as DropdownMenuLabel, ya as paletteColorEntries, yu as DropdownMenuContent, z as previewHeaderLayout, zd as SlidersHorizontal, zl as SearchInput, zu as Button } from "./SiteChromeCustomizeContext-C_sizso-.mjs";
3
- import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-BPcJPzdz.mjs";
4
- import { C as buildFontPreviewUrl, D as Callout, O as CalloutDescription, S as isAdapterReferenceKind, T as getSiteFontsStorageUrl, _ as usePreviewBlockCustomizeSelectionOptional, b as previewWidgetOverrides, d as buildPreviewDashboardSetupUrl, f as resolvePreviewDashboardSetupHandoff, g as canInspectSiteStyle, h as canApplySiteStyle, m as resolvePreviewSidebarChromeModel, p as resolvePreviewEditorGuidanceModel, v as useBlockCustomizeControls, w as generateFontFaceCss, x as BlockEditor, y as PreviewFormProvider } from "./SdkPreviewModeRuntime-CVB7urtl.mjs";
5
- import { t as Separator } from "./separator-BoMSQnsP.mjs";
2
+ import { $d as SlidersHorizontal, $l as Popover, A as deriveStyleConfiguratorCapabilities, Aa as paletteColorsEqual, Au as Surface, B as previewButtonPersonality, Ct as useEntryController, D as committedPaletteForSnapshot, Da as findCuratedPalette, Dt as useEditorUiStoreInstance, E as cancelPreview, Ea as curatedPalettes, Et as useEditorUiStore, F as markApplySaving, Ff as ChevronRight, Fu as DropdownMenuSeparator, G as previewSitePalette, Gl as Select, H as previewFooterLook, Ht as resolvePageRouteSlug, I as openRow, If as ChevronLeft, Iu as DropdownMenuTrigger, J as resetTypographyToSaved, Jl as SelectTrigger, K as previewSiteStyle, Kl as SelectContent, L as paletteMutationCapability, M as isPreviewingChange, Mu as DropdownMenuContent, N as markApplyFailed, Nu as DropdownMenuItem, O as createPalette, Oa as buildPaletteLibraryReadModel, Od as assertNever$1, P as markApplySaved, Pu as DropdownMenuLabel, Q as toggleRow, Qd as Smartphone, Ql as SearchInput, Qt as FormRenderer, Qu as Button, R as palettePreviewProjection, Rf as Check, T as applyTypographyDraftPatch, U as previewHeaderLayout, Ud as X$1, Ut as resolveContentTitle, V as previewCuratedPalette, Vi as getCuratedSiteStyle, Vt as deriveRouteMetadataPresentation, W as previewHeaderStyle, X as styleConfiguratorHistoryEntryForPersistedSelection, Y as setPaletteColors, Yd as Tablet, Yl as SelectValue, Yt as ManifestForm, Z as syncStyleConfiguratorState, Zt as createManifestValidation, _ as planSiteChromeFooterLayoutSelection, aa as requireEntriesForCuratedChoices, at as createOptimisticActionRunner, au as TabsList, bt as useUISelector, bu as CollapsibleContent, c as selectionSnapshotFromApplySiteStyleSelectionResponse, ca as getHeaderLayout, cf as Monitor, d as PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE, df as LoaderCircle, dn as listEntryPageContentSlots, en as createStoreBackend, eu as PopoverContent, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, g as cycleableSiteChromeOptions, h as cycleSiteChromeLookId, if as Plus, iu as TabsContent, j as dismissWarnings, ja as paletteColorsSchema, ju as DropdownMenu, k as createStyleConfiguratorState, ka as paletteColorEntries, l as resolveStyleConfiguratorInitialSnapshot, la as getHeaderStyle, m as buildSiteChromeLookModels, n as useSiteChromeCustomizeOptional, nl as buttonPersonalities, nu as Input, oa as findFooterLook, ot as resolvePreviewSidebarTab, ou as TabsTrigger, p as reportPreviewDesignError, q as reconcilePaletteLibraryActive, ql as SelectItem, rl as findButtonPersonality, ru as Tabs, s as buildApplySiteStyleSelectionBody, sa as getFooterLayout, sd as unsafeAsEditorBlockId, st as FooterComposerPanel, td as cn, tu as PopoverTrigger, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, uf as Maximize2, v as planSiteChromeLookSelection, w as applyResolvedSelections, x as usePreviewDesignCoordinator, xu as CollapsibleTrigger, y as planSiteStylePreviewChange, yt as ContentFieldsForm, yu as Collapsible, z as prepareStalePaletteRetry, zi as curatedSiteStyles } from "./SiteChromeCustomizeContext-DUpalEdL.mjs";
3
+ import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-CTO7CRPk.mjs";
4
+ import { C as buildFontPreviewUrl, D as Callout, O as CalloutDescription, S as isAdapterReferenceKind, T as getSiteFontsStorageUrl, _ as usePreviewBlockCustomizeSelectionOptional, b as previewWidgetOverrides, d as buildPreviewDashboardSetupUrl, f as resolvePreviewDashboardSetupHandoff, g as canInspectSiteStyle, h as canApplySiteStyle, m as resolvePreviewSidebarChromeModel, p as resolvePreviewEditorGuidanceModel, v as useBlockCustomizeControls, w as generateFontFaceCss, x as BlockEditor, y as PreviewFormProvider } from "./SdkPreviewModeRuntime-D8Gt9Gbe.mjs";
5
+ import { t as Separator } from "./separator-CI5wZNXT.mjs";
6
6
  import React, { forwardRef, useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, useTransition } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  import { useQuery, useQueryClient } from "@tanstack/react-query";
@@ -3363,7 +3363,8 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
3363
3363
  }).then(unwrapResponse);
3364
3364
  live = prepareStalePaletteRetry(reconcilePaletteLibraryActive(current, paletteAuthority.active, paletteAuthority.palettes), { sitePalettes: paletteAuthority.palettes });
3365
3365
  } catch (error) {
3366
- const message = error instanceof Error ? error.message : "Unable to refresh palette authority. Your palette draft is still here.";
3366
+ reportPreviewDesignError("Failed to refresh palette authority", error);
3367
+ const message = PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE;
3367
3368
  setState((latest) => latest ? markApplyFailed(latest, message, "stale") : latest);
3368
3369
  return;
3369
3370
  }
@@ -3374,15 +3375,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
3374
3375
  setState(live);
3375
3376
  }
3376
3377
  const previewed = live.previewed;
3377
- const siteStyle = getCuratedSiteStyle(previewed.siteStyleId);
3378
- if (!siteStyle) return;
3379
- const compiled = planSiteStylePreviewChange({
3380
- siteStyle,
3381
- selection: previewed,
3382
- baseTheme: theme,
3383
- headerSelectionContext,
3384
- footerSelectionContext
3385
- });
3378
+ if (!getCuratedSiteStyle(previewed.siteStyleId)) return;
3386
3379
  await runnerRef.current.run({
3387
3380
  optimistic: () => {
3388
3381
  applyStarted("style-configurator");
@@ -3391,17 +3384,10 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
3391
3384
  network: async () => {
3392
3385
  const body = buildApplySiteStyleSelectionBody({
3393
3386
  base: live.base,
3394
- previewed: {
3395
- ...previewed,
3396
- buttonPersonalityId: compiled.resolvedSelections.buttonPersonalityId,
3397
- headerLayoutId: compiled.resolvedSelections.headerLayoutId,
3398
- headerStyleId: compiled.resolvedSelections.headerStyleId,
3399
- headerLookId: compiled.resolvedSelections.headerLookId,
3400
- typography: compiled.themeOverlay.typography
3401
- },
3387
+ previewed,
3402
3388
  selectionId
3403
3389
  });
3404
- if (!body.ok) throw new Error(paletteApplyPlanErrorMessage(body.error));
3390
+ if (!body.ok) throw new StyleApplyPlanError(paletteApplyPlanErrorMessage(body.error));
3405
3391
  return unwrapResponse(await apiClient({
3406
3392
  endpoint: "applySiteStyleSelection",
3407
3393
  params: { siteId },
@@ -3933,10 +3919,11 @@ function PaletteRow({ expanded, onToggle, apiClient, siteId, siteStyle, palette,
3933
3919
  onLibraryLoaded(response);
3934
3920
  }).catch((error) => {
3935
3921
  if (cancelled) return;
3922
+ reportPreviewDesignError("Failed to load site palettes", error);
3936
3923
  setLibrary((current) => ({
3937
3924
  kind: "failed",
3938
3925
  palettes: current.palettes,
3939
- message: error instanceof Error ? error.message : "Unable to load palettes."
3926
+ message: PREVIEW_DESIGN_LOAD_ERROR_MESSAGE
3940
3927
  }));
3941
3928
  });
3942
3929
  return () => {
@@ -4172,13 +4159,18 @@ function paletteApplyPlanErrorMessage(error) {
4172
4159
  switch (error) {
4173
4160
  case "invalid-palette-state": return "Palette details are unavailable. Refresh and try again.";
4174
4161
  case "curated-palette-missing": return "This curated palette is no longer available. Refresh and try again.";
4162
+ case "no-selection-changes": return "There are no design changes to apply.";
4175
4163
  default: return assertNever$1(error);
4176
4164
  }
4177
4165
  }
4178
4166
  function classifyStyleApplyError(error) {
4167
+ if (error instanceof StyleApplyPlanError) return {
4168
+ kind: "other",
4169
+ message: error.message
4170
+ };
4179
4171
  if (isRecord(error)) {
4180
4172
  const status = error.status;
4181
- const code = error.code;
4173
+ const code = error.code ?? error.errorCode;
4182
4174
  if (code === "PALETTE_CAP_REACHED") return {
4183
4175
  kind: "palette-cap",
4184
4176
  message: "This site has reached its palette limit. Your palette draft is still here."
@@ -4188,11 +4180,18 @@ function classifyStyleApplyError(error) {
4188
4180
  message: "This design changed elsewhere. Refreshing the latest version now."
4189
4181
  };
4190
4182
  }
4183
+ reportPreviewDesignError("Failed to apply site style selection", error);
4191
4184
  return {
4192
4185
  kind: "other",
4193
- message: error instanceof Error ? error.message : "Unable to apply your selection."
4186
+ message: PREVIEW_DESIGN_SAVE_ERROR_MESSAGE
4194
4187
  };
4195
4188
  }
4189
+ var StyleApplyPlanError = class extends Error {
4190
+ constructor(..._args) {
4191
+ super(..._args);
4192
+ this.name = "StyleApplyPlanError";
4193
+ }
4194
+ };
4196
4195
  function expandedRowForPreviewDesignRow(row) {
4197
4196
  switch (row) {
4198
4197
  case "header": return "header-layout";
@@ -4226,7 +4225,7 @@ function describeWarning(warning) {
4226
4225
  }
4227
4226
  //#endregion
4228
4227
  //#region ../preview-next/src/client/preview/PreviewEditorSidebar.tsx
4229
- function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonPersonalityId = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, themeSelectionFooterContext, designRowRequest = null, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, siteStyleAccess = { kind: "hidden" }, activeTab, onTabChange, onClose, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange }) {
4228
+ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonPersonalityId = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, themeSelectionFooterContext, designRowRequest = null, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, siteStyleAccess = { kind: "hidden" }, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange }) {
4230
4229
  const controller = useEntryController();
4231
4230
  const controllerBlocks = controller.blocks;
4232
4231
  const uiStore = useEditorUiStoreInstance();
@@ -4399,6 +4398,24 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
4399
4398
  })
4400
4399
  })
4401
4400
  });
4401
+ const resolvedEditorPanel = previewInspection.kind === "footer-module" || previewInspection.kind === "footer" ? /* @__PURE__ */ jsx("div", {
4402
+ className: "h-full overflow-y-auto",
4403
+ children: /* @__PURE__ */ jsx(FooterComposerPanel, {
4404
+ apiClient,
4405
+ siteId,
4406
+ customFooterMode: resolvePreviewFooterMode(theme?.footer?.mode),
4407
+ manageLinksHref: `${dashboardBaseUrl?.replace(/\/$/u, "") ?? ""}/dashboard/sites/${siteId}/navigation`,
4408
+ manageSettingsHref: `${dashboardBaseUrl?.replace(/\/$/u, "") ?? ""}/dashboard/sites/${siteId}/settings`,
4409
+ legalRegion: theme?.footer?.bottomBar?.enabled === true ? "separate" : "integrated",
4410
+ initialTarget: previewInspection.kind === "footer-module" ? {
4411
+ kind: "module",
4412
+ moduleId: previewInspection.moduleId
4413
+ } : { kind: "overview" },
4414
+ variant: "sidebar",
4415
+ canEdit,
4416
+ onSaved: onFooterSaved
4417
+ })
4418
+ }) : editorPanel;
4402
4419
  const assistantPanelDisplay = assistantAvailable ? assistantPanel : /* @__PURE__ */ jsx("div", {
4403
4420
  className: "flex h-full flex-col items-center justify-center p-6 text-center text-sm text-muted-foreground",
4404
4421
  children: "AI Assistant is available for pages in preview mode."
@@ -4445,7 +4462,7 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
4445
4462
  value: "editor",
4446
4463
  forceMount: true,
4447
4464
  className: "mt-0 min-h-0 flex-1 overflow-hidden data-[state=inactive]:hidden",
4448
- children: editorPanel
4465
+ children: resolvedEditorPanel
4449
4466
  }),
4450
4467
  showAssistantTab ? /* @__PURE__ */ jsx(TabsContent, {
4451
4468
  value: "assistant",
@@ -4457,6 +4474,9 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
4457
4474
  })
4458
4475
  });
4459
4476
  }
4477
+ function resolvePreviewFooterMode(value) {
4478
+ return value === "blocks" || value === "default+blocks" || value === "none" ? value : "default";
4479
+ }
4460
4480
  function PreviewMetadataPanel({ ownerKind, contentTypeKey, entry }) {
4461
4481
  const uiStore = useEditorUiStoreInstance();
4462
4482
  const currentSlug = useEditorUiStore((state) => state.metadata.getAtPath("draftSlug")) ?? void 0;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { $l as Dialog, Bu as cva, Cu as DropdownMenuTrigger, Dl as TooltipContent, El as Tooltip, Gd as Pencil, Hu as cn, Kd as PenLine, Ld as Sparkles, Md as TriangleAlert, Mt as useMultiAutosave, St as useEditorUiStoreInstance, Ud as Redo2, Zd as LoaderCircle, a as previewDesignHistoryDomainForCommand, au as DialogTitle, bt as classifyHistoryShortcut, bu as DropdownMenuItem, df as EllipsisVertical, i as usePreviewDesignHistoryOrder, iu as DialogHeader, jd as Undo2, kl as TooltipTrigger, lf as Eye, n as useSiteChromeCustomizeOptional, nu as DialogDescription, o as selectPreviewDesignHistoryDomain, pt as useEditor, qd as Palette, tu as DialogContent, vu as DropdownMenu, wf as ChevronDown, xt as useEditorUiStore, yt as useEntryEditorController, yu as DropdownMenuContent, zu as Button } from "./SiteChromeCustomizeContext-C_sizso-.mjs";
3
- import { d as unwrapResponse, r as usePreviewAuth } from "./previewAuthStore-BPcJPzdz.mjs";
4
- import { E as FixedBottomSurface, a as usePreviewPageDesignEditorState, c as applyPreviewChromeSurfaceToElement, l as resolvePreviewChromeSurface, o as PREVIEW_CHROME_PORTAL_CLASS_NAME, s as PREVIEW_CHROME_THEME_CLASS_NAME, u as setPreviewSidebarTab } from "./SdkPreviewModeRuntime-CVB7urtl.mjs";
2
+ import { $u as cva, Bl as TooltipContent, Cf as Eye, Dt as useEditorUiStoreInstance, Et as useEditorUiStore, Gd as Undo2, Hl as TooltipTrigger, Iu as DropdownMenuTrigger, Kd as TriangleAlert, Lf as ChevronDown, Lt as useMultiAutosave, Mu as DropdownMenuContent, Nu as DropdownMenuItem, Qu as Button, Tf as EllipsisVertical, Tt as classifyHistoryShortcut, Zd as Sparkles, _u as DialogHeader, a as previewDesignHistoryDomainForCommand, af as Pencil, df as LoaderCircle, fu as Dialog, hu as DialogDescription, i as usePreviewDesignHistoryOrder, ju as DropdownMenu, mu as DialogContent, n as useSiteChromeCustomizeOptional, o as selectPreviewDesignHistoryDomain, of as PenLine, rf as Redo2, sf as Palette, td as cn, vt as useEditor, vu as DialogTitle, wt as useEntryEditorController, zl as Tooltip } from "./SiteChromeCustomizeContext-DUpalEdL.mjs";
3
+ import { d as unwrapResponse, r as usePreviewAuth } from "./previewAuthStore-CTO7CRPk.mjs";
4
+ import { E as FixedBottomSurface, a as usePreviewPageDesignEditorState, c as applyPreviewChromeSurfaceToElement, l as resolvePreviewChromeSurface, o as PREVIEW_CHROME_PORTAL_CLASS_NAME, s as PREVIEW_CHROME_THEME_CLASS_NAME, u as setPreviewSidebarTab } from "./SdkPreviewModeRuntime-D8Gt9Gbe.mjs";
5
5
  import * as React$1 from "react";
6
6
  import { useCallback, useEffect, useMemo, useState, useTransition } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -718,20 +718,21 @@ function PreviewEditorUI({ dashboardBaseUrl = null, inMaintenanceMode = false, s
718
718
  disableDiscard: base.disableDiscard ?? !hasUnpublishedChanges
719
719
  };
720
720
  }, [hasUnpublishedChanges, controller.toolbar]);
721
- const handlePublish = async () => {
721
+ const entryLifecycleActions = controller.actions.kind === "entryLifecycle" ? controller.actions : null;
722
+ const handlePublish = entryLifecycleActions ? async () => {
722
723
  try {
723
- await controller.actions.publish();
724
+ await entryLifecycleActions.publish();
724
725
  } catch (err) {
725
726
  console.error("Preview publish error", err);
726
727
  }
727
- };
728
- const handleDiscard = async () => {
728
+ } : void 0;
729
+ const handleDiscard = entryLifecycleActions ? async () => {
729
730
  try {
730
- await controller.actions.discardDraft();
731
+ await entryLifecycleActions.discardDraft();
731
732
  } catch (err) {
732
733
  console.error("Preview discard error", err);
733
734
  }
734
- };
735
+ } : void 0;
735
736
  const designHistoryControllers = useMemo(() => ({
736
737
  "site-style-design": siteStyleHistory,
737
738
  "site-chrome-quick-controls": quickControlHistory,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { n as markPreviewAuthExpired, s as ApiRequestError } from "./previewAuthStore-BPcJPzdz.mjs";
2
+ import { n as markPreviewAuthExpired, s as ApiRequestError } from "./previewAuthStore-CTO7CRPk.mjs";
3
3
  import { createContext, useContext, useRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { MutationCache, QueryCache, QueryClient, QueryClientProvider } from "@tanstack/react-query";