@panphora/clayjs 1.15.1 → 1.16.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 (506) hide show
  1. package/README.md +4 -5
  2. package/THIRD-PARTY-NOTICES.md +16 -0
  3. package/compat/highlight-11.9.0.min.js +1213 -0
  4. package/compat/highlight-LICENSE +29 -0
  5. package/compat/journal-assets.lock.json +22 -0
  6. package/compat/overtype-2.6.1.min.js +116 -0
  7. package/compat/overtype-LICENSE +21 -0
  8. package/dist/all.js +90 -0
  9. package/dist/clay-dom.js +84 -0
  10. package/dist/clay-events.js +103 -0
  11. package/dist/clay-internals.js +85 -0
  12. package/dist/clay-options.js +93 -0
  13. package/dist/clay-router.js +98 -0
  14. package/dist/clay-ui.js +95 -0
  15. package/dist/clay-utils.js +84 -0
  16. package/dist/clay.js +146 -0
  17. package/dist/clay.standalone.js +83090 -58706
  18. package/dist/m/attrs/add-from-T5LJXFFI.js +1 -0
  19. package/dist/m/attrs/onaftersave-OKSWEJQF.js +1 -0
  20. package/dist/m/attrs/refetch-on-save-NWPPXOCZ.js +1 -0
  21. package/dist/m/attrs/save-freeze-FUP4Q4X3.js +1 -0
  22. package/dist/m/c-2AZDZWCK.js +1 -0
  23. package/dist/m/c-2JL6E75N.js +1 -0
  24. package/dist/m/c-2M73252O.js +1 -0
  25. package/dist/m/c-2SPVQSHC.js +1 -0
  26. package/dist/m/c-33HUYEDI.js +1 -0
  27. package/dist/m/c-33JJ6CBX.js +2 -0
  28. package/dist/m/c-35NBGMZB.js +1 -0
  29. package/dist/m/c-3GJ4SDE2.js +1 -0
  30. package/dist/m/c-3IQRECYS.js +1 -0
  31. package/dist/m/c-3OWDMNJR.js +2 -0
  32. package/dist/m/c-46XYM55L.js +1 -0
  33. package/dist/m/c-4B6H4G5V.js +1 -0
  34. package/dist/m/c-4DRMS4QG.js +9 -0
  35. package/dist/m/c-4FFHZM32.js +1 -0
  36. package/dist/m/c-4JZDZFF6.js +1 -0
  37. package/dist/m/c-4L3BTFRK.js +1 -0
  38. package/dist/m/c-4Q2XTQ2N.js +2 -0
  39. package/dist/m/c-4WKFKEKF.js +1 -0
  40. package/dist/m/c-4YSCRICO.js +1 -0
  41. package/dist/m/c-54RCDCBU.js +1 -0
  42. package/dist/m/c-5M4YEKCX.js +4 -0
  43. package/dist/m/c-5R4PTRG2.js +1 -0
  44. package/dist/m/c-5V3MOVJT.js +1 -0
  45. package/dist/m/c-5VYOWDTI.js +1 -0
  46. package/dist/m/c-5Y6TNX5W.js +34 -0
  47. package/dist/m/c-5YIHJ3TJ.js +1 -0
  48. package/dist/m/c-66O32MV3.js +28 -0
  49. package/dist/m/c-6HMB24EV.js +1 -0
  50. package/dist/m/c-7DJDKPGL.js +1 -0
  51. package/dist/m/c-7O6AFR65.js +1 -0
  52. package/dist/m/c-7SWMYKAI.js +1 -0
  53. package/dist/m/c-7VGZ7RU5.js +1 -0
  54. package/dist/m/c-A7LS5UZW.js +1 -0
  55. package/dist/m/c-ANQTJ3B5.js +2 -0
  56. package/dist/m/c-AQLFEATB.js +1 -0
  57. package/dist/m/c-AYVOREBE.js +1 -0
  58. package/dist/m/c-B2ZXPOS3.js +3 -0
  59. package/dist/m/c-BBVGTQG7.js +1 -0
  60. package/dist/m/c-BMIZKMPV.js +1 -0
  61. package/dist/m/c-BTDI4Y23.js +1 -0
  62. package/dist/m/c-BWFVSBDF.js +1 -0
  63. package/dist/m/c-BYTKL6UX.js +1 -0
  64. package/dist/m/c-CFHW5AMY.js +6 -0
  65. package/dist/m/c-CJZSLMVQ.js +1 -0
  66. package/dist/m/c-CYWLPPUS.js +1 -0
  67. package/dist/m/c-CZUSOB7V.js +1 -0
  68. package/dist/m/c-DBE6ORSI.js +1 -0
  69. package/dist/m/c-DCFSEJZG.js +1 -0
  70. package/dist/m/c-DNZ5IFM6.js +1 -0
  71. package/dist/m/c-EDHUR4MX.js +1 -0
  72. package/dist/m/c-EJTGYSLN.js +1 -0
  73. package/dist/m/c-EY6UOM54.js +1 -0
  74. package/dist/m/c-F3CKJTJS.js +1 -0
  75. package/dist/m/c-F7Y6FLPY.js +1 -0
  76. package/dist/m/c-FA4DZVTC.js +1 -0
  77. package/dist/m/c-FILLTJA7.js +1 -0
  78. package/dist/m/c-G2BUZITR.js +1 -0
  79. package/dist/m/c-GB3JTV6E.js +1 -0
  80. package/dist/m/c-GBGWXTX4.js +1 -0
  81. package/dist/m/c-GHBCCVG4.js +1 -0
  82. package/dist/m/c-GJAEGGXY.js +1 -0
  83. package/dist/m/c-GOWBDM6J.js +1 -0
  84. package/dist/m/c-GQ6F6IDK.js +1 -0
  85. package/dist/m/c-H4LG442Q.js +1 -0
  86. package/dist/m/c-HA6INT6J.js +1 -0
  87. package/dist/m/c-HPURYVZS.js +2 -0
  88. package/dist/m/c-HRDCD3WN.js +67 -0
  89. package/dist/m/c-HT33EQRN.js +1 -0
  90. package/dist/m/c-HVYXIS72.js +1 -0
  91. package/dist/m/c-IB52R237.js +1 -0
  92. package/dist/m/c-IJUK2GPW.js +1 -0
  93. package/dist/m/c-IKWNE4R4.js +1 -0
  94. package/dist/m/c-IU3IYEU6.js +1 -0
  95. package/dist/m/c-IZ2EBRAJ.js +1 -0
  96. package/dist/m/c-J7CA54IP.js +1 -0
  97. package/dist/m/c-JAX2667S.js +6 -0
  98. package/dist/m/c-KI7M4AY3.js +1 -0
  99. package/dist/m/c-KIPQJX4B.js +1 -0
  100. package/dist/m/c-KKWLDOPM.js +1 -0
  101. package/dist/m/c-KR4UW4KW.js +1 -0
  102. package/dist/m/c-KY3VJGUA.js +8 -0
  103. package/dist/m/c-L4WQSC27.js +1 -0
  104. package/dist/m/c-LFPHCXY3.js +1 -0
  105. package/dist/m/c-LR4CGEPT.js +91 -0
  106. package/dist/m/c-LRPUO2MX.js +1 -0
  107. package/dist/m/c-LTGMXXKO.js +1 -0
  108. package/dist/m/c-LXENEBV7.js +1 -0
  109. package/dist/m/c-LZJPNR2W.js +1 -0
  110. package/dist/m/c-MMUIUUZG.js +2 -0
  111. package/dist/m/c-MTQHWQC3.js +1 -0
  112. package/dist/m/c-N326R2JD.js +1 -0
  113. package/dist/m/c-N7JPUPGC.js +1 -0
  114. package/dist/m/c-NMJRXKPC.js +8 -0
  115. package/dist/m/c-NRPJEVJS.js +1 -0
  116. package/dist/m/c-NUHP2XDB.js +1 -0
  117. package/dist/m/c-NZMNXVF6.js +1 -0
  118. package/dist/m/c-OCSZ4QGN.js +1 -0
  119. package/dist/m/c-OIBUTDXI.js +1 -0
  120. package/dist/m/c-OIDRZKAF.js +1 -0
  121. package/dist/m/c-OYTFP5QN.js +1 -0
  122. package/dist/m/c-P7KNDG34.js +1 -0
  123. package/dist/m/c-PPOSCAQD.js +1 -0
  124. package/dist/m/c-PQ5LK6QE.js +993 -0
  125. package/dist/m/c-PZ4XEPUP.js +2 -0
  126. package/dist/m/c-QHIWXHRO.js +1 -0
  127. package/dist/m/c-QHWJ5ZIJ.js +1 -0
  128. package/dist/m/c-QIX5BJYN.js +1 -0
  129. package/dist/m/c-QNKREOL6.js +1 -0
  130. package/dist/m/c-QQHEX6HA.js +1 -0
  131. package/dist/m/c-R7RMANJI.js +9 -0
  132. package/dist/m/c-RI4NT75Y.js +1 -0
  133. package/dist/m/c-RM7J7BV2.js +1 -0
  134. package/dist/m/c-RUJKSUQW.js +1 -0
  135. package/dist/m/c-RVMWGXEJ.js +1 -0
  136. package/dist/m/c-S7H2DRCB.js +1 -0
  137. package/dist/m/c-S7LK4KUE.js +1 -0
  138. package/dist/m/c-SGCCC4FW.js +25 -0
  139. package/dist/m/c-SGIA4IEQ.js +188 -0
  140. package/dist/m/c-SWRJFCNN.js +1 -0
  141. package/dist/m/c-T4VO4OCB.js +1 -0
  142. package/dist/m/c-TCCA5BZN.js +2 -0
  143. package/dist/m/c-TQEMVJCS.js +1 -0
  144. package/dist/m/c-TQZ2JYHD.js +1 -0
  145. package/dist/m/c-TR6RMDQ7.js +3 -0
  146. package/dist/m/c-TRS6TM6O.js +1 -0
  147. package/dist/m/c-UGHH4MB3.js +1 -0
  148. package/dist/m/c-UKHTLWUW.js +1 -0
  149. package/dist/m/c-UL2YUY52.js +1 -0
  150. package/dist/m/c-UNN7LWCT.js +1 -0
  151. package/dist/m/c-UXBMRDZB.js +235 -0
  152. package/dist/m/c-V7PZZRG7.js +1 -0
  153. package/dist/m/c-VAK7SG37.js +1 -0
  154. package/dist/m/c-VDSS4K3Z.js +1 -0
  155. package/dist/m/c-VFX45IZQ.js +1 -0
  156. package/dist/m/c-VHNSBD2M.js +1 -0
  157. package/dist/m/c-VKEDWYDF.js +1 -0
  158. package/dist/m/c-VL52ADDR.js +1 -0
  159. package/dist/m/c-WN5AY3OZ.js +1 -0
  160. package/dist/m/c-WNYBLIOZ.js +1 -0
  161. package/dist/m/c-WRBKEJD4.js +1 -0
  162. package/dist/m/c-WWDBYXLK.js +1 -0
  163. package/dist/m/c-WYFDLITL.js +1 -0
  164. package/dist/m/c-XN6MBKI6.js +67 -0
  165. package/dist/m/c-XNNW2CWK.js +1 -0
  166. package/dist/m/c-XPELB6E5.js +1 -0
  167. package/dist/m/c-XQXZAO7N.js +1 -0
  168. package/dist/m/c-Y6USGTS5.js +5 -0
  169. package/dist/m/c-YDH7Q3NY.js +1 -0
  170. package/dist/m/c-YG2NJYS6.js +135 -0
  171. package/dist/m/c-Z36J63PP.js +1 -0
  172. package/dist/m/c-Z4VRC7GU.js +7 -0
  173. package/dist/m/c-Z6K52OLP.js +19 -0
  174. package/dist/m/c-ZDY2MDAA.js +21 -0
  175. package/dist/m/c-ZE46QDIH.js +1 -0
  176. package/dist/m/c-ZUCOKOHT.js +1 -0
  177. package/dist/m/core/admin-attrs-VGNLAUDK.js +1 -0
  178. package/dist/m/core/autosave-E4PEFPZ6.js +1 -0
  179. package/dist/m/core/conflict-notice-VQ6Y64PH.js +1 -0
  180. package/dist/m/core/draft-mode-WSQAT67S.js +1 -0
  181. package/dist/m/core/host-permission-XN3K2IW3.js +1 -0
  182. package/dist/m/core/is-edit-mode-JXHDVGUL.js +1 -0
  183. package/dist/m/core/persist-HKHA66IY.js +3 -0
  184. package/dist/m/core/recovery-TBBSICE2.js +1 -0
  185. package/dist/m/core/save-WUCHTQBE.js +1 -0
  186. package/dist/m/core/save-core-FJVHT5M3.js +1 -0
  187. package/dist/m/core/snapshot-F3SWDZMM.js +1 -0
  188. package/dist/m/core/unsaved-warning-STKBHE6G.js +1 -0
  189. package/dist/m/dom/all-APS5ZSKP.js +1 -0
  190. package/dist/m/dom/dom-helpers-L7OSR6S4.js +1 -0
  191. package/dist/m/events/index-23DPTUT4.js +1 -0
  192. package/dist/m/internals/index-WOVAP3RU.js +1 -0
  193. package/dist/m/lib/cache-bust-CGWT6ZJI.js +1 -0
  194. package/dist/m/lib/region-policy-SB2AWVG5.js +1 -0
  195. package/dist/m/loader-HXX6YNH5.js +1 -0
  196. package/dist/m/manifest-F22DEDAC.js +1 -0
  197. package/dist/m/manifest-edit-C3C7376B.js +1 -0
  198. package/dist/m/manifest.json +3491 -0
  199. package/dist/m/options/options-2LH76JQ3.js +1 -0
  200. package/dist/m/page/editor-XUTB2HB2.js +189 -0
  201. package/dist/m/plugins/ai-edit-ZQ4CGWIP.js +6 -0
  202. package/dist/m/plugins/bind-text-NX46N5UV.js +1 -0
  203. package/dist/m/plugins/cms-HP3LSTPN.js +2293 -0
  204. package/dist/m/plugins/demo-ZIBFAA3R.js +1 -0
  205. package/dist/m/plugins/derive-UAAA4V4S.js +1 -0
  206. package/dist/m/plugins/indicator-PV4YW2ID.js +1 -0
  207. package/dist/m/plugins/live-NUTTXSBS.js +1 -0
  208. package/dist/m/plugins/menu-HCKO3DSP.js +138 -0
  209. package/dist/m/plugins/message-LQ6EDH4V.js +1 -0
  210. package/dist/m/plugins/page-KSUH7G6J.js +2 -0
  211. package/dist/m/plugins/page-view-W73OW7WI.js +1 -0
  212. package/dist/m/plugins/people-AJJ32YCG.js +1 -0
  213. package/dist/m/plugins/quickcrop-QNY3PKLD.js +26 -0
  214. package/dist/m/plugins/quickcrop-QNY3PKLD.js.LEGAL.txt +7 -0
  215. package/dist/m/plugins/richclay-RC3L2F6X.js +517 -0
  216. package/dist/m/plugins/richclay-RC3L2F6X.js.LEGAL.txt +1 -0
  217. package/dist/m/plugins/sortable-YRMQX3ZU.js +1 -0
  218. package/dist/m/plugins/source-KHK5UUSK.js +1 -0
  219. package/dist/m/plugins/undo-OF2L3CXU.js +1 -0
  220. package/dist/m/plugins/unsent-HJFLQJ2O.js +1 -0
  221. package/dist/m/plugins/upgrade-ZNYODP5Y.js +1 -0
  222. package/dist/m/plugins/upload-XSGNILUY.js +1 -0
  223. package/dist/m/plugins/visitor-drafts-XK5GW55Q.js +21 -0
  224. package/dist/m/plugins/visitor-drafts-owner-KSSH75EV.js +1 -0
  225. package/dist/m/plugins/wire-ZWVWKF76.js +1 -0
  226. package/dist/m/reader-core-ILWLXVMP.js +68 -0
  227. package/dist/m/route/route-KOCZSEGN.js +1 -0
  228. package/dist/m/sync/live-sync-4AUVXVJU.js +1 -0
  229. package/dist/m/ui/index-EVHKMKBL.js +1 -0
  230. package/dist/m/utils/index-4TJCVLT7.js +1 -0
  231. package/dist/m/vendor/Sortable.vendor-A755ITLN.js +3 -0
  232. package/dist/m/vendor/Sortable.vendor-A755ITLN.js.LEGAL.txt +1 -0
  233. package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +6 -0
  234. package/dist/offline-manifest.json +3800 -0
  235. package/dist/page/themes/light-1.css +406 -0
  236. package/dist/server/core.cjs +23662 -22860
  237. package/dist/server/offline-runtime.cjs +4954 -0
  238. package/dist/server/offline-runtime.mjs +4923 -0
  239. package/dist/server/rooms.mjs +9 -0
  240. package/docs/guide.md +1078 -669
  241. package/entries/all.js +2 -0
  242. package/entries/clay-data.js +1 -1
  243. package/entries/clay-dom.js +2 -0
  244. package/entries/clay-events.js +2 -0
  245. package/entries/clay-internals.js +2 -0
  246. package/entries/clay-options.js +2 -0
  247. package/entries/clay-router.js +2 -0
  248. package/entries/clay-ui.js +2 -0
  249. package/entries/clay-utils.js +2 -0
  250. package/entries/clay.js +2 -0
  251. package/entries/sap.js +6 -6
  252. package/fonts/ibm-plex-mono-LICENSE +93 -0
  253. package/fonts/ibm-plex-mono-latin-300-normal.woff2 +0 -0
  254. package/fonts/ibm-plex-mono-latin-400-italic.woff2 +0 -0
  255. package/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  256. package/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  257. package/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  258. package/fonts/ibm-plex-sans-LICENSE +93 -0
  259. package/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
  260. package/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
  261. package/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
  262. package/fonts/ibm-plex.css +71 -0
  263. package/fonts/inter-LICENSE +93 -0
  264. package/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  265. package/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
  266. package/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
  267. package/fonts/inter-greek-wght-normal.woff2 +0 -0
  268. package/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  269. package/fonts/inter-latin-wght-normal.woff2 +0 -0
  270. package/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
  271. package/fonts/inter.css +62 -0
  272. package/fonts/newsreader-LICENSE +93 -0
  273. package/fonts/newsreader-latin-ext-opsz-normal.woff2 +0 -0
  274. package/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
  275. package/fonts/newsreader-vietnamese-opsz-normal.woff2 +0 -0
  276. package/fonts/newsreader.css +26 -0
  277. package/fonts/work-sans-LICENSE +93 -0
  278. package/fonts/work-sans-latin-wght-normal.woff2 +0 -0
  279. package/fonts/work-sans.css +8 -0
  280. package/package.json +20 -3
  281. package/packed-contract.json +1 -0
  282. package/src/attrs/add-from.js +27 -4
  283. package/src/attrs/save-freeze.js +7 -52
  284. package/src/core/admin-attrs.js +119 -12
  285. package/src/core/admin-contenteditable.js +12 -10
  286. package/src/core/admin-inputs.js +14 -15
  287. package/src/core/admin-onclick.js +2 -0
  288. package/src/core/autosave.js +74 -21
  289. package/src/core/conflict-download.js +22 -0
  290. package/src/core/conflict-notice-ui.js +1173 -0
  291. package/src/core/conflict-notice.js +140 -697
  292. package/src/core/edit-mode.js +147 -14
  293. package/src/core/etag.js +30 -12
  294. package/src/core/host-meta.js +72 -8
  295. package/src/core/host-permission.js +29 -0
  296. package/src/core/is-edit-mode.js +145 -12
  297. package/src/core/mode-key.js +125 -0
  298. package/src/core/mode-lifecycle.js +544 -0
  299. package/src/core/mode-receipt.js +30 -0
  300. package/src/core/mode-refusal.js +13 -0
  301. package/src/core/mode-resources.js +52 -0
  302. package/src/core/mode-support.js +82 -0
  303. package/src/core/mode-switch.js +259 -0
  304. package/src/core/mode-transition.js +112 -0
  305. package/src/core/page-data-write.js +305 -0
  306. package/src/core/page-data.js +26 -227
  307. package/src/core/page-format-wire.js +4 -0
  308. package/src/core/page-format.js +58 -0
  309. package/src/core/persist.js +37 -9
  310. package/src/core/preserve-authored.js +114 -0
  311. package/src/core/recovery.js +772 -0
  312. package/src/core/runtime-url.js +105 -0
  313. package/src/core/save-core.js +109 -12
  314. package/src/core/save-replace.js +72 -0
  315. package/src/core/save-size-notice.js +134 -0
  316. package/src/core/save-size.js +140 -0
  317. package/src/core/save.js +805 -118
  318. package/src/core/snapshot.js +121 -11
  319. package/src/core/source-map.js +157 -9
  320. package/src/core/unsaved-warning.js +14 -4
  321. package/src/core/upgrade-run.js +408 -0
  322. package/src/core/version.js +18 -0
  323. package/src/lib/assets.js +30 -0
  324. package/src/lib/autosave-debug-gate.js +50 -0
  325. package/src/lib/autosave-scheduler.js +141 -0
  326. package/src/lib/boot-imports.js +8 -0
  327. package/src/lib/derived.js +3 -1
  328. package/src/lib/dirty-gate.js +15 -0
  329. package/src/lib/doc-storage.js +33 -0
  330. package/src/lib/effect.js +9 -4
  331. package/src/lib/mutation.js +4 -2
  332. package/src/lib/offline-runtime.js +226 -0
  333. package/src/lib/preload.js +48 -0
  334. package/src/lib/root-attrs.js +1 -1
  335. package/src/lib/trash.js +18 -0
  336. package/src/lib/undo/capture-move.js +152 -0
  337. package/src/live/local-channel.js +61 -0
  338. package/src/live/local-lane.js +60 -9
  339. package/src/live/server-lane.js +6 -3
  340. package/src/loader-logic.js +76 -15
  341. package/src/loader.js +218 -30
  342. package/src/page/adopt-boot.js +76 -22
  343. package/src/page/adopt.js +25 -4
  344. package/src/page/awareness.js +230 -0
  345. package/src/page/blocks.js +79 -5
  346. package/src/page/blocksel.js +20 -4
  347. package/src/page/board-face.js +13 -0
  348. package/src/page/board-panel.js +5 -17
  349. package/src/page/board-style.js +2 -13
  350. package/src/page/board-view.js +1 -11
  351. package/src/page/board-views.js +17 -0
  352. package/src/page/board.js +2 -2
  353. package/src/page/boot-pack.js +26 -0
  354. package/src/page/boot.js +237 -0
  355. package/src/page/checklist.js +1 -1
  356. package/src/page/chrome.js +411 -61
  357. package/src/page/csv-import.js +17 -2
  358. package/src/page/document-title-dom.js +40 -0
  359. package/src/page/document-title-runtime.js +76 -0
  360. package/src/page/document-title.js +9 -0
  361. package/src/page/drag.js +48 -13
  362. package/src/page/drop.js +2 -1
  363. package/src/page/editor.js +330 -86
  364. package/src/page/feature-loader.js +72 -0
  365. package/src/page/features/board.js +12 -0
  366. package/src/page/features/code.js +13 -0
  367. package/src/page/features/media.js +290 -0
  368. package/src/page/features/registry.js +23 -0
  369. package/src/page/features/table.js +383 -0
  370. package/src/page/{tool-view.js → features/tool.js} +33 -2
  371. package/src/page/format-codec.js +215 -0
  372. package/src/page/format-gate.js +179 -0
  373. package/src/page/format-level.js +157 -0
  374. package/src/page/highlight-slot.js +23 -0
  375. package/src/page/highlight.js +30 -16
  376. package/src/page/history-intent.js +78 -0
  377. package/src/page/inline.js +18 -25
  378. package/src/page/items.js +52 -11
  379. package/src/page/link.js +1 -0
  380. package/src/page/markdown.js +86 -1
  381. package/src/page/media-views.js +3 -0
  382. package/src/page/media.js +33 -245
  383. package/src/page/outline-cache.js +11 -0
  384. package/src/page/placeholder.js +27 -7
  385. package/src/page/projection.js +196 -50
  386. package/src/page/reader-patch.js +306 -0
  387. package/src/page/recover.js +1 -1
  388. package/src/page/rich/page-tool.js +1 -4
  389. package/src/page/runtime-owner.js +27 -0
  390. package/src/page/save-projection.js +7 -4
  391. package/src/page/schema.js +14 -0
  392. package/src/page/table-rect-key.js +3 -0
  393. package/src/page/table-select.js +4 -3
  394. package/src/page/table-style.js +1 -1
  395. package/src/page/table-views.js +3 -0
  396. package/src/page/table.js +8 -293
  397. package/src/page/themes/light-1.css +139 -2
  398. package/src/page/themes/light-1.source.css +269 -0
  399. package/src/page/tool-capability.js +3 -0
  400. package/src/page/tool-views.js +3 -0
  401. package/src/page/view.js +390 -107
  402. package/src/page/ybind/awareness.js +172 -0
  403. package/src/page/ybind/binding.js +9 -1
  404. package/src/page/ybind/bridge.js +50 -47
  405. package/src/page/ybind/decode.js +52 -19
  406. package/src/page/ybind/doc.js +27 -2
  407. package/src/page/ybind/group.js +12 -3
  408. package/src/page/ybind/index.js +2 -0
  409. package/src/page/ybind/lineage.js +71 -0
  410. package/src/page/ybind/marks.js +25 -1
  411. package/src/page/ybind/migrate.js +48 -13
  412. package/src/page/ybind/moves.js +32 -21
  413. package/src/page/ybind/positions.js +50 -0
  414. package/src/page/ybind/provider.js +84 -22
  415. package/src/page/ybind/recovery-proof.js +191 -0
  416. package/src/page/ybind/recovery-replay.js +130 -0
  417. package/src/page/ybind/tokens.js +15 -6
  418. package/src/page/ybind/walk.js +10 -3
  419. package/src/page/ybind/writer.js +48 -4
  420. package/src/plugins/ai-edit.js +167 -32
  421. package/src/plugins/bind-text.js +218 -0
  422. package/src/plugins/cms.js +93 -0
  423. package/src/plugins/indicator.js +57 -5
  424. package/src/plugins/live.js +282 -34
  425. package/src/plugins/menu/claygoo.svg.js +1 -0
  426. package/src/plugins/menu/seo-head.js +323 -0
  427. package/src/plugins/menu/seo.js +849 -0
  428. package/src/plugins/menu.js +425 -0
  429. package/src/plugins/page-view.js +131 -0
  430. package/src/plugins/page.js +1022 -275
  431. package/src/plugins/people.js +158 -31
  432. package/src/plugins/richclay.js +119 -9
  433. package/src/plugins/sortable.js +370 -60
  434. package/src/plugins/source.js +189 -366
  435. package/src/plugins/undo.js +289 -19
  436. package/src/plugins/unsent.js +132 -0
  437. package/src/plugins/upgrade-run.js +1 -0
  438. package/src/plugins/upgrade.js +210 -0
  439. package/src/plugins/upload-task.js +571 -0
  440. package/src/plugins/upload-ui.js +265 -0
  441. package/src/plugins/upload.js +34 -153
  442. package/src/plugins/visitor-drafts/inert.js +32 -0
  443. package/src/plugins/visitor-drafts/owner-chip.js +3 -0
  444. package/src/plugins/visitor-drafts/prompt.js +2 -2
  445. package/src/plugins/visitor-drafts-owner.js +85 -0
  446. package/src/plugins/visitor-drafts.js +31 -42
  447. package/src/plugins/wire.js +82 -1
  448. package/src/reader-core.js +26 -0
  449. package/src/recovery/conflicts.js +287 -0
  450. package/src/recovery/identity.js +154 -0
  451. package/src/recovery/store.js +792 -0
  452. package/src/recovery/undo.js +257 -0
  453. package/src/server/checkpoint/index.js +68 -4
  454. package/src/server/offline-runtime/index.js +214 -0
  455. package/src/server/rooms/index.js +2 -1
  456. package/src/server/rooms/live-data-rooms.js +2 -2
  457. package/src/server/rooms/page-admission.js +33 -0
  458. package/src/server/rooms/page-lineage.js +56 -0
  459. package/src/server/rooms/page-rebase.js +11 -5
  460. package/src/server/rooms/page-state.js +2 -0
  461. package/src/server/rooms/page-write-admission.js +9 -3
  462. package/src/source/session.js +705 -0
  463. package/src/sync/conflict-revert.js +5 -4
  464. package/src/sync/conflicts-edit.js +119 -0
  465. package/src/sync/conflicts-facade.js +49 -0
  466. package/src/sync/conflicts.js +99 -1
  467. package/src/sync/editing-marker.js +37 -6
  468. package/src/sync/editing-sender.js +8 -1
  469. package/src/sync/live-sync-edit.js +63 -0
  470. package/src/sync/live-sync.js +364 -119
  471. package/src/sync/local-presence.js +187 -0
  472. package/src/sync/merge-declarations.js +10 -0
  473. package/src/sync/merge-engine.js +12 -0
  474. package/src/sync/presence-store.js +412 -0
  475. package/src/sync/presence-target.js +243 -0
  476. package/src/sync/presence.js +72 -41
  477. package/src/sync/saved-handoff.js +200 -0
  478. package/src/sync/saved-stream.js +535 -0
  479. package/src/sync/version-guard.js +92 -0
  480. package/src/sync/wire-profile.js +81 -0
  481. package/src/ui/bevel-controls.js +2 -8
  482. package/src/ui/page-scheme.js +7 -0
  483. package/src/ui/skins/cms.js +1 -1
  484. package/src/ui/theme-config.js +150 -0
  485. package/src/ui/theme.js +6 -138
  486. package/src/ui/toast-lazy.js +11 -0
  487. package/src/vendor/LICENSES-optional.md +253 -0
  488. package/src/vendor/highlight.vendor.js +3 -0
  489. package/src/vendor/hljs-bash.vendor.js +2 -0
  490. package/src/vendor/hljs-css.vendor.js +2 -0
  491. package/src/vendor/hljs-javascript.vendor.js +2 -0
  492. package/src/vendor/hljs-json.vendor.js +2 -0
  493. package/src/vendor/hljs-python.vendor.js +2 -0
  494. package/src/vendor/hljs-xml.vendor.js +2 -0
  495. package/src/vendor/hyper-html-api-data.vendor.js +1 -1
  496. package/src/vendor/hyper-html-api-upgrade.vendor.js +5 -0
  497. package/src/vendor/hyper-morph-identity.vendor.js +2 -0
  498. package/src/vendor/hyper-morph-json.vendor.js +3 -0
  499. package/src/vendor/hyper-morph.vendor.js +6 -6
  500. package/src/vendor/hyper-undo.vendor.js +1 -1
  501. package/src/vendor/hypercms.vendor.js +169 -84
  502. package/src/vendor/marked.vendor.js +68 -0
  503. package/src/vendor/overtype.vendor.js +994 -0
  504. package/src/vendor/richclay.vendor.js +17 -17
  505. package/src/vendor/sap-core.vendor.js +5 -5
  506. package/src/vendor/sap-ownership.vendor.js +11 -7
@@ -0,0 +1,5 @@
1
+ import{m as Ae,o as Nr,p as Lr,q as Rr,r as jr,z as Fr}from"./c-66O32MV3.js";var Bs=Object.defineProperty,Ws=(t,e,r)=>e in t?Bs(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,nr=(t,e,r)=>Ws(t,typeof e!="symbol"?e+"":e,r),V=()=>new Map,je=t=>{let e=V();return t.forEach((r,n)=>{e.set(n,r)}),e},tt=(t,e,r)=>{let n=t.get(e);return n===void 0&&t.set(e,n=r()),n},Ys=(t,e)=>{let r=[];for(let[n,s]of t)r.push(e(s,n));return r},Ks=(t,e)=>{for(let[r,n]of t)if(e(n,r))return!0;return!1},wt=()=>new Set,Oe=t=>t[t.length-1],Hs=(t,e)=>{for(let r=0;r<e.length;r++)t.push(e[r])},Z=Array.from,sr=(t,e)=>{for(let r=0;r<t.length;r++)if(!e(t[r],r,t))return!1;return!0},ir=(t,e)=>{for(let r=0;r<t.length;r++)if(e(t[r],r,t))return!0;return!1},Gs=(t,e)=>{let r=new Array(t);for(let n=0;n<t;n++)r[n]=e(n,r);return r},mt=Array.isArray,gn=class{constructor(){this._observers=V()}on(t,e){return tt(this._observers,t,wt).add(e),e}once(t,e){let r=(...n)=>{this.off(t,r),e(...n)};this.on(t,r)}off(t,e){let r=this._observers.get(t);r!==void 0&&(r.delete(e),r.size===0&&this._observers.delete(t))}emit(t,e){return Z((this._observers.get(t)||V()).values()).forEach(r=>r(...e))}destroy(){this._observers=V()}},B=Math.floor,Gt=Math.abs,fn=(t,e)=>t<e?t:e,at=(t,e)=>t>e?t:e,kc=Number.isNaN,pn=t=>t!==0?t<0:1/t<0,ee=Number.MAX_SAFE_INTEGER,Pr=Number.MIN_SAFE_INTEGER,yc=1<<31,qs=Number.isInteger||(t=>typeof t=="number"&&isFinite(t)&&B(t)===t),bc=Number.isNaN,_c=Number.parseInt,lr=String.fromCharCode,Sc=String.fromCodePoint,vc=lr(65535),Xs=t=>t.toLowerCase(),Qs=/^\s*/g,Zs=t=>t.replace(Qs,""),ti=/([A-Z])/g,Vr=(t,e)=>Zs(t.replace(ti,r=>`${e}${Xs(r)}`)),ei=t=>{let e=unescape(encodeURIComponent(t)),r=e.length,n=new Uint8Array(r);for(let s=0;s<r;s++)n[s]=e.codePointAt(s);return n},It=typeof TextEncoder<"u"?new TextEncoder:null,ri=t=>It.encode(t),ni=It?ri:ei,Ot=typeof TextDecoder>"u"?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Ot&&Ot.decode(new Uint8Array).length===1&&(Ot=null);var si=(t,e)=>Gs(e,()=>t).join(""),Pt=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}},St=()=>new Pt,ii=t=>{let e=t.cpos;for(let r=0;r<t.bufs.length;r++)e+=t.bufs[r].length;return e},P=t=>{let e=new Uint8Array(ii(t)),r=0;for(let n=0;n<t.bufs.length;n++){let s=t.bufs[n];e.set(s,r),r+=s.length}return e.set(new Uint8Array(t.cbuf.buffer,0,t.cpos),r),e},li=(t,e)=>{let r=t.cbuf.length;r-t.cpos<e&&(t.bufs.push(new Uint8Array(t.cbuf.buffer,0,t.cpos)),t.cbuf=new Uint8Array(at(r,e)*2),t.cpos=0)},D=(t,e)=>{let r=t.cbuf.length;t.cpos===r&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(r*2),t.cpos=0),t.cbuf[t.cpos++]=e},Mt=D,w=(t,e)=>{for(;e>127;)D(t,128|127&e),e=B(e/128);D(t,127&e)},de=(t,e)=>{let r=pn(e);for(r&&(e=-e),D(t,(e>63?128:0)|(r?64:0)|63&e),e=B(e/64);e>0;)D(t,(e>127?128:0)|127&e),e=B(e/128)},Fe=new Uint8Array(3e4),oi=Fe.length/3,ci=(t,e)=>{if(e.length<oi){let r=It.encodeInto(e,Fe).written||0;w(t,r);for(let n=0;n<r;n++)D(t,Fe[n])}else L(t,ni(e))},ai=(t,e)=>{let r=unescape(encodeURIComponent(e)),n=r.length;w(t,n);for(let s=0;s<n;s++)D(t,r.codePointAt(s))},st=It&&It.encodeInto?ci:ai,hi=(t,e)=>Vt(t,P(e)),Vt=(t,e)=>{let r=t.cbuf.length,n=t.cpos,s=fn(r-n,e.length),i=e.length-s;t.cbuf.set(e.subarray(0,s),n),t.cpos+=s,i>0&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(at(r*2,i)),t.cbuf.set(e.subarray(s)),t.cpos=i)},L=(t,e)=>{w(t,e.byteLength),Vt(t,e)},or=(t,e)=>{li(t,e);let r=new DataView(t.cbuf.buffer,t.cpos,e);return t.cpos+=e,r},ui=(t,e)=>or(t,4).setFloat32(0,e,!1),di=(t,e)=>or(t,8).setFloat64(0,e,!1),gi=(t,e)=>or(t,8).setBigInt64(0,e,!1),$r=new DataView(new ArrayBuffer(4)),fi=t=>($r.setFloat32(0,t),$r.getFloat32(0)===t),Ut=(t,e)=>{switch(typeof e){case"string":D(t,119),st(t,e);break;case"number":qs(e)&&Gt(e)<=2147483647?(D(t,125),de(t,e)):fi(e)?(D(t,124),ui(t,e)):(D(t,123),di(t,e));break;case"bigint":D(t,122),gi(t,e);break;case"object":if(e===null)D(t,126);else if(mt(e)){D(t,117),w(t,e.length);for(let r=0;r<e.length;r++)Ut(t,e[r])}else if(e instanceof Uint8Array)D(t,116),L(t,e);else{D(t,118);let r=Object.keys(e);w(t,r.length);for(let n=0;n<r.length;n++){let s=r[n];st(t,s),Ut(t,e[s])}}break;case"boolean":D(t,e?120:121);break;default:D(t,127)}},Jr=class extends Pt{constructor(t){super(),this.w=t,this.s=null,this.count=0}write(t){this.s===t?this.count++:(this.count>0&&w(this,this.count-1),this.count=1,this.w(this,t),this.s=t)}},zr=t=>{t.count>0&&(de(t.encoder,t.count===1?t.s:-t.s),t.count>1&&w(t.encoder,t.count-2))},qt=class{constructor(){this.encoder=new Pt,this.s=0,this.count=0}write(t){this.s===t?this.count++:(zr(this),this.count=1,this.s=t)}toUint8Array(){return zr(this),P(this.encoder)}},Br=t=>{if(t.count>0){let e=t.diff*2+(t.count===1?0:1);de(t.encoder,e),t.count>1&&w(t.encoder,t.count-2)}},Ie=class{constructor(){this.encoder=new Pt,this.s=0,this.count=0,this.diff=0}write(t){this.diff===t-this.s?(this.s=t,this.count++):(Br(this),this.count=1,this.diff=t-this.s,this.s=t)}toUint8Array(){return Br(this),P(this.encoder)}},pi=class{constructor(){this.sarr=[],this.s="",this.lensE=new qt}write(t){this.s+=t,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(t.length)}toUint8Array(){let t=new Pt;return this.sarr.push(this.s),this.s="",st(t,this.sarr.join("")),Vt(t,this.lensE.toUint8Array()),P(t)}},W=t=>new Error(t),$=()=>{throw W("Method unimplemented")},T=()=>{throw W("Unexpected case")},ge=W("Unexpected end of array"),wn=W("Integer out of Range"),wi=(t,e,r)=>{if(e<0||r<0||e+r>t.length)throw ge;return new Uint8Array(t.buffer,t.byteOffset+e,r)},mi=(t,e,r)=>{if(e<0||r<0||e+r>t.length)throw ge;return new DataView(t.buffer,t.byteOffset+e,r)},fe=class{constructor(t){this.arr=t,this.pos=0}},et=t=>new fe(t),mn=t=>t.pos!==t.arr.length,ki=(t,e)=>{let r=wi(t.arr,t.pos,e);return t.pos+=e,r},R=t=>ki(t,k(t)),kt=t=>t.arr[t.pos++],k=t=>{let e=0,r=1,n=t.arr.length;for(;t.pos<n;){let s=t.arr[t.pos++];if(e=e+(s&127)*r,r*=128,s<128)return e;if(e>ee)throw wn}throw ge},pe=t=>{let e=t.arr[t.pos++],r=e&63,n=64,s=(e&64)>0?-1:1;if((e&128)===0)return s*r;let i=t.arr.length;for(;t.pos<i;){if(e=t.arr[t.pos++],r=r+(e&127)*n,n*=128,e<128)return s*r;if(r>ee)throw wn}throw ge},yi=t=>{let e=k(t);if(e===0)return"";{let r=String.fromCodePoint(kt(t));if(--e<100)for(;e--;)r+=String.fromCodePoint(kt(t));else for(;e>0;){let n=e<1e4?e:1e4,s=t.arr.subarray(t.pos,t.pos+n);t.pos+=n,r+=String.fromCodePoint.apply(null,s),e-=n}return decodeURIComponent(escape(r))}},bi=t=>Ot.decode(R(t)),it=Ot?bi:yi,cr=(t,e)=>{let r=mi(t.arr,t.pos,e);return t.pos+=e,r},_i=t=>cr(t,4).getFloat32(0,!1),Si=t=>cr(t,8).getFloat64(0,!1),vi=t=>cr(t,8).getBigInt64(0,!1),Ei=[t=>{},t=>null,pe,_i,Si,vi,t=>!1,t=>!0,it,t=>{let e=k(t),r={};for(let n=0;n<e;n++){let s=it(t);r[s]=Tt(t)}return r},t=>{let e=k(t),r=[];for(let n=0;n<e;n++)r.push(Tt(t));return r},R],Tt=t=>Ei[127-kt(t)](t),Wr=class extends fe{constructor(t,e){super(t),this.reader=e,this.s=null,this.count=0}read(){return this.count===0&&(this.s=this.reader(this),mn(this)?this.count=k(this)+1:this.count=-1),this.count--,this.s}},Xt=class extends fe{constructor(t){super(t),this.s=0,this.count=0}read(){if(this.count===0){this.s=pe(this);let t=pn(this.s);this.count=1,t&&(this.s=-this.s,this.count=k(this)+2)}return this.count--,this.s}},Me=class extends fe{constructor(t){super(t),this.s=0,this.count=0,this.diff=0}read(){if(this.count===0){let t=pe(this),e=t&1;this.diff=B(t/2),this.count=1,e&&(this.count=k(this)+2)}return this.s+=this.diff,this.count--,this.s}},Ci=class{constructor(t){this.decoder=new Xt(t),this.str=it(this.decoder),this.spos=0}read(){let t=this.spos+this.decoder.read(),e=this.str.slice(this.spos,t);return this.spos=t,e}},Ec=crypto.subtle,Di=crypto.getRandomValues.bind(crypto),kn=()=>Di(new Uint32Array(1))[0],xi="10000000-1000-4000-8000"+-1e11,Ai=()=>xi.replace(/[018]/g,t=>(t^kn()&15>>t/4).toString(16)),yn=Date.now,Yr=t=>new Promise(t),Cc=Promise.all.bind(Promise),Kr=t=>t===void 0?null:t,Oi=class{constructor(){this.map=new Map}setItem(t,e){this.map.set(t,e)}getItem(t){return this.map.get(t)}},bn=new Oi,Ii=!0;try{typeof localStorage<"u"&&localStorage&&(bn=localStorage,Ii=!1)}catch{}var Mi=bn,Nt=Symbol("Equality"),_n=(t,e)=>t===e||!!t?.[Nt]?.(e)||!1,Ui=t=>typeof t=="object",Ti=Object.assign,Ni=Object.keys,Li=(t,e)=>{for(let r in t)e(t[r],r)},re=t=>Ni(t).length,Ri=t=>{for(let e in t)return!1;return!0},$t=(t,e)=>{for(let r in t)if(!e(t[r],r))return!1;return!0},ar=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),ji=(t,e)=>t===e||re(t)===re(e)&&$t(t,(r,n)=>(r!==void 0||ar(e,n))&&_n(e[n],r)),Fi=Object.freeze,Sn=t=>{for(let e in t){let r=t[e];(typeof r=="object"||typeof r=="function")&&Sn(t[e])}return Fi(t)},hr=(t,e,r=0)=>{try{for(;r<t.length;r++)t[r](...e)}finally{r<t.length&&hr(t,e,r+1)}},Pi=t=>t,Qt=(t,e)=>{if(t===e)return!0;if(t==null||e==null||t.constructor!==e.constructor&&(t.constructor||Object)!==(e.constructor||Object))return!1;if(t[Nt]!=null)return t[Nt](e);switch(t.constructor){case ArrayBuffer:t=new Uint8Array(t),e=new Uint8Array(e);case Uint8Array:{if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;break}case Set:{if(t.size!==e.size)return!1;for(let r of t)if(!e.has(r))return!1;break}case Map:{if(t.size!==e.size)return!1;for(let r of t.keys())if(!e.has(r)||!Qt(t.get(r),e.get(r)))return!1;break}case void 0:case Object:if(re(t)!==re(e))return!1;for(let r in t)if(!ar(t,r)||!Qt(t[r],e[r]))return!1;break;case Array:if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(!Qt(t[r],e[r]))return!1;break;default:return!1}return!0},Vi=(t,e)=>e.includes(t),yt=typeof process<"u"&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]",vn=typeof window<"u"&&typeof document<"u"&&!yt,Dc=typeof navigator<"u"?/Mac/.test(navigator.platform):!1,z,$i=[],Ji=()=>{if(z===void 0)if(yt){z=V();let t=process.argv,e=null;for(let r=0;r<t.length;r++){let n=t[r];n[0]==="-"?(e!==null&&z.set(e,""),e=n):e!==null?(z.set(e,n),e=null):$i.push(n)}e!==null&&z.set(e,"")}else typeof location=="object"?(z=V(),(location.search||"?").slice(1).split("&").forEach(t=>{if(t.length!==0){let[e,r]=t.split("=");z.set(`--${Vr(e,"-")}`,r),z.set(`-${Vr(e,"-")}`,r)}})):z=V();return z},Pe=t=>Ji().has(t),ne=t=>Kr(yt?process.env[t.toUpperCase().replaceAll("-","_")]:Mi.getItem(t)),En=t=>Pe("--"+t)||ne(t)!==null,zi=En("production"),Bi=yt&&Vi(process.env.FORCE_COLOR,["true","1","2"]),Wi=Bi||!Pe("--no-colors")&&!En("no-color")&&(!yt||process.stdout.isTTY)&&(!yt||Pe("--color")||ne("COLORTERM")!==null||(ne("TERM")||"").includes("color")),Cn=t=>new Uint8Array(t),Yi=t=>{let e="";for(let r=0;r<t.byteLength;r++)e+=lr(t[r]);return btoa(e)},Ki=t=>Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64"),Hi=t=>{let e=atob(t),r=Cn(e.length);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r},Gi=t=>new Uint8Array(Buffer.from(t,"base64")),xc=vn?Yi:Ki,Ac=vn?Hi:Gi,qi=t=>{let e=Cn(t.byteLength);return e.set(t),e},Xi=class{constructor(t,e){this.left=t,this.right=e}},G=(t,e)=>new Xi(t,e),Hr=t=>t.next()>=.5,Ue=(t,e,r)=>B(t.next()*(r+1-e)+e),Dn=(t,e,r)=>B(t.next()*(r+1-e)+e),ur=(t,e,r)=>Dn(t,e,r),Qi=t=>lr(ur(t,97,122)),Zi=(t,e=0,r=20)=>{let n=ur(t,e,r),s="";for(let i=0;i<n;i++)s+=Qi(t);return s},Te=(t,e)=>e[ur(t,0,e.length-1)],tl=Symbol("0schema"),el=class{constructor(){this._rerrs=[]}extend(t,e,r,n=null){this._rerrs.push({path:t,expected:e,has:r,message:n})}toString(){let t=[];for(let e=this._rerrs.length-1;e>0;e--){let r=this._rerrs[e];t.push(si(" ",(this._rerrs.length-e)*2)+`${r.path!=null?`[${r.path}] `:""}${r.has} doesn't match ${r.expected}. ${r.message}`)}return t.join(`
2
+ `)}},Ve=(t,e)=>t===e?!0:t==null||e==null||t.constructor!==e.constructor?!1:t[Nt]?_n(t,e):mt(t)?sr(t,r=>ir(e,n=>Ve(r,n))):Ui(t)?$t(t,(r,n)=>Ve(r,e[n])):!1,M=class{extends(t){let[e,r]=[this.shape,t.shape];return this.constructor._dilutes&&([r,e]=[e,r]),Ve(e,r)}equals(t){return this.constructor===t.constructor&&Qt(this.shape,t.shape)}[tl](){return!0}[Nt](t){return this.equals(t)}validate(t){return this.check(t)}check(t,e){$()}get nullable(){return vt(this,be)}get optional(){return new On(this)}cast(t){return Gr(t,this),t}expect(t){return Gr(t,this),t}};nr(M,"_dilutes",!1);var dr=class extends M{constructor(t,e){super(),this.shape=t,this._c=e}check(t,e=void 0){let r=t?.constructor===this.shape&&(this._c==null||this._c(t));return!r&&e?.extend(null,this.shape.name,t?.constructor.name,t?.constructor!==this.shape?"Constructor match failed":"Check failed"),r}},C=(t,e=null)=>new dr(t,e),Oc=C(dr),gr=class extends M{constructor(t){super(),this.shape=t}check(t,e){let r=this.shape(t);return!r&&e?.extend(null,"custom prop",t?.constructor.name,"failed to check custom prop"),r}},A=t=>new gr(t),Ic=C(gr),we=class extends M{constructor(t){super(),this.shape=t}check(t,e){let r=this.shape.some(n=>n===t);return!r&&e?.extend(null,this.shape.join(" | "),t.toString()),r}},me=(...t)=>new we(t),xn=C(we),rl=RegExp.escape||(t=>t.replace(/[().|&,$^[\]]/g,e=>"\\"+e)),An=t=>{if(bt.check(t))return[rl(t)];if(xn.check(t))return t.shape.map(e=>e+"");if(Jn.check(t))return["[+-]?\\d+.?\\d*"];if(zn.check(t))return[".*"];if(se.check(t))return t.shape.map(An).flat(1);T()},nl=class extends M{constructor(t){super(),this.shape=t,this._r=new RegExp("^"+t.map(An).map(e=>`(${e.join("|")})`).join("")+"$")}check(t,e){let r=this._r.exec(t)!=null;return!r&&e?.extend(null,this._r.toString(),t.toString(),"String doesn't match string template."),r}},Mc=C(nl),sl=Symbol("optional"),On=class extends M{constructor(t){super(),this.shape=t}check(t,e){let r=t===void 0||this.shape.check(t);return!r&&e?.extend(null,"undefined (optional)","()"),r}get[sl](){return!0}},il=C(On),In=class extends M{check(t,e){return e?.extend(null,"never",typeof t),!1}},Uc=new In,Tc=C(In),Mn=class Un extends M{constructor(e,r=!1){super(),this.shape=e,this._isPartial=r}get partial(){return new Un(this.shape,!0)}check(e,r){return e==null?(r?.extend(null,"object","null"),!1):$t(this.shape,(n,s)=>{let i=this._isPartial&&!ar(e,s)||n.check(e[s],r);return!i&&r?.extend(s.toString(),n.toString(),typeof e[s],"Object property does not match"),i})}};nr(Mn,"_dilutes",!0);var Tn=Mn,ll=t=>new Tn(t),ol=C(Tn),cl=A(t=>t!=null&&(t.constructor===Object||t.constructor==null)),Nn=class extends M{constructor(t,e){super(),this.shape={keys:t,values:e}}check(t,e){return t!=null&&$t(t,(r,n)=>{let s=this.shape.keys.check(n,e);return!s&&e?.extend(n+"","Record",typeof t,s?"Key doesn't match schema":"Value doesn't match value"),s&&this.shape.values.check(r,e)})}},Ln=(t,e)=>new Nn(t,e),al=C(Nn),Rn=class extends M{constructor(t){super(),this.shape=t}check(t,e){return t!=null&&$t(this.shape,(r,n)=>{let s=r.check(t[n],e);return!s&&e?.extend(n.toString(),"Tuple",typeof r),s})}},hl=(...t)=>new Rn(t),Nc=C(Rn),jn=class extends M{constructor(t){super(),this.shape=t.length===1?t[0]:new ke(t)}check(t,e){let r=mt(t)&&sr(t,n=>this.shape.check(n));return!r&&e?.extend(null,"Array",""),r}},Fn=(...t)=>new jn(t),ul=C(jn),dl=A(t=>mt(t)),Pn=class extends M{constructor(t,e){super(),this.shape=t,this._c=e}check(t,e){let r=t instanceof this.shape&&(this._c==null||this._c(t));return!r&&e?.extend(null,this.shape.name,t?.constructor.name),r}},gl=(t,e=null)=>new Pn(t,e),Lc=C(Pn),fl=gl(M),pl=class extends M{constructor(t){super(),this.len=t.length-1,this.args=hl(...t.slice(-1)),this.res=t[this.len]}check(t,e){let r=t.constructor===Function&&t.length<=this.len;return!r&&e?.extend(null,"function",typeof t),r}},wl=C(pl),ml=A(t=>typeof t=="function"),kl=class extends M{constructor(t){super(),this.shape=t}check(t,e){let r=sr(this.shape,n=>n.check(t,e));return!r&&e?.extend(null,"Intersectinon",typeof t),r}},Rc=C(kl,t=>t.shape.length>0),ke=class extends M{constructor(t){super(),this.shape=t}check(t,e){let r=ir(this.shape,n=>n.check(t,e));return e?.extend(null,"Union",typeof t),r}};nr(ke,"_dilutes",!0);var vt=(...t)=>t.findIndex(e=>se.check(e))>=0?vt(...t.map(e=>Lt(e)).map(e=>se.check(e)?e.shape:[e]).flat(1)):t.length===1?t[0]:new ke(t),se=C(ke),Vn=()=>!0,ie=A(Vn),yl=C(gr,t=>t.shape===Vn),fr=A(t=>typeof t=="bigint"),bl=A(t=>t===fr),$n=A(t=>typeof t=="symbol"),jc=A(t=>t===$n),gt=A(t=>typeof t=="number"),Jn=A(t=>t===gt),bt=A(t=>typeof t=="string"),zn=A(t=>t===bt),ye=A(t=>typeof t=="boolean"),_l=A(t=>t===ye),Bn=me(void 0),Fc=C(we,t=>t.shape.length===1&&t.shape[0]===void 0),Pc=me(void 0),be=me(null),Sl=C(we,t=>t.shape.length===1&&t.shape[0]===null),Vc=C(Uint8Array),$c=C(dr,t=>t.shape===Uint8Array),vl=vt(gt,bt,be,Bn,fr,ye,$n),Jc=(()=>{let t=Fn(ie),e=Ln(bt,ie),r=vt(gt,bt,be,ye,t,e);return t.shape=r,e.shape.values=r,r})(),Lt=t=>{if(fl.check(t))return t;if(cl.check(t)){let e={};for(let r in t)e[r]=Lt(t[r]);return ll(e)}else{if(dl.check(t))return vt(...t.map(Lt));if(vl.check(t))return me(t);if(ml.check(t))return C(t)}T()},Gr=zi?()=>{}:(t,e)=>{let r=new el;if(!e.check(t,r))throw W(`Expected value to be of type ${e.constructor.name}.
3
+ ${r.toString()}`)},El=class{constructor(t){this.patterns=[],this.$state=t}if(t,e){return this.patterns.push({if:Lt(t),h:e}),this}else(t){return this.if(ie,t)}done(){return(t,e)=>{for(let r=0;r<this.patterns.length;r++){let n=this.patterns[r];if(n.if.check(t))return n.h(t,e)}throw W("Unhandled pattern")}}},Cl=t=>new El(t),Wn=Cl(ie).if(Jn,(t,e)=>Ue(e,Pr,ee)).if(zn,(t,e)=>Zi(e)).if(_l,(t,e)=>Hr(e)).if(bl,(t,e)=>BigInt(Ue(e,Pr,ee))).if(se,(t,e)=>ut(e,Te(e,t.shape))).if(ol,(t,e)=>{let r={};for(let n in t.shape){let s=t.shape[n];if(il.check(s)){if(Hr(e))continue;s=s.shape}r[n]=Wn(s,e)}return r}).if(ul,(t,e)=>{let r=[],n=Dn(e,0,42);for(let s=0;s<n;s++)r.push(ut(e,t.shape));return r}).if(xn,(t,e)=>Te(e,t.shape)).if(Sl,(t,e)=>null).if(wl,(t,e)=>{let r=ut(e,t.res);return()=>r}).if(yl,(t,e)=>ut(e,Te(e,[gt,bt,be,Bn,fr,ye,Fn(gt),Ln(vt("a","b","c"),gt)]))).if(al,(t,e)=>{let r={},n=Ue(e,0,3);for(let s=0;s<n;s++){let i=ut(e,t.shape.keys),l=ut(e,t.shape.values);r[i]=l}return r}).done(),ut=(t,e)=>Wn(Lt(e),t),ht=typeof document<"u"?document:{},zc=A(t=>t.nodeType===Il),Bc=typeof DOMParser<"u"?new DOMParser:null,Wc=A(t=>t.nodeType===xl),Yc=A(t=>t.nodeType===Al),Dl=t=>Ys(t,(e,r)=>`${r}:${e};`).join(""),xl=ht.ELEMENT_NODE,Al=ht.TEXT_NODE,Kc=ht.CDATA_SECTION_NODE,Hc=ht.COMMENT_NODE,Ol=ht.DOCUMENT_NODE,Gc=ht.DOCUMENT_TYPE_NODE,Il=ht.DOCUMENT_FRAGMENT_NODE,qc=A(t=>t.nodeType===Ol),q=Symbol,Yn=q(),Kn=q(),Ml=q(),Ul=q(),Tl=q(),Hn=q(),Nl=q(),pr=q(),Ll=q(),Rl=t=>{t.length===1&&t[0]?.constructor===Function&&(t=t[0]());let e=[],r=[],n=0;for(;n<t.length;n++){let s=t[n];if(s===void 0)break;if(s.constructor===String||s.constructor===Number)e.push(s);else if(s.constructor===Object)break}for(n>0&&r.push(e.join(""));n<t.length;n++){let s=t[n];s instanceof Symbol||r.push(s)}return r},Xc=yn(),jl={[Yn]:G("font-weight","bold"),[Kn]:G("font-weight","normal"),[Ml]:G("color","blue"),[Tl]:G("color","green"),[Ul]:G("color","grey"),[Hn]:G("color","red"),[Nl]:G("color","purple"),[pr]:G("color","orange"),[Ll]:G("color","black")},Fl=t=>{t.length===1&&t[0]?.constructor===Function&&(t=t[0]());let e=[],r=[],n=V(),s=[],i=0;for(;i<t.length;i++){let l=t[i],o=jl[l];if(o!==void 0)n.set(o.left,o.right);else{if(l===void 0)break;if(l.constructor===String||l.constructor===Number){let c=Dl(n);i>0||c.length>0?(e.push("%c"+l),r.push(c)):e.push(l)}else break}}for(i>0&&(s=r,s.unshift(e.join("")));i<t.length;i++){let l=t[i];l instanceof Symbol||s.push(l)}return s},Gn=Wi?Fl:Rl,Pl=(...t)=>{console.log(...Gn(t)),Xn.forEach(e=>e.print(t))},qn=(...t)=>{console.warn(...Gn(t)),t.unshift(pr),Xn.forEach(e=>e.print(t))},Xn=wt(),Qn=t=>({[Symbol.iterator](){return this},next:t}),Vl=(t,e)=>Qn(()=>{let r;do r=t.next();while(!r.done&&!e(r.value));return r}),Ne=(t,e)=>Qn(()=>{let{done:r,value:n}=t.next();return{done:r,value:r?void 0:e(n)}});var wr=class{constructor(t,e){this.clock=t,this.len=e}},Et=class{constructor(){this.clients=new Map}},_t=(t,e,r)=>e.clients.forEach((n,s)=>{let i=t.doc.store.clients.get(s);if(i!=null){let l=i[i.length-1],o=l.id.clock+l.length;for(let c=0,u=n[c];c<n.length&&u.clock<o;u=n[++c])us(t,i,u.clock,u.len,r)}}),$l=(t,e)=>{let r=0,n=t.length-1;for(;r<=n;){let s=B((r+n)/2),i=t[s],l=i.clock;if(l<=e){if(e<l+i.len)return s;r=s+1}else n=s-1}return null},Jt=(t,e)=>{let r=t.clients.get(e.client);return r!==void 0&&$l(r,e.clock)!==null},mr=t=>{t.clients.forEach(e=>{e.sort((s,i)=>s.clock-i.clock);let r,n;for(r=1,n=1;r<e.length;r++){let s=e[n-1],i=e[r];s.clock+s.len>=i.clock?s.len=at(s.len,i.clock+i.len-s.clock):(n<r&&(e[n]=i),n++)}e.length=n})},$e=t=>{let e=new Et;for(let r=0;r<t.length;r++)t[r].clients.forEach((n,s)=>{if(!e.clients.has(s)){let i=n.slice();for(let l=r+1;l<t.length;l++)Hs(i,t[l].clients.get(s)||[]);e.clients.set(s,i)}});return mr(e),e},Rt=(t,e,r,n)=>{tt(t.clients,e,()=>[]).push(new wr(r,n))},Zn=()=>new Et,Jl=t=>{let e=Zn();return t.clients.forEach((r,n)=>{let s=[];for(let i=0;i<r.length;i++){let l=r[i];if(l.deleted){let o=l.id.clock,c=l.length;if(i+1<r.length)for(let u=r[i+1];i+1<r.length&&u.deleted;u=r[++i+1])c+=u.length;s.push(new wr(o,c))}}s.length>0&&e.clients.set(n,s)}),e},Ct=(t,e)=>{w(t.restEncoder,e.clients.size),Z(e.clients.entries()).sort((r,n)=>n[0]-r[0]).forEach(([r,n])=>{t.resetDsCurVal(),w(t.restEncoder,r);let s=n.length;w(t.restEncoder,s);for(let i=0;i<s;i++){let l=n[i];t.writeDsClock(l.clock),t.writeDsLen(l.len)}})},kr=t=>{let e=new Et,r=k(t.restDecoder);for(let n=0;n<r;n++){t.resetDsCurVal();let s=k(t.restDecoder),i=k(t.restDecoder);if(i>0){let l=tt(e.clients,s,()=>[]);for(let o=0;o<i;o++)l.push(new wr(t.readDsClock(),t.readDsLen()))}}return e},qr=(t,e,r)=>{let n=new Et,s=k(t.restDecoder);for(let i=0;i<s;i++){t.resetDsCurVal();let l=k(t.restDecoder),o=k(t.restDecoder),c=r.clients.get(l)||[],u=E(r,l);for(let a=0;a<o;a++){let h=t.readDsClock(),d=h+t.readDsLen();if(h<u){u<d&&Rt(n,l,u,d-u);let g=Y(c,h),f=c[g];for(!f.deleted&&f.id.clock<h&&(c.splice(g+1,0,ue(e,f,h-f.id.clock)),g++);g<c.length&&(f=c[g++],f.id.clock<d);)f.deleted||(d<f.id.clock+f.length&&c.splice(g,0,ue(e,f,d-f.id.clock)),f.delete(e))}else Rt(n,l,h,d-h)}}if(n.clients.size>0){let i=new ot;return w(i.restEncoder,0),Ct(i,n),i.toUint8Array()}return null},Qc=(t,e)=>{if(t.clients.size!==e.clients.size)return!1;for(let[r,n]of t.clients.entries()){let s=e.clients.get(r);if(s===void 0||n.length!==s.length)return!1;for(let i=0;i<n.length;i++){let l=n[i],o=s[i];if(l.clock!==o.clock||l.len!==o.len)return!1}}return!0},ts=kn,Dt=class es extends gn{constructor({guid:e=Ai(),collectionid:r=null,gc:n=!0,gcFilter:s=()=>!0,meta:i=null,autoLoad:l=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=s,this.clientID=ts(),this.guid=e,this.collectionid=r,this.share=new Map,this.store=new as,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=l,this.meta=i,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=Yr(u=>{this.on("load",()=>{this.isLoaded=!0,u(this)})});let c=()=>Yr(u=>{let a=h=>{(h===void 0||h===!0)&&(this.off("sync",a),u())};this.on("sync",a)});this.on("sync",u=>{u===!1&&this.isSynced&&(this.whenSynced=c()),this.isSynced=u===void 0||u===!0,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=c()}load(){let e=this._item;e!==null&&!this.shouldLoad&&_(e.parent.doc,r=>{r.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(Z(this.subdocs).map(e=>e.guid))}transact(e,r=null){return _(this,e,r)}get(e,r=x){let n=tt(this.share,e,()=>{let i=new r;return i._integrate(this,null),i}),s=n.constructor;if(r!==x&&s!==r)if(s===x){let i=new r;i._map=n._map,n._map.forEach(l=>{for(;l!==null;l=l.left)l.parent=i}),i._start=n._start;for(let l=i._start;l!==null;l=l.right)l.parent=i;return i._length=n._length,this.share.set(e,i),i._integrate(this,null),i}else throw new Error(`Type with the name ${e} has already been defined with a different constructor`);return n}getArray(e=""){return this.get(e,Cs)}getText(e=""){return this.get(e,xr)}getMap(e=""){return this.get(e,Dr)}getXmlElement(e=""){return this.get(e,Ar)}getXmlFragment(e=""){return this.get(e,xe)}toJSON(){let e={};return this.share.forEach((r,n)=>{e[n]=r.toJSON()}),e}destroy(){this.isDestroyed=!0,Z(this.subdocs).forEach(r=>r.destroy());let e=this._item;if(e!==null){this._item=null;let r=e.content;r.doc=new es({guid:this.guid,...r.opts,shouldLoad:!1}),r.doc._item=e,_(e.parent.doc,n=>{let s=r.doc;e.deleted||n.subdocsAdded.add(s),n.subdocsRemoved.add(this)},null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}},rs=class{constructor(t){this.restDecoder=t}resetDsCurVal(){}readDsClock(){return k(this.restDecoder)}readDsLen(){return k(this.restDecoder)}},zl=class extends rs{readLeftID(){return y(k(this.restDecoder),k(this.restDecoder))}readRightID(){return y(k(this.restDecoder),k(this.restDecoder))}readClient(){return k(this.restDecoder)}readInfo(){return kt(this.restDecoder)}readString(){return it(this.restDecoder)}readParentInfo(){return k(this.restDecoder)===1}readTypeRef(){return k(this.restDecoder)}readLen(){return k(this.restDecoder)}readAny(){return Tt(this.restDecoder)}readBuf(){return qi(R(this.restDecoder))}readJSON(){return JSON.parse(it(this.restDecoder))}readKey(){return it(this.restDecoder)}},Bl=class{constructor(t){this.dsCurrVal=0,this.restDecoder=t}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=k(this.restDecoder),this.dsCurrVal}readDsLen(){let t=k(this.restDecoder)+1;return this.dsCurrVal+=t,t}},lt=class extends Bl{constructor(t){super(t),this.keys=[],k(t),this.keyClockDecoder=new Me(R(t)),this.clientDecoder=new Xt(R(t)),this.leftClockDecoder=new Me(R(t)),this.rightClockDecoder=new Me(R(t)),this.infoDecoder=new Wr(R(t),kt),this.stringDecoder=new Ci(R(t)),this.parentInfoDecoder=new Wr(R(t),kt),this.typeRefDecoder=new Xt(R(t)),this.lenDecoder=new Xt(R(t))}readLeftID(){return new ft(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new ft(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return this.parentInfoDecoder.read()===1}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return Tt(this.restDecoder)}readBuf(){return R(this.restDecoder)}readJSON(){return Tt(this.restDecoder)}readKey(){let t=this.keyClockDecoder.read();if(t<this.keys.length)return this.keys[t];{let e=this.stringDecoder.read();return this.keys.push(e),e}}},ns=class{constructor(){this.restEncoder=St()}toUint8Array(){return P(this.restEncoder)}resetDsCurVal(){}writeDsClock(t){w(this.restEncoder,t)}writeDsLen(t){w(this.restEncoder,t)}},_e=class extends ns{writeLeftID(t){w(this.restEncoder,t.client),w(this.restEncoder,t.clock)}writeRightID(t){w(this.restEncoder,t.client),w(this.restEncoder,t.clock)}writeClient(t){w(this.restEncoder,t)}writeInfo(t){Mt(this.restEncoder,t)}writeString(t){st(this.restEncoder,t)}writeParentInfo(t){w(this.restEncoder,t?1:0)}writeTypeRef(t){w(this.restEncoder,t)}writeLen(t){w(this.restEncoder,t)}writeAny(t){Ut(this.restEncoder,t)}writeBuf(t){L(this.restEncoder,t)}writeJSON(t){st(this.restEncoder,JSON.stringify(t))}writeKey(t){st(this.restEncoder,t)}},yr=class{constructor(){this.restEncoder=St(),this.dsCurrVal=0}toUint8Array(){return P(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(t){let e=t-this.dsCurrVal;this.dsCurrVal=t,w(this.restEncoder,e)}writeDsLen(t){t===0&&T(),w(this.restEncoder,t-1),this.dsCurrVal+=t}},ot=class extends yr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Ie,this.clientEncoder=new qt,this.leftClockEncoder=new Ie,this.rightClockEncoder=new Ie,this.infoEncoder=new Jr(Mt),this.stringEncoder=new pi,this.parentInfoEncoder=new Jr(Mt),this.typeRefEncoder=new qt,this.lenEncoder=new qt}toUint8Array(){let t=St();return w(t,0),L(t,this.keyClockEncoder.toUint8Array()),L(t,this.clientEncoder.toUint8Array()),L(t,this.leftClockEncoder.toUint8Array()),L(t,this.rightClockEncoder.toUint8Array()),L(t,P(this.infoEncoder)),L(t,this.stringEncoder.toUint8Array()),L(t,P(this.parentInfoEncoder)),L(t,this.typeRefEncoder.toUint8Array()),L(t,this.lenEncoder.toUint8Array()),Vt(t,P(this.restEncoder)),P(t)}writeLeftID(t){this.clientEncoder.write(t.client),this.leftClockEncoder.write(t.clock)}writeRightID(t){this.clientEncoder.write(t.client),this.rightClockEncoder.write(t.clock)}writeClient(t){this.clientEncoder.write(t)}writeInfo(t){this.infoEncoder.write(t)}writeString(t){this.stringEncoder.write(t)}writeParentInfo(t){this.parentInfoEncoder.write(t?1:0)}writeTypeRef(t){this.typeRefEncoder.write(t)}writeLen(t){this.lenEncoder.write(t)}writeAny(t){Ut(this.restEncoder,t)}writeBuf(t){L(this.restEncoder,t)}writeJSON(t){Ut(this.restEncoder,t)}writeKey(t){let e=this.keyMap.get(t);e===void 0?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(t)):this.keyClockEncoder.write(e)}},Wl=(t,e,r,n)=>{n=at(n,e[0].id.clock);let s=Y(e,n);w(t.restEncoder,e.length-s),t.writeClient(r),w(t.restEncoder,n);let i=e[s];i.write(t,n-i.id.clock);for(let l=s+1;l<e.length;l++)e[l].write(t,0)},br=(t,e,r)=>{let n=new Map;r.forEach((s,i)=>{E(e,i)>s&&n.set(i,s)}),Se(e).forEach((s,i)=>{r.has(i)||n.set(i,0)}),w(t.restEncoder,n.size),Z(n.entries()).sort((s,i)=>i[0]-s[0]).forEach(([s,i])=>{Wl(t,e.clients.get(s),s,i)})},Yl=(t,e)=>{let r=V(),n=k(t.restDecoder);for(let s=0;s<n;s++){let i=k(t.restDecoder),l=new Array(i),o=t.readClient(),c=k(t.restDecoder);r.set(o,{i:0,refs:l});for(let u=0;u<i;u++){let a=t.readInfo();switch(31&a){case 0:{let h=t.readLen();l[u]=new F(y(o,c),h),c+=h;break}case 10:{let h=k(t.restDecoder);l[u]=new j(y(o,c),h),c+=h;break}default:{let h=(a&192)===0,d=new S(y(o,c),null,(a&128)===128?t.readLeftID():null,null,(a&64)===64?t.readRightID():null,h?t.readParentInfo()?e.get(t.readString()):t.readLeftID():null,h&&(a&32)===32?t.readString():null,Fs(t,a));l[u]=d,c+=d.length}}}}return r},Kl=(t,e,r)=>{let n=[],s=Z(r.keys()).sort((g,f)=>g-f);if(s.length===0)return null;let i=()=>{if(s.length===0)return null;let g=r.get(s[s.length-1]);for(;g.refs.length===g.i;)if(s.pop(),s.length>0)g=r.get(s[s.length-1]);else return null;return g},l=i();if(l===null)return null;let o=new as,c=new Map,u=(g,f)=>{let m=c.get(g);(m==null||m>f)&&c.set(g,f)},a=l.refs[l.i++],h=new Map,d=()=>{for(let g of n){let f=g.id.client,m=r.get(f);m?(m.i--,o.clients.set(f,m.refs.slice(m.i)),r.delete(f),m.i=0,m.refs=[]):o.clients.set(f,[g]),s=s.filter(N=>N!==f)}n.length=0};for(;;){if(a.constructor!==j){let g=tt(h,a.id.client,()=>E(e,a.id.client))-a.id.clock;if(g<0)n.push(a),u(a.id.client,a.id.clock-1),d();else{let f=a.getMissing(t,e);if(f!==null){n.push(a);let m=r.get(f)||{refs:[],i:0};if(m.refs.length===m.i)u(f,E(e,f)),d();else{a=m.refs[m.i++];continue}}else(g===0||g<a.length)&&(a.integrate(t,g),h.set(a.id.client,a.id.clock+a.length))}}if(n.length>0)a=n.pop();else if(l!==null&&l.i<l.refs.length)a=l.refs[l.i++];else{if(l=i(),l===null)break;a=l.refs[l.i++]}}if(o.clients.size>0){let g=new ot;return br(g,o,new Map),w(g.restEncoder,0),{missing:c,update:g.toUint8Array()}}return null},Hl=(t,e)=>br(t,e.doc.store,e.beforeState),Gl=(t,e,r,n=new lt(t))=>_(e,s=>{s.local=!1;let i=!1,l=s.doc,o=l.store,c=Yl(n,l),u=Kl(s,o,c),a=o.pendingStructs;if(a){for(let[d,g]of a.missing)if(g<E(o,d)){i=!0;break}if(u){for(let[d,g]of u.missing){let f=a.missing.get(d);(f==null||f>g)&&a.missing.set(d,g)}a.update=oe([a.update,u.update])}}else o.pendingStructs=u;let h=qr(n,s,o);if(o.pendingDs){let d=new lt(et(o.pendingDs));k(d.restDecoder);let g=qr(d,s,o);h&&g?o.pendingDs=oe([h,g]):o.pendingDs=h||g}else o.pendingDs=h;if(i){let d=o.pendingStructs.update;o.pendingStructs=null,ql(s.doc,d)}},r,!1);var ql=(t,e,r,n=lt)=>{let s=et(e);Gl(s,t,r,new n(s))};var Xl=(t,e,r=new Map)=>{br(t,e.store,r),Ct(t,Jl(e.store))},Zc=(t,e=new Uint8Array([0]),r=new ot)=>{let n=ss(e);Xl(r,t,n);let s=[r.toUint8Array()];if(t.store.pendingDs&&s.push(t.store.pendingDs),t.store.pendingStructs&&s.push(yo(t.store.pendingStructs.update,e)),s.length>1){if(r.constructor===_e)return mo(s.map((i,l)=>l===0?i:_o(i)));if(r.constructor===ot)return oe(s)}return s[0]};var Ql=t=>{let e=new Map,r=k(t.restDecoder);for(let n=0;n<r;n++){let s=k(t.restDecoder),i=k(t.restDecoder);e.set(s,i)}return e},ss=t=>Ql(new rs(et(t))),is=(t,e)=>(w(t.restEncoder,e.size),Z(e.entries()).sort((r,n)=>n[0]-r[0]).forEach(([r,n])=>{w(t.restEncoder,r),w(t.restEncoder,n)}),t),Zl=(t,e)=>is(t,Se(e.store)),to=(t,e=new yr)=>(t instanceof Map?is(e,t):Zl(e,t),e.toUint8Array()),ta=t=>to(t,new ns),eo=class{constructor(){this.l=[]}},Xr=()=>new eo,Qr=(t,e)=>t.l.push(e),Zr=(t,e)=>{let r=t.l,n=r.length;t.l=r.filter(s=>e!==s),n===t.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},ls=(t,e,r)=>hr(t.l,[e,r]),ft=class{constructor(t,e){this.client=t,this.clock=e}},Wt=(t,e)=>t===e||t!==null&&e!==null&&t.client===e.client&&t.clock===e.clock,y=(t,e)=>new ft(t,e),tn=(t,e)=>{w(t,e.client),w(t,e.clock)},en=t=>y(k(t),k(t)),os=t=>{for(let[e,r]of t.doc.share.entries())if(r===t)return e;throw T()},le=(t,e)=>{for(;e!==null;){if(e.parent===t)return!0;e=e.parent._item}return!1};var cs=class{constructor(t,e,r,n=0){this.type=t,this.tname=e,this.item=r,this.assoc=n}};var ro=class{constructor(t,e,r=0){this.type=t,this.index=e,this.assoc=r}},no=(t,e,r=0)=>new ro(t,e,r),Yt=(t,e,r)=>{let n=null,s=null;return t._item===null?s=os(t):n=y(t._item.id.client,t._item.id.clock),new cs(n,s,e,r)},ea=(t,e,r=0)=>{let n=t._start;if(r<0){if(e===0)return Yt(t,null,r);e--}for(;n!==null;){if(!n.deleted&&n.countable){if(n.length>e)return Yt(t,y(n.id.client,n.id.clock+e),r);e-=n.length}if(n.right===null&&r<0)return Yt(t,n.lastId,r);n=n.right}return Yt(t,null,r)},so=(t,e)=>{let{type:r,tname:n,item:s,assoc:i}=e;if(s!==null)w(t,0),tn(t,s);else if(n!==null)Mt(t,1),st(t,n);else if(r!==null)Mt(t,2),tn(t,r);else throw T();return de(t,i),t},ra=t=>{let e=St();return so(e,t),P(e)},io=t=>{let e=null,r=null,n=null;switch(k(t)){case 0:n=en(t);break;case 1:r=it(t);break;case 2:e=en(t)}let s=mn(t)?pe(t):0;return new cs(e,r,n,s)},na=t=>io(et(t)),lo=(t,e)=>{let r=pt(t,e),n=e.clock-r.id.clock;return{item:r,diff:n}},sa=(t,e,r=!0)=>{let n=e.store,s=t.item,i=t.type,l=t.tname,o=t.assoc,c=null,u=0;if(s!==null){if(E(n,s.client)<=s.clock)return null;let a=r?er(n,s):lo(n,s),h=a.item;if(!(h instanceof S))return null;if(c=h.parent,c._item===null||!c._item.deleted){u=h.deleted||!h.countable?0:a.diff+(o>=0?0:1);let d=h.left;for(;d!==null;)!d.deleted&&d.countable&&(u+=d.length),d=d.left}}else{if(l!==null)c=e.get(l);else if(i!==null){if(E(n,i.client)<=i.clock)return null;let{item:a}=r?er(n,i):{item:pt(n,i)};if(a instanceof S&&a.content instanceof rt)c=a.content.type;else return null}else throw T();o>=0?u=c._length:u=0}return no(c,u,t.assoc)};var oo=class{constructor(t,e){this.ds=t,this.sv=e}};var co=(t,e)=>new oo(t,e),ia=co(Zn(),new Map);var dt=(t,e)=>e===void 0?!t.deleted:e.sv.has(t.id.client)&&(e.sv.get(t.id.client)||0)>t.id.clock&&!Jt(e.ds,t.id),Je=(t,e)=>{let r=tt(t.meta,Je,wt),n=t.doc.store;r.has(e)||(e.sv.forEach((s,i)=>{s<E(n,i)&&U(t,y(i,s))}),_t(t,e.ds,s=>{}),r.add(e))};var as=class{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}},Se=t=>{let e=new Map;return t.clients.forEach((r,n)=>{let s=r[r.length-1];e.set(n,s.id.clock+s.length)}),e},E=(t,e)=>{let r=t.clients.get(e);if(r===void 0)return 0;let n=r[r.length-1];return n.id.clock+n.length},hs=(t,e)=>{let r=t.clients.get(e.id.client);if(r===void 0)r=[],t.clients.set(e.id.client,r);else{let n=r[r.length-1];if(n.id.clock+n.length!==e.id.clock)throw T()}r.push(e)},Y=(t,e)=>{let r=0,n=t.length-1,s=t[n],i=s.id.clock;if(i===e)return n;let l=B(e/(i+s.length-1)*n);for(;r<=n;){if(s=t[l],i=s.id.clock,i<=e){if(e<i+s.length)return l;r=l+1}else n=l-1;l=B((r+n)/2)}throw T()},ao=(t,e)=>{let r=t.clients.get(e.client);return r[Y(r,e.clock)]},pt=ao,ze=(t,e,r)=>{let n=Y(e,r),s=e[n];return s.id.clock<r&&s instanceof S?(e.splice(n+1,0,ue(t,s,r-s.id.clock)),n+1):n},U=(t,e)=>{let r=t.doc.store.clients.get(e.client);return r[ze(t,r,e.clock)]},rn=(t,e,r)=>{let n=e.clients.get(r.client),s=Y(n,r.clock),i=n[s];return r.clock!==i.id.clock+i.length-1&&i.constructor!==F&&n.splice(s+1,0,ue(t,i,r.clock-i.id.clock+1)),i},ho=(t,e,r)=>{let n=t.clients.get(e.id.client);n[Y(n,e.id.clock)]=r},us=(t,e,r,n,s)=>{if(n===0)return;let i=r+n,l=ze(t,e,r),o;do o=e[l++],i<o.id.clock+o.length&&ze(t,e,i),s(o);while(l<e.length&&e[l].id.clock<i)},uo=class{constructor(t,e,r){this.doc=t,this.deleteSet=new Et,this.beforeState=Se(t.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=e,this.meta=new Map,this.local=r,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}},nn=(t,e)=>e.deleteSet.clients.size===0&&!Ks(e.afterState,(r,n)=>e.beforeState.get(n)!==r)?!1:(mr(e.deleteSet),Hl(t,e),Ct(t,e.deleteSet),!0),sn=(t,e,r)=>{let n=e._item;(n===null||n.id.clock<(t.beforeState.get(n.id.client)||0)&&!n.deleted)&&tt(t.changed,e,wt).add(r)},Zt=(t,e)=>{let r=t[e],n=t[e-1],s=e;for(;s>0;r=n,n=t[--s-1]){if(n.deleted===r.deleted&&n.constructor===r.constructor&&n.mergeWith(r)){r instanceof S&&r.parentSub!==null&&r.parent._map.get(r.parentSub)===r&&r.parent._map.set(r.parentSub,n);continue}break}let i=e-s;return i&&t.splice(e+1-i,i),i},go=(t,e,r)=>{for(let[n,s]of t.clients.entries()){let i=e.clients.get(n);for(let l=s.length-1;l>=0;l--){let o=s[l],c=o.clock+o.len;for(let u=Y(i,o.clock),a=i[u];u<i.length&&a.id.clock<c;a=i[++u]){let h=i[u];if(o.clock+o.len<=h.id.clock)break;h instanceof S&&h.deleted&&!h.keep&&r(h)&&h.gc(e,!1)}}}},fo=(t,e)=>{t.clients.forEach((r,n)=>{let s=e.clients.get(n);for(let i=r.length-1;i>=0;i--){let l=r[i],o=fn(s.length-1,1+Y(s,l.clock+l.len-1));for(let c=o,u=s[c];c>0&&u.id.clock>=l.clock;u=s[c])c-=1+Zt(s,c)}})};var ds=(t,e)=>{if(e<t.length){let r=t[e],n=r.doc,s=n.store,i=r.deleteSet,l=r._mergeStructs;try{mr(i),r.afterState=Se(r.doc.store),n.emit("beforeObserverCalls",[r,n]);let o=[];r.changed.forEach((c,u)=>o.push(()=>{(u._item===null||!u._item.deleted)&&u._callObserver(r,c)})),o.push(()=>{r.changedParentTypes.forEach((c,u)=>{u._dEH.l.length>0&&(u._item===null||!u._item.deleted)&&(c=c.filter(a=>a.target._item===null||!a.target._item.deleted),c.forEach(a=>{a.currentTarget=u,a._path=null}),c.sort((a,h)=>a.path.length-h.path.length),ls(u._dEH,c,r))})}),o.push(()=>n.emit("afterTransaction",[r,n])),hr(o,[]),r._needFormattingCleanup&&Lo(r)}finally{n.gc&&go(i,s,n.gcFilter),fo(i,s),r.afterState.forEach((a,h)=>{let d=r.beforeState.get(h)||0;if(d!==a){let g=s.clients.get(h),f=at(Y(g,d),1);for(let m=g.length-1;m>=f;)m-=1+Zt(g,m)}});for(let a=l.length-1;a>=0;a--){let{client:h,clock:d}=l[a].id,g=s.clients.get(h),f=Y(g,d);f+1<g.length&&Zt(g,f+1)>1||f>0&&Zt(g,f)}if(!r.local&&r.afterState.get(n.clientID)!==r.beforeState.get(n.clientID)&&(Pl(pr,Yn,"[yjs] ",Kn,Hn,"Changed the client-id because another client seems to be using it."),n.clientID=ts()),n.emit("afterTransactionCleanup",[r,n]),n._observers.has("update")){let a=new _e;nn(a,r)&&n.emit("update",[a.toUint8Array(),r.origin,n,r])}if(n._observers.has("updateV2")){let a=new ot;nn(a,r)&&n.emit("updateV2",[a.toUint8Array(),r.origin,n,r])}let{subdocsAdded:o,subdocsLoaded:c,subdocsRemoved:u}=r;(o.size>0||u.size>0||c.size>0)&&(o.forEach(a=>{a.clientID=n.clientID,a.collectionid==null&&(a.collectionid=n.collectionid),n.subdocs.add(a)}),u.forEach(a=>n.subdocs.delete(a)),n.emit("subdocs",[{loaded:c,added:o,removed:u},n,r]),u.forEach(a=>a.destroy())),t.length<=e+1?(n._transactionCleanups=[],n.emit("afterAllTransactions",[n,t])):ds(t,e+1)}}},_=(t,e,r=null,n=!0)=>{let s=t._transactionCleanups,i=!1,l=null;t._transaction===null&&(i=!0,t._transaction=new uo(t,r,n),s.push(t._transaction),s.length===1&&t.emit("beforeAllTransactions",[t]),t.emit("beforeTransaction",[t._transaction,t]));try{l=e(t._transaction)}finally{if(i){let o=t._transaction===s[0];t._transaction=null,o&&ds(s,0)}}return l},po=class{constructor(t,e){this.insertions=e,this.deletions=t,this.meta=new Map}},ln=(t,e,r)=>{_t(t,r.deletions,n=>{n instanceof S&&e.scope.some(s=>s===t.doc||le(s,n))&&Ur(n,!1)})},on=(t,e,r)=>{let n=null,s=t.doc,i=t.scope;_(s,o=>{for(;e.length>0&&t.currStackItem===null;){let c=s.store,u=e.pop(),a=new Set,h=[],d=!1;_t(o,u.insertions,g=>{if(g instanceof S){if(g.redone!==null){let{item:f,diff:m}=er(c,g.id);m>0&&(f=U(o,y(f.id.client,f.id.clock+m))),g=f}!g.deleted&&i.some(f=>f===o.doc||le(f,g))&&h.push(g)}}),_t(o,u.deletions,g=>{g instanceof S&&i.some(f=>f===o.doc||le(f,g))&&!Jt(u.insertions,g.id)&&a.add(g)}),a.forEach(g=>{d=js(o,g,a,u.insertions,t.ignoreRemoteMapChanges,t)!==null||d});for(let g=h.length-1;g>=0;g--){let f=h[g];t.deleteFilter(f)&&(f.delete(o),d=!0)}t.currStackItem=d?u:null}o.changed.forEach((c,u)=>{c.has(null)&&u._searchMarker&&(u._searchMarker.length=0)}),n=o},t);let l=t.currStackItem;if(l!=null){let o=n.changedParentTypes;t.emit("stack-item-popped",[{stackItem:l,type:r,changedParentTypes:o,origin:t},t]),t.currStackItem=null}return l},la=class extends gn{constructor(t,{captureTimeout:e=500,captureTransaction:r=o=>!0,deleteFilter:n=()=>!0,trackedOrigins:s=new Set([null]),ignoreRemoteMapChanges:i=!1,doc:l=mt(t)?t[0].doc:t instanceof Dt?t:t.doc}={}){super(),this.scope=[],this.doc=l,this.addToScope(t),this.deleteFilter=n,s.add(this),this.trackedOrigins=s,this.captureTransaction=r,this.undoStack=[],this.redoStack=[],this.undoing=!1,this.redoing=!1,this.currStackItem=null,this.lastChange=0,this.ignoreRemoteMapChanges=i,this.captureTimeout=e,this.afterTransactionHandler=o=>{if(!this.captureTransaction(o)||!this.scope.some(m=>o.changedParentTypes.has(m)||m===this.doc)||!this.trackedOrigins.has(o.origin)&&(!o.origin||!this.trackedOrigins.has(o.origin.constructor)))return;let c=this.undoing,u=this.redoing,a=c?this.redoStack:this.undoStack;c?this.stopCapturing():u||this.clear(!1,!0);let h=new Et;o.afterState.forEach((m,N)=>{let v=o.beforeState.get(N)||0,Bt=m-v;Bt>0&&Rt(h,N,v,Bt)});let d=yn(),g=!1;if(this.lastChange>0&&d-this.lastChange<this.captureTimeout&&a.length>0&&!c&&!u){let m=a[a.length-1];m.deletions=$e([m.deletions,o.deleteSet]),m.insertions=$e([m.insertions,h])}else a.push(new po(o.deleteSet,h)),g=!0;!c&&!u&&(this.lastChange=d),_t(o,o.deleteSet,m=>{m instanceof S&&this.scope.some(N=>N===o.doc||le(N,m))&&Ur(m,!0)});let f=[{stackItem:a[a.length-1],origin:o.origin,type:c?"redo":"undo",changedParentTypes:o.changedParentTypes},this];g?this.emit("stack-item-added",f):this.emit("stack-item-updated",f)},this.doc.on("afterTransaction",this.afterTransactionHandler),this.doc.on("destroy",()=>{this.destroy()})}addToScope(t){let e=new Set(this.scope);t=mt(t)?t:[t],t.forEach(r=>{e.has(r)||(e.add(r),(r instanceof x?r.doc!==this.doc:r!==this.doc)&&qn("[yjs#509] Not same Y.Doc"),this.scope.push(r))})}addTrackedOrigin(t){this.trackedOrigins.add(t)}removeTrackedOrigin(t){this.trackedOrigins.delete(t)}clear(t=!0,e=!0){(t&&this.canUndo()||e&&this.canRedo())&&this.doc.transact(r=>{t&&(this.undoStack.forEach(n=>ln(r,this,n)),this.undoStack=[]),e&&(this.redoStack.forEach(n=>ln(r,this,n)),this.redoStack=[]),this.emit("stack-cleared",[{undoStackCleared:t,redoStackCleared:e}])})}stopCapturing(){this.lastChange=0}undo(){this.undoing=!0;let t;try{t=on(this,this.undoStack,"undo")}finally{this.undoing=!1}return t}redo(){this.redoing=!0;let t;try{t=on(this,this.redoStack,"redo")}finally{this.redoing=!1}return t}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this),this.doc.off("afterTransaction",this.afterTransactionHandler),super.destroy()}};function*wo(t){let e=k(t.restDecoder);for(let r=0;r<e;r++){let n=k(t.restDecoder),s=t.readClient(),i=k(t.restDecoder);for(let l=0;l<n;l++){let o=t.readInfo();if(o===10){let c=k(t.restDecoder);yield new j(y(s,i),c),i+=c}else if((31&o)!==0){let c=(o&192)===0,u=new S(y(s,i),null,(o&128)===128?t.readLeftID():null,null,(o&64)===64?t.readRightID():null,c?t.readParentInfo()?t.readString():t.readLeftID():null,c&&(o&32)===32?t.readString():null,Fs(t,o));yield u,i+=u.length}else{let c=t.readLen();yield new F(y(s,i),c),i+=c}}}}var ve=class{constructor(t,e){this.gen=wo(t),this.curr=null,this.done=!1,this.filterSkips=e,this.next()}next(){do this.curr=this.gen.next().value||null;while(this.filterSkips&&this.curr!==null&&this.curr.constructor===j);return this.curr}};var _r=class{constructor(t){this.currClient=0,this.startClock=0,this.written=0,this.encoder=t,this.clientStructs=[]}},mo=t=>oe(t,zl,_e),oa=(t,e=yr,r=lt)=>{let n=new e,s=new ve(new r(et(t)),!1),i=s.curr;if(i!==null){let l=0,o=i.id.client,c=i.id.clock!==0,u=c?0:i.id.clock+i.length;for(;i!==null;i=s.next())o!==i.id.client&&(u!==0&&(l++,w(n.restEncoder,o),w(n.restEncoder,u)),o=i.id.client,u=0,c=i.id.clock!==0),i.constructor===j&&(c=!0),c||(u=i.id.clock+i.length);u!==0&&(l++,w(n.restEncoder,o),w(n.restEncoder,u));let a=St();return w(a,l),hi(a,n.restEncoder),n.restEncoder=a,n.toUint8Array()}else return w(n.restEncoder,0),n.toUint8Array()};var ko=(t,e)=>{if(t.constructor===F){let{client:r,clock:n}=t.id;return new F(y(r,n+e),t.length-e)}else if(t.constructor===j){let{client:r,clock:n}=t.id;return new j(y(r,n+e),t.length-e)}else{let r=t,{client:n,clock:s}=r.id;return new S(y(n,s+e),null,y(n,s+e-1),null,r.rightOrigin,r.parent,r.parentSub,r.content.splice(e))}},oe=(t,e=lt,r=ot)=>{if(t.length===1)return t[0];let n=t.map(a=>new e(et(a))),s=n.map(a=>new ve(a,!0)),i=null,l=new r,o=new _r(l);for(;s=s.filter(a=>a.curr!==null),s.sort((a,h)=>{if(a.curr.id.client===h.curr.id.client){let d=a.curr.id.clock-h.curr.id.clock;return d===0?a.curr.constructor===h.curr.constructor?0:a.curr.constructor===j?1:-1:d}else return h.curr.id.client-a.curr.id.client}),s.length!==0;){let a=s[0],h=a.curr.id.client;if(i!==null){let d=a.curr,g=!1;for(;d!==null&&d.id.clock+d.length<=i.struct.id.clock+i.struct.length&&d.id.client>=i.struct.id.client;)d=a.next(),g=!0;if(d===null||d.id.client!==h||g&&d.id.clock>i.struct.id.clock+i.struct.length)continue;if(h!==i.struct.id.client)X(o,i.struct,i.offset),i={struct:d,offset:0},a.next();else if(i.struct.id.clock+i.struct.length<d.id.clock)if(i.struct.constructor===j)i.struct.length=d.id.clock+d.length-i.struct.id.clock;else{X(o,i.struct,i.offset);let f=d.id.clock-i.struct.id.clock-i.struct.length;i={struct:new j(y(h,i.struct.id.clock+i.struct.length),f),offset:0}}else{let f=i.struct.id.clock+i.struct.length-d.id.clock;f>0&&(i.struct.constructor===j?i.struct.length-=f:d=ko(d,f)),i.struct.mergeWith(d)||(X(o,i.struct,i.offset),i={struct:d,offset:0},a.next())}}else i={struct:a.curr,offset:0},a.next();for(let d=a.curr;d!==null&&d.id.client===h&&d.id.clock===i.struct.id.clock+i.struct.length&&d.constructor!==j;d=a.next())X(o,i.struct,i.offset),i={struct:d,offset:0}}i!==null&&(X(o,i.struct,i.offset),i=null),Sr(o);let c=n.map(a=>kr(a)),u=$e(c);return Ct(l,u),l.toUint8Array()},yo=(t,e,r=lt,n=ot)=>{let s=ss(e),i=new n,l=new _r(i),o=new r(et(t)),c=new ve(o,!1);for(;c.curr;){let a=c.curr,h=a.id.client,d=s.get(h)||0;if(c.curr.constructor===j){c.next();continue}if(a.id.clock+a.length>d)for(X(l,a,at(d-a.id.clock,0)),c.next();c.curr&&c.curr.id.client===h;)X(l,c.curr,0),c.next();else for(;c.curr&&c.curr.id.client===h&&c.curr.id.clock+c.curr.length<=d;)c.next()}Sr(l);let u=kr(o);return Ct(i,u),i.toUint8Array()};var gs=t=>{t.written>0&&(t.clientStructs.push({written:t.written,restEncoder:P(t.encoder.restEncoder)}),t.encoder.restEncoder=St(),t.written=0)},X=(t,e,r)=>{t.written>0&&t.currClient!==e.id.client&&gs(t),t.written===0&&(t.currClient=e.id.client,t.encoder.writeClient(e.id.client),w(t.encoder.restEncoder,e.id.clock+r)),e.write(t.encoder,r),t.written++},Sr=t=>{gs(t);let e=t.encoder.restEncoder;w(e,t.clientStructs.length);for(let r=0;r<t.clientStructs.length;r++){let n=t.clientStructs[r];w(e,n.written),Vt(e,n.restEncoder)}},bo=(t,e,r,n)=>{let s=new r(et(t)),i=new ve(s,!1),l=new n,o=new _r(l);for(let u=i.curr;u!==null;u=i.next())X(o,e(u),0);Sr(o);let c=kr(s);return Ct(l,c),l.toUint8Array()};var _o=t=>bo(t,Pi,lt,_e),cn="You must not compute changes after the event-handler fired.",Ee=class{constructor(t,e){this.target=t,this.currentTarget=t,this.transaction=e,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=So(this.currentTarget,this.target))}deletes(t){return Jt(this.transaction.deleteSet,t.id)}get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0)throw W(cn);let t=new Map,e=this.target;this.transaction.changed.get(e).forEach(r=>{if(r!==null){let n=e._map.get(r),s,i;if(this.adds(n)){let l=n.left;for(;l!==null&&this.adds(l);)l=l.left;if(this.deletes(n))if(l!==null&&this.deletes(l))s="delete",i=Oe(l.content.getContent());else return;else l!==null&&this.deletes(l)?(s="update",i=Oe(l.content.getContent())):(s="add",i=void 0)}else if(this.deletes(n))s="delete",i=Oe(n.content.getContent());else return;t.set(r,{action:s,oldValue:i})}}),this._keys=t}return this._keys}get delta(){return this.changes.delta}adds(t){return t.id.clock>=(this.transaction.beforeState.get(t.id.client)||0)}get changes(){let t=this._changes;if(t===null){if(this.transaction.doc._transactionCleanups.length===0)throw W(cn);let e=this.target,r=wt(),n=wt(),s=[];if(t={added:r,deleted:n,delta:s,keys:this.keys},this.transaction.changed.get(e).has(null)){let i=null,l=()=>{i&&s.push(i)};for(let o=e._start;o!==null;o=o.right)o.deleted?this.deletes(o)&&!this.adds(o)&&((i===null||i.delete===void 0)&&(l(),i={delete:0}),i.delete+=o.length,n.add(o)):this.adds(o)?((i===null||i.insert===void 0)&&(l(),i={insert:[]}),i.insert=i.insert.concat(o.content.getContent()),r.add(o)):((i===null||i.retain===void 0)&&(l(),i={retain:0}),i.retain+=o.length);i!==null&&i.retain===void 0&&l()}this._changes=t}return t}},So=(t,e)=>{let r=[];for(;e._item!==null&&e!==t;){if(e._item.parentSub!==null)r.unshift(e._item.parentSub);else{let n=0,s=e._item.parent._start;for(;s!==e._item&&s!==null;)!s.deleted&&s.countable&&(n+=s.length),s=s.right;r.unshift(n)}e=e._item.parent}return r},I=()=>{qn("Invalid access: Add Yjs type to a document before reading data.")},fs=80,vr=0,vo=class{constructor(t,e){t.marker=!0,this.p=t,this.index=e,this.timestamp=vr++}},Eo=t=>{t.timestamp=vr++},ps=(t,e,r)=>{t.p.marker=!1,t.p=e,e.marker=!0,t.index=r,t.timestamp=vr++},Co=(t,e,r)=>{if(t.length>=fs){let n=t.reduce((s,i)=>s.timestamp<i.timestamp?s:i);return ps(n,e,r),n}else{let n=new vo(e,r);return t.push(n),n}},Ce=(t,e)=>{if(t._start===null||e===0||t._searchMarker===null)return null;let r=t._searchMarker.length===0?null:t._searchMarker.reduce((i,l)=>Gt(e-i.index)<Gt(e-l.index)?i:l),n=t._start,s=0;for(r!==null&&(n=r.p,s=r.index,Eo(r));n.right!==null&&s<e;){if(!n.deleted&&n.countable){if(e<s+n.length)break;s+=n.length}n=n.right}for(;n.left!==null&&s>e;)n=n.left,!n.deleted&&n.countable&&(s-=n.length);for(;n.left!==null&&n.left.id.client===n.id.client&&n.left.id.clock+n.left.length===n.id.clock;)n=n.left,!n.deleted&&n.countable&&(s-=n.length);return r!==null&&Gt(r.index-s)<n.parent.length/fs?(ps(r,n,s),r):Co(t._searchMarker,n,s)},jt=(t,e,r)=>{for(let n=t.length-1;n>=0;n--){let s=t[n];if(r>0){let i=s.p;for(i.marker=!1;i&&(i.deleted||!i.countable);)i=i.left,i&&!i.deleted&&i.countable&&(s.index-=i.length);if(i===null||i.marker===!0){t.splice(n,1);continue}s.p=i,i.marker=!0}(e<s.index||r>0&&e===s.index)&&(s.index=at(e,s.index+r))}};var De=(t,e,r)=>{let n=t,s=e.changedParentTypes;for(;tt(s,t,()=>[]).push(r),t._item!==null;)t=t._item.parent;ls(n._eH,r,e)},x=class{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=Xr(),this._dEH=Xr(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(t,e){this.doc=t,this._item=e}_copy(){throw $()}clone(){throw $()}_write(t){}get _first(){let t=this._start;for(;t!==null&&t.deleted;)t=t.right;return t}_callObserver(t,e){!t.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(t){Qr(this._eH,t)}observeDeep(t){Qr(this._dEH,t)}unobserve(t){Zr(this._eH,t)}unobserveDeep(t){Zr(this._dEH,t)}toJSON(){}},ws=(t,e,r)=>{t.doc??I(),e<0&&(e=t._length+e),r<0&&(r=t._length+r);let n=r-e,s=[],i=t._start;for(;i!==null&&n>0;){if(i.countable&&!i.deleted){let l=i.content.getContent();if(l.length<=e)e-=l.length;else{for(let o=e;o<l.length&&n>0;o++)s.push(l[o]),n--;e=0}}i=i.right}return s},ms=t=>{t.doc??I();let e=[],r=t._start;for(;r!==null;){if(r.countable&&!r.deleted){let n=r.content.getContent();for(let s=0;s<n.length;s++)e.push(n[s])}r=r.right}return e};var Ft=(t,e)=>{let r=0,n=t._start;for(t.doc??I();n!==null;){if(n.countable&&!n.deleted){let s=n.content.getContent();for(let i=0;i<s.length;i++)e(s[i],r++,t)}n=n.right}},ks=(t,e)=>{let r=[];return Ft(t,(n,s)=>{r.push(e(n,s,t))}),r},Do=t=>{let e=t._start,r=null,n=0;return{[Symbol.iterator](){return this},next:()=>{if(r===null){for(;e!==null&&e.deleted;)e=e.right;if(e===null)return{done:!0,value:void 0};r=e.content.getContent(),n=0,e=e.right}let s=r[n++];return r.length<=n&&(r=null),{done:!1,value:s}}}},ys=(t,e)=>{t.doc??I();let r=Ce(t,e),n=t._start;for(r!==null&&(n=r.p,e-=r.index);n!==null;n=n.right)if(!n.deleted&&n.countable){if(e<n.length)return n.content.getContent()[e];e-=n.length}},ce=(t,e,r,n)=>{let s=r,i=t.doc,l=i.clientID,o=i.store,c=r===null?e._start:r.right,u=[],a=()=>{u.length>0&&(s=new S(y(l,E(o,l)),s,s&&s.lastId,c,c&&c.id,e,null,new he(u)),s.integrate(t,0),u=[])};n.forEach(h=>{if(h===null)u.push(h);else switch(h.constructor){case Number:case Object:case Boolean:case Array:case String:u.push(h);break;default:switch(a(),h.constructor){case Uint8Array:case ArrayBuffer:s=new S(y(l,E(o,l)),s,s&&s.lastId,c,c&&c.id,e,null,new Ir(new Uint8Array(h))),s.integrate(t,0);break;case Dt:s=new S(y(l,E(o,l)),s,s&&s.lastId,c,c&&c.id,e,null,new Mr(h)),s.integrate(t,0);break;default:if(h instanceof x)s=new S(y(l,E(o,l)),s,s&&s.lastId,c,c&&c.id,e,null,new rt(h)),s.integrate(t,0);else throw new Error("Unexpected content type in insert operation")}}}),a()},bs=()=>W("Length exceeded!"),_s=(t,e,r,n)=>{if(r>e._length)throw bs();if(r===0)return e._searchMarker&&jt(e._searchMarker,r,n.length),ce(t,e,null,n);let s=r,i=Ce(e,r),l=e._start;for(i!==null&&(l=i.p,r-=i.index,r===0&&(l=l.prev,r+=l&&l.countable&&!l.deleted?l.length:0));l!==null;l=l.right)if(!l.deleted&&l.countable){if(r<=l.length){r<l.length&&U(t,y(l.id.client,l.id.clock+r));break}r-=l.length}return e._searchMarker&&jt(e._searchMarker,s,n.length),ce(t,e,l,n)},xo=(t,e,r)=>{let n=(e._searchMarker||[]).reduce((s,i)=>i.index>s.index?i:s,{index:0,p:e._start}).p;if(n)for(;n.right;)n=n.right;return ce(t,e,n,r)},Ss=(t,e,r,n)=>{if(n===0)return;let s=r,i=n,l=Ce(e,r),o=e._start;for(l!==null&&(o=l.p,r-=l.index);o!==null&&r>0;o=o.right)!o.deleted&&o.countable&&(r<o.length&&U(t,y(o.id.client,o.id.clock+r)),r-=o.length);for(;n>0&&o!==null;)o.deleted||(n<o.length&&U(t,y(o.id.client,o.id.clock+n)),o.delete(t),n-=o.length),o=o.right;if(n>0)throw bs();e._searchMarker&&jt(e._searchMarker,s,-i+n)},ae=(t,e,r)=>{let n=e._map.get(r);n!==void 0&&n.delete(t)},Er=(t,e,r,n)=>{let s=e._map.get(r)||null,i=t.doc,l=i.clientID,o;if(n==null)o=new he([n]);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:o=new he([n]);break;case Uint8Array:o=new Ir(n);break;case Dt:o=new Mr(n);break;default:if(n instanceof x)o=new rt(n);else throw new Error("Unexpected content type")}new S(y(l,E(i.store,l)),s,s&&s.lastId,null,null,e,r,o).integrate(t,0)},Cr=(t,e)=>{t.doc??I();let r=t._map.get(e);return r!==void 0&&!r.deleted?r.content.getContent()[r.length-1]:void 0},vs=t=>{let e={};return t.doc??I(),t._map.forEach((r,n)=>{r.deleted||(e[n]=r.content.getContent()[r.length-1])}),e},Es=(t,e)=>{t.doc??I();let r=t._map.get(e);return r!==void 0&&!r.deleted};var Ao=(t,e)=>{let r={};return t._map.forEach((n,s)=>{let i=n;for(;i!==null&&(!e.sv.has(i.id.client)||i.id.clock>=(e.sv.get(i.id.client)||0));)i=i.left;i!==null&&dt(i,e)&&(r[s]=i.content.getContent()[i.length-1])}),r},Kt=t=>(t.doc??I(),Vl(t._map.entries(),e=>!e[1].deleted)),Oo=class extends Ee{},Cs=class te extends x{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){let r=new te;return r.push(e),r}_integrate(e,r){super._integrate(e,r),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new te}clone(){let e=new te;return e.insert(0,this.toArray().map(r=>r instanceof x?r.clone():r)),e}get length(){return this.doc??I(),this._length}_callObserver(e,r){super._callObserver(e,r),De(this,e,new Oo(this,e))}insert(e,r){this.doc!==null?_(this.doc,n=>{_s(n,this,e,r)}):this._prelimContent.splice(e,0,...r)}push(e){this.doc!==null?_(this.doc,r=>{xo(r,this,e)}):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,r=1){this.doc!==null?_(this.doc,n=>{Ss(n,this,e,r)}):this._prelimContent.splice(e,r)}get(e){return ys(this,e)}toArray(){return ms(this)}slice(e=0,r=this.length){return ws(this,e,r)}toJSON(){return this.map(e=>e instanceof x?e.toJSON():e)}map(e){return ks(this,e)}forEach(e){Ft(this,e)}[Symbol.iterator](){return Do(this)}_write(e){e.writeTypeRef(nc)}},Io=t=>new Cs,Mo=class extends Ee{constructor(t,e,r){super(t,e),this.keysChanged=r}},Dr=class Be extends x{constructor(e){super(),this._prelimContent=null,e===void 0?this._prelimContent=new Map:this._prelimContent=new Map(e)}_integrate(e,r){super._integrate(e,r),this._prelimContent.forEach((n,s)=>{this.set(s,n)}),this._prelimContent=null}_copy(){return new Be}clone(){let e=new Be;return this.forEach((r,n)=>{e.set(n,r instanceof x?r.clone():r)}),e}_callObserver(e,r){De(this,e,new Mo(this,e,r))}toJSON(){this.doc??I();let e={};return this._map.forEach((r,n)=>{if(!r.deleted){let s=r.content.getContent()[r.length-1];e[n]=s instanceof x?s.toJSON():s}}),e}get size(){return[...Kt(this)].length}keys(){return Ne(Kt(this),e=>e[0])}values(){return Ne(Kt(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return Ne(Kt(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??I(),this._map.forEach((r,n)=>{r.deleted||e(r.content.getContent()[r.length-1],n,this)})}[Symbol.iterator](){return this.entries()}delete(e){this.doc!==null?_(this.doc,r=>{ae(r,this,e)}):this._prelimContent.delete(e)}set(e,r){return this.doc!==null?_(this.doc,n=>{Er(n,this,e,r)}):this._prelimContent.set(e,r),r}get(e){return Cr(this,e)}has(e){return Es(this,e)}clear(){this.doc!==null?_(this.doc,e=>{this.forEach(function(r,n,s){ae(e,s,n)})}):this._prelimContent.clear()}_write(e){e.writeTypeRef(sc)}},Uo=t=>new Dr,Q=(t,e)=>t===e||typeof t=="object"&&typeof e=="object"&&t&&e&&ji(t,e),We=class{constructor(t,e,r,n){this.left=t,this.right=e,this.index=r,this.currentAttributes=n}forward(){this.right===null&&T(),this.right.content.constructor===O?this.right.deleted||xt(this.currentAttributes,this.right.content):this.right.deleted||(this.index+=this.right.length),this.left=this.right,this.right=this.right.right}},an=(t,e,r)=>{for(;e.right!==null&&r>0;)e.right.content.constructor===O?e.right.deleted||xt(e.currentAttributes,e.right.content):e.right.deleted||(r<e.right.length&&U(t,y(e.right.id.client,e.right.id.clock+r)),e.index+=e.right.length,r-=e.right.length),e.left=e.right,e.right=e.right.right;return e},Ht=(t,e,r,n)=>{let s=new Map,i=n?Ce(e,r):null;if(i){let l=new We(i.p.left,i.p,i.index,s);return an(t,l,r-i.index)}else{let l=new We(null,e._start,0,s);return an(t,l,r)}},Ds=(t,e,r,n)=>{for(;r.right!==null&&(r.right.deleted===!0||r.right.content.constructor===O&&Q(n.get(r.right.content.key),r.right.content.value));)r.right.deleted||n.delete(r.right.content.key),r.forward();let s=t.doc,i=s.clientID;n.forEach((l,o)=>{let c=r.left,u=r.right,a=new S(y(i,E(s.store,i)),c,c&&c.lastId,u,u&&u.id,e,null,new O(o,l));a.integrate(t,0),r.right=a,r.forward()})},xt=(t,e)=>{let{key:r,value:n}=e;n===null?t.delete(r):t.set(r,n)},xs=(t,e)=>{for(;t.right!==null&&(t.right.deleted||t.right.content.constructor===O&&Q(e[t.right.content.key]??null,t.right.content.value));)t.forward()},As=(t,e,r,n)=>{let s=t.doc,i=s.clientID,l=new Map;for(let o in n){let c=n[o],u=r.currentAttributes.get(o)??null;if(!Q(u,c)){l.set(o,u);let{left:a,right:h}=r;r.right=new S(y(i,E(s.store,i)),a,a&&a.lastId,h,h&&h.id,e,null,new O(o,c)),r.right.integrate(t,0),r.forward()}}return l},Le=(t,e,r,n,s)=>{r.currentAttributes.forEach((d,g)=>{s[g]===void 0&&(s[g]=null)});let i=t.doc,l=i.clientID;xs(r,s);let o=As(t,e,r,s),c=n.constructor===String?new ct(n):n instanceof x?new rt(n):new zt(n),{left:u,right:a,index:h}=r;e._searchMarker&&jt(e._searchMarker,r.index,c.getLength()),a=new S(y(l,E(i.store,l)),u,u&&u.lastId,a,a&&a.id,e,null,c),a.integrate(t,0),r.right=a,r.index=h,r.forward(),Ds(t,e,r,o)},hn=(t,e,r,n,s)=>{let i=t.doc,l=i.clientID;xs(r,s);let o=As(t,e,r,s);t:for(;r.right!==null&&(n>0||o.size>0&&(r.right.deleted||r.right.content.constructor===O));){if(!r.right.deleted)switch(r.right.content.constructor){case O:{let{key:c,value:u}=r.right.content,a=s[c];if(a!==void 0){if(Q(a,u))o.delete(c);else{if(n===0)break t;o.set(c,u)}r.right.delete(t)}else r.currentAttributes.set(c,u);break}default:n<r.right.length&&U(t,y(r.right.id.client,r.right.id.clock+n)),n-=r.right.length;break}r.forward()}if(n>0){let c="";for(;n>0;n--)c+=`
4
+ `;r.right=new S(y(l,E(i.store,l)),r.left,r.left&&r.left.lastId,r.right,r.right&&r.right.id,e,null,new ct(c)),r.right.integrate(t,0),r.forward()}Ds(t,e,r,o)},Os=(t,e,r,n,s)=>{let i=e,l=V();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===O){let u=i.content;l.set(u.key,u)}i=i.right}let o=0,c=!1;for(;e!==i;){if(r===e&&(c=!0),!e.deleted){let u=e.content;if(u.constructor===O){let{key:a,value:h}=u,d=n.get(a)??null;(l.get(a)!==u||d===h)&&(e.delete(t),o++,!c&&(s.get(a)??null)===h&&d!==h&&(d===null?s.delete(a):s.set(a,d))),!c&&!e.deleted&&xt(s,u)}}e=e.right}return o},To=(t,e)=>{for(;e&&e.right&&(e.right.deleted||!e.right.countable);)e=e.right;let r=new Set;for(;e&&(e.deleted||!e.countable);){if(!e.deleted&&e.content.constructor===O){let n=e.content.key;r.has(n)?e.delete(t):r.add(n)}e=e.left}},No=t=>{let e=0;return _(t.doc,r=>{let n=t._start,s=t._start,i=V(),l=je(i);for(;s;)s.deleted===!1&&(s.content.constructor===O?xt(l,s.content):(e+=Os(r,n,s,i,l),i=je(l),n=s)),s=s.right}),e},Lo=t=>{let e=new Set,r=t.doc;for(let[n,s]of t.afterState.entries()){let i=t.beforeState.get(n)||0;s!==i&&us(t,r.store.clients.get(n),i,s,l=>{!l.deleted&&l.content.constructor===O&&l.constructor!==F&&e.add(l.parent)})}_(r,n=>{_t(t,t.deleteSet,s=>{if(s instanceof F||!s.parent._hasFormatting||e.has(s.parent))return;let i=s.parent;s.content.constructor===O?e.add(i):To(n,s)});for(let s of e)No(s)})},un=(t,e,r)=>{let n=r,s=je(e.currentAttributes),i=e.right;for(;r>0&&e.right!==null;){if(e.right.deleted===!1)switch(e.right.content.constructor){case rt:case zt:case ct:r<e.right.length&&U(t,y(e.right.id.client,e.right.id.clock+r)),r-=e.right.length,e.right.delete(t);break}e.forward()}i&&Os(t,i,e.right,s,e.currentAttributes);let l=(e.left||e.right).parent;return l._searchMarker&&jt(l._searchMarker,e.index,-n+r),e},Ro=class extends Ee{constructor(t,e,r){super(t,e),this.childListChanged=!1,this.keysChanged=new Set,r.forEach(n=>{n===null?this.childListChanged=!0:this.keysChanged.add(n)})}get changes(){if(this._changes===null){let t={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=t}return this._changes}get delta(){if(this._delta===null){let t=this.target.doc,e=[];_(t,r=>{let n=new Map,s=new Map,i=this.target._start,l=null,o={},c="",u=0,a=0,h=()=>{if(l!==null){let d=null;switch(l){case"delete":a>0&&(d={delete:a}),a=0;break;case"insert":(typeof c=="object"||c.length>0)&&(d={insert:c},n.size>0&&(d.attributes={},n.forEach((g,f)=>{g!==null&&(d.attributes[f]=g)}))),c="";break;case"retain":u>0&&(d={retain:u},Ri(o)||(d.attributes=Ti({},o))),u=0;break}d&&e.push(d),l=null}};for(;i!==null;){switch(i.content.constructor){case rt:case zt:this.adds(i)?this.deletes(i)||(h(),l="insert",c=i.content.getContent()[0],h()):this.deletes(i)?(l!=="delete"&&(h(),l="delete"),a+=1):i.deleted||(l!=="retain"&&(h(),l="retain"),u+=1);break;case ct:this.adds(i)?this.deletes(i)||(l!=="insert"&&(h(),l="insert"),c+=i.content.str):this.deletes(i)?(l!=="delete"&&(h(),l="delete"),a+=i.length):i.deleted||(l!=="retain"&&(h(),l="retain"),u+=i.length);break;case O:{let{key:d,value:g}=i.content;if(this.adds(i)){if(!this.deletes(i)){let f=n.get(d)??null;Q(f,g)?g!==null&&i.delete(r):(l==="retain"&&h(),Q(g,s.get(d)??null)?delete o[d]:o[d]=g)}}else if(this.deletes(i)){s.set(d,g);let f=n.get(d)??null;Q(f,g)||(l==="retain"&&h(),o[d]=f)}else if(!i.deleted){s.set(d,g);let f=o[d];f!==void 0&&(Q(f,g)?f!==null&&i.delete(r):(l==="retain"&&h(),g===null?delete o[d]:o[d]=g))}i.deleted||(l==="insert"&&h(),xt(n,i.content));break}}i=i.right}for(h();e.length>0;){let d=e[e.length-1];if(d.retain!==void 0&&d.attributes===void 0)e.pop();else break}}),this._delta=e}return this._delta}},xr=class Ye extends x{constructor(e){super(),this._pending=e!==void 0?[()=>this.insert(0,e)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??I(),this._length}_integrate(e,r){super._integrate(e,r);try{this._pending.forEach(n=>n())}catch(n){console.error(n)}this._pending=null}_copy(){return new Ye}clone(){let e=new Ye;return e.applyDelta(this.toDelta()),e}_callObserver(e,r){super._callObserver(e,r);let n=new Ro(this,e,r);De(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??I();let e="",r=this._start;for(;r!==null;)!r.deleted&&r.countable&&r.content.constructor===ct&&(e+=r.content.str),r=r.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:r=!0}={}){this.doc!==null?_(this.doc,n=>{let s=new We(null,this._start,0,new Map);for(let i=0;i<e.length;i++){let l=e[i];if(l.insert!==void 0){let o=!r&&typeof l.insert=="string"&&i===e.length-1&&s.right===null&&l.insert.slice(-1)===`
5
+ `?l.insert.slice(0,-1):l.insert;(typeof o!="string"||o.length>0)&&Le(n,this,s,o,l.attributes||{})}else l.retain!==void 0?hn(n,this,s,l.retain,l.attributes||{}):l.delete!==void 0&&un(n,s,l.delete)}}):this._pending.push(()=>this.applyDelta(e))}toDelta(e,r,n){this.doc??I();let s=[],i=new Map,l=this.doc,o="",c=this._start;function u(){if(o.length>0){let h={},d=!1;i.forEach((f,m)=>{d=!0,h[m]=f});let g={insert:o};d&&(g.attributes=h),s.push(g),o=""}}let a=()=>{for(;c!==null;){if(dt(c,e)||r!==void 0&&dt(c,r))switch(c.content.constructor){case ct:{let h=i.get("ychange");e!==void 0&&!dt(c,e)?(h===void 0||h.user!==c.id.client||h.type!=="removed")&&(u(),i.set("ychange",n?n("removed",c.id):{type:"removed"})):r!==void 0&&!dt(c,r)?(h===void 0||h.user!==c.id.client||h.type!=="added")&&(u(),i.set("ychange",n?n("added",c.id):{type:"added"})):h!==void 0&&(u(),i.delete("ychange")),o+=c.content.str;break}case rt:case zt:{u();let h={insert:c.content.getContent()[0]};if(i.size>0){let d={};h.attributes=d,i.forEach((g,f)=>{d[f]=g})}s.push(h);break}case O:dt(c,e)&&(u(),xt(i,c.content));break}c=c.right}u()};return e||r?_(l,h=>{e&&Je(h,e),r&&Je(h,r),a()},"cleanup"):a(),s}insert(e,r,n){if(r.length<=0)return;let s=this.doc;s!==null?_(s,i=>{let l=Ht(i,this,e,!n);n||(n={},l.currentAttributes.forEach((o,c)=>{n[c]=o})),Le(i,this,l,r,n)}):this._pending.push(()=>this.insert(e,r,n))}insertEmbed(e,r,n){let s=this.doc;s!==null?_(s,i=>{let l=Ht(i,this,e,!n);Le(i,this,l,r,n||{})}):this._pending.push(()=>this.insertEmbed(e,r,n||{}))}delete(e,r){if(r===0)return;let n=this.doc;n!==null?_(n,s=>{un(s,Ht(s,this,e,!0),r)}):this._pending.push(()=>this.delete(e,r))}format(e,r,n){if(r===0)return;let s=this.doc;s!==null?_(s,i=>{let l=Ht(i,this,e,!1);l.right!==null&&hn(i,this,l,r,n)}):this._pending.push(()=>this.format(e,r,n))}removeAttribute(e){this.doc!==null?_(this.doc,r=>{ae(r,this,e)}):this._pending.push(()=>this.removeAttribute(e))}setAttribute(e,r){this.doc!==null?_(this.doc,n=>{Er(n,this,e,r)}):this._pending.push(()=>this.setAttribute(e,r))}getAttribute(e){return Cr(this,e)}getAttributes(){return vs(this)}_write(e){e.writeTypeRef(ic)}},jo=t=>new xr,Re=class{constructor(t,e=()=>!0){this._filter=e,this._root=t,this._currentNode=t._start,this._firstCall=!0,t.doc??I()}[Symbol.iterator](){return this}next(){let t=this._currentNode,e=t&&t.content&&t.content.type;if(t!==null&&(!this._firstCall||t.deleted||!this._filter(e)))do if(e=t.content.type,!t.deleted&&(e.constructor===Ar||e.constructor===xe)&&e._start!==null)t=e._start;else for(;t!==null;){let r=t.next;if(r!==null){t=r;break}else t.parent===this._root?t=null:t=t.parent._item}while(t!==null&&(t.deleted||!this._filter(t.content.type)));return this._firstCall=!1,t===null?{value:void 0,done:!0}:(this._currentNode=t,{value:t.content.type,done:!1})}},xe=class Ke extends x{constructor(){super(),this._prelimContent=[]}get firstChild(){let e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,r){super._integrate(e,r),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Ke}clone(){let e=new Ke;return e.insert(0,this.toArray().map(r=>r instanceof x?r.clone():r)),e}get length(){return this.doc??I(),this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(e){return new Re(this,e)}querySelector(e){e=e.toUpperCase();let r=new Re(this,n=>n.nodeName&&n.nodeName.toUpperCase()===e).next();return r.done?null:r.value}querySelectorAll(e){return e=e.toUpperCase(),Z(new Re(this,r=>r.nodeName&&r.nodeName.toUpperCase()===e))}_callObserver(e,r){De(this,e,new Vo(this,r,e))}toString(){return ks(this,e=>e.toString()).join("")}toJSON(){return this.toString()}toDOM(e=document,r={},n){let s=e.createDocumentFragment();return n!==void 0&&n._createAssociation(s,this),Ft(this,i=>{s.insertBefore(i.toDOM(e,r,n),null)}),s}insert(e,r){this.doc!==null?_(this.doc,n=>{_s(n,this,e,r)}):this._prelimContent.splice(e,0,...r)}insertAfter(e,r){if(this.doc!==null)_(this.doc,n=>{let s=e&&e instanceof x?e._item:e;ce(n,this,s,r)});else{let n=this._prelimContent,s=e===null?0:n.findIndex(i=>i===e)+1;if(s===0&&e!==null)throw W("Reference item not found");n.splice(s,0,...r)}}delete(e,r=1){this.doc!==null?_(this.doc,n=>{Ss(n,this,e,r)}):this._prelimContent.splice(e,r)}toArray(){return ms(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return ys(this,e)}slice(e=0,r=this.length){return ws(this,e,r)}forEach(e){Ft(this,e)}_write(e){e.writeTypeRef(oc)}},Fo=t=>new xe,Ar=class He extends xe{constructor(e="UNDEFINED"){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,r){super._integrate(e,r),this._prelimAttrs.forEach((n,s)=>{this.setAttribute(s,n)}),this._prelimAttrs=null}_copy(){return new He(this.nodeName)}clone(){let e=new He(this.nodeName),r=this.getAttributes();return Li(r,(n,s)=>{typeof n=="string"&&e.setAttribute(s,n)}),e.insert(0,this.toArray().map(n=>n instanceof x?n.clone():n)),e}toString(){let e=this.getAttributes(),r=[],n=[];for(let o in e)n.push(o);n.sort();let s=n.length;for(let o=0;o<s;o++){let c=n[o];r.push(c+'="'+e[c]+'"')}let i=this.nodeName.toLocaleLowerCase(),l=r.length>0?" "+r.join(" "):"";return`<${i}${l}>${super.toString()}</${i}>`}removeAttribute(e){this.doc!==null?_(this.doc,r=>{ae(r,this,e)}):this._prelimAttrs.delete(e)}setAttribute(e,r){this.doc!==null?_(this.doc,n=>{Er(n,this,e,r)}):this._prelimAttrs.set(e,r)}getAttribute(e){return Cr(this,e)}hasAttribute(e){return Es(this,e)}getAttributes(e){return e?Ao(this,e):vs(this)}toDOM(e=document,r={},n){let s=e.createElement(this.nodeName),i=this.getAttributes();for(let l in i){let o=i[l];typeof o=="string"&&s.setAttribute(l,o)}return Ft(this,l=>{s.appendChild(l.toDOM(e,r,n))}),n!==void 0&&n._createAssociation(s,this),s}_write(e){e.writeTypeRef(lc),e.writeKey(this.nodeName)}},Po=t=>new Ar(t.readKey()),Vo=class extends Ee{constructor(t,e,r){super(t,r),this.childListChanged=!1,this.attributesChanged=new Set,e.forEach(n=>{n===null?this.childListChanged=!0:this.attributesChanged.add(n)})}},$o=class Ge extends Dr{constructor(e){super(),this.hookName=e}_copy(){return new Ge(this.hookName)}clone(){let e=new Ge(this.hookName);return this.forEach((r,n)=>{e.set(n,r)}),e}toDOM(e=document,r={},n){let s=r[this.hookName],i;return s!==void 0?i=s.createDom(this):i=document.createElement(this.hookName),i.setAttribute("data-yjs-hook",this.hookName),n!==void 0&&n._createAssociation(i,this),i}_write(e){e.writeTypeRef(cc),e.writeKey(this.hookName)}},Jo=t=>new $o(t.readKey()),zo=class qe extends xr{get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new qe}clone(){let e=new qe;return e.applyDelta(this.toDelta()),e}toDOM(e=document,r,n){let s=e.createTextNode(this.toString());return n!==void 0&&n._createAssociation(s,this),s}toString(){return this.toDelta().map(e=>{let r=[];for(let s in e.attributes){let i=[];for(let l in e.attributes[s])i.push({key:l,value:e.attributes[s][l]});i.sort((l,o)=>l.key<o.key?-1:1),r.push({nodeName:s,attrs:i})}r.sort((s,i)=>s.nodeName<i.nodeName?-1:1);let n="";for(let s=0;s<r.length;s++){let i=r[s];n+=`<${i.nodeName}`;for(let l=0;l<i.attrs.length;l++){let o=i.attrs[l];n+=` ${o.key}="${o.value}"`}n+=">"}n+=e.insert;for(let s=r.length-1;s>=0;s--)n+=`</${r[s].nodeName}>`;return n}).join("")}toJSON(){return this.toString()}_write(e){e.writeTypeRef(ac)}},Bo=t=>new zo,Or=class{constructor(t,e){this.id=t,this.length=e}get deleted(){throw $()}mergeWith(t){return!1}write(t,e,r){throw $()}integrate(t,e){throw $()}},Wo=0,F=class extends Or{get deleted(){return!0}delete(){}mergeWith(t){return this.constructor!==t.constructor?!1:(this.length+=t.length,!0)}integrate(t,e){e>0&&(this.id.clock+=e,this.length-=e),hs(t.doc.store,this)}write(t,e){t.writeInfo(Wo),t.writeLen(this.length-e)}getMissing(t,e){return null}},Ir=class Is{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Is(this.content)}splice(e){throw $()}mergeWith(e){return!1}integrate(e,r){}delete(e){}gc(e){}write(e,r){e.writeBuf(this.content)}getRef(){return 3}},Yo=t=>new Ir(t.readBuf()),Ms=class Xe{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Xe(this.len)}splice(e){let r=new Xe(this.len-e);return this.len=e,r}mergeWith(e){return this.len+=e.len,!0}integrate(e,r){Rt(e.deleteSet,r.id.client,r.id.clock,this.len),r.markDeleted()}delete(e){}gc(e){}write(e,r){e.writeLen(this.len-r)}getRef(){return 1}},Ko=t=>new Ms(t.readLen()),Us=(t,e)=>new Dt({guid:t,...e,shouldLoad:e.shouldLoad||e.autoLoad||!1}),Mr=class Ts{constructor(e){e._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=e;let r={};this.opts=r,e.gc||(r.gc=!1),e.autoLoad&&(r.autoLoad=!0),e.meta!==null&&(r.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Ts(Us(this.doc.guid,this.opts))}splice(e){throw $()}mergeWith(e){return!1}integrate(e,r){this.doc._item=r,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,r){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}},Ho=t=>new Mr(Us(t.readString(),t.readAny())),zt=class Ns{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new Ns(this.embed)}splice(e){throw $()}mergeWith(e){return!1}integrate(e,r){}delete(e){}gc(e){}write(e,r){e.writeJSON(this.embed)}getRef(){return 5}},Go=t=>new zt(t.readJSON()),O=class Ls{constructor(e,r){this.key=e,this.value=r}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Ls(this.key,this.value)}splice(e){throw $()}mergeWith(e){return!1}integrate(e,r){let n=r.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,r){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}},qo=t=>new O(t.readKey(),t.readJSON()),Xo=class Qe{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Qe(this.arr)}splice(e){let r=new Qe(this.arr.slice(e));return this.arr=this.arr.slice(0,e),r}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,r){}delete(e){}gc(e){}write(e,r){let n=this.arr.length;e.writeLen(n-r);for(let s=r;s<n;s++){let i=this.arr[s];e.writeString(i===void 0?"undefined":JSON.stringify(i))}}getRef(){return 2}},Qo=t=>{let e=t.readLen(),r=[];for(let n=0;n<e;n++){let s=t.readString();s==="undefined"?r.push(void 0):r.push(JSON.parse(s))}return new Xo(r)},Zo=ne("node_env")==="development",he=class Ze{constructor(e){this.arr=e,Zo&&Sn(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new Ze(this.arr)}splice(e){let r=new Ze(this.arr.slice(e));return this.arr=this.arr.slice(0,e),r}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,r){}delete(e){}gc(e){}write(e,r){let n=this.arr.length;e.writeLen(n-r);for(let s=r;s<n;s++){let i=this.arr[s];e.writeAny(i)}}getRef(){return 8}},tc=t=>{let e=t.readLen(),r=[];for(let n=0;n<e;n++)r.push(t.readAny());return new he(r)},ct=class tr{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new tr(this.str)}splice(e){let r=new tr(this.str.slice(e));this.str=this.str.slice(0,e);let n=this.str.charCodeAt(e-1);return n>=55296&&n<=56319&&(this.str=this.str.slice(0,e-1)+"\uFFFD",r.str="\uFFFD"+r.str.slice(1)),r}mergeWith(e){return this.str+=e.str,!0}integrate(e,r){}delete(e){}gc(e){}write(e,r){e.writeString(r===0?this.str:this.str.slice(r))}getRef(){return 4}},ec=t=>new ct(t.readString()),rc=[Io,Uo,jo,Po,Fo,Jo,Bo],nc=0,sc=1,ic=2,lc=3,oc=4,cc=5,ac=6,rt=class Rs{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Rs(this.type._copy())}splice(e){throw $()}mergeWith(e){return!1}integrate(e,r){this.type._integrate(e.doc,r)}delete(e){let r=this.type._start;for(;r!==null;)r.deleted?r.id.clock<(e.beforeState.get(r.id.client)||0)&&e._mergeStructs.push(r):r.delete(e),r=r.right;this.type._map.forEach(n=>{n.deleted?n.id.clock<(e.beforeState.get(n.id.client)||0)&&e._mergeStructs.push(n):n.delete(e)}),e.changed.delete(this.type)}gc(e){let r=this.type._start;for(;r!==null;)r.gc(e,!0),r=r.right;this.type._start=null,this.type._map.forEach(n=>{for(;n!==null;)n.gc(e,!0),n=n.left}),this.type._map=new Map}write(e,r){this.type._write(e)}getRef(){return 7}},hc=t=>new rt(rc[t.readTypeRef()](t)),er=(t,e)=>{let r=e,n=0,s;do n>0&&(r=y(r.client,r.clock+n)),s=pt(t,r),n=r.clock-s.id.clock,r=s.redone;while(r!==null&&s instanceof S);return{item:s,diff:n}},Ur=(t,e)=>{for(;t!==null&&t.keep!==e;)t.keep=e,t=t.parent._item},ue=(t,e,r)=>{let{client:n,clock:s}=e.id,i=new S(y(n,s+r),e,y(n,s+r-1),e.right,e.rightOrigin,e.parent,e.parentSub,e.content.splice(r));return e.deleted&&i.markDeleted(),e.keep&&(i.keep=!0),e.redone!==null&&(i.redone=y(e.redone.client,e.redone.clock+r)),e.right=i,i.right!==null&&(i.right.left=i),t._mergeStructs.push(i),i.parentSub!==null&&i.right===null&&i.parent._map.set(i.parentSub,i),e.length=r,i},dn=(t,e)=>ir(t,r=>Jt(r.deletions,e)),js=(t,e,r,n,s,i)=>{let l=t.doc,o=l.store,c=l.clientID,u=e.redone;if(u!==null)return U(t,u);let a=e.parent._item,h=null,d;if(a!==null&&a.deleted===!0){if(a.redone===null&&(!r.has(a)||js(t,a,r,n,s,i)===null))return null;for(;a.redone!==null;)a=U(t,a.redone)}let g=a===null?e.parent:a.content.type;if(e.parentSub===null){for(h=e.left,d=e;h!==null;){let v=h;for(;v!==null&&v.parent._item!==a;)v=v.redone===null?null:U(t,v.redone);if(v!==null&&v.parent._item===a){h=v;break}h=h.left}for(;d!==null;){let v=d;for(;v!==null&&v.parent._item!==a;)v=v.redone===null?null:U(t,v.redone);if(v!==null&&v.parent._item===a){d=v;break}d=d.right}}else if(d=null,e.right&&!s){for(h=e;h!==null&&h.right!==null&&(h.right.redone||Jt(n,h.right.id)||dn(i.undoStack,h.right.id)||dn(i.redoStack,h.right.id));)for(h=h.right;h.redone;)h=U(t,h.redone);if(h&&h.right!==null)return null}else h=g._map.get(e.parentSub)||null;let f=E(o,c),m=y(c,f),N=new S(m,h,h&&h.lastId,d,d&&d.id,g,e.parentSub,e.content.copy());return e.redone=m,Ur(N,!0),N.integrate(t,0),N},S=class rr extends Or{constructor(e,r,n,s,i,l,o,c){super(e,c.getLength()),this.origin=n,this.left=r,this.right=s,this.rightOrigin=i,this.parent=l,this.parentSub=o,this.redone=null,this.content=c,this.info=this.content.isCountable()?2:0}set marker(e){(this.info&8)>0!==e&&(this.info^=8)}get marker(){return(this.info&8)>0}get keep(){return(this.info&1)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(this.info&2)>0}get deleted(){return(this.info&4)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(e,r){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=E(r,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=E(r,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===ft&&this.id.client!==this.parent.client&&this.parent.clock>=E(r,this.parent.client))return this.parent.client;if(this.origin&&(this.left=rn(e,r,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=U(e,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===F||this.right&&this.right.constructor===F)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===rr?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===rr&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===ft){let n=pt(r,this.parent);n.constructor===F?this.parent=null:this.parent=n.content.type}return null}integrate(e,r){if(r>0&&(this.id.clock+=r,this.left=rn(e,e.doc.store,y(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(r),this.length-=r),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let n=this.left,s;if(n!==null)s=n.right;else if(this.parentSub!==null)for(s=this.parent._map.get(this.parentSub)||null;s!==null&&s.left!==null;)s=s.left;else s=this.parent._start;let i=new Set,l=new Set;for(;s!==null&&s!==this.right;){if(l.add(s),i.add(s),Wt(this.origin,s.origin)){if(s.id.client<this.id.client)n=s,i.clear();else if(Wt(this.rightOrigin,s.rightOrigin))break}else if(s.origin!==null&&l.has(pt(e.doc.store,s.origin)))i.has(pt(e.doc.store,s.origin))||(n=s,i.clear());else break;s=s.right}this.left=n}if(this.left!==null){let n=this.left.right;this.right=n,this.left.right=this}else{let n;if(this.parentSub!==null)for(n=this.parent._map.get(this.parentSub)||null;n!==null&&n.left!==null;)n=n.left;else n=this.parent._start,this.parent._start=this;this.right=n}this.right!==null?this.right.left=this:this.parentSub!==null&&(this.parent._map.set(this.parentSub,this),this.left!==null&&this.left.delete(e)),this.parentSub===null&&this.countable&&!this.deleted&&(this.parent._length+=this.length),hs(e.doc.store,this),this.content.integrate(e,this),sn(e,this.parent,this.parentSub),(this.parent._item!==null&&this.parent._item.deleted||this.parentSub!==null&&this.right!==null)&&this.delete(e)}else new F(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;e!==null&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;e!==null&&e.deleted;)e=e.left;return e}get lastId(){return this.length===1?this.id:y(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&Wt(e.origin,this.lastId)&&this.right===e&&Wt(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&this.redone===null&&e.redone===null&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){let r=this.parent._searchMarker;return r&&r.forEach(n=>{n.p===e&&(n.p=this,!this.deleted&&this.countable&&(n.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,this.right!==null&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){let r=this.parent;this.countable&&this.parentSub===null&&(r._length-=this.length),this.markDeleted(),Rt(e.deleteSet,this.id.client,this.id.clock,this.length),sn(e,r,this.parentSub),this.content.delete(e)}}gc(e,r){if(!this.deleted)throw T();this.content.gc(e),r?ho(e,this,new F(this.id,this.length)):this.content=new Ms(this.length)}write(e,r){let n=r>0?y(this.id.client,this.id.clock+r-1):this.origin,s=this.rightOrigin,i=this.parentSub,l=this.content.getRef()&31|(n===null?0:128)|(s===null?0:64)|(i===null?0:32);if(e.writeInfo(l),n!==null&&e.writeLeftID(n),s!==null&&e.writeRightID(s),n===null&&s===null){let o=this.parent;if(o._item!==void 0){let c=o._item;if(c===null){let u=os(o);e.writeParentInfo(!0),e.writeString(u)}else e.writeParentInfo(!1),e.writeLeftID(c.id)}else o.constructor===String?(e.writeParentInfo(!0),e.writeString(o)):o.constructor===ft?(e.writeParentInfo(!1),e.writeLeftID(o)):T();i!==null&&e.writeString(i)}this.content.write(e,r)}},Fs=(t,e)=>uc[e&31](t),uc=[()=>{T()},Ko,Qo,Yo,ec,Go,qo,hc,tc,Ho,()=>{T()}],dc=10,j=class extends Or{get deleted(){return!0}delete(){}mergeWith(t){return this.constructor!==t.constructor?!1:(this.length+=t.length,!0)}integrate(t,e){T()}write(t,e){t.writeInfo(dc),w(t.restEncoder,this.length-e)}getMissing(t,e){return null}},Ps=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:{},Vs="__ $YJS$ __";Ps[Vs]===!0&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438");Ps[Vs]=!0;var mh="page-local",kh="page-net",yh="page-seed",bh=Fr,_h=Symbol("page-history"),Sh=Object.freeze(["flow","attrs","gone","boardFields","tableFields","origins"]),fc=new Set(["id","pos"]),vh=t=>[...Object.keys(t.spec.attrs||{}).filter(e=>!fc.has(e)),...t.name==="table"?["rows"]:[]],Eh=(t,e)=>t.name==="table"&&e==="rows"?{}:t.spec.attrs[e].default,Ch=(t,e)=>JSON.stringify(t)===JSON.stringify(e),Dh=t=>`${t.client}.${t.clock}`,xh=t=>{let e=t.indexOf(".");return{client:+t.slice(0,e),clock:+t.slice(e+1)}},Ah=t=>t>=55296&&t<=56319,Oh=t=>t>=56320&&t<=57343,pc=0,Ih=t=>`${t.ydoc.clientID.toString(36)}-${(pc++).toString(36)}`,wc=0,Mh=t=>`b${t.ydoc.clientID.toString(36)}${(wc++).toString(36)}`;function Uh(t=new Dt){return{ydoc:t,flow:t.getText("flow"),attrs:t.getMap("attrs"),gone:t.getMap("gone"),boardFields:t.getMap("boardFields"),tableFields:t.getMap("tableFields"),origins:t.getMap("origins")}}var mc=t=>t.split("!")[0].split("~")[0],$s=t=>t.includes("!"),Rh=t=>{let e={};for(let r of t)e[r.type.name]=r.attrs&&Object.keys(r.attrs).length?{...r.attrs}:!0;return e},jh=t=>{let e={};for(let r of t){if(Nr(r)){for(let[n,s]of Object.entries(Rr(r.attrs.entries)))e[n]=JSON.parse(JSON.stringify(s));continue}e[r.type.name]=r.attrs&&Object.keys(r.attrs).length?{...r.attrs}:!0}return e},Fh=t=>t.map(e=>e.type.name+(e.attrs&&Object.keys(e.attrs).length?JSON.stringify(e.attrs):"")).sort().join("|");function Ph(t,e){if(e==="code_block")return[];let r=new Map,n=new Set;for(let l of Object.keys(t))$s(l)&&t[l]&&n.add(l.split("!")[0]);for(let l of Object.keys(t).sort()){let o=t[l];o==null||$s(l)||n.has(l)||r.set(mc(l),o)}let s=[],i=null;for(let[l,o]of r)Ae.marks[l]?s.push(Ae.marks[l].create(o===!0?null:o)):(i??={})[l]=o;if(i){let l=jr(i);l.length&&s.push(Lr(l))}return s}var nt=t=>Number.isSafeInteger(t)&&t>=0,J=t=>{throw new RangeError(t)},Js=t=>(t!=="before"&&t!=="after"&&J(`Unknown affinity: ${t}`),t),zs=(t,e,r)=>{let n=0,s=t.length;for(;n<s;){let i=n+s>>1;e(t[i])<=r?n=i+1:s=i}return n};function $h(t,e){(!t||typeof t!="object"||!nt(t.tokens))&&J("A projection map needs a walk result with a token count"),nt(e)||J("A projection map needs a nonnegative physical length");let r=t.holes===void 0?[]:t.holes;Array.isArray(r)||J("A projection map needs the walk holes");let n=[],s=[],i=[0],l=0,o=0,c=-1,u=p=>{n.push({logicalStart:l,logicalLength:p,physicalStart:o,physicalLength:p,kind:"visible"}),l+=p,o+=p},a=p=>{let b=s[s.length-1];b&&b.at===l?(b.length+=p,b.end+=p,n[n.length-1].physicalLength+=p,i[i.length-1]+=p):(s.push({at:l,start:o,end:o+p,length:p}),n.push({logicalStart:l,logicalLength:0,physicalStart:o,physicalLength:p,kind:"hidden"}),i.push(i[i.length-1]+p)),o+=p};for(let p of r)(!p||typeof p!="object"||!nt(p.at)||!nt(p.len))&&J("Malformed walk hole"),p.at<c&&J("Walk holes are out of order"),p.at>t.tokens&&J("A walk hole sits past the logical length"),c=p.at,p.at>l&&u(p.at-l),p.len&&a(p.len);l<t.tokens&&u(t.tokens-l),o!==e&&J("Walk holes do not account for the physical length");let h=p=>zs(s,b=>b.at,p),d=p=>zs(s,b=>b.end,p),g=p=>p+i[h(p)],f=p=>{let b=s[h(p)-1];return b&&b.at===p?b:null},m=p=>{let b=s[d(p)];return b&&b.start<=p?b:null},N=(p,b)=>{let K=Js(b);(!nt(p)||p>t.tokens)&&J(`Logical position ${p} is outside the map`);let H=f(p);return H?K==="before"?H.start:H.end:g(p)},v=(p,b)=>{Js(b),(!nt(p)||p>e)&&J(`Physical position ${p} is outside the flow`);let K=m(p);return K?K.at:p-i[d(p)]},Bt=(p,b)=>{(!nt(p)||!nt(b)||p>t.tokens||b>t.tokens)&&J(`Logical range ${p}..${b} is outside the map`);let K=[];if(b<=p)return K;let H=g(p);for(let At of s)if(!(At.at<=p)){if(At.at>b)break;At.start>H&&K.push([H,At.start]),H=At.end}let Tr=g(b);return Tr>H&&K.push([H,Tr]),K};return{segments:n,logicalLength:t.tokens,physicalLength:e,toPhysical:N,toLogical:v,physicalRanges:Bt}}export{xc as a,Ac as b,_t as c,Jl as d,Qc as e,Dt as f,ql as g,Zc as h,ss as i,ta as j,ea as k,ra as l,na as m,sa as n,pt as o,la as p,oa as q,oe as r,Dr as s,zt as t,O as u,ct as v,S as w,mh as x,kh as y,yh as z,bh as A,_h as B,Sh as C,vh as D,Eh as E,Ch as F,Dh as G,xh as H,Ah as I,Oh as J,Ih as K,Mh as L,Uh as M,mc as N,$s as O,Rh as P,jh as Q,Fh as R,Ph as S,$h as T};
@@ -0,0 +1 @@
1
+ import{e as k}from"./c-N326R2JD.js";import{a as w}from"./c-2SPVQSHC.js";import{i as v}from"./c-7O6AFR65.js";var j=new Set(["accepted","reverted","reconciled"]),T=Math.random().toString(36).slice(2,8),z=0,l=new Map,f=new Map,p=new Set,h=new Set,x=null,O=20,y=null,b=null,u=[];function E(){b??=import("./c-IZ2EBRAJ.js").then(e=>{for(y=e;u.length;)y.keep(u.shift())},e=>{b=null,console.error("clayjs: the conflict recovery module could not be downloaded; conflicts stay in this tab only",e)})}v&&E();function S(e=""){return`${T}:${e}${++z}`}function m(){return x||=w({id:"live-sync-conflicts",isPending:()=>l.size>0||p.size>0}),x}function g(e){m().changed(),document.dispatchEvent(new CustomEvent("clay:sync-conflicts-changed",{detail:{open:[...l.keys()],added:[],removedIds:[],updatedIds:[],...e}}))}function $(e){let t=e.recovery;return t?t.applied===!1&&t.unavailable==="hook-veto"?!1:t.localLost!==!1:!0}var C=["kind","id","label","field"];function I(e){if(!e||typeof e!="object")return null;let t={};for(let n of C){let o=e[n];typeof o=="string"&&o?t[n]=o:typeof o=="number"&&Number.isFinite(o)&&(t[n]=String(o))}return Object.keys(t).length?t:null}function F(e){let t=I(e);return t?(typeof e.open=="function"&&(t.open=e.open),t):null}function A(e,t){for(let n of[...h].reverse()){let o;try{o=n(e,t)}catch(r){console.error("clayjs: a conflict context resolver threw; the conflict stays generic",r);continue}let c=F(o);if(c)return c}return null}function L(e){if(typeof e!="function")throw new TypeError("clay.conflicts.registerContext needs a resolver function");return h.add(e),()=>h.delete(e)}function B(e,t){let n=S(),o=Object.assign(t[0],{id:n,applyId:e.id,source:e.source,ticket:e.ticket,rawReports:t,claimedBy:null});return o.context=A(o,e),l.set(n,o),e.ids.add(n),n}function D({source:e,seq:t=null,etag:n=null,domain:o,root:c,recoveryRoot:r=null}){let i=S("a");return f.set(i,{id:i,source:e,seq:t,etag:n,ticket:0,domain:o,root:c,recoveryRoot:r,ids:new Set}),p.add(i),m().changed(),i}function N(e){if(!e.every(n=>n.kind==="structure"&&n.detail==="insert-collision"&&n.recovery?.applied===!0&&!n.recovery.unavailable&&n.recovery.structure?.localAction==="inserted"&&n.recovery.structure.fragmentKind==="element"))return null;let t=e[0].recovery.subject;return t?.local?.length!==1||t.merged?.length!==1||t.live?.length!==1?null:{local:t.local[0],merged:t.merged[0],live:t.live[0]}}function P(e){let t=new Map(e.map(r=>[r,N(r)])),n=(r,i)=>r.length<i.length&&r.every((s,d)=>s===i[d]),o=(r,i)=>i.reduce((s,d)=>d==="content"?s?.content:s?.childNodes[d],r),c=new Map;for(let r of e){let i=t.get(r),s=r;if(i)for(let d of e){let a=t.get(d);a&&a.local.length<t.get(s).local.length&&n(a.local,i.local)&&n(a.merged,i.merged)&&(a.live.contains(i.live)||o(a.live,i.merged.slice(a.merged.length))===i.live)&&(s=d)}c.has(s)||c.set(s,[...s]),r!==s&&c.get(s).push(...r)}return[...c.values()]}function M(e,t){let n=t.map(c=>l.get(c)).filter(Boolean);if(!n.length)return;let o={apply:e,records:n.map(c=>({rec:c,context:I(c.context)}))};if(y)return y.keep(o);u.push(o),u.length>O&&u.shift(),E()}function Q(e,t,{ticket:n}){let o=f.get(e);if(!o)return[];o.ticket=n;let c=new Map;for(let i of t){if(!$(i))continue;let s=i.recovery?.key??Symbol();c.has(s)||c.set(s,[]),c.get(s).push(i)}let r=P([...c.values()]).map(i=>B(o,i));return r.length&&M(o,r),p.delete(e),r.length||f.delete(e),r.length?g({added:r.map(i=>l.get(i))}):m().changed(),r}function X(e,t,{ticket:n=0}={}){let o=f.get(e);if(!o)return[];o.ticket=n,p.delete(e);let c=B(o,[{kind:"apply-incomplete",detail:null,error:String(t)}]);return l.get(c).rawReports=[],M(o,[c]),g({added:[l.get(c)]}),[c]}var q={get size(){return l.size},list(){return[...l.values()]},get(e){return l.get(e)||null},acknowledge(e,{reason:t}={}){if(!Array.isArray(e))throw new TypeError("clay.conflicts.acknowledge needs an array of ids");if(!j.has(t))throw new TypeError(`clay.conflicts.acknowledge: unknown reason "${t}"`);let n=[];for(let o of e){let c=l.get(o);if(!c)continue;k(c),l.delete(o),n.push(o);let r=f.get(c.applyId);r&&(r.ids.delete(o),r.ids.size||f.delete(c.applyId))}return n.length&&(g({removedIds:n,reason:t}),import("./c-IZ2EBRAJ.js").then(o=>o.dismiss(n),()=>{})),{removedIds:n,remainingIds:[...l.keys()]}},claim(e,{owner:t}){if(!t)throw new TypeError("clay.conflicts.claim needs an owner");for(let c of e){let r=l.get(c);if(r&&r.claimedBy&&r.claimedBy!==t)throw new Error(`conflict ${c} is already claimed by ${r.claimedBy}`)}let n=[];for(let c of e){let r=l.get(c);r&&!r.claimedBy&&(r.claimedBy=t,n.push(c))}n.length&&g({updatedIds:n,reason:"claimed"});let o=!1;return{release(){if(o)return;o=!0;let c=n.filter(r=>l.get(r)?.claimedBy===t);for(let r of c)l.get(r).claimedBy=null;c.length&&g({updatedIds:c,reason:"released"})}}},registerContext:L,contextFor:A,recoveryOf(e){let t=l.get(e);return t&&f.get(t.applyId)||null},hasPendingApply(){return p.size>0}};export{E as a,L as b,D as c,Q as d,X as e,q as f};
@@ -0,0 +1,135 @@
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};
@@ -0,0 +1 @@
1
+ import{d as p}from"./c-AYVOREBE.js";import{i as u}from"./c-7O6AFR65.js";var d=window.__clayWorkspaceBackground===!0;document.addEventListener("clay:workspace-background",()=>{d=!0});document.addEventListener("clay:workspace-foreground",()=>{d=!1});var a=()=>document.hidden||d,m=class extends EventTarget{constructor(e,{shared:t=!1,sharedData:i=!1,documentURL:n,lane:s,clientId:o,startupCheck:c=!1,keepAliveWhenHidden:v=!1}={}){super(),this.url=e,this.readyState=0,this.onopen=null,this.onmessage=null,this.onerror=null,this._shared=t&&typeof SharedWorker=="function",this._sharedData=i,this._documentURL=n,this._lane=s,this._clientId=o,this._keepAliveWhenHidden=v,this._since=0,this._closed=!1,this._suspended=!1,this._repair=!1,this._startup=c,this._worker=null,this._source=null,this._visibility=()=>{clearTimeout(this._hiddenTimer),a()?(this._worker&&this._postWorker(this._worker,"hidden"),this._keepAliveWhenHidden||(this._hiddenTimer=setTimeout(()=>this._suspend(),5e3))):this._suspended?this._resume():this._worker&&this._postWorker(this._worker,"visible")},this._pagehide=()=>this._suspend(!0),this._pageshow=()=>{(!a()||this._keepAliveWhenHidden)&&this._resume()},document.addEventListener("visibilitychange",this._visibility),document.addEventListener("clay:workspace-background",this._visibility),document.addEventListener("clay:workspace-foreground",this._visibility),window.addEventListener("pagehide",this._pagehide),window.addEventListener("pageshow",this._pageshow),this._open(),a()&&this._visibility()}_emit(e,t){if(this._closed)return;let i=t===void 0?new Event(e):new MessageEvent(e,{data:t});this.dispatchEvent(i),this[`on${e}`]?.(i)}_postWorker(e,t,i={}){e.port.postMessage({v:this._sharedData?2:1,type:t,...i})}_open(){if(!(this._closed||this._suspended)){if(this.readyState=0,!this._shared)return this._openDirect();try{let e=new SharedWorker(new URL(this._sharedData?"/_/sync/data-worker.js":"/_/sync/worker.js",window.location.origin).href,this._sharedData?"clay-sync-data":"clay-sync");this._worker=e;let t=Date.now(),i=!1;e.onerror=()=>{this._worker===e&&(this._shared=!1,this._repair=!0,this._reopen())},this._startTimer=setTimeout(e.onerror,5e3),e.port.onmessage=({data:s})=>{if(!(this._worker!==e||s?.v!==(this._sharedData?2:1))){if(this._sharedData){if(s.type==="unsupported"){e.onerror();return}if(s.type==="gone"){this.readyState=2,this._emit("error"),this.close();return}if(!i){if(s.type!=="hello")return;if(!Array.isArray(s.features)||!s.features.includes("live-data")){e.onerror();return}i=!0,clearTimeout(this._startTimer),t=Date.now();return}if(s.type==="hello")return}if(t=Date.now(),!this._sharedData&&["status","pong","cursor","frame","gone"].includes(s.type)&&clearTimeout(this._startTimer),s.type==="status")s.state==="open"?(!this._sharedData||this.readyState!==1)&&(this.readyState=1,this._emit("open")):s.state==="connecting"&&(this.readyState=0,this._emit("error"));else if(s.type==="cursor"){clearTimeout(this._startTimer),Number.isSafeInteger(s.seq)&&(this._since=Math.max(this._since,s.seq));let o=s.resync===!0||this._repair,c=this._startup;this._repair=!1,this._startup=!1,this._emit("cursor",JSON.stringify({...s,resync:o,startup:c}))}else if(s.type==="frame"&&typeof s.data=="string")this._remember(s.data),this._emit("message",s.data);else if(this._sharedData&&s.type==="event"&&["data","data-state","data-writer"].includes(s.event)&&s.data!==null&&typeof s.data=="object"&&!Array.isArray(s.data))try{this._emit(s.event,JSON.stringify(s.data))}catch{}else s.type==="gone"&&(this.readyState=2,this._emit("error"),this.close())}},e.port.start(),this._postWorker(e,a()?"hidden":"visible");let n={document:this._documentURL,lane:this._lane,since:this._since};this._sharedData&&this._lane==="live"&&(n.clientId=this._clientId),this._postWorker(e,"subscribe",n),this._pingTimer=setInterval(()=>{this._worker===e&&(Date.now()-t>15e3*3?(this._repair=!0,this._reopen()):this._postWorker(e,"ping"))},15e3)}catch{this._shared=!1,this._reopen()}}}_openDirect(){let e=new EventSource(this.url);this._source=e,e.onopen=()=>{if(this._source===e&&(this.readyState=1,this._emit("open"),this._repair||this._startup)){let t=this._repair,i=this._startup;this._repair=!1,this._startup=!1,this._emit("cursor",JSON.stringify({resync:t,startup:i}))}},e.onerror=()=>{this._source===e&&(this.readyState=e.readyState,this._emit("error"))},e.onmessage=t=>{this._source===e&&(this._remember(t.data),this._emit("message",t.data))};for(let t of["cursor","presence","data","data-state","data-writer"])e.addEventListener(t,i=>{this._source===e&&this._emit(t,i.data)})}_remember(e){try{let{seq:t}=JSON.parse(e);Number.isSafeInteger(t)&&(this._since=Math.max(this._since,t))}catch{}}_disconnect(){if(clearTimeout(this._startTimer),clearInterval(this._pingTimer),this._worker){let e=this._worker;this._worker=null,e.onerror=null,e.port.onmessage=null;try{this._postWorker(e,"unsubscribe")}catch{}e.port.close()}this._source&&(this._source.close(),this._source=null)}_reopen(){let e=(this._sharedData||this._keepAliveWhenHidden)&&this.readyState===1;this.readyState=0,e&&this._emit("error"),this._disconnect(),this._open()}_suspend(e=!1){clearTimeout(this._hiddenTimer),!(this._closed||this._suspended)&&(this._suspended=!0,this._repair=!0,this.readyState=0,e&&this._keepAliveWhenHidden&&this._emit("error"),this._disconnect())}_resume(){clearTimeout(this._hiddenTimer),!(this._closed||!this._suspended)&&(this._suspended=!1,this._open())}close(){this._closed=!0,this.readyState=2,clearTimeout(this._hiddenTimer),this._disconnect(),document.removeEventListener("visibilitychange",this._visibility),document.removeEventListener("clay:workspace-background",this._visibility),document.removeEventListener("clay:workspace-foreground",this._visibility),window.removeEventListener("pagehide",this._pagehide),window.removeEventListener("pageshow",this._pageshow)}};var f="This document was upgraded.",h=!1;function l(r,e){let t=r.querySelector(`meta[name="${e}"]`),i=t?t.getAttribute("content"):null;return i&&i.trim()?i.trim():null}function g(r=document){return l(r,"hyper-version")}function w(r){return typeof r!="string"||!r.includes("hyper-version")?null:l(new DOMParser().parseFromString(r,"text/html"),"hyper-version")}function y(r){let e=g();return!!e&&!!r&&r!==e}function T(r){return h?!0:y(w(r))}function D(r){return h?!0:!r||typeof r.querySelector!="function"?!1:y(l(r,"hyper-version"))}function S(){if(h)return Promise.resolve();h=!0;let r=u?import("./core/save-WUCHTQBE.js").then(i=>i.holdAllSaves(f),()=>{}):Promise.resolve(),e=new CustomEvent("clay:document-upgraded",{detail:{message:f}}),t=u?Promise.resolve():import("./c-Z4VRC7GU.js").then(i=>i.start(e),()=>{});return document.dispatchEvent(e),Promise.all([r,t]).then(()=>{})}var _={spec:{name:"spec",relayPath:"/_/sync",documentHeader:"Document-URL",snapshotKey:"snapshot",streamPath:(r,e,t,i)=>`/_/sync?document-url=${encodeURIComponent(r)}&lane=${e}&resume-id=${t}&client-id=${encodeURIComponent(i)}`},legacy:{name:"legacy",relayPath:"/_/live-sync/save",documentHeader:"Page-URL",snapshotKey:"html",streamPath:(r,e,t,i)=>`/_/live-sync/stream?page-url=${encodeURIComponent(r)}&lane=${e}&resume-id=${t}&client-id=${encodeURIComponent(i)}`}};function I(){return p().then(r=>{let e=r?.extensions||[],t=e.includes("sync"),i=e.includes("live-data"),n=e.includes("presence"),s=t&&i&&e.includes("sync-worker-data")&&!n,o=t&&!n&&(s||e.includes("sync-worker")&&!i);return{profile:t?_.spec:_.legacy,sharedSync:o,sharedData:s,liveData:i}}).catch(()=>({profile:_.legacy,sharedSync:!1,sharedData:!1,liveData:!1}))}export{m as a,T as b,D as c,S as d,_ as e,I as f};
@@ -0,0 +1,7 @@
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};