@batterai/editor-shell 0.1.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 (666) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +101 -0
  3. package/README.md +11 -0
  4. package/dist/App.d.ts +4 -0
  5. package/dist/App.d.ts.map +1 -0
  6. package/dist/App.js +388 -0
  7. package/dist/App.js.map +1 -0
  8. package/dist/app/AppCanvas.d.ts +52 -0
  9. package/dist/app/AppCanvas.d.ts.map +1 -0
  10. package/dist/app/AppCanvas.js +43 -0
  11. package/dist/app/AppCanvas.js.map +1 -0
  12. package/dist/app/AppDialogs.d.ts +25 -0
  13. package/dist/app/AppDialogs.d.ts.map +1 -0
  14. package/dist/app/AppDialogs.js +16 -0
  15. package/dist/app/AppDialogs.js.map +1 -0
  16. package/dist/app/AppInspectorPanel.d.ts +66 -0
  17. package/dist/app/AppInspectorPanel.d.ts.map +1 -0
  18. package/dist/app/AppInspectorPanel.js +94 -0
  19. package/dist/app/AppInspectorPanel.js.map +1 -0
  20. package/dist/app/AppStates.d.ts +5 -0
  21. package/dist/app/AppStates.d.ts.map +1 -0
  22. package/dist/app/AppStates.js +8 -0
  23. package/dist/app/AppStates.js.map +1 -0
  24. package/dist/app/AppTypes.d.ts +18 -0
  25. package/dist/app/AppTypes.d.ts.map +1 -0
  26. package/dist/app/AppTypes.js +2 -0
  27. package/dist/app/AppTypes.js.map +1 -0
  28. package/dist/app/OperationErrorBanner.d.ts +5 -0
  29. package/dist/app/OperationErrorBanner.d.ts.map +1 -0
  30. package/dist/app/OperationErrorBanner.js +5 -0
  31. package/dist/app/OperationErrorBanner.js.map +1 -0
  32. package/dist/app/capability-guards.d.ts +9 -0
  33. package/dist/app/capability-guards.d.ts.map +1 -0
  34. package/dist/app/capability-guards.js +22 -0
  35. package/dist/app/capability-guards.js.map +1 -0
  36. package/dist/app/deriveSelectionState.d.ts +31 -0
  37. package/dist/app/deriveSelectionState.d.ts.map +1 -0
  38. package/dist/app/deriveSelectionState.js +79 -0
  39. package/dist/app/deriveSelectionState.js.map +1 -0
  40. package/dist/app/helpers.d.ts +31 -0
  41. package/dist/app/helpers.d.ts.map +1 -0
  42. package/dist/app/helpers.js +145 -0
  43. package/dist/app/helpers.js.map +1 -0
  44. package/dist/app/hostServices.d.ts +2 -0
  45. package/dist/app/hostServices.d.ts.map +1 -0
  46. package/dist/app/hostServices.js +2 -0
  47. package/dist/app/hostServices.js.map +1 -0
  48. package/dist/app/persistence-machine.d.ts +27 -0
  49. package/dist/app/persistence-machine.d.ts.map +1 -0
  50. package/dist/app/persistence-machine.js +66 -0
  51. package/dist/app/persistence-machine.js.map +1 -0
  52. package/dist/app/useCollectionEditing.d.ts +30 -0
  53. package/dist/app/useCollectionEditing.d.ts.map +1 -0
  54. package/dist/app/useCollectionEditing.js +80 -0
  55. package/dist/app/useCollectionEditing.js.map +1 -0
  56. package/dist/app/useCommitActions.d.ts +64 -0
  57. package/dist/app/useCommitActions.d.ts.map +1 -0
  58. package/dist/app/useCommitActions.js +319 -0
  59. package/dist/app/useCommitActions.js.map +1 -0
  60. package/dist/app/useEditorCollaboration.d.ts +30 -0
  61. package/dist/app/useEditorCollaboration.d.ts.map +1 -0
  62. package/dist/app/useEditorCollaboration.js +374 -0
  63. package/dist/app/useEditorCollaboration.js.map +1 -0
  64. package/dist/app/useEditorEffects.d.ts +42 -0
  65. package/dist/app/useEditorEffects.d.ts.map +1 -0
  66. package/dist/app/useEditorEffects.js +105 -0
  67. package/dist/app/useEditorEffects.js.map +1 -0
  68. package/dist/app/useEditorRuntime.d.ts +34 -0
  69. package/dist/app/useEditorRuntime.d.ts.map +1 -0
  70. package/dist/app/useEditorRuntime.js +68 -0
  71. package/dist/app/useEditorRuntime.js.map +1 -0
  72. package/dist/app/useEditorState.d.ts +55 -0
  73. package/dist/app/useEditorState.d.ts.map +1 -0
  74. package/dist/app/useEditorState.js +68 -0
  75. package/dist/app/useEditorState.js.map +1 -0
  76. package/dist/app/usePageOps.d.ts +37 -0
  77. package/dist/app/usePageOps.d.ts.map +1 -0
  78. package/dist/app/usePageOps.js +69 -0
  79. package/dist/app/usePageOps.js.map +1 -0
  80. package/dist/app/usePersistence.d.ts +48 -0
  81. package/dist/app/usePersistence.d.ts.map +1 -0
  82. package/dist/app/usePersistence.js +344 -0
  83. package/dist/app/usePersistence.js.map +1 -0
  84. package/dist/app/usePreviewSession.d.ts +22 -0
  85. package/dist/app/usePreviewSession.d.ts.map +1 -0
  86. package/dist/app/usePreviewSession.js +21 -0
  87. package/dist/app/usePreviewSession.js.map +1 -0
  88. package/dist/app/useWorkspaceDocumentSync.d.ts +33 -0
  89. package/dist/app/useWorkspaceDocumentSync.d.ts.map +1 -0
  90. package/dist/app/useWorkspaceDocumentSync.js +128 -0
  91. package/dist/app/useWorkspaceDocumentSync.js.map +1 -0
  92. package/dist/appearance.d.ts +6 -0
  93. package/dist/appearance.d.ts.map +1 -0
  94. package/dist/appearance.js +53 -0
  95. package/dist/appearance.js.map +1 -0
  96. package/dist/bindingChips.d.ts +28 -0
  97. package/dist/bindingChips.d.ts.map +1 -0
  98. package/dist/bindingChips.js +93 -0
  99. package/dist/bindingChips.js.map +1 -0
  100. package/dist/block-factory.d.ts +21 -0
  101. package/dist/block-factory.d.ts.map +1 -0
  102. package/dist/block-factory.js +78 -0
  103. package/dist/block-factory.js.map +1 -0
  104. package/dist/blockHost.d.ts +22 -0
  105. package/dist/blockHost.d.ts.map +1 -0
  106. package/dist/blockHost.js +103 -0
  107. package/dist/blockHost.js.map +1 -0
  108. package/dist/blockInteraction.d.ts +11 -0
  109. package/dist/blockInteraction.d.ts.map +1 -0
  110. package/dist/blockInteraction.js +16 -0
  111. package/dist/blockInteraction.js.map +1 -0
  112. package/dist/blockPresets.d.ts +4 -0
  113. package/dist/blockPresets.d.ts.map +1 -0
  114. package/dist/blockPresets.js +11 -0
  115. package/dist/blockPresets.js.map +1 -0
  116. package/dist/collaboration.d.ts +41 -0
  117. package/dist/collaboration.d.ts.map +1 -0
  118. package/dist/collaboration.js +4 -0
  119. package/dist/collaboration.js.map +1 -0
  120. package/dist/collectionItemAddress.d.ts +12 -0
  121. package/dist/collectionItemAddress.d.ts.map +1 -0
  122. package/dist/collectionItemAddress.js +19 -0
  123. package/dist/collectionItemAddress.js.map +1 -0
  124. package/dist/components/AddCollectionItemControl.d.ts +15 -0
  125. package/dist/components/AddCollectionItemControl.d.ts.map +1 -0
  126. package/dist/components/AddCollectionItemControl.js +19 -0
  127. package/dist/components/AddCollectionItemControl.js.map +1 -0
  128. package/dist/components/AuditHistoryPanel.d.ts +10 -0
  129. package/dist/components/AuditHistoryPanel.d.ts.map +1 -0
  130. package/dist/components/AuditHistoryPanel.js +11 -0
  131. package/dist/components/AuditHistoryPanel.js.map +1 -0
  132. package/dist/components/Canvas.d.ts +64 -0
  133. package/dist/components/Canvas.d.ts.map +1 -0
  134. package/dist/components/Canvas.js +238 -0
  135. package/dist/components/Canvas.js.map +1 -0
  136. package/dist/components/CollaborationLayer.d.ts +13 -0
  137. package/dist/components/CollaborationLayer.d.ts.map +1 -0
  138. package/dist/components/CollaborationLayer.js +91 -0
  139. package/dist/components/CollaborationLayer.js.map +1 -0
  140. package/dist/components/DesignSettingsPanel.d.ts +10 -0
  141. package/dist/components/DesignSettingsPanel.d.ts.map +1 -0
  142. package/dist/components/DesignSettingsPanel.js +26 -0
  143. package/dist/components/DesignSettingsPanel.js.map +1 -0
  144. package/dist/components/EditableDate.d.ts +24 -0
  145. package/dist/components/EditableDate.d.ts.map +1 -0
  146. package/dist/components/EditableDate.js +41 -0
  147. package/dist/components/EditableDate.js.map +1 -0
  148. package/dist/components/EditableText.d.ts +23 -0
  149. package/dist/components/EditableText.d.ts.map +1 -0
  150. package/dist/components/EditableText.js +53 -0
  151. package/dist/components/EditableText.js.map +1 -0
  152. package/dist/components/FieldControl.d.ts +15 -0
  153. package/dist/components/FieldControl.d.ts.map +1 -0
  154. package/dist/components/FieldControl.js +64 -0
  155. package/dist/components/FieldControl.js.map +1 -0
  156. package/dist/components/IconFieldEditor.d.ts +9 -0
  157. package/dist/components/IconFieldEditor.d.ts.map +1 -0
  158. package/dist/components/IconFieldEditor.js +15 -0
  159. package/dist/components/IconFieldEditor.js.map +1 -0
  160. package/dist/components/ImageFieldEditor.d.ts +15 -0
  161. package/dist/components/ImageFieldEditor.d.ts.map +1 -0
  162. package/dist/components/ImageFieldEditor.js +37 -0
  163. package/dist/components/ImageFieldEditor.js.map +1 -0
  164. package/dist/components/Inspector.d.ts +55 -0
  165. package/dist/components/Inspector.d.ts.map +1 -0
  166. package/dist/components/Inspector.js +44 -0
  167. package/dist/components/Inspector.js.map +1 -0
  168. package/dist/components/LayoutBlockEditor.d.ts +32 -0
  169. package/dist/components/LayoutBlockEditor.d.ts.map +1 -0
  170. package/dist/components/LayoutBlockEditor.js +176 -0
  171. package/dist/components/LayoutBlockEditor.js.map +1 -0
  172. package/dist/components/LicenseWatermark.d.ts +5 -0
  173. package/dist/components/LicenseWatermark.d.ts.map +1 -0
  174. package/dist/components/LicenseWatermark.js +7 -0
  175. package/dist/components/LicenseWatermark.js.map +1 -0
  176. package/dist/components/NestedBlockItem.d.ts +26 -0
  177. package/dist/components/NestedBlockItem.d.ts.map +1 -0
  178. package/dist/components/NestedBlockItem.js +164 -0
  179. package/dist/components/NestedBlockItem.js.map +1 -0
  180. package/dist/components/NestedInsertSlot.d.ts +18 -0
  181. package/dist/components/NestedInsertSlot.d.ts.map +1 -0
  182. package/dist/components/NestedInsertSlot.js +51 -0
  183. package/dist/components/NestedInsertSlot.js.map +1 -0
  184. package/dist/components/NewPageDialog.d.ts +9 -0
  185. package/dist/components/NewPageDialog.d.ts.map +1 -0
  186. package/dist/components/NewPageDialog.js +12 -0
  187. package/dist/components/NewPageDialog.js.map +1 -0
  188. package/dist/components/PageFrame.d.ts +75 -0
  189. package/dist/components/PageFrame.d.ts.map +1 -0
  190. package/dist/components/PageFrame.js +87 -0
  191. package/dist/components/PageFrame.js.map +1 -0
  192. package/dist/components/PageInspector.d.ts +16 -0
  193. package/dist/components/PageInspector.d.ts.map +1 -0
  194. package/dist/components/PageInspector.js +56 -0
  195. package/dist/components/PageInspector.js.map +1 -0
  196. package/dist/components/PresetSaveDialog.d.ts +8 -0
  197. package/dist/components/PresetSaveDialog.d.ts.map +1 -0
  198. package/dist/components/PresetSaveDialog.js +7 -0
  199. package/dist/components/PresetSaveDialog.js.map +1 -0
  200. package/dist/components/ReferenceChipsEditor.d.ts +23 -0
  201. package/dist/components/ReferenceChipsEditor.d.ts.map +1 -0
  202. package/dist/components/ReferenceChipsEditor.js +68 -0
  203. package/dist/components/ReferenceChipsEditor.js.map +1 -0
  204. package/dist/components/TopBar.d.ts +49 -0
  205. package/dist/components/TopBar.d.ts.map +1 -0
  206. package/dist/components/TopBar.js +41 -0
  207. package/dist/components/TopBar.js.map +1 -0
  208. package/dist/components/canvas/CanvasBoard.d.ts +97 -0
  209. package/dist/components/canvas/CanvasBoard.d.ts.map +1 -0
  210. package/dist/components/canvas/CanvasBoard.js +35 -0
  211. package/dist/components/canvas/CanvasBoard.js.map +1 -0
  212. package/dist/components/canvas/EditableCanvasTitle.d.ts +13 -0
  213. package/dist/components/canvas/EditableCanvasTitle.d.ts.map +1 -0
  214. package/dist/components/canvas/EditableCanvasTitle.js +74 -0
  215. package/dist/components/canvas/EditableCanvasTitle.js.map +1 -0
  216. package/dist/components/canvas/camera.d.ts +9 -0
  217. package/dist/components/canvas/camera.d.ts.map +1 -0
  218. package/dist/components/canvas/camera.js +31 -0
  219. package/dist/components/canvas/camera.js.map +1 -0
  220. package/dist/components/canvas/column-window.d.ts +10 -0
  221. package/dist/components/canvas/column-window.d.ts.map +1 -0
  222. package/dist/components/canvas/column-window.js +46 -0
  223. package/dist/components/canvas/column-window.js.map +1 -0
  224. package/dist/components/canvas/keyboard-nav.d.ts +7 -0
  225. package/dist/components/canvas/keyboard-nav.d.ts.map +1 -0
  226. package/dist/components/canvas/keyboard-nav.js +44 -0
  227. package/dist/components/canvas/keyboard-nav.js.map +1 -0
  228. package/dist/components/canvas/links.d.ts +2 -0
  229. package/dist/components/canvas/links.d.ts.map +1 -0
  230. package/dist/components/canvas/links.js +7 -0
  231. package/dist/components/canvas/links.js.map +1 -0
  232. package/dist/components/editable-text/BindingInlineEditor.d.ts +13 -0
  233. package/dist/components/editable-text/BindingInlineEditor.d.ts.map +1 -0
  234. package/dist/components/editable-text/BindingInlineEditor.js +24 -0
  235. package/dist/components/editable-text/BindingInlineEditor.js.map +1 -0
  236. package/dist/components/editable-text/BindingPicker.d.ts +10 -0
  237. package/dist/components/editable-text/BindingPicker.d.ts.map +1 -0
  238. package/dist/components/editable-text/BindingPicker.js +20 -0
  239. package/dist/components/editable-text/BindingPicker.js.map +1 -0
  240. package/dist/components/editable-text/RichTextToolbar.d.ts +13 -0
  241. package/dist/components/editable-text/RichTextToolbar.d.ts.map +1 -0
  242. package/dist/components/editable-text/RichTextToolbar.js +24 -0
  243. package/dist/components/editable-text/RichTextToolbar.js.map +1 -0
  244. package/dist/components/editable-text/bindingHtml.d.ts +19 -0
  245. package/dist/components/editable-text/bindingHtml.d.ts.map +1 -0
  246. package/dist/components/editable-text/bindingHtml.js +106 -0
  247. package/dist/components/editable-text/bindingHtml.js.map +1 -0
  248. package/dist/components/editable-text/editableTextDom.d.ts +5 -0
  249. package/dist/components/editable-text/editableTextDom.d.ts.map +1 -0
  250. package/dist/components/editable-text/editableTextDom.js +24 -0
  251. package/dist/components/editable-text/editableTextDom.js.map +1 -0
  252. package/dist/components/editable-text/floatingPosition.d.ts +25 -0
  253. package/dist/components/editable-text/floatingPosition.d.ts.map +1 -0
  254. package/dist/components/editable-text/floatingPosition.js +35 -0
  255. package/dist/components/editable-text/floatingPosition.js.map +1 -0
  256. package/dist/components/editable-text/formatting.d.ts +15 -0
  257. package/dist/components/editable-text/formatting.d.ts.map +1 -0
  258. package/dist/components/editable-text/formatting.js +82 -0
  259. package/dist/components/editable-text/formatting.js.map +1 -0
  260. package/dist/components/editable-text/richCommands.d.ts +9 -0
  261. package/dist/components/editable-text/richCommands.d.ts.map +1 -0
  262. package/dist/components/editable-text/richCommands.js +41 -0
  263. package/dist/components/editable-text/richCommands.js.map +1 -0
  264. package/dist/components/editable-text/richHtml.d.ts +5 -0
  265. package/dist/components/editable-text/richHtml.d.ts.map +1 -0
  266. package/dist/components/editable-text/richHtml.js +150 -0
  267. package/dist/components/editable-text/richHtml.js.map +1 -0
  268. package/dist/components/editable-text/selection.d.ts +12 -0
  269. package/dist/components/editable-text/selection.d.ts.map +1 -0
  270. package/dist/components/editable-text/selection.js +119 -0
  271. package/dist/components/editable-text/selection.js.map +1 -0
  272. package/dist/components/editable-text/types.d.ts +32 -0
  273. package/dist/components/editable-text/types.d.ts.map +1 -0
  274. package/dist/components/editable-text/types.js +2 -0
  275. package/dist/components/editable-text/types.js.map +1 -0
  276. package/dist/components/editable-text/useEditableText.d.ts +35 -0
  277. package/dist/components/editable-text/useEditableText.d.ts.map +1 -0
  278. package/dist/components/editable-text/useEditableText.js +395 -0
  279. package/dist/components/editable-text/useEditableText.js.map +1 -0
  280. package/dist/components/image-editor/ImageEditorDialog.d.ts +16 -0
  281. package/dist/components/image-editor/ImageEditorDialog.d.ts.map +1 -0
  282. package/dist/components/image-editor/ImageEditorDialog.js +137 -0
  283. package/dist/components/image-editor/ImageEditorDialog.js.map +1 -0
  284. package/dist/components/image-editor/ImagePreview.d.ts +15 -0
  285. package/dist/components/image-editor/ImagePreview.d.ts.map +1 -0
  286. package/dist/components/image-editor/ImagePreview.js +16 -0
  287. package/dist/components/image-editor/ImagePreview.js.map +1 -0
  288. package/dist/components/image-editor/MediaBrowser.d.ts +22 -0
  289. package/dist/components/image-editor/MediaBrowser.d.ts.map +1 -0
  290. package/dist/components/image-editor/MediaBrowser.js +16 -0
  291. package/dist/components/image-editor/MediaBrowser.js.map +1 -0
  292. package/dist/components/image-editor/UsageSettingsForm.d.ts +10 -0
  293. package/dist/components/image-editor/UsageSettingsForm.d.ts.map +1 -0
  294. package/dist/components/image-editor/UsageSettingsForm.js +29 -0
  295. package/dist/components/image-editor/UsageSettingsForm.js.map +1 -0
  296. package/dist/components/image-editor/preview-style.d.ts +7 -0
  297. package/dist/components/image-editor/preview-style.d.ts.map +1 -0
  298. package/dist/components/image-editor/preview-style.js +47 -0
  299. package/dist/components/image-editor/preview-style.js.map +1 -0
  300. package/dist/components/image-editor/stage.d.ts +14 -0
  301. package/dist/components/image-editor/stage.d.ts.map +1 -0
  302. package/dist/components/image-editor/stage.js +116 -0
  303. package/dist/components/image-editor/stage.js.map +1 -0
  304. package/dist/components/image-editor/types.d.ts +38 -0
  305. package/dist/components/image-editor/types.d.ts.map +1 -0
  306. package/dist/components/image-editor/types.js +10 -0
  307. package/dist/components/image-editor/types.js.map +1 -0
  308. package/dist/components/image-editor/usage-conversion.d.ts +35 -0
  309. package/dist/components/image-editor/usage-conversion.d.ts.map +1 -0
  310. package/dist/components/image-editor/usage-conversion.js +249 -0
  311. package/dist/components/image-editor/usage-conversion.js.map +1 -0
  312. package/dist/components/inspector/CollectionItemFields.d.ts +10 -0
  313. package/dist/components/inspector/CollectionItemFields.d.ts.map +1 -0
  314. package/dist/components/inspector/CollectionItemFields.js +13 -0
  315. package/dist/components/inspector/CollectionItemFields.js.map +1 -0
  316. package/dist/components/inspector/ContentBindingControl.d.ts +14 -0
  317. package/dist/components/inspector/ContentBindingControl.d.ts.map +1 -0
  318. package/dist/components/inspector/ContentBindingControl.js +42 -0
  319. package/dist/components/inspector/ContentBindingControl.js.map +1 -0
  320. package/dist/components/inspector/PinControl.d.ts +10 -0
  321. package/dist/components/inspector/PinControl.d.ts.map +1 -0
  322. package/dist/components/inspector/PinControl.js +14 -0
  323. package/dist/components/inspector/PinControl.js.map +1 -0
  324. package/dist/components/inspector/constants.d.ts +8 -0
  325. package/dist/components/inspector/constants.d.ts.map +1 -0
  326. package/dist/components/inspector/constants.js +12 -0
  327. package/dist/components/inspector/constants.js.map +1 -0
  328. package/dist/components/inspector/content-item-label.d.ts +2 -0
  329. package/dist/components/inspector/content-item-label.d.ts.map +1 -0
  330. package/dist/components/inspector/content-item-label.js +23 -0
  331. package/dist/components/inspector/content-item-label.js.map +1 -0
  332. package/dist/components/page-frame/InsertSlot.d.ts +19 -0
  333. package/dist/components/page-frame/InsertSlot.d.ts.map +1 -0
  334. package/dist/components/page-frame/InsertSlot.js +55 -0
  335. package/dist/components/page-frame/InsertSlot.js.map +1 -0
  336. package/dist/components/page-frame/PageFrameBlockList.d.ts +43 -0
  337. package/dist/components/page-frame/PageFrameBlockList.d.ts.map +1 -0
  338. package/dist/components/page-frame/PageFrameBlockList.js +204 -0
  339. package/dist/components/page-frame/PageFrameBlockList.js.map +1 -0
  340. package/dist/components/page-frame/PageFrameControls.d.ts +23 -0
  341. package/dist/components/page-frame/PageFrameControls.d.ts.map +1 -0
  342. package/dist/components/page-frame/PageFrameControls.js +36 -0
  343. package/dist/components/page-frame/PageFrameControls.js.map +1 -0
  344. package/dist/components/page-frame/PageFramePathEditor.d.ts +33 -0
  345. package/dist/components/page-frame/PageFramePathEditor.d.ts.map +1 -0
  346. package/dist/components/page-frame/PageFramePathEditor.js +5 -0
  347. package/dist/components/page-frame/PageFramePathEditor.js.map +1 -0
  348. package/dist/components/page-frame/viewport.d.ts +26 -0
  349. package/dist/components/page-frame/viewport.d.ts.map +1 -0
  350. package/dist/components/page-frame/viewport.js +37 -0
  351. package/dist/components/page-frame/viewport.js.map +1 -0
  352. package/dist/content-model.d.ts +36 -0
  353. package/dist/content-model.d.ts.map +1 -0
  354. package/dist/content-model.js +15 -0
  355. package/dist/content-model.js.map +1 -0
  356. package/dist/contentModel.d.ts +3 -0
  357. package/dist/contentModel.d.ts.map +1 -0
  358. package/dist/contentModel.js +2 -0
  359. package/dist/contentModel.js.map +1 -0
  360. package/dist/designSettings.d.ts +11 -0
  361. package/dist/designSettings.d.ts.map +1 -0
  362. package/dist/designSettings.js +96 -0
  363. package/dist/designSettings.js.map +1 -0
  364. package/dist/drag-transfer.d.ts +28 -0
  365. package/dist/drag-transfer.d.ts.map +1 -0
  366. package/dist/drag-transfer.js +42 -0
  367. package/dist/drag-transfer.js.map +1 -0
  368. package/dist/editor/app/AppCanvas.d.ts +2 -0
  369. package/dist/editor/app/AppCanvas.d.ts.map +1 -0
  370. package/dist/editor/app/AppCanvas.js +2 -0
  371. package/dist/editor/app/AppCanvas.js.map +1 -0
  372. package/dist/editor/app/AppDialogs.d.ts +2 -0
  373. package/dist/editor/app/AppDialogs.d.ts.map +1 -0
  374. package/dist/editor/app/AppDialogs.js +2 -0
  375. package/dist/editor/app/AppDialogs.js.map +1 -0
  376. package/dist/editor/app/AppInspectorPanel.d.ts +2 -0
  377. package/dist/editor/app/AppInspectorPanel.d.ts.map +1 -0
  378. package/dist/editor/app/AppInspectorPanel.js +2 -0
  379. package/dist/editor/app/AppInspectorPanel.js.map +1 -0
  380. package/dist/editor/app/deriveSelectionState.d.ts +2 -0
  381. package/dist/editor/app/deriveSelectionState.d.ts.map +1 -0
  382. package/dist/editor/app/deriveSelectionState.js +2 -0
  383. package/dist/editor/app/deriveSelectionState.js.map +1 -0
  384. package/dist/editor/app/helpers.d.ts +2 -0
  385. package/dist/editor/app/helpers.d.ts.map +1 -0
  386. package/dist/editor/app/helpers.js +2 -0
  387. package/dist/editor/app/helpers.js.map +1 -0
  388. package/dist/editor/app/useCollectionEditing.d.ts +2 -0
  389. package/dist/editor/app/useCollectionEditing.d.ts.map +1 -0
  390. package/dist/editor/app/useCollectionEditing.js +2 -0
  391. package/dist/editor/app/useCollectionEditing.js.map +1 -0
  392. package/dist/editor/app/useCommitActions.d.ts +2 -0
  393. package/dist/editor/app/useCommitActions.d.ts.map +1 -0
  394. package/dist/editor/app/useCommitActions.js +2 -0
  395. package/dist/editor/app/useCommitActions.js.map +1 -0
  396. package/dist/editor/app/useEditorEffects.d.ts +2 -0
  397. package/dist/editor/app/useEditorEffects.d.ts.map +1 -0
  398. package/dist/editor/app/useEditorEffects.js +2 -0
  399. package/dist/editor/app/useEditorEffects.js.map +1 -0
  400. package/dist/editor/app/useEditorRuntime.d.ts +2 -0
  401. package/dist/editor/app/useEditorRuntime.d.ts.map +1 -0
  402. package/dist/editor/app/useEditorRuntime.js +2 -0
  403. package/dist/editor/app/useEditorRuntime.js.map +1 -0
  404. package/dist/editor/app/useEditorState.d.ts +2 -0
  405. package/dist/editor/app/useEditorState.d.ts.map +1 -0
  406. package/dist/editor/app/useEditorState.js +2 -0
  407. package/dist/editor/app/useEditorState.js.map +1 -0
  408. package/dist/editor/app/usePageOps.d.ts +2 -0
  409. package/dist/editor/app/usePageOps.d.ts.map +1 -0
  410. package/dist/editor/app/usePageOps.js +2 -0
  411. package/dist/editor/app/usePageOps.js.map +1 -0
  412. package/dist/editor/app/usePersistence.d.ts +2 -0
  413. package/dist/editor/app/usePersistence.d.ts.map +1 -0
  414. package/dist/editor/app/usePersistence.js +2 -0
  415. package/dist/editor/app/usePersistence.js.map +1 -0
  416. package/dist/editor/app/usePreviewSession.d.ts +2 -0
  417. package/dist/editor/app/usePreviewSession.d.ts.map +1 -0
  418. package/dist/editor/app/usePreviewSession.js +2 -0
  419. package/dist/editor/app/usePreviewSession.js.map +1 -0
  420. package/dist/editor/app/useWorkspaceDocumentSync.d.ts +2 -0
  421. package/dist/editor/app/useWorkspaceDocumentSync.d.ts.map +1 -0
  422. package/dist/editor/app/useWorkspaceDocumentSync.js +2 -0
  423. package/dist/editor/app/useWorkspaceDocumentSync.js.map +1 -0
  424. package/dist/editor/bindingChips.d.ts +2 -0
  425. package/dist/editor/bindingChips.d.ts.map +1 -0
  426. package/dist/editor/bindingChips.js +2 -0
  427. package/dist/editor/bindingChips.js.map +1 -0
  428. package/dist/editor/blockInteraction.d.ts +2 -0
  429. package/dist/editor/blockInteraction.d.ts.map +1 -0
  430. package/dist/editor/blockInteraction.js +2 -0
  431. package/dist/editor/blockInteraction.js.map +1 -0
  432. package/dist/editor/blockPresets.d.ts +2 -0
  433. package/dist/editor/blockPresets.d.ts.map +1 -0
  434. package/dist/editor/blockPresets.js +2 -0
  435. package/dist/editor/blockPresets.js.map +1 -0
  436. package/dist/editor/collectionItemAddress.d.ts +2 -0
  437. package/dist/editor/collectionItemAddress.d.ts.map +1 -0
  438. package/dist/editor/collectionItemAddress.js +2 -0
  439. package/dist/editor/collectionItemAddress.js.map +1 -0
  440. package/dist/editor/contentModel.d.ts +2 -0
  441. package/dist/editor/contentModel.d.ts.map +1 -0
  442. package/dist/editor/contentModel.js +2 -0
  443. package/dist/editor/contentModel.js.map +1 -0
  444. package/dist/editor/designSettings.d.ts +2 -0
  445. package/dist/editor/designSettings.d.ts.map +1 -0
  446. package/dist/editor/designSettings.js +2 -0
  447. package/dist/editor/designSettings.js.map +1 -0
  448. package/dist/editor/editorClipboard.d.ts +2 -0
  449. package/dist/editor/editorClipboard.d.ts.map +1 -0
  450. package/dist/editor/editorClipboard.js +2 -0
  451. package/dist/editor/editorClipboard.js.map +1 -0
  452. package/dist/editor/formatDate.d.ts +2 -0
  453. package/dist/editor/formatDate.d.ts.map +1 -0
  454. package/dist/editor/formatDate.js +2 -0
  455. package/dist/editor/formatDate.js.map +1 -0
  456. package/dist/editor/iconCatalog.d.ts +2 -0
  457. package/dist/editor/iconCatalog.d.ts.map +1 -0
  458. package/dist/editor/iconCatalog.js +2 -0
  459. package/dist/editor/iconCatalog.js.map +1 -0
  460. package/dist/editor/pageActions.d.ts +2 -0
  461. package/dist/editor/pageActions.d.ts.map +1 -0
  462. package/dist/editor/pageActions.js +2 -0
  463. package/dist/editor/pageActions.js.map +1 -0
  464. package/dist/editor/pagePaths.d.ts +2 -0
  465. package/dist/editor/pagePaths.d.ts.map +1 -0
  466. package/dist/editor/pagePaths.js +2 -0
  467. package/dist/editor/pagePaths.js.map +1 -0
  468. package/dist/editor/pagesActions.d.ts +2 -0
  469. package/dist/editor/pagesActions.d.ts.map +1 -0
  470. package/dist/editor/pagesActions.js +2 -0
  471. package/dist/editor/pagesActions.js.map +1 -0
  472. package/dist/editor/renderActions.d.ts +2 -0
  473. package/dist/editor/renderActions.d.ts.map +1 -0
  474. package/dist/editor/renderActions.js +2 -0
  475. package/dist/editor/renderActions.js.map +1 -0
  476. package/dist/editor/translation.d.ts +2 -0
  477. package/dist/editor/translation.d.ts.map +1 -0
  478. package/dist/editor/translation.js +2 -0
  479. package/dist/editor/translation.js.map +1 -0
  480. package/dist/editor/useCanvasBackStack.d.ts +2 -0
  481. package/dist/editor/useCanvasBackStack.d.ts.map +1 -0
  482. package/dist/editor/useCanvasBackStack.js +2 -0
  483. package/dist/editor/useCanvasBackStack.js.map +1 -0
  484. package/dist/editor/useCanvasCamera.d.ts +2 -0
  485. package/dist/editor/useCanvasCamera.d.ts.map +1 -0
  486. package/dist/editor/useCanvasCamera.js +2 -0
  487. package/dist/editor/useCanvasCamera.js.map +1 -0
  488. package/dist/editor/useCanvasFocus.d.ts +2 -0
  489. package/dist/editor/useCanvasFocus.d.ts.map +1 -0
  490. package/dist/editor/useCanvasFocus.js +2 -0
  491. package/dist/editor/useCanvasFocus.js.map +1 -0
  492. package/dist/editor/useCanvasKeyboardNav.d.ts +2 -0
  493. package/dist/editor/useCanvasKeyboardNav.d.ts.map +1 -0
  494. package/dist/editor/useCanvasKeyboardNav.js +2 -0
  495. package/dist/editor/useCanvasKeyboardNav.js.map +1 -0
  496. package/dist/editor/useClipboardActions.d.ts +2 -0
  497. package/dist/editor/useClipboardActions.d.ts.map +1 -0
  498. package/dist/editor/useClipboardActions.js +2 -0
  499. package/dist/editor/useClipboardActions.js.map +1 -0
  500. package/dist/editor/useColumnWindow.d.ts +2 -0
  501. package/dist/editor/useColumnWindow.d.ts.map +1 -0
  502. package/dist/editor/useColumnWindow.js +2 -0
  503. package/dist/editor/useColumnWindow.js.map +1 -0
  504. package/dist/editor/useEditorHistory.d.ts +2 -0
  505. package/dist/editor/useEditorHistory.d.ts.map +1 -0
  506. package/dist/editor/useEditorHistory.js +2 -0
  507. package/dist/editor/useEditorHistory.js.map +1 -0
  508. package/dist/editor/usePagePathEditor.d.ts +2 -0
  509. package/dist/editor/usePagePathEditor.d.ts.map +1 -0
  510. package/dist/editor/usePagePathEditor.js +2 -0
  511. package/dist/editor/usePagePathEditor.js.map +1 -0
  512. package/dist/editor/usePageTitleEditor.d.ts +2 -0
  513. package/dist/editor/usePageTitleEditor.d.ts.map +1 -0
  514. package/dist/editor/usePageTitleEditor.js +2 -0
  515. package/dist/editor/usePageTitleEditor.js.map +1 -0
  516. package/dist/editor/useTextFocusIntent.d.ts +2 -0
  517. package/dist/editor/useTextFocusIntent.d.ts.map +1 -0
  518. package/dist/editor/useTextFocusIntent.js +2 -0
  519. package/dist/editor/useTextFocusIntent.js.map +1 -0
  520. package/dist/editorClipboard.d.ts +23 -0
  521. package/dist/editorClipboard.d.ts.map +1 -0
  522. package/dist/editorClipboard.js +46 -0
  523. package/dist/editorClipboard.js.map +1 -0
  524. package/dist/fields-bridge.d.ts +26 -0
  525. package/dist/fields-bridge.d.ts.map +1 -0
  526. package/dist/fields-bridge.js +217 -0
  527. package/dist/fields-bridge.js.map +1 -0
  528. package/dist/formatDate.d.ts +8 -0
  529. package/dist/formatDate.d.ts.map +1 -0
  530. package/dist/formatDate.js +34 -0
  531. package/dist/formatDate.js.map +1 -0
  532. package/dist/grid-state.d.ts +29 -0
  533. package/dist/grid-state.d.ts.map +1 -0
  534. package/dist/grid-state.js +207 -0
  535. package/dist/grid-state.js.map +1 -0
  536. package/dist/history/commands.d.ts +29 -0
  537. package/dist/history/commands.d.ts.map +1 -0
  538. package/dist/history/commands.js +63 -0
  539. package/dist/history/commands.js.map +1 -0
  540. package/dist/history/diff.d.ts +22 -0
  541. package/dist/history/diff.d.ts.map +1 -0
  542. package/dist/history/diff.js +259 -0
  543. package/dist/history/diff.js.map +1 -0
  544. package/dist/history/transforms.d.ts +19 -0
  545. package/dist/history/transforms.d.ts.map +1 -0
  546. package/dist/history/transforms.js +69 -0
  547. package/dist/history/transforms.js.map +1 -0
  548. package/dist/history/types.d.ts +23 -0
  549. package/dist/history/types.d.ts.map +1 -0
  550. package/dist/history/types.js +11 -0
  551. package/dist/history/types.js.map +1 -0
  552. package/dist/host-services.d.ts +57 -0
  553. package/dist/host-services.d.ts.map +1 -0
  554. package/dist/host-services.js +2 -0
  555. package/dist/host-services.js.map +1 -0
  556. package/dist/iconCatalog.d.ts +16 -0
  557. package/dist/iconCatalog.d.ts.map +1 -0
  558. package/dist/iconCatalog.js +32 -0
  559. package/dist/iconCatalog.js.map +1 -0
  560. package/dist/index.d.ts +33 -0
  561. package/dist/index.d.ts.map +1 -0
  562. package/dist/index.js +26 -0
  563. package/dist/index.js.map +1 -0
  564. package/dist/insert-menu.d.ts +17 -0
  565. package/dist/insert-menu.d.ts.map +1 -0
  566. package/dist/insert-menu.js +35 -0
  567. package/dist/insert-menu.js.map +1 -0
  568. package/dist/model/bind-map.d.ts +6 -0
  569. package/dist/model/bind-map.d.ts.map +1 -0
  570. package/dist/model/bind-map.js +6 -0
  571. package/dist/model/bind-map.js.map +1 -0
  572. package/dist/model/layout-columns.d.ts +51 -0
  573. package/dist/model/layout-columns.d.ts.map +1 -0
  574. package/dist/model/layout-columns.js +74 -0
  575. package/dist/model/layout-columns.js.map +1 -0
  576. package/dist/model/page-topology.d.ts +20 -0
  577. package/dist/model/page-topology.d.ts.map +1 -0
  578. package/dist/model/page-topology.js +94 -0
  579. package/dist/model/page-topology.js.map +1 -0
  580. package/dist/model/page-tree-bridge.d.ts +81 -0
  581. package/dist/model/page-tree-bridge.d.ts.map +1 -0
  582. package/dist/model/page-tree-bridge.js +234 -0
  583. package/dist/model/page-tree-bridge.js.map +1 -0
  584. package/dist/model/prop-access.d.ts +69 -0
  585. package/dist/model/prop-access.d.ts.map +1 -0
  586. package/dist/model/prop-access.js +94 -0
  587. package/dist/model/prop-access.js.map +1 -0
  588. package/dist/mount.d.ts +25 -0
  589. package/dist/mount.d.ts.map +1 -0
  590. package/dist/mount.js +26 -0
  591. package/dist/mount.js.map +1 -0
  592. package/dist/page-actions.d.ts +26 -0
  593. package/dist/page-actions.d.ts.map +1 -0
  594. package/dist/page-actions.js +118 -0
  595. package/dist/page-actions.js.map +1 -0
  596. package/dist/pageActions.d.ts +4 -0
  597. package/dist/pageActions.d.ts.map +1 -0
  598. package/dist/pageActions.js +4 -0
  599. package/dist/pageActions.js.map +1 -0
  600. package/dist/pagePaths.d.ts +30 -0
  601. package/dist/pagePaths.d.ts.map +1 -0
  602. package/dist/pagePaths.js +102 -0
  603. package/dist/pagePaths.js.map +1 -0
  604. package/dist/pagesActions.d.ts +60 -0
  605. package/dist/pagesActions.d.ts.map +1 -0
  606. package/dist/pagesActions.js +216 -0
  607. package/dist/pagesActions.js.map +1 -0
  608. package/dist/preview-auth.d.ts +29 -0
  609. package/dist/preview-auth.d.ts.map +1 -0
  610. package/dist/preview-auth.js +18 -0
  611. package/dist/preview-auth.js.map +1 -0
  612. package/dist/renderActions.d.ts +30 -0
  613. package/dist/renderActions.d.ts.map +1 -0
  614. package/dist/renderActions.js +2 -0
  615. package/dist/renderActions.js.map +1 -0
  616. package/dist/translation.d.ts +78 -0
  617. package/dist/translation.d.ts.map +1 -0
  618. package/dist/translation.js +64 -0
  619. package/dist/translation.js.map +1 -0
  620. package/dist/types.d.ts +128 -0
  621. package/dist/types.d.ts.map +1 -0
  622. package/dist/types.js +2 -0
  623. package/dist/types.js.map +1 -0
  624. package/dist/useCanvasBackStack.d.ts +19 -0
  625. package/dist/useCanvasBackStack.d.ts.map +1 -0
  626. package/dist/useCanvasBackStack.js +49 -0
  627. package/dist/useCanvasBackStack.js.map +1 -0
  628. package/dist/useCanvasCamera.d.ts +37 -0
  629. package/dist/useCanvasCamera.d.ts.map +1 -0
  630. package/dist/useCanvasCamera.js +247 -0
  631. package/dist/useCanvasCamera.js.map +1 -0
  632. package/dist/useCanvasFocus.d.ts +32 -0
  633. package/dist/useCanvasFocus.d.ts.map +1 -0
  634. package/dist/useCanvasFocus.js +114 -0
  635. package/dist/useCanvasFocus.js.map +1 -0
  636. package/dist/useCanvasKeyboardNav.d.ts +32 -0
  637. package/dist/useCanvasKeyboardNav.d.ts.map +1 -0
  638. package/dist/useCanvasKeyboardNav.js +185 -0
  639. package/dist/useCanvasKeyboardNav.js.map +1 -0
  640. package/dist/useClipboardActions.d.ts +37 -0
  641. package/dist/useClipboardActions.d.ts.map +1 -0
  642. package/dist/useClipboardActions.js +126 -0
  643. package/dist/useClipboardActions.js.map +1 -0
  644. package/dist/useColumnWindow.d.ts +29 -0
  645. package/dist/useColumnWindow.d.ts.map +1 -0
  646. package/dist/useColumnWindow.js +80 -0
  647. package/dist/useColumnWindow.js.map +1 -0
  648. package/dist/useEditorHistory.d.ts +18 -0
  649. package/dist/useEditorHistory.d.ts.map +1 -0
  650. package/dist/useEditorHistory.js +91 -0
  651. package/dist/useEditorHistory.js.map +1 -0
  652. package/dist/usePagePathEditor.d.ts +36 -0
  653. package/dist/usePagePathEditor.d.ts.map +1 -0
  654. package/dist/usePagePathEditor.js +163 -0
  655. package/dist/usePagePathEditor.js.map +1 -0
  656. package/dist/usePageTitleEditor.d.ts +17 -0
  657. package/dist/usePageTitleEditor.d.ts.map +1 -0
  658. package/dist/usePageTitleEditor.js +101 -0
  659. package/dist/usePageTitleEditor.js.map +1 -0
  660. package/dist/useTextFocusIntent.d.ts +13 -0
  661. package/dist/useTextFocusIntent.d.ts.map +1 -0
  662. package/dist/useTextFocusIntent.js +70 -0
  663. package/dist/useTextFocusIntent.js.map +1 -0
  664. package/package.json +58 -0
  665. package/styles/index.css +196 -0
  666. package/styles/preview-auth.css +17 -0
@@ -0,0 +1,344 @@
1
+ import { useRef } from "react";
2
+ import { dirtyPageIdsForPages, pageFingerprints, siteTitleFromContent, translationFingerprint, } from "./helpers.js";
3
+ import { beginPersistenceOperation, changedContentResources, completePersistenceOperation, contentResourceFingerprint, failPersistenceOperation, initialPersistenceMachine, recordPersistenceMutation, } from "./persistence-machine.js";
4
+ import { atomicMultiPageCapability, publishCapability, saveCapability, } from "./capability-guards.js";
5
+ /**
6
+ * Save/persistence and the history-apply callbacks, extracted from `App`.
7
+ * These are plain closures over the passed-in state/setters — this hook
8
+ * registers no React hooks, so it may be called at any fixed point (it is
9
+ * called before `useEditorHistory` because the `applyHistory*` callbacks feed
10
+ * into it). Behaviour is unchanged.
11
+ */
12
+ export function usePersistence({ pages, bootstrap, activePage, translations, dirtyCollections, dirtyTranslations, dirtyPageIds, savedTranslationFingerprint, savedPageFingerprints, setBootstrap, setPages, setDirtyPageIds, setSavedPageFingerprints, setDirtyCollections, setDirtyTranslations, setSavedTranslationFingerprint, setTranslations, setIssues, setOperationError, setSaveState, contentModel, defaultPageId, hostServices, collaboration, }) {
13
+ const latestBootstrapRef = useRef(bootstrap);
14
+ const latestTranslationsRef = useRef(translations);
15
+ const savePromiseRef = useRef(null);
16
+ const publishPromiseRef = useRef(null);
17
+ const machineRef = useRef(initialPersistenceMachine(bootstrap?.documentConcurrency));
18
+ latestBootstrapRef.current = bootstrap;
19
+ latestTranslationsRef.current = translations;
20
+ if (!machineRef.current.active && bootstrap?.documentConcurrency) {
21
+ machineRef.current = { ...machineRef.current, concurrency: bootstrap.documentConcurrency };
22
+ }
23
+ function recordMutation() {
24
+ machineRef.current = recordPersistenceMutation(machineRef.current);
25
+ if (machineRef.current.phase === "ready")
26
+ setSaveState("idle");
27
+ }
28
+ function applyHistoryPages(nextPages) {
29
+ recordMutation();
30
+ if (pages)
31
+ collaboration?.routePageChanges(pages, nextPages);
32
+ setPages(nextPages);
33
+ setDirtyPageIds(dirtyPageIdsForPages(nextPages, savedPageFingerprints));
34
+ setSaveState("idle");
35
+ }
36
+ function applyHistoryContent(nextContent) {
37
+ recordMutation();
38
+ if (bootstrap) {
39
+ const changed = changedContentResources(bootstrap.content, nextContent, contentModel.editableCollections, contentModel.collectionItems);
40
+ if (changed.size)
41
+ setDirtyCollections((current) => new Set([...current, ...changed]));
42
+ }
43
+ setBootstrap((current) => current
44
+ ? {
45
+ ...current,
46
+ content: nextContent,
47
+ library: {
48
+ ...current.library,
49
+ sharedBlocks: (nextContent.sharedBlocks ?? []).map((entry) => ({
50
+ ...entry,
51
+ label: entry.label ?? entry.id,
52
+ })),
53
+ },
54
+ }
55
+ : current);
56
+ setSaveState("idle");
57
+ }
58
+ function applyHistoryTranslations(nextTranslations) {
59
+ recordMutation();
60
+ setTranslations(nextTranslations);
61
+ setDirtyTranslations(translationFingerprint(nextTranslations) !== savedTranslationFingerprint);
62
+ setSaveState("idle");
63
+ }
64
+ async function performSave() {
65
+ const currentBootstrap = latestBootstrapRef.current;
66
+ const currentPages = currentBootstrap?.document.pages ?? pages;
67
+ if (!currentPages || !currentBootstrap)
68
+ return { ok: false };
69
+ const begun = beginPersistenceOperation(machineRef.current, "save");
70
+ machineRef.current = begun.state;
71
+ setSaveState("saving");
72
+ try {
73
+ const saveDecision = saveCapability(currentBootstrap.capabilities);
74
+ if (!saveDecision.allowed)
75
+ throw new Error(saveDecision.reason);
76
+ const launchContext = hostServices.readLaunchContext();
77
+ const pageIdsToSave = hostServices.pageIdsToSave?.(currentPages, launchContext, activePage?.id ?? defaultPageId) ?? null;
78
+ const pagesToSave = currentPages.filter((candidate) => dirtyPageIds.has(candidate.id) &&
79
+ !collaboration?.isManagedPage(candidate.id) &&
80
+ (!pageIdsToSave || pageIdsToSave.has(candidate.id)));
81
+ const removedPageIds = Object.keys(savedPageFingerprints).filter((pageId) => !currentPages.some((page) => page.id === pageId) && (!pageIdsToSave || pageIdsToSave.has(pageId)));
82
+ const changes = [
83
+ ...pagesToSave.map((candidate) => ({ kind: "upsert-page", page: candidate })),
84
+ ...removedPageIds.map((pageId) => ({ kind: "remove-page", pageId: pageId })),
85
+ ];
86
+ const atomicDecision = atomicMultiPageCapability(currentBootstrap.capabilities, changes.length);
87
+ if (!atomicDecision.allowed)
88
+ throw new Error(`${atomicDecision.reason} No changes were written.`);
89
+ if (changes.length > 0 && (dirtyCollections.size > 0 || dirtyTranslations)) {
90
+ throw new Error("This action changes both Canvas pages and host resources, but the host has no atomic workspace command. No changes were written.");
91
+ }
92
+ const managedDirtyPages = currentPages.filter((candidate) => dirtyPageIds.has(candidate.id) && collaboration?.isManagedPage(candidate.id));
93
+ if (managedDirtyPages.length > 0 && (dirtyCollections.size > 0 || dirtyTranslations)) {
94
+ throw new Error("This action changes both collaborative Canvas pages and host resources, but the host has no atomic workspace command. No changes were written.");
95
+ }
96
+ if (collaboration?.enabled) {
97
+ await collaboration.persistManagedPages();
98
+ }
99
+ if (managedDirtyPages.length > 0) {
100
+ const persistedFingerprints = pageFingerprints(managedDirtyPages);
101
+ setSavedPageFingerprints((current) => ({ ...current, ...persistedFingerprints }));
102
+ setDirtyPageIds((current) => {
103
+ const next = new Set(current);
104
+ const latestPages = latestBootstrapRef.current?.document.pages ?? [];
105
+ for (const persisted of managedDirtyPages) {
106
+ const latest = latestPages.find((candidate) => candidate.id === persisted.id);
107
+ if (latest && pageFingerprints([latest])[latest.id] === persistedFingerprints[persisted.id])
108
+ next.delete(persisted.id);
109
+ }
110
+ return next;
111
+ });
112
+ }
113
+ const contentSnapshot = currentBootstrap.content;
114
+ for (const collection of dirtyCollections) {
115
+ const fingerprint = contentResourceFingerprint(contentSnapshot, collection, contentModel.collectionItems);
116
+ if (collection === "sharedBlocks") {
117
+ await hostServices.saveSharedBlocks(contentSnapshot.sharedBlocks ?? []);
118
+ }
119
+ else if (collection === "siteMetadata") {
120
+ await hostServices.saveSiteMetadata({
121
+ ...(contentSnapshot.siteMetadata ?? {}),
122
+ title: siteTitleFromContent(contentSnapshot, contentModel),
123
+ });
124
+ }
125
+ else if (collection === "routes") {
126
+ await hostServices.saveRoutes(contentSnapshot.routes);
127
+ }
128
+ else if (collection === "media") {
129
+ await hostServices.saveMediaAssets(contentSnapshot.media);
130
+ }
131
+ else {
132
+ await hostServices.saveContentCollection(collection, contentModel.collectionItems(contentSnapshot, collection));
133
+ }
134
+ setDirtyCollections((current) => {
135
+ const latest = latestBootstrapRef.current;
136
+ if (!latest || contentResourceFingerprint(latest.content, collection, contentModel.collectionItems) !== fingerprint) {
137
+ return current;
138
+ }
139
+ const next = new Set(current);
140
+ next.delete(collection);
141
+ return next;
142
+ });
143
+ }
144
+ if (dirtyTranslations) {
145
+ const translationsSnapshot = latestTranslationsRef.current;
146
+ await hostServices.saveTranslations(translationsSnapshot);
147
+ const fingerprint = translationFingerprint(translationsSnapshot);
148
+ setSavedTranslationFingerprint(fingerprint);
149
+ if (translationFingerprint(latestTranslationsRef.current) === fingerprint)
150
+ setDirtyTranslations(false);
151
+ setBootstrap((current) => current
152
+ ? { ...current, content: { ...current.content, translations: translationsSnapshot } }
153
+ : current);
154
+ }
155
+ let concurrency = currentBootstrap.documentConcurrency;
156
+ if (changes.length > 0) {
157
+ const result = await hostServices.document.saveDocument(hostServices.documentRef, {
158
+ changes: { changes },
159
+ expected: concurrency,
160
+ });
161
+ if (!result.ok)
162
+ throw new HostOperationFailure(result.error);
163
+ const latestState = result.value.state;
164
+ concurrency = result.value.concurrency ?? concurrency;
165
+ const savedFingerprints = pageFingerprints(pagesToSave);
166
+ setSavedPageFingerprints((current) => ({
167
+ ...Object.fromEntries(Object.entries(current).filter(([pageId]) => !removedPageIds.includes(pageId))),
168
+ ...savedFingerprints,
169
+ }));
170
+ setDirtyPageIds((current) => {
171
+ const next = new Set(current);
172
+ const latestPages = latestBootstrapRef.current?.document.pages ?? [];
173
+ pagesToSave.forEach((savedPage) => {
174
+ const latest = latestPages.find((candidate) => candidate.id === savedPage.id);
175
+ if (latest && pageFingerprints([latest])[latest.id] === savedFingerprints[savedPage.id]) {
176
+ next.delete(savedPage.id);
177
+ }
178
+ });
179
+ removedPageIds.forEach((pageId) => {
180
+ if (!latestPages.some((candidate) => candidate.id === pageId))
181
+ next.delete(pageId);
182
+ });
183
+ return next;
184
+ });
185
+ setBootstrap((current) => current ? {
186
+ ...current,
187
+ ...(latestState?.pages ? { pageStates: latestState.pages } : {}),
188
+ ...(concurrency ? { documentConcurrency: concurrency } : {}),
189
+ } : current);
190
+ }
191
+ setIssues([]);
192
+ setOperationError(null);
193
+ machineRef.current = completePersistenceOperation(machineRef.current, begun.operation, concurrency);
194
+ setSaveState(machineRef.current.phase === "saved" ? "saved" : "idle");
195
+ return { ok: true, concurrency };
196
+ }
197
+ catch (reason) {
198
+ const hostError = reason instanceof HostOperationFailure ? reason.hostError : undefined;
199
+ machineRef.current = failPersistenceOperation(machineRef.current, begun.operation, hostError?.kind === "conflict");
200
+ setSaveState("error");
201
+ setOperationError(hostError ? hostErrorMessage(hostError) : (reason instanceof Error ? reason.message : "Save failed"));
202
+ return { ok: false };
203
+ }
204
+ }
205
+ async function saveCurrentDraft() {
206
+ if (savePromiseRef.current)
207
+ return savePromiseRef.current;
208
+ const promise = performSave();
209
+ savePromiseRef.current = promise;
210
+ try {
211
+ return await promise;
212
+ }
213
+ finally {
214
+ if (savePromiseRef.current === promise)
215
+ savePromiseRef.current = null;
216
+ }
217
+ }
218
+ async function handleSave() {
219
+ return (await saveCurrentDraft()).ok;
220
+ }
221
+ async function handlePublish() {
222
+ if (publishPromiseRef.current)
223
+ return publishPromiseRef.current;
224
+ const promise = (async () => {
225
+ const publishDecision = publishCapability(latestBootstrapRef.current?.capabilities);
226
+ if (!publishDecision.allowed) {
227
+ setSaveState("error");
228
+ setOperationError(publishDecision.reason ?? "The host does not allow publishing.");
229
+ return false;
230
+ }
231
+ const begun = beginPersistenceOperation(machineRef.current, "publish");
232
+ machineRef.current = begun.state;
233
+ setSaveState("saving");
234
+ if (collaboration?.enabled)
235
+ await collaboration.persistManagedPages();
236
+ const result = await hostServices.document.publishDocument(hostServices.documentRef, {
237
+ expected: latestBootstrapRef.current?.documentConcurrency,
238
+ });
239
+ if (!result.ok) {
240
+ machineRef.current = failPersistenceOperation(machineRef.current, begun.operation, result.error.kind === "conflict");
241
+ setSaveState("error");
242
+ setOperationError(hostErrorMessage(result.error));
243
+ return false;
244
+ }
245
+ machineRef.current = completePersistenceOperation(machineRef.current, begun.operation, result.value.concurrency ?? latestBootstrapRef.current?.documentConcurrency);
246
+ setBootstrap((current) => current ? {
247
+ ...current,
248
+ ...(result.value.state?.pages ? { pageStates: result.value.state.pages } : {}),
249
+ ...(result.value.concurrency ? { documentConcurrency: result.value.concurrency } : {}),
250
+ } : current);
251
+ setOperationError(null);
252
+ setSaveState(machineRef.current.phase === "saved" ? "saved" : "idle");
253
+ return true;
254
+ })();
255
+ publishPromiseRef.current = promise;
256
+ try {
257
+ return await promise;
258
+ }
259
+ finally {
260
+ if (publishPromiseRef.current === promise)
261
+ publishPromiseRef.current = null;
262
+ }
263
+ }
264
+ async function handleStagePage(pageId) {
265
+ const stagePage = hostServices.document.stagePage;
266
+ if (!stagePage) {
267
+ setOperationError("This host does not support per-page staging.");
268
+ return false;
269
+ }
270
+ const saved = await saveCurrentDraft();
271
+ if (!saved.ok)
272
+ return false;
273
+ setSaveState("saving");
274
+ const result = await stagePage(hostServices.documentRef, { pageId, expected: saved.concurrency });
275
+ if (!result.ok) {
276
+ setSaveState("error");
277
+ setOperationError(hostErrorMessage(result.error));
278
+ return false;
279
+ }
280
+ setBootstrap((current) => current ? {
281
+ ...current,
282
+ ...(result.value.state?.pages ? { pageStates: result.value.state.pages } : {}),
283
+ ...(result.value.concurrency ? { documentConcurrency: result.value.concurrency } : {}),
284
+ } : current);
285
+ setOperationError(null);
286
+ setSaveState("saved");
287
+ return true;
288
+ }
289
+ async function handleUnstagePage(pageId) {
290
+ const unstagePage = hostServices.document.unstagePage;
291
+ if (!unstagePage) {
292
+ setOperationError("This host does not support per-page staging.");
293
+ return false;
294
+ }
295
+ setSaveState("saving");
296
+ const result = await unstagePage(hostServices.documentRef, {
297
+ pageId,
298
+ expected: latestBootstrapRef.current?.documentConcurrency,
299
+ });
300
+ if (!result.ok) {
301
+ setSaveState("error");
302
+ setOperationError(hostErrorMessage(result.error));
303
+ return false;
304
+ }
305
+ setBootstrap((current) => current ? {
306
+ ...current,
307
+ ...(result.value.state?.pages ? { pageStates: result.value.state.pages } : {}),
308
+ ...(result.value.concurrency ? { documentConcurrency: result.value.concurrency } : {}),
309
+ } : current);
310
+ setOperationError(null);
311
+ setSaveState("saved");
312
+ return true;
313
+ }
314
+ return {
315
+ applyHistoryPages,
316
+ applyHistoryContent,
317
+ applyHistoryTranslations,
318
+ handleSave,
319
+ handlePublish,
320
+ handleStagePage,
321
+ handleUnstagePage,
322
+ };
323
+ }
324
+ class HostOperationFailure extends Error {
325
+ hostError;
326
+ constructor(hostError) {
327
+ super(hostErrorMessage(hostError));
328
+ this.hostError = hostError;
329
+ }
330
+ }
331
+ function hostErrorMessage(error) {
332
+ if (error.kind === "forbidden")
333
+ return error.reason ?? "The host refused this operation.";
334
+ if (error.kind === "conflict")
335
+ return "The document changed in the host. Reload before saving again.";
336
+ if (error.kind === "validation")
337
+ return error.issues.map((issue) => issue.message).join(" ");
338
+ if (error.kind === "unsupported")
339
+ return `The host does not support ${error.capability}.`;
340
+ if (error.kind === "not-found")
341
+ return "The host document no longer exists.";
342
+ return error.retryable ? "The host is temporarily unavailable." : "The host operation failed.";
343
+ }
344
+ //# sourceMappingURL=usePersistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePersistence.js","sourceRoot":"","sources":["../../src/app/usePersistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { ResolvedEditorPreviewAuth } from "../preview-auth";
2
+ import type { CmsBootstrap, PortalUser } from "../types";
3
+ import type { useCanvasFocus } from "../useCanvasFocus";
4
+ type CanvasFocus = ReturnType<typeof useCanvasFocus>;
5
+ /**
6
+ * Preview visitor session for pages that depend on a signed-in site visitor.
7
+ * The real auth implementation is host-owned and injected through previewAuth.
8
+ */
9
+ export declare function usePreviewSession({ bootstrap, previewUserId, focus, setPreviewUserId, previewAuth, defaultPageId, }: {
10
+ bootstrap: CmsBootstrap | null;
11
+ previewUserId: string | null;
12
+ focus: CanvasFocus;
13
+ setPreviewUserId: (id: string | null) => void;
14
+ previewAuth: ResolvedEditorPreviewAuth;
15
+ defaultPageId: string;
16
+ }): {
17
+ currentUser: import("../types").EditorShellPreviewUser<import("..").EditorShellContent> | null;
18
+ handlePreviewLogin: (user: PortalUser) => void;
19
+ handlePreviewLogout: () => void;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=usePreviewSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePreviewSession.d.ts","sourceRoot":"","sources":["../../src/app/usePreviewSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAErD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,aAAa,EACb,KAAK,EACL,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,EAAE;IACD,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,yBAAyB,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;CACvB;;+BAImC,UAAU;;EAa7C"}
@@ -0,0 +1,21 @@
1
+ import { scrollPageFrameIntoView } from "@batterai/canvas";
2
+ /**
3
+ * Preview visitor session for pages that depend on a signed-in site visitor.
4
+ * The real auth implementation is host-owned and injected through previewAuth.
5
+ */
6
+ export function usePreviewSession({ bootstrap, previewUserId, focus, setPreviewUserId, previewAuth, defaultPageId, }) {
7
+ const users = bootstrap ? previewAuth.users(bootstrap.content) : [];
8
+ const currentUser = users.find((user) => user.id === previewUserId) ?? null;
9
+ function handlePreviewLogin(user) {
10
+ setPreviewUserId(user.id);
11
+ previewAuth.storeUserId(user.id);
12
+ }
13
+ function handlePreviewLogout() {
14
+ setPreviewUserId(null);
15
+ previewAuth.storeUserId(null);
16
+ focus.reset(defaultPageId);
17
+ requestAnimationFrame(() => scrollPageFrameIntoView(defaultPageId));
18
+ }
19
+ return { currentUser, handlePreviewLogin, handlePreviewLogout };
20
+ }
21
+ //# sourceMappingURL=usePreviewSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePreviewSession.js","sourceRoot":"","sources":["../../src/app/usePreviewSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAO3D;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,SAAS,EACT,aAAa,EACb,KAAK,EACL,gBAAgB,EAChB,WAAW,EACX,aAAa,GAQd;IACC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,IAAI,IAAI,CAAC;IAE5E,SAAS,kBAAkB,CAAC,IAAgB;QAC1C,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,mBAAmB;QAC1B,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3B,qBAAqB,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AAClE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { TranslationStore } from "../translation";
2
+ import type { CmsBootstrap, CanvasPage } from "../types";
3
+ import type { EditorHostServices } from "./hostServices";
4
+ import type { EditorShellContentModel } from "../contentModel";
5
+ import type { EditorCollaborationController } from "./useEditorCollaboration";
6
+ export type WorkspaceDocumentSyncDeps = {
7
+ enabled: boolean;
8
+ bootstrap: CmsBootstrap | null;
9
+ pages: CanvasPage[] | null;
10
+ dirtyPageIds: Set<string>;
11
+ dirtyCollections: Set<string>;
12
+ dirtyTranslations: boolean;
13
+ saveState: "idle" | "saving" | "saved" | "error";
14
+ translations: TranslationStore;
15
+ collaboration: EditorCollaborationController;
16
+ saveCurrentDraft: () => Promise<boolean>;
17
+ setBootstrap: (bootstrap: CmsBootstrap) => void;
18
+ setSavedPageFingerprints: (value: Record<string, string>) => void;
19
+ setDirtyPageIds: (value: Set<string>) => void;
20
+ setTranslations: (value: TranslationStore) => void;
21
+ setSavedTranslationFingerprint: (value: string) => void;
22
+ setDirtyTranslations: (value: boolean) => void;
23
+ contentModel: Pick<EditorShellContentModel, "collectionItems" | "editableCollections">;
24
+ hostServices: Pick<EditorHostServices, "loadBootstrap">;
25
+ pollMs?: number;
26
+ };
27
+ export declare function useWorkspaceDocumentSync({ enabled, bootstrap, pages, dirtyPageIds, dirtyCollections, dirtyTranslations, saveState, translations, collaboration, saveCurrentDraft, setBootstrap, setSavedPageFingerprints, setDirtyPageIds, setTranslations, setSavedTranslationFingerprint, setDirtyTranslations, contentModel, hostServices, pollMs, }: WorkspaceDocumentSyncDeps): void;
28
+ export declare function hasHostManagedWorkspaceChange(pages: readonly CanvasPage[], dirtyPageIds: ReadonlySet<string>, dirtyCollections: ReadonlySet<string>, dirtyTranslations: boolean, isManagedPage: (pageId: string) => boolean): boolean;
29
+ export declare function mergeRemoteWorkspacePages(localPages: readonly CanvasPage[], remotePages: readonly CanvasPage[], dirtyPageIds: ReadonlySet<string>): {
30
+ pages: CanvasPage[];
31
+ changed: boolean;
32
+ };
33
+ //# sourceMappingURL=useWorkspaceDocumentSync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaceDocumentSync.d.ts","sourceRoot":"","sources":["../../src/app/useWorkspaceDocumentSync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKvD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,YAAY,EAAE,gBAAgB,CAAC;IAC/B,aAAa,EAAE,6BAA6B,CAAC;IAC7C,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,YAAY,EAAE,CAAC,SAAS,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAClE,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACnD,8BAA8B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,iBAAiB,GAAG,qBAAqB,CAAC,CAAC;IACvF,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,OAAO,EACP,SAAS,EACT,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,8BAA8B,EAC9B,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,MAAa,GACd,EAAE,yBAAyB,QAsH3B;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EACjC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,EACrC,iBAAiB,EAAE,OAAO,EAC1B,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,GACzC,OAAO,CAGT;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,SAAS,UAAU,EAAE,EACjC,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAW3C"}
@@ -0,0 +1,128 @@
1
+ import { useEffect, useRef } from "react";
2
+ import { normalizeBootstrapContent, pageFingerprints, } from "./helpers.js";
3
+ export function useWorkspaceDocumentSync({ enabled, bootstrap, pages, dirtyPageIds, dirtyCollections, dirtyTranslations, saveState, translations, collaboration, saveCurrentDraft, setBootstrap, setSavedPageFingerprints, setDirtyPageIds, setTranslations, setSavedTranslationFingerprint, setDirtyTranslations, contentModel, hostServices, pollMs = 2000, }) {
4
+ const latestRef = useRef({
5
+ bootstrap,
6
+ pages,
7
+ dirtyPageIds,
8
+ dirtyCollections,
9
+ dirtyTranslations,
10
+ saveState,
11
+ translations,
12
+ });
13
+ const saveCurrentDraftRef = useRef(saveCurrentDraft);
14
+ latestRef.current = {
15
+ bootstrap,
16
+ pages,
17
+ dirtyPageIds,
18
+ dirtyCollections,
19
+ dirtyTranslations,
20
+ saveState,
21
+ translations,
22
+ };
23
+ saveCurrentDraftRef.current = saveCurrentDraft;
24
+ useEffect(() => {
25
+ if (!enabled || !pages || saveState === "saving" || saveState === "error")
26
+ return;
27
+ if (!hasHostManagedWorkspaceChange(pages, dirtyPageIds, dirtyCollections, dirtyTranslations, collaboration.isManagedPage))
28
+ return;
29
+ const timer = window.setTimeout(() => {
30
+ void saveCurrentDraftRef.current();
31
+ }, 500);
32
+ return () => window.clearTimeout(timer);
33
+ }, [enabled, pages, dirtyPageIds, dirtyCollections, dirtyTranslations, saveState, collaboration]);
34
+ useEffect(() => {
35
+ if (!enabled)
36
+ return;
37
+ let cancelled = false;
38
+ let refreshing = false;
39
+ async function refreshWorkspace() {
40
+ if (cancelled || refreshing)
41
+ return;
42
+ const before = latestRef.current;
43
+ if (!before.bootstrap ||
44
+ !before.pages ||
45
+ before.saveState === "saving" ||
46
+ before.dirtyPageIds.size > 0 ||
47
+ before.dirtyCollections.size > 0 ||
48
+ before.dirtyTranslations)
49
+ return;
50
+ refreshing = true;
51
+ try {
52
+ const raw = await hostServices.loadBootstrap();
53
+ if (cancelled)
54
+ return;
55
+ const latest = latestRef.current;
56
+ if (!latest.bootstrap ||
57
+ !latest.pages ||
58
+ latest.saveState === "saving" ||
59
+ latest.dirtyPageIds.size > 0 ||
60
+ latest.dirtyCollections.size > 0 ||
61
+ latest.dirtyTranslations)
62
+ return;
63
+ const remote = normalizeBootstrapContent(raw, contentModel);
64
+ const { pages: mergedPages, changed } = mergeRemoteWorkspacePages(latest.pages, remote.document.pages, latest.dirtyPageIds);
65
+ if (!changed && JSON.stringify(remote.pageStates ?? {}) === JSON.stringify(latest.bootstrap.pageStates ?? {})) {
66
+ return;
67
+ }
68
+ setBootstrap({
69
+ ...remote,
70
+ document: {
71
+ ...remote.document,
72
+ pages: mergedPages,
73
+ },
74
+ });
75
+ setSavedPageFingerprints(pageFingerprints(mergedPages));
76
+ setDirtyPageIds(new Set());
77
+ const remoteTranslations = remote.content.translations ?? {};
78
+ setTranslations(remoteTranslations);
79
+ setSavedTranslationFingerprint(JSON.stringify(remoteTranslations));
80
+ setDirtyTranslations(false);
81
+ }
82
+ catch {
83
+ // Workspace polling is opportunistic; save and collaboration errors are surfaced elsewhere.
84
+ }
85
+ finally {
86
+ refreshing = false;
87
+ }
88
+ }
89
+ const interval = window.setInterval(() => {
90
+ void refreshWorkspace();
91
+ }, pollMs);
92
+ void refreshWorkspace();
93
+ return () => {
94
+ cancelled = true;
95
+ window.clearInterval(interval);
96
+ };
97
+ }, [
98
+ enabled,
99
+ hostServices,
100
+ contentModel,
101
+ pollMs,
102
+ setBootstrap,
103
+ setSavedPageFingerprints,
104
+ setDirtyPageIds,
105
+ setTranslations,
106
+ setSavedTranslationFingerprint,
107
+ setDirtyTranslations,
108
+ ]);
109
+ }
110
+ export function hasHostManagedWorkspaceChange(pages, dirtyPageIds, dirtyCollections, dirtyTranslations, isManagedPage) {
111
+ if (dirtyCollections.size > 0 || dirtyTranslations)
112
+ return true;
113
+ return pages.some((page) => dirtyPageIds.has(page.id) && !isManagedPage(page.id));
114
+ }
115
+ export function mergeRemoteWorkspacePages(localPages, remotePages, dirtyPageIds) {
116
+ const localById = new Map(localPages.map((page) => [page.id, page]));
117
+ const remoteIds = new Set(remotePages.map((page) => page.id));
118
+ const merged = remotePages.map((remotePage) => localById.get(remotePage.id) ?? remotePage);
119
+ for (const localPage of localPages) {
120
+ if (!remoteIds.has(localPage.id) && dirtyPageIds.has(localPage.id))
121
+ merged.push(localPage);
122
+ }
123
+ return {
124
+ pages: merged,
125
+ changed: JSON.stringify(merged) !== JSON.stringify(localPages),
126
+ };
127
+ }
128
+ //# sourceMappingURL=useWorkspaceDocumentSync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaceDocumentSync.js","sourceRoot":"","sources":["../../src/app/useWorkspaceDocumentSync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const EDITOR_APPEARANCE_COLOR_NAMES: readonly ["accent", "accentStrong", "accentSoft", "background", "border", "borderSubtle", "ink", "muted", "mutedDisabled", "panel", "panelStrong", "selection"];
2
+ export type EditorAppearanceColorName = (typeof EDITOR_APPEARANCE_COLOR_NAMES)[number];
3
+ /** Host-owned editor chrome colors. These do not belong to the website document theme. */
4
+ export type EditorShellAppearance = Readonly<Partial<Record<EditorAppearanceColorName, string>>>;
5
+ export declare function editorAppearanceCssVariables(appearance: EditorShellAppearance | undefined): Record<string, string>;
6
+ //# sourceMappingURL=appearance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appearance.d.ts","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,iKAahC,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvF,0FAA0F;AAC1F,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAmBjG,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,qBAAqB,GAAG,SAAS,GAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBxB"}