@panphora/clayjs 1.16.0 → 1.18.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 (511) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/clay-dom.js +1 -1
  3. package/dist/clay-events.js +1 -1
  4. package/dist/clay-internals.js +1 -1
  5. package/dist/clay-options.js +1 -1
  6. package/dist/clay-router.js +1 -1
  7. package/dist/clay-ui.js +1 -1
  8. package/dist/clay-utils.js +1 -1
  9. package/dist/clay.js +1 -1
  10. package/dist/clay.standalone.js +72519 -59839
  11. package/dist/m/attrs/refetch-on-save-ZUE7PSCI.js +1 -0
  12. package/dist/m/attrs/save-freeze-LWGF6XUN.js +1 -0
  13. package/dist/m/c-2GRUM77Q.js +30 -0
  14. package/dist/m/c-2KIEGNC4.js +1 -0
  15. package/dist/m/{c-5R4PTRG2.js → c-2KL3BD52.js} +1 -1
  16. package/dist/m/c-2YYDMLNZ.js +1 -0
  17. package/dist/m/c-2ZZBC45O.js +1 -0
  18. package/dist/m/c-372N6H3B.js +1 -0
  19. package/dist/m/{c-4WKFKEKF.js → c-3G2DGZUP.js} +1 -1
  20. package/dist/m/c-3LDGIBMN.js +1 -0
  21. package/dist/m/c-3O7OBDCM.js +1 -0
  22. package/dist/m/c-4ASQPRQL.js +1 -0
  23. package/dist/m/c-4TXNLX4K.js +6 -0
  24. package/dist/m/c-4YU3BR4D.js +6 -0
  25. package/dist/m/c-5734MF2P.js +1 -0
  26. package/dist/m/c-57XDY6HC.js +1 -0
  27. package/dist/m/{c-VFX45IZQ.js → c-5B4YBZXC.js} +1 -1
  28. package/dist/m/c-5ONTYIUI.js +1 -0
  29. package/dist/m/c-5OOVFCJM.js +1 -0
  30. package/dist/m/c-5T6NZHNM.js +1 -0
  31. package/dist/m/{c-YDH7Q3NY.js → c-5ZQV7KC4.js} +1 -1
  32. package/dist/m/{c-Z36J63PP.js → c-6DB2OLRJ.js} +1 -1
  33. package/dist/m/c-6DNRCPNM.js +1 -0
  34. package/dist/m/c-6UGWFMQC.js +2 -0
  35. package/dist/m/c-7K4SCQB7.js +1 -0
  36. package/dist/m/c-7MG5RU63.js +1 -0
  37. package/dist/m/c-7PRJCA3E.js +1 -0
  38. package/dist/m/c-A6L3FMUS.js +1 -0
  39. package/dist/m/c-AMU3BPPR.js +4 -0
  40. package/dist/m/c-AMYEFA2E.js +1 -0
  41. package/dist/m/c-AQYCG7QW.js +1 -0
  42. package/dist/m/c-ATKAOH23.js +1 -0
  43. package/dist/m/c-B3JM5ZXC.js +1 -0
  44. package/dist/m/c-B5CS55WR.js +1 -0
  45. package/dist/m/c-B5UJQT7W.js +1 -0
  46. package/dist/m/c-B7J4K2AE.js +3 -0
  47. package/dist/m/c-BHZYSHW4.js +1 -0
  48. package/dist/m/c-BIJALSRD.js +1 -0
  49. package/dist/m/c-BJ7YQ5QZ.js +1 -0
  50. package/dist/m/c-BPF2NSPV.js +1 -0
  51. package/dist/m/{c-KIPQJX4B.js → c-BRLCTNMC.js} +1 -1
  52. package/dist/m/c-BUAYFEV5.js +1 -0
  53. package/dist/m/c-C6IPRG34.js +1 -0
  54. package/dist/m/{c-2JL6E75N.js → c-CAS3NND4.js} +1 -1
  55. package/dist/m/{c-4DRMS4QG.js → c-CCQ25GFY.js} +1 -1
  56. package/dist/m/c-CJFDLD43.js +1 -0
  57. package/dist/m/c-COPTL5WB.js +1 -0
  58. package/dist/m/c-D3E4WJ4M.js +166 -0
  59. package/dist/m/c-D5IKEKXW.js +7 -0
  60. package/dist/m/c-DHBRA6DL.js +1 -0
  61. package/dist/m/c-DKLS74XB.js +72 -0
  62. package/dist/m/c-DVYGFTSK.js +3 -0
  63. package/dist/m/c-E3ZXARWA.js +1 -0
  64. package/dist/m/c-EK63G3CG.js +1 -0
  65. package/dist/m/c-ERQSNR6K.js +13 -0
  66. package/dist/m/c-EVYAISP3.js +1 -0
  67. package/dist/m/c-EXKHPOVC.js +3 -0
  68. package/dist/m/{c-7VGZ7RU5.js → c-FWKHM4E7.js} +1 -1
  69. package/dist/m/{c-4Q2XTQ2N.js → c-GBKB5WDL.js} +1 -1
  70. package/dist/m/c-GNDL3TKB.js +1 -0
  71. package/dist/m/c-GRWMD6O5.js +1 -0
  72. package/dist/m/c-GRXHHFPO.js +1 -0
  73. package/dist/m/{c-OYTFP5QN.js → c-GY422N3Q.js} +1 -1
  74. package/dist/m/c-HAWFNBYG.js +1 -0
  75. package/dist/m/c-HG2C77BM.js +4 -0
  76. package/dist/m/c-HHGJBU4D.js +1 -0
  77. package/dist/m/c-HMV6P4RX.js +1 -0
  78. package/dist/m/c-HMYWIHFG.js +1 -0
  79. package/dist/m/c-HT2DKBV2.js +1 -0
  80. package/dist/m/c-I2SCCUEW.js +1 -0
  81. package/dist/m/{c-HRDCD3WN.js → c-ICJYHABF.js} +2 -2
  82. package/dist/m/c-IMZCWYHR.js +7 -0
  83. package/dist/m/c-IVMD3FEM.js +1 -0
  84. package/dist/m/c-IVTRVENZ.js +1 -0
  85. package/dist/m/c-IW6GGOU2.js +1 -0
  86. package/dist/m/c-JKZJIUIP.js +1 -0
  87. package/dist/m/{c-NZMNXVF6.js → c-JNLX3RJB.js} +1 -1
  88. package/dist/m/c-JRKY44DK.js +1 -0
  89. package/dist/m/c-K3ADYNLU.js +1 -0
  90. package/dist/m/c-KBS3UV6B.js +1 -0
  91. package/dist/m/c-KGHVFRR3.js +1 -0
  92. package/dist/m/c-KJJPV77R.js +1 -0
  93. package/dist/m/{c-CZUSOB7V.js → c-KNPDOMDY.js} +1 -1
  94. package/dist/m/{c-5Y6TNX5W.js → c-KP64LT2A.js} +2 -2
  95. package/dist/m/c-KQ7E3PYY.js +1 -0
  96. package/dist/m/c-L3F5ZLIV.js +1 -0
  97. package/dist/m/{c-LR4CGEPT.js → c-L42OLXWM.js} +3 -2
  98. package/dist/m/c-L5VFATT6.js +1 -0
  99. package/dist/m/c-L7JL5TL3.js +3 -0
  100. package/dist/m/c-LKSL4AUJ.js +1 -0
  101. package/dist/m/c-M6FNQCTQ.js +1 -0
  102. package/dist/m/c-MCOOHCSG.js +1 -0
  103. package/dist/m/c-MHI3GYKF.js +1 -0
  104. package/dist/m/c-MWXFLW4J.js +1 -0
  105. package/dist/m/c-NEL7HQW3.js +1 -0
  106. package/dist/m/c-NQJRVJ56.js +1 -0
  107. package/dist/m/c-NWX3MFT4.js +1 -0
  108. package/dist/m/{c-HPURYVZS.js → c-OJYM642Q.js} +1 -1
  109. package/dist/m/c-OKXI52N7.js +1 -0
  110. package/dist/m/{c-MMUIUUZG.js → c-OPLUZR3A.js} +1 -1
  111. package/dist/m/{c-J7CA54IP.js → c-OTMKN2OO.js} +1 -1
  112. package/dist/m/{c-LTGMXXKO.js → c-OYRZ7XG2.js} +1 -1
  113. package/dist/m/c-P3OFYUMA.js +1 -0
  114. package/dist/m/c-PLN76GF3.js +6 -0
  115. package/dist/m/c-PLP4JKFC.js +1 -0
  116. package/dist/m/c-Q26MME6N.js +1 -0
  117. package/dist/m/{c-S7H2DRCB.js → c-Q3XOWZEV.js} +1 -1
  118. package/dist/m/{c-SWRJFCNN.js → c-QIKT6SKM.js} +1 -1
  119. package/dist/m/c-QIXT3Q7C.js +28 -0
  120. package/dist/m/c-QO4HNGCQ.js +1 -0
  121. package/dist/m/c-R27DWQKX.js +1 -0
  122. package/dist/m/{c-HVYXIS72.js → c-R2XUODVY.js} +1 -1
  123. package/dist/m/{c-QNKREOL6.js → c-R7LBFMF5.js} +1 -1
  124. package/dist/m/c-RND3G2S2.js +1 -0
  125. package/dist/m/c-S2U6NJU4.js +1 -0
  126. package/dist/m/c-SPZPGD3R.js +1 -0
  127. package/dist/m/c-SW4YEG2D.js +8 -0
  128. package/dist/m/c-SZGYW5HT.js +1 -0
  129. package/dist/m/c-T637T7SN.js +1 -0
  130. package/dist/m/c-TJAXGIRV.js +1 -0
  131. package/dist/m/{c-KKWLDOPM.js → c-TNEM3RNM.js} +1 -1
  132. package/dist/m/c-TTB5EK4S.js +32 -0
  133. package/dist/m/c-U7SHNWDH.js +1 -0
  134. package/dist/m/c-UDHIVLYH.js +20 -0
  135. package/dist/m/{c-BBVGTQG7.js → c-UGNV5MFB.js} +1 -1
  136. package/dist/m/{c-TQZ2JYHD.js → c-UORXLSD3.js} +1 -1
  137. package/dist/m/c-UPD33ZPE.js +1 -0
  138. package/dist/m/c-URSMSFCB.js +1 -0
  139. package/dist/m/c-UY4QX42B.js +1 -0
  140. package/dist/m/c-V44KWI2L.js +4 -0
  141. package/dist/m/c-VG5XIN4T.js +1 -0
  142. package/dist/m/c-VILENZTD.js +1 -0
  143. package/dist/m/{c-33HUYEDI.js → c-VJYEVRYK.js} +1 -1
  144. package/dist/m/c-VR2BJ4AN.js +1 -0
  145. package/dist/m/c-W4JCVLAB.js +1 -0
  146. package/dist/m/c-W6DQSHXI.js +135 -0
  147. package/dist/m/c-WBGWGOM7.js +1 -0
  148. package/dist/m/{c-4L3BTFRK.js → c-WCXLG3MV.js} +1 -1
  149. package/dist/m/c-WGW764WX.js +1 -0
  150. package/dist/m/c-WMRJKQ2V.js +5 -0
  151. package/dist/m/c-WNTYKCDG.js +1 -0
  152. package/dist/m/c-WQWIRWO3.js +72 -0
  153. package/dist/m/c-X5LNHET5.js +1 -0
  154. package/dist/m/c-X5TSXZYJ.js +2 -0
  155. package/dist/m/c-XGH4GS2T.js +1 -0
  156. package/dist/m/c-Y6F2FORL.js +1 -0
  157. package/dist/m/c-YBKHUAK7.js +10 -0
  158. package/dist/m/c-YBSS55KU.js +20 -0
  159. package/dist/m/c-YCLU4UNT.js +2 -0
  160. package/dist/m/c-YVZ2L7CE.js +1 -0
  161. package/dist/m/c-ZK4GIZH2.js +1 -0
  162. package/dist/m/c-ZRXJD4G6.js +1 -0
  163. package/dist/m/c-ZWBI4HYK.js +1 -0
  164. package/dist/m/{c-HT33EQRN.js → c-ZWIOJGMT.js} +1 -1
  165. package/dist/m/core/admin-attrs-YY7T5FGU.js +1 -0
  166. package/dist/m/core/autosave-S6OMNDCK.js +1 -0
  167. package/dist/m/core/conflict-notice-IWHMHH43.js +1 -0
  168. package/dist/m/core/host-permission-6EVJGNPL.js +1 -0
  169. package/dist/m/core/is-edit-mode-GCX6767E.js +1 -0
  170. package/dist/m/core/{persist-HKHA66IY.js → persist-UKXV5KLA.js} +1 -1
  171. package/dist/m/core/recovery-DRFZRJED.js +1 -0
  172. package/dist/m/core/save-LYY7K6U7.js +1 -0
  173. package/dist/m/core/save-core-MKRPSEEO.js +1 -0
  174. package/dist/m/core/snapshot-NU3YM6GR.js +1 -0
  175. package/dist/m/core/unsaved-warning-7QTKEN7Z.js +1 -0
  176. package/dist/m/events/index-RN2JNGBV.js +1 -0
  177. package/dist/m/internals/index-TGLQINN3.js +1 -0
  178. package/dist/m/lib/cache-bust-MUMFXZK6.js +1 -0
  179. package/dist/m/loader-3BBNZZGM.js +1 -0
  180. package/dist/m/manifest-F449FF98.js +1 -0
  181. package/dist/m/manifest-edit-4396A009.js +1 -0
  182. package/dist/m/manifest.json +2509 -1474
  183. package/dist/m/options/options-EJMS3K24.js +1 -0
  184. package/dist/m/page/editor-6LRB3GE4.js +304 -0
  185. package/dist/m/plugins/ai-edit-UTV7YO2I.js +6 -0
  186. package/dist/m/plugins/{cms-HP3LSTPN.js → cms-LRAOZHT7.js} +9 -9
  187. package/dist/m/plugins/demo-OYO5GCAO.js +1 -0
  188. package/dist/m/plugins/{derive-UAAA4V4S.js → derive-FRE5JJQE.js} +1 -1
  189. package/dist/m/plugins/indicator-4VDXWYTD.js +1 -0
  190. package/dist/m/plugins/live-AD4H6XSL.js +1 -0
  191. package/dist/m/plugins/menu-M5WW7DBF.js +1 -0
  192. package/dist/m/plugins/page-MD3T2ZX3.js +2 -0
  193. package/dist/m/plugins/page-view-PAWVZNFY.js +1 -0
  194. package/dist/m/plugins/people-JCHVPF7P.js +1 -0
  195. package/dist/m/plugins/quickcrop-BQ5YYFCH.js +26 -0
  196. package/dist/m/plugins/{richclay-RC3L2F6X.js → richclay-KLGETK77.js} +2 -2
  197. package/dist/m/plugins/sortable-4S6SQC3D.js +1 -0
  198. package/dist/m/plugins/source-TJXOIOYY.js +1 -0
  199. package/dist/m/plugins/undo-NLPGCJQY.js +1 -0
  200. package/dist/m/plugins/{unsent-HJFLQJ2O.js → unsent-OA4RGBUT.js} +1 -1
  201. package/dist/m/plugins/upgrade-HSUNDNJD.js +1 -0
  202. package/dist/m/plugins/upload-NHGJXZK2.js +1 -0
  203. package/dist/m/plugins/visitor-drafts-BW43DGY3.js +20 -0
  204. package/dist/m/plugins/visitor-drafts-owner-7ODQG7JX.js +1 -0
  205. package/dist/m/plugins/wire-VBWXEXU2.js +1 -0
  206. package/dist/m/reader-core-4W2KYEWQ.js +77 -0
  207. package/dist/m/route/route-62CHXL5B.js +1 -0
  208. package/dist/m/sync/live-sync-MO5DH33W.js +1 -0
  209. package/dist/m/ui/index-IVWN2QC4.js +1 -0
  210. package/dist/m/vendor/sap-core.vendor-RN4ZVY4X.js +6 -0
  211. package/dist/offline-manifest.json +1560 -889
  212. package/dist/page/themes/light-1.css +33 -8
  213. package/dist/server/core.cjs +1554 -311
  214. package/dist/server/offline-runtime.cjs +63 -63
  215. package/dist/server/offline-runtime.mjs +63 -63
  216. package/dist/server/page-compaction-worker.cjs +3710 -0
  217. package/dist/server/rooms.mjs +5 -0
  218. package/docs/guide.md +653 -101
  219. package/entries/sap.js +5 -5
  220. package/package.json +1 -1
  221. package/src/core/admin-contenteditable.js +5 -2
  222. package/src/core/admin-inputs.js +1 -0
  223. package/src/core/admin-onclick.js +2 -1
  224. package/src/core/boot-phase.js +2 -1
  225. package/src/core/conflict-download.js +3 -29
  226. package/src/core/conflict-notice-ui.js +4 -7
  227. package/src/core/download.js +32 -0
  228. package/src/core/host-meta.js +56 -0
  229. package/src/core/is-edit-mode.js +17 -1
  230. package/src/core/mode-key.js +125 -19
  231. package/src/core/mode-support.js +5 -0
  232. package/src/core/mode-transition.js +20 -6
  233. package/src/core/preserve-authored.js +4 -4
  234. package/src/core/recovery.js +121 -33
  235. package/src/core/save-accepted.js +33 -0
  236. package/src/core/save-core.js +111 -32
  237. package/src/core/save-job.js +108 -0
  238. package/src/core/save-prepare.js +53 -0
  239. package/src/core/save-size-notice.js +3 -1
  240. package/src/core/save-slices.js +15 -0
  241. package/src/core/save.js +557 -127
  242. package/src/core/serialize-steps.js +109 -0
  243. package/src/core/snapshot.js +209 -40
  244. package/src/core/source-map.js +83 -38
  245. package/src/core/stale-host-notice.js +1 -0
  246. package/src/core/upgrade-run.js +59 -8
  247. package/src/dom/active-element.js +5 -0
  248. package/src/lib/assets.js +1 -0
  249. package/src/lib/autosave-scheduler.js +3 -4
  250. package/src/lib/slice.js +65 -0
  251. package/src/lib/uimotion.js +774 -0
  252. package/src/lib/unsaved-state.js +2 -2
  253. package/src/live/fast-lane.js +10 -3
  254. package/src/live/local-lane.js +202 -11
  255. package/src/live/ops.js +16 -0
  256. package/src/live/page-compaction.js +162 -0
  257. package/src/live/server-lane.js +1 -0
  258. package/src/live/store.js +11 -3
  259. package/src/loader-logic.js +3 -1
  260. package/src/loader.js +14 -4
  261. package/src/page/adopt-boot.js +2 -1
  262. package/src/page/awareness.js +33 -2
  263. package/src/page/blocks.js +122 -27
  264. package/src/page/board-views.js +2 -16
  265. package/src/page/boot-pack.js +1 -1
  266. package/src/page/chart-tables.js +29 -0
  267. package/src/page/chart.js +411 -72
  268. package/src/page/checklist.js +10 -135
  269. package/src/page/checkpoint-proof.js +295 -0
  270. package/src/page/chrome.js +257 -40
  271. package/src/page/clipboard-shape.js +126 -0
  272. package/src/page/document-title-dom.js +12 -0
  273. package/src/page/document-title-runtime.js +15 -1
  274. package/src/page/document-title.js +4 -1
  275. package/src/page/drag.js +33 -3
  276. package/src/page/editor.js +207 -31
  277. package/src/page/emoji-data.js +162 -0
  278. package/src/page/export-assets.js +357 -0
  279. package/src/page/export-html.js +209 -0
  280. package/src/page/export-markdown.js +361 -0
  281. package/src/page/features/board.js +12 -3
  282. package/src/page/features/chart.js +11 -0
  283. package/src/page/features/checklist.js +428 -0
  284. package/src/page/features/dates.js +180 -0
  285. package/src/page/features/emoji.js +187 -0
  286. package/src/page/features/export-html.js +189 -0
  287. package/src/page/features/export-markdown.js +169 -0
  288. package/src/page/features/import-markdown.js +349 -0
  289. package/src/page/features/media.js +61 -5
  290. package/src/page/features/mentions.js +188 -0
  291. package/src/page/features/registry.js +24 -1
  292. package/src/page/features/table.js +375 -85
  293. package/src/page/features/title-cover.js +331 -0
  294. package/src/page/features/title-icon.js +213 -0
  295. package/src/page/features/toc.js +87 -0
  296. package/src/page/format-command.js +33 -0
  297. package/src/page/format-gate.js +68 -18
  298. package/src/page/format-host.js +71 -0
  299. package/src/page/format-native-commands.js +158 -0
  300. package/src/page/format-native.js +42 -0
  301. package/src/page/image-actions.js +64 -0
  302. package/src/page/import-markdown.js +262 -0
  303. package/src/page/inline.js +32 -8
  304. package/src/page/items.js +141 -11
  305. package/src/page/markdown.js +30 -2
  306. package/src/page/media.js +35 -119
  307. package/src/page/mention-picker.js +99 -0
  308. package/src/page/merge.js +1 -1
  309. package/src/page/placeholder.js +14 -1
  310. package/src/page/projection.js +156 -25
  311. package/src/page/recover.js +10 -12
  312. package/src/page/recovery-ui.js +464 -0
  313. package/src/page/rich/chart.js +63 -7
  314. package/src/page/save-projection.js +67 -0
  315. package/src/page/save-states.js +14 -4
  316. package/src/page/schema.js +52 -3
  317. package/src/page/table-paste.js +3 -1
  318. package/src/page/table-style.js +4 -4
  319. package/src/page/table.js +44 -2
  320. package/src/page/themes/content.css +25 -1
  321. package/src/page/themes/light-1.css +33 -8
  322. package/src/page/themes/light-1.source.css +8 -7
  323. package/src/page/toc-link.js +31 -0
  324. package/src/page/toc.js +5 -0
  325. package/src/page/view-hooks.js +58 -0
  326. package/src/page/view.js +13 -0
  327. package/src/page/ybind/binding.js +116 -6
  328. package/src/page/ybind/bridge.js +187 -20
  329. package/src/page/ybind/containment.js +162 -0
  330. package/src/page/ybind/doc.js +17 -9
  331. package/src/page/ybind/file-debt.js +63 -0
  332. package/src/page/ybind/layout.js +7 -2
  333. package/src/page/ybind/marks.js +2 -1
  334. package/src/page/ybind/moves.js +5 -4
  335. package/src/page/ybind/origins.js +106 -4
  336. package/src/page/ybind/parts.js +8 -1
  337. package/src/page/ybind/provider.js +125 -18
  338. package/src/page/ybind/recovery-proof.js +32 -9
  339. package/src/page/ybind/recovery-replay.js +905 -4
  340. package/src/page/ybind/recovery.js +174 -45
  341. package/src/page/ybind/table.js +67 -11
  342. package/src/page/ybind/walk-delta.js +258 -0
  343. package/src/page/ybind/walk.js +54 -29
  344. package/src/page/ybind/writer.js +1 -1
  345. package/src/plugins/ai-edit.js +13 -9
  346. package/src/plugins/indicator-chip.js +91 -0
  347. package/src/plugins/indicator.js +13 -80
  348. package/src/plugins/live.js +126 -15
  349. package/src/plugins/menu/actions.js +196 -0
  350. package/src/plugins/menu/people.js +279 -0
  351. package/src/plugins/menu/placement.js +121 -0
  352. package/src/plugins/menu/preferences.js +9 -0
  353. package/src/plugins/menu/seo.js +316 -397
  354. package/src/plugins/menu/style.js +171 -0
  355. package/src/plugins/menu/variants.js +296 -0
  356. package/src/plugins/menu.js +186 -183
  357. package/src/plugins/page-view.js +3 -2
  358. package/src/plugins/page.js +362 -43
  359. package/src/plugins/sortable.js +8 -1
  360. package/src/plugins/source.js +6 -0
  361. package/src/plugins/upgrade.js +51 -17
  362. package/src/plugins/upload-ui.js +12 -17
  363. package/src/plugins/visitor-drafts/bottom-ui.js +12 -4
  364. package/src/plugins/visitor-drafts/intro-style.js +7 -2
  365. package/src/plugins/visitor-drafts/intro.js +7 -4
  366. package/src/plugins/visitor-drafts/owner-chip.js +8 -12
  367. package/src/plugins/visitor-drafts/prompt.js +11 -9
  368. package/src/plugins/visitor-drafts/source.js +4 -3
  369. package/src/plugins/visitor-drafts/store.js +138 -9
  370. package/src/plugins/visitor-drafts/ui-memory.js +2 -2
  371. package/src/plugins/visitor-drafts-owner.js +4 -6
  372. package/src/plugins/visitor-drafts.js +5 -3
  373. package/src/recovery/store.js +1 -1
  374. package/src/route/route.js +4 -0
  375. package/src/server/checkpoint/index.js +2 -2
  376. package/src/server/rooms/index.js +5 -1
  377. package/src/server/rooms/live-data-rooms.js +302 -50
  378. package/src/server/rooms/page-compaction-worker.js +12 -0
  379. package/src/server/rooms/page-compactor.js +92 -0
  380. package/src/server/rooms/page-room-conformance.js +461 -0
  381. package/src/source/parse-steps.js +94 -0
  382. package/src/source/session.js +233 -57
  383. package/src/sync/editing-sender.js +12 -0
  384. package/src/sync/live-sync-edit.js +22 -2
  385. package/src/sync/live-sync.js +150 -23
  386. package/src/sync/page-relay.js +52 -0
  387. package/src/sync/presence-store.js +44 -4
  388. package/src/sync/presence.js +6 -3
  389. package/src/sync/saved-stream.js +28 -14
  390. package/src/ui/bevel-controls.js +1 -0
  391. package/src/ui/bevel-dialog.js +5 -2
  392. package/src/ui/editor-ui.js +77 -0
  393. package/src/ui/page-colour.js +281 -0
  394. package/src/ui/toast.js +16 -7
  395. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  396. package/src/vendor/hyper-undo.vendor.js +1 -1
  397. package/src/vendor/hypercms.vendor.js +9 -9
  398. package/src/vendor/parse5.vendor.js +2 -2
  399. package/src/vendor/sap-core.vendor.js +5 -5
  400. package/dist/m/attrs/refetch-on-save-NWPPXOCZ.js +0 -1
  401. package/dist/m/attrs/save-freeze-FUP4Q4X3.js +0 -1
  402. package/dist/m/c-2M73252O.js +0 -1
  403. package/dist/m/c-2SPVQSHC.js +0 -1
  404. package/dist/m/c-35NBGMZB.js +0 -1
  405. package/dist/m/c-3IQRECYS.js +0 -1
  406. package/dist/m/c-4B6H4G5V.js +0 -1
  407. package/dist/m/c-4FFHZM32.js +0 -1
  408. package/dist/m/c-4YSCRICO.js +0 -1
  409. package/dist/m/c-54RCDCBU.js +0 -1
  410. package/dist/m/c-5M4YEKCX.js +0 -4
  411. package/dist/m/c-5V3MOVJT.js +0 -1
  412. package/dist/m/c-66O32MV3.js +0 -28
  413. package/dist/m/c-6HMB24EV.js +0 -1
  414. package/dist/m/c-7O6AFR65.js +0 -1
  415. package/dist/m/c-ANQTJ3B5.js +0 -2
  416. package/dist/m/c-AYVOREBE.js +0 -1
  417. package/dist/m/c-B2ZXPOS3.js +0 -3
  418. package/dist/m/c-BMIZKMPV.js +0 -1
  419. package/dist/m/c-BTDI4Y23.js +0 -1
  420. package/dist/m/c-CJZSLMVQ.js +0 -1
  421. package/dist/m/c-DBE6ORSI.js +0 -1
  422. package/dist/m/c-EDHUR4MX.js +0 -1
  423. package/dist/m/c-EY6UOM54.js +0 -1
  424. package/dist/m/c-F3CKJTJS.js +0 -1
  425. package/dist/m/c-F7Y6FLPY.js +0 -1
  426. package/dist/m/c-FA4DZVTC.js +0 -1
  427. package/dist/m/c-G2BUZITR.js +0 -1
  428. package/dist/m/c-GB3JTV6E.js +0 -1
  429. package/dist/m/c-GBGWXTX4.js +0 -1
  430. package/dist/m/c-GHBCCVG4.js +0 -1
  431. package/dist/m/c-GJAEGGXY.js +0 -1
  432. package/dist/m/c-GOWBDM6J.js +0 -1
  433. package/dist/m/c-IB52R237.js +0 -1
  434. package/dist/m/c-IKWNE4R4.js +0 -1
  435. package/dist/m/c-IU3IYEU6.js +0 -1
  436. package/dist/m/c-IZ2EBRAJ.js +0 -1
  437. package/dist/m/c-KR4UW4KW.js +0 -1
  438. package/dist/m/c-KY3VJGUA.js +0 -8
  439. package/dist/m/c-LFPHCXY3.js +0 -1
  440. package/dist/m/c-LRPUO2MX.js +0 -1
  441. package/dist/m/c-LXENEBV7.js +0 -1
  442. package/dist/m/c-NMJRXKPC.js +0 -8
  443. package/dist/m/c-OIBUTDXI.js +0 -1
  444. package/dist/m/c-PPOSCAQD.js +0 -1
  445. package/dist/m/c-QIX5BJYN.js +0 -1
  446. package/dist/m/c-QQHEX6HA.js +0 -1
  447. package/dist/m/c-R7RMANJI.js +0 -9
  448. package/dist/m/c-RI4NT75Y.js +0 -1
  449. package/dist/m/c-RM7J7BV2.js +0 -1
  450. package/dist/m/c-RUJKSUQW.js +0 -1
  451. package/dist/m/c-SGCCC4FW.js +0 -25
  452. package/dist/m/c-T4VO4OCB.js +0 -1
  453. package/dist/m/c-TQEMVJCS.js +0 -1
  454. package/dist/m/c-TR6RMDQ7.js +0 -3
  455. package/dist/m/c-UKHTLWUW.js +0 -1
  456. package/dist/m/c-UNN7LWCT.js +0 -1
  457. package/dist/m/c-UXBMRDZB.js +0 -235
  458. package/dist/m/c-V7PZZRG7.js +0 -1
  459. package/dist/m/c-VL52ADDR.js +0 -1
  460. package/dist/m/c-WNYBLIOZ.js +0 -1
  461. package/dist/m/c-WWDBYXLK.js +0 -1
  462. package/dist/m/c-XNNW2CWK.js +0 -1
  463. package/dist/m/c-Y6USGTS5.js +0 -5
  464. package/dist/m/c-YG2NJYS6.js +0 -135
  465. package/dist/m/c-Z4VRC7GU.js +0 -7
  466. package/dist/m/c-Z6K52OLP.js +0 -19
  467. package/dist/m/c-ZDY2MDAA.js +0 -21
  468. package/dist/m/c-ZUCOKOHT.js +0 -1
  469. package/dist/m/core/admin-attrs-VGNLAUDK.js +0 -1
  470. package/dist/m/core/autosave-E4PEFPZ6.js +0 -1
  471. package/dist/m/core/conflict-notice-VQ6Y64PH.js +0 -1
  472. package/dist/m/core/host-permission-XN3K2IW3.js +0 -1
  473. package/dist/m/core/is-edit-mode-JXHDVGUL.js +0 -1
  474. package/dist/m/core/recovery-TBBSICE2.js +0 -1
  475. package/dist/m/core/save-WUCHTQBE.js +0 -1
  476. package/dist/m/core/save-core-FJVHT5M3.js +0 -1
  477. package/dist/m/core/snapshot-F3SWDZMM.js +0 -1
  478. package/dist/m/core/unsaved-warning-STKBHE6G.js +0 -1
  479. package/dist/m/events/index-23DPTUT4.js +0 -1
  480. package/dist/m/internals/index-WOVAP3RU.js +0 -1
  481. package/dist/m/lib/cache-bust-CGWT6ZJI.js +0 -1
  482. package/dist/m/loader-HXX6YNH5.js +0 -1
  483. package/dist/m/manifest-F22DEDAC.js +0 -1
  484. package/dist/m/manifest-edit-C3C7376B.js +0 -1
  485. package/dist/m/options/options-2LH76JQ3.js +0 -1
  486. package/dist/m/page/editor-XUTB2HB2.js +0 -189
  487. package/dist/m/plugins/ai-edit-ZQ4CGWIP.js +0 -6
  488. package/dist/m/plugins/demo-ZIBFAA3R.js +0 -1
  489. package/dist/m/plugins/indicator-PV4YW2ID.js +0 -1
  490. package/dist/m/plugins/live-NUTTXSBS.js +0 -1
  491. package/dist/m/plugins/menu-HCKO3DSP.js +0 -138
  492. package/dist/m/plugins/page-KSUH7G6J.js +0 -2
  493. package/dist/m/plugins/page-view-W73OW7WI.js +0 -1
  494. package/dist/m/plugins/people-AJJ32YCG.js +0 -1
  495. package/dist/m/plugins/quickcrop-QNY3PKLD.js +0 -26
  496. package/dist/m/plugins/sortable-YRMQX3ZU.js +0 -1
  497. package/dist/m/plugins/source-KHK5UUSK.js +0 -1
  498. package/dist/m/plugins/undo-OF2L3CXU.js +0 -1
  499. package/dist/m/plugins/upgrade-ZNYODP5Y.js +0 -1
  500. package/dist/m/plugins/upload-XSGNILUY.js +0 -1
  501. package/dist/m/plugins/visitor-drafts-XK5GW55Q.js +0 -21
  502. package/dist/m/plugins/visitor-drafts-owner-KSSH75EV.js +0 -1
  503. package/dist/m/plugins/wire-ZWVWKF76.js +0 -1
  504. package/dist/m/reader-core-ILWLXVMP.js +0 -68
  505. package/dist/m/route/route-KOCZSEGN.js +0 -1
  506. package/dist/m/sync/live-sync-4AUVXVJU.js +0 -1
  507. package/dist/m/ui/index-EVHKMKBL.js +0 -1
  508. package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +0 -6
  509. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  510. /package/dist/m/plugins/{quickcrop-QNY3PKLD.js.LEGAL.txt → quickcrop-BQ5YYFCH.js.LEGAL.txt} +0 -0
  511. /package/dist/m/plugins/{richclay-RC3L2F6X.js.LEGAL.txt → richclay-KLGETK77.js.LEGAL.txt} +0 -0
@@ -1,135 +0,0 @@
1
- import{a as i,b as y,c as k}from"./c-IB52R237.js";import{b as K}from"./c-EDHUR4MX.js";import{y as g}from"./c-TR6RMDQ7.js";import{D,m as w}from"./c-66O32MV3.js";import"./c-VHNSBD2M.js";var O=`
2
- :where(article[data-page], .page-shell) { --page-board-lane: 274px; --page-board-gap: 14px; --page-board-radius: 8px; --page-board-panel: 360px; }
3
- .page-editor .page-board { margin-block: 1.1em 1.5em; font-size: 15px; line-height: 1.4; white-space: normal; }
4
- :is(.page-board, .page-board-panel) .i { flex: none; width: 16px; height: 16px; }
5
- .page-board-scroll { position: relative; margin: -4px -4px 0; padding: 4px 4px 12px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--page-chrome-ink-rest) transparent; }
6
- .page-board-lanes { display: flex; align-items: flex-start; gap: var(--page-board-gap); width: max-content; }
7
- .page-board-lane { flex: 0 0 var(--page-board-lane); width: var(--page-board-lane); min-width: 0; }
8
- .page-board-head { position: relative; display: flex; align-items: flex-start; gap: 8px; padding: 8px 0 7px; margin-bottom: 10px; border-bottom: 1px solid var(--page-rule); }
9
- .page-board-name { min-width: 0; margin: 0; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--page-ink-strong); font: 600 14px/20px var(--page-font-heading); overflow-wrap: anywhere; }
10
- .page-board-count { flex: none; color: var(--page-ink-soft); font-size: 14px; line-height: 20px; font-variant-numeric: tabular-nums; }
11
- .page-board-icon { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; margin-block: -4px; padding: 0; border: 0; border-radius: 6px; background: none; color: var(--page-ink-faint); cursor: pointer; transition: background-color var(--page-fade), color var(--page-fade); }
12
- .page-board-icon:hover, .page-board-icon[aria-expanded="true"] { background: var(--page-pop-hover); color: var(--page-ink-soft); }
13
- .page-board-icon:focus-visible { color: var(--page-ink-soft); }
14
- .page-board-colmenu { margin-inline: auto -4px; }
15
- .page-board-cards { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
16
- .page-board-cards > li { position: relative; }
17
- .page-board-card { display: block; width: 100%; margin: 0; padding: 10px 12px 11px; border: 1px solid var(--page-rule); border-radius: var(--page-board-radius); background: var(--page-pop-bg); color: var(--page-ink); font: inherit; text-align: start; cursor: pointer; transition: background-color var(--page-fade), border-color var(--page-fade); }
18
- .page-board-card:hover { background-color: color-mix(in srgb, var(--page-pop-bg) 96%, var(--page-ink)); }
19
- .page-board-card[aria-expanded="true"] { border-color: var(--page-accent); box-shadow: inset 0 0 0 1px var(--page-accent); }
20
- .page-board-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; font-size: 15px; font-weight: 500; line-height: 21px; overflow-wrap: anywhere; }
21
- .page-board-meta { display: flex; align-items: center; gap: 8px; margin-top: 8px; color: var(--page-ink-soft); font-size: 13px; line-height: 20px; }
22
- .page-board-owner { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
23
- .page-board-owner-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
24
- .page-board-due { flex: none; display: inline-flex; align-items: center; gap: 6px; margin-inline-start: auto; white-space: nowrap; font-variant-numeric: tabular-nums; }
25
- .page-board-due[data-due="today"] { color: var(--page-ink); font-weight: 500; }
26
- .page-board-due[data-due="overdue"] { color: var(--page-ink); }
27
- .page-board-due[data-due="overdue"]::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--page-danger); }
28
- .page-board-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
29
- .page-board-add { display: flex; align-items: center; gap: 6px; width: 100%; min-height: 36px; margin-top: 6px; padding: 0 12px; border: 0; border-radius: 7px; background: none; color: var(--page-ink-soft); font: inherit; font-size: 14px; text-align: start; cursor: pointer; transition: background-color var(--page-fade); }
30
- .page-board-add .i { width: 14px; height: 14px; color: var(--page-ink-faint); }
31
- .page-board-add:hover { background: var(--page-pop-hover); }
32
- .page-board-addcol { flex: none; display: inline-grid; place-items: center; width: 32px; height: 32px; margin-top: 2px; padding: 0; border: 1px solid var(--page-chrome-line-rest); border-radius: var(--page-chrome-radius); background: var(--page-chrome-bg-rest); color: var(--page-ink-faint); cursor: pointer; transition: color var(--page-fade), background-color var(--page-fade), border-color var(--page-fade); }
33
- .page-board-addcol:hover { border-color: var(--page-chrome-line-moved); background: var(--page-chrome-bg-moved); color: var(--page-ink-soft); }
34
- .page-board-addcol .i { width: 14px; height: 14px; }
35
- .page-board-tray { margin-bottom: 18px; padding: 6px 12px 12px; border-radius: 10px; background: var(--page-callout-bg); }
36
- .page-board-tray-head { display: flex; align-items: center; gap: 8px; min-height: 44px; margin-bottom: 4px; }
37
- .page-board-tray .page-board-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
38
- .page-board-select { position: relative; display: block; min-width: 0; }
39
- .page-board-select > .i { position: absolute; inset-inline-end: 8px; top: 50%; margin-top: -8px; color: var(--page-ink-faint); pointer-events: none; }
40
- .page-board-select select { appearance: none; -webkit-appearance: none; padding-inline-end: 32px; text-overflow: ellipsis; }
41
- .page-board-move { margin-top: 6px; }
42
- .page-board-move select { width: 100%; min-height: 32px; padding-inline-start: 10px; border: 1px solid var(--page-pop-line); border-radius: 7px; background: var(--page-pop-bg); color: var(--page-ink); font: inherit; font-size: 14px; cursor: pointer; }
43
- .page-board-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 32px; padding: 0 12px 0 10px; border: 1px solid var(--page-pop-line); border-radius: 7px; background: none; color: var(--page-pop-ink); font: inherit; font-size: 14px; cursor: pointer; transition: background-color var(--page-fade), color var(--page-fade); }
44
- .page-board-btn:hover { background: var(--page-pop-hover); }
45
- .page-board-btn .i { width: 14px; height: 14px; color: var(--page-pop-muted); }
46
- .page-board-btn:disabled { background: none; color: var(--page-ink-faint); cursor: default; }
47
- .page-board-btn:disabled .i { color: var(--page-ink-faint); }
48
- .page-board-restore { flex: none; margin-inline-start: auto; }
49
- .page-board-deleted { background: none; padding: 0; }
50
- .page-board-deleted-toggle[aria-expanded="false"] svg { transform: rotate(-90deg); }
51
- .page-board-deleted-list { list-style: none; margin: 0; padding: 0 0 0 12px; }
52
- .page-board-deleted-item { display: flex; align-items: center; gap: 8px; min-height: 44px; color: var(--page-ink-soft); }
53
- .page-board :is(button, select, input, textarea):focus-visible, .page-board-panel :is(button, select, input, textarea):focus-visible { outline: 2px solid var(--page-accent); outline-offset: 2px; }
54
- .page-board-pop { position: absolute; z-index: 6; padding: 6px; border: 1px solid var(--page-pop-line); border-radius: var(--page-pop-radius); background: var(--page-pop-bg); box-shadow: var(--page-pop-shadow); color: var(--page-pop-ink); font-size: 14px; line-height: 1.4; }
55
- .page-board-menu { top: calc(100% - 2px); inset-inline-end: -6px; width: 208px; }
56
- .page-board-option { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 34px; padding: 4px 10px; border: 0; border-radius: 7px; background: none; color: inherit; font: inherit; text-align: start; cursor: pointer; }
57
- .page-board-option:hover, .page-board-option[aria-selected="true"], .page-board-option[aria-pressed="true"] { background: var(--page-pop-hover); }
58
- .page-board-option > .i { color: var(--page-pop-muted); }
59
- .page-board-option.is-danger { color: var(--page-danger); }
60
- .page-board-option.is-danger > .i { color: inherit; }
61
- .page-board-option:disabled { color: var(--page-ink-faint); cursor: default; background: none; }
62
- .page-board-option:disabled > .i { color: var(--page-ink-faint); }
63
- .page-board-sep { height: 1px; margin: 4px 6px; background: var(--page-pop-line); }
64
- .page-board-rename { flex: 1 1 auto; min-width: 0; height: 28px; margin: -4px 0 -4px -6px; padding: 0 6px; border: 0; border-radius: 6px; background: var(--page-pop-hover); color: var(--page-ink-strong); font: 600 14px/20px var(--page-font-heading); }
65
- .page-board-new { display: block; width: 100%; min-height: 44px; margin-top: 8px; padding: 10px 12px; border: 1px solid var(--page-rule); border-radius: var(--page-board-radius); background: var(--page-pop-bg); color: var(--page-ink); font: 500 15px/21px var(--page-font); }
66
- .page-board-new::placeholder, .page-board-rename::placeholder { color: var(--page-ink-faint); font-weight: 400; }
67
- .page-board-card, .page-board-name, .page-board-count { -webkit-user-select: none; user-select: none; }
68
- .page-editor[contenteditable="true"] .page-board-head[data-col] .page-board-name { cursor: grab; }
69
- .page-board.is-dragging, .page-board.is-dragging * { cursor: grabbing; }
70
- .page-board .is-drag-source { opacity: 0.45; }
71
- .page-board-drop { height: 2px; margin-block: -5px; border-radius: 1px; background: var(--page-drop, var(--page-accent)); pointer-events: none; }
72
- .page-board-drop.is-column { flex: 0 0 2px; align-self: stretch; width: 2px; height: auto; margin-block: 0; margin-inline: calc((var(--page-board-gap) + 2px) / -2); }
73
- .page-board-ghost { position: fixed; z-index: 6; top: 0; left: 0; box-sizing: border-box; margin: 0; box-shadow: var(--page-pop-shadow); pointer-events: none; }
74
- .page-board-lane.page-board-ghost { padding: 0 10px 10px; border-radius: var(--page-board-radius); background: var(--page-bg); }
75
- .page-board-scrim { display: none; position: fixed; inset: 0; z-index: 4; background: var(--page-scrim); }
76
- .page-board-panel { position: fixed; z-index: 5; inset-block: 0; inset-inline-end: 0; width: var(--page-board-panel); box-sizing: border-box; overflow-y: auto; padding: 18px 20px 24px; border-inline-start: 1px solid var(--page-pop-line); background: var(--page-pop-bg); color: var(--page-pop-ink); font-family: var(--page-font); font-size: 15px; line-height: 1.4; }
77
- .page-shell.has-board-panel { padding-inline-end: calc(var(--page-board-panel) + 16px); }
78
- .page-board-panel-top { display: flex; align-items: flex-start; gap: 8px; }
79
- .page-board-panel-title { flex: 1 1 0; min-width: 0; margin: -4px 0 0 -8px; padding: 4px 8px; border: 0; border-radius: 7px; background: none; color: var(--page-ink-strong); font: 600 20px/28px var(--page-font-heading); field-sizing: content; resize: none; overflow: hidden; }
80
- .page-board-panel-title:hover { background: var(--page-pop-hover); }
81
- .page-board-close { width: 32px; height: 32px; margin: -2px -6px 0 0; color: var(--page-ink-soft); }
82
- .page-board-fields { margin: 18px 0 0; border-top: 1px solid var(--page-pop-line); }
83
- .page-board-field { position: relative; display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: center; column-gap: 8px; min-height: 44px; border-bottom: 1px solid var(--page-pop-line); }
84
- .page-board-field.is-owner { align-items: start; padding-block: 8px; }
85
- .page-board-field.is-owner .page-board-label { padding-top: 4px; }
86
- .page-board-label { color: var(--page-pop-muted); font-size: 14px; }
87
- .page-board-control { display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; min-height: 34px; margin: 0; padding: 0 8px; border: 0; border-radius: 7px; background: none; color: var(--page-pop-ink); font: inherit; font-size: 15px; text-align: start; cursor: pointer; transition: background-color var(--page-fade); }
88
- .page-board-control:hover { background: var(--page-pop-hover); }
89
- .page-board-control > .i:last-child { margin-inline-start: auto; color: var(--page-ink-faint); }
90
- .page-board-control-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
91
- .page-board-none { color: var(--page-ink-faint); }
92
- .page-board-control .page-board-due { margin: 0; color: var(--page-pop-ink); font-weight: 400; }
93
- .page-board-due-note { color: var(--page-pop-muted); font-size: 13px; }
94
- .page-board-control .page-board-due + .page-board-due-note { margin-inline-start: auto; }
95
- .page-board-control .page-board-due-note + .i { margin-inline-start: 0; }
96
- .page-board-date { border: 1px solid var(--page-pop-line); cursor: text; }
97
- .page-board-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 20px; }
98
- .page-board-delete { margin-inline-start: auto; border-color: transparent; color: var(--page-pop-muted); }
99
- .page-board-delete:hover { background: var(--page-pop-hover); color: var(--page-danger); }
100
- .page-board-delete:hover .i { color: inherit; }
101
- @media (max-width: 1039.98px) {
102
- .page-shell.has-board-panel { padding-inline-end: 16px; }
103
- .page-board-scrim { display: block; }
104
- .page-board-panel { inset: auto 0 0 0; width: auto; max-width: 640px; max-height: 85%; margin-inline: auto; padding: 14px 16px calc(16px + env(safe-area-inset-bottom)); border: 1px solid var(--page-pop-line); border-bottom: 0; border-radius: 16px 16px 0 0; box-shadow: var(--page-pop-shadow); }
105
- .page-board-close { width: 44px; height: 44px; margin: -8px -10px 0 0; }
106
- .page-board-panel-top { min-height: 36px; }
107
- .page-board-field { min-height: 48px; }
108
- .page-board-control { min-height: 44px; }
109
- .page-board-actions { margin-top: 16px; }
110
- .page-board-actions .page-board-btn { flex: 1 1 0; min-height: 44px; }
111
- .page-board-actions .page-board-delete { flex: 1 1 100%; margin-inline-start: 0; }
112
- }
113
- @media (max-width: 560px) {
114
- .page-board-scroll { scroll-snap-type: x proximity; scroll-padding-inline: 4px; }
115
- .page-board-lane { scroll-snap-align: start; }
116
- .page-board-head { padding: 12px 0 11px; }
117
- .page-board-head .page-board-icon { width: 44px; height: 44px; margin-block: -12px; }
118
- .page-board-colmenu { margin-inline-end: -12px; }
119
- .page-board-card { min-height: 44px; padding: 12px 14px 13px; }
120
- .page-board-add { min-height: 44px; padding-inline: 14px; }
121
- .page-board-addcol { width: 44px; height: 44px; margin-top: 0; }
122
- .page-board-tray-head { min-height: 48px; }
123
- .page-board-move select, .page-board-btn { min-height: 44px; }
124
- .page-board-move select, .page-board-new { font-size: 16px; }
125
- .page-board-option { min-height: 44px; }
126
- .page-board-rename { height: 44px; margin-block: -12px; font-size: 16px; }
127
- .page-board-panel { border-width: 1px 0 0; }
128
- .page-board-panel-title { margin-top: -8px; padding-block: 8px; }
129
- .page-board-control { font-size: 16px; }
130
- .page-board-label { font-size: 15px; }
131
- }
132
- @media (prefers-reduced-motion: reduce) {
133
- .page-board-icon, .page-board-card, .page-board-add, .page-board-addcol, .page-board-btn, .page-board-control { transition: none; }
134
- }
135
- `;var U=4,m=56,z=18,F=["id","data-focus","data-action","data-card","data-col"],C=(s,e)=>{let t=s.getBoundingClientRect();return e==="x"?t.left+t.width/2:t.top+t.height/2},q=(s,e,t)=>s<e+m?-z*Math.min(1,(e+m-s)/m):s>t-m?z*Math.min(1,(s-(t-m))/m):0,j=(s,e)=>s?.col===e?.col&&s?.afterId===e?.afterId&&!s==!e,I=class{constructor(e){this.host=e,this.state=null,this.line=null,this.suppress=!1,this.onMove=t=>this.move(t),this.onUp=t=>this.end(t),this.onCancel=t=>{t.pointerId===this.state?.pointer&&this.cancel()},this.onKey=t=>{t.key==="Escape"&&this.state?.active&&(t.preventDefault(),t.stopPropagation(),this.cancel())},e.dom.addEventListener("pointerdown",t=>this.start(t)),e.dom.addEventListener("click",t=>{this.suppress&&(this.suppress=!1,t.preventDefault(),t.stopImmediatePropagation())},!0)}start(e){let t=this.host;if(e.button!==0||e.pointerType==="touch"||this.state||!t.commands||!t.view.editable)return;let a=e.target.closest?.(".page-board-card[data-card]"),o=a?null:e.target.closest?.(".page-board-head[data-col]");if(!a&&(!o||e.target.closest("button, input")))return;this.state={kind:a?"card":"column",id:a?a.dataset.card:o.dataset.col,pointer:e.pointerId,x0:e.clientX,y0:e.clientY,x:e.clientX,y:e.clientY,active:!1,slot:null,raf:0,ghost:null};let r=t.dom.ownerDocument;r.addEventListener("pointermove",this.onMove),r.addEventListener("pointerup",this.onUp),r.addEventListener("pointercancel",this.onCancel)}move(e){let t=this.state;if(!(!t||e.pointerId!==t.pointer)){if(t.x=e.clientX,t.y=e.clientY,!t.active){if(Math.hypot(t.x-t.x0,t.y-t.y0)<=U)return;this.begin()}e.preventDefault(),this.track()}}source(){let{kind:e,id:t}=this.state;return[...e==="card"?this.host.dom.querySelectorAll(".page-board-card[data-card]"):this.host.lanes.querySelectorAll(".page-board-lane[data-col]")].find(o=>(e==="card"?o.dataset.card:o.dataset.col)===t)??null}exists(){let{kind:e,id:t}=this.state,a=this.host.board;return e==="card"?Object.hasOwn(a.cards,t):a.columnIds.includes(t)}begin(){let e=this.state,t=this.host,a=this.source();if(!a||!this.exists())return this.stop();t.menu!==null&&t.closeMenu(!1),e.active=!0;let o=a.getBoundingClientRect();e.dx=e.x0-o.left,e.dy=e.y0-o.top;let r=a.cloneNode(!0);for(let n of[r,...r.querySelectorAll("*")])for(let d of F)n.removeAttribute(d);r.classList.add("page-board-ghost"),r.setAttribute("aria-hidden","true"),r.setAttribute("inert",""),r.style.width=`${o.width}px`,e.ghost=r,t.dom.append(r),t.dom.classList.add("is-dragging"),this.line=t.dom.ownerDocument.createElement(e.kind==="card"?"li":"div"),this.line.className=e.kind==="card"?"page-board-drop":"page-board-drop is-column",this.line.setAttribute("aria-hidden","true"),t.dom.setPointerCapture?.(e.pointer),t.dom.addEventListener("lostpointercapture",this.onCancel),window.addEventListener("keydown",this.onKey,!0),a.classList.add("is-drag-source"),this.loop()}track(e=!1){let t=this.state;if(!t?.active)return;if(t.ghost.style.transform=`translate(${t.x-t.dx}px, ${t.y-t.dy}px)`,!this.exists())return this.cancel();let a=this.inBounds()?t.kind==="card"?this.cardSlot():this.columnSlot():null;!e&&j(a,t.slot)||(t.slot=a,this.paint())}inBounds(){let e=this.state,t=this.host.scroll.getBoundingClientRect();return e.x>=t.left-m&&e.x<=t.right+m&&e.y>=t.top-m&&e.y<=t.bottom+m}cardSlot(){let e=this.state,t=null,a=1/0;for(let n of this.host.lanes.querySelectorAll(".page-board-lane[data-col]")){let d=n.getBoundingClientRect(),l=e.x<d.left?d.left-e.x:e.x>d.right?e.x-d.right:0;l<a&&(a=l,t=n)}if(!t)return null;let o=[...t.querySelectorAll(".page-board-card[data-card]")].filter(n=>n.dataset.card!==e.id),r=o.filter(n=>C(n,"y")<e.y).length;return{col:t.dataset.col,afterId:r?o[r-1].dataset.card:null}}columnSlot(){let e=this.state,t=getComputedStyle(this.host.lanes).direction==="rtl",a=[...this.host.lanes.querySelectorAll(".page-board-lane[data-col]")].filter(r=>r.dataset.col!==e.id),o=a.filter(r=>t?C(r,"x")>e.x:C(r,"x")<e.x).length;return{col:null,afterId:o?a[o-1].dataset.col:null}}paint(){let e=this.state,t=this.line;if(t.remove(),!e.slot)return;let a=this.host.lanes;if(e.kind==="card"){let o=[...a.querySelectorAll(".page-board-lane[data-col]")].find(n=>n.dataset.col===e.slot.col)?.querySelector(".page-board-cards"),r=e.slot.afterId&&[...o?.querySelectorAll(".page-board-card[data-card]")??[]].find(n=>n.dataset.card===e.slot.afterId)?.closest("li");o?.insertBefore(t,r?r.nextSibling:o.firstChild)}else{let o=e.slot.afterId&&[...a.querySelectorAll(".page-board-lane[data-col]")].find(r=>r.dataset.col===e.slot.afterId);a.insertBefore(t,o?o.nextSibling:a.firstChild)}}repaint(){this.state?.active&&(this.source()?.classList.add("is-drag-source"),this.track(!0))}loop(){let e=()=>{let t=this.state;if(!t?.active)return;let a=this.host.scroll.getBoundingClientRect(),o=K(this.host.dom),r=o===o.ownerDocument.scrollingElement?{top:0,bottom:window.innerHeight}:o.getBoundingClientRect(),n=q(t.x,a.left,a.right),d=q(t.y,r.top,r.bottom);n&&(this.host.scroll.scrollLeft+=n),d&&(o.scrollTop+=d),(n||d)&&this.track(),this.state===t&&(t.raf=requestAnimationFrame(e))};this.state.raf=requestAnimationFrame(e)}end(e){let t=this.state;if(!t||e.pointerId!==t.pointer)return;if(!t.active)return this.stop();e.preventDefault(),this.suppress=!0,setTimeout(()=>{this.suppress=!1},0);let{kind:a,id:o,slot:r}=t;this.stop();let n=this.host;if(!r)return g(n.view,"Move cancelled");(a==="card"?n.run("moveCard",o,{columnId:r.col,afterId:r.afterId}):n.run("moveColumn",o,{afterId:r.afterId})).status==="moved"&&(a==="card"?(g(n.view,`Moved card to ${n.board.columns[r.col]?.name||"Untitled"}`),n.focusKey(`card:${o}`)):g(n.view,"Moved column"))}cancel(){this.stop(),g(this.host.view,"Move cancelled")}stop(){let e=this.state,t=this.host;if(!e)return;this.state=null,cancelAnimationFrame(e.raf);let a=t.dom.ownerDocument;a.removeEventListener("pointermove",this.onMove),a.removeEventListener("pointerup",this.onUp),a.removeEventListener("pointercancel",this.onCancel),t.dom.removeEventListener("lostpointercapture",this.onCancel),window.removeEventListener("keydown",this.onKey,!0),t.dom.hasPointerCapture?.(e.pointer)&&t.dom.releasePointerCapture(e.pointer),e.ghost?.remove(),this.line?.remove(),this.line=null,t.dom.classList.remove("is-dragging");for(let o of t.dom.querySelectorAll(".is-drag-source"))o.classList.remove("is-drag-source")}};var H=w.nodes,$=new WeakMap,P=/^\d{4}-\d{2}-\d{2}$/,X=0,u=(s,e=!1)=>`<svg class="i" viewBox="0 0 16 16" width="16" height="16" fill="${e?"currentColor":"none"}" stroke="${e?"none":"currentColor"}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${s}</svg>`,x={plus:u('<path d="M8 3.25v9.5M3.25 8h9.5"/>'),more:u('<circle cx="3.5" cy="8" r="1.15"/><circle cx="8" cy="8" r="1.15"/><circle cx="12.5" cy="8" r="1.15"/>',!0),chevron:u('<path d="M4.75 6.5 8 9.75l3.25-3.25"/>'),close:u('<path d="M4.5 4.5l7 7M11.5 4.5l-7 7"/>'),up:u('<path d="M8 12.75v-9.5M4.25 7 8 3.25 11.75 7"/>'),down:u('<path d="M8 3.25v9.5M4.25 9 8 12.75 11.75 9"/>'),left:u('<path d="M12.75 8h-9.5M7 4.25 3.25 8 7 11.75"/>'),right:u('<path d="M3.25 8h9.5M9 4.25 12.75 8 9 11.75"/>'),trash:u('<path d="M2.75 4.5h10.5M6.25 4.5V2.75h3.5V4.5M4.25 4.5l.6 8.75h6.3l.6-8.75"/>'),calendar:u('<rect x="2.75" y="3.5" width="10.5" height="9.75" rx="1.75"/><path d="M2.75 6.75h10.5M5.5 2v2.5M10.5 2v2.5"/>'),pencil:u('<path d="M10.25 3.25l2.5 2.5-7 7H3.25v-2.5z"/>'),restore:u('<path d="M3.5 8a4.5 4.5 0 1 0 1.32-3.18M3.5 2.75v2.5H6"/>')};function h(s,e,t,a,o={}){let r=i(s,"button",e,{type:"button",...o});return r.innerHTML=x[t],a&&r.append(a),r}function f(s){let e=s.attrs.columns??{},t=s.attrs.cards??{},a=D(e),o=new Map(a.map(n=>[n,[]])),r=new Map;for(let n of D(t)){let d=String(t[n].col??"");o.has(d)?o.get(d).push(n):r.set(d,[...r.get(d)??[],n])}return{columns:e,cards:t,columnIds:a,lanes:o,missing:new Map([...r].sort(([n],[d])=>n<d?-1:n>d?1:0))}}var R=s=>String(s).padStart(2,"0"),v=(s=new Date)=>`${s.getFullYear()}-${R(s.getMonth()+1)}-${R(s.getDate())}`,M=(s,e=v())=>P.test(s)?s<e?"overdue":s===e?"today":"later":"later";function A(s,e=v(),t=!1){if(!P.test(s))return s;if(!t&&s===e)return"Today";let a=s.slice(0,4)===e.slice(0,4);return new Date(`${s}T00:00:00Z`).toLocaleDateString("en-US",{...t?{weekday:"short"}:{},month:"short",day:"numeric",...a?{}:{year:"numeric"},timeZone:"UTC"})}var L=(s,e)=>e>=2?s[e-2]:null,S=(s,e)=>i(s,"span","page-board-count",{"aria-label":`${e} ${e===1?"card":"cards"}`},String(e)),V=s=>/^(INPUT|TEXTAREA|SELECT)$/.test(s?.tagName??"");function Y(s,e){let t=v(),a=M(e,t),o=i(s,"span","page-board-due",{"data-due":a});return o.append(i(s,"span","page-board-sr",{},"Due "),s.createTextNode(A(e,t))),a==="overdue"&&o.append(i(s,"span","page-board-sr",{},", overdue")),o}var E=class{constructor(e,t,a,{commands:o=null,undo:r=null,redo:n=null,panel:d=null}={}){this.node=e,this.view=t,this.getPos=a,this.commands=o,this.undo=r,this.redo=n,this.panel=d,this.uid=`page-board-${++X}`,this.menu=null;let l=$.get(t)??new Map;$.set(t,l),l.set(e.attrs.id,this),this.editing=null,this.rendering=!1;let p=t.dom.ownerDocument;this.dom=i(p,"div","page-board",{"data-type":"board","data-id":e.attrs.id??"",role:"group","aria-label":"Board"}),this.dom.contentEditable="false",this.trays=i(p,"div","page-board-trays"),this.scroll=i(p,"div","page-board-scroll"),this.lanes=i(p,"div","page-board-lanes"),this.scroll.append(this.lanes),this.dom.append(this.trays,this.scroll),this.dom.addEventListener("click",c=>this.click(c)),this.dom.addEventListener("change",c=>this.change(c)),this.dom.addEventListener("keydown",c=>this.keydown(c)),this.dom.addEventListener("focusout",c=>this.focusout(c)),this.dom.addEventListener("mousedown",c=>{c.target.closest?.("button")&&c.preventDefault()}),this.dragger=new I(this),this.render()}get blockId(){return this.node.attrs.id}run(e,...t){if(!this.commands||!this.view.editable)return{status:"refused",code:"read-only"};let a=this.commands[e](this.blockId,...t);return a?.status==="refused"&&this.render(),a}focusKey(e){let t=e?[...this.dom.querySelectorAll("[data-focus]")].find(a=>a.dataset.focus===e&&!a.disabled):null;return t?(t.focus(),t.ownerDocument.activeElement===t):!1}render(){let e=this.dom.ownerDocument,t=e.activeElement,a=t&&this.dom.contains(t)?t.dataset?.focus??null:null,o=a&&typeof t.selectionStart=="number"?[t.selectionStart,t.selectionEnd]:null;this.rendering=!0;try{this.board=f(this.node),this.dom.dataset.id=this.blockId??"";let r=this.commands?.removed?.(this.blockId)??{columns:{},cards:{}},n=r.columns??{},d=Object.keys(r.cards??{}).filter(p=>!Object.hasOwn(this.board.cards,p));this.trays.replaceChildren(...[...this.board.missing].map(([p,c],b)=>this.tray(p,c,b,n[p]))),d.length?this.trays.append(this.deletedTray(d,r.cards)):this.showDeleted=!1;let l=this.board.columnIds.map((p,c)=>this.lane(p,c));this.editing?.kind==="column"?l.push(this.newLane()):l.push(h(e,"page-board-addcol","plus",null,{"aria-label":"Add column",title:"Add column","data-action":"add-column","data-focus":"add-column"})),this.lanes.replaceChildren(...l),a&&this.focusKey(a)&&o&&e.activeElement.setSelectionRange?.(...o),this.dragger?.repaint()}finally{this.rendering=!1}}lane(e,t){let a=this.dom.ownerDocument,o=this.board.lanes.get(e),r=this.board.columns[e].name||"Untitled",n=`${this.uid}-col-${t}`,d=i(a,"div","page-board-lane",{role:"group","aria-labelledby":n,"data-col":e}),l=i(a,"div","page-board-head",{"data-col":e});this.editing?.kind==="rename"&&this.editing.id===e?l.append(this.editing.input,i(a,"span","page-board-name page-board-sr",{id:n},r),S(a,o.length)):(l.append(i(a,"h4","page-board-name",{id:n},r),S(a,o.length)),l.append(h(a,"page-board-icon page-board-colmenu","more",null,{"aria-haspopup":"menu","aria-expanded":String(this.menu===e),"aria-label":`${r} column options`,"data-action":"colmenu","data-col":e,"data-focus":`colmenu:${e}`})),this.menu===e&&l.append(this.columnMenu(e,t,r)));let c=i(a,"ol","page-board-cards");for(let b of o){let T=i(a,"li");T.append(this.card(b)),c.append(T)}return d.append(l,c),this.editing?.kind==="card"&&this.editing.id===e?d.append(this.editing.input):d.append(h(a,"page-board-add","plus","Add card",{"data-action":"add-card","data-col":e,"data-focus":`add:${e}`})),d}newLane(){let e=this.dom.ownerDocument,t=i(e,"div","page-board-lane",{role:"group","aria-label":"New column"}),a=i(e,"div","page-board-head");return a.append(this.editing.input),t.append(a),t}card(e){let t=this.dom.ownerDocument,a=this.board.cards[e],o=i(t,"button","page-board-card",{type:"button","aria-haspopup":"dialog","aria-expanded":String(this.isOpen(e)),"data-action":"card","data-card":e,"data-focus":`card:${e}`});if(o.append(i(t,"span","page-board-title",{},a.title||"Untitled")),a.owner||a.due){let r=i(t,"span","page-board-meta");if(a.owner){let n=i(t,"span","page-board-owner");n.append(y(t,a.owner),i(t,"span","page-board-owner-name",{},a.owner)),r.append(n)}a.due&&r.append(Y(t,a.due)),o.append(r)}return o}tray(e,t,a,o){let r=this.dom.ownerDocument,n=`${this.uid}-missing-${a}`,d=i(r,"div","page-board-tray",{role:"group","aria-labelledby":n,"data-col":e}),l=i(r,"div","page-board-tray-head");l.append(i(r,"h4","page-board-name",{id:n},o?`Cards from deleted column \u201C${o.name||"Untitled"}\u201D`:"Cards from a deleted column"),S(r,t.length)),o&&l.append(h(r,"page-board-btn page-board-restore","restore","Restore column",{"data-action":"restore-column","data-col":e,"data-focus":`restore:${e}`}));let p=i(r,"ol","page-board-cards");for(let c of t){let b=i(r,"li");b.append(this.card(c),this.moveSelect(c)),p.append(b)}return d.append(l,p),d}deletedTray(e,t){let a=this.dom.ownerDocument,o=i(a,"div","page-board-tray page-board-deleted",{role:"group","aria-label":"Deleted cards"}),r=i(a,"div","page-board-tray-head");if(r.append(h(a,"page-board-btn page-board-deleted-toggle","chevron",`Deleted cards (${e.length})`,{"aria-expanded":String(!!this.showDeleted),"data-action":"toggle-deleted","data-focus":"toggle-deleted"})),o.append(r),!this.showDeleted)return o;let n=i(a,"ol","page-board-deleted-list");for(let d of e.sort((l,p)=>(t[l].pos??"")<(t[p].pos??"")?-1:1)){let l=t[d].title||"Untitled",p=i(a,"li","page-board-deleted-item");p.append(i(a,"span","page-board-title",{},l),h(a,"page-board-btn page-board-restore","restore","Restore",{"aria-label":`Restore ${l}`,"data-action":"restore-card","data-card":d,"data-focus":`restore-card:${d}`})),n.append(p)}return o.append(n),o}moveSelect(e){let t=this.dom.ownerDocument,a=i(t,"span","page-board-select page-board-move"),o=i(t,"select",null,{"aria-label":`Move ${this.board.cards[e].title||"Untitled"} to column`,"data-action":"orphan-move","data-card":e,"data-focus":`move:${e}`,disabled:!this.board.columnIds.length});o.append(i(t,"option",null,{value:"",selected:!0,disabled:!0,hidden:!0},"Move to column"));for(let r of this.board.columnIds)o.append(i(t,"option",null,{value:r},this.board.columns[r].name||"Untitled"));return a.append(o),a.insertAdjacentHTML("beforeend",x.chevron),a}columnMenu(e,t,a){let o=this.dom.ownerDocument,r=this.board.columnIds.length-1,n=i(o,"div","page-board-pop page-board-menu",{role:"menu","aria-label":`${a} column`}),d=(l,p,c,b=!1)=>h(o,`page-board-option${l==="delete-column"?" is-danger":""}`,c,p,{role:"menuitem","data-action":l,"data-col":e,"data-focus":`${l}:${e}`,disabled:b});return n.append(d("rename","Rename","pencil"),d("left","Move left","left",t===0),d("right","Move right","right",t===r),i(o,"div","page-board-sep",{role:"separator"}),d("delete-column","Delete column","trash")),n}isOpen(e){return this.panel?.isOpen(this.blockId,e)??!1}openMenu(e){this.menu=e,this.render(),this.dom.querySelector(".page-board-menu .page-board-option:not(:disabled)")?.focus()}closeMenu(e){let t=this.menu;this.menu=null,this.dom.querySelector(".page-board-menu")?.remove();for(let a of this.dom.querySelectorAll(".page-board-colmenu"))a.setAttribute("aria-expanded","false");e&&this.focusKey(`colmenu:${t}`)}inlineInput(e,t,a,o=""){let r=i(this.dom.ownerDocument,"input",e,{type:"text","aria-label":t,"data-focus":a,placeholder:e==="page-board-new"?"Card title":"Column name"});return r.value=o,r.addEventListener("keydown",n=>{n.isComposing||n.keyCode===229||(n.key==="Enter"?(n.preventDefault(),this.finishEdit(!0,!0)):n.key==="Escape"&&(n.preventDefault(),this.finishEdit(!1,!0)))}),r.addEventListener("blur",()=>{this.rendering||setTimeout(()=>{this.editing?.input===r&&r.ownerDocument.activeElement!==r&&this.finishEdit(!0,!1)},0)}),r}startEdit(e,t){this.editing&&this.finishEdit(!0,!1),this.menu=null;let a=e==="rename"?this.board.columns[t]?.name??"":"",o=e==="card"?`new:${t}`:e==="column"?"new-column":`name:${t}`,r=this.inlineInput(e==="card"?"page-board-new":"page-board-rename",e==="card"?"New card title":"Column name",o,a);this.editing={kind:e,id:t,input:r},this.render(),r.focus(),r.select()}finishEdit(e,t){let a=this.editing;if(!a)return;let o=a.input.value.trim();if(a.kind==="card"&&e&&o&&t){if(this.run("createCard",{columnId:a.id,title:o})?.status!=="refused")a.input.value="";else if(!this.board.columns[a.id]){this.editing=null,this.render(),this.focusKey("add-column");return}this.focusKey(`new:${a.id}`);return}this.editing=null;let r=a.kind==="column"?"add-column":a.kind==="card"?`add:${a.id}`:`colmenu:${a.id}`;if(e&&o)if(a.kind==="card")this.run("createCard",{columnId:a.id,title:o});else if(a.kind==="column"){let n=this.run("createColumn",{name:o});n.status==="created"&&(r=`add:${n.id}`)}else o!==this.board.columns[a.id]?.name&&this.run("renameColumn",a.id,o);this.render(),t&&this.focusKey(r)}shiftColumn(e,t){let a=this.board.columnIds,o=a.indexOf(e);this.menu=null,this.run("moveColumn",e,{afterId:t<0?L(a,o):a[o+1]}),this.render(),this.focusKey(`colmenu:${e}`)}deleteColumn(e){let t=this.board.columnIds,a=t[t.indexOf(e)+1]??t[t.indexOf(e)-1];this.menu=null;let o=this.run("removeColumn",e);this.render(),o.status==="removed"&&(g(this.view,o.cards?"Column deleted. Its cards are under Cards from a deleted column.":"Column deleted"),!this.focusKey(`restore:${e}`)&&!this.focusKey(`colmenu:${a}`)&&this.focusKey("add-column"))}restoreCard(e){this.run("restoreCard",e).status==="restored"&&(g(this.view,"Card restored"),this.focusKey(`card:${e}`)||this.focusKey("toggle-deleted"))}restoreColumn(e){this.run("restoreColumn",e).status==="restored"&&(g(this.view,"Column restored"),this.focusKey(`colmenu:${e}`))}openCard(e){this.menu=null,this.dom.querySelector(".page-board-menu")?.remove(),this.panel?.open(this.blockId,e,{commands:this.commands,undo:this.undo,redo:this.redo})}click(e){let t=e.target.closest?.("[data-action]");if(!t||!this.dom.contains(t)||t.disabled)return;let{action:a,col:o,card:r}=t.dataset;this.editing&&a!=="add-card"&&a!=="add-column"&&a!=="rename"&&this.finishEdit(!0,!1),a==="card"?this.openCard(r):a==="colmenu"?this.menu===o?this.closeMenu(!0):this.openMenu(o):a==="rename"?this.startEdit("rename",o):a==="left"||a==="right"?this.shiftColumn(o,a==="left"?-1:1):a==="delete-column"?this.deleteColumn(o):a==="add-card"?this.startEdit("card",o):a==="add-column"?this.startEdit("column",null):a==="restore-column"?this.restoreColumn(o):a==="restore-card"?this.restoreCard(r):a==="toggle-deleted"&&(this.showDeleted=!this.showDeleted,this.render(),this.focusKey("toggle-deleted"))}change(e){let t=e.target;if(t.dataset?.action!=="orphan-move"||!t.value)return;let a=t.dataset.card,o=t.value,r=this.board.lanes.get(o)??[];this.run("moveCard",a,{columnId:o,afterId:r[r.length-1]??null}).status==="moved"&&this.focusKey(`card:${a}`)}keydown(e){let t=e.key.toLowerCase();if((e.metaKey||e.ctrlKey)&&(t==="z"||t==="y")&&!V(e.target)){e.preventDefault(),t==="y"||e.shiftKey?this.redo?.():this.undo?.();return}let a=e.target.closest?.(".page-board-menu");if(a){if(e.key==="Escape"||e.key==="Tab")e.preventDefault(),this.closeMenu(!0);else if(e.key==="ArrowDown"||e.key==="ArrowUp"){e.preventDefault();let o=[...a.querySelectorAll(".page-board-option:not(:disabled)")],r=o.indexOf(e.target);o[(r+(e.key==="ArrowDown"?1:-1)+o.length)%o.length]?.focus()}}}focusout(e){if(this.rendering||this.menu===null)return;let t=this.dom.querySelector(".page-board-menu");t?.contains(e.target)&&!t.contains(e.relatedTarget)&&this.closeMenu(!1)}update(e){if(e.type!==H.board||e.attrs.id!==this.node.attrs.id)return!1;let t=!e.sameMarkup(this.node);return this.node=e,t&&this.render(),!0}stopEvent(){return!0}ignoreMutation(){return!0}destroy(){let e=$.get(this.view),t=e?.get(this.blockId);this.editing&&t&&t!==this&&(t.editing=this.editing,t.render()),t===this&&e.delete(this.blockId),this.dragger.stop()}};var _="(max-width: 1039.98px)",W=s=>/^(INPUT|TEXTAREA|SELECT)$/.test(s?.tagName??""),Z=0;function N(s){return k.has(s)||k.set(s,new B(s)),k.get(s)}var B=class{constructor(e){this.view=e,this.blockId=null,this.cardId=null,this.host=null,this.node=null,this.people=[],this.dueInput=null,this.rendering=!1,this.titleBase="",this.ownerBase="";let t=e.dom.ownerDocument,a=`page-board-panel-${++Z}`;this.scrim=i(t,"div","page-board-scrim",{"aria-hidden":"true"}),this.dom=i(t,"aside","page-board-panel",{role:"dialog","aria-modal":"false","aria-labelledby":`${a}-title`});let o=i(t,"div","page-board-panel-top");this.title=i(t,"textarea","page-board-panel-title",{id:`${a}-title`,rows:2,"aria-label":"Card title",spellcheck:"false","data-focus":"title"}),o.append(this.title,h(t,"page-board-icon page-board-close","close",null,{"aria-label":"Close","aria-keyshortcuts":"Escape","data-action":"close","data-focus":"close"})),this.ownerInput=i(t,"input","page-board-owner-input",{type:"text","aria-label":"Owner name",placeholder:"Or type a name\u2026","data-focus":"owner-name"}),this.fields=i(t,"div","page-board-fields"),this.actions=i(t,"div","page-board-actions"),this.dom.append(o,this.fields,this.actions),this.labels={column:`${a}-column`,owner:`${a}-owner`,due:`${a}-due`},this.textField(this.title,()=>this.commitTitle()),this.textField(this.ownerInput,()=>this.commitOwner()),this.dom.addEventListener("click",r=>this.click(r)),this.dom.addEventListener("mousedown",r=>{r.target.closest?.("button")&&r.preventDefault()}),this.dom.addEventListener("change",r=>{r.target.dataset.focus==="column"&&this.moveTo(r.target.value)}),this.dom.addEventListener("keydown",r=>this.keydown(r)),this.scrim.addEventListener("click",()=>this.hide(!0))}textField(e,t){e.addEventListener("keydown",a=>{a.isComposing||a.keyCode===229||(a.key==="Enter"&&!a.shiftKey?(a.preventDefault(),t()):a.key==="Escape"&&(a.preventDefault(),this.hide(!0)))}),e.addEventListener("blur",()=>{this.rendering||setTimeout(()=>{this.blockId!==null&&e.ownerDocument.activeElement!==e&&t()},0)})}get shell(){return this.view.dom.parentElement}isOpen(e,t){return this.blockId===e&&this.cardId===t}boardNode(){let e=null;return this.view.state.doc.forEach(t=>{!e&&t.type===w.nodes.board&&t.attrs.id===this.blockId&&(e=t)}),e}card(){return this.boardNode()?.attrs.cards?.[this.cardId]??null}boardButton(e,t){let a=[...this.view.dom.querySelectorAll(".page-board")].find(o=>o.dataset.id===e);return a?[...a.querySelectorAll("[data-focus]")].find(o=>o.dataset.focus===t&&!o.disabled)??null:null}setExpanded(e){this.boardButton(this.blockId,`card:${this.cardId}`)?.setAttribute("aria-expanded",String(e))}open(e,t,a){this.blockId!==null&&(this.commit(),this.setExpanded(!1)),this.blockId=e,this.cardId=t,this.host=a,this.dueInput=null,this.dom.isConnected||this.shell.append(this.scrim,this.dom),this.shell.classList.add("has-board-panel");let o=!!this.view.dom.ownerDocument.defaultView.matchMedia?.(_).matches;this.dom.setAttribute("aria-modal",String(o)),this.render(!0),this.setExpanded(!0),o?this.focusKey("close"):this.title.focus(),this.loadPeople()}hide(e=!1,t=!0){if(this.blockId===null)return;t&&this.commit();let{blockId:a,cardId:o}=this;this.setExpanded(!1),this.blockId=this.cardId=this.node=null,this.dueInput=null,this.scrim.remove(),this.dom.remove(),this.shell?.classList.remove("has-board-panel"),e&&this.boardButton(a,`card:${o}`)?.focus()}loadPeople(){let e=globalThis.clay?.people?.available;e&&Promise.resolve().then(()=>e()).then(t=>{this.people=(Array.isArray(t)?t:[]).filter(a=>typeof a?.name=="string"&&a.name),this.blockId!==null&&this.render(!1)}).catch(()=>{})}run(e,...t){if(!this.host?.commands||!this.view.editable)return{status:"refused",code:"read-only"};let a=this.host.commands[e](this.blockId,this.cardId,...t);return a?.status==="refused"&&this.sync(!0),a}commit(){this.commitTitle(),this.commitOwner(),this.dueInput&&this.commitDue()}commitTitle(){let e=this.card(),t=this.title.value.replace(/\s*\n\s*/g," ");this.title.value=t,e&&t!==e.title&&this.run("editCard",{title:t})}commitOwner(){let e=this.card(),t=this.ownerInput.value.trim();this.ownerInput.value=t;let a=t||null;e&&a!==(e.owner??null)&&this.run("editCard",{owner:a})}commitDue(){let e=this.card(),t=this.dueInput?.value||null;this.dueInput=null,e&&t!==(e.due??null)?this.run("editCard",{due:t}):this.blockId!==null&&this.render(!1)}openDue(){let e=this.view.dom.ownerDocument,t=i(e,"input","page-board-control page-board-date",{type:"date","aria-labelledby":this.labels.due,"data-focus":"due-input"});t.value=this.card()?.due??"",t.addEventListener("keydown",a=>{a.key==="Enter"?(a.preventDefault(),this.commitDue(),this.focusKey("due")):a.key==="Escape"&&(a.preventDefault(),a.stopPropagation(),this.dueInput=null,this.render(!1),this.focusKey("due"))}),t.addEventListener("blur",()=>{this.rendering||setTimeout(()=>{this.dueInput===t&&e.activeElement!==t&&this.commitDue()},0)}),this.dueInput=t,this.render(!1),t.focus();try{t.showPicker?.()}catch{}}sync(e=!1){if(this.blockId===null)return;let t=this.boardNode();if(!e&&t===this.node)return;let a=this.node?.attrs.cards?.[this.cardId]?.col;if(!t?.attrs.cards?.[this.cardId]){let o=this.dom.contains(this.view.dom.ownerDocument.activeElement),r=this.blockId;this.hide(!1,!1),o&&(this.boardButton(r,`add:${a}`)??this.boardButton(r,"add-column"))?.focus();return}this.render(!1)}focusKey(e){let t=[...this.dom.querySelectorAll("[data-focus]")].find(a=>a.dataset.focus===e&&!a.disabled);return t?.focus(),!!t}render(e){let t=this.view.dom.ownerDocument;this.node=this.boardNode();let a=f(this.node),o=a.cards[this.cardId];if(!o)return this.hide(!1,!1);let r=t.activeElement,n=this.dom.contains(r)?r.dataset.focus:null,d=n&&typeof r.selectionStart=="number"?[r.selectionStart,r.selectionEnd]:null;this.rendering=!0;try{let l=!e&&this.title.value!==this.titleBase;this.titleBase=o.title??"",l||(this.title.value=this.titleBase);let p=!e&&this.ownerInput.value!==this.ownerBase;this.ownerBase=o.owner??"",p||(this.ownerInput.value=this.ownerBase),this.fields.replaceChildren(this.columnField(a,o),this.ownerField(o),this.dueField(o)),this.actions.replaceChildren(...this.actionButtons(a,o)),n&&n!=="title"&&this.focusKey(n)?d&&t.activeElement.setSelectionRange?.(...d):(n==="up"||n==="down")&&this.focusKey(n==="up"?"down":"up")}finally{this.rendering=!1}}field(e,t,a,o=!1){let r=this.view.dom.ownerDocument,n=i(r,"div",`page-board-field${o?" is-owner":""}`);return n.append(i(r,"span","page-board-label",{id:this.labels[e]},t),a),n}columnField(e,t){let a=this.view.dom.ownerDocument,o=i(a,"span","page-board-select"),r=i(a,"select","page-board-control",{"aria-labelledby":this.labels.column,"data-focus":"column",disabled:!e.columnIds.length});e.lanes.has(t.col)||r.append(i(a,"option",null,{value:"",selected:!0,disabled:!0},"Deleted column"));for(let n of e.columnIds)r.append(i(a,"option",null,{value:n,selected:n===t.col},e.columns[n].name||"Untitled"));return o.append(r),o.insertAdjacentHTML("beforeend",x.chevron),this.field("column","Column",o)}ownerField(e){let t=this.view.dom.ownerDocument,a=i(t,"div","page-board-owners"),o=i(t,"div","page-board-people",{role:"group","aria-labelledby":this.labels.owner});for(let r of this.people){let n=i(t,"button","page-board-person",{type:"button","aria-pressed":String(r.name===e.owner),"data-action":"owner","data-owner":r.name,"data-focus":`owner:${r.id??r.name}`});n.append(y(t,r.name),i(t,"span",null,{},r.name)),o.append(n)}return o.append(i(t,"button","page-board-person is-none",{type:"button","aria-pressed":String(!e.owner),"data-action":"owner-none","data-focus":"owner-none"},"No owner")),a.append(o,this.ownerInput),this.field("owner","Owner",a,!0)}dueField(e){let t=this.view.dom.ownerDocument;if(this.dueInput)return this.field("due","Due",this.dueInput);let a=v(),o=e.due?M(e.due,a):null,r=e.due?A(e.due,a,!0):null,n=i(t,"button","page-board-control",{type:"button","aria-label":e.due?`Due ${r}${o==="overdue"?", overdue":""}`:"Set due date","data-action":"due","data-focus":"due"});return e.due?(n.append(i(t,"span","page-board-due",{"data-due":o},r)),o==="overdue"&&n.append(i(t,"span","page-board-due-note",{},"Overdue"))):n.append(i(t,"span","page-board-control-text page-board-none",{},"No date")),n.insertAdjacentHTML("beforeend",x.calendar),this.field("due","Due",n)}actionButtons(e,t){let a=this.view.dom.ownerDocument,o=e.lanes.get(t.col),r=o?o.indexOf(this.cardId):-1;return[h(a,"page-board-btn","up","Move up",{"data-action":"up","data-focus":"up",disabled:r<=0}),h(a,"page-board-btn","down","Move down",{"data-action":"down","data-focus":"down",disabled:r<0||r>=o.length-1}),h(a,"page-board-btn page-board-delete","trash","Delete card",{"data-action":"delete","data-focus":"delete"})]}step(e){let t=this.card(),a=t?f(this.node).lanes.get(t.col):null;if(!a)return;let o=a.indexOf(this.cardId);this.run("moveCard",{columnId:t.col,afterId:e<0?L(a,o):a[o+1]})}moveTo(e){let t=f(this.node).lanes.get(e)?.filter(a=>a!==this.cardId);t&&this.run("moveCard",{columnId:e,afterId:t[t.length-1]??null})}remove(){let e=this.card();if(!e)return;let t=f(this.node),a=t.lanes.get(e.col)??t.missing.get(e.col)??[],o=a.indexOf(this.cardId),r=a[o+1]??a[o-1],{blockId:n,cardId:d,host:l}=this;if(this.hide(!1,!1),!l?.commands||!this.view.editable||l.commands.removeCard(n,d).status!=="removed")return;g(this.view,"Card deleted"),(r&&this.boardButton(n,`card:${r}`)||this.boardButton(n,`add:${e.col}`)||this.boardButton(n,"add-column"))?.focus()}click(e){let t=e.target.closest?.("[data-action]");if(!t||t.disabled)return;let a=t.dataset.action;a!=="close"&&this.commitTitle(),a==="close"?this.hide(!0):a==="owner"?(this.ownerInput.value=this.ownerBase,this.run("editCard",{owner:t.dataset.owner})):a==="owner-none"?(this.ownerInput.value=this.ownerBase,this.run("editCard",{owner:null})):a==="due"?this.openDue():a==="up"||a==="down"?this.step(a==="up"?-1:1):a==="delete"&&this.remove()}keydown(e){let t=e.key.toLowerCase();if(!e.defaultPrevented){if(e.key==="Escape")e.preventDefault(),this.hide(!0);else if((e.metaKey||e.ctrlKey)&&(t==="z"||t==="y")&&!W(e.target))e.preventDefault(),t==="y"||e.shiftKey?this.host?.redo?.():this.host?.undo?.();else if(e.key==="Tab"&&this.dom.getAttribute("aria-modal")==="true"){let a=[...this.dom.querySelectorAll("button, input, select, textarea")].filter(o=>!o.disabled);if(e.target!==a[e.shiftKey?0:a.length-1])return;e.preventDefault(),a[e.shiftKey?a.length-1:0].focus()}}}};function be({board:s=null,undo:e=null,redo:t=null}={}){return{id:"board",nodeViews:s?{board:(a,o,r)=>new E(a,o,r,{commands:s,undo:e,redo:t,panel:N(o)})}:null,css:s?O:null,dispose(){}}}export{be as createFeature};
@@ -1,7 +0,0 @@
1
- import{d as Ae,h as We,i as Ve}from"./c-TRS6TM6O.js";import{e as ke,f as He,g as U,h as Ke,l as re,m as $e,n as p}from"./c-OIBUTDXI.js";import"./c-4JZDZFF6.js";import{b as K,c as Z,e as l,f as Ye}from"./c-VAK7SG37.js";import{c as Ne,d as Pe}from"./c-4FFHZM32.js";import{a as _e,b as Ie}from"./c-PZ4XEPUP.js";import{b as $,c as Fe}from"./c-NUHP2XDB.js";import{a as Ue,q as W}from"./c-CJZSLMVQ.js";import"./c-GQ6F6IDK.js";import"./c-2SPVQSHC.js";import"./c-5VYOWDTI.js";import{f as Te}from"./c-7VGZ7RU5.js";import"./c-4YSCRICO.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import"./c-HT33EQRN.js";import"./c-B2ZXPOS3.js";import"./c-TQEMVJCS.js";import"./c-3IQRECYS.js";import"./c-AYVOREBE.js";import"./c-IJUK2GPW.js";import{i as Oe}from"./c-7O6AFR65.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-35NBGMZB.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-GHBCCVG4.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var E="light-dark(#D08A1E, #E3A33F)",at=5e3,lt=4e3,st=500,dt={"another-tab":"in another tab","another-person":"by someone else","an-agent":"by an agent"},ct='<svg viewBox="0 0 12 12" width="12" height="12" aria-hidden="true"><path d="M2.5 9.5h7" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="square"/></svg>',F=(e,t)=>`${e} ${t}${e===1?"":"s"}`,pt="This spot changed again. Review the latest edit or download your copy.",ut="A data value can't be put back from here. Download your copy to keep yours.",m="hidden",P=!1,S=[],J=new Set,M=new Set,h=null,Ee=0,_=null,v=null,le=null,u=null,R=!1,Y=!1,ve=!1,q=new Map,se=0,ae=!1,te=!1,b=null,G=null,L=null,Se=0,D=!1,de=0,ce=null,ne=null,k=[],x=[],oe=!1,pe=null,ue=null,s=null,B=null,V=new Map,z=()=>window.clay?.conflicts||null,je=()=>k.reduce((e,t)=>e+t.conflicts.length,0)+x.length,Le=()=>{let e=window.clay?.undo;return e&&typeof e.kept=="function"?e:null},fe=()=>z()?.list().filter(e=>!e.claimedBy&&e.kind!=="apply-incomplete")??[],De=()=>z()?.list().filter(e=>!e.claimedBy&&e.kind==="apply-incomplete")??[];function ze(){return _?"upgraded":h?"refused":fe().length?"replaced":De().length?"failed":k.length||x.length?"recovered":null}function f(e,t,n){let o=Fe(e,t,n);return t[0]==="all:initial"&&$(o,"color-scheme","inherit"),o.setAttribute("clay",ke),o}function O(e,t){return V.set(t,e),e}function ft(){let e=getComputedStyle(document.documentElement).colorScheme;return e==="light"||e==="dark"?e:"light dark"}function ie(){if(!s)return;let e=window.visualViewport,t=e?Math.max(0,window.innerHeight-e.height-e.offsetTop):0;$(s,"bottom",`calc(${16+t}px + env(safe-area-inset-bottom,0px))`),ne&&$(ne,"max-height",`${Math.max(160,(e?.height||window.innerHeight)-32)}px`)}function ht(){s=f("div",["all:initial","position:fixed","left:50%","transform:translateX(-50%)","z-index:2147483001","display:none","flex-direction:column","align-items:center","max-width:calc(100vw - 24px)",`font:14px/1.5 ${K}`,`color:${l.ink}`,"text-align:left"]),s.setAttribute("data-clay-conflict",""),document.body.appendChild(s),window.visualViewport?.addEventListener("resize",ie),window.visualViewport?.addEventListener("scroll",ie)}function d(){if(ae)return;ae=!0;let e=()=>{ae=!1,w()};typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,16)}function w(){te&&(te=!1,h&&!W()&&(h=null));let e=ze();if(e?m==="hidden"&&(m="bar"):(m="hidden",P=!1,J.clear(),M.clear(),S=[],y(),ce=null,D=!1),!s){if(m==="hidden"&&!b||!document.body)return;ht()}!s.isConnected&&document.body&&document.body.appendChild(s);let t=document.activeElement,n=null;for(let[a,r]of V)r===t&&(n=a);let o=B?B.scrollTop:0;V=new Map,B=null,ne=null,s.replaceChildren(),$(s,"color-scheme",ft()),b?s.append(wt(b)):m==="bar"?s.append(yt(e)):m==="panel"&&s.append(xt(e)),$(s,"display",b||m!=="hidden"?"flex":"none"),B&&(B.scrollTop=o);let i=L||n;i&&V.has(i)&&V.get(i).focus({preventScroll:!0}),b||(L=null),ie()}function Qe(){return f("span",["all:initial","display:inline-block","flex:none","width:8px","height:8px","border-radius:50%",`background:${E}`])}function Xe(){return dt[h?.changedBy]||null}function gt(e,t){if(e==="upgraded")return _;if(e==="refused"){let n=Xe();return!n&&h.afterTimeout?"This page changed elsewhere, possibly by your own save that timed out. Your edits here are safe.":`This page changed ${n||"elsewhere"}. Your edits here are safe.`}return e==="failed"?"A sync update did not finish. Your edits here are safe.":e==="recovered"?`${F(t,"change")} replaced before this page loaded ${t===1?"is":"are"} still here.`:`Another edit replaced ${F(t,"change")}.`}function mt(e,t){return e==="upgraded"?_:e==="refused"?`This page changed ${Xe()||"elsewhere"}`:e==="failed"?"A sync update did not finish":e==="recovered"?`${F(t,"change")} kept from before this page loaded`:`Another edit replaced ${F(t,"change")}`}function wt(e){let t=re("div",["display:block",`border-left:3px solid ${l.teal}`,"padding:10px 14px","width:max-content","max-width:calc(100vw - 24px)"]);return t.setAttribute("role","status"),t.textContent=e,t}function yt(e){let t=e==="failed"?De().length:e==="recovered"?je():fe().length,n=re("div",["display:flex","flex-wrap:wrap","align-items:center","gap:10px 12px","padding:8px 8px 8px 14px","width:max-content","max-width:calc(100vw - 24px)"]),o=gt(e,t);return o!==ce&&(n.setAttribute("role",e==="refused"?"alert":"status"),ce=o),n.append(Qe(),p("span",[],o)),e==="upgraded"?(n.append(O(U("Reload",{variant:"primary",onClick:()=>window.location.reload()}),"reload")),n):(n.append(O(U("Review",{onClick:Dt}),"review")),n)}function T(e,t,{variant:n="default",onClick:o,push:i=!1}={}){let r=window.innerWidth<480?["flex:1 1 100%",...n==="primary"?["order:-1"]:[]]:i?["margin-left:auto"]:[];return O(U(e,{variant:n,onClick:o,extra:r}),t)}function A(e){return p("div",["display:block","padding:0 16px 12px",`color:${l["ink-2"]}`,"font-size:13.5px"],e)}function xt(e){let t=e==="replaced"?fe():e==="failed"?De():[],n=e==="refused"?fe():t,o=e==="recovered"?je():t.length;if(J.size)for(let c of t)J.has(c.id)||M.add(c.id);for(let c of[...M])t.some(N=>N.id===c)||M.delete(c);let i=mt(e,o),a=Math.max(160,(window.visualViewport?.height||window.innerHeight)-32),r=re("div",["display:flex","flex-direction:column","width:520px","max-width:calc(100vw - 24px)",`max-height:${a}px`]);ne=r,r.setAttribute("role","dialog"),r.setAttribute("aria-label",i);let g=f("div",["all:initial","display:flex","align-items:center","gap:8px","padding:12px 12px 8px 16px",`font:14px/1.5 ${K}`,`color:${l.ink}`]),H=O(p("b",["font-weight:600","font-size:14.5px","outline:none"],i),"title");H.setAttribute("tabindex","-1"),g.append(Qe(),H),e==="replaced"&&M.size&&g.append(p("span",[`font:600 10.5px/1 ${Z}`,"letter-spacing:.12em","text-transform:uppercase","padding:3px 6px",`color:color-mix(in srgb, ${l.brass} 80%, ${l.ink})`,`background:${l["brass-soft"]}`],`${M.size} new`));let X=f("span",["all:initial","display:inline-flex","margin-left:auto"]),Be=O(Ke(ct,{label:"Minimize",onClick:Ze}),"minimize");if(Be.title="Minimize to the bar. Nothing is accepted until you choose.",X.append(Be),g.append(X),r.append(g),e==="recovered")return Et(r),r;if(e==="refused"){if(r.append(A("Your edits here are safe and not saved yet; nothing will be overwritten until you choose. Their version is not on this page, so there is no list of edits to compare. Keep yours, which saves over theirs, or accept theirs, which reloads the page and drops your unsaved edits.")),n.length&&r.append(A(`${F(n.length,"earlier replaced edit")} ${n.length===1?"is":"are"} also held in this tab. Download my copy includes them.`)),R&&r.append(A("That did not save either. Your edits here are still here.")),D&&r.append(A("Something changed on the page after your first press, so nothing was dropped. Press Accept theirs again if you still want their version.")),v){let c=f("div",["all:initial","display:block","margin:0 16px 12px","padding:8px 10px",`border-left:3px solid ${E}`,`background:color-mix(in srgb, ${E} 14%, transparent)`,`color:${l.ink}`,`font:13px/1.5 ${K}`]);c.append(f("b",["all:initial","font:inherit","font-weight:700","color:inherit"],"This drops your unsaved edits."),document.createTextNode(" Download your copy first if you might want them. Press again to confirm.")),r.append(c)}}else e==="upgraded"?r.append(A("Its layout and code changed with it, so this page stops here. Reload to see the new version.")):e==="failed"?r.append(A("Part of an update from elsewhere could not be applied, so this page may be missing some of it. Your edits here are safe. Download a copy of the page as you had it, or accept to keep the page as it is.")):r.append(A("The page is showing the other edit. This stays until you choose. You can also save a copy of the page as you had it."));let I=f("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","padding:0 16px 14px"]);if(e==="upgraded")return I.append(T("Reload","reload",{variant:"primary",onClick:()=>window.location.reload(),push:!0})),r.append(I),S=[],r;let rt=T(ve?"Try again":Y?"Downloaded":"Download my copy","download",{onClick:Bt});if(I.append(rt),e==="refused"){let c=T(u==="overwrite"?"Saving\u2026":R?"Try again":"Keep mine","keep",{onClick:Pt});c.setDisabled(u==="overwrite"),I.append(c,T(v?"Yes, drop my edits":"Accept theirs","accept",{variant:"primary",onClick:Ft,push:!0}))}else{if(e==="replaced"){let c=z().hasPendingApply(),N=T(c?"Finishing the incoming edit\u2026":u==="revert"?"Putting back\u2026":"Revert to mine","revert",{onClick:Mt});N.setDisabled(c||u==="revert"),I.append(N)}I.append(T("Accept theirs","accept",{variant:"primary",onClick:zt,push:!0}))}if(r.append(I),e==="replaced")if(P)r.append(vt(t));else{let c=f("div",["all:initial","display:flex","align-items:center","gap:8px",`border-top:1px solid ${l.line}`,"padding:8px 10px 8px 16px",`color:${l.muted}`,`font:13px/1.5 ${K}`]),N=f("span",["all:initial","display:inline-flex","margin-left:auto"]);N.append(O(U("See the edits",{small:!0,onClick:Je}),"list")),c.append(f("span",["all:initial","font:inherit","color:inherit"],F(t.length,"edit")),N),r.append(c)}S=n.map(c=>c.id);for(let c of t)J.add(c.id);return r}function vt(e){let t=$e(["flex:1 1 auto","margin:0 16px 12px","min-height:0","overflow:auto",`background:${l.sunk}`,`border:1px solid ${l["line-2"]}`]),n=f("div",["all:initial","position:sticky","top:0","z-index:1","display:flex","align-items:center","gap:8px","padding:8px 12px",`background:${l.sunk}`,`border-bottom:1px solid ${l["line-2"]}`,`color:${l.muted}`,`font:600 10.5px/1 ${Z}`,"letter-spacing:.12em","text-transform:uppercase"]),o=f("span",["all:initial","display:inline-flex","margin-left:auto"]);return o.append(O(U("Hide",{small:!0,variant:"quiet",onClick:Je}),"list")),n.append(f("span",["all:initial","font:inherit","color:inherit","letter-spacing:inherit","text-transform:inherit"],"Replaced edits"),o),t.append(n),e.forEach((i,a)=>t.append(St(i,a))),B=t,t}function Me(e){let t=e.context?.label||e.name||(e.context?.kind==="entry"?"Entry":"Edit");return e.context?.field?`${t} \xB7 ${e.context.field}`:t}var bt={"content-changed":"the page changed there","structure-changed":"the structure changed there","target-detached":"that part of the page is gone","duplicate-id":"another part of the page now has the same id",protected:"that region keeps its own history",unsupported:"this kind of step cannot be put back"},kt=e=>bt[e]||"the page changed there";function $t(e,t){let n=Array.isArray(e)?e:[];for(let o of n){if(!o||o.kind!=="text"&&o.kind!=="value")continue;let i=t==="redo"?o.after:o.before;if(typeof i=="string"&&i)return{text:i,id:o.target?.id??null}}for(let o of n){if(!o||o.kind!=="add"&&o.kind!=="remove")continue;let i=Array.isArray(o.nodes)?o.nodes.find(a=>typeof a?.html=="string"&&a.html):null;if(i)return{text:_e(i.html).replace(/\s+/g," ").trim(),id:o.parent?.id??null}}for(let o of n){if(!o)continue;let i=t==="redo"?o.after:o.before;if(typeof i=="string"&&i)return{text:i,id:o.target?.id??null}}return{text:"",id:null}}function Tt(e){if(e==null||typeof document>"u")return"";let t=window.CSS?.escape?window.CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&"),n=null;try{n=document.querySelector(`[data-id="${t}"]`)}catch{return""}if(!n)return"";let o=n.matches?.("input, textarea, select")?n.value:null;return(typeof o=="string"?o:n.textContent??"").replace(/\s+/g," ").trim()}function At(e){let t=e?.payload&&typeof e.payload=="object"?e.payload:{},n=String(e?.key??""),o={id:e?.id,revision:e?.revision,record:e,kind:e?.kind??"conflict"};if(n.startsWith("app:"))return{...o,name:typeof t.label=="string"&&t.label?t.label:n.slice(4),sentence:"",yours:typeof t.text=="string"?t.text:"",now:""};let i=t.direction==="redo"?"redo":"undo",g=((Array.isArray(t.context)?t.context:[]).find(X=>typeof X?.label=="string"&&X.label)??null)?.label||typeof t.label=="string"&&t.label||"Edit",H=$t(t.steps,i);return{...o,name:g,sentence:`The ${i} of "${g}" was not applied because ${kt(t.code)}.`,yours:H.text,now:H.id==null?"":Tt(H.id)}}function Ct(e){let t=Le();if(!e.record||typeof t?.reviewActionsFor!="function")return[];try{return(t.reviewActionsFor(e.record)||[]).filter(n=>n&&typeof n.run=="function"&&n.label)}catch{return[]}}var qe=e=>({before:"",hit:e,after:"",cutBefore:!1,cutAfter:!1});function Ge(e){let t=p("div",["display:block","padding:8px 12px 10px"]),n=p("div",["display:flex","align-items:center","gap:8px","font-size:12.5px","font-weight:600",`color:${l["ink-2"]}`,"margin-bottom:4px"]);if(n.append(p("span",[],Me(e))),t.append(n),e.sentence&&t.append(p("div",["display:block","font-size:13px",`color:${l["ink-2"]}`],e.sentence)),e.yours){let i=p("div",["display:grid","grid-template-columns:44px 1fr","gap:3px 10px","align-items:start",`font:12.5px/1.5 ${Z}`,...e.sentence?["margin-top:4px"]:[]]);i.append(...he("Yours",qe(e.yours),{mine:!0})),e.now&&i.append(...he("Now",qe(e.now),{mine:!1})),t.append(i)}let o=f("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","margin-top:8px"]);return Ct(e).forEach((i,a)=>{let r=T(i.label,`run:${e.id}:${a}`,{onClick:()=>Nt(e,i,r)});o.append(r)}),o.append(T(pe===e.id?"Copied":"Copy",`copy:${e.id}`,{onClick:()=>_t(e)})),o.append(T("Dismiss",`dismiss:${e.id}`,{onClick:()=>et(e)})),t.append(o),t}function Et(e){e.append(A(k.length?"These copies were replaced before this page loaded. The page never puts them back on its own. Copy or download the ones you want; dismiss one when you no longer need it.":"These copies were kept because an undo could not be put back or the page set them aside. The page never puts them back on its own. Copy or download the ones you want; dismiss one when you no longer need it.")),oe&&e.append(A("That action did not run. The copy is still here."));let t=$e(["flex:1 1 auto","margin:0 16px 12px","min-height:0","overflow:auto",`background:${l.sunk}`,`border:1px solid ${l["line-2"]}`]);for(let o of k)for(let i of o.conflicts)t.append(Ge(i));for(let o of x)t.append(Ge(o));B=t,e.append(t);let n=f("div",["all:initial","display:flex","flex-wrap:wrap","gap:8px","padding:0 16px 14px"]);(k.some(o=>o.root)||x.length)&&n.append(T(Y?"Downloaded":"Download my copy","download",{onClick:It})),e.append(n),S=[]}function he(e,t,{mine:n}){let o=[p("span",[`color:${l.faint}`,`font-family:${K}`],e)],i=p("span",["display:-webkit-box","-webkit-line-clamp:2","-webkit-box-orient:vertical","overflow:hidden","overflow-wrap:anywhere",...n?[`color:${l.ink}`]:[`color:${l.muted}`]]),a=(t.cutBefore?"\u2026":"")+t.before+t.hit+t.after+(t.cutAfter?"\u2026":"");i.title=a,t.before&&i.append(p("span",[`color:${l.faint}`],(t.cutBefore?"\u2026":"")+t.before));let r=p("span",n?[`background:color-mix(in srgb, ${E} 18%, transparent)`,"padding:0 4px"]:t.before||t.after?["text-decoration:underline",`text-decoration-color:color-mix(in srgb, ${E} 70%, transparent)`,"text-underline-offset:3px"]:[],t.hit||"(empty)");return i.append(r),t.after&&i.append(p("span",[`color:${l.faint}`],t.after+(t.cutAfter?"\u2026":""))),o.push(i),o}function St(e,t){let n=Ie(e),o=p("div",["display:block","padding:8px 12px 10px",...t?[`border-top:1px solid ${l.line}`]:[]]),i=p("div",["display:flex","align-items:center","gap:4px","font-size:12.5px","font-weight:600",`color:${l["ink-2"]}`,"margin-bottom:4px"]);if(i.append(p("span",[],n.name)),n.target&&n.target.isConnected&&i.append(O(Rt(n),`eye:${e.id}`)),o.append(i),n.sentence&&o.append(p("div",["display:block","font-size:13px",`color:${l["ink-2"]}`],n.sentence)),q.has(e.id)&&o.append(p("div",["display:block","font-size:13px","margin-top:4px",`color:${E}`],q.get(e.id))),n.yours){let a=p("div",["display:grid","grid-template-columns:44px 1fr","gap:3px 10px","align-items:start",`font:12.5px/1.5 ${Z}`,...n.sentence?["margin-top:4px"]:[]]);a.append(...he("Yours",n.yours,{mine:!0})),n.now&&a.append(...he("Now",n.now,{mine:!1})),o.append(a)}return o}function Rt(e){let t=["all:initial","color-scheme:inherit","box-sizing:border-box","cursor:pointer","display:inline-grid","place-items:center","width:22px","height:20px",`color:${l.ink}`],n=f("button",t);n.type="button",n.innerHTML=Ye.conflictEye,He(n.firstElementChild,16),n.setAttribute("aria-label",`Show ${e.name} on page`),n.title="Show on page";let o=i=>{n.style.cssText="";for(let a of[...t,...i]){let r=a.indexOf(":");n.style.setProperty(a.slice(0,r),a.slice(r+1),"important")}};return n.addEventListener("pointerenter",()=>o([`background:color-mix(in srgb, ${E} 16%, transparent)`])),n.addEventListener("pointerleave",()=>o([])),n.addEventListener("focus",()=>o([`outline:2px solid ${l.brass}`,"outline-offset:1px"])),n.addEventListener("blur",()=>o([])),n.addEventListener("click",()=>Lt(e.target)),n}var C=null,ge=null,me=null;function we(){clearTimeout(ge),window.removeEventListener("scroll",ee,!0),window.removeEventListener("resize",ee),C?.remove(),C=null,me=null}function ee(){if(!C||!me)return;let e=me.getBoundingClientRect();$(C,"left",`${e.left}px`),$(C,"top",`${e.top}px`),$(C,"width",`${e.width}px`),$(C,"height",`${e.height}px`)}function Lt(e){if(we(),!e||!e.isConnected)return;let n=!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches?"instant":"smooth",o=s?.getBoundingClientRect().top??0,i=s&&o>0?Math.max(0,window.innerHeight-o):0;if(!i)e.scrollIntoView?.({block:"center",behavior:n});else{e.scrollIntoView?.({block:"center",behavior:"instant"});let a=e.getBoundingClientRect(),r=window.innerHeight-i,g=a.height>r-24?a.top-12:a.top+a.height/2-r/2;window.scrollBy?.({top:g,behavior:n})}me=e,C=f("div",["all:initial","color-scheme:inherit","position:fixed","pointer-events:none","z-index:2147483001",`outline:2px solid ${E}`,"outline-offset:3px",`background:color-mix(in srgb, ${E} 14%, transparent)`]),document.body.appendChild(C),ee(),window.addEventListener("scroll",ee,!0),window.addEventListener("resize",ee),ge=setTimeout(we,2500)}function Dt(){_||(m="panel",L="title",w())}function Ze(){we(),m="bar",y(),L="review",w()}function Je(){P=!P,P&&M.clear(),w()}function zt(){let e=z(),t=S.filter(n=>{let o=e?.get(n);return o&&!o.claimedBy});e&&t.length&&e.acknowledge(t,{reason:"accepted"}),m=ze()?"bar":"hidden",L="review",d()}async function Mt(){let e=z();if(u||!e||e.hasPendingApply())return;let t=S.filter(r=>{let g=e.get(r);return g&&!g.claimedBy});if(!t.length)return;u="revert",w();let n=!0,o=r=>{n=!!s?.contains(r.target)};document.addEventListener("focus",o,!0);let i;try{let{revertConflicts:r}=await import("./c-RI4NT75Y.js");i=await r(t)}catch(r){console.error("[clay] Revert to mine did not finish",r),i={revertedIds:[],blockedIds:t,saveResult:null}}finally{document.removeEventListener("focus",o,!0)}u=null;for(let r of i.blockedIds)q.set(r,z()?.get(r)?.kind==="json"?ut:pt);m=ze()?"bar":"hidden",L=n?"review":null;let a=i.saveResult&&(i.saveResult.ok||i.saveResult.msg==="Save already in progress");i.revertedIds.length&&a?be(`Put back ${F(i.revertedIds.length,"change")}. Saving.`):w()}var j=null;function Bt(){let e=z(),t=h?e?.list()??[]:S.map(o=>e?.get(o)).filter(Boolean),n=Pe(t,{refused:!!h});ve=!n,Y=n,clearTimeout(j),n&&(j=setTimeout(()=>{Y=!1,d()},1200)),w()}async function Q(){let e=null;if(Ae())try{e=await We()}catch{e=null}let t=Le(),n=null;if(t)try{n=await t.kept()}catch{n=null}let o=!1;if(e?.ok?(k=e.records,o=!0):!Ae()&&k.length&&(k=[],o=!0),n?.ok){let i=(Array.isArray(n.records)?n.records:[]).filter(r=>r&&r.supported!==!1).map(At);i.length===x.length&&i.every((r,g)=>r.id===x[g].id&&r.revision===x[g].revision)||(o=!0),x=i}else n&&x.length&&(x=[],o=!0);o&&d()}async function Ot(e){try{return await navigator.clipboard.writeText(e),!0}catch{}let t=document.createElement("textarea");t.value=e,t.setAttribute("clay",ke),t.style.setProperty("position","fixed","important"),t.style.setProperty("opacity","0","important"),document.body?.append(t),t.select();let n=!1;try{n=document.execCommand?.("copy")===!0}catch{}return t.remove(),n}async function _t(e){let t=e.record?e.yours:`${Me(e)}
2
-
3
- Yours:
4
- ${e.yours}
5
-
6
- Now:
7
- ${e.now}`;if(!await Ot(t)){be("Could not copy. Select the text instead.");return}pe=e.id,clearTimeout(ue),ue=setTimeout(()=>{pe=null,d()},1200),w()}function It(){let e=k.find(o=>o.root),t=[];for(let o of k)for(let i of o.conflicts)t.push({id:i.id,kind:i.kind,name:Me(i),yours:i.yours,now:i.now,sentence:i.sentence});for(let o of x)t.push({id:o.id,kind:o.kind,name:o.name,yours:o.yours,now:o.now,sentence:o.sentence});let n=Ne({html:e?.root??null,edits:t});ve=!n,Y=n,clearTimeout(j),n&&(j=setTimeout(()=>{Y=!1,d()},1200)),w()}async function et(e){let t;try{t=e.record?await Le()?.dismissKept(e.id,{revision:e.revision}):await Ve([e.id]),t||={ok:!1}}catch{t={ok:!1}}t.ok||be("That copy could not be dismissed."),await Q(),d()}var Ce=new Set;async function Nt(e,t,n=null){if(!Ce.has(t)){Ce.add(t),n&&(n.disabled=!0,n.setAttribute("aria-busy","true")),oe=!1;try{let o=null;try{o=await t.run(e.record)}catch{o=null}if(o?.ok===!0&&o?.dismiss===!0){await et(e);return}oe=o?.ok!==!0,await Q(),d()}finally{Ce.delete(t),n&&n.isConnected&&(n.disabled=!1,n.removeAttribute("aria-busy"))}}}function tt(e){e?.detail?.ok===!0&&(oe=!1,Q(),d())}function y(){clearTimeout(le),le=null,v=null}async function Pt(){if(u)return;let e=++de;u="overwrite",R=!1,y(),w();let t;try{t=await window.clay?.save?.overwrite?.()}catch{t={ok:!1}}e!==de||u!=="overwrite"||(!t?.ok&&W()&&(u=null,R=!0),d())}function Ft(){if(!v){v={refusalGeneration:Ee,ledgerRevision:se,dirtyGeneration:Te().gen},Se=Date.now(),D=!1,clearTimeout(le),le=setTimeout(()=>{y(),d()},at),w();return}if(Date.now()-Se<st)return;let e=v;Ue({isCurrent:()=>v===e&&e.refusalGeneration===Ee&&e.ledgerRevision===se&&e.dirtyGeneration===Te().gen,reload:()=>window.location.reload()})||(y(),D=!0,w())}function be(e){b=e,clearTimeout(G),G=setTimeout(()=>{b=null,d()},lt),w()}function Yt(){Q(),d()}function nt(){se++,v&&y();for(let e of[...q.keys()])z()?.get(e)||q.delete(e);Q(),d()}function ot(e){_=e?.detail&&e.detail.message||"This document was upgraded.",b=null,clearTimeout(G),y(),u=null,R=!1,D=!1,m="bar",d()}function it(e){let t=e?.detail||{};h={generation:++Ee,changedBy:t.changedBy,afterTimeout:!!t.afterTimeout,etag:t.etag??null},b=null,clearTimeout(G),y(),u=null,R=!1,de++,D=!1,d()}function Re(e){if(W()){e.type==="clay:save-saved"&&queueMicrotask(()=>{W()||Re(e)});return}let t=u==="overwrite"&&e.type==="clay:save-saved";(h||u)&&(h=null,u=null,R=!1,D=!1,y()),t?be("Saved your version over theirs."):d()}function Ht(){h&&(te=!0,d())}function Kt(){!h||W()||(h=null,u=null,R=!1,D=!1,y(),d())}function Ut(e){if(e.key!=="Escape")return;if(v){e.preventDefault(),y(),w();return}if(m!=="panel")return;let t=document.activeElement;t&&t!==document.body&&!s?.contains(t)||(e.preventDefault(),Ze())}function Wt(e){!v||s?.contains(e.target)||(y(),d())}function Vt(e){b&&L&&!s?.contains(e.target)&&(L=null)}function qt(){xe=new AbortController;let{signal:e}=xe;document.addEventListener("clay:document-upgraded",ot,{signal:e}),Oe&&(document.addEventListener("clay:sync-conflicts-changed",nt,{signal:e}),document.addEventListener("clay:unsaved-state-changed",d,{signal:e}),document.addEventListener("clay:save-conflict",it,{signal:e}),document.addEventListener("clay:save-saved",Re,{signal:e}),document.addEventListener("clay:save-conflict-resolved",Re,{signal:e}),document.addEventListener("clay:sync-applied",Ht,{signal:e}),document.addEventListener("clay:save-conflict-released",Kt,{signal:e}),document.addEventListener("keydown",Ut,{signal:e}),document.addEventListener("input",Wt,{capture:!0,signal:e}),document.addEventListener("focus",Vt,{capture:!0,signal:e}),document.addEventListener("clay:conflict-store-changed",Yt,{signal:e}),document.addEventListener("clay:undo-kept",tt,{signal:e}),z()?.size&&d(),Q())}var Gt={"clay:sync-conflicts-changed":nt,"clay:save-conflict":it,"clay:document-upgraded":ot,"clay:undo-kept":tt},ye=!1,xe=null;function an(e){ye||(ye=!0,qt());let t=e&&Gt[e.type];t&&t(e),h&&(te=!0,d())}function ln(){ye&&(ye=!1,xe?.abort(),xe=null,y(),clearTimeout(G),G=null,clearTimeout(j),j=null,clearTimeout(ue),ue=null,clearTimeout(ge),ge=null,we(),window.visualViewport?.removeEventListener("resize",ie),window.visualViewport?.removeEventListener("scroll",ie),s?.remove(),s=null,V=new Map,B=null,ne=null,m="hidden",P=!1,S=[],J.clear(),M.clear(),q.clear(),b=null,h=null,_=null,u=null,R=!1,de++,v=null,Se=0,D=!1,k=[],x=[],oe=!1,ae=!1,te=!1,L=null,ce=null,Y=!1,ve=!1,pe=null)}var sn={state:()=>({view:m,listOpen:P,renderedIds:S.slice(),refused:h,armed:v,busy:u,ledgerRevision:se,upgraded:_}),render:w,resetUpgrade:()=>{_=null}};export{E as WARN,sn as _test,d as schedule,an as start,ln as stop,be as toast};
@@ -1,19 +0,0 @@
1
- import{b as s}from"./c-BTDI4Y23.js";import"./c-VHNSBD2M.js";var h=`html:has(> body > .clay-intro) { height: auto !important; overflow-y: auto !important; }
2
- body:has(> .clay-intro) { height: auto !important; overflow: visible !important; }
3
- .clay-intro {
4
- position: relative;
5
- display: block;
6
- }
7
- .clay-intro__close {
8
- position: absolute; top: 10px; right: 10px; z-index: 1;
9
- display: inline-flex; align-items: center; justify-content: center;
10
- width: 28px; height: 28px; min-height: 0; margin: 0; padding: 0;
11
- border: 0; border-radius: 4px; background: none; box-shadow: none;
12
- color: inherit; opacity: .55; cursor: pointer; line-height: 1;
13
- }
14
- .clay-intro .clay-intro__close:hover { opacity: 1; background: none; color: inherit; }
15
- .clay-intro__close:focus-visible { opacity: 1; outline: 2px solid currentColor; outline-offset: 2px; }
16
- .clay-intro__close svg { display: block; width: 12px; height: 12px; fill: currentColor; stroke: none; }
17
- @media (pointer: coarse) { .clay-intro__close { width: 44px; height: 44px; top: 4px; right: 4px; } }
18
- @media print { .clay-intro { display: none; } }
19
- `;var p={close:"Hide this introduction",label:t=>`About ${t}`},y="a[href], button, input, select, textarea, [tabindex]:not([tabindex='-1'])",b="textarea, select",g=["checkbox","radio","button","submit","reset","file"];function x(t){return t.isContentEditable||t.closest(b)?!0:t.tagName!=="INPUT"?!1:g.indexOf(t.type)<0}function w(){try{return new URLSearchParams(window.location.search).get("intro")==="1"}catch{return!1}}function v(){if(document.getElementById("clay-intro-style"))return;let t=document.createElement("style");t.id="clay-intro-style",t.setAttribute("clay","editor-ui"),t.textContent=h,document.head.appendChild(t)}function _(){let t=[...document.querySelectorAll(y)].find(o=>!o.disabled&&!x(o)&&!o.closest("[clay~='editor-ui']")&&(typeof o.checkVisibility!="function"||o.checkVisibility()));t?t.focus({preventScroll:!0}):document.body.focus({preventScroll:!0})}function A({memory:t,template:o,appName:c,hadDraft:e}){return!o||!o.content.textContent.trim()&&!o.content.querySelector("img, svg, video, canvas")||!w()&&(t.get().intro.done||e||window.location.hash||window.matchMedia&&window.matchMedia("print").matches)?null:C({memory:t,template:o,appName:c})}function C({memory:t,template:o,appName:c}){v();let e=document.createElement("section");e.className="clay-intro",e.setAttribute("clay","editor-ui"),e.setAttribute("sap-ignore",""),e.setAttribute("aria-label",p.label(c)),e.appendChild(o.content.cloneNode(!0));let i=document.createElement("button");i.type="button",i.className="clay-intro__close",i.setAttribute("aria-label",p.close),i.innerHTML='<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor" aria-hidden="true"><path d="M1.4 0 6 4.6 10.6 0 12 1.4 7.4 6 12 10.6 10.6 12 6 7.4 1.4 12 0 10.6 4.6 6 0 1.4z"/></svg>',e.appendChild(i);let a=!1,r=0;function d(n){if(a)return;a=!0,removeEventListener("scroll",u),r&&cancelAnimationFrame(r);let l=e.getBoundingClientRect().height,m=window.scrollY;if(t.get().intro.done=n,t.save(),e.remove(),n==="scrolled"){let f=/hidden|clip/.test(getComputedStyle(document.body).overflowY+getComputedStyle(document.documentElement).overflowY);window.scrollTo(0,f?0:Math.max(0,m-l))}s(),n!=="scrolled"&&_()}function u(){r||(r=requestAnimationFrame(()=>{r=0;let n=e.getBoundingClientRect().bottom,l=scrollY>0&&scrollY+innerHeight>=document.documentElement.scrollHeight-1;(n<1||l&&n<innerHeight)&&d("scrolled")}))}return e.addEventListener("click",n=>{if(n.target.closest(".clay-intro__close, [visitor-intro-dismiss]")){d("closed");return}n.target.closest("[visitor-intro-start]")&&(n.preventDefault(),window.scrollTo({top:window.scrollY+e.getBoundingClientRect().bottom,behavior:"smooth"}))}),document.body.prepend(e),s(),addEventListener("scroll",u,{passive:!0}),e}export{p as COPY,A as mountIntro};
@@ -1,21 +0,0 @@
1
- import{a as Dt,b as zt,c as Kt,d as Ge,e as yt,f as cn,g as Ht,h as an,i as ln,j as qt,l as Ut}from"./c-SWRJFCNN.js";import{a as rn,b as sn,d as Hn,e as qn}from"./c-IKWNE4R4.js";import{a as nn}from"./c-XNNW2CWK.js";import{A as Vo,B as Go,C as Yt,D as Xo,E as Nt,F as Z,G as Te,H as Qo,L as Zo,M as en,a as ht,b as Rt,c as No,d as Bo,e as Lo,f as gt,g as Dn,h as ie,i as Do,j as zo,k as qe,l as Ko,m as Ft,n as Ie,o as Ae,p as _t,pa as zn,q as Ho,qa as Kn,r as ge,s as qo,t as Ue,u as bt,v as Uo,w as Jo,x as Je,y as Ve,z as Ce}from"./c-KY3VJGUA.js";import{A as ve,B as Ke,C as Po,D as ee,E as ae,F as ue,G as pt,H as Fo,I as He,J as mt,K as le,L as _o,M as Me,N as fe,O as we,Q as Yo,T as Pt,f as lt,g as Ao,h as Co,i as ft,j as dt,k as Ct,n as Tt,o as $t,p as To,s as he,t as ce,u as ut,v as $o,w as jt,x as re,y as jo,z as Ro}from"./c-Y6USGTS5.js";import"./c-EDHUR4MX.js";import"./c-54RCDCBU.js";import{d as Wo,l as Bt}from"./c-TR6RMDQ7.js";import{$ as Mo,I as Ne,J as it,L as Be,M as Eo,W as ct,X as Le,_ as Oe,a as yo,b as ne,c as ko,da as De,e as rt,ea as xe,fa as at,ga as ke,ha as W,ia as Io,ja as ze,ka as Se,la as Ee,m as V,na as pe,o as vo,q as wo,r as Oo,s as st,t as At,u as xo,x as So}from"./c-66O32MV3.js";import{a as tn,b as on,c as Lt}from"./c-4L3BTFRK.js";import{a as nt}from"./c-TCCA5BZN.js";import"./c-LRPUO2MX.js";import{c as bo}from"./c-5V3MOVJT.js";import"./c-LTGMXXKO.js";import{a as go,b as It}from"./c-FILLTJA7.js";import"./c-QIX5BJYN.js";import{d as mo,e as ho}from"./c-CJZSLMVQ.js";import"./c-GQ6F6IDK.js";import"./c-2SPVQSHC.js";import"./c-5VYOWDTI.js";import"./c-7VGZ7RU5.js";import"./c-4YSCRICO.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import"./c-HT33EQRN.js";import"./c-B2ZXPOS3.js";import"./c-TQEMVJCS.js";import"./c-3IQRECYS.js";import"./c-AYVOREBE.js";import"./c-IJUK2GPW.js";import"./c-7O6AFR65.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import{k as po}from"./c-35NBGMZB.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-GHBCCVG4.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var je=e=>e&&typeof e=="object"?JSON.parse(JSON.stringify(e)):e,ye=e=>{throw new ie("unsupported-content",e)},Un=e=>{if(e._map){for(let t of e._map.values())if(!t.deleted)return!0}for(let t=e._start;t;t=t.right)if(!t.deleted)return!0;return!1},te=e=>{throw new ie("invalid-content",e)},fn={span:["length","sourceClient","sourceClock"],alias:["sourceClient","sourceClock"],boundary:["blockId","kind","recoveryOf"]},Jn=["copy","removed","restore"],be=e=>Number.isSafeInteger(e)&&e>=0,Vn=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Jt=(e,t)=>`${e}.${t}`,dn=e=>JSON.stringify([e.blockId,e.kind,e.recoveryOf??null]),Gn=(e,t)=>{try{return Oo({[fe(e)]:t}),!0}catch{return!1}};function Xn(e){e.flow._map.size&&ye("The page flow must contain text and block markers");for(let t=e.flow._start;t;t=t.right){if(t.deleted)continue;let o=t.content;if(!(o instanceof $o)){if(o instanceof ut){o.value!==null&&!Object.hasOwn(V.marks,fe(o.key))&&!Gn(o.key,o.value)&&ye(`Unsupported page mark: ${o.key}`);continue}if(o instanceof ce){let n=o.embed;if(n&&Object.keys(n).length===1&&(typeof n.b=="string"&&n.b||n.br===1))continue}ye("Unsupported content in the page flow")}}for(let[t,o]of e.attrs)o instanceof he||ye(`Unsupported attributes for page block: ${t}`)}var $e=(e,t)=>{let o=typeof t=="string"?Ve(t):t;if(!o)return!1;let n;try{n=$t(e.ydoc.store,o)}catch{return!1}return n instanceof jt&&n.parent===e.flow&&n.id.clock<=o.clock&&o.clock<n.id.clock+n.length},Qn=e=>e.charCodeAt(0)===91?JSON.parse(e)[1]:e;function Wn(e){let t;try{t=Ce(e.gone,{strict:!0})}catch(n){throw n instanceof Ho?new ie("invalid-content",n.message):n}for(let n of t.textDeletes){let r=$t(e.ydoc.store,{client:n.client,clock:n.clock});if(!(r instanceof jt)||r.parent!==e.flow||r.id.clock>n.clock||n.clock+n.length>r.id.clock+r.length)throw new ie("invalid-content",`Invalid text-delete record: ${n.key}`)}let o=n=>{throw new ie("invalid-content",n)};for(let n of t.removals)$e(e,n.source)||o(`Invalid removal source: ${n.key}`),n.end!==null&&!$e(e,n.end)&&o(`Invalid removal end: ${n.key}`);for(let n of t.restores){$e(e,n.sourceKey)||o(`Invalid restore source: ${n.key}`);for(let r of n.covers)$e(e,Qn(r))||o(`Invalid restore cover: ${n.key}`)}for(let n of t.copyActive)$e(e,n)||o(`Invalid copy-active record: ${n}`);for(let n of t.attrs.keys())$e(e,n)||o(`Invalid attribute override: ${n}`)}function Zn(e){let t=new Map,o=new Map,n=(s,i,c)=>{Vn(s)||te(`Invalid origin record: ${c}`);for(let a of Object.keys(s))i.includes(a)||te(`Unsupported origin field ${a} in ${c}`)};for(let[s,i]of e.origins){(typeof s!="string"||s.charCodeAt(0)!==91)&&te(`Malformed origin key: ${s}`);let c=null;try{c=JSON.parse(s)}catch{te(`Malformed origin key: ${s}`)}(!Array.isArray(c)||typeof c[0]!="string")&&te(`Malformed origin key: ${s}`);let a=c[0];if(a==="author"){(c.length!==2||!be(c[1]))&&te(`Malformed origin key: ${s}`),(typeof i!="string"||!i)&&te(`Invalid author record: ${s}`);continue}if(Object.hasOwn(fn,a)||ye(`Unsupported origin record: ${s}`),(c.length!==3||!be(c[1])||!be(c[2]))&&te(`Malformed origin key: ${s}`),n(i,fn[a],s),a==="span"){(!Number.isSafeInteger(i.length)||i.length<1||!be(i.sourceClient)||!be(i.sourceClock)||!be(i.sourceClock+i.length-1))&&te(`Invalid span record: ${s}`);continue}if(a==="alias"){(!be(i.sourceClient)||!be(i.sourceClock))&&te(`Invalid alias record: ${s}`),t.set(Jt(c[1],c[2]),{client:i.sourceClient,clock:i.sourceClock});continue}(typeof i.blockId!="string"||!i.blockId||!Jn.includes(i.kind))&&te(`Invalid boundary record: ${s}`),i.recoveryOf!==void 0&&!Ve(i.recoveryOf)&&te(`Invalid boundary record: ${s}`),o.set(Jt(c[1],c[2]),i)}let r=new Map;for(let[s,i]of o){let c=s,a=new Set;for(;!a.has(c);){a.add(c);let m=t.get(c);if(!m)break;c=Jt(m.client,m.clock)}a.has(c)&&t.has(c)&&te(`Cyclic boundary alias: ${s}`);let l=r.get(c);l&&dn(l)!==dn(i)&&te(`Conflicting boundary values: ${s}`),r.set(c,i)}}function un(e){let t="",o=[];for(let r of e.runs)if(!r.hole)if(r.br)e.t==="code_block"&&ye("A code block cannot contain a hard-break atom"),t+=ct,o.push(Le);else{t+=r.text;let s=st([...r.marks].sort((i,c)=>i.type.rank-c.type.rank));for(let i=0;i<r.text.length;i++)o.push(s)}let n={c:t};return o.some(Boolean)&&(n.m=xe(o)),n}var pn=(e,t)=>e.fields?Object.entries(e.fields):t?t.entries():[];function er(e,t,o){let n=e.attrs.get(t.baseId),r={t:t.t,pos:String(o+1).padStart(8,"0")};for(let[s,i]of pn(t,n))s!=="t"&&s!=="pos"&&(r[s]=je(i));return Object.assign(r,un(t))}function tr(e,t,o){if(!Object.hasOwn(Oe,t.t))return(typeof t.t!="string"||!t.t||t.t==="opaque_block")&&ye(`Unsupported page block type: ${t.t}`),er(e,t,o);let n=V.nodes[t.t],r=e.attrs.get(t.baseId),s=t.t==="table"&&!t.fields?qe(e.tableFields,t.baseId,{cols:r?.get("cols"),rows:r?.get("rows")}):null,i={t:t.t,pos:String(o+1).padStart(8,"0")};for(let a of ee(n)){if(t.t==="board"&&(a==="columns"||a==="cards"))continue;let l=t.fields?t.fields[a]:s&&(a==="cols"||a==="rows")?s[a]:r?.has(a)?r.get(a):ae(n,a);ue(l,ae(n,a))||(i[a]=je(l))}t.t==="table"&&(i.rows=je((t.fields?t.fields.rows:s.rows)??{})),t.t==="board"&&Object.assign(i,t.fields?{columns:je(t.fields.columns??{}),cards:je(t.fields.cards??{})}:Ae(e.boardFields,t.baseId));let c=new Set(ee(n));for(let[a,l]of pn(t,r))a==="t"||a==="pos"||c.has(a)||Object.hasOwn(i,a)||(i[a]=je(l));return n.isTextblock&&Object.assign(i,un(t)),i}function kt(e){let t=Do(e,{strict:!0});try{for(let[i,c]of t.share)!Po.includes(i)&&Un(c)&&ye(`Unsupported page root: ${i}`);let o=Me(t);Xn(o),Ae(o.boardFields),qe(o.tableFields),Wn(o),Zn(o);let n=Z(o).visible,r=new Set(n.filter(i=>!i.implicit).map(i=>i.id)),s=new Set;return Object.fromEntries(n.map((i,c)=>{let a=i.id;if(s.has(a)||i.implicit&&r.has(a)){let l=2;do a=`${i.id}~${l++}`;while(s.has(a)||r.has(a))}return s.add(a),[a,tr(o,i,c)]}))}catch(o){throw o instanceof ie?o:new ie("invalid-content",`Invalid Yjs page content: ${o.message}`)}finally{t.destroy()}}function vt(e){if(e.some(t=>!t||typeof t!="object"||Array.isArray(t)))throw new ie("invalid-value","Expected a page data object");if(!e.some(t=>Object.hasOwn(t,"y")||Object.hasOwn(t,"v")))return at(e);if(e.length!==1||Object.hasOwn(e[0],"blocks")||Object.hasOwn(e[0],"deleted"))throw new ie("invalid-value","A Yjs page must have one page tag without hybrid block data");return kt(e[0])}var Vt="page-adopt",Gt=(e,t)=>W(e)===W(t),Ot=({id:e,parent:t,...o})=>({...o,parent:t??null});function mn(e,t,o=ke(e)){let n=o,r=new Map(n.map(d=>[d.id,d])),s=new Map(t.map(d=>[d.id,d])),i=new Map,c=new Map;for(let d of t){let S=r.get(d.id);S?Gt(Ot(S),Ot(d))||i.set(d.id,d):c.set(d.id,d)}let a=n.filter(d=>!s.has(d.id)).map(d=>d.id),l=t.filter(d=>r.has(d.id)).map(d=>d.id),m=n.filter(d=>s.has(d.id)).map(d=>d.id),x=l.some((d,S)=>d!==m[S]);return!i.size&&!c.size&&!a.length&&!x?null:{edited:i,created:c,deleted:a,order:t.map(d=>d.id),reordered:x,base:r}}function wt(e,t,o,n=r=>r){let r=e.map(c=>({id:c.id,pos:t?.[c.id]?.pos??null})),s=Be(r,o),i={};return e.forEach((c,a)=>{i[c.id]=n({...c,pos:s[a]?s[a].pos:r[a].pos})}),i}function Xt(e,t){let{id:o,t:n,...r}=e,s={t:n,pos:t?.pos??null};if(Object.assign(s,r),n==="table"&&!r.rows.length&&r.cols.length&&(r.rows=[{id:`r-${o}`,cells:{}}]),n==="table"&&(s.cols=wt(r.cols,t?.cols,"c",({id:i,...c})=>c),s.rows=wt(r.rows,t?.rows,"r",({id:i,cells:c,pos:a})=>({pos:a,cells:c}))),n==="board"){s.columns=wt(r.columns,t?.columns,"c",({id:a,...l})=>l);let i={},c=new Map;for(let a of r.cards)(c.get(a.col)??c.set(a.col,[]).get(a.col)).push(a);for(let a of c.values())Object.assign(i,wt(a,t?.cards,"k",({id:l,...m})=>m));s.cards=i}return s}var or=(e,t,o)=>{let{t:n,pos:r,c:s,m:i,...c}=o,a=typeof s=="string"&&s?So(e,s,De(i,s.length),e.nodes.opaque_block):null;return e.nodes.opaque_block.create({id:t,pos:r,raw:{t:n,...c}},a)},nr=e=>Object.fromEntries(Object.entries(e).map(([t,o])=>{if(o.t!=="opaque_block")return[t,o];let{t:n,raw:r,...s}=o,{t:i,...c}=r??{};return[t,{t:i??"paragraph",pos:o.pos,...c,...s}]}));function Pe(e,t){let o=null;return e.forEach((n,r)=>{!o&&n.attrs.id===t&&(o={node:n,pos:r})}),o}function rr(e,t){let o=e.filter(c=>t.has(c)),n=[],r=[],s=new Array(o.length).fill(-1);o.forEach((c,a)=>{let l=t.get(c),m=0,x=n.length;for(;m<x;){let d=m+x>>1;n[d]<l?m=d+1:x=d}m>0&&(s[a]=r[m-1]),n[m]=l,r[m]=a});let i=new Set;for(let c=r[n.length-1]??-1;c>=0;c=s[c])i.add(o[c]);return i}function sr(e,t,o){let{node:n,pos:r}=Pe(e.doc,t),s={...o.attrs,id:n.attrs.id,pos:n.attrs.pos};if(n.isTextblock&&o.isTextblock&&o.type.validContent(n.content)){(n.type!==o.type||!Gt(n.attrs,s))&&e.setNodeMarkup(r,o.type,s);let i=Pe(e.doc,t).node,c=i.content.findDiffStart(o.content);if(c==null)return;let{a,b:l}=i.content.findDiffEnd(o.content),m=c-Math.min(a,l);m>0&&(a+=m,l+=m),e.replace(r+1+c,r+1+a,new yo.Slice(o.content.cut(c,l),0,0));return}e.replaceWith(r,r+n.nodeSize,o.type.create(s,o.content,o.marks))}function hn(e,t){if(!t)return null;let o=e.schema,n=e.doc,r=nr(Ne(n)),s=e.tr,i=new Map(ke(r).map(g=>[g.id,g])),c={};for(let g of[...t.edited.keys(),...t.deleted]){let v=t.base.get(g),M=i.get(g);v&&M&&!Gt(Ot(v),Ot(M))&&(c[g]=r[g])}let a=(g,v)=>{let M=Xt(v,r[g]);return Object.hasOwn(Oe,v.t)?it(o,g,M):or(o,g,M)},l=t.base.size?[]:Object.keys(r).filter(g=>r[g].t==="paragraph"&&!r[g].c&&!t.order.includes(g));for(let g of t.deleted){let v=Pe(s.doc,g);v&&s.delete(v.pos,v.pos+v.node.nodeSize)}let m=[];s.doc.forEach(g=>m.push(g.attrs.id));let x=new Set(t.order),d=t.order.filter(g=>!t.deleted.includes(g));t.reordered?m.forEach((g,v)=>{if(x.has(g))return;let M=m.slice(0,v).reverse().find(y=>d.includes(y));d.splice(M?d.indexOf(M)+1:0,0,g)}):(d=m.slice(),t.order.forEach((g,v)=>{if(!t.created.has(g)||d.includes(g))return;let M=v-1;for(;M>=0&&!d.includes(t.order[M]);)M--;d.splice(M>=0?d.indexOf(t.order[M])+1:0,0,g)}));let S=new Map(m.map((g,v)=>[g,v]));d=d.filter(g=>S.has(g)||t.edited.has(g)||t.created.has(g));let _=rr(d,S),z=new Map;for(let g of m.slice().reverse()){if(_.has(g)||!d.includes(g))continue;let v=Pe(s.doc,g);z.set(g,v.node),s.delete(v.pos,v.pos+v.node.nodeSize)}let I=0;for(let g of d){if(_.has(g)){let y=Pe(s.doc,g);I=y.pos+y.node.nodeSize;continue}let v=t.edited.get(g)||t.created.get(g),M=v?a(g,v):z.get(g);s.insert(I,M),I+=M.nodeSize}for(let[g,v]of[...t.edited,...t.created])_.has(g)&&sr(s,g,a(g,v));for(let g of l){let v=Pe(s.doc,g);v&&s.doc.childCount>1&&s.delete(v.pos,v.pos+v.node.nodeSize)}return s.docChanged?rt.closeHistory(s).setMeta(Vt,{displaced:c}):null}function Xe(e,t,o=""){let n=ke(e),r=new Map(n.map(c=>[c.id,c])),s=c=>typeof e[c]?.artifact?.fallbackHtml=="string"?e[c].artifact.fallbackHtml:"",i=t.createElement("article");return i.innerHTML=Ee(n,{fallbackOf:s,clean:Se(t)}),pe(i,{seed:o,known:r})}function Qt(e,t){let o=e.getAttribute("data-rev"),n=vt(t),r=ke(n),s=new Map(r.map(x=>[x.id,x])),i=o??"",c=pe(e,{seed:i,known:s}),a=ze(c);if(o&&a===o)return{kind:"untouched"};let l=ze(r);if(o&&l!==o)return{kind:"unbased",A:a,R:o,T:l};if(!o){let x=new Set(c.map(d=>d.id));if(!r.every(d=>x.has(d.id)))return{kind:"unbased",A:a,R:o,T:l}}let m=Xe(n,e.ownerDocument,i);return{kind:"adopt",base:n,parsed:c,baseItems:m,A:a}}var Wt=new Set(["paragraph","heading","list_item","callout","code_block","toggle"]),Qe=(e,t)=>W(e)===W(t);function Zt(e,t){let o=t.createElement("article");return o.setAttribute("data-page",""),o.innerHTML=Ee([{id:e.id,t:"paragraph",c:e.c??"",...e.m?{m:e.m}:{}}],{clean:Se(t)}),o}function ir(e,t){let o=new Map(e.map((c,a)=>[c.id,a])),n=new Set(t.map(c=>c.id)),r=new Map,s=0;return t.map(c=>{let a=o.get(c.id);if(a!==void 0)return s=a+1,c;let l={c:c.c??"",m:c.m??null};for(let m=s;m<e.length;m++){let x=e[m];if(!(n.has(x.id)||x.t!==c.t||!Qe({c:x.c??"",m:x.m??null},l)))return n.add(x.id),s=m+1,r.set(c.id,x.id),{...c,id:x.id}}return c}).map(c=>r.has(c.parent)?{...c,parent:r.get(c.parent)}:c)}function eo(e,t,o,{doc:n,merge3:r,mergeJson:s}){let i=[],c=ir(e,o),a=new Map(e.map(h=>[h.id,h])),l=new Map(t.map(h=>[h.id,h])),m=new Map(c.map(h=>[h.id,h])),x=t.map(h=>({...h})),d=c.map(h=>({...h})),S=new Map(x.map(h=>[h.id,h])),_=new Map(d.map(h=>[h.id,h]));for(let[h,N]of a){let b=l.get(h),w=m.get(h);if(!b||!w||!Wt.has(N.t)||!Wt.has(b.t)||!Wt.has(w.t))continue;let Y={c:N.c??"",m:N.m??null},B={c:b.c??"",m:b.m??null},q={c:w.c??"",m:w.m??null};if(Qe(B,Y)||Qe(q,Y)||Qe(B,q))continue;if(N.t==="code_block"){for(let j of[S.get(h),_.get(h)])j.c=w.c??"",w.m?j.m=w.m:delete j.m;i.push({id:h,kind:"text",local:b.c??"",remote:w.c??""});continue}let $=r(Zt(N,n),Zt(b,n),Zt(w,n));for(let j of $.conflicts)i.push({id:h,kind:"text",local:j.local?.textContent??null,remote:j.remote?.textContent??null});let[P]=pe($.root,{seed:"",known:new Map});for(let j of[S.get(h),_.get(h)])j.c=P.c,P.m?j.m=P.m:delete j.m}let z=t.map(h=>h.id);for(let[h,N]of a){let b=S.get(h);if(!b||m.has(h)||Qe(l.get(h),N))continue;let w=z.indexOf(h)-1;for(;w>=0&&!_.has(z[w]);)w--;let Y=w<0?0:d.findIndex(B=>B.id===z[w])+1;d.splice(Y,0,{...b}),_.set(h,d[Y]),i.push({id:h,kind:"kept-edit"})}let I=s(e,x,d,{onConflict:h=>i.push({kind:"field",path:h.path,local:h.local,remote:h.remote,resolved:h.resolved})}),g=new Set(I.map(h=>h.id)),v=h=>(l.get(h)??a.get(h)??m.get(h))?.parent??null,M=I.map(h=>{let N=h.parent??null;for(;N&&!g.has(N);)N=v(N);return N===(h.parent??null)?h:{...h,parent:N}}),y=new Map(M.map(h=>[h.id,h.parent??null])),E=h=>{let N=new Set([h]);for(let b=y.get(h);b;b=y.get(b)){if(N.has(b))return!0;N.add(b)}return!1};for(let h of M)if(E(h.id)){for(let N of[l.get(h.id)?.parent,a.get(h.id)?.parent,null])if(y.set(h.id,N&&g.has(N)?N:null),!E(h.id))break}return{items:M.map(h=>(h.parent??null)===y.get(h.id)?h:{...h,parent:y.get(h.id)}),conflicts:i}}var xt="article[data-page]",cr=/^page(\.[0-9]+)?$/;function to(e){return[...e.querySelectorAll('script[merge][clay~="live"]')].filter(t=>cr.test(t.getAttribute("merge")))}var We=null;function gn(e){let t=e.join("\0");if(We&&We.key===t)return We;let o=e.map(i=>{try{return nt(i)}catch{throw new ie("invalid-json","Cannot read the page data as JSON")}}),n=vt(o),r=ke(n);return We={key:t,html:Ee(r,{fallbackOf:i=>{let c=n[i]?.artifact?.fallbackHtml;return typeof c=="string"?c:""},clean:Se(document)}),rev:ze(r),model:r,title:nn(r)},We}function ar(e){let t=e.querySelector(xt);if(!t)return;let o=to(e);if(!o.length)return;let{html:n,rev:r,title:s}=gn(o.map(i=>i.textContent));t.innerHTML!==n&&(t.innerHTML=n),t.setAttribute("data-rev",r),rn(e)||sn(e,s)}po(ar);var lr=e=>{try{return nt(e)}catch{return null}},Fe={ok:!0,outcome:"unchanged"},Ze={ok:!1,outcome:"disposed",reason:"adoption-disposed"},et={ok:!1,outcome:"refused",reason:"adoption-refused"},fr={ok:!1,outcome:"refused",reason:"adoption-timeout"},dr={ok:!1,outcome:"error",reason:"adoption-error"},ur={ok:!0,outcome:"writer-adopts"},bn=e=>({ok:!0,outcome:"adopted",counts:e}),yn=1e4;function pr(e){let t=e.querySelector(xt);return t?{article:t.cloneNode(!0),tags:to(e).map(o=>lr(o.textContent))}:null}function kn(e){return new Promise(t=>{if(!e.composing)return t();e.dom.addEventListener("compositionend",()=>setTimeout(()=>t(kn(e)),0),{once:!0})})}function mr({view:e,source:t=null,ready:o=Promise.resolve(),isAdopter:n=()=>!0,idle:r=()=>kn(e),requestCheckpoint:s=()=>{},notice:i=()=>{},snapshot:c=()=>null,mergeTagless:a=!1,writerReady:l=()=>Promise.resolve(),adopted:m=()=>{},hold:x=mo,release:d=ho,holdMs:S=yn,doc:_=document}){let z=t?t.article.innerHTML:null,I=t?t.article:null,g=new Map,v=P=>{let j=P.getAttribute("data-rev");if(!j)return;let u=g.get(j)??[];g.delete(j),g.set(j,u),u.push(P),u.length>10&&u.shift(),g.size>20&&g.delete(g.keys().next().value)};I&&v(I);let M=Promise.resolve(),y=!1,E,H=new Promise(P=>E=P);async function h(){let P,j=new Promise(u=>{P=setTimeout(()=>u("timeout"),S)});try{return await Promise.race([Promise.resolve(o).then(()=>r()).then(()=>"ready"),H.then(()=>"disposed"),j])}finally{clearTimeout(P)}}function N(P,j,u,C){let{HyperMorph:F}=go(),L=eo(u,j,C,{doc:_,merge3:F.merge3,mergeJson:F.mergeJson}),T=L.conflicts.filter(R=>R.kind==="text"||R.kind==="field"),f=T.length?c():null,O=mn(P,L.items,j),p=O&&hn(e.state,O);if(!p)return null;e.dispatch(p),e.dispatch(rt.closeHistory(e.state.tr));let k={edited:O.edited.size,created:O.created.size,deleted:O.deleted.length,moved:O.reordered},{displaced:D}=p.getMeta(Vt);return Object.keys(D).length&&(k.displaced=D),T.length&&(k.conflicts=T),f&&(k.copy=f),k}async function b(P){if(a&&!P.tags.length)return w(P);let j=Qt(P.article,P.tags);if(j.kind==="unbased"&&console.warn("page: the article and its data changed together; kept the data"),j.kind!=="adopt")return Fe;if(!n())return ur;x();try{if(await It(),y)return Ze;if(!n())return et;let u=await h();if(u==="timeout"&&console.warn("page: gave up waiting for the editor; the hand edit was not adopted"),u==="disposed"||y)return Ze;if(u!=="ready")return fr;if(!n())return et;let C=Ne(e.state.doc),F=N(C,Xe(C,_),j.baseItems,j.parsed);return F?(m(j.A),bn(F)):Fe}finally{d()}}async function w(P){let j=P.article.getAttribute("data-rev"),u=j&&g.get(j)||[],C=u.at(-1)??I;if(u.slice(0,-1).some(F=>F.innerHTML===P.article.innerHTML)||(v(P.article),I=P.article,!C)||C.outerHTML===P.article.outerHTML)return Fe;x();try{if(await It(),y)return Ze;if(!n())return et;if(await l(),y)return Ze;if(!n())return et;if(await h()==="disposed"||y)return Ze;if(!n())return et;let L=Ne(e.state.doc),T=Xe(L,_),f=new Map(T.map(k=>[k.id,k])),O=k=>pe(k,{seed:k.getAttribute("data-rev")??"",known:f}),p=N(L,T,O(C),O(P.article));return p?bn(p):Fe}finally{d()}}async function Y(P){try{return await b(P)}catch(j){return console.error("page: adoption failed",j),dr}}let B=null;function q(P,j=!1){return M=M.then(()=>Y(P)).then(u=>(j&&(B=u),!u.ok||u.outcome!=="adopted"||(s(),i(u.counts),_.dispatchEvent(new CustomEvent("clay:page-adopted",{detail:u.counts}))),u)),M}function $(P){let j=P.detail?.html;if(y||typeof j!="string")return;let u=pr(new DOMParser().parseFromString(j,"text/html"));!u||u.article.innerHTML===z||(z=u.article.innerHTML,q(u))}return _.addEventListener("clay:sync-applied",$),t&&q(t,!0),{idle:async()=>(await M,B),saved(P){if(!a||typeof P!="string")return;let j=new DOMParser().parseFromString(P,"text/html").querySelector(xt);j&&(v(j),I=j)},dispose(){y=!0,E(),_.removeEventListener("clay:sync-applied",$)}}}var Ye=class extends Error{constructor(t){super(t),this.name="YMigrationError",this.code="invalid-source"}},X=e=>{throw new Ye(e)},tt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),_e=e=>JSON.parse(W(e));function hr(e){(!Array.isArray(e)||!e.length)&&X("Expected at least one hybrid page value");for(let t of e){(!tt(t)||!tt(t.blocks)||Object.keys(t).some(o=>o!=="blocks"&&o!=="deleted"))&&X("Expected a hybrid page value with blocks and optional deleted ids"),t.deleted!=null&&!tt(t.deleted)&&X("Invalid hybrid page tombstones");for(let[o,n]of Object.entries(t.blocks))!t.deleted?.[o]&&(!o||o==="__proto__"||!tt(n))&&X(`Invalid hybrid page block: ${o}`),!t.deleted?.[o]&&/^~|~\d+$/.test(o)&&X(`Reserved hybrid page block id: ${o}`)}return at(e)}var gr=(e,t)=>{let o;try{o=At(V,e)}catch{return X(`Invalid mark key on block: ${t}`)}return st([...o].sort((n,r)=>n.type.rank-r.type.rank))},vn=(e,t)=>{let o=De(e.m,e.c.length);o||X(`Invalid mark runs on block: ${t}`);for(let n=0;n<o.length;n++){let r=o[n];typeof r!="string"&&X(`Invalid mark key on block: ${t}`),r.startsWith("@")&&(r!==Le||e.c[n]!==ct)&&X(`Unsupported inline atom on block: ${t}`),e.t==="code_block"&&r&&X(`Unsupported formatting in code block: ${t}`),r.startsWith("@")||(o[n]=gr(r,t))}return o};function br(e,t,o){let n={t:t.t,pos:o};for(let r of Object.keys(t))r==="t"||r==="pos"||r==="c"||r==="m"||(n[r]=_e(t[r]));if(t.c!=null&&typeof t.c!="string"&&X(`Invalid text on block: ${e}`),n.c=t.c??"",typeof t.c=="string"&&t.m!=null){let r=vn(t,e);r.some(Boolean)&&(n.m=xe(r))}else t.m!=null&&X(`Mark runs require flat text on block: ${e}`);return n}function yr(e,t,o){let n=Object.hasOwn(Oe,t.t);!n&&(typeof t.t!="string"||!t.t||t.t==="opaque_block")&&X(`Unsupported hybrid block type: ${t.t}`);let r=String(o+1).padStart(8,"0");if(!n)return br(e,t,r);let s=V.nodes[t.t],i=ee(s),c=new Set(["t","pos","c","m",...i,...t.t==="table"?["rows"]:[]]),a={t:t.t,pos:r};for(let d of Object.keys(t))c.has(d)||(a[d]=_e(t[d]));for(let d of i){let S=t[d]===void 0?ae(s,d):t[d];W(S)!==W(ae(s,d))&&(a[d]=_e(S))}if(t.t==="table"&&(t.rows!==void 0&&!tt(t.rows)&&X(`Invalid table rows: ${e}`),a.rows=_e(t.rows??{})),!s.isTextblock)return t.c!=null&&t.c!==""&&!(Array.isArray(t.c)&&!t.c.length)&&X(`Unexpected text on block: ${e}`),t.m!=null&&!(Array.isArray(t.m)&&!t.m.length)&&X(`Unexpected marks on block: ${e}`),a;t.c!=null&&typeof t.c!="string"&&!Array.isArray(t.c)&&X(`Invalid text on block: ${e}`),typeof t.c=="string"&&t.m!=null?vn(t,e):t.m!=null&&X(`Mark runs require flat text on block: ${e}`);let l=it(V,e,t);l.check();let{c:m,m:x}=xo(l.content);return a.c=m,x.some(Boolean)&&(a.m=xe(x)),a}function kr(e,t){let o;try{let n=hr(e),r=Mo(n),s=Object.fromEntries(r.map((d,S)=>[d,yr(d,n[d],S)]));o=new lt,o.clientID=t;let i=Me(o),c=0;o.transact(()=>{for(let d of r){let S=s[d],{pos:_,c:z,m:I,...g}=S;if(S.t==="board"&&(delete g.columns,delete g.cards),i.attrs.set(d,new he(Object.entries(_e(g)))),S.t==="board"){for(let[M,y]of Object.entries(S.columns??{})){i.boardFields.set(Ie(d,"column",M,"alive"),!0);for(let E of["name","pos"])i.boardFields.set(Ie(d,"column",M,E),y[E]??"")}for(let[M,y]of Object.entries(S.cards??{})){i.boardFields.set(Ie(d,"card",M,"alive"),!0);for(let E of["title","owner","due"])y[E]!==void 0&&i.boardFields.set(Ie(d,"card",M,E),y[E]);i.boardFields.set(Ie(d,"card",M,"placement"),{columnId:y.col??"",pos:y.pos??""})}}if(i.flow.insertEmbed(i.flow.length,{b:d},{}),!z)continue;let v=0;for(let[M,y]of xe(De(I,z.length)??Array(z.length).fill(""))){if(y===Le)for(let E=0;E<M;E++)i.flow.insertEmbed(i.flow.length,{br:1},{});else{let E=Object.fromEntries(Object.entries(Yo(At(V,y))).map(([H,h])=>[`${H}~${t}-m${(c++).toString(36)}`,h&&typeof h=="object"?_e(h):h]));i.flow.insert(i.flow.length,z.slice(v,v+M),E)}v+=M}}},Ro);let a=Bo(Co(o)),l=Math.ceil(a.length/gt),x={v:1,g:0,y:l<=1?{seed:a}:Object.fromEntries(Array.from({length:l},(d,S)=>[`seed.${S}.${l}`,a.slice(S*gt,(S+1)*gt)]))};return W(kt(x))!==W(s)&&X("Hybrid page data cannot be represented without loss"),x}catch(n){throw n instanceof Ye?n:new Ye(`Cannot migrate hybrid page: ${n.message}`)}finally{o?.destroy()}}function vr(e){let t=parseInt(Io(`page-seed:v1:${W(e)}`).slice(0,8),16)>>>0;return t<2?t+2:t}function wr(e){let t=pe(e,{seed:e.getAttribute("data-rev")??""}),o={};return t.forEach((n,r)=>{let s=Xt(n,null);s.pos=String(r+1).padStart(8,"0"),o[n.id]=s}),kr([{blocks:o}],vr(o))}var wn=e=>e===!0?{}:e,On=(e,t)=>ue(wn(e),wn(t));function Mn(e,t,o,n){let r=e.attrs.get(t);r||(r=new he,e.attrs.set(t,r));let s=V.nodes[o];if(!s){r.get("t")!==o&&r.set("t",o);for(let[l,m]of Object.entries(n??{}))l==="t"||l==="pos"||ue(r.has(l)?r.get(l):void 0,m)||r.set(l,m);return}let i=o==="table"&&r.get("t")==="table"&&!Yt(t),c=o==="board"&&!Yt(t),a=i?qe(e.tableFields,t,Ko(e,t)):c?Ae(e.boardFields,t):null;r.get("t")!==o&&r.set("t",o);for(let l of ee(s)){if(i&&(l==="rows"||l==="cols")||c&&(l==="columns"||l==="cards"))continue;let m=r.has(l)?r.get(l):ae(s,l);ue(m,n[l])||r.set(l,n[l])}i&&Ft(e,t,a,n),c&&_t(e,t,a,n)}function xn(e,t){let o=new Map,n=t;for(let r=e.flow._start;r&&n>0;r=r.right){if(r.deleted)continue;let s=r.content;s instanceof ut?s.value===null?o.delete(s.key):o.set(s.key,s.value):r.countable&&(n-=r.length)}return o}function Or(e){let t=new Set;for(let[n,r]of e)we(n)&&r&&t.add(n.split("!")[0]);let o=[];for(let[n,r]of e)!we(n)&&r!==null&&r!==void 0&&!t.has(n)&&V.marks[fe(n)]&&o.push([n,r]);return o}function In(e){let t=new Set;for(let[n,r]of e)we(n)&&r&&t.add(n.split("!")[0]);let o=[];for(let[n,r]of e)!we(n)&&r!==null&&r!==void 0&&!t.has(n)&&!V.marks[fe(n)]&&o.push([n,r]);return o}function An(e,t={}){let o={},n=!1;for(let[r,s]of e)(we(r)||V.marks[fe(r)])&&(o[r]=s);for(let[r,s]of In(e))n=!0,t[fe(r)]!==void 0&&(o[r]=s);return{attrs:o,opaque:n}}function xr(e,t,o){let n=le(e),r={},s=Or(t),i=new Set;for(let[a,l]of s){let m=fe(a),x=o[m];x!==void 0&&On(x,l)?i.add(m):r[`${a}!${n}`]=!0}for(let[a,l]of In(t)){let m=fe(a);o[m]!==void 0&&On(o[m],l)&&i.add(m)}for(let[a,l]of Object.entries(o))i.has(a)||(r[`${a}~${le(e)}`]=l);let c=An(t,o);if(!(!Object.keys(r).length&&!c.opaque))return{...c.attrs,...r}}var oo=2e3;function Sr(e){let t=[],o=[],n=0;for(let r=0;r<e.length;r++)if(o.push(e[r]),n+=1,n>=oo&&r+1<e.length){let s=e[r];if(s.k==="c"&&He(s.ch.charCodeAt(0)))continue;t.push(o),o=[],n=0}return o.length&&t.push(o),t}function St(e,t,o,n=s=>s(),r=null){let s=t;for(let i of Sr(o))n(()=>{s+=Mr(e,s,i,r)});return s-t}var Er=(e,t,o)=>{if(!o||!o.length)return null;let n=t,r=e.flow._start;for(;r&&n>0;){if(!r.deleted&&r.countable){if(n<r.length)return null;n-=r.length}r=r.right}for(;r&&(r.deleted||!r.countable);r=r.right)if(r.deleted&&o.some(s=>s.client===r.id.client&&s.clock>=r.id.clock&&s.clock<r.id.clock+r.length))return r;return null},Sn=(e,t,o,n)=>{let r=Er(e,t,o);if(!r)return n();r.deleted=!1;try{return n()}finally{r.deleted=!0,e.flow._searchMarker&&(e.flow._searchMarker.length=0)}};function Mr(e,t,o,n=null){let r=t,s="",i=null,c=null,a=()=>{if(!s)return;let m=xr(e,xn(e,r),c??{});Sn(e,r,n,()=>e.flow.insert(r,s,m)),r+=s.length,s=""},l=m=>{let x=An(xn(e,r)).attrs;Sn(e,r,n,()=>e.flow.insertEmbed(r,m,x)),r+=1};for(let m of o)m.k==="c"?(i!==null&&m.mk!==i&&a(),i=m.mk,c=m.ma,s+=m.ch):m.k==="h"?(a(),i=null,l({br:1})):(a(),i=null,l({b:m.id}),Mn(e,m.id,m.t,m.attrs));return a(),r-t}var Ir=(e,t,o,n)=>{let r=0;for(let s=e.flow._start;s&&r<n;s=s.right){if(s.deleted||!s.countable)continue;let i=r;if(r+=s.length,r<=o||s.content instanceof ce&&s.content.embed?.b!==void 0)continue;let c=Math.max(0,o-i),a=Math.min(s.length,n-i);a<=c||e.gone.set(Jo(s.id.client,s.id.clock+c,t.operationId),{length:a-c,actor:e.ydoc.clientID,sv:t.sv})}};function En(e,t,o,n=null){for(let r=o.length-1;r>=0;r--){let[s,i]=o[r];if(i<=s)continue;let c=t.physicalRanges(s,i);for(let a=c.length-1;a>=0;a--){let[l,m]=c[a];m<=l||(n&&Ir(e,n,l,m),e.flow.delete(l,m-l))}}}function Ar(e,t,o){let n=!1;for(let r=e.flow._start;r;r=r.right){let s=pt(r.id);if(s===t){n=!0;continue}if(!n)continue;let i=r.content instanceof ce?r.content.embed:null;if(i&&i.b!==void 0&&i.b!==o)return s}return null}function no(e,t,o,n,r=null){let{pd:s,map:i,bt:c}=e,a=b=>r===null||r[b],l=0;for(;l<o.length&&l<n.length&&Ge(o[l],n[l])&&a(l);)l++;let m=0;for(;m<o.length-l&&m<n.length-l&&Ge(o[o.length-1-m],n[n.length-1-m])&&a(o.length-1-m);)m++;let x=b=>b&&b.k==="c"?b.ch.charCodeAt(0):-1;l>0&&He(x(o[l-1]))&&(mt(x(o[l]))||mt(x(n[l])))&&l--,m>0&&mt(x(o[o.length-m]))&&(He(x(o[o.length-m-1]))||He(x(n[n.length-m-1])))&&m--;let d=o.slice(l,o.length-m),S=n.slice(l,n.length-m),_=t+l,z=_+d.length,I=d.filter(b=>b.k==="b").map(b=>b.id).join(",");if(!(d.some(b=>b.k==="b")&&I===S.filter(b=>b.k==="b").map(b=>b.id).join(","))){let b=ht(s.origins);try{for(let $ of d){if($.k!=="b"||!$.brk)continue;let P=b.resolve($.brk);b.boundaryOf(P)||e.tx(()=>b.recordBoundary(P,{blockId:$.id,kind:"removed"}))}}finally{b.dispose()}let w=new Set;d.forEach(($,P)=>{if($.k!=="b"||!$.brk)return;let j=_+P,u=j+1;for(;u<c.length&&c[u].k!=="b";)u++;let C=u<=z&&u!==j+1,F=u<c.length?c[u].brk:null;C&&(e.tx(()=>s.gone.set(Ue(pt($.brk),e.operationId),{blockId:$.id,end:F?pt(F):null,sv:e.sv})),w.add(j))});let Y=[],B=_;for(let $=_;$<z;$++)w.has($)&&($>B&&Y.push([B,$]),B=$+1);z>B&&Y.push([B,z]),e.tx(()=>En(s,i,Y,d.some($=>$.k==="b")?null:e));let q=new Set(S.filter($=>$.k==="b").map($=>$.id));for(let $ of d)if(!($.k!=="b"||!$.brk||q.has($.id)))for(let P of e.copies.get($.id)??[]){let j=Ue(P,e.operationId);s.gone.has(j)||e.tx(()=>s.gone.set(j,{blockId:$.id,end:Ar(s,P,$.id),sv:e.sv}))}S.length&&St(s,i.toPhysical(_,"before"),S,e.tx,e.fences);return}let v=[],M=[],y=[],E=_,H=0,h=0;for(;H<d.length||h<S.length;){let b=H;for(;b<d.length&&d[b].k!=="b";)b++;let w=h;for(;w<S.length&&S[w].k!=="b";)w++;let Y=d.slice(H,b),B=S.slice(h,w);if(Y.length&&v.push([E,E+Y.length]),B.length&&M.push({at:E,toks:B}),E+=Y.length,b<d.length&&(y.push([d[b],S[w]]),E+=1),H=b+(b<d.length?1:0),h=w+(w<S.length?1:0),b>=d.length&&w>=S.length)break}let N=[...v.map(b=>({at:b[0],d:b})),...M.map(b=>({at:b.at,i:b}))].sort((b,w)=>w.at-b.at||(b.d?-1:1));for(let b of N)b.d?e.tx(()=>En(s,i,[b.d],e)):St(s,i.toPhysical(b.at,"before"),b.i.toks,e.tx,e.fences);for(let[b,w]of y)e.tx(()=>{if(!V.nodes[w.t])return;let Y=e.recovered.get(b.id);if(Y){b.t!==w.t&&s.gone.set(Je(Y,"t"),w.t);for(let $ of ee(V.nodes[w.t]))ue(b.attrs[$],w.attrs[$])||s.gone.set(Je(Y,$),w.attrs[$]);return}let B=b.id,q=s.attrs.get(B);if(q){let $=b.t==="table"&&w.t==="table"&&q.get("t")==="table",P=w.t==="board",j=P?b.t==="board"&&q.get("t")==="board"?b.attrs:Ae(s.boardFields,B):null;b.t!==w.t&&q.set("t",w.t);for(let u of ee(V.nodes[w.t])){if($&&(u==="rows"||u==="cols")||P&&(u==="columns"||u==="cards"))continue;let C=q.has(u)?q.get(u):ae(V.nodes[w.t],u);ue(C,w.attrs[u])||q.set(u,w.attrs[u])}$&&Ft(s,B,b.attrs,w.attrs),P&&_t(s,B,j,w.attrs)}else Mn(s,B,w.t,w.attrs)})}function ro(e,t,o,n,r,s){let{pd:i,map:c}=e,a=`${n}~${le(i)}`,l=le(i),m=t;for(;m<o;){if(s[m].k!=="c"){m++;continue}let x=m;for(;x<o&&s[x].k==="c";)x++;let d=c.physicalRanges(m,x);if(r!==null)for(let[S,_]of d)i.flow.format(S,_-S,{[a]:r});else{let S=0;for(let _ of i.flow.toDelta()){let z=typeof _.insert=="string"?_.insert.length:1;for(let[I,g]of d){if(S>=g)break;let v=Math.max(S,I),M=Math.min(S+z,g);if(M>v&&_.attributes){let y={};for(let[E,H]of Object.entries(_.attributes))fe(E)===n&&!we(E)&&H!==null&&(y[`${E}!${l}`]=!0);Object.keys(y).length&&i.flow.format(v,M-v,y)}}S+=z}}m=x}}var{AddMarkStep:Cn,RemoveMarkStep:Cr,AttrStep:Tr,ReplaceStep:$r,Mapping:Et}=ko,Tn=(e,t,o)=>{let n=e.resolve(t),r=e.resolve(o);return[n.depth&&n.node(1).type.name==="table"?n.before(1):t,r.depth&&r.node(1).type.name==="table"?r.after(1):o]},jr=(e,t,o)=>{let n=!1;return e.nodesBetween(t,o,r=>(r.type.name==="table"&&(n=!0),!n&&r.type.name!=="table")),n};function $n(e,t,o,n,r=null,s=!0,i=null,{join:c=!1,open:a=!1}={}){let l=()=>{if(i){let p=i;i=null,p()}},m=[],x=[],d=[];for(let p of t)p.steps.forEach((k,D)=>{m.push(k),x.push(p.docs[D]),d.push(k.getMap())});if(!m.length)return;let S=new Et(d),_=[...ft(dt(e.ydoc)).entries()].sort((p,k)=>p[0]-k[0]),z=le(e),I=x[0],g=t[t.length-1].doc,v=o.visible.length===0&&I.childCount===1&&I.firstChild.type.name==="paragraph"?[{id:I.firstChild.attrs.id,implicit:!0,t:"paragraph",len:0}]:o.visible,M=new Map,y=[];{let p=0;v.forEach(k=>{k.implicit&&y.push({tok:p,id:k.id,t:k.t}),p+=k.len})}y.sort((p,k)=>k.tok-p.tok);for(let p of y)p.alias=_o(e),M.set(p.id,p.alias);let E=M.size?o.holes.map(p=>({at:p.at+y.filter(k=>k.tok<p.at).length,len:p.len})):o.holes,H=Ht(o.tokens+M.size,E,e.flow.length+M.size),h=[],N=[];m.forEach((p,k)=>{let D=p instanceof Cn||p instanceof Cr;if(D&&!jr(x[k],p.from,p.to)){N.push({i:k,step:p});return}let R=new Et(d.slice(0,k)).invert(),K=new Et(d.slice(k+1)),A=[];p instanceof Tr?A.push([p.pos,p.pos+1,p.pos,p.pos+1]):D?A.push([p.from,p.to,p.from,p.to]):p.getMap().forEach((J,U,Q,oe)=>A.push([J,U,Q,oe]));for(let[J,U,Q,oe]of A){let[se,G]=Tn(I,R.map(J,-1),R.map(U,1)),[Bn,Ln]=Tn(g,K.map(Q,-1),K.map(oe,1));h.push({oa:se,ob:G,na:Bn,nb:Ln})}}),h.sort((p,k)=>p.oa-k.oa||p.na-k.na);let b=[];for(let p of h){let k=b[b.length-1];k&&(p.oa<=k.ob||p.na<=k.nb)?(k.ob=Math.max(k.ob,p.ob),k.nb=Math.max(k.nb,p.nb)):b.push({...p})}let w=!y.length&&!N.length&&m.every(p=>p instanceof $r)&&t.every(Eo),Y=w?null:zt(I,M,v),B=w?null:zt(g,M,v),q=w?[]:Dt(I,M,v),$=w?[]:Dt(g,M,v),P=w?b.map(p=>({r:p,old:Kt(I,p.oa,p.ob),next:Kt(g,p.na,p.nb)})):null,j=w?P.reduce((p,k)=>p+k.next.end-k.next.start,0):b.reduce((p,k)=>p+(B[k.nb]-B[k.na]),0),u=j>oo,C=u?p=>e.ydoc.transact(k=>{k.meta.set(Ke,s),l(),p()},re):p=>p(),F={pd:e,map:H,bt:q,tx:C,copies:o.copies,fences:o.fences,sv:_,operationId:z,recovered:new Map(o.visible.filter(p=>p.recovered).map(p=>[p.id,p.sourceKey]))},L=p=>p.filter(k=>k.k==="b").map(k=>`${k.id}|${k.t}|${JSON.stringify(k.attrs)}`).join(`
2
- `),T=!w&&(N.length>0||L(q)!==L($)),f=()=>{for(let D of y)St(e,yt(o.holes,D.tok),[{k:"b",id:D.alias,t:D.t,attrs:Object.fromEntries(ee(V.nodes[D.t]).map(R=>[R,ae(V.nodes[D.t],R)]))}],C);for(let D=b.length-1;D>=0;D--)if(w){let{r:R,old:K,next:A}=P[D],J=K.tokens.map((U,Q)=>{let oe=S.mapResult(R.oa+Q,1),se=S.mapResult(R.oa+Q+1,-1),G=oe.pos-R.na;return!oe.deleted&&!se.deleted&&se.pos===oe.pos+1&&G>=0&&G<A.tokens.length&&Ge(U,A.tokens[G])});no(F,K.start,K.tokens,A.tokens,J)}else{let R=b[D],K=Y[R.oa],A=Y[R.ob];no(F,K,q.slice(K,A),$.slice(B[R.na],B[R.nb]))}let p=N.length?Z(e):null,k=p?{...F,map:Ht(p.tokens,p.holes,e.flow.length)}:null;for(let{i:D,step:R}of N){let K=new Et(d.slice(D+1)),A=B[K.map(R.from,1)],J=B[K.map(R.to,-1)];if(J<=A)continue;let U=R.mark.type.name,Q=R instanceof Cn?R.mark.attrs&&Object.keys(R.mark.attrs).length?{...R.mark.attrs}:!0:null;if(vo(R.mark)){if(Q===null)continue;let oe=wo(R.mark.attrs.entries);C(()=>{for(let[se,G]of Object.entries(oe))ro(k,A,J,se,G,$)});continue}C(()=>ro(k,A,J,U,Q,$))}};c||r?.stopCapturing();let O=r?.captureTimeout;r&&(r.captureTimeout=1/0);try{u?f():e.ydoc.transact(p=>{p.meta.set(Ke,s),l(),f()},re)}finally{r&&(r.captureTimeout=O),a||r?.stopCapturing()}n.groups++,n.lastGroup={chunked:u,structural:T,regional:w,span:j}}var de=e=>({status:"refused",code:e}),jn=e=>{if(!e)return"";let t=[];for(let o of Object.keys(e).sort())t.push(`${o}=${JSON.stringify(e[o])}`);return t.join(`
3
- `)},Rr=(e,t,o)=>{let n=o?o.state.doc:null,s=n&&n.childCount===t.visible.length&&t.visible.every((c,a)=>n.child(a).attrs.id===c.id)?n:Te(e,t),i=[];return s.forEach(c=>{c.attrs.id===null||c.attrs.id===void 0||i.push({id:c.attrs.id,parent:c.attrs.parent??null,t:c.type.name})}),i},Pr=(e,t)=>{let o=[],n=e.get(t)?.parent??null,r=0;for(;n!=null&&r++<=e.size;)o.push(n),n=e.get(n)?.parent??null;return o},Pn=(e,t,o)=>Pr(e,o).includes(t),so=(e,t,o)=>t===o||Pn(e,o,t),io=(e,t,o,n,r)=>{if(t?.recovered){let i=Je(t.sourceKey,n);(e.gone.has(i)?e.gone.get(i):t.fields?.[n]??null)!==r&&e.gone.set(i,r);return}let s=e.attrs.get(o);s||(s=new he,e.attrs.set(o,s)),s.get(n)!==r&&s.set(n,r)},Mt=(e,t,o,n)=>io(e,t,o,"parent",n),Fr=8,Rn={indent:(e,t)=>t.t==="list_item"&&Number.isInteger(e)&&e>=0&&e<=Fr,open:(e,t)=>t.t==="toggle"&&typeof e=="boolean",parent:(e,t,o)=>e===null||typeof e=="string"&&o.get(e)?.t==="toggle"&&!so(o,e,t.id)},_r=(e,t)=>{if(e?.attrs===void 0)return[];if(!e.attrs||typeof e.attrs!="object"||Array.isArray(e.attrs))return null;let o=[];for(let[n,r]of Object.entries(e.attrs)){let s=t.get(n);if(!s||!r||typeof r!="object"||Array.isArray(r))return null;for(let[i,c]of Object.entries(r)){if(!Rn[i]||!Rn[i](c,s,t))return null;o.push({id:n,field:i,value:c})}}return o},Yr=(e,t)=>{let o=Rt(e.flow,0,e.flow.length),n=[],r=0;for(let s of e.flow.toDelta()){let i=s.attributes;if(typeof s.insert=="string")for(let c=0;c<s.insert.length;c++)n.push({ch:s.insert[c],attrs:i,source:t.resolve(o[r++])});else n.push({embed:s.insert,attrs:i,source:t.resolve(o[r++])})}if(r!==o.length)throw new Error(`The flow delta has ${r} units but the document has ${o.length}`);return n},Nr=(e,t,o)=>{let n=new Map;for(let s of t.visible)o.has(s.id)&&s.brk&&n.set(ge(s.brk),s.id);for(let s of o)for(let i of t.copies.get(s)??[])n.set(i,s);let r=[];for(let s=e.flow._start;s;s=s.right){if(s.deleted||!(s.content instanceof ce))continue;let i=s.content.embed?.b;if(i===void 0||n.get(ge(s.id))!==i)continue;let c=null;for(let a=s.right;a;a=a.right){if(a.deleted||!(a.content instanceof ce))continue;let l=a.content.embed?.b;if(!(l===void 0||l===i)){c=ge(a.id);break}}r.push({key:ge(s.id),blockId:i,end:c})}return r};function co({pd:e,view:t,um:o,origins:n,render:r},s={}){let i=Array.isArray(s?.ids)?[...new Set(s.ids)]:[],c=s?.afterId===void 0?null:s.afterId,a=s?.parent!==void 0,l=Z(e,n),m=new Set(l.visible.filter(f=>f.opaque).map(f=>f.id)),x=Rr(e,l,t),d=new Map(x.map(f=>[f.id,f])),S=x.map(f=>f.id);if(!i.length)return de("missing-source");for(let f of i)if(!d.has(f))return de("missing-source");let _=_r(s,d);if(!_)return de("invalid-attrs");let z=_.filter(f=>f.field==="parent"),I=new Set(i.filter(f=>!i.some(O=>O!==f&&Pn(d,O,f)))),g=x.filter(f=>i.some(O=>so(d,f.id,O))),v=new Set(g.map(f=>f.id));if(g.some(f=>m.has(f.id))||_.some(f=>m.has(f.id)))return de("unsupported-format");let M=new Map(l.visible.map(f=>[f.id,f]));for(let f of g){let O=M.get(f.id);if(!O||O.implicit||!O.brk)return de("missing-source")}let y;if(a)y=s.parent??null;else{let f=new Set(g.filter(O=>I.has(O.id)).map(O=>O.parent));if(f.size!==1)return de("invalid-parent");y=[...f][0]}if(a&&y!==null){let f=d.get(y);if(!f||f.t!=="toggle")return de("invalid-parent");if(v.has(y))return de("cycle")}if(c!==null){if(typeof c!="string"||!d.has(c))return de("missing-destination");if(v.has(c))return de("cycle");if(d.get(c).parent!==y)return de("missing-destination")}let E=x.filter(f=>!v.has(f.id)),H=0;if(c===null){if(y!==null){let f=E.findIndex(p=>p.parent===y),O=E.findIndex(p=>p.id===y);H=f>=0?f:O<0?0:O+1}}else for(H=E.findIndex(f=>f.id===c)+1;H<E.length&&so(d,E[H].id,c);)H++;let h=[...E.slice(0,H),...g,...E.slice(H)],N=h.length===S.length&&h.every((f,O)=>f.id===S[O]),b=g.filter(f=>I.has(f.id)&&f.parent!==y),w=g.map(f=>f.id);if(N&&!b.length&&!_.length)return{status:"unchanged"};let Y=(()=>{let f=t?.state.selection;if(!(f instanceof ne.TextSelection))return null;let O=D=>{let R=t.state.doc.resolve(D);return R.depth?{id:R.node(1).attrs.id,offset:R.parentOffset}:null},p=O(f.anchor),k=O(f.head);return p&&k&&(v.has(p.id)||v.has(k.id))?{anchor:p,head:k}:null})(),B=()=>{if(!Y||!t)return;let f=({id:k,offset:D})=>{let R=null;return t.state.doc.forEach((K,A)=>{R===null&&K.attrs.id===k&&(R=A+1+Math.min(D,K.content.size))}),R},O=f(Y.anchor),p=f(Y.head);O!==null&&p!==null&&t.dispatch(t.state.tr.setSelection(ne.TextSelection.create(t.state.doc,O,p)).setMeta(ve,!0).setMeta("addToHistory",!1))};if(N)return o?.stopCapturing(),e.ydoc.transact(()=>{if(z.length)for(let f of z)Mt(e,M.get(f.id),f.id,f.value);else for(let f of b)Mt(e,M.get(f.id),f.id,y);for(let f of _)f.field!=="parent"&&io(e,M.get(f.id),f.id,f.field,f.value)},re),o?.stopCapturing(),r(),B(),{status:"moved",ids:w};let q=[...ft(dt(e.ydoc)).entries()].sort((f,O)=>f[0]-O[0]),$=le(e),P=Yr(e,n),j=Pt(l,e.flow.length),u=[],C=0;for(let f of l.visible){if(v.has(f.id)){let O=[];for(let[p,k]of j.physicalRanges(C,C+f.len))for(let D=p;D<k;D++)O.push(P[D]);u.push({seg:f,units:O})}C+=f.len}for(let f=0;f<u.length;f++){let O=u[f];if(O.seg.id!==w[f])throw new Error(`Captured ${O.seg.id} where ${w[f]} was expected`);if(!O.units.length||O.units[0].embed===void 0||O.units[0].embed.b!==O.seg.id)throw new Error(`The selected block ${O.seg.id} has no physical marker to copy`)}let F=Nr(e,l,v),L=Ce(e.gone),T=new Map;for(let f of g){let O=M.get(f.id);if(!O.recovered)continue;let p=l.removals.filter(R=>R.sourceKey===O.sourceKey),k=Xo(O.sourceKey,p,L),D=L.restores.find(R=>R.key===k?.key)?.baseline??{type:O.t,attrs:O.fields??{}};T.set(O.sourceKey,{covers:p.map(R=>R.key),baseline:JSON.parse(JSON.stringify(D))})}if(!F.length)throw new Error("The selected blocks have no live physical markers to retire");return o?.stopCapturing(),e.ydoc.transact(()=>{for(let A of F)e.gone.set(Ue(A.key,$),{blockId:A.blockId,end:A.end,sv:q});let f=Z(e,n),O=Pt(f,e.flow.length),p=f.visible.map(A=>A.id),k=0;if(H>0){let A=p.indexOf(E[H-1].id);k=A<0?0:A+1}let D=0;for(let A=0;A<k;A++)D+=f.visible[A].len;let R=O.toPhysical(D,"before"),K=[];for(let A of u){let J=R,U=null,Q=null,oe=()=>{U!==null&&(e.flow.insert(R,U,Q??void 0),R+=U.length,U=null)};for(let G of A.units)G.ch!==void 0?(U!==null&&jn(G.attrs)!==jn(Q)&&oe(),U===null&&(U="",Q=G.attrs),U+=G.ch):(oe(),e.flow.insertEmbed(R,G.embed,G.attrs),R+=1);oe();let se=Rt(e.flow,J,R);if(se.length!==A.units.length)throw new Error(`Copied ${A.seg.id} as ${se.length} units instead of ${A.units.length}`);for(let G=1;G<A.units.length;G++)K.push({dest:se[G],source:A.units[G].source});n.recordBoundary(se[0],A.seg.recovered?{blockId:A.seg.id,kind:"copy",recoveryOf:A.seg.sourceKey}:{blockId:A.seg.id,kind:"copy"}),A.seg.recovered&&e.gone.set(bt(A.seg.sourceKey,$),T.get(A.seg.sourceKey)),e.gone.set(Uo(ge(se[0])),!0)}if(K.length&&n.recordSpans(K),z.length)for(let A of z)Mt(e,M.get(A.id),A.id,A.value);else for(let A of b)Mt(e,M.get(A.id),A.id,y);for(let A of _)A.field!=="parent"&&io(e,M.get(A.id),A.id,A.field,A.value)},re),o?.stopCapturing(),r(),B(),{status:"moved",ids:w}}var ao=e=>{let t=[];return e.forEach(o=>t.push([o.type.name,JSON.stringify(Object.fromEntries(ee(o.type).map(n=>[n,o.attrs[n]]))),o.isTextblock||o.type.name==="table"?JSON.stringify(o.content.toJSON()):null])),JSON.stringify(t)};function Br(e,t){if(e.childCount!==t.childCount)return!1;for(let o=0;o<e.childCount;o++){let n=e.child(o),r=t.child(o);if(n.type!==r.type||ee(n.type).some(s=>!ue(n.attrs[s],r.attrs[s]))||(n.isTextblock||n.type.name==="table")&&!n.content.eq(r.content))return!1}return!0}var Lr=e=>{let t=[];return e.forEach((o,n)=>{o.type.name==="opaque_block"&&t.push([n,n+o.nodeSize])}),t},Dr=(e,t)=>{let o=typeof e.from=="number"?e.from:typeof e.pos=="number"?e.pos:null;if(o===null)return!1;let n=typeof e.to=="number"?e.to:o+1;return t.some(([r,s])=>o<s&&n>r)},ot=(e,t)=>{let o=e.resolve(t);return o.depth&&o.node(1).type.name==="table"?[o.before(1),o.after(1)]:null};function zr(e,t){let o=e.content.findDiffStart(t.content);if(o===null)return null;let{a:n,b:r}=e.content.findDiffEnd(t.content),s=o-Math.min(n,r);s>0&&(n+=s,r+=s);let i=(c,a)=>{let l=c.resolve(o);return l.parent.isTextblock&&l.sameParent(c.resolve(a))};return(ot(e,o)||ot(e,n))&&!(i(e,n)&&i(t,r))?(o=ot(e,o)?.[0]??o,n=ot(e,n)?.[1]??n,r=ot(t,r)?.[1]??r,{start:o,endA:n,endB:r,tables:!0}):{start:o,endA:n,endB:r}}function lo(e,t=null){let o=new Map;t?.forEach(a=>{a.attrs.id&&o.set(a.attrs.id,a)});let n=[];e.forEach(a=>n.push(a));let r=n.map(a=>({id:a.attrs.id,pos:o.get(a.attrs.id)?.attrs.pos??a.attrs.pos})),s=Be(r,"b"),i=!1,c=n.map((a,l)=>{let m=s[l]?.pos??r[l].pos,x=a.content;if(a.type.name==="table"){let d=[];a.forEach(I=>d.push(I));let S=d.map(I=>({id:I.attrs.id,pos:I.attrs.pos})),_=Be(S,"r"),z=d.map((I,g)=>{let v=_[g]?.pos??S[g].pos;return v===I.attrs.pos?I:I.type.create({...I.attrs,pos:v},I.content,I.marks)});z.some((I,g)=>I!==d[g])&&(x=z)}return m===a.attrs.pos&&x===a.content?a:(i=!0,a.type.create({...a.attrs,pos:m},x,a.marks))});return i?e.type.create(e.attrs,c):e}var _n=e=>{if(e&&typeof e=="object"){for(let t of Object.keys(e))_n(e[t]);Object.freeze(e)}return e},Fn=e=>_n(JSON.parse(JSON.stringify(e))),Kr=(e,t)=>{let o=Fo(t),n=0;for(let r=e.flow._start;r;r=r.right){if(r.id.client===o.client&&r.id.clock===o.clock)return r.deleted?n:n+r.length;!r.deleted&&r.countable&&(n+=r.length)}return n},Hr=(e,t)=>{let o=null;for(let n=e.flow._start;n;n=n.right)n.id.client!==e.ydoc.clientID||!(n.content instanceof ce)||n.content.embed?.b!==t||(!o||n.id.clock>o.clock)&&(o=n.id);return o};function Yn({pd:e,onNotice:t=()=>{},ownedTokens:o=[],authorToken:n=null,stats:r={groups:0,mismatch:0,renders:0,first:null},captureTimeout:s=500}){let i=null,c=Z(e),a=ht(e.origins),l=new To([e.flow,e.attrs,e.gone,e.tableFields,e.boardFields],{trackedOrigins:new Set([re]),captureTimeout:s,captureTransaction:u=>u.meta.get(Ke)!==!1,deleteFilter:u=>{if(u.parent!==e.flow||!(u.content instanceof ce))return!0;let C=a.resolve(u.id);return C.client!==u.id.client||C.clock!==u.id.clock||a.boundaryOf(u.id)?.kind!=="copy"}}),m=No(e,l,a,u=>Ce(u).textDeletes),x=new Set,d=new Set(n?[...o,n]:o),S=n?()=>{let u=qo(e.ydoc.clientID);e.origins.get(u)!==n&&e.origins.set(u,n)}:null,_=new Set,z=new Set,I=0,g=null,v=null,M=u=>{let C=new Set;for(let L of u.blocks)for(let T of L.runs){if(!T.displaced)continue;let f=Ve(T.source)?.client===e.ydoc.clientID;T.author&&(f||d.has(T.author))?C.add(T.author):f&&C.add(null)}if(!C.size)return null;let F=[...C].filter(Boolean).sort();return{kind:"recovered-change",source:u.source,revision:u.revision,blockId:u.blockId,author:F[0]??null,authors:F}},y=()=>{if(g&&g.version===I)return g.snapshot;let C=Nt(e,{index:a}).list.filter(T=>T.recoverable).map(T=>Fn(T)),F=Fn(C.map(T=>M(T)).filter(T=>T&&!_.has(`${T.source}\0${T.revision}`))),L=Object.freeze({recoverable:Object.freeze(C),notices:Object.freeze(F)});return g={version:I,snapshot:L},L},E=u=>Vo({recoverable:u.recoverable.map(C=>[C.source,C.revision]),notices:u.notices}),H=()=>{I++;let u=y();for(let F of u.notices){let L=`${F.source}\0${F.revision}`;x.has(L)||(x.add(L),t(F))}if(!z.size){v=null;return}let C=E(u);if(C!==v){v=C;for(let F of[...z])F(u)}},h=()=>(c=Z(e),H(),Te(e,c)),N=null,b=null,w=!1,Y=!1,B=(u=!1,C=null)=>{r.renders++;let F=N;N=null;let L=lo(C??h(),i.state.doc),T=zr(i.state.doc,L);if(!T)return;let f=i.state.tr.replace(T.start,T.endA,L.slice(T.start,T.endB)).setMeta(ve,!0).setMeta("addToHistory",!1);if(u&&f.setMeta("yundo",!0),F){let O=K=>K>=0&&c.holes.some(A=>K>=cn(c.holes,A.at)&&K<yt(c.holes,A.at)),p=(K,A)=>{let J=null;return f.doc.forEach((U,Q)=>{J===null&&U.attrs.id===K&&U.isTextblock&&(J=Q+1+Math.min(A,U.content.size))}),J},k=K=>{let A=Tt(K.right,e.ydoc);if(!A)return null;let J=ln(f.doc,c.holes,c.tokens,A.index,c.visible);if(!K.block)return J;let U=f.doc.resolve(J);if(U.depth&&U.node(1).attrs.id===K.block.id)return J;let Q=K.left?Tt(K.left,e.ydoc):null;return!O(A.index)&&!(Q&&O(Q.index-1))?J:p(K.block.id,K.block.offset)??J},D=k(F.anchor),R=k(F.head);D!==null&&R!==null&&f.setSelection(ne.TextSelection.create(f.doc,D,R))}else if(T.tables&&i.state.selection instanceof ne.TextSelection){let O=qt(i.state.doc,i.state.selection.anchor),p=qt(i.state.doc,i.state.selection.head),k=O&&Ut(f.doc,O),D=p&&Ut(f.doc,p);k!=null&&D!==null&&D!==void 0&&f.setSelection(ne.TextSelection.create(f.doc,k,D))}i.dispatch(f)},q=u=>{if(w&&!Y&&u.origin===re&&(l.stopCapturing(),w=!1),!i||u.origin===re||u.origin===l||N)return;let C=i.state.selection;if(!(C instanceof ne.TextSelection)||[C.$anchor,C.$head].some(L=>L.depth&&L.node(1).type.name==="table"))return;let F=L=>{let T=an(i.state.doc,c.holes,L.pos,c.visible);return{right:Ct(e.flow,T),left:T>0?Ct(e.flow,T,-1):null,block:L.depth?{id:L.node(1).attrs.id,offset:L.parentOffset}:null}};N={anchor:F(C.$anchor),head:F(C.$head)}},$=u=>{if(u.origin!==re&&(b=null,w=!1),!i){H();return}if(u.origin===re){N=null;return}B(u.origin===l)},P=(u,C)=>{let F=co({pd:e,view:i,um:l,origins:a,render:B},C);if(F.status!=="moved")return F.status==="refused"&&(r.moveRefusals=(r.moveRefusals??0)+1),F;let L=u.selection;if(L instanceof ne.TextSelection)return F;let T=i.state.doc,f=null,O=null;if(T.forEach((D,R)=>{C.ids.includes(D.attrs.id)&&(f===null&&(f=R),O=R+D.nodeSize)}),f===null)return F;let p=L instanceof ne.NodeSelection?ne.NodeSelection.create(T,f):L.anchor<=L.head?new Bt(T.resolve(f),T.resolve(O)):new Bt(T.resolve(O),T.resolve(f)),k=i.state.tr.setSelection(p).setMeta(ve,!0).setMeta("addToHistory",!1);return i.dispatch(u.scrolledIntoView?k.scrollIntoView():k),F},j=Qo({pd:e,um:l,origins:a,render:()=>i?B():h()});return e.ydoc.on("beforeTransaction",q),e.ydoc.on("afterTransaction",$),{pd:e,stats:r,render:B,um:l,board:j,attach(u){i=u,c=Z(e)},dispose(){e.ydoc.off("beforeTransaction",q),e.ydoc.off("afterTransaction",$),m(),a.dispose(),l.destroy(),z.clear(),i=null},get walk(){return c},get recoverable(){return y().recoverable},get notices(){return y().notices},subscribeRecovery(u){if(typeof u!="function")throw new TypeError("subscribeRecovery needs a listener");z.add(u);let C=y();return v===null&&(v=E(C)),u(C),()=>{z.delete(u)}},dismiss(u,C){_.add(`${u}\0${C}`),H()},dispatch(u){let C=u.getMeta(Wo);if(C)return P(u,C);let F=Lr(i.state.doc);if(F.length&&u.steps.some(K=>Dr(K,F)))return{status:"refused",code:"unsupported-format"};let{state:L,transactions:T}=i.state.applyTransaction(u),f=T.filter(K=>K.docChanged&&!K.getMeta(ve));if(i.updateState(L),!f.length){T.some(K=>K.selectionSet&&!K.getMeta(ve))&&(b=null,w&&(l.stopCapturing(),w=!1));return}c=Z(e);let O=T.every(K=>K.getMeta("addToHistory")!==!1),p=S;S=null;let k=O?en(f,i):null,D=w&&Zo(b,k);b=k,Y=D;try{$n(e,f,c,r,l,O,p,{join:D,open:k!==null})}finally{Y=!1}w=k!==null;let R=h();Br(R,i.state.doc)||(r.mismatch++,r.first??={before:ao(f[0].before),pm:ao(i.state.doc),y:ao(R)}),B(!1,R)},restore(u,C){let F=Z(e,a),L=Nt(e,{index:a,walked:F}).sources.get(u),T=F.visible.find(p=>p.sourceKey===u||p.brk&&ge(p.brk)===u);if(T)return{status:"resolved",id:T.id};if(!L||L.revision!==C)return{status:"stale",notice:y().notices.find(k=>k.source===u)??null};let f=`${Go}${u}`;l.stopCapturing();let O=null;if(e.ydoc.transact(()=>{e.gone.set(bt(u,le(e)),{covers:L.removals.map(p=>p.key),baseline:{type:L.type,attrs:JSON.parse(JSON.stringify(L.attrs))}}),e.flow.insertEmbed(Kr(e,u),{b:f}),O=Hr(e,f),a.recordBoundary(O,{blockId:f,kind:"restore",recoveryOf:u})},re),l.stopCapturing(),B(),!c.visible.some(p=>p.sourceKey===u&&p.id===f))throw new Error(`Restore did not project ${f}`);return{status:"restored",id:f}},moveBlocks(u){return co({pd:e,view:i,um:l,origins:a,render:B},u)},undo(){return l.undo()!==null},redo(){return l.redo()!==null}}}function qr({store:e,ydoc:t=new lt,onNotice:o=()=>{},ownedTokens:n=[],authorToken:r=null,setTimer:s=setTimeout,clearTimer:i=clearTimeout,compact:c,captureTimeout:a=500,checkpointWithin:l=()=>{},requestCheckpoint:m=null,registerUnsavedState:x=null,onStopped:d=()=>{}}){for(let[,Y]of bo(e.value.y))Ao(t,Lo(Y),jo);let S=Me(t),_=zo({store:e,ydoc:t,setTimer:s,clearTimer:i,compact:c,onStopped:d}),z={groups:0,mismatch:0,renders:0,first:null},I=Yn({pd:S,onNotice:o,ownedTokens:n,authorToken:r,stats:z,captureTimeout:a}),g=new Set,v=!1,M=!1,y=x?.({id:"page:live",isPending:()=>e.pending.length>0||_.reconcilePending,flush:b}),E=()=>{y?.changed(),!M&&(M=!0,Promise.resolve().then(()=>{if(M=!1,!v)for(let Y of[...g])Y.check()}))},H=e.onLocal(()=>{l(1500),E()}),h=e.onRebase(E),N=e.onConfirm(E);function b({timeoutMs:Y=1e4}={}){return v?Promise.resolve({ok:!1,code:"disposed"}):new Promise(B=>{let q=Date.now()+Y,$=!1,P=!1,j=!1,u=null,C={check:L,finish:F};function F(T){$||($=!0,g.delete(C),i(u),B(T))}function L(){if(!($||P||j)){P=!0;try{if(_.settle(),e.pending.length&&(l(0),e.pending.length))return;if(j=!0,!m){F({ok:!0});return}Promise.resolve().then(()=>{if(!$)return m({timeoutMs:Math.max(0,q-Date.now())})}).then(F,T=>F({ok:!1,code:"checkpoint-failed",message:T?.message||String(T)}))}catch(T){F({ok:!1,code:"flush-failed",message:T?.message||String(T)})}finally{P=!1}}}g.add(C),u=s(()=>F({ok:!1,code:"timeout"}),Y),L()})}return{ydoc:t,pd:S,provider:_,bridge:I,stats:z,flush:b,awareness:{generation:()=>Number.isSafeInteger(e.value?.g)&&e.value.g>=0?e.value.g:0,map:()=>({pd:S,w:I.walk})},doc:()=>lo(Te(S,Z(S))),attach:Y=>I.attach(Y),dispatch:Y=>I.dispatch(Y),moveBlocks:Y=>I.moveBlocks(Y),board:I.board,undo:()=>I.undo(),redo:()=>I.redo(),restore:(Y,B)=>I.restore(Y,B),get recoverable(){return I.recoverable},get notices(){return I.notices},subscribeRecovery:Y=>I.subscribeRecovery(Y),dismiss:(Y,B)=>I.dismiss(Y,B),dispose(){if(!v){v=!0,H(),h(),N(),y?.dispose();for(let Y of[...g])Y.finish({ok:!1,code:"disposed"});I.dispose(),_.dispose()}}}}var fo="Some text you typed was kept aside when its block moved or was removed.",Nn="page-recover-style",Ur=`
4
- .page-recover { position: fixed; right: 16px; bottom: 16px; z-index: 20; min-height: 36px; padding: 0 14px; font: inherit; font-size: 14px; color: var(--page-ink); background: var(--page-pop-bg); border: 1px solid var(--page-chrome-line-rest); border-radius: 999px; cursor: pointer; }
5
- .page-recover[hidden], .page-recover-panel[hidden] { display: none; }
6
- .page-recover-panel { position: fixed; right: 16px; bottom: 64px; z-index: 21; width: min(380px, calc(100vw - 32px)); max-height: 60vh; overflow-y: auto; color: var(--page-ink); background: var(--page-pop-bg); border: 1px solid var(--page-chrome-line-rest); border-radius: var(--page-chrome-radius); padding: 8px; box-sizing: border-box; }
7
- .page-recover-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 6px 8px; font-weight: 600; }
8
- .page-recover-note { margin: 0 6px 8px; font-size: 13px; opacity: .72; }
9
- .page-recover-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; min-height: 44px; padding: 8px 6px; border-top: 1px solid var(--page-chrome-line-rest); }
10
- .page-recover-row.is-target { outline: 2px solid var(--page-accent, currentColor); outline-offset: -2px; }
11
- .page-recover-meta { grid-column: 1; font-size: 12px; opacity: .72; }
12
- .page-recover-text { grid-column: 1; overflow-wrap: anywhere; }
13
- .page-recover-text mark { background: var(--page-mark-bg, rgba(255, 214, 102, .45)); color: inherit; border-radius: 2px; }
14
- .page-recover-row button, .page-recover-head button { grid-column: 2; grid-row: 1 / span 2; min-height: 36px; padding: 0 12px; font: inherit; font-size: 14px; color: inherit; background: transparent; border: 1px solid var(--page-chrome-line-rest); border-radius: var(--page-chrome-radius); cursor: pointer; }
15
- @media (max-width: 560px) {
16
- .page-recover { top: 12px; bottom: auto; min-height: 44px; }
17
- .page-recover-panel { left: 0; right: 0; bottom: 0; width: 100%; max-height: 70vh; border-radius: var(--page-chrome-radius) var(--page-chrome-radius) 0 0; }
18
- .page-recover-row button, .page-recover-head button { min-height: 44px; }
19
- }
20
- `,Jr={heading:"Heading",list_item:"List item",toggle:"Toggle",quote:"Quote",code_block:"Code",callout:"Callout",table:"Table",image:"Image"},uo=280,me=(e,t,o,n={})=>{let r=e.createElement(t);o&&(r.className=o);for(let[s,i]of Object.entries(n))r.setAttribute(s,i);return r};function Vr(e){if(e.getElementById(Nn))return;let t=e.createElement("style");t.id=Nn,t.textContent=Ur,e.head.append(t)}function Gr(e,t){let o=me(e,"div","page-recover-text"),n=0;for(let r of t.blocks){for(let s of r.runs){if(s.kind!=="text"||n>=uo)continue;let i=s.text.slice(0,uo-n);n+=i.length,o.append(s.displaced?Object.assign(e.createElement("mark"),{textContent:i}):e.createTextNode(i))}n<uo&&r!==t.blocks[t.blocks.length-1]&&o.append(e.createTextNode(" / "))}return o.textContent||(o.textContent="(no text)"),o}function Xr(e){let t=new Set;for(let o of e.blocks)for(let n of o.runs)n.displaced&&t.add(n.author??null);return[...t]}function Qr(e,t){let o=null;return e.state.doc.forEach((n,r)=>{o===null&&n.attrs.id===t&&(o=n.isTextblock?r+1:r)}),o===null?!1:(e.dispatch(e.state.tr.setSelection(ne.Selection.near(e.state.doc.resolve(o))).scrollIntoView()),e.focus(),!0)}function Wr({binding:e,mount:t,ownTokens:o=[],onRestored:n=()=>{},onStale:r=()=>{}}){let s=t.ownerDocument;Vr(s);let i=new Set(o.filter(Boolean)),c=me(s,"button","page-recover",{type:"button","aria-haspopup":"dialog","aria-expanded":"false"}),a=me(s,"div","page-recover-panel",{role:"dialog","aria-label":"Recover changes"});c.hidden=!0,a.hidden=!0,t.append(c,a);let l={recoverable:[],notices:[]},m=null,x="",d=y=>y.some(E=>i.has(E))?y.length>1?"You and others":"You":y.some(E=>E!==null)?"Another editor":"An earlier edit",S=()=>{a.hidden=!0,m=null,c.setAttribute("aria-expanded","false")},_=y=>{let E;try{E=e.restore(y.source,y.revision)}catch(H){return console.error("[clay] Restore failed:",H),tn("This change could not be restored.","error"),{status:"failed"}}return E.status==="restored"||E.status==="resolved"?n(E.id):E.status==="stale"&&r(E),E},z=()=>{a.replaceChildren();let y=me(s,"div","page-recover-head");y.append(s.createTextNode("Recover changes"));let E=me(s,"button","",{type:"button"});E.textContent="Close",E.addEventListener("click",()=>{S(),c.focus()}),y.append(E);let H=me(s,"p","page-recover-note");H.textContent="Text typed while its block was moved or removed. Restore puts it back as a new block.",a.append(y,H);for(let h of l.recoverable){let N=me(s,"div","page-recover-row",{"data-source":h.source});h.source===m&&N.classList.add("is-target");let b=me(s,"div","page-recover-meta");b.textContent=`${Jr[h.type]??"Paragraph"} \xB7 ${d(Xr(h))}`;let w=me(s,"button","",{type:"button"});w.textContent="Restore",w.addEventListener("click",()=>_(h)),N.append(b,Gr(s,h),w),a.append(N)}},I=(y=null)=>{if(!l.recoverable.length)return;m=y,a.hidden=!1,c.setAttribute("aria-expanded","true"),z();let E=[...a.querySelectorAll(".page-recover-row")];(E.find(h=>h.dataset.source===y)??E[0])?.querySelector("button")?.focus()},g=y=>{let E=y.map(H=>`${H.source}\0${H.revision}`).join(`
21
- `);if(E!==x){if(x=E,!y.length){Lt(fo);return}on(fo,"warning",{actions:[{label:"Review",onClick:()=>I(y[0].source)},{label:"Dismiss",onClick:()=>{for(let H of y)e.dismiss(H.source,H.revision)}}]})}},v=y=>{l=y;let E=y.recoverable.length;c.hidden=E===0,c.textContent=`Recover changes (${E})`,E?a.hidden||z():S(),g(y.notices)};c.addEventListener("click",()=>a.hidden?I():S()),a.addEventListener("keydown",y=>{y.key==="Escape"&&(y.stopPropagation(),S(),c.focus())});let M=e.subscribeRecovery(v);return{open:I,close:S,restore:_,get count(){return l.recoverable.length},destroy(){M(),Lt(fo),c.remove(),a.remove()}}}import("./page/editor-XUTB2HB2.js").catch(()=>null);export{yn as ADOPTION_TIMEOUT_MS,kt as blocksFromYValue,W as canon,Qt as classifyFile,qn as createFeatureLoader,Wr as createRecoverList,qr as createYPageBinding,Qr as focusBlock,Kn as heldSlashRange,zn as holdSlashRange,mr as installAdoption,eo as mergePageModels,Hn as observeDocumentTitle,Xe as readBack,gn as renderFromTags,wr as seedPageFromArticle,Dn as yValueOf};
@@ -1 +0,0 @@
1
- import{f as b,g as h,j as p,l as E,n as m}from"./c-OIBUTDXI.js";import{a as w}from"./c-4JZDZFF6.js";import{e as s,f as d,g as x}from"./c-VAK7SG37.js";import{b as o}from"./c-NUHP2XDB.js";var g={success:{edge:s.teal,icon:d.toastSuccess},error:{edge:s.ox,icon:d.toastWarning},warning:{edge:s.brass,icon:d.toastWarning},info:{edge:s.brass,icon:d.toastInfo}},$=d.toastClose,M=["opacity:0","transform:translateX(24px)"];function P(){return typeof matchMedia=="function"&&matchMedia("(prefers-reduced-motion: reduce)").matches?"none":"opacity .5s ease-in-out, transform .5s ease-in-out"}function A(){let e=document.querySelector("[data-clay-toasts]");if(e)return e;let t=p("div",["position:fixed","top:18px","right:18px","z-index:9999","display:flex","flex-direction:column","align-items:flex-end","gap:10px","width:min(330px, calc(100vw - 36px))","pointer-events:none"]);return t.setAttribute("data-clay-toasts",""),t.setAttribute("aria-live","polite"),document.body.append(t),t}function L(e,t,{detail:n="",actions:r=[]}={}){let c=g[t],i=E("div",["display:flex","align-items:flex-start",...x.toast,"width:100%",`border-inline-start:3px solid ${c.edge}`,"cursor:pointer","pointer-events:auto",`color-scheme:${w()}`,...M,`transition:${P()}`]);i.setAttribute("data-clay-toast",t);let l=p("div",["flex:1 1 auto","min-width:0","display:flex","flex-direction:column","gap:8px"]),f=p("div",["display:flex","align-items:flex-start","gap:8px"]),v=m("span",["display:inline-grid","flex:none","padding-top:1px",`color:${c.edge}`]);v.innerHTML=c.icon,b(v.firstElementChild,16);let k=m("span",["flex:1 1 auto","min-width:120px",...x.toastTitle,"overflow-wrap:anywhere"],e);if(f.append(v,k),l.append(f),n&&l.append(m("span",["display:block",`color:${s.muted}`,"overflow-wrap:anywhere"],n)),r.length){let y=p("div",["display:flex","flex-wrap:wrap","gap:8px"]);for(let{label:T,onClick:C}of r)y.append(h(T,{small:!0,variant:"quiet",onClick:C}));l.append(y)}return i.append(l),i}function D(e){let t=p("button",["flex:none","display:inline-grid","place-items:center",...x.toastClose,"cursor:pointer"]);t.type="button",t.setAttribute("aria-label","Dismiss"),t.title="Dismiss",t.innerHTML=$,b(t.firstElementChild,14);let n=r=>{o(t,"color",r?s.ink:s.muted),o(t,"background",r?s.sunk:"transparent")};return t.addEventListener("pointerenter",()=>n(!0)),t.addEventListener("pointerleave",()=>n(!1)),t.addEventListener("focus",()=>{n(!0),o(t,"outline",`2px solid ${s.brass}`),o(t,"outline-offset","1px")}),t.addEventListener("blur",()=>{n(!1),o(t,"outline","none")}),t.addEventListener("click",e),t}function S(e){A().append(e),setTimeout(()=>{o(e,"opacity","1"),o(e,"transform","none")},10)}function u(e,t){o(e,"opacity","0"),o(e,"transform","translateX(24px)"),setTimeout(()=>{e.remove(),t?.()},500)}function H(e,t="success"){let n=L(e,g[t]?t:"success");n.addEventListener("click",()=>u(n)),S(n),setTimeout(()=>u(n),6600)}var a=new Map;function B(e,t="warning",{detail:n="",actions:r=[]}={}){let c=a.get(e);c&&(u(c),a.delete(e));let i=L(e,g[t]?t:"warning",{detail:n,actions:r});o(i,"cursor","default");let l=D(f=>{f.stopPropagation(),u(i,()=>{a.get(e)===i&&a.delete(e)})});i.append(l),a.set(e,i),S(i)}function q(e){let t=a.get(e);t&&(a.delete(e),u(t))}var W=H;export{B as a,q as b,W as c};
@@ -1 +0,0 @@
1
- import{a as b,b as C,c as O,d as L,e as R,f as A,g as S,h as T,i as I}from"../c-2M73252O.js";import{a as l,b as u,c,d as f}from"../c-KKWLDOPM.js";import{a as d,b as E,c as m,d as p}from"../c-T4VO4OCB.js";import"../c-QIX5BJYN.js";import"../c-VKEDWYDF.js";import{a}from"../c-HT33EQRN.js";import"../c-IJUK2GPW.js";import{i as s}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var N=[d,R,A,b,l].join(", "),x=[E,S,C,u],o=null,n=null,i=!1,D=t=>{let e=t.parentNode||t;for(let q of x)q(e)};function r(){i=!0,!n&&(n=a.onAddElement({selectorFilter:N,require:"observed",pausable:!1,debounce:0},t=>{i&&t.forEach(({element:e})=>D(e))}))}function k(){i=!1,n&&(n(),n=null)}function h(){return o||(p(),I(),L(),f(),o={selector:N},s&&r(),o)}h();function w(t=document){return{enable(){for(let e of x)e(t);r()},quiesce(){i=!1},resume(){i=!0},dispose(){k(),m(),T(),O(),c()}}}function y(){return{id:"clay:controls",order:110,prepare(t={}){let e=w();return t.initial!==!0?e:{enable:()=>r(),quiesce:()=>e.quiesce(),resume:()=>e.resume(),dispose:()=>e.dispose()}}}}var F=h;export{w as controlsLease,F as default,h as init,h as install,y as modeParticipant};
@@ -1 +0,0 @@
1
- import{Q as e,g as i}from"../c-CJZSLMVQ.js";import"../c-GQ6F6IDK.js";import"../c-2SPVQSHC.js";import{a as p}from"../c-5VYOWDTI.js";import"../c-7VGZ7RU5.js";import"../c-4YSCRICO.js";import{a as f,b as m}from"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as d}from"../c-HT33EQRN.js";import"../c-B2ZXPOS3.js";import"../c-TQEMVJCS.js";import"../c-3IQRECYS.js";import"../c-AYVOREBE.js";import{c}from"../c-IJUK2GPW.js";import{i as a}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import{s as n,v as o}from"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";function y(){d.onAnyChange({debounce:0,omitChangeDetails:!0,require:"autosave"},()=>{i()&&e.noteActivity()})}function A(){document.addEventListener("input",t=>{t.target.closest(f)&&(t.isTrusted&&!o(n(t.target),"dirty")&&c(),i()&&e.noteActivity())},!0)}function g(){let t=v=>{if(!e.pending())return;let r=v.target;if(!r||typeof r.closest!="function")return;let s=r.closest("input, textarea, select, [contenteditable]");s&&(o(n(s),"dirty")||i()&&e.noteActivity())};document.addEventListener("input",t,!0),document.addEventListener("compositionupdate",t,!0)}var l=!1;function u(){l||document.documentElement.matches(m)&&a&&(l=!0,p(!0),y(),A(),g())}u();var C=u;function L(){return{id:"clay:autosave",order:20,prepare(t={}){return t.initial===!0?{enable(){},quiesce(){},resume(){},dispose(){}}:{enable:u,quiesce(){},resume(){},dispose(){}}}}}export{C as default,u as init,L as modeParticipant};
@@ -1 +0,0 @@
1
- import{a as s}from"../c-VKEDWYDF.js";import{q as u}from"../c-CJZSLMVQ.js";import"../c-GQ6F6IDK.js";import"../c-2SPVQSHC.js";import"../c-5VYOWDTI.js";import"../c-7VGZ7RU5.js";import"../c-4YSCRICO.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-HT33EQRN.js";import"../c-B2ZXPOS3.js";import"../c-TQEMVJCS.js";import"../c-3IQRECYS.js";import"../c-AYVOREBE.js";import"../c-IJUK2GPW.js";import{i as d}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import{b as a}from"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var c=()=>window.clay?.conflicts||null,o=!1,i=null,r=null;function e(n){o||(o=!0,m(),import("../c-Z4VRC7GU.js").then(t=>{i=t,t.start(n)},t=>{console.error("clayjs: the conflict notice could not be downloaded; it will try again on the next conflict",t),o=!1,l()}))}function l(){r||=new AbortController;let{signal:n}=r;document.addEventListener("clay:sync-conflicts-changed",p,{signal:n}),document.addEventListener("clay:save-conflict",g,{signal:n}),document.addEventListener("clay:document-upgraded",h,{signal:n}),document.addEventListener("clay:undo-kept",y,{signal:n})}function m(){r?.abort(),r=null}function p(n){c()?.size&&e(n)}function g(n){e(n)}function h(n){e(n)}function y(n){n?.detail?.ok===!0&&e(n)}var v="conflicts",E="undo",f=n=>a.local.get(n)?.count>0;function w(){f(E)&&e(null),f(v)&&import("../c-OIDRZKAF.js").then(n=>{!o&&n.pendingConflicts()>0&&e(null)},()=>{})}function b(){let n=(c()?.list?.()??[]).filter(t=>!t.claimedBy).map(t=>t.id);return n.length?n:u()?["save"]:[]}function x(){return{id:"clay:conflict-notice",order:960,prepare(n={}){return{enable(){n.initial!==!0&&!i&&!o&&l()},quiesce(){let t=b();if(t.length)throw Object.assign(new Error("clay.conflict-notice: a conflict here is still unresolved"),{code:"conflict",pending:t})},resume(){},dispose(){m(),o=!1,i?.stop?.(),i=null}}}}}s(()=>{d&&(c()?.size?e(null):(l(),w()))});export{x as conflictNoticeParticipant,x as modeParticipant};
@@ -1 +0,0 @@
1
- import{a as s,b as n,c as m,d as r}from"../c-AYVOREBE.js";import{h as l}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var e=null,u=0;async function p({fresh:f=!1}={}){let o=location.pathname,t=await r({fresh:f});if(location.pathname!==o||n(t)!==o&&(t=await r({fresh:!0}),location.pathname!==o||n(t)!==o))return e;let a=s(t);if(a==="failed"||a==="ok"&&!t.document)return e;let i=a==="ok"?t.document.writable:void 0,c=m(t);return c<u||(u=c,e=typeof i=="boolean"?i:null,l(e)),e}export{p as checkHostPermission};
@@ -1 +0,0 @@
1
- import{f as a,g as b,h as c,i as d,j as e,k as f,l as g,m as h,n as i,o as j,p as k,q as l,r as m,s as n}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{b as canEdit,g as commitModeFacts,a as isDraftMode,d as isEditMode,f as isOwner,e as mode,h as modeState,c as noteHostWritable,j as noteParticipantForget,k as peekModeParticipants,m as registerModeParticipant,n as siteVisibility,i as startsAtImport,l as takeModeParticipants};
@@ -1 +0,0 @@
1
- import{a,b,c,d}from"../c-4YSCRICO.js";import"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{c as createRecovery,a as noteRecoveryCapture,b as noteRecoverySettled,d as recovery};
@@ -1 +0,0 @@
1
- import{A as B,B as C,C as D,D as E,E as F,F as G,G as H,H as I,I as J,J as K,K as L,L as M,M as N,N as O,O as P,P as Q,Q as R,R as S,S as T,T as U,U as V,d as e,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m,m as n,n as o,o as p,p as q,q as r,r as s,s as t,t as u,u as v,v as w,w as x,x as y,y as z,z as A}from"../c-CJZSLMVQ.js";import"../c-GQ6F6IDK.js";import"../c-2SPVQSHC.js";import"../c-5VYOWDTI.js";import"../c-7VGZ7RU5.js";import"../c-4YSCRICO.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-HT33EQRN.js";import{b as c,c as d}from"../c-B2ZXPOS3.js";import"../c-TQEMVJCS.js";import"../c-3IQRECYS.js";import"../c-AYVOREBE.js";import"../c-IJUK2GPW.js";import"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{k as a,v as b}from"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{k as acceptedReceipt,a as addDocumentTransform,l as adoptEntryBaseline,g as autosaveIsSuspended,R as autosaveScheduler,K as baselineSettled,w as closeSavePermit,s as conflictResolvedBySync,L as currentPaintSignature,V as default,G as flushSave,B as getLastSavedBytes,z as getLastSavedContents,A as getLastSavedDirty,b as getPageContents,x as getUnsavedChanges,n as holdAllSaves,U as init,T as initHyperclaySaveButton,S as initSaveKeyboardShortcut,d as inspectSaveSize,r as isSaveConflicted,m as modeParticipant,v as openSavePermit,o as releaseAllSaves,P as releaseBootSettle,I as replacePageWith,f as resumeAutosave,t as saveGeneration,q as saveHoldReason,c as saveLimits,H as saveOverwritingConflict,E as savePage,F as savePageForce,J as savePageSoon,Q as savePageThrottled,j as saveSession,h as savesAdmitted,p as savesHeld,M as schedulePaintHeal,i as sessionParked,C as setLastSavedBaselines,D as setLastSavedContents,u as setSaveGeneration,y as setUnsavedChanges,O as styleAdoptionPending,N as styleAdoptionsSettled,e as suspendAutosave};
@@ -1 +0,0 @@
1
- import{d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t}from"../c-B2ZXPOS3.js";import"../c-TQEMVJCS.js";import"../c-3IQRECYS.js";import"../c-AYVOREBE.js";import"../c-IJUK2GPW.js";import"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{i as a,k as b,v as c}from"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{b as addDocumentTransform,p as buildSaveRequest,m as claimDocumentOperation,c as getPageContents,f as isSaveInProgress,k as mintSaveId,g as onSaveAccepted,h as onSaveAttempt,i as onSaveOutcome,a as onSnapshot,o as operationKind,n as releaseDocumentOperation,t as replacePageWith,l as resetSaveAttempts,r as saveCapturedHtml,s as saveConversion,j as saveFateIsUnknown,q as saveHtml,d as setSaveHeader,e as withKeepalive};
@@ -1 +0,0 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x}from"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{k as addDocumentTransform,d as attachCaptureArtifact,h as canonicalizeReceived,e as captureArtifact,u as captureBodyForSync,n as captureForComparison,p as captureForComparisonAndDirty,o as captureForDirtyCheck,r as captureForMerge,s as captureForSave,q as captureForSaveAndComparison,x as captureRecoveryPage,m as captureSaveClone,l as captureSnapshot,c as currentCaptureContext,a as currentCaptureId,v as getPageContents,i as onSnapshot,b as originalSnapshotNode,f as releaseCaptureArtifact,t as serializeForSync,w as serializeRecoveryClone,g as setCloneCanonicalizer,j as setSaveRenderer};
@@ -1 +0,0 @@
1
- import{a,b,c}from"../c-CJZSLMVQ.js";import"../c-GQ6F6IDK.js";import"../c-2SPVQSHC.js";import"../c-5VYOWDTI.js";import"../c-7VGZ7RU5.js";import"../c-4YSCRICO.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-HT33EQRN.js";import"../c-B2ZXPOS3.js";import"../c-TQEMVJCS.js";import"../c-3IQRECYS.js";import"../c-AYVOREBE.js";import"../c-IJUK2GPW.js";import"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{c as bytesUnsaved,b as hasUnsavedChanges,a as reloadAfterDiscard};