@panphora/clayjs 1.17.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/clay-dom.js +1 -1
  3. package/dist/clay-events.js +1 -1
  4. package/dist/clay-internals.js +1 -1
  5. package/dist/clay-options.js +1 -1
  6. package/dist/clay-router.js +1 -1
  7. package/dist/clay-ui.js +1 -1
  8. package/dist/clay-utils.js +1 -1
  9. package/dist/clay.js +1 -1
  10. package/dist/clay.standalone.js +72474 -62090
  11. package/dist/m/attrs/{save-freeze-MYNVXREN.js → save-freeze-LWGF6XUN.js} +1 -1
  12. package/dist/m/c-2GRUM77Q.js +30 -0
  13. package/dist/m/c-2KIEGNC4.js +1 -0
  14. package/dist/m/{c-AMSNPOCX.js → c-2KL3BD52.js} +1 -1
  15. package/dist/m/c-2ZZBC45O.js +1 -0
  16. package/dist/m/c-372N6H3B.js +1 -0
  17. package/dist/m/{c-4WKFKEKF.js → c-3G2DGZUP.js} +1 -1
  18. package/dist/m/c-3LDGIBMN.js +1 -0
  19. package/dist/m/c-3O7OBDCM.js +1 -0
  20. package/dist/m/c-4ASQPRQL.js +1 -0
  21. package/dist/m/c-4TXNLX4K.js +6 -0
  22. package/dist/m/c-4YU3BR4D.js +6 -0
  23. package/dist/m/c-5734MF2P.js +1 -0
  24. package/dist/m/c-57XDY6HC.js +1 -0
  25. package/dist/m/{c-KAU6E43D.js → c-5B4YBZXC.js} +1 -1
  26. package/dist/m/c-5ONTYIUI.js +1 -0
  27. package/dist/m/c-5OOVFCJM.js +1 -0
  28. package/dist/m/{c-3XIRD4NU.js → c-5T6NZHNM.js} +1 -1
  29. package/dist/m/{c-74MGYWZF.js → c-5ZQV7KC4.js} +1 -1
  30. package/dist/m/{c-7OLLJPWP.js → c-6DB2OLRJ.js} +1 -1
  31. package/dist/m/c-6DNRCPNM.js +1 -0
  32. package/dist/m/c-6UGWFMQC.js +2 -0
  33. package/dist/m/c-7K4SCQB7.js +1 -0
  34. package/dist/m/c-7MG5RU63.js +1 -0
  35. package/dist/m/c-7PRJCA3E.js +1 -0
  36. package/dist/m/c-A6L3FMUS.js +1 -0
  37. package/dist/m/c-AMU3BPPR.js +4 -0
  38. package/dist/m/{c-Y5HBBIQ4.js → c-AMYEFA2E.js} +1 -1
  39. package/dist/m/c-AQYCG7QW.js +1 -0
  40. package/dist/m/c-ATKAOH23.js +1 -0
  41. package/dist/m/c-B5CS55WR.js +1 -0
  42. package/dist/m/c-B5UJQT7W.js +1 -0
  43. package/dist/m/c-B7J4K2AE.js +3 -0
  44. package/dist/m/c-BHZYSHW4.js +1 -0
  45. package/dist/m/{c-VHM5XQHK.js → c-BIJALSRD.js} +1 -1
  46. package/dist/m/c-BJ7YQ5QZ.js +1 -0
  47. package/dist/m/{c-KIPQJX4B.js → c-BRLCTNMC.js} +1 -1
  48. package/dist/m/{c-VE6ZMYMC.js → c-BUAYFEV5.js} +1 -1
  49. package/dist/m/c-C6IPRG34.js +1 -0
  50. package/dist/m/{c-KU3ZFADW.js → c-CAS3NND4.js} +1 -1
  51. package/dist/m/{c-PS5ARVWR.js → c-CCQ25GFY.js} +1 -1
  52. package/dist/m/c-CJFDLD43.js +1 -0
  53. package/dist/m/c-COPTL5WB.js +1 -0
  54. package/dist/m/c-D3E4WJ4M.js +166 -0
  55. package/dist/m/c-D5IKEKXW.js +7 -0
  56. package/dist/m/c-DHBRA6DL.js +1 -0
  57. package/dist/m/c-DKLS74XB.js +72 -0
  58. package/dist/m/c-DVYGFTSK.js +3 -0
  59. package/dist/m/c-E3ZXARWA.js +1 -0
  60. package/dist/m/c-EK63G3CG.js +1 -0
  61. package/dist/m/c-ERQSNR6K.js +13 -0
  62. package/dist/m/c-EVYAISP3.js +1 -0
  63. package/dist/m/c-EXKHPOVC.js +3 -0
  64. package/dist/m/{c-QJ4OM3G6.js → c-FWKHM4E7.js} +1 -1
  65. package/dist/m/{c-4Q2XTQ2N.js → c-GBKB5WDL.js} +1 -1
  66. package/dist/m/c-GNDL3TKB.js +1 -0
  67. package/dist/m/c-GRWMD6O5.js +1 -0
  68. package/dist/m/c-GRXHHFPO.js +1 -0
  69. package/dist/m/c-HG2C77BM.js +4 -0
  70. package/dist/m/c-HHGJBU4D.js +1 -0
  71. package/dist/m/c-HMV6P4RX.js +1 -0
  72. package/dist/m/c-HMYWIHFG.js +1 -0
  73. package/dist/m/c-HT2DKBV2.js +1 -0
  74. package/dist/m/c-I2SCCUEW.js +1 -0
  75. package/dist/m/{c-TJ6WOJL3.js → c-ICJYHABF.js} +2 -2
  76. package/dist/m/c-IMZCWYHR.js +7 -0
  77. package/dist/m/c-IVMD3FEM.js +1 -0
  78. package/dist/m/{c-WDC5GVKU.js → c-IVTRVENZ.js} +1 -1
  79. package/dist/m/c-JKZJIUIP.js +1 -0
  80. package/dist/m/{c-UDUUJPFZ.js → c-JNLX3RJB.js} +1 -1
  81. package/dist/m/c-K3ADYNLU.js +1 -0
  82. package/dist/m/c-KGHVFRR3.js +1 -0
  83. package/dist/m/{c-5QWQ7A5L.js → c-KJJPV77R.js} +1 -1
  84. package/dist/m/{c-CZUSOB7V.js → c-KNPDOMDY.js} +1 -1
  85. package/dist/m/{c-EZU56NQV.js → c-KP64LT2A.js} +2 -2
  86. package/dist/m/c-KQ7E3PYY.js +1 -0
  87. package/dist/m/c-L3F5ZLIV.js +1 -0
  88. package/dist/m/{c-3RUU4TPX.js → c-L42OLXWM.js} +3 -2
  89. package/dist/m/c-L5VFATT6.js +1 -0
  90. package/dist/m/c-L7JL5TL3.js +3 -0
  91. package/dist/m/c-LKSL4AUJ.js +1 -0
  92. package/dist/m/c-M6FNQCTQ.js +1 -0
  93. package/dist/m/c-MCOOHCSG.js +1 -0
  94. package/dist/m/c-MHI3GYKF.js +1 -0
  95. package/dist/m/c-MWXFLW4J.js +1 -0
  96. package/dist/m/{c-5RJFTLSF.js → c-NEL7HQW3.js} +1 -1
  97. package/dist/m/{c-DCXOXBF3.js → c-NQJRVJ56.js} +1 -1
  98. package/dist/m/c-NWX3MFT4.js +1 -0
  99. package/dist/m/{c-HPURYVZS.js → c-OJYM642Q.js} +1 -1
  100. package/dist/m/c-OKXI52N7.js +1 -0
  101. package/dist/m/{c-R3L7ZJGB.js → c-OPLUZR3A.js} +1 -1
  102. package/dist/m/{c-GSFIGKOP.js → c-OTMKN2OO.js} +1 -1
  103. package/dist/m/{c-6NC5I2TV.js → c-OYRZ7XG2.js} +1 -1
  104. package/dist/m/{c-EVCQ3BKA.js → c-P3OFYUMA.js} +1 -1
  105. package/dist/m/c-PLN76GF3.js +6 -0
  106. package/dist/m/c-PLP4JKFC.js +1 -0
  107. package/dist/m/c-Q26MME6N.js +1 -0
  108. package/dist/m/{c-S7H2DRCB.js → c-Q3XOWZEV.js} +1 -1
  109. package/dist/m/{c-FRLHSY7E.js → c-QIKT6SKM.js} +1 -1
  110. package/dist/m/c-QIXT3Q7C.js +28 -0
  111. package/dist/m/c-QO4HNGCQ.js +1 -0
  112. package/dist/m/{c-JU3NK25H.js → c-R27DWQKX.js} +1 -1
  113. package/dist/m/{c-RSMOODDU.js → c-R2XUODVY.js} +1 -1
  114. package/dist/m/{c-QNKREOL6.js → c-R7LBFMF5.js} +1 -1
  115. package/dist/m/c-RND3G2S2.js +1 -0
  116. package/dist/m/{c-Q622NS2Y.js → c-S2U6NJU4.js} +1 -1
  117. package/dist/m/c-SPZPGD3R.js +1 -0
  118. package/dist/m/c-SW4YEG2D.js +8 -0
  119. package/dist/m/c-T637T7SN.js +1 -0
  120. package/dist/m/c-TJAXGIRV.js +1 -0
  121. package/dist/m/{c-RYUXUUBX.js → c-TNEM3RNM.js} +1 -1
  122. package/dist/m/c-TTB5EK4S.js +32 -0
  123. package/dist/m/c-U7SHNWDH.js +1 -0
  124. package/dist/m/c-UDHIVLYH.js +20 -0
  125. package/dist/m/{c-BBVGTQG7.js → c-UGNV5MFB.js} +1 -1
  126. package/dist/m/{c-QICP2YR5.js → c-UORXLSD3.js} +1 -1
  127. package/dist/m/c-UPD33ZPE.js +1 -0
  128. package/dist/m/c-URSMSFCB.js +1 -0
  129. package/dist/m/c-UY4QX42B.js +1 -0
  130. package/dist/m/c-V44KWI2L.js +4 -0
  131. package/dist/m/c-VILENZTD.js +1 -0
  132. package/dist/m/{c-HDDEEL77.js → c-VJYEVRYK.js} +1 -1
  133. package/dist/m/{c-SMBZG5X4.js → c-VR2BJ4AN.js} +1 -1
  134. package/dist/m/c-W4JCVLAB.js +1 -0
  135. package/dist/m/c-W6DQSHXI.js +135 -0
  136. package/dist/m/c-WBGWGOM7.js +1 -0
  137. package/dist/m/{c-4L3BTFRK.js → c-WCXLG3MV.js} +1 -1
  138. package/dist/m/c-WGW764WX.js +1 -0
  139. package/dist/m/c-WMRJKQ2V.js +5 -0
  140. package/dist/m/c-WNTYKCDG.js +1 -0
  141. package/dist/m/c-WQWIRWO3.js +72 -0
  142. package/dist/m/c-X5LNHET5.js +1 -0
  143. package/dist/m/{c-I2ZATQCD.js → c-X5TSXZYJ.js} +2 -2
  144. package/dist/m/c-XGH4GS2T.js +1 -0
  145. package/dist/m/c-Y6F2FORL.js +1 -0
  146. package/dist/m/c-YBKHUAK7.js +10 -0
  147. package/dist/m/c-YBSS55KU.js +20 -0
  148. package/dist/m/c-YCLU4UNT.js +2 -0
  149. package/dist/m/c-YVZ2L7CE.js +1 -0
  150. package/dist/m/c-ZK4GIZH2.js +1 -0
  151. package/dist/m/c-ZRXJD4G6.js +1 -0
  152. package/dist/m/c-ZWBI4HYK.js +1 -0
  153. package/dist/m/core/{admin-attrs-QHOKPJ7W.js → admin-attrs-YY7T5FGU.js} +1 -1
  154. package/dist/m/core/autosave-S6OMNDCK.js +1 -0
  155. package/dist/m/core/conflict-notice-IWHMHH43.js +1 -0
  156. package/dist/m/core/{host-permission-FNXVEFNE.js → host-permission-6EVJGNPL.js} +1 -1
  157. package/dist/m/core/is-edit-mode-GCX6767E.js +1 -0
  158. package/dist/m/core/{persist-JFYRHMRJ.js → persist-UKXV5KLA.js} +1 -1
  159. package/dist/m/core/recovery-DRFZRJED.js +1 -0
  160. package/dist/m/core/save-LYY7K6U7.js +1 -0
  161. package/dist/m/core/save-core-MKRPSEEO.js +1 -0
  162. package/dist/m/core/snapshot-NU3YM6GR.js +1 -0
  163. package/dist/m/core/unsaved-warning-7QTKEN7Z.js +1 -0
  164. package/dist/m/internals/{index-PVXGPUDA.js → index-TGLQINN3.js} +1 -1
  165. package/dist/m/loader-3BBNZZGM.js +1 -0
  166. package/dist/m/manifest-F449FF98.js +1 -0
  167. package/dist/m/manifest-edit-4396A009.js +1 -0
  168. package/dist/m/manifest.json +2111 -1573
  169. package/dist/m/page/{editor-NNJA4OKD.js → editor-6LRB3GE4.js} +123 -21
  170. package/dist/m/plugins/ai-edit-UTV7YO2I.js +6 -0
  171. package/dist/m/plugins/{cms-HP3LSTPN.js → cms-LRAOZHT7.js} +9 -9
  172. package/dist/m/plugins/{demo-RM5IR6AO.js → demo-OYO5GCAO.js} +1 -1
  173. package/dist/m/plugins/{derive-UAAA4V4S.js → derive-FRE5JJQE.js} +1 -1
  174. package/dist/m/plugins/indicator-4VDXWYTD.js +1 -0
  175. package/dist/m/plugins/live-AD4H6XSL.js +1 -0
  176. package/dist/m/plugins/menu-M5WW7DBF.js +1 -0
  177. package/dist/m/plugins/page-MD3T2ZX3.js +2 -0
  178. package/dist/m/plugins/page-view-PAWVZNFY.js +1 -0
  179. package/dist/m/plugins/{people-SGPJKANK.js → people-JCHVPF7P.js} +1 -1
  180. package/dist/m/plugins/quickcrop-BQ5YYFCH.js +26 -0
  181. package/dist/m/plugins/{richclay-NRQDSWX6.js → richclay-KLGETK77.js} +2 -2
  182. package/dist/m/plugins/sortable-4S6SQC3D.js +1 -0
  183. package/dist/m/plugins/source-TJXOIOYY.js +1 -0
  184. package/dist/m/plugins/undo-NLPGCJQY.js +1 -0
  185. package/dist/m/plugins/{unsent-HJFLQJ2O.js → unsent-OA4RGBUT.js} +1 -1
  186. package/dist/m/plugins/upgrade-HSUNDNJD.js +1 -0
  187. package/dist/m/plugins/{upload-WLYKK6TL.js → upload-NHGJXZK2.js} +1 -1
  188. package/dist/m/plugins/visitor-drafts-BW43DGY3.js +20 -0
  189. package/dist/m/plugins/visitor-drafts-owner-7ODQG7JX.js +1 -0
  190. package/dist/m/plugins/{wire-4N6GYAF6.js → wire-VBWXEXU2.js} +1 -1
  191. package/dist/m/reader-core-4W2KYEWQ.js +77 -0
  192. package/dist/m/route/route-62CHXL5B.js +1 -0
  193. package/dist/m/sync/live-sync-MO5DH33W.js +1 -0
  194. package/dist/m/ui/index-IVWN2QC4.js +1 -0
  195. package/dist/m/vendor/sap-core.vendor-RN4ZVY4X.js +6 -0
  196. package/dist/offline-manifest.json +1367 -930
  197. package/dist/page/themes/light-1.css +8 -7
  198. package/dist/server/core.cjs +1440 -288
  199. package/dist/server/offline-runtime.cjs +63 -63
  200. package/dist/server/offline-runtime.mjs +63 -63
  201. package/dist/server/page-compaction-worker.cjs +3710 -0
  202. package/dist/server/rooms.mjs +5 -0
  203. package/docs/guide.md +653 -101
  204. package/entries/sap.js +5 -5
  205. package/package.json +1 -1
  206. package/src/core/admin-contenteditable.js +5 -2
  207. package/src/core/admin-inputs.js +1 -0
  208. package/src/core/admin-onclick.js +2 -1
  209. package/src/core/conflict-notice-ui.js +4 -7
  210. package/src/core/download.js +2 -2
  211. package/src/core/host-meta.js +38 -0
  212. package/src/core/is-edit-mode.js +17 -1
  213. package/src/core/mode-key.js +125 -19
  214. package/src/core/mode-support.js +5 -0
  215. package/src/core/mode-transition.js +20 -6
  216. package/src/core/preserve-authored.js +4 -4
  217. package/src/core/recovery.js +121 -33
  218. package/src/core/save-accepted.js +33 -0
  219. package/src/core/save-core.js +106 -31
  220. package/src/core/save-job.js +108 -0
  221. package/src/core/save-prepare.js +53 -0
  222. package/src/core/save-size-notice.js +3 -1
  223. package/src/core/save-slices.js +15 -0
  224. package/src/core/save.js +557 -127
  225. package/src/core/serialize-steps.js +109 -0
  226. package/src/core/snapshot.js +170 -39
  227. package/src/core/source-map.js +83 -38
  228. package/src/core/stale-host-notice.js +1 -0
  229. package/src/core/upgrade-run.js +59 -8
  230. package/src/dom/active-element.js +5 -0
  231. package/src/lib/assets.js +1 -0
  232. package/src/lib/slice.js +65 -0
  233. package/src/lib/uimotion.js +774 -0
  234. package/src/lib/unsaved-state.js +2 -2
  235. package/src/live/fast-lane.js +10 -3
  236. package/src/live/local-lane.js +202 -11
  237. package/src/live/ops.js +16 -0
  238. package/src/live/page-compaction.js +162 -0
  239. package/src/live/server-lane.js +1 -0
  240. package/src/live/store.js +11 -3
  241. package/src/loader-logic.js +3 -1
  242. package/src/loader.js +14 -4
  243. package/src/page/adopt-boot.js +2 -1
  244. package/src/page/awareness.js +33 -2
  245. package/src/page/blocks.js +89 -27
  246. package/src/page/boot-pack.js +1 -1
  247. package/src/page/chart-tables.js +21 -3
  248. package/src/page/chart.js +406 -63
  249. package/src/page/checklist.js +10 -135
  250. package/src/page/checkpoint-proof.js +7 -1
  251. package/src/page/chrome.js +250 -51
  252. package/src/page/clipboard-shape.js +126 -0
  253. package/src/page/drag.js +33 -3
  254. package/src/page/editor.js +136 -25
  255. package/src/page/export-assets.js +357 -0
  256. package/src/page/export-html.js +209 -0
  257. package/src/page/export-markdown.js +361 -0
  258. package/src/page/features/checklist.js +428 -0
  259. package/src/page/features/export-html.js +189 -0
  260. package/src/page/features/export-markdown.js +169 -0
  261. package/src/page/features/import-markdown.js +349 -0
  262. package/src/page/features/media.js +61 -5
  263. package/src/page/features/registry.js +18 -0
  264. package/src/page/features/table.js +373 -83
  265. package/src/page/features/title-cover.js +331 -0
  266. package/src/page/features/title-icon.js +213 -0
  267. package/src/page/features/toc.js +87 -0
  268. package/src/page/format-command.js +25 -1
  269. package/src/page/format-gate.js +68 -18
  270. package/src/page/format-host.js +17 -0
  271. package/src/page/format-native-commands.js +21 -5
  272. package/src/page/image-actions.js +64 -0
  273. package/src/page/import-markdown.js +262 -0
  274. package/src/page/items.js +135 -17
  275. package/src/page/markdown.js +6 -2
  276. package/src/page/media.js +35 -119
  277. package/src/page/placeholder.js +14 -1
  278. package/src/page/projection.js +98 -10
  279. package/src/page/recover.js +10 -12
  280. package/src/page/recovery-ui.js +464 -0
  281. package/src/page/rich/chart.js +63 -7
  282. package/src/page/save-projection.js +28 -0
  283. package/src/page/save-states.js +13 -3
  284. package/src/page/schema.js +19 -3
  285. package/src/page/table-paste.js +3 -1
  286. package/src/page/table-style.js +4 -4
  287. package/src/page/table.js +44 -2
  288. package/src/page/themes/light-1.css +8 -7
  289. package/src/page/themes/light-1.source.css +8 -7
  290. package/src/page/toc-link.js +31 -0
  291. package/src/page/toc.js +5 -0
  292. package/src/page/view-hooks.js +38 -12
  293. package/src/page/view.js +13 -0
  294. package/src/page/ybind/binding.js +88 -5
  295. package/src/page/ybind/bridge.js +187 -20
  296. package/src/page/ybind/containment.js +162 -0
  297. package/src/page/ybind/doc.js +17 -9
  298. package/src/page/ybind/file-debt.js +63 -0
  299. package/src/page/ybind/layout.js +7 -2
  300. package/src/page/ybind/marks.js +1 -1
  301. package/src/page/ybind/moves.js +5 -4
  302. package/src/page/ybind/origins.js +106 -4
  303. package/src/page/ybind/parts.js +8 -1
  304. package/src/page/ybind/provider.js +113 -17
  305. package/src/page/ybind/recovery-proof.js +32 -9
  306. package/src/page/ybind/recovery-replay.js +558 -15
  307. package/src/page/ybind/recovery.js +174 -45
  308. package/src/page/ybind/table.js +67 -11
  309. package/src/page/ybind/walk-delta.js +258 -0
  310. package/src/page/ybind/walk.js +54 -29
  311. package/src/page/ybind/writer.js +1 -1
  312. package/src/plugins/ai-edit.js +13 -9
  313. package/src/plugins/indicator-chip.js +91 -0
  314. package/src/plugins/indicator.js +13 -80
  315. package/src/plugins/live.js +89 -14
  316. package/src/plugins/menu/actions.js +196 -0
  317. package/src/plugins/menu/people.js +279 -0
  318. package/src/plugins/menu/placement.js +121 -0
  319. package/src/plugins/menu/preferences.js +9 -0
  320. package/src/plugins/menu/seo.js +316 -397
  321. package/src/plugins/menu/style.js +171 -0
  322. package/src/plugins/menu/variants.js +296 -0
  323. package/src/plugins/menu.js +186 -183
  324. package/src/plugins/page-view.js +3 -2
  325. package/src/plugins/page.js +249 -44
  326. package/src/plugins/sortable.js +8 -1
  327. package/src/plugins/source.js +6 -0
  328. package/src/plugins/upgrade.js +51 -17
  329. package/src/plugins/upload-ui.js +12 -17
  330. package/src/plugins/visitor-drafts/bottom-ui.js +12 -4
  331. package/src/plugins/visitor-drafts/intro-style.js +7 -2
  332. package/src/plugins/visitor-drafts/intro.js +5 -3
  333. package/src/plugins/visitor-drafts/owner-chip.js +8 -12
  334. package/src/plugins/visitor-drafts/prompt.js +11 -9
  335. package/src/plugins/visitor-drafts/source.js +4 -3
  336. package/src/plugins/visitor-drafts/store.js +138 -9
  337. package/src/plugins/visitor-drafts/ui-memory.js +2 -2
  338. package/src/plugins/visitor-drafts-owner.js +4 -6
  339. package/src/plugins/visitor-drafts.js +5 -3
  340. package/src/recovery/store.js +1 -1
  341. package/src/route/route.js +4 -0
  342. package/src/server/rooms/index.js +5 -1
  343. package/src/server/rooms/live-data-rooms.js +302 -50
  344. package/src/server/rooms/page-compaction-worker.js +12 -0
  345. package/src/server/rooms/page-compactor.js +92 -0
  346. package/src/server/rooms/page-room-conformance.js +461 -0
  347. package/src/source/parse-steps.js +94 -0
  348. package/src/source/session.js +233 -57
  349. package/src/sync/editing-sender.js +12 -0
  350. package/src/sync/live-sync-edit.js +22 -2
  351. package/src/sync/live-sync.js +150 -23
  352. package/src/sync/page-relay.js +52 -0
  353. package/src/sync/presence-store.js +44 -4
  354. package/src/sync/presence.js +6 -3
  355. package/src/sync/saved-stream.js +11 -6
  356. package/src/ui/bevel-controls.js +1 -0
  357. package/src/ui/bevel-dialog.js +5 -2
  358. package/src/ui/editor-ui.js +77 -0
  359. package/src/ui/page-colour.js +281 -0
  360. package/src/ui/toast.js +16 -7
  361. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  362. package/src/vendor/hyper-undo.vendor.js +1 -1
  363. package/src/vendor/hypercms.vendor.js +9 -9
  364. package/src/vendor/parse5.vendor.js +2 -2
  365. package/src/vendor/sap-core.vendor.js +5 -5
  366. package/dist/m/c-2SPVQSHC.js +0 -1
  367. package/dist/m/c-336SGU5W.js +0 -1
  368. package/dist/m/c-3H6BZDNJ.js +0 -6
  369. package/dist/m/c-4DFEJ2PO.js +0 -3
  370. package/dist/m/c-56QRZTZH.js +0 -1
  371. package/dist/m/c-5J4E7O4Y.js +0 -4
  372. package/dist/m/c-5LKDWQTL.js +0 -19
  373. package/dist/m/c-5V3MOVJT.js +0 -1
  374. package/dist/m/c-6AZOGAPE.js +0 -1
  375. package/dist/m/c-6CRUUXOX.js +0 -5
  376. package/dist/m/c-6HMB24EV.js +0 -1
  377. package/dist/m/c-6KEVEQ7L.js +0 -1
  378. package/dist/m/c-A3E3NIMC.js +0 -1
  379. package/dist/m/c-BQ6LOBEE.js +0 -1
  380. package/dist/m/c-BTDI4Y23.js +0 -1
  381. package/dist/m/c-CJ3A7ZKE.js +0 -1
  382. package/dist/m/c-CQHPGKX2.js +0 -1
  383. package/dist/m/c-DFS4XZJV.js +0 -2
  384. package/dist/m/c-DNENWY4O.js +0 -1
  385. package/dist/m/c-E4LIR5X5.js +0 -1
  386. package/dist/m/c-FDNHHZY5.js +0 -1
  387. package/dist/m/c-FROJUZMV.js +0 -1
  388. package/dist/m/c-G2JPKCTP.js +0 -1
  389. package/dist/m/c-GB6TU7WV.js +0 -1
  390. package/dist/m/c-GFJJEBTU.js +0 -1
  391. package/dist/m/c-GJAEGGXY.js +0 -1
  392. package/dist/m/c-GOWBDM6J.js +0 -1
  393. package/dist/m/c-HFKUVACH.js +0 -1
  394. package/dist/m/c-HHDFCNHV.js +0 -1
  395. package/dist/m/c-IEM4NTCS.js +0 -1
  396. package/dist/m/c-JDCX26UP.js +0 -25
  397. package/dist/m/c-KGVGROZT.js +0 -1
  398. package/dist/m/c-KQ6TYJAP.js +0 -135
  399. package/dist/m/c-LFPHCXY3.js +0 -1
  400. package/dist/m/c-LRPUO2MX.js +0 -1
  401. package/dist/m/c-LWLBHLVC.js +0 -3
  402. package/dist/m/c-M2L47S2X.js +0 -7
  403. package/dist/m/c-MFP2ZWD4.js +0 -1
  404. package/dist/m/c-MKSQ4Y57.js +0 -1
  405. package/dist/m/c-NUFFJVVJ.js +0 -1
  406. package/dist/m/c-NUHSPT5P.js +0 -1
  407. package/dist/m/c-O72HVYSA.js +0 -1
  408. package/dist/m/c-OIBUTDXI.js +0 -1
  409. package/dist/m/c-OW5QIGG3.js +0 -1
  410. package/dist/m/c-PGRCK73F.js +0 -1
  411. package/dist/m/c-Q7NQD65V.js +0 -1
  412. package/dist/m/c-QH63LQOS.js +0 -1
  413. package/dist/m/c-R7IWVINQ.js +0 -1
  414. package/dist/m/c-RM7J7BV2.js +0 -1
  415. package/dist/m/c-S4ZEH46B.js +0 -9
  416. package/dist/m/c-SDAXDM2D.js +0 -1
  417. package/dist/m/c-SMGU7RT3.js +0 -235
  418. package/dist/m/c-SPIORRYS.js +0 -1
  419. package/dist/m/c-SWLRT66R.js +0 -1
  420. package/dist/m/c-TCJTVAFN.js +0 -1
  421. package/dist/m/c-TQEMVJCS.js +0 -1
  422. package/dist/m/c-TYLXX4NF.js +0 -21
  423. package/dist/m/c-U62OB4BT.js +0 -1
  424. package/dist/m/c-U6YWUAR3.js +0 -8
  425. package/dist/m/c-UDCSU5G5.js +0 -2
  426. package/dist/m/c-VI5RMSVY.js +0 -1
  427. package/dist/m/c-VRZN56XY.js +0 -1
  428. package/dist/m/c-W5MCHEGA.js +0 -1
  429. package/dist/m/c-WNYBLIOZ.js +0 -1
  430. package/dist/m/c-WWXIDH4O.js +0 -28
  431. package/dist/m/c-XCNTK76U.js +0 -1
  432. package/dist/m/c-XMS6DPBR.js +0 -1
  433. package/dist/m/c-ZUCOKOHT.js +0 -1
  434. package/dist/m/c-ZVPVXTJF.js +0 -4
  435. package/dist/m/c-ZVRKXKM7.js +0 -1
  436. package/dist/m/core/autosave-HRYGUWV6.js +0 -1
  437. package/dist/m/core/conflict-notice-6MROJN2L.js +0 -1
  438. package/dist/m/core/is-edit-mode-KTWA3O5N.js +0 -1
  439. package/dist/m/core/recovery-FLTCC2OC.js +0 -1
  440. package/dist/m/core/save-HQZ4S667.js +0 -1
  441. package/dist/m/core/save-core-KGQWFUNH.js +0 -1
  442. package/dist/m/core/snapshot-EGQZNT45.js +0 -1
  443. package/dist/m/core/unsaved-warning-IDJLD66H.js +0 -1
  444. package/dist/m/loader-S4I7GKXR.js +0 -1
  445. package/dist/m/manifest-4C419D67.js +0 -1
  446. package/dist/m/manifest-edit-B077F288.js +0 -1
  447. package/dist/m/plugins/ai-edit-QN4PMMNL.js +0 -6
  448. package/dist/m/plugins/indicator-URDBBOQO.js +0 -1
  449. package/dist/m/plugins/live-HFWD4OIH.js +0 -1
  450. package/dist/m/plugins/menu-3HIEQSI6.js +0 -138
  451. package/dist/m/plugins/page-JOKB6XPR.js +0 -2
  452. package/dist/m/plugins/page-view-NXOJHNW6.js +0 -1
  453. package/dist/m/plugins/quickcrop-QNY3PKLD.js +0 -26
  454. package/dist/m/plugins/sortable-GWT4PWDV.js +0 -1
  455. package/dist/m/plugins/source-4ZRSAIYM.js +0 -1
  456. package/dist/m/plugins/undo-VDA5P7FH.js +0 -1
  457. package/dist/m/plugins/upgrade-W7FG5VFG.js +0 -1
  458. package/dist/m/plugins/visitor-drafts-LIDY7NH6.js +0 -21
  459. package/dist/m/plugins/visitor-drafts-owner-ZXCKBZE7.js +0 -1
  460. package/dist/m/reader-core-DXYCURFF.js +0 -68
  461. package/dist/m/route/route-KOCZSEGN.js +0 -1
  462. package/dist/m/sync/live-sync-J7VMYTKS.js +0 -1
  463. package/dist/m/ui/index-3JLVI27O.js +0 -1
  464. package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +0 -6
  465. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  466. /package/dist/m/plugins/{quickcrop-QNY3PKLD.js.LEGAL.txt → quickcrop-BQ5YYFCH.js.LEGAL.txt} +0 -0
  467. /package/dist/m/plugins/{richclay-NRQDSWX6.js.LEGAL.txt → richclay-KLGETK77.js.LEGAL.txt} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as h,b as u,c as w,d as g}from"./c-BTDI4Y23.js";import{b as y}from"./c-OW5QIGG3.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var l={draft:"You're seeing a private draft, like a visitor.",draftAction:"Edit the original",edit:"You're editing the original. Visitors get these changes.",editAction:"Back to my draft",close:"Hide this note"},E=`.clay-owner {
1
+ import{a as u,b as m,c as g,d as b}from"./c-Y6F2FORL.js";import{b as v}from"./c-L7JL5TL3.js";import{b as y}from"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var c={draft:"You're seeing a private draft, like a visitor.",draftAction:"Edit the original",edit:"You're editing the original. Visitors get these changes.",editAction:"Back to my draft",close:"Hide this note"},k=`.clay-owner {
2
2
  --hcp-ground: #FDF8F0;
3
3
  --hcp-surface: #FFFCF6;
4
4
  --hcp-sunk: #F4ECDF;
@@ -64,4 +64,4 @@ import{a as h,b as u,c as w,d as g}from"./c-BTDI4Y23.js";import{b as y}from"./c-
64
64
  @media (prefers-reduced-motion: reduce) { .clay-owner { transition: none; } }
65
65
  @media (forced-colors: active) { .clay-owner { border: 1px solid CanvasText; } }
66
66
  @media print { .clay-owner { display: none; } }
67
- `;function C(){if(document.getElementById("clay-owner-style"))return;let o=document.createElement("style");o.id="clay-owner-style",o.setAttribute("clay","editor-ui"),o.textContent=E,document.head.appendChild(o)}function A(){if(document.getElementById("clay-owner"))return null;C();let o=y,e=document.createElement("div");e.id="clay-owner",e.className="clay-owner",e.setAttribute("clay","editor-ui"),e.setAttribute("sap-ignore",""),e.setAttribute("role","status");let s=document.createElement("span");s.className="clay-owner__lead",s.textContent=o?l.draft:l.edit;let c=document.createElement("button");c.type="button",c.className="clay-owner__action",c.textContent=o?l.draftAction:l.editAction,c.addEventListener("click",()=>{let n=window.clay&&window.clay.visitorDrafts;n&&(o?n.editOriginal():n.backToDraft())});let r=document.createElement("button");r.type="button",r.className="clay-owner__x",r.setAttribute("aria-label",l.close),r.textContent="\xD7",r.addEventListener("click",()=>{e.remove(),f(),b()}),e.append(s,c,r),document.body.appendChild(e);let a=document.createElement("style");a.id="clay-owner-vars",a.setAttribute("clay","editor-ui"),document.head.appendChild(a);let m="";function v(n){let i=`:root { --clay-owner-room: ${Math.ceil(e.getBoundingClientRect().height)+16}px; }`;a.textContent!==i&&(a.textContent=i),m!==i+n&&(m=i+n,u())}function b(){a.remove(),u()}let d=0;function t(){d||(d=requestAnimationFrame(()=>{d=0;let n=w(24,x=>e.contains(x)||x.closest("#hcp")),i=g(e.getBoundingClientRect()),p=i>=window.innerHeight/3;i&&!p&&(n=Math.max(n,i-4)),e.style.visibility=p?"hidden":"",e.style.setProperty("--hcp-lift",n+"px"),v(p?-1:n)}))}function f(){removeEventListener("scroll",t),removeEventListener("resize",t),document.removeEventListener(h,t),document.removeEventListener("transitionend",t,!0),document.removeEventListener("pointerup",t,!0),window.removeEventListener("hashchange",t)}return addEventListener("scroll",t,{passive:!0}),addEventListener("resize",t),document.addEventListener(h,t),document.addEventListener("transitionend",t,!0),document.addEventListener("pointerup",t,!0),window.addEventListener("hashchange",t),t(),e.liftOff=f,e}export{l as COPY,A as mountOwnerChip};
67
+ `,C=()=>document.querySelector('clay-editor-ui[data-clay-ui="owner"]')?.shadowRoot.getElementById("clay-owner")??null;function F(){if(C())return null;let s=y,e=document.createElement("div");e.id="clay-owner",e.className="clay-owner",e.setAttribute("clay","editor-ui"),e.setAttribute("sap-ignore",""),e.setAttribute("role","status");let l=document.createElement("span");l.className="clay-owner__lead",l.textContent=s?c.draft:c.edit;let a=document.createElement("button");a.type="button",a.className="clay-owner__action",a.textContent=s?c.draftAction:c.editAction,a.addEventListener("click",()=>{let n=window.clay&&window.clay.visitorDrafts;n&&(s?n.editOriginal():n.backToDraft())});let r=document.createElement("button");r.type="button",r.className="clay-owner__x",r.setAttribute("aria-label",c.close),r.textContent="\xD7",r.addEventListener("click",()=>{f.remove(),p(),_()}),e.append(l,a,r);let f=v({name:"owner",content:e,css:[k],attributes:{"sap-ignore":""}}),i=document.createElement("style");i.id="clay-owner-vars",i.setAttribute("clay","editor-ui"),document.head.appendChild(i);let x="";function E(n){let o=`:root { --clay-owner-room: ${Math.ceil(e.getBoundingClientRect().height)+16}px; }`;i.textContent!==o&&(i.textContent=o),x!==o+n&&(x=o+n,m())}function _(){i.remove(),m()}let d=0;function t(){d||(d=requestAnimationFrame(()=>{d=0;let n=g(24,w=>e.contains(w)||w.closest("#hcp")),o=b(e.getBoundingClientRect()),h=o>=window.innerHeight/3;o&&!h&&(n=Math.max(n,o-4)),e.style.visibility=h?"hidden":"",e.style.setProperty("--hcp-lift",n+"px"),E(h?-1:n)}))}function p(){removeEventListener("scroll",t),removeEventListener("resize",t),document.removeEventListener(u,t),document.removeEventListener("transitionend",t,!0),document.removeEventListener("pointerup",t,!0),window.removeEventListener("hashchange",t)}return addEventListener("scroll",t,{passive:!0}),addEventListener("resize",t),document.addEventListener(u,t),document.addEventListener("transitionend",t,!0),document.addEventListener("pointerup",t,!0),window.addEventListener("hashchange",t),e.addEventListener("transitionend",t),t(),e.liftOff=p,e.unmount=()=>{p(),f.remove()},e}export{c as COPY,F as mountOwnerChip,C as ownerChip};
@@ -0,0 +1,7 @@
1
+ import{x as O}from"./c-AMU3BPPR.js";import{H as x,I as C,J as $,a as A,m as N}from"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var g=N.nodes,H=e=>e.attrs.parent??null,_=e=>{let a=new Set;return e.forEach(t=>t.forEach(o=>a.add(o.attrs.col))),C(e.attrs.cols).filter(t=>a.has(t))};function S(e,a){let t=a.ownerDocument,o=t.createElement("thead").appendChild(t.createElement("tr"));for(let s of _(e)){let p=e.attrs.cols[s],r=o.appendChild(t.createElement("th"));r.setAttribute("data-col",s),r.setAttribute("scope","col"),p.kind&&r.setAttribute("data-kind",p.kind),p.width&&(r.setAttribute("data-width",String(p.width)),r.style.width=`${p.width}px`),r.textContent=p.name??""}a.prepend(o.parentNode),e.attrs.sort&&a.setAttribute("data-sort",JSON.stringify(e.attrs.sort))}function v(e,a){let t=[];e.forEach((o,s,p)=>{let r=a[p];if(!r||r.nodeType!==1)return;if(o.type===g.table&&S(o,r),o.type!==g.list_item||H(o)!==null){t=[];return}let f=r.ownerDocument,{indent:d,kind:i}=o.attrs,l=i==="ordered"?"OL":"UL";for(;t.length&&t.at(-1).indent>d;)t.pop();if(t.at(-1)?.indent===d&&t.at(-1).list.tagName!==l&&t.pop(),!t.length||t.at(-1).indent<d){let c=f.createElement(l);t.length?t.at(-1).li.append(c):r.before(c),t.push({indent:d,list:c,li:null})}let u=f.createElement("li");i==="check"&&(u.innerHTML=`<input type="checkbox" disabled${o.attrs.checked?" checked":""}>`),u.append(...r.childNodes),t.at(-1).list.append(u),t.at(-1).li=u,r.remove()})}var T=e=>/[\t\n\r"]/.test(e)?`"${e.replace(/"/g,'""')}"`:e;function q(e){if(!e.content.firstChild?.type.spec.group?.includes("block"))return null;let a="",t=[],o=!1;return e.content.forEach((s,p,r)=>{let f=s.type===g.list_item,d=s.textBetween(0,s.content.size,`
2
+
3
+ `);if(f){let{indent:i,kind:l}=s.attrs;for(;t.length&&t.at(-1).indent>i;)t.pop();t.at(-1)?.indent===i&&t.at(-1).kind!==l&&t.pop(),(!t.length||t.at(-1).indent<i)&&t.push({indent:i,kind:l,n:0});let u=t.at(-1),c=l==="ordered"?`${++u.n}.`:l==="check"?`- [${s.attrs.checked?"x":" "}]`:"-";d=`${" ".repeat(t.length-1)}${c} ${d}`}else t=[];if(s.type===g.table){let i=[_(s).map(l=>T(s.attrs.cols[l].name??""))];s.forEach(l=>{let u=[];l.forEach(c=>u.push(T(c.textContent))),i.push(u)}),d=i.map(l=>l.join(" ")).join(`
4
+ `)}a+=(r?o&&f?`
5
+ `:`
6
+
7
+ `:"")+d,o=f}),a}var w=new WeakMap;function b(e){if(w.has(e))return w.get(e);let a=n=>[...n.children].filter(h=>h.tagName==="TD"||h.tagName==="TH"),t=[...e.querySelectorAll("tr")].filter(n=>n.closest("table")===e),o=t.find(n=>n.parentElement.tagName==="THEAD")??(t.length>1&&a(t[0]).every(n=>n.tagName==="TH")?t[0]:null),s=t.filter(n=>n!==o),p=o?a(o):[],r=Math.max(1,p.length,...s.map(n=>a(n).length)),f=x(null,null,r),d=[],i={};for(let n=0;n<r;n++){let h=p[n],m=h?.getAttribute("data-col");(!m||Object.hasOwn(i,m))&&(m=$("c"));let y=h?.getAttribute("data-kind"),E=Math.round(Number(h?.getAttribute("data-width")));i[m]={pos:f[n],name:h?.textContent.replace(/\s+/g," ").trim()||`Column ${n+1}`,...y?{kind:y}:{},...E>0?{width:E}:{}},d.push(m)}let l=(n,h)=>n?O.parse(n,{topNode:g.table_cell.create({col:h})}):g.table_cell.create({col:h}),u=(s.length?s:[null]).map(n=>g.table_row.create(null,d.map((h,m)=>l(n&&a(n)[m],h)))),c=null;try{c=JSON.parse(e.getAttribute("data-sort"))}catch{}let k={cols:i,sort:c&&d.includes(c.col)&&(c.dir==="asc"||c.dir==="desc")?{col:c.col,dir:c.dir}:null,rows:A.Fragment.from(u)};return w.set(e,k),k}var B=e=>({cols:b(e).cols,sort:b(e).sort,parent:e.getAttribute("data-page-parent")||null}),I=e=>b(e).rows;export{v as copy,I as rows,B as table,q as text};
@@ -0,0 +1 @@
1
+ import{a as A,b as m,c as n}from"./c-Q26MME6N.js";import{a as c}from"./c-VKEDWYDF.js";import{f as i}from"./c-3O7OBDCM.js";import{b as l,q as d}from"./c-7MG5RU63.js";var f="[editmode\\:onclick]";function b(){d(o=>{o.querySelectorAll(f).forEach(t=>{let e=t.getAttribute("onclick");e!==null&&(t.setAttribute("inert-onclick",e),t.removeAttribute("onclick"),n(t,l(t)??t))})})}function p(){i&&c(()=>{E()})}function E(o=document){o.querySelectorAll(f).forEach(t=>{let e=t.getAttribute("inert-onclick");e&&(t.setAttribute("onclick",e),t.removeAttribute("inert-onclick"))})}function D(){document.querySelectorAll(f).forEach(o=>{let t=o.getAttribute("onclick");t&&(o.setAttribute("inert-onclick",t),o.removeAttribute("onclick")),n(o)})}function q(){b(),p()}var O="[viewmode\\:disabled]",S="[viewmode\\:readonly]",u=[[O,"disabled"],[S,"readonly"]];function k(){d(o=>{for(let[t,e]of u)o.querySelectorAll(t).forEach(r=>{if(r.hasAttribute(e))return;let a=l(r),s=a?m(a,e):null;r.setAttribute(e,s===null?"":s),n(r,a??r)})})}function h(){i&&c(()=>{x()})}function x(o=document){for(let[t,e]of u)o.querySelectorAll(t).forEach(r=>{A(r),r.removeAttribute(e)})}function M(){for(let[o,t]of u)document.querySelectorAll(o).forEach(e=>{let r=m(e,t);r===null?e.removeAttribute(t):e.setAttribute(t,r),n(e)})}function P(){k(),h()}export{f as a,E as b,D as c,q as d,O as e,S as f,x as g,M as h,P as i};
@@ -1 +1 @@
1
- import{b as a}from"./c-PZ4XEPUP.js";import{y as u}from"./c-SPIORRYS.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import{i as s}from"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var d=20,i=null,l=!1,c=[];function h(){i||l||(l=!0,import("./c-OIDRZKAF.js").then(e=>{i=e,l=!1,f()},e=>{l=!1,console.error("clayjs: the conflict recovery module could not be downloaded; conflicts stay in this tab only",e)}))}function f(){if(!i){h();return}for(;c.length;){let e=c.shift();try{i.recordConflicts(e)}catch(o){console.error("clayjs: the conflict could not be stored for a later reload; it is still here",o)}}}function m(e,o){let t=null;try{t=a(e)}catch{}let n=r=>r?(r.cutBefore?"\u2026":"")+r.before+r.hit+r.after+(r.cutAfter?"\u2026":""):"";return{id:String(e.id),kind:String(e.kind??""),key:e.recovery?.key==null?"":String(e.recovery.key),name:t?.name?String(t.name):"",sentence:t?.sentence?String(t.sentence):"",yours:n(t?.yours),now:n(t?.now),context:o}}function y(e){try{let t=(e.recoveryRoot??e.root)?.cloneNode?.(!0);if(!t)return null;for(let n of s)t.removeAttribute(n);return u(t,{prepared:e.domain==="save"})}catch(o){return console.error("clayjs: the conflict recovery page could not be serialized; the conflict text is still stored",o),null}}function k({apply:e,records:o}){try{c.push({apply:{id:e.id,source:e.source,domain:e.domain,seq:e.seq,etag:e.etag,ticket:e.ticket},root:y(e),conflicts:o.map(({rec:t,context:n})=>m(t,n))}),c.length>d&&c.shift(),f()}catch(t){console.error("clayjs: the conflict could not be stored for a later reload; it is still here",t)}}function A(e){import("./c-OIDRZKAF.js").then(o=>o.dismissConflicts(e),()=>{}).catch(()=>{})}export{A as dismiss,k as keep};
1
+ import{b as a}from"./c-PZ4XEPUP.js";import{K as u}from"./c-7MG5RU63.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import{i as s}from"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var d=20,i=null,l=!1,c=[];function h(){i||l||(l=!0,import("./c-OIDRZKAF.js").then(e=>{i=e,l=!1,f()},e=>{l=!1,console.error("clayjs: the conflict recovery module could not be downloaded; conflicts stay in this tab only",e)}))}function f(){if(!i){h();return}for(;c.length;){let e=c.shift();try{i.recordConflicts(e)}catch(o){console.error("clayjs: the conflict could not be stored for a later reload; it is still here",o)}}}function m(e,o){let t=null;try{t=a(e)}catch{}let n=r=>r?(r.cutBefore?"\u2026":"")+r.before+r.hit+r.after+(r.cutAfter?"\u2026":""):"";return{id:String(e.id),kind:String(e.kind??""),key:e.recovery?.key==null?"":String(e.recovery.key),name:t?.name?String(t.name):"",sentence:t?.sentence?String(t.sentence):"",yours:n(t?.yours),now:n(t?.now),context:o}}function y(e){try{let t=(e.recoveryRoot??e.root)?.cloneNode?.(!0);if(!t)return null;for(let n of s)t.removeAttribute(n);return u(t,{prepared:e.domain==="save"})}catch(o){return console.error("clayjs: the conflict recovery page could not be serialized; the conflict text is still stored",o),null}}function k({apply:e,records:o}){try{c.push({apply:{id:e.id,source:e.source,domain:e.domain,seq:e.seq,etag:e.etag,ticket:e.ticket},root:y(e),conflicts:o.map(({rec:t,context:n})=>m(t,n))}),c.length>d&&c.shift(),f()}catch(t){console.error("clayjs: the conflict could not be stored for a later reload; it is still here",t)}}function A(e){import("./c-OIDRZKAF.js").then(o=>o.dismissConflicts(e),()=>{}).catch(()=>{})}export{A as dismiss,k as keep};
@@ -0,0 +1 @@
1
+ var g=/^[A-Za-z0-9_-]{1,64}$/,h=/^[1-9]\d{0,15}$/;var u=e=>h.test(e)&&Number.isSafeInteger(Number(e));function o(...e){let t=new Map;for(let s of e)for(let[n,r]of s??[])t.has(n)||t.set(n,[]),t.get(n).push(...r.map(([i,c])=>[i,c]));return[...t].sort(([s],[n])=>s<n?-1:s>n?1:0).map(([s,n])=>{let r=[];for(let[i,c]of n.sort((a,l)=>a[0]-l[0])){let a=r[r.length-1];a&&i<=a[1]+1?a[1]=Math.max(a[1],c):r.push([i,c])}return[s,r]}).filter(([,s])=>s.length)}var f=e=>e.reduce((t,[,s])=>t+s.length,0),N=(e,t)=>!!e?.some(([s,n])=>s<=t&&t<=n),x=(e,t,s)=>N(e?.find(([n])=>n===t)?.[1],s),S=([e,t])=>[[e,[[t,t]]]],I=e=>e?.v===2?e.frames:e?[[e.client,[[1,e.n]]]]:[],M=e=>e?.v===2?o(e.ancestors,S(e.capture)):[];function d(e){if(!e)return[];let t=[],s=0;for(let n of e.split(";")){let r=n.split(":");if(r.length!==2||!g.test(r[0])||!r[1])return null;let i=[];for(let c of r[1].split(",")){if(++s>256)return null;let a=c.split("-");if(a.length>2||!a.every(u))return null;let l=Number(a[0]),p=Number(a[1]??a[0]);if(p<l)return null;i.push([l,p])}t.push([r[0],i])}return o(t)}function v(e){return o(e).map(([t,s])=>`${t}:${s.map(([n,r])=>n===r?String(n):`${n}-${r}`).join(",")}`).join(";")}function R(e){if(typeof e!="string"||e.length>32768)return null;if(!e.startsWith("v2|")){let c=/^([A-Za-z0-9_-]{1,64}):([1-9]\d{0,15})$/.exec(e);return c&&u(c[2])?{client:c[1],n:Number(c[2])}:null}let t=e.split("|");if(t.length!==4)return null;let s=d(t[1]),n=d(t[2]),r=/^([A-Za-z0-9_-]{1,64}):([1-9]\d{0,15})$/.exec(t[3]);if(!s||!n||!r||!u(r[2])||f(s)+f(n)+1>256)return null;let i=[r[1],Number(r[2])];return x(n,...i)?null:{v:2,frames:s,ancestors:n,capture:i}}function $(e){let t=`v2|${v(e.frames)}|${v(e.ancestors)}|${e.capture[0]}:${e.capture[1]}`;return R(t)?t:null}export{o as a,N as b,x as c,I as d,M as e,R as f,$ as g};
@@ -1 +1 @@
1
- import"./c-VHNSBD2M.js";var M="data-write",E="Waiting for the page data write to finish";function n(e,t,r){let a=new Error(t);return a.code=e,a.details=r,a}async function U(e){if(typeof e.json=="function")return e.json();let t=await e.text();return t?JSON.parse(t):null}async function R(e){let t={};try{t=await U(e)||{}}catch{}let r=t.message||t.error||e.statusText||`Request failed (${e.status})`,a=new Error(r);return a.status=e.status,a.error=t.error,a.details=t.details,a}function F(e){let t=e.headers?.get?.("ETag");return typeof t=="string"&&t?t:null}function q(e,t){let r=`${t.origin}${t.pathname}`;return e!==void 0?`${r}?data=${encodeURIComponent(JSON.stringify(e))}`:`${t.origin}/_/api${t.pathname}`}function D(e){return!!e&&!e.isDestroyed&&e.sse?.readyState===1}function x(e,t){let r=[],a=null,o=null,c=null,p=i=>i?.source==="disk"&&(a===null||i.etag===a),P=i=>i?.source==="disk"&&(i.etag==null||a===null||i.etag===a),d=()=>{clearTimeout(c),e.removeEventListener("clay:sync-applied",w)},w=i=>{if(r.push(i.detail),!o||!P(i.detail))return;let u=o;o=null,d(),u(!0)};return e.addEventListener("clay:sync-applied",w),{waitFor(i){return a=i,r.some(p)?(d(),Promise.resolve(!0)):new Promise(u=>{o=u,c=setTimeout(()=>{o=null,d(),u(!1)},t)})},cancel:d}}function $(e){let t=new AbortController,r,a=new Promise((c,p)=>{r=p}),o=setTimeout(()=>{let c=new Error("The page data write timed out.");c.name="TimeoutError",t.abort(c),r(c)},e);return{signal:t.signal,waitFor(c){return Promise.race([c,a])},cancel(){clearTimeout(o)}}}async function j(){let[e,t,r,a,o]=await Promise.all([import("./core/save-HQZ4S667.js"),import("./core/save-core-KGQWFUNH.js"),import("./c-JU3NK25H.js"),import("./core/unsaved-warning-IDJLD66H.js"),import("./core/is-edit-mode-KTWA3O5N.js")]);return{...e,...t,...r,...a,...o}}async function H(){let{isDraftMode:e}=await import("./core/is-edit-mode-KTWA3O5N.js");return e?n("DataUnavailableInDraft","Page data is kept in this browser for this visitor."):null}function N({supports:e,token:t,fetchImpl:r,getLocation:a,eventTarget:o,getLiveSync:c,loadWriteModules:p=j,syncTimeoutMs:P=12e3,httpTimeoutMs:d=3e4}){let w=!1,i=!1;function u(l,{checkHold:m=!0}={}){if(l.savesAdmitted&&!l.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(i)throw n("DataWriteOutcomeUnknown","A previous page data write has an unknown outcome. Reload before writing again.");if(w)throw n("DataWriteInProgress","Another page data write is already running.");if(l.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(l.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(m&&(l.savesHeld()||l.isSaveConflicted()))throw n("SavesHeld","The page cannot write data while another save hold is active.");if(l.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.")}async function A(l){l.baselineSettled()||await new Promise(m=>o.addEventListener("clay:baseline-settled",m,{once:!0}))}async function I(l,{rules:m,ifMatch:O}={}){let b=await H();if(b)throw b;if(!await e(M))throw n("DataWriteUnsupported","This host does not support writing page data.");let s=await p();if(!s.isEditMode)throw n("DataWriteUnavailable","Page data writes require an editable page.");await A(s),u(s);let v=O;if(v==null&&(v=s.lastSeenEtag()||await s.seedEtag()),typeof v!="string"||v==="")throw n("DataWriteVersionRequired","Page data writes require a trustworthy document ETag.");u(s),w=!0,s.holdAllSaves(E);let g=null;try{if(s.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(s.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(s.isSaveConflicted())throw n("SavesHeld","The page cannot write data while another save hold is active.");if(s.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(s.savesAdmitted&&!s.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.");let W={"Content-Type":"application/json","If-Match":v},k=t();k&&(W["Save-Token"]=k);let _=JSON.stringify(l);g=x(o,P);let h=$(d),y;try{y=await h.waitFor(r(q(m,a()),{method:"POST",credentials:"same-origin",redirect:"error",headers:W,body:_,signal:h.signal}))}catch(T){throw h.cancel(),i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data write has an unknown outcome. Do not retry automatically."),{cause:T,unknownOutcome:!0})}let S;try{if(!y.ok)throw await h.waitFor(R(y));S=await h.waitFor(U(y))}catch(T){throw T?.status?T:(i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data was written, but its response could not be read."),{cause:T,unknownOutcome:!0}))}finally{h.cancel()}let f=F(y);if(f&&f===s.lastSeenEtag())return g.cancel(),g=null,{data:S,etag:f};let C=await g.waitFor(f);return g=null,C?{data:S,etag:f}:{data:S,etag:f,pageUpdatePending:!0,message:"Written, page update pending."}}finally{g?.cancel(),w=!1,s.releaseAllSaves({reason:E})}}return{writeData:I}}export{N as createPageDataWrite};
1
+ import"./c-VHNSBD2M.js";var M="data-write",E="Waiting for the page data write to finish";function n(e,t,r){let a=new Error(t);return a.code=e,a.details=r,a}async function U(e){if(typeof e.json=="function")return e.json();let t=await e.text();return t?JSON.parse(t):null}async function R(e){let t={};try{t=await U(e)||{}}catch{}let r=t.message||t.error||e.statusText||`Request failed (${e.status})`,a=new Error(r);return a.status=e.status,a.error=t.error,a.details=t.details,a}function F(e){let t=e.headers?.get?.("ETag");return typeof t=="string"&&t?t:null}function q(e,t){let r=`${t.origin}${t.pathname}`;return e!==void 0?`${r}?data=${encodeURIComponent(JSON.stringify(e))}`:`${t.origin}/_/api${t.pathname}`}function D(e){return!!e&&!e.isDestroyed&&e.sse?.readyState===1}function x(e,t){let r=[],a=null,o=null,c=null,p=i=>i?.source==="disk"&&(a===null||i.etag===a),P=i=>i?.source==="disk"&&(i.etag==null||a===null||i.etag===a),d=()=>{clearTimeout(c),e.removeEventListener("clay:sync-applied",w)},w=i=>{if(r.push(i.detail),!o||!P(i.detail))return;let u=o;o=null,d(),u(!0)};return e.addEventListener("clay:sync-applied",w),{waitFor(i){return a=i,r.some(p)?(d(),Promise.resolve(!0)):new Promise(u=>{o=u,c=setTimeout(()=>{o=null,d(),u(!1)},t)})},cancel:d}}function $(e){let t=new AbortController,r,a=new Promise((c,p)=>{r=p}),o=setTimeout(()=>{let c=new Error("The page data write timed out.");c.name="TimeoutError",t.abort(c),r(c)},e);return{signal:t.signal,waitFor(c){return Promise.race([c,a])},cancel(){clearTimeout(o)}}}async function j(){let[e,t,r,a,o]=await Promise.all([import("./core/save-LYY7K6U7.js"),import("./core/save-core-MKRPSEEO.js"),import("./c-R27DWQKX.js"),import("./core/unsaved-warning-7QTKEN7Z.js"),import("./core/is-edit-mode-GCX6767E.js")]);return{...e,...t,...r,...a,...o}}async function H(){let{isDraftMode:e}=await import("./core/is-edit-mode-GCX6767E.js");return e?n("DataUnavailableInDraft","Page data is kept in this browser for this visitor."):null}function N({supports:e,token:t,fetchImpl:r,getLocation:a,eventTarget:o,getLiveSync:c,loadWriteModules:p=j,syncTimeoutMs:P=12e3,httpTimeoutMs:d=3e4}){let w=!1,i=!1;function u(l,{checkHold:m=!0}={}){if(l.savesAdmitted&&!l.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(i)throw n("DataWriteOutcomeUnknown","A previous page data write has an unknown outcome. Reload before writing again.");if(w)throw n("DataWriteInProgress","Another page data write is already running.");if(l.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(l.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(m&&(l.savesHeld()||l.isSaveConflicted()))throw n("SavesHeld","The page cannot write data while another save hold is active.");if(l.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.")}async function A(l){l.baselineSettled()||await new Promise(m=>o.addEventListener("clay:baseline-settled",m,{once:!0}))}async function I(l,{rules:m,ifMatch:O}={}){let b=await H();if(b)throw b;if(!await e(M))throw n("DataWriteUnsupported","This host does not support writing page data.");let s=await p();if(!s.isEditMode)throw n("DataWriteUnavailable","Page data writes require an editable page.");await A(s),u(s);let v=O;if(v==null&&(v=s.lastSeenEtag()||await s.seedEtag()),typeof v!="string"||v==="")throw n("DataWriteVersionRequired","Page data writes require a trustworthy document ETag.");u(s),w=!0,s.holdAllSaves(E);let g=null;try{if(s.isSaveInProgress())throw n("SaveInProgress","The page is already being saved.");if(s.saveFateIsUnknown())throw n("SaveOutcomeUnknown","The page's last save has an unknown outcome.");if(s.isSaveConflicted())throw n("SavesHeld","The page cannot write data while another save hold is active.");if(s.hasUnsavedChanges())throw n("UnsavedChanges","Save or discard the page's unsaved changes before writing data.");if(s.savesAdmitted&&!s.savesAdmitted())throw n("ModeTransition","The page is switching modes. Write page data again when it has settled.");if(!D(c()))throw n("SyncRequired","Page data writes require the sync plugin to be connected.");let W={"Content-Type":"application/json","If-Match":v},k=t();k&&(W["Save-Token"]=k);let _=JSON.stringify(l);g=x(o,P);let h=$(d),y;try{y=await h.waitFor(r(q(m,a()),{method:"POST",credentials:"same-origin",redirect:"error",headers:W,body:_,signal:h.signal}))}catch(T){throw h.cancel(),i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data write has an unknown outcome. Do not retry automatically."),{cause:T,unknownOutcome:!0})}let S;try{if(!y.ok)throw await h.waitFor(R(y));S=await h.waitFor(U(y))}catch(T){throw T?.status?T:(i=!0,Object.assign(n("DataWriteOutcomeUnknown","The page data was written, but its response could not be read."),{cause:T,unknownOutcome:!0}))}finally{h.cancel()}let f=F(y);if(f&&f===s.lastSeenEtag())return g.cancel(),g=null,{data:S,etag:f};let C=await g.waitFor(f);return g=null,C?{data:S,etag:f}:{data:S,etag:f,pageUpdatePending:!0,message:"Written, page update pending."}}finally{g?.cancel(),w=!1,s.releaseAllSaves({reason:E})}}return{writeData:I}}export{N as createPageDataWrite};
@@ -0,0 +1 @@
1
+ import{c as z}from"./c-W4JCVLAB.js";import{B as J}from"./c-AMU3BPPR.js";import{d as _,m as F}from"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var{Decoration:ee,DecorationSet:te}=_,c=(t,n,a,e={},o=null)=>{let l=t.createElement(n);a&&(l.className=a);for(let[s,i]of Object.entries(e))i!=null&&i!==!1&&l.setAttribute(s,i===!0?"":String(i));return o!==null&&(l.textContent=o),l},ne=(t,n)=>c(t,"span","page-board-face",{"aria-hidden":"true"},([...String(n).trim()][0]??"?").toUpperCase());function I(t,n){let a=null;return t.state.doc.forEach((e,o)=>{e.attrs.id===n&&e.type===F.nodes.list_item&&e.attrs.kind==="check"&&(a={node:e,pos:o})}),a}function X(t,n,a,e){let o=I(t,n);o&&t.dispatch(J(t.state.tr.setNodeMarkup(o.pos,null,{...o.node.attrs,[a]:e||null})))}var L={person:'<circle cx="8" cy="5.4" r="2.3"/><path d="M3.6 13.2c.6-2.1 2.2-3.3 4.4-3.3s3.8 1.2 4.4 3.3"/>',calendar:'<rect x="2.5" y="3.5" width="11" height="10"/><path d="M2.5 6.8h11M5.5 2v2.4M10.5 2v2.4"/>',clock:'<circle cx="8" cy="8" r="5.5"/><path d="M8 4.8v3.4l2.3 1.4"/>',tick:'<path d="M3.5 8.3l3 3 6-6.2"/>',plus:'<path d="M8 3.5v9M3.5 8h9"/>',clear:'<path d="M4.8 4.8l6.4 6.4M11.2 4.8l-6.4 6.4"/>',"chevron-left":'<path d="M9.8 3.6L5.4 8l4.4 4.4"/>',"chevron-right":'<path d="M6.2 3.6L10.6 8l-4.4 4.4"/>'};function q(t,n){let a=t.createElementNS("http://www.w3.org/2000/svg","svg");return a.setAttribute("viewBox","0 0 16 16"),a.setAttribute("width","14"),a.setAttribute("height","14"),a.setAttribute("fill","none"),a.setAttribute("stroke","currentColor"),a.setAttribute("stroke-width","1.5"),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("aria-hidden","true"),a.innerHTML=n,a}var Z=t=>String(t).padStart(2,"0"),B=/^\d{4}-\d{2}-\d{2}$/,S=(t=new Date)=>`${t.getFullYear()}-${Z(t.getMonth()+1)}-${Z(t.getDate())}`,ae=t=>{let n=new Date(`${t}T00:00:00Z`);return n.setUTCDate(n.getUTCDate()+1),n.toISOString().slice(0,10)};function oe(t,n){if(!t)return"No date";if(!B.test(t))return t;if(t===n)return"Today";if(t===ae(n))return"Tomorrow";let a=t.slice(0,4)===n.slice(0,4);return new Date(`${t}T00:00:00Z`).toLocaleDateString("en-US",{month:"short",day:"numeric",...a?{}:{year:"numeric"},timeZone:"UTC"})}function j(t,{name:n,paths:a,label:e,aria:o,filled:l,overdue:s=!1}){let i=c(t,"button","page-check-chip",{type:"button","data-check":n,"data-filled":String(l),"data-overdue":s?"true":null,"aria-expanded":"false","aria-label":o});return i.append(q(t,a),c(t,"span","page-check-chip-label",{},e)),i}var N=null;function G(t,n,{className:a,label:e,check:o,onKey:l=null}){let s=n.ownerDocument,i=s.defaultView;N&&N.close();for(let d of s.querySelectorAll(".page-check-popup"))d.remove();let y=t.dom.parentNode,h=["relative","absolute","fixed","sticky"].includes(i?.getComputedStyle?.(y)?.position??""),g=y&&h?y:s.body,f=c(s,"div",`page-check-popup ${a}`,{role:"dialog","aria-label":e,"data-check":o}),A=!1,E=()=>{let d=n.getBoundingClientRect(),r=g===s.body?{top:-(i?.scrollY??0),left:-(i?.scrollX??0)}:g.getBoundingClientRect(),u=f.getBoundingClientRect(),p=u.width||Math.min(264,(i?.innerWidth||292)-28),k=(i?.innerHeight??0)-d.bottom-2,b=u.height>0&&k<u.height;f.style.left=`${Math.round(d.right-p-r.left)}px`,f.style.top=`${Math.round((b?d.top-u.height-2:d.bottom+2)-r.top)}px`},C=d=>{if(!f.isConnected)return w();f.contains(d.target)||n.contains(d.target)||w()},w=({focusAnchor:d=!1}={})=>{if(A)return;A=!0,s.removeEventListener("mousedown",C,!0),i?.removeEventListener("resize",E),i?.removeEventListener("scroll",E,!0),N?.panel===f&&(N=null),f.remove(),n.setAttribute("aria-expanded","false");let r=n.dataset.fromKeys==="true";delete n.dataset.fromKeys,d&&r?t.focus():d&&n.focus()};return f.addEventListener("keydown",d=>{if(d.stopPropagation(),d.key==="Escape"){d.preventDefault(),w({focusAnchor:!0});return}l?.(d,f)}),g.append(f),n.setAttribute("aria-expanded","true"),N={panel:f,close:()=>w()},s.addEventListener("mousedown",C,!0),i?.addEventListener("resize",E),i?.addEventListener("scroll",E,!0),{panel:f,close:w,place:E}}function re(t,n){let a=new Map;t.state.doc.forEach(e=>{if(e.type!==F.nodes.list_item||e.attrs.kind!=="check")return;let o=String(e.attrs.owner??"").trim();if(!o)return;let l=o.toLowerCase(),s=a.get(l)??{name:o,count:0};s.count+=1,a.set(l,s)});for(let e of n??[]){let o=String((typeof e=="string"?e:e?.name)??"").trim();o&&!a.has(o.toLowerCase())&&a.set(o.toLowerCase(),{name:o,count:0})}return[...a.values()].sort((e,o)=>e.name.localeCompare(o.name))}function ce(t,n,a){let e=a.ownerDocument,o=I(t,n)?.node.attrs.owner||"",{panel:l,close:s,place:i}=G(t,a,{className:"page-check-owner",label:"Assignee",check:"owner-panel",onKey:(r,u)=>{if(r.key!=="ArrowDown"&&r.key!=="ArrowUp")return;r.preventDefault();let p=[...u.querySelectorAll("input, button:not([disabled])")],k=p.indexOf(e.activeElement),b=r.key==="ArrowDown"?1:-1;(k<0?b>0?p[0]:p[p.length-1]:p[(k+b+p.length)%p.length])?.focus()}}),y=c(e,"input","page-check-search",{type:"text",placeholder:"Find or type a name","aria-label":"Find or type a name"}),h=c(e,"div","page-check-people"),g=c(e,"button","page-check-person page-check-danger",{type:"button","data-check":"clear-owner"});g.append(q(e,L.clear),c(e,"span","page-check-person-name",{},"Remove assignee")),g.disabled=!o,g.addEventListener("click",()=>A(null)),l.append(y,c(e,"div","page-check-subhead",{},"People in this document"),h,c(e,"div","page-check-divider"),g);let f=[],A=r=>{s(),X(t,n,"owner",r)},E=(r,u)=>{let p=r.toLowerCase()===String(o).toLowerCase(),k=c(e,"button","page-check-person",{type:"button","data-check":"owner-option","data-name":r,"aria-pressed":String(p)});return k.append(ne(e,r),c(e,"span","page-check-person-name",{},r),c(e,"span","page-check-person-meta",{},`${u} ${u===1?"item":"items"}`)),p&&k.append(q(e,L.tick)),k.addEventListener("click",()=>A(r)),k},C=r=>{let u=c(e,"button","page-check-person",{type:"button","data-check":"owner-new","data-name":r}),p=c(e,"span","page-check-person-name",{},"Assign to ");return p.append(c(e,"strong",null,{},r)),u.append(q(e,L.plus),p,c(e,"span","page-check-person-meta",{},"New")),u.addEventListener("click",()=>A(r)),u},w=()=>{let r=y.value.trim(),u=r.toLowerCase(),p=re(t,f),k=[];r&&!p.some(b=>b.name.toLowerCase()===u)&&k.push(C(r));for(let b of p)u&&!b.name.toLowerCase().includes(u)||k.push(E(b.name,b.count));h.replaceChildren(...k)};y.addEventListener("keydown",r=>{if(r.stopPropagation(),r.key==="Escape"){r.preventDefault(),s({focusAnchor:!0});return}r.key==="Enter"&&(r.preventDefault(),h.querySelector("button[data-check]")?.click())}),y.addEventListener("input",w),w(),i(),y.focus();let d=globalThis.clay?.people?.available;d&&Promise.resolve().then(()=>d()).then(r=>{!N||N.panel!==l||(f=Array.isArray(r)?r:[],w())}).catch(()=>{})}var se=["January","February","March","April","May","June","July","August","September","October","November","December"],$=(t,n,a)=>new Date(t,n,a),ie=t=>t.toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"}),le=t=>t.toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric"}),W=t=>{if(!t||!B.test(t))return null;let[n,a,e]=t.split("-").map(Number);return $(n,a-1,e)};function de(t,n,a){let e=a.ownerDocument,o=I(t,n)?.node.attrs.due||null,l=S(),s=new Date,i=$(s.getFullYear(),s.getMonth(),s.getDate()),y=W(o)??i,h=y.getFullYear(),g=y.getMonth(),{panel:f,close:A,place:E}=G(t,a,{className:"page-check-date",label:"Due date",check:"date-panel",onKey:(m,D)=>Q(m,D)}),C=m=>{A(),X(t,n,"due",m)},w=c(e,"div","page-check-quick"),d=(m,D)=>{let M=$(i.getFullYear(),i.getMonth(),i.getDate()+D),x=c(e,"button","page-check-quick-row",{type:"button","data-check":"date-quick","data-date":S(M)});return x.append(q(e,L.calendar),c(e,"span","page-check-quick-label",{},m),c(e,"span","page-check-quick-meta",{},ie(M))),x.addEventListener("click",()=>C(S(M))),x};w.append(d("Today",0),d("Tomorrow",1),d("Next week",7));let r=c(e,"div","page-check-cal"),u=c(e,"div","page-check-cal-head"),p=c(e,"span","page-check-cal-month"),k=c(e,"span","page-check-cal-nav"),b=m=>{let D=$(h,g+m,1);h=D.getFullYear(),g=D.getMonth(),H()},U=c(e,"button","page-check-cal-btn",{type:"button","aria-label":"Previous month"}),O=c(e,"button","page-check-cal-btn",{type:"button","aria-label":"Next month"});U.append(q(e,L["chevron-left"])),O.append(q(e,L["chevron-right"])),U.addEventListener("click",()=>b(-1)),O.addEventListener("click",()=>b(1)),k.append(U,O),u.append(p,k);let Y=c(e,"div","page-check-cal-grid");r.append(u,Y);let H=()=>{p.replaceChildren(c(e,"span",null,{},`${se[g]} `),c(e,"span","page-check-cal-year",{},String(h)));let m=$(h,g,1),D=$(h,g+1,0).getDate(),M=Math.ceil((m.getDay()+D)/7)*7,x=["S","M","T","W","T","F","S"].map(v=>c(e,"span","page-check-cal-dow",{},v)),T=[];for(let v=0;v<M;v+=1){let P=$(h,g,1-m.getDay()+v),R=S(P),V=c(e,"button","page-check-cal-day",{type:"button","data-check":"date-day","data-date":R,"data-outside":String(P.getMonth()!==g),"data-today":String(R===l),"aria-pressed":String(R===o),"aria-label":le(P)},String(P.getDate()));V.addEventListener("click",()=>C(R)),T.push(V)}Y.replaceChildren(...x,...T)},Q=(m,D)=>{let M=e.activeElement?.closest?.('[data-check="date-day"]');if(!M)return;if(m.key==="Enter"||m.key===" "){m.preventDefault(),M.click();return}let x={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7}[m.key];if(!x)return;m.preventDefault();let T=W(M.dataset.date),v=$(T.getFullYear(),T.getMonth(),T.getDate()+x);(v.getMonth()!==g||v.getFullYear()!==h)&&(h=v.getFullYear(),g=v.getMonth(),H()),D.querySelector(`[data-check="date-day"][data-date="${S(v)}"]`)?.focus()},K=c(e,"button","page-check-quick-row page-check-danger",{type:"button","data-check":"clear-date"});K.append(q(e,L.clear),c(e,"span","page-check-quick-label",{},"Clear date")),K.disabled=!o,K.addEventListener("click",()=>C(null)),f.append(w,r,c(e,"div","page-check-divider"),K),H(),E(),(Y.querySelector('[data-check="date-day"][aria-pressed="true"]')??Y.querySelector('[data-check="date-day"][data-today="true"]'))?.focus()}function pe(t,n){let a=t.dom.ownerDocument,e=a.createElement("span");e.className="page-check-controls",e.contentEditable="false",e.dataset.empty=String(!n.attrs.owner&&!n.attrs.due);let o=S(),l=n.attrs.owner||"Unassigned",s=j(a,{name:"owner",paths:L.person,label:l,aria:`Assignee: ${l}`,filled:!!n.attrs.owner}),i=oe(n.attrs.due,o),y=!!n.attrs.due&&!n.attrs.checked&&B.test(n.attrs.due)&&n.attrs.due<o,h=j(a,{name:"date",paths:y?L.clock:L.calendar,label:i,aria:`Due date: ${i}`,filled:!!n.attrs.due,overdue:y});return s.addEventListener("click",()=>ce(t,n.attrs.id,s)),h.addEventListener("click",()=>de(t,n.attrs.id,h)),e.append(s,h),e}function ue(t,n){let a=t.state.selection.$head;if(a.depth!==1||a.parent.type!==F.nodes.list_item||a.parent.attrs.kind!=="check")return!1;let e=a.parent.attrs.id,l=[...t.dom.querySelectorAll(".page-check-controls")].find(s=>s.dataset.item===e)?.querySelector(`[data-check="${n}"]`);return l?(l.dataset.fromKeys="true",l.click(),!0):!1}function he(t){let n=[],a=S();return t.doc.forEach((e,o)=>{e.type!==F.nodes.list_item||e.attrs.kind!=="check"||n.push(ee.widget(o+e.nodeSize-1,l=>{let s=pe(l,e);return s.dataset.item=e.attrs.id,s},{key:`${e.attrs.id}:${e.attrs.owner}:${e.attrs.due}:${e.attrs.checked}:${a}`,side:-1,stopEvent:l=>!!l.target.closest?.(".page-check-chip, .page-check-popup"),ignoreSelection:!0}))}),te.create(t.doc,n)}function ge(t){let n=S(),a=()=>{t.isDestroyed||S()===n||(n=S(),t.dispatch(t.state.tr.setMeta("addToHistory",!1)))},e=t.dom.ownerDocument.defaultView,o=e.setInterval(a,6e4);return e.document.addEventListener("visibilitychange",a),()=>{e.clearInterval(o),e.document.removeEventListener("visibilitychange",a)}}function be({view:t=null}={}){let n=t?z(t,{decorations:he,focusControl:ue}):()=>{},a=t?ge(t):()=>{};return t&&!t.isDestroyed&&t.dispatch(t.state.tr.setMeta("addToHistory",!1)),{id:"checklist",dispose(){n(),a()}}}export{be as createFeature,he as decorations,ue as focusControl};
@@ -0,0 +1 @@
1
+ import{b as y,c as S}from"./c-6DNRCPNM.js";import{b as C,c as s}from"./c-YVZ2L7CE.js";import{A as f,B as m,C as p,p as i,z as d}from"./c-7MG5RU63.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";function b(e={}){let t=d({...e,sliced:!0});return Object.freeze({captureId:t.captureId,steps:()=>h(t),drop:()=>p(t)})}function v(e,t){let r=e.querySelector("head");if(!r)return;let n=e.querySelector(`meta[name="${t.name}"]`);if(n){n.getAttribute("content")!==t.content&&n.setAttribute("content",t.content);return}let o=e.ownerDocument.createElement("meta");o.setAttribute("name",t.name),o.setAttribute("content",t.content),r.appendChild(o)}function*g(e,t,r){if(!r.renderer)return t;let n=null;for(;;){let o;try{o=i(r.context,()=>(n||=r.rendererSteps?r.rendererSteps(e,t):!1,n?n.next():{done:!0,value:r.renderer(e,t)}))}catch(c){return console.error("clayjs: save renderer failed, sending the full serialization",c),t}if(o.done)return o.value;yield}}function*h(e){f(e);let t=yield*C(e.clone);yield;let r=e.compareClone?yield*s(e.compareClone):null;yield;let n=e.dirtyClone?yield*s(e.dirtyClone):r;yield,e.pageFormatMarker&&v(e.clone,e.pageFormatMarker);let o=yield*g(e.clone,t,e);return m(e,{forSave:o,forComparison:r,forDirty:n})}var l=()=>globalThis.performance?globalThis.performance.now():Date.now();async function F(e,{budgetMs:t=4,signal:r=null}={}){let n=0,o=l(),c=async()=>{n+=l()-o,await y(),o=l()},a;try{a=await S(e,{budgetMs:t,signal:r,yieldTask:c})}finally{n+=l()-o}let u=a!==null&&typeof a=="object"&&a.aborted===!0;return{result:u?null:a,aborted:u,activeMs:n}}export{b as beginSaveCapture,F as runPreparedSteps};
@@ -1 +1 @@
1
- import{a as w}from"./c-BBVGTQG7.js";import{b as m,c as v}from"./c-RYUXUUBX.js";import"./c-VKEDWYDF.js";import{l as f,n as y}from"./c-OW5QIGG3.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-SPIORRYS.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var L="script[editmode\\:resource]";function d(e=document){let t=[...e.querySelectorAll(L)];return{reversible:t.length===0,scripts:t}}function R(e=document){return{enable(){m(e)},quiesce(){},resume(){},dispose(){v()}}}function g(e=document){return{id:"clay:resources",order:100,prepare(){let{reversible:t}=d(e);if(!t)throw Object.assign(new Error("clay.modeLifecycle: an editmode:resource script cannot be re-run"),{code:"unsupported-plugin"});return R(e)}}}var b=!1,S=()=>{let e=new Set;for(let t of f()){if(typeof t?.then=="function")continue;let n=t?.id;if(typeof n!="string"||typeof t?.prepare!="function"||e.has(n))return!1;e.add(n)}return!0},j=e=>[...e?.edit?.core??[],...e?.edit?.plugins??[],...e?.edit?.late??[],...e?.view?.plugins??[],...e?.view?.late??[]];function A(e){return[...new Set(j(e))].filter(t=>w(t)===null)}function T(e){return S()&&A(e).length===0&&d().reversible}function _(){b||(b=!0,y(g()))}var l=()=>Object.assign(new Error("clay.modeLifecycle: the import was cancelled"),{name:"AbortError",code:"aborted"}),O=15e3,E=(e,t)=>Object.assign(new Error(`clayjs: ${e}`),{code:t}),q=(e,t)=>new Promise((n,s)=>{if(t?.aborted)return s(l());let o=()=>s(l());t?.addEventListener?.("abort",o),Promise.resolve(e).then(i=>{t?.removeEventListener?.("abort",o),n(i)},i=>{t?.removeEventListener?.("abort",o),s(i)})}),h=e=>!e?.represented||e.represented.bytes===null,P=e=>e&&(e.liveSync??e.default??e)||null;async function k(e,t={}){let n=t.signal,s={signal:n,deadline:O},o=e?.loaded?.["plugins/page-view.js"];if(o?.ready){await q(o.acquired,n);let a=await o.prepareHandoff(s);if(h(a))throw E("the reader has no file to hand over","not-acquired");return a}let i=P(e?.loaded?.["sync/live-sync.js"]);if(i&&!i.isDestroyed&&i.lane==="saved"){let a=await i.prepareHandoff(s);if(h(a))throw E("the reader has no file to hand over","not-acquired");return a}return null}function I(e,t=null){let n=e?.loaded?.["plugins/page-view.js"],s=Array.isArray(e?.view?.plugins)?e.view.plugins.includes("sync/live-sync.js"):!!e?.loaded?.["sync/live-sync.js"];if(n&&((n.restart??n.start)({sync:s,represented:t}),!s))return;let o=P(e?.loaded?.["sync/live-sync.js"]);if(o)return o.start(o.currentFile,{lane:"saved",represented:t})}async function V(e,t,{signal:n}={}){let s=e.inflight||=new Map,o=[],i=()=>{if(n?.aborted)throw l()},a=e.loadEditHints?.();if(a)try{await a}catch{}let u=r=>{if(!s.has(r)){let c=Promise.resolve().then(()=>e.modules[r]()).catch(x=>{throw s.delete(r),x});s.set(r,c)}return s.get(r)};for(let r of t.core??[]){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,c.install?.()}e.attachEditCore(e.loaded);for(let r of t.plugins??[]){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,e.attach(r,c),o.push(r)}let p=(t.late??[]).filter(r=>!e.loaded[r]);if(p.length){i();try{await e.late}catch{}for(let r of p){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,e.attach(r,c),o.push(r)}}return o}export{V as importPlan,T as liveAllowed,_ as openResources,k as prepareReader,I as startReader,A as unsupportedPaths};
1
+ import{a as w}from"./c-UGNV5MFB.js";import{b as m,c as v}from"./c-TNEM3RNM.js";import"./c-VKEDWYDF.js";import{m as f,o as y}from"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-7MG5RU63.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var L="script[editmode\\:resource]";function d(e=document){let t=[...e.querySelectorAll(L)];return{reversible:t.length===0,scripts:t}}function R(e=document){return{enable(){m(e)},quiesce(){},resume(){},dispose(){v()}}}function g(e=document){return{id:"clay:resources",order:100,prepare(){let{reversible:t}=d(e);if(!t)throw Object.assign(new Error("clay.modeLifecycle: an editmode:resource script cannot be re-run"),{code:"unsupported-plugin"});return R(e)}}}var b=!1,S=()=>{let e=new Set;for(let t of f()){if(typeof t?.then=="function")continue;let n=t?.id;if(typeof n!="string"||typeof t?.prepare!="function"||e.has(n))return!1;e.add(n)}return!0},j=e=>[...e?.edit?.core??[],...e?.edit?.plugins??[],...e?.edit?.late??[],...e?.view?.plugins??[],...e?.view?.late??[]];function A(e){return[...new Set(j(e))].filter(t=>w(t)===null)}function T(e){return S()&&A(e).length===0&&d().reversible}function _(){b||(b=!0,y(g()))}var l=()=>Object.assign(new Error("clay.modeLifecycle: the import was cancelled"),{name:"AbortError",code:"aborted"}),O=15e3,E=(e,t)=>Object.assign(new Error(`clayjs: ${e}`),{code:t}),q=(e,t)=>new Promise((n,s)=>{if(t?.aborted)return s(l());let o=()=>s(l());t?.addEventListener?.("abort",o),Promise.resolve(e).then(i=>{t?.removeEventListener?.("abort",o),n(i)},i=>{t?.removeEventListener?.("abort",o),s(i)})}),h=e=>!e?.represented||e.represented.bytes===null,P=e=>e&&(e.liveSync??e.default??e)||null;async function k(e,t={}){let n=t.signal,s={signal:n,deadline:O},o=e?.loaded?.["plugins/page-view.js"];if(o?.ready){await q(o.acquired,n);let a=await o.prepareHandoff(s);if(h(a))throw E("the reader has no file to hand over","not-acquired");return a}let i=P(e?.loaded?.["sync/live-sync.js"]);if(i&&!i.isDestroyed&&i.lane==="saved"){let a=await i.prepareHandoff(s);if(h(a))throw E("the reader has no file to hand over","not-acquired");return a}return null}function I(e,t=null){let n=e?.loaded?.["plugins/page-view.js"],s=Array.isArray(e?.view?.plugins)?e.view.plugins.includes("sync/live-sync.js"):!!e?.loaded?.["sync/live-sync.js"];if(n&&((n.restart??n.start)({sync:s,represented:t}),!s))return;let o=P(e?.loaded?.["sync/live-sync.js"]);if(o)return o.start(o.currentFile,{lane:"saved",represented:t})}async function V(e,t,{signal:n}={}){let s=e.inflight||=new Map,o=[],i=()=>{if(n?.aborted)throw l()},a=e.loadEditHints?.();if(a)try{await a}catch{}let u=r=>{if(!s.has(r)){let c=Promise.resolve().then(()=>e.modules[r]()).catch(x=>{throw s.delete(r),x});s.set(r,c)}return s.get(r)};for(let r of t.core??[]){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,c.install?.()}e.attachEditCore(e.loaded);for(let r of t.plugins??[]){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,e.attach(r,c),o.push(r)}let p=(t.late??[]).filter(r=>!e.loaded[r]);if(p.length){i();try{await e.late}catch{}for(let r of p){if(e.loaded[r])continue;i();let c=await u(r);e.loaded[r]=c,e.attach(r,c),o.push(r)}}return o}export{V as importPlan,T as liveAllowed,_ as openResources,k as prepareReader,I as startReader,A as unsupportedPaths};
@@ -1 +1 @@
1
- import{a as i}from"./c-S7H2DRCB.js";import{a as g}from"./c-7SWMYKAI.js";import"./c-VHNSBD2M.js";function I(r){let n=new Map;return e=>{if(!e||!e.includes(r.name!==void 0?"<style":"<link"))return e;if(n.has(e))return n.get(e);let c=[],d=i(e,{sourceCodeLocationInfo:!0,scriptingEnabled:!0}),u=s=>{let t=new Map((s.attrs||[]).map(({name:l,value:m})=>[l,m])),p=r.name!==void 0?s.tagName==="style"&&(t.get("data-name")===r.name||r.legacyId!==void 0&&t.get("id")===r.legacyId&&!t.has("data-name")):s.tagName==="link"&&t.get("rel")?.toLowerCase()==="stylesheet"&&g(t.get("href")??null)===r.href,o=s.sourceCodeLocation;if(p&&o?.startTag)c.push([o.startTag.startOffset,o.endTag?.endOffset??o.endOffset]);else for(let l of s.childNodes||[])u(l)};u(d),c.sort((s,t)=>s[0]-t[0]);let a="",f=0;for(let[s,t]of c)a+=e.slice(f,s),f=t;return a+=e.slice(f),n.set(e,a),a}}export{I as styleComparisonStripper};
1
+ import{b as i}from"./c-Q3XOWZEV.js";import{a as g}from"./c-7SWMYKAI.js";import"./c-VHNSBD2M.js";function I(r){let n=new Map;return e=>{if(!e||!e.includes(r.name!==void 0?"<style":"<link"))return e;if(n.has(e))return n.get(e);let c=[],d=i(e,{sourceCodeLocationInfo:!0,scriptingEnabled:!0}),u=s=>{let t=new Map((s.attrs||[]).map(({name:l,value:m})=>[l,m])),p=r.name!==void 0?s.tagName==="style"&&(t.get("data-name")===r.name||r.legacyId!==void 0&&t.get("id")===r.legacyId&&!t.has("data-name")):s.tagName==="link"&&t.get("rel")?.toLowerCase()==="stylesheet"&&g(t.get("href")??null)===r.href,o=s.sourceCodeLocation;if(p&&o?.startTag)c.push([o.startTag.startOffset,o.endTag?.endOffset??o.endOffset]);else for(let l of s.childNodes||[])u(l)};u(d),c.sort((s,t)=>s[0]-t[0]);let a="",f=0;for(let[s,t]of c)a+=e.slice(f,s),f=t;return a+=e.slice(f),n.set(e,a),a}}export{I as styleComparisonStripper};
@@ -1,4 +1,4 @@
1
- import{a as d,b as w}from"./c-6KEVEQ7L.js";import{A as g}from"./c-5J4E7O4Y.js";import{j as x}from"./c-WWXIDH4O.js";import"./c-VHNSBD2M.js";var y=`
1
+ import{a as L,c as f,d as c,e as C,g as D,h as B,i as l,j as S,k as $,l as b,m as P}from"./c-MWXFLW4J.js";import{c as R}from"./c-W4JCVLAB.js";import{B as m,d as N}from"./c-AMU3BPPR.js";import{d as y,j as M,m as A}from"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var d=new WeakMap;var{Decoration:U,DecorationSet:F}=y,re=A.nodes,H=new Set(["timeout","network","error","bad-response"]),I=`
2
2
  .page-editor .page-image { margin-inline: 0; }
3
3
  .page-image-frame { position: relative; margin: 0 auto; max-width: 100%; }
4
4
  .page-image-frame img { display: block; width: 100%; height: auto; border-radius: var(--page-image-radius, 6px); }
@@ -31,4 +31,4 @@ import{a as d,b as w}from"./c-6KEVEQ7L.js";import{A as g}from"./c-5J4E7O4Y.js";i
31
31
  .page-upload[data-state="error"] .page-upload-msg, .page-upload[data-state="embed-choice"] .page-upload-msg { flex: 1; }
32
32
  .page-upload[data-state="error"] .page-upload-msg { color: var(--page-danger, #9E3B2F); }
33
33
  .page-upload-btn { border: 0; padding: 4px 8px; border-radius: 6px; background: none; color: inherit; font: inherit; cursor: pointer; }
34
- .page-upload-btn:hover { background: var(--page-pop-hover); }`;function c(i,e,t,r){let n=i.createElement("button");return n.type="button",n.className="page-upload-btn",n.dataset.act=e,n.dataset.upload=r,n.textContent=t,n}function k(i,e){let t=i.createElement("div");if(t.className="page-upload",t.dataset.state=e.state,t.dataset.kind=e.kind,t.contentEditable="false",t.setAttribute("role",e.state==="uploading"?"status":"alert"),e.preview){let a=i.createElement("img");a.className="page-upload-preview",a.src=e.preview,a.alt="",t.append(a)}let r=i.createElement("span");if(r.className="page-upload-name",r.textContent=e.name,t.append(r),e.state==="uploading"){let a=i.createElement("span");a.className="page-upload-bar",a.setAttribute("role","progressbar"),a.setAttribute("aria-label",`Uploading ${e.name}`),a.setAttribute("aria-valuemin","0"),a.setAttribute("aria-valuemax","100"),a.setAttribute("aria-valuenow",String(e.percent));let s=i.createElement("span");return s.style.width=`${e.percent}%`,a.append(s),t.append(a,c(i,"cancel","Cancel",e.id)),t}let n=i.createElement("span");return n.className="page-upload-msg",n.textContent=e.message,t.append(n),e.state==="embed-choice"&&t.append(c(i,"embed","Keep this image inside the document",e.id)),w.has(e.code)&&t.append(c(i,"retry","Retry",e.id)),t.append(c(i,"remove","Remove",e.id)),t}var E=48,M=[["left","Align left",'<path d="M2.5 3.5h11M2.5 6.5h6M2.5 9.5h11M2.5 12.5h6"/>'],["center","Centre",'<path d="M2.5 3.5h11M5 6.5h6M2.5 9.5h11M5 12.5h6"/>'],["right","Align right",'<path d="M2.5 3.5h11M7.5 6.5h6M2.5 9.5h11M7.5 12.5h6"/>']],m=class{constructor(e,t,r){this.node=e,this.view=t,this.getPos=r;let n=t.dom.ownerDocument;this.dom=n.createElement("figure"),this.dom.className="page-image",this.dom.addEventListener("dragstart",a=>{a.preventDefault(),a.stopPropagation()}),this.dom.draggable=!1,this.frame=n.createElement("div"),this.frame.className="page-image-frame",this.img=n.createElement("img"),this.img.draggable=!1,this.img.addEventListener("error",()=>this.dom.toggleAttribute("data-broken",!0)),this.img.addEventListener("load",()=>this.dom.removeAttribute("data-broken")),this.handle=n.createElement("span"),this.handle.className="page-image-handle",this.handle.setAttribute("aria-hidden","true"),this.handle.addEventListener("pointerdown",a=>this.resize(a)),this.alignBar=n.createElement("div"),this.alignBar.className="page-image-align",this.alignBar.setAttribute("role","toolbar"),this.alignBar.setAttribute("aria-label","Image alignment");for(let[a,s,p]of M){let o=n.createElement("button");o.type="button",o.dataset.align=a,o.setAttribute("aria-label",s),o.title=s,o.innerHTML=`<svg viewBox="0 0 16 16" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" aria-hidden="true">${p}</svg>`,this.alignBar.append(o)}this.alignBar.addEventListener("mousedown",a=>a.preventDefault()),this.alignBar.addEventListener("click",a=>{let s=a.target.closest("[data-align]");s&&this.setAlign(s.dataset.align==="center"?null:s.dataset.align)}),this.frame.append(this.img,this.handle,this.alignBar),this.caption=n.createElement("figcaption"),this.caption.className="page-image-caption",this.caption.contentEditable="plaintext-only",this.caption.setAttribute("aria-label","Caption"),this.caption.dataset.placeholder="Add a caption",this.caption.addEventListener("keydown",a=>{a.isComposing||this.view.composing||(a.key==="Enter"&&(a.preventDefault(),this.commitCaption(),this.view.focus()),a.key==="Escape"&&(a.preventDefault(),this.caption.textContent=this.node.attrs.caption,this.view.focus()))}),this.caption.addEventListener("blur",()=>this.commitCaption()),this.caption.addEventListener("input",()=>this.caption.toggleAttribute("data-empty",!this.caption.textContent)),this.dom.append(this.frame,this.caption),this.render(e)}render(e){this.node=e,this.dom.dataset.id=e.attrs.id??"",this.img.getAttribute("src")!==e.attrs.src&&(this.img.src=e.attrs.src),this.img.alt=e.attrs.alt||"",this.frame.style.width=e.attrs.width?`${e.attrs.width}px`:"",e.attrs.align?this.dom.dataset.align=e.attrs.align:delete this.dom.dataset.align;for(let t of this.alignBar.children)t.setAttribute("aria-pressed",String((e.attrs.align??"center")===t.dataset.align));this.dom.ownerDocument.activeElement!==this.caption&&(this.caption.textContent=e.attrs.caption||""),this.caption.toggleAttribute("data-empty",!e.attrs.caption)}update(e){return e.type!==this.node.type?!1:(this.render(e),!0)}setAlign(e){let t=this.getPos();t==null||e===(this.node.attrs.align??null)||this.view.dispatch(g(this.view.state.tr.setNodeMarkup(t,null,{...this.node.attrs,align:e})))}commitCaption(){let e=this.caption.textContent.replace(/\s+/g," ").trim(),t=this.getPos();t==null||e===(this.node.attrs.caption||"")||this.view.dispatch(g(this.view.state.tr.setNodeMarkup(t,null,{...this.node.attrs,caption:e})))}resize(e){e.preventDefault(),e.stopPropagation();let t=this.view.dom.getBoundingClientRect().width,r=this.frame.getBoundingClientRect().width,n=this.dom.ownerDocument.defaultView.getComputedStyle(this.dom).direction==="rtl",a=e.clientX,s=e.currentTarget;s.setPointerCapture?.(e.pointerId);let p=this.node.attrs.width,o=h=>{let l=(h.clientX-a)*(n?-1:1);p=Math.max(E,Math.min(Math.floor(t)||E,Math.round(r+l))),this.frame.style.width=`${p}px`},f=h=>{s.removeEventListener("pointermove",o),s.removeEventListener("pointerup",b),s.removeEventListener("pointercancel",v);let l=this.getPos();h&&l!=null&&p!==this.node.attrs.width?this.view.dispatch(g(this.view.state.tr.setNodeMarkup(l,null,{...this.node.attrs,width:p}))):this.frame.style.width=this.node.attrs.width?`${this.node.attrs.width}px`:""},b=()=>f(!0),v=()=>f(!1);s.addEventListener("pointermove",o),s.addEventListener("pointerup",b),s.addEventListener("pointercancel",v)}selectNode(){this.dom.classList.add("is-selected")}deselectNode(){this.dom.classList.remove("is-selected")}stopEvent(e){return this.caption.contains(e.target)||this.alignBar.contains(e.target)||e.target.classList?.contains("page-image-handle")}ignoreMutation(){return!0}},A=i=>i==null?"":i<1024?`${i} B`:i<1024*1024?`${Math.round(i/1024)} KB`:`${(i/(1024*1024)).toFixed(1)} MB`,u=class{constructor(e,t){this.node=e;let r=t.dom.ownerDocument;this.dom=r.createElement("div"),this.dom.className="page-file",this.dom.addEventListener("dragstart",n=>{n.preventDefault(),n.stopPropagation()}),this.link=r.createElement("a"),this.link.className="page-file-link",this.link.target="_blank",this.link.rel="noopener noreferrer",this.icon=r.createElement("span"),this.icon.className="page-file-icon",this.icon.textContent="\u2398",this.name=r.createElement("span"),this.name.className="page-file-name",this.meta=r.createElement("span"),this.meta.className="page-file-meta",this.link.append(this.icon,this.name,this.meta),this.dom.append(this.link),this.render(e)}render(e){this.node=e,this.dom.dataset.id=e.attrs.id??"";let t=x(e.attrs.src);t?this.link.setAttribute("href",t):this.link.removeAttribute("href"),this.name.textContent=e.attrs.name||"file",this.meta.textContent=A(e.attrs.size)}update(e){return e.type!==this.node.type?!1:(this.render(e),!0)}selectNode(){this.dom.classList.add("is-selected")}deselectNode(){this.dom.classList.remove("is-selected")}stopEvent(e){return this.link.contains(e.target)}ignoreMutation(){return!0}};function D({view:i=null}={}){return i&&d.set(i,k),{id:"media",nodeViews:{image:(e,t,r)=>new m(e,t,r),file:(e,t)=>new u(e,t)},css:y,dispose(){i&&d.get(i)===k&&d.delete(i)}}}export{u as FileView,m as ImageView,y as MEDIA_CSS,D as createFeature};
34
+ .page-upload-btn:hover { background: var(--page-pop-hover); }`;function h(t,e,a,n){let i=t.createElement("button");return i.type="button",i.className="page-upload-btn",i.dataset.act=e,i.dataset.upload=n,i.textContent=a,i}function z(t,e){let a=t.createElement("div");if(a.className="page-upload",a.dataset.state=e.state,a.dataset.kind=e.kind,a.contentEditable="false",a.setAttribute("role",e.state==="uploading"?"status":"alert"),e.preview){let r=t.createElement("img");r.className="page-upload-preview",r.src=e.preview,r.alt="",a.append(r)}let n=t.createElement("span");if(n.className="page-upload-name",n.textContent=e.name,a.append(n),e.state==="uploading"){let r=t.createElement("span");r.className="page-upload-bar",r.setAttribute("role","progressbar"),r.setAttribute("aria-label",`Uploading ${e.name}`),r.setAttribute("aria-valuemin","0"),r.setAttribute("aria-valuemax","100"),r.setAttribute("aria-valuenow",String(e.percent));let s=t.createElement("span");return s.style.width=`${e.percent}%`,r.append(s),a.append(r,h(t,"cancel","Cancel",e.id)),a}let i=t.createElement("span");return i.className="page-upload-msg",i.textContent=e.message,a.append(i),e.state==="embed-choice"&&a.append(h(t,"embed","Keep this image inside the document",e.id)),H.has(e.code)&&a.append(h(t,"retry","Retry",e.id)),a.append(h(t,"remove","Remove",e.id)),a}var T=48,V=[["left","Align left",'<path d="M2.5 3.5h11M2.5 6.5h6M2.5 9.5h11M2.5 12.5h6"/>'],["center","Centre",'<path d="M2.5 3.5h11M5 6.5h6M2.5 9.5h11M5 12.5h6"/>'],["right","Align right",'<path d="M2.5 3.5h11M7.5 6.5h6M2.5 9.5h11M7.5 12.5h6"/>']],x=class{constructor(e,a,n){this.node=e,this.view=a,this.getPos=n;let i=a.dom.ownerDocument;this.dom=i.createElement("figure"),this.dom.className="page-image",this.dom.addEventListener("dragstart",r=>{r.preventDefault(),r.stopPropagation()}),this.dom.draggable=!1,this.frame=i.createElement("div"),this.frame.className="page-image-frame",this.img=i.createElement("img"),this.img.draggable=!1,this.img.addEventListener("error",()=>this.dom.toggleAttribute("data-broken",!0)),this.img.addEventListener("load",()=>this.dom.removeAttribute("data-broken")),this.handle=i.createElement("span"),this.handle.className="page-image-handle",this.handle.setAttribute("aria-hidden","true"),this.handle.addEventListener("pointerdown",r=>this.resize(r)),this.alignBar=i.createElement("div"),this.alignBar.className="page-image-align",this.alignBar.setAttribute("role","toolbar"),this.alignBar.setAttribute("aria-label","Image alignment");for(let[r,s,p]of V){let o=i.createElement("button");o.type="button",o.dataset.align=r,o.setAttribute("aria-label",s),o.title=s,o.innerHTML=`<svg viewBox="0 0 16 16" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" aria-hidden="true">${p}</svg>`,this.alignBar.append(o)}this.alignBar.addEventListener("mousedown",r=>r.preventDefault()),this.alignBar.addEventListener("click",r=>{let s=r.target.closest("[data-align]");s&&this.setAlign(s.dataset.align==="center"?null:s.dataset.align)}),this.frame.append(this.img,this.handle,this.alignBar),this.caption=i.createElement("figcaption"),this.caption.className="page-image-caption",this.caption.contentEditable="plaintext-only",this.caption.setAttribute("aria-label","Caption"),this.caption.dataset.placeholder="Add a caption",this.caption.addEventListener("keydown",r=>{r.isComposing||this.view.composing||(r.key==="Enter"&&(r.preventDefault(),this.commitCaption(),this.view.focus()),r.key==="Escape"&&(r.preventDefault(),this.caption.textContent=this.node.attrs.caption,this.view.focus()))}),this.caption.addEventListener("blur",()=>this.commitCaption()),this.caption.addEventListener("input",()=>this.caption.toggleAttribute("data-empty",!this.caption.textContent)),this.dom.append(this.frame,this.caption),this.render(e)}render(e){this.node=e,this.dom.dataset.id=e.attrs.id??"",this.img.getAttribute("src")!==e.attrs.src&&(this.img.src=e.attrs.src),this.img.alt=e.attrs.alt||"",this.frame.style.width=e.attrs.width?`${e.attrs.width}px`:"",e.attrs.align?this.dom.dataset.align=e.attrs.align:delete this.dom.dataset.align;for(let a of this.alignBar.children)a.setAttribute("aria-pressed",String((e.attrs.align??"center")===a.dataset.align));this.dom.ownerDocument.activeElement!==this.caption&&(this.caption.textContent=e.attrs.caption||""),this.caption.toggleAttribute("data-empty",!e.attrs.caption)}update(e){return e.type!==this.node.type?!1:(this.render(e),!0)}setAlign(e){let a=this.getPos();a==null||e===(this.node.attrs.align??null)||this.view.dispatch(m(this.view.state.tr.setNodeMarkup(a,null,{...this.node.attrs,align:e})))}commitCaption(){let e=this.caption.textContent.replace(/\s+/g," ").trim(),a=this.getPos();a==null||e===(this.node.attrs.caption||"")||this.view.dispatch(m(this.view.state.tr.setNodeMarkup(a,null,{...this.node.attrs,caption:e})))}resize(e){e.preventDefault(),e.stopPropagation();let a=this.view.dom.getBoundingClientRect().width,n=this.frame.getBoundingClientRect().width,i=this.dom.ownerDocument.defaultView.getComputedStyle(this.dom).direction==="rtl",r=e.clientX,s=e.currentTarget;s.setPointerCapture?.(e.pointerId);let p=this.node.attrs.width,o=u=>{let g=(u.clientX-r)*(i?-1:1);p=Math.max(T,Math.min(Math.floor(a)||T,Math.round(n+g))),this.frame.style.width=`${p}px`},k=u=>{s.removeEventListener("pointermove",o),s.removeEventListener("pointerup",w),s.removeEventListener("pointercancel",E);let g=this.getPos();u&&g!=null&&p!==this.node.attrs.width?this.view.dispatch(m(this.view.state.tr.setNodeMarkup(g,null,{...this.node.attrs,width:p}))):this.frame.style.width=this.node.attrs.width?`${this.node.attrs.width}px`:""},w=()=>k(!0),E=()=>k(!1);s.addEventListener("pointermove",o),s.addEventListener("pointerup",w),s.addEventListener("pointercancel",E)}selectNode(){this.dom.classList.add("is-selected")}deselectNode(){this.dom.classList.remove("is-selected")}stopEvent(e){return this.caption.contains(e.target)||this.alignBar.contains(e.target)||e.target.classList?.contains("page-image-handle")}ignoreMutation(){return!0}},K=t=>t==null?"":t<1024?`${t} B`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`,v=class{constructor(e,a){this.node=e;let n=a.dom.ownerDocument;this.dom=n.createElement("div"),this.dom.className="page-file",this.dom.addEventListener("dragstart",i=>{i.preventDefault(),i.stopPropagation()}),this.link=n.createElement("a"),this.link.className="page-file-link",this.link.target="_blank",this.link.rel="noopener noreferrer",this.icon=n.createElement("span"),this.icon.className="page-file-icon",this.icon.textContent="\u2398",this.name=n.createElement("span"),this.name.className="page-file-name",this.meta=n.createElement("span"),this.meta.className="page-file-meta",this.link.append(this.icon,this.name,this.meta),this.dom.append(this.link),this.render(e)}render(e){this.node=e,this.dom.dataset.id=e.attrs.id??"";let a=M(e.attrs.src);a?this.link.setAttribute("href",a):this.link.removeAttribute("href"),this.name.textContent=e.attrs.name||"file",this.meta.textContent=K(e.attrs.size)}update(e){return e.type!==this.node.type?!1:(this.render(e),!0)}selectNode(){this.dom.classList.add("is-selected")}deselectNode(){this.dom.classList.remove("is-selected")}stopEvent(e){return this.link.contains(e.target)}ignoreMutation(){return!0}},_=t=>new Promise((e,a)=>{let n=new FileReader;n.onload=()=>e(n.result),n.onerror=()=>a(n.error),n.readAsDataURL(t)});async function W(t,e){let a=l(t,e);if(!a||a.state!=="embed-choice")return;let n=await _(a.file);!f.has(t)||!l(t,e)||(b(a,t,D(t.state,e,$(a,n))),N(t,"Saved inside the document"))}function X(t,e){l(t,e)&&(S(t,e,{state:"uploading",percent:0,code:null,message:null}),P(t,l(t,e)))}function j(t,e){let a=f.get(t),n=a?.aborts.get(e),i=l(t,e);i&&b(i,t,B(t.state,e)),a?.aborts.delete(e),n?.abort()}function G(t,e){let{items:a}=L.getState(e),n=d.get(t)??null;return!a.length||!n?null:F.create(e.doc,a.map(i=>U.widget(C(e.doc,i.pos),r=>n(r.dom.ownerDocument,i),{side:-1e3+i.order,key:`${i.id}:${i.state}:${i.percent}`,stopEvent:()=>!0,ignoreSelection:!0})))}function ne({view:t=null}={}){t&&d.set(t,z);let e={retryUpload:X,embedUpload:W,cancelUpload:j};t&&c.set(t,e);let a=t?R(t,{decorations:n=>G(t,n)}):()=>{};return{id:"media",nodeViews:{image:(n,i,r)=>new x(n,i,r),file:(n,i)=>new v(n,i)},css:I,dispose(){a(),t&&d.get(t)===z&&d.delete(t),t&&c.get(t)===e&&c.delete(t)}}}export{v as FileView,x as ImageView,I as MEDIA_CSS,j as cancelUpload,ne as createFeature,W as embedUpload,X as retryUpload};
@@ -0,0 +1 @@
1
+ var o="page-block-",c=r=>{let t=atob(String(r).replace(/-/g,"+").replace(/_/g,"/"));return new TextDecoder().decode(Uint8Array.from(t,n=>n.charCodeAt(0)))};function a(r){let t=String(r??"").replace(/^#/,"");if(!t)return null;try{return t.startsWith(o)?c(t.slice(o.length)):decodeURIComponent(t)}catch{return null}}function i(r,t){let n=a(t);if(n===null)return null;let l=[...r.querySelectorAll("[data-id]")].find(e=>e.getAttribute("data-id")===n)??null;if(!l)return null;for(let e=l.parentElement;e&&e!==r;e=e.parentElement)e.tagName==="DETAILS"&&(e.open=!0);return l.scrollIntoView?.({block:"start"}),l}export{a,i as b};
@@ -0,0 +1 @@
1
+ import{G as j,H as P,O as V,n as l,o as T,r as I,v as $,y as B}from"./c-EXKHPOVC.js";import{f as J,g as k,h as v,i as K,p as R,q as b}from"./c-L5VFATT6.js";import{o as h,u as C,v as A,w as F,x as Y,y as w}from"./c-WMRJKQ2V.js";import{$ as x,aa as _,da as E,ka as U,la as D,m as O,s as M,x as N}from"./c-QIXT3Q7C.js";var y=t=>t&&typeof t=="object"?JSON.parse(JSON.stringify(t)):t,p=t=>{throw new l("unsupported-content",t)},H=t=>{if(t._map){for(let e of t._map.values())if(!e.deleted)return!0}for(let e=t._start;e;e=e.right)if(!e.deleted)return!0;return!1},f=t=>{throw new l("invalid-content",t)},G={span:["length","sourceClient","sourceClock"],alias:["sourceClient","sourceClock"],boundary:["blockId","kind","recoveryOf"]},Q=["copy","removed","restore"],u=t=>Number.isSafeInteger(t)&&t>=0,W=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),S=(t,e)=>`${t}.${e}`,q=t=>JSON.stringify([t.blockId,t.kind,t.recoveryOf??null]),X=(t,e)=>{try{return M({[b(t)]:e}),!0}catch{return!1}};function Z(t){t.flow._map.size&&p("The page flow must contain text and block markers");for(let e=t.flow._start;e;e=e.right){if(e.deleted)continue;let r=e.content;if(!(r instanceof Y)){if(r instanceof F){r.value!==null&&!Object.hasOwn(O.marks,b(r.key))&&!X(r.key,r.value)&&p(`Unsupported page mark: ${r.key}`);continue}if(r instanceof A){let o=r.embed;if(o&&Object.keys(o).length===1&&(typeof o.b=="string"&&o.b||o.br===1))continue}p("Unsupported content in the page flow")}}for(let[e,r]of t.attrs)r instanceof C||p(`Unsupported attributes for page block: ${e}`)}var m=(t,e)=>{let r=typeof e=="string"?j(e):e;if(!r)return!1;let o;try{o=h(t.ydoc.store,r)}catch{return!1}return o instanceof w&&o.parent===t.flow&&o.id.clock<=r.clock&&r.clock<o.id.clock+o.length},ee=t=>t.charCodeAt(0)===91?JSON.parse(t)[1]:t;function te(t){let e;try{e=P(t.gone,{strict:!0})}catch(o){throw o instanceof B?new l("invalid-content",o.message):o}for(let o of e.textDeletes){let a=h(t.ydoc.store,{client:o.client,clock:o.clock});if(!(a instanceof w)||a.parent!==t.flow||a.id.clock>o.clock||o.clock+o.length>a.id.clock+a.length)throw new l("invalid-content",`Invalid text-delete record: ${o.key}`)}let r=o=>{throw new l("invalid-content",o)};for(let o of e.removals)m(t,o.source)||r(`Invalid removal source: ${o.key}`),o.end!==null&&!m(t,o.end)&&r(`Invalid removal end: ${o.key}`);for(let o of e.restores){m(t,o.sourceKey)||r(`Invalid restore source: ${o.key}`);for(let a of o.covers)m(t,ee(a))||r(`Invalid restore cover: ${o.key}`)}for(let o of e.copyActive)m(t,o)||r(`Invalid copy-active record: ${o}`);for(let o of e.attrs.keys())m(t,o)||r(`Invalid attribute override: ${o}`)}function oe(t){let e=new Map,r=new Map,o=(s,n,c)=>{W(s)||f(`Invalid origin record: ${c}`);for(let i of Object.keys(s))n.includes(i)||f(`Unsupported origin field ${i} in ${c}`)};for(let[s,n]of t.origins){(typeof s!="string"||s.charCodeAt(0)!==91)&&f(`Malformed origin key: ${s}`);let c=null;try{c=JSON.parse(s)}catch{f(`Malformed origin key: ${s}`)}(!Array.isArray(c)||typeof c[0]!="string")&&f(`Malformed origin key: ${s}`);let i=c[0];if(i==="author"){(c.length!==2||!u(c[1]))&&f(`Malformed origin key: ${s}`),(typeof n!="string"||!n)&&f(`Invalid author record: ${s}`);continue}if(Object.hasOwn(G,i)||p(`Unsupported origin record: ${s}`),(c.length!==3||!u(c[1])||!u(c[2]))&&f(`Malformed origin key: ${s}`),o(n,G[i],s),i==="span"){(!Number.isSafeInteger(n.length)||n.length<1||!u(n.sourceClient)||!u(n.sourceClock)||!u(n.sourceClock+n.length-1))&&f(`Invalid span record: ${s}`);continue}if(i==="alias"){(!u(n.sourceClient)||!u(n.sourceClock))&&f(`Invalid alias record: ${s}`),e.set(S(c[1],c[2]),{client:n.sourceClient,clock:n.sourceClock});continue}(typeof n.blockId!="string"||!n.blockId||!Q.includes(n.kind))&&f(`Invalid boundary record: ${s}`),n.recoveryOf!==void 0&&!j(n.recoveryOf)&&f(`Invalid boundary record: ${s}`),r.set(S(c[1],c[2]),n)}let a=new Map;for(let[s,n]of r){let c=s,i=new Set;for(;!i.has(c);){i.add(c);let g=e.get(c);if(!g)break;c=S(g.client,g.clock)}i.has(c)&&e.has(c)&&f(`Cyclic boundary alias: ${s}`);let d=a.get(c);d&&q(d)!==q(n)&&f(`Conflicting boundary values: ${s}`),a.set(c,n)}}function L(t){let e="",r=[];for(let a of t.runs)if(!a.hole)if(a.br)t.t==="code_block"&&p("A code block cannot contain a hard-break atom"),e+=x,r.push(_);else{e+=a.text;let s=N([...a.marks].sort((n,c)=>n.type.rank-c.type.rank));for(let n=0;n<a.text.length;n++)r.push(s)}let o={c:e};return r.some(Boolean)&&(o.m=U(r)),o}var z=(t,e)=>t.fields?Object.entries(t.fields):e?e.entries():[];function ne(t,e,r){let o=t.attrs.get(e.baseId),a={t:e.t,pos:String(r+1).padStart(8,"0")};for(let[s,n]of z(e,o))s!=="t"&&s!=="pos"&&(a[s]=y(n));return Object.assign(a,L(e))}function re(t,e,r){if(!Object.hasOwn(E,e.t))return(typeof e.t!="string"||!e.t||e.t==="opaque_block")&&p(`Unsupported page block type: ${e.t}`),ne(t,e,r);let o=O.nodes[e.t],a=t.attrs.get(e.baseId),s=e.t==="table"&&!e.fields?I(t.tableFields,e.baseId,{cols:a?.get("cols"),rows:a?.get("rows")}):null,n={t:e.t,pos:String(r+1).padStart(8,"0")};for(let i of k(o)){if(e.t==="board"&&(i==="columns"||i==="cards"))continue;let d=e.fields?e.fields[i]:s&&(i==="cols"||i==="rows")?s[i]:a?.has(i)?a.get(i):v(o,i);K(d,v(o,i))||(n[i]=y(d))}e.t==="table"&&(n.rows=y((e.fields?e.fields.rows:s.rows)??{})),e.t==="board"&&Object.assign(n,e.fields?{columns:y(e.fields.columns??{}),cards:y(e.fields.cards??{})}:$(t.boardFields,e.baseId));let c=new Set(k(o));for(let[i,d]of z(e,a))i==="t"||i==="pos"||c.has(i)||Object.hasOwn(n,i)||(n[i]=y(d));return o.isTextblock&&Object.assign(n,L(e)),n}function ie(t){let e=T(t,{strict:!0});try{for(let[n,c]of e.share)!J.includes(n)&&H(c)&&p(`Unsupported page root: ${n}`);let r=R(e);Z(r),$(r.boardFields),I(r.tableFields),te(r),oe(r);let o=V(r).visible,a=new Set(o.filter(n=>!n.implicit).map(n=>n.id)),s=new Set;return Object.fromEntries(o.map((n,c)=>{let i=n.id;if(s.has(i)||n.implicit&&a.has(i)){let d=2;do i=`${n.id}~${d++}`;while(s.has(i)||a.has(i))}return s.add(i),[i,re(r,n,c)]}))}catch(r){throw r instanceof l?r:new l("invalid-content",`Invalid Yjs page content: ${r.message}`)}finally{e.destroy()}}function we(t){if(t.some(e=>!e||typeof e!="object"||Array.isArray(e)))throw new l("invalid-value","Expected a page data object");if(!t.some(e=>Object.hasOwn(e,"y")||Object.hasOwn(e,"v")))return D(t);if(t.length!==1||Object.hasOwn(t[0],"blocks")||Object.hasOwn(t[0],"deleted"))throw new l("invalid-value","A Yjs page must have one page tag without hybrid block data");return ie(t[0])}export{ie as a,we as b};
@@ -1,4 +1,4 @@
1
- import{a as h}from"./c-KAU6E43D.js";import"./c-2SPVQSHC.js";import"./c-VRZN56XY.js";import"./c-OW5QIGG3.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var A=`.clay-upload {
1
+ import{b as x}from"./c-L7JL5TL3.js";import{a as w}from"./c-5B4YBZXC.js";import"./c-I2SCCUEW.js";import"./c-XGH4GS2T.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var S=`.clay-upload {
2
2
  display: flex;
3
3
  flex-wrap: wrap;
4
4
  align-items: center;
@@ -88,4 +88,5 @@ import{a as h}from"./c-KAU6E43D.js";import"./c-2SPVQSHC.js";import"./c-VRZN56XY.
88
88
  .clay-upload__button { color: var(--clay-upload-button-ink, #8AB4FF); }
89
89
  .clay-upload[data-clay-upload-state="failed"] .clay-upload__label { color: var(--clay-upload-failure-ink, #FFB4AB); }
90
90
  }
91
- @media print { .clay-upload { display: none; } }`;function F(){if(document.getElementById("clay-upload-style"))return;let e=document.createElement("style");e.id="clay-upload-style",e.setAttribute("clay","editor-ui"),e.textContent=A,document.head.append(e)}function C({loaded:e,total:r,percent:n}){return typeof n=="number"?n:typeof r=="number"&&r>0?Math.round(e/r*100):null}function S(e,r){if(!e||typeof e.subscribe!="function")throw new TypeError("clay.upload.mount needs an upload task");let n=typeof r=="string"?document.querySelector(r):r;if(!n||n.nodeType!==1)throw new TypeError("clay.upload.mount needs a container");F();let d=e.file?.name||"File",a=document.createElement("div");a.className="clay-upload",a.setAttribute("clay","editor-ui"),a.setAttribute("data-clay-upload-state","uploading"),a.innerHTML='<span class="clay-upload__name"></span><progress class="clay-upload__progress"></progress><span class="clay-upload__label"></span><span class="clay-upload__status" role="status" aria-live="polite" aria-atomic="true"></span><span class="clay-upload__actions"><button type="button" class="clay-upload__button clay-upload__cancel">Cancel</button><button type="button" class="clay-upload__button clay-upload__retry" hidden>Retry</button><button type="button" class="clay-upload__button clay-upload__dismiss">Dismiss</button></span>';let x=a.querySelector(".clay-upload__name"),l=a.querySelector(".clay-upload__progress"),b=a.querySelector(".clay-upload__label"),w=a.querySelector(".clay-upload__status"),g=a.querySelector(".clay-upload__cancel"),u=a.querySelector(".clay-upload__retry"),_=a.querySelector(".clay-upload__dismiss");x.textContent=d,l.setAttribute("aria-label",`Upload progress for ${d}`);let f=null,c=null;function p(o){o!==f&&(f=o,w.textContent=o)}function E(o){let{state:t}=o,s=t==="uploading",i=C(o),v=s&&i!==null&&i>=100;if(a.setAttribute("data-clay-upload-state",t),s)l.hidden=!1,c=null,i===null?(l.removeAttribute("value"),l.removeAttribute("max"),b.textContent="Uploading"):(l.setAttribute("max","100"),l.setAttribute("value",String(i)),b.textContent=v?"Finishing upload":`${i}%`),p(v?`Finishing upload of ${d}`:`Uploading ${d}`);else{let y=o.result?.msg||(t==="succeeded"?"Uploaded":t==="cancelled"?"Upload cancelled":"Upload failed");t==="succeeded"?(l.setAttribute("max","100"),l.setAttribute("value","100")):(l.removeAttribute("value"),l.removeAttribute("max")),l.hidden=t!=="succeeded",b.textContent=y,t==="failed"?(c=y,p(y)):t==="cancelled"?(c=null,p("Upload cancelled")):p(y)}g.hidden=!s,_.hidden=s,u.hidden=!h(o),u.hidden||u.setAttribute("aria-label",c?`Retry ${d}: ${c}`:`Retry ${d}`)}function m(){k(),a.remove()}g.addEventListener("click",()=>{g.hidden||e.cancel()}),u.addEventListener("click",()=>{u.hidden||(u.hidden=!0,e.retry())}),_.addEventListener("click",()=>{_.hidden||m()});let k=e.subscribe(E);return n.append(a),{unmount:m}}var q=S;export{q as default,S as mount};
91
+ @media print { .clay-upload { display: none; } }
92
+ :host { font-family: inherit !important; }`;function C({loaded:l,total:r,percent:n}){return typeof n=="number"?n:typeof r=="number"&&r>0?Math.round(l/r*100):null}function q(l,r){if(!l||typeof l.subscribe!="function")throw new TypeError("clay.upload.mount needs an upload task");let n=typeof r=="string"?document.querySelector(r):r;if(!n||n.nodeType!==1)throw new TypeError("clay.upload.mount needs a container");let d=l.file?.name||"File",a=document.createElement("div");a.className="clay-upload",a.setAttribute("clay","editor-ui"),a.setAttribute("data-clay-upload-state","uploading"),a.innerHTML='<span class="clay-upload__name"></span><progress class="clay-upload__progress"></progress><span class="clay-upload__label"></span><span class="clay-upload__status" role="status" aria-live="polite" aria-atomic="true"></span><span class="clay-upload__actions"><button type="button" class="clay-upload__button clay-upload__cancel">Cancel</button><button type="button" class="clay-upload__button clay-upload__retry" hidden>Retry</button><button type="button" class="clay-upload__button clay-upload__dismiss">Dismiss</button></span>';let E=a.querySelector(".clay-upload__name"),e=a.querySelector(".clay-upload__progress"),b=a.querySelector(".clay-upload__label"),k=a.querySelector(".clay-upload__status"),g=a.querySelector(".clay-upload__cancel"),u=a.querySelector(".clay-upload__retry"),_=a.querySelector(".clay-upload__dismiss");E.textContent=d,e.setAttribute("aria-label",`Upload progress for ${d}`);let f=null,c=null;function p(o){o!==f&&(f=o,k.textContent=o)}function A(o){let{state:t}=o,s=t==="uploading",i=C(o),h=s&&i!==null&&i>=100;if(a.setAttribute("data-clay-upload-state",t),s)e.hidden=!1,c=null,i===null?(e.removeAttribute("value"),e.removeAttribute("max"),b.textContent="Uploading"):(e.setAttribute("max","100"),e.setAttribute("value",String(i)),b.textContent=h?"Finishing upload":`${i}%`),p(h?`Finishing upload of ${d}`:`Uploading ${d}`);else{let y=o.result?.msg||(t==="succeeded"?"Uploaded":t==="cancelled"?"Upload cancelled":"Upload failed");t==="succeeded"?(e.setAttribute("max","100"),e.setAttribute("value","100")):(e.removeAttribute("value"),e.removeAttribute("max")),e.hidden=t!=="succeeded",b.textContent=y,t==="failed"?(c=y,p(y)):t==="cancelled"?(c=null,p("Upload cancelled")):p(y)}g.hidden=!s,_.hidden=s,u.hidden=!w(o),u.hidden||u.setAttribute("aria-label",c?`Retry ${d}: ${c}`:`Retry ${d}`)}let m=null;function v(){F(),m?.remove()}g.addEventListener("click",()=>{g.hidden||l.cancel()}),u.addEventListener("click",()=>{u.hidden||(u.hidden=!0,l.retry())}),_.addEventListener("click",()=>{_.hidden||v()});let F=l.subscribe(A);return m=x({name:"upload",content:a,css:[S],parent:n}),{unmount:v}}var $=q;export{$ as default,q as mount};
@@ -0,0 +1 @@
1
+ import{f as S}from"./c-WMRJKQ2V.js";import{E as N,m as k,p as A,q as j,r as E,s as M,t as w,v as $}from"./c-QIXT3Q7C.js";var G="page-local",U="page-net",V="page-seed",B=N,Q=Symbol("page-history"),X=Object.freeze(["flow","attrs","gone","boardFields","tableFields","origins"]),Y=new Set(["id","pos"]),F=new WeakMap,Z=t=>{let s=F.get(t);return s||F.set(t,s=Object.freeze([...Object.keys(t.spec.attrs||{}).filter(r=>!Y.has(r)),...t.name==="table"?["rows"]:[]])),s},v=(t,s)=>t.name==="table"&&s==="rows"?{}:t.spec.attrs[s].default,tt=(t,s)=>t===s||JSON.stringify(t)===JSON.stringify(s),et=t=>`${t.client}.${t.clock}`,st=t=>{let s=t.indexOf(".");return{client:+t.slice(0,s),clock:+t.slice(s+1)}},ot=t=>t>=55296&&t<=56319,nt=t=>t>=56320&&t<=57343,_=0,rt=t=>`${t.ydoc.clientID.toString(36)}-${(_++).toString(36)}`,q=0,it=t=>`b${t.ydoc.clientID.toString(36)}${(q++).toString(36)}`;function at(t=new S){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 W=t=>t.split("!")[0].split("~")[0],L=t=>t.includes("!"),dt=t=>{let s={};for(let r of t)s[r.type.name]=r.attrs&&Object.keys(r.attrs).length?{...r.attrs}:!0;return s},ht=t=>{let s={};for(let r of t){if(A(r)){for(let[c,i]of Object.entries(E(r.attrs.entries)))s[c]=JSON.parse(JSON.stringify(i));continue}s[r.type.name]=r.attrs&&Object.keys(r.attrs).length?{...r.attrs}:!0}return s},gt=t=>t.map(s=>s.type.name+(s.attrs&&Object.keys(s.attrs).length?JSON.stringify(s.attrs):"")).sort().join("|");function ut(t,s){if(s==="code_block")return[];let r=new Map,c=new Set;for(let o of Object.keys(t))L(o)&&t[o]&&c.add(o.split("!")[0]);for(let o of Object.keys(t).sort()){let a=t[o];a==null||L(o)||c.has(o)||r.set(W(o),a)}let i=[],l=null;for(let[o,a]of r)k.marks[o]&&(!w.has(o)||$(o,a===!0?{}:a))?i.push(k.marks[o].create(a===!0?null:a)):(l??={})[o]=a;if(l){let o=M(l);o.length&&i.push(j(o))}return i}var h=t=>Number.isSafeInteger(t)&&t>=0,p=t=>{throw new RangeError(t)},T=t=>(t!=="before"&&t!=="after"&&p(`Unknown affinity: ${t}`),t),I=(t,s,r)=>{let c=0,i=t.length;for(;c<i;){let l=c+i>>1;s(t[l])<=r?c=l+1:i=l}return c};function mt(t,s){(!t||typeof t!="object"||!h(t.tokens))&&p("A projection map needs a walk result with a token count"),h(s)||p("A projection map needs a nonnegative physical length");let r=t.holes===void 0?[]:t.holes;Array.isArray(r)||p("A projection map needs the walk holes");let c=[],i=[],l=[0],o=0,a=0,m=-1,b=e=>{c.push({logicalStart:o,logicalLength:e,physicalStart:a,physicalLength:e,kind:"visible"}),o+=e,a+=e},J=e=>{let n=i[i.length-1];n&&n.at===o?(n.length+=e,n.end+=e,c[c.length-1].physicalLength+=e,l[l.length-1]+=e):(i.push({at:o,start:a,end:a+e,length:e}),c.push({logicalStart:o,logicalLength:0,physicalStart:a,physicalLength:e,kind:"hidden"}),l.push(l[l.length-1]+e)),a+=e};for(let e of r)(!e||typeof e!="object"||!h(e.at)||!h(e.len))&&p("Malformed walk hole"),e.at<m&&p("Walk holes are out of order"),e.at>t.tokens&&p("A walk hole sits past the logical length"),m=e.at,e.at>o&&b(e.at-o),e.len&&J(e.len);o<t.tokens&&b(t.tokens-o),a!==s&&p("Walk holes do not account for the physical length");let x=e=>I(i,n=>n.at,e),O=e=>I(i,n=>n.end,e),u=e=>e+l[x(e)],K=e=>{let n=i[x(e)-1];return n&&n.at===e?n:null},P=e=>{let n=i[O(e)];return n&&n.start<=e?n:null},R=(e,n)=>{let f=T(n);(!h(e)||e>t.tokens)&&p(`Logical position ${e} is outside the map`);let d=K(e);return d?f==="before"?d.start:d.end:u(e)},C=(e,n)=>{T(n),(!h(e)||e>s)&&p(`Physical position ${e} is outside the flow`);let f=P(e);return f?f.at:e-l[O(e)]},D=(e,n)=>{(!h(e)||!h(n)||e>t.tokens||n>t.tokens)&&p(`Logical range ${e}..${n} is outside the map`);let f=[];if(n<=e)return f;let d=u(e);for(let g of i)if(!(g.at<=e)){if(g.at>n)break;g.start>d&&f.push([d,g.start]),d=g.end}let y=u(n);return y>d&&f.push([d,y]),f};return{segments:c,logicalLength:t.tokens,physicalLength:s,toPhysical:R,toLogical:C,physicalRanges:D}}export{G as a,U as b,V as c,B as d,Q as e,X as f,Z as g,v as h,tt as i,et as j,st as k,ot as l,nt as m,rt as n,it as o,at as p,W as q,L as r,dt as s,ht as t,gt as u,ut as v,mt as w};
@@ -0,0 +1,3 @@
1
+ import{g as p}from"./c-DCFSEJZG.js";var h=`:host { all: initial !important; display: contents !important; }
2
+ :host([hidden]) { display: none !important; }
3
+ @media print { :host { display: none !important; } }`,l=new WeakMap,u=new WeakSet,m=new Set(["Backspace","Delete","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"]);function S(e){if(e.ctrlKey||e.metaKey||e.altKey||e.key?.length!==1&&!m.has(e.key))return;let t=e.composedPath()[0];!t?.matches?.("input, textarea, select")&&!t?.isContentEditable||t.getRootNode().host?.localName==="clay-editor-ui"&&e.stopPropagation()}function w(e){if(!(!e||u.has(e))){u.add(e);for(let t of["keydown","keypress","keyup"])e.addEventListener(t,S,!0)}}function g(e,t){return"adoptedStyleSheets"in t&&typeof e.defaultView?.CSSStyleSheet?.prototype?.replaceSync=="function"}function k(e,t){let r=l.get(e);r||l.set(e,r=new Map);let o=r.get(t);return o||(o=new e.defaultView.CSSStyleSheet,o.replaceSync(t),r.set(t,o)),o}function A({name:e,content:t,css:r=[],parent:o=document.body,before:y=null,attributes:f={}}){let a=o.ownerDocument,n=a.createElement("clay-editor-ui");n.setAttribute("data-clay-ui",e),p(n,"editor-ui");for(let[i,d]of Object.entries(f))n.setAttribute(i,d);p(t,"editor-ui");let s=n.attachShadow({mode:"open"}),c=[h,...r];if(g(a,s))s.adoptedStyleSheets=c.map(i=>k(a,i));else for(let i of c){let d=a.createElement("style");d.textContent=i,s.append(d)}return s.append(t),w(a.defaultView),o.insertBefore(n,y),{host:n,shadow:s,content:t,remove:()=>n.remove()}}export{h as a,A as b};
@@ -0,0 +1 @@
1
+ import{e as f}from"./c-EK63G3CG.js";var p=r=>Number.isSafeInteger(r)&&r>0?r:0,c={types:["paragraph","heading","list_item","callout","code_block","toggle","divider","image","file","table","chart","board","tool","preserved"],marks:["a","b","c","i","s"],fields:["id","t","parent","c","m","level","kind","indent","checked","owner","due","lang","open","src","alt","caption","width","align","name","size","mime","cols","rows","sort","source","series","title","highlight","columns","cards","artifact","rev","state","html","pos"]},u=null;function m(){return u||(u=Object.freeze({types:Object.freeze([...c.types]),marks:Object.freeze([...c.marks]),fields:Object.freeze([...c.fields])})),u}var w=/^[A-Za-z]$/;function g(r){if(typeof r!="string")throw new TypeError("page: a mark key is not a string");if(!r||r[0]==="@")return!1;for(let e=0;e<r.length;){let o=r[e];if(!w.test(o))throw new SyntaxError(`page: malformed mark key ${r}`);if(!m().marks.includes(o))return!0;if(e+=1,r[e]!=="[")continue;let n=0,a=!1,t=e;for(;e<r.length;e++){let i=r[e];if(a)i==="\\"?e++:i==='"'&&(a=!1);else if(i==='"')a=!0;else if(i==="[")n++;else if(i==="]"&&--n===0){e++;break}}if(e>=r.length&&r[r.length-1]!=="]")throw new SyntaxError(`page: unterminated attrs in mark key ${r.slice(t)}`)}return!1}var A=r=>{if(!Array.isArray(r))return!1;for(let e of r)if(Array.isArray(e)){if(e.length===2&&Number.isInteger(e[0])&&g(e[1]))return!0}else if(g(e))return!0;return!1};function T(r){if(!Array.isArray(r))throw new TypeError("page: requiredPageFormat expects a model");for(let e of r)if(!(!e||typeof e!="object")){if(!m().types.includes(e.t))return 1;for(let o of Object.keys(e))if(!m().fields.includes(o))return 1;if(A(e.m))return 1;if(Array.isArray(e.rows)){for(let o of e.rows)for(let n of Object.values(o?.cells??{}))if(n&&typeof n=="object"&&A(n.m))return 1}}return 0}function G({floor:r=0,required:e=0,capability:o=0,admitted:n=[]}={}){let a=p(r),t=Math.max(p(e),a),i=l=>({ok:!1,activate:!1,floor:a,required:t,minimum:l});if(f(o)<t)return i(t);let d=t>a;return d&&n.some(l=>f(l)<t)?i(t):{ok:!0,activate:d,floor:t,required:t}}export{T as a,G as b};
@@ -0,0 +1 @@
1
+ import{a,b,c}from"./c-CJFDLD43.js";import"./c-BJ7YQ5QZ.js";import"./c-4JZDZFF6.js";import"./c-VAK7SG37.js";import"./c-MHI3GYKF.js";import"./c-NUHP2XDB.js";import"./c-VHNSBD2M.js";export{c as bevelDialog,a as dismissOf,b as keepFocusIn};
@@ -0,0 +1 @@
1
+ function r(t=location.pathname){let o=t.split("/").filter(Boolean).pop();if(!o)return t.endsWith("/")||t===""?"index":"page";let l=o;try{l=decodeURIComponent(o)}catch{}return l.replace(/\.(html?|htmlclay)$/i,"")||"page"}function c({html:t,name:o,type:l="text/html"}){let n=null;try{n=URL.createObjectURL(new Blob([t],{type:l}));let e=document.createElement("a");return e.setAttribute("clay","no-save no-watch no-snapshot"),e.href=n,e.download=o,e.style.setProperty("display","none","important"),document.body.appendChild(e),e.click(),e.remove(),setTimeout(()=>URL.revokeObjectURL(n),4e4),!0}catch(e){return console.error("clayjs: could not build the download",e),n&&URL.revokeObjectURL(n),!1}}export{r as a,c as b};
@@ -0,0 +1 @@
1
+ var W=()=>{let t=getComputedStyle(document.documentElement).colorScheme;return t==="light"||t==="dark"?t:"light dark"},st='[clay~="editor-ui"], [clay~="no-snapshot"], [editor-ui], [no-snapshot], [snapshot-remove]',rt=/^(img|video|canvas|iframe|embed|object|image|use|path|rect|circle|ellipse|line|poly(line|gon))$/,pt=/(invert|brightness|contrast|grayscale|sepia|hue-rotate|opacity|url)\(/,ft=[.4122,.5363,.0514,.2119,.6807,.1074,.0883,.2817,.63],gt=[.2105,.7936,-.0041,1.978,-2.4286,.4506,.0259,.7828,-.8087],bt=[1,.3963,.2158,1,-.1056,-.0639,1,-.0895,-1.2915],kt=[4.0767,-3.3077,.231,-1.2684,2.6098,-.3413,-.0042,-.7034,1.7076],R=t=>t<0?0:t>1?1:t||0,I=(t,e)=>[0,3,6].map(o=>t[o]*e[0]+t[o+1]*e[1]+t[o+2]*e[2]),at=t=>t<=.04045?t/12.92:((t+.055)/1.055)**2.4,yt=t=>R(t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055),G=t=>I(gt,I(ft,t.map(at)).map(Math.cbrt)),O=t=>I(kt,I(bt,t).map(e=>e**3)).map(yt),S=t=>t.map(at).reduce((e,o,c)=>e+o*[.2126,.7152,.0722][c],.05),lt=(t,e)=>Math.max(S(t)/S(e),S(e)/S(t)),j=t=>S(t)>=.2343,H=(t,e)=>Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2]),U=t=>[0,1,2].map(e=>t.reduce((o,c)=>o+c[e],0)/t.length),et=(t,e)=>t&&[t[0],t[1],t[2],t[3]*e],J=(t,e,o)=>e>=t.left&&e<=t.right&&o>=t.top&&o<=t.bottom,V=new Map;function K(t){if(!V.has(t)){let[,e,o=""]=/^(rgba?|oklch|oklab|color)\(([^()]*)\)$/.exec(t)||[],c=o.replace(/^srgb /,"").split(/[\s,/]+/).map(r=>parseFloat(r)||0),s=c[2]*Math.PI/180,a=!e||e==="color"&&!o.startsWith("srgb ")?null:e==="color"?c.slice(0,3).map(R):e[0]==="r"?c.slice(0,3).map(r=>R(r/255)):O(e==="oklab"?c:[c[0],c[1]*Math.cos(s),c[1]*Math.sin(s)]);V.set(t,a&&[...a,c.length>3?R(c[3]):1])}return V.get(t)}function P(t){let e=t.backgroundImage,o=K(t.backgroundColor),c=(/url\(/.test(e)?[null]:e.match(/[a-z]+\([^()]*\)/g)||[null]).map(K),s=c.every(r=>r&&Math.abs(r[3]-c[0][3])<.05&&H(G(r),G(c[0]))<.02)&&c[0],a=t.backgroundRepeat==="repeat"||/^(auto|cover|100%)( (auto|100%))?$/.test(t.backgroundSize);return t.backgroundClip.includes("text")?[]:[...e!=="none"&&(!s||s[3]>0)?[{c:s,maybe:s&&!a}]:[],...!o||o[3]>0?[{c:o}]:[]]}var nt=[],ot=-1/0,ct=0;function wt(){let t=document.getElementsByTagName("*"),e=performance.now()-ot;return(e>15e3||e>1e3&&t.length!==ct)&&(ot=performance.now(),ct=t.length,nt=[...t.length>8e3?[]:t].filter(o=>{let c=getComputedStyle(o),s=c.pointerEvents==="none"&&o.getBoundingClientRect();return s?.width>=40&&s.height>=20&&c.visibility==="visible"&&!o.closest(st)&&(rt.test(o.localName)||P(c).some(a=>!a.c||a.c[3]>.03))})),nt}function vt(t,e){let o=document.elementsFromPoint(t,e),c=new Set;for(let s=0;s<o.length;s++){let a=o[s],r=a.shadowRoot;r&&!c.has(r)&&c.add(r)&&o.splice(s--,J(a.getBoundingClientRect(),t,e)?0:1,...r.elementsFromPoint(t,e).filter(u=>u.getRootNode()===r))}return o}var xt=({x:t,y:e,width:o,height:c})=>[0,1,2].flatMap(s=>[0,1,2,3,4].map(a=>[t+(a+.5+(s-1)/4)*o/5,e+(s+.5)*c/3]));function Mt(t){let e=document.documentElement,o=document.body;if(typeof document.elementsFromPoint!="function"||!o||!(t.width>0&&t.height>0))return null;let c=new Map,s=n=>c.get(n)||c.set(n,{el:n,cs:getComputedStyle(n)}).get(n),a=n=>n.rect??=n.el.getBoundingClientRect(),r=getComputedStyle(e),u=!P(r).length&&o.localName==="body",v=u?[e,o]:[e],y=r.colorScheme==="normal"?document.querySelector('meta[name="color-scheme"]')?.content:r.colorScheme,A=/dark/.test(y)&&(!/light/.test(y)||matchMedia("(prefers-color-scheme: dark)").matches);function N(n){let i=s(n),h=i.cs;if(i.k===void 0){let d=n.assignedSlot||n.parentElement||n.parentNode?.host,f=d?N(d):{k:1};i.k=f.k*+h.opacity,i.ui=f.ui||n.matches(st),i.bad=f.bad||pt.test(h.filter+h.backdropFilter)||h.mixBlendMode!=="normal"||/\(/.test(h.maskImage)}return i}let Q=n=>n.own??=[...rt.test(n.el.localName)?[{c:null}]:[],...v.includes(n.el)?[]:P(n.cs)];function ut(n){let i=K(n.cs.webkitTextFillColor||n.cs.color);return n.ink??=i?.[3]>=.5&&[...n.el.childNodes].some(h=>h.nodeType===3&&/\S/.test(h.data))&&i}function X(n,i,h){let d=[0,0,0],f=1;for(let{c:g,k:b=1,maybe:C}of n){let[E,M,L,F]=g||[i,i,i,b],B=C&&!h?0:F;d=d.map((l,k)=>l+f*B*[E,M,L][k]),f*=1-B}return G(d)}function dt(n,i,h){let d=vt(n,i);if(!d.length)return;let f=new Set;for(let l of h){let k=a(s(l));if(d.includes(l)||!J(k,n,i)||!l.isConnected||s(l).cs.visibility!=="visible")continue;let m=d.findLastIndex(w=>l.contains(w))+1;!m&&s(l).cs.zIndex<0&&(m=Math.max(0,d.findIndex(w=>v.includes(w)))),m||f.add(l),d.splice(m,0,l)}let g=[],b=null,C=!1;for(let[l,k]of d.entries()){let m=N(k);if(m.ui||!m.k)continue;let w=d.lastIndexOf(k)===l,$=!v.includes(k)&&!J(a(m),n,i);for(let x of $?[{}]:w?Q(m):[])g.push({c:m.bad?null:et(x.c,m.k),k:m.k,maybe:x.maybe||f.has(k)});w&&!b&&!C&&!$&&(b=ut(m)),C||=$||w&&Q(m).some(x=>!x.maybe&&(!x.c||x.c[3]>=.5))}let E=N(e);for(let l of P(u?getComputedStyle(o):r))g.push({c:E.bad?null:et(l.c,E.k)});g.push({c:A?[.0706,.0706,.0706,1]:[1,1,1,1]});let M=[0,1].flatMap(l=>[X(g,l,!1),X(g,l,!0)]);if(M.some(l=>H(l,M[0])>.06))return null;let L=U(M),F=O(L),B=!!b&&lt([0,1,2].map(l=>b[l]*b[3]+F[l]*(1-b[3])),F)<1.25;return{lab:L,contra:B,approx:g.some(l=>!l.c||l.maybe)}}let mt=wt(),Y=xt(t).map(([n,i])=>dt(n,i,mt)).filter(n=>n!==void 0),T=Y.length,z=Y.filter(Boolean),Z=n=>z.filter(i=>H(n,i.lab)<=.035),q=z.map(n=>Z(n.lab)).sort((n,i)=>i.length-n.length)[0],p=q?Z(U(q.map(n=>n.lab))):[];if(!p.length||p.length<.6*T)return null;let _=p.filter(n=>n.contra).length,D=O(U(p.map(n=>n.lab))),tt=z.filter(n=>!p.includes(n)&&j(O(n.lab))!==j(D)).length;if(_>=2&&_>=p.length/3||tt>=2&&tt>=.2*T)return null;let ht=p.filter(n=>n.approx).length/p.length;return{colour:D.map(n=>Math.round(n*255)),confidence:+(p.length/T*(1-.3*ht)*(1-_/p.length)).toFixed(3),scheme:j(D)?"light":"dark"}}var St={light:[255,252,246],dark:[17,19,30],mutedLight:[107,89,66],mutedDark:[138,144,171]};function it(t,e=St){let o=null;try{o=Mt(t)}catch{}if(!o||o.confidence<.5)return{scheme:W(),surface:null};let{scheme:c}=o,s=e[c],a=(c==="dark"?e.mutedDark:e.mutedLight).map(u=>u/255),r=null;for(let u=.35;o.confidence>=.75&&!r&&u>.01;u-=.05){let v=s.map((y,A)=>Math.round(y+(o.colour[A]-y)*u));lt(v.map(y=>y/255),a)>=4.5&&(r=`rgb(${v.join(" ")})`)}return{scheme:c,surface:r}}function Et(t,{rect:e=t.getBoundingClientRect(),background:o=null}={}){let c=e.width>0&&e.height>0;if(!c&&W()==="light dark")return null;let s=c?it(e):{scheme:W(),surface:null},a={"color-scheme":s.scheme};if(o!==null&&(a.background=s.surface||o),typeof t.pin=="function")t.pin(a);else for(let[r,u]of Object.entries(a))t.style.setProperty(r,u,"important");return s}function Ct(t,e,o){let c=it(e,o);return t.style.setProperty("color-scheme",c.scheme,"important"),c.surface?t.style.setProperty("--bevel-surface",c.surface,"important"):t.style.removeProperty("--bevel-surface"),c}function Lt(t,e,o){let c=0,s=()=>{c=0;let u=e.getBoundingClientRect();!document.hidden&&t.isConnected&&u.width&&u.height&&Ct(t,u,o)},a=()=>{clearTimeout(c),c=setTimeout(s,150)};window.addEventListener("scroll",a,{capture:!0,passive:!0}),window.addEventListener("resize",a),document.addEventListener("visibilitychange",a),window.matchMedia?.("(prefers-color-scheme: dark)").addEventListener?.("change",a);let r=new MutationObserver(a);r.observe(document.documentElement,{attributes:!0}),r.observe(document.body,{attributes:!0}),r.observe(t,{attributes:!0,attributeFilter:["data-corner","hidden"]}),s()}export{it as a,Et as b,Ct as c,Lt as d};
@@ -0,0 +1 @@
1
+ import{B as h,d as f,h as x}from"./c-AMU3BPPR.js";import{J as g,b as E,l as I,m as $}from"./c-QIXT3Q7C.js";var{Plugin:B,PluginKey:j}=E,k=$.nodes,m=new j("page-media"),L=1.5*1024*1024,u=new WeakMap,C=new WeakMap,U=(t,o)=>{let s=t.resolve(Math.max(0,Math.min(o,t.content.size)));return s.depth===0?s.pos:s.after(1)};function b(t,o){let s=x(t.doc),e=s[Math.min(o,s.length-1)],a=e.node.type===k.paragraph&&e.node.content.size===0;return{hostId:e.node.attrs.id,at:a?e.at:s[e.subEnd].end,parent:e.node.attrs.parent??null,replaceId:a?e.node.attrs.id:null}}var O={init:()=>({items:[],placed:{},picker:null}),apply(t,o){let{items:s,placed:e,picker:a}=o;if(t.docChanged&&(s=s.map(r=>({...r,pos:U(t.doc,t.mapping.map(r.pos,-1))}))),a&&t.docChanged&&(a={...a,place:{...a.place,at:U(t.doc,t.mapping.map(a.place.at,-1))}},a.remove)){let r=t.mapping.map(a.remove.from,1),c=t.mapping.map(a.remove.to,-1);a=r<=c&&t.doc.textBetween(r,c)===a.remove.text?{...a,remove:{...a.remove,from:r,to:c}}:null}let n=t.getMeta(m);if(n?.picker!==void 0&&(a=n.picker),n?.add&&(s=[...s,...n.add]),n?.update&&(s=s.map(r=>r.id===n.update.id?{...r,...n.update}:r)),n?.placed){let{id:r,at:c,size:d,blockId:p}=n.placed,i=o.items.find(l=>l.id===r);s=s.filter(l=>l.id!==r).map(l=>i&&l.pos===c&&l.group===i.group&&l.order>i.order?{...l,pos:l.pos+d}:l),i&&(e={...e,[i.group]:[...e[i.group]||[],p]})}n?.remove&&(s=s.filter(r=>r.id!==n.remove));for(let r of Object.keys(e))s.some(c=>c.group===r)||(e={...e},delete e[r]);return{items:s,placed:e,picker:a}}};function R(t,o,s){if(!o)return;let e=null,a=null;t.doc.forEach((n,r)=>{n.attrs.id===o&&e&&s.includes(e.attrs.id)&&(a={n,off:r}),e=n}),a&&a.n.type===k.paragraph&&a.n.content.size===0&&t.delete(a.off,a.off+a.n.nodeSize)}function P(t,o,s){let{items:e,placed:a}=m.getState(t),n=e.find(i=>i.id===o);if(!n)return null;let r=U(t.doc,n.pos),c=g(),d=(n.kind==="image"?k.image:k.file).create({...s,id:c,pos:null,parent:n.parent}),p=t.tr.insert(r,d);return e.some(i=>i.group===n.group&&i.id!==o)||R(p,n.replaceId,[...a[n.group]||[],c]),h(p).setMeta(m,{placed:{id:o,at:r,size:d.nodeSize,blockId:c}})}function F(t,o){let{items:s,placed:e}=m.getState(t),a=s.find(r=>r.id===o);if(!a)return null;let n=t.tr;return s.some(r=>r.group===a.group&&r.id!==o)||R(n,a.replaceId,e[a.group]||[]),n.docChanged&&h(n),n.setMeta(m,{remove:o})}function y(t,o,s=b(t.state,t.state.selection.$head.index(0))){if(o=[...o].filter(Boolean),!o.length)return!1;let e=g("g"),a=o.map((n,r)=>{let c=/^image\//.test(n.type||"")?"image":"file";return{id:g("u"),pos:s.at,group:e,order:r,file:n,kind:c,name:n.name||(c==="image"?"image":"file"),parent:s.parent,replaceId:s.replaceId,state:"uploading",percent:0,preview:c==="image"&&globalThis.URL?.createObjectURL?URL.createObjectURL(n):null}});t.dispatch(t.state.tr.setMeta(m,{add:a}));for(let n of a)H(t,n);return f(t,o.length===1?`Uploading ${a[0].name}`:`Uploading ${o.length} files`),!0}var z=(t,o)=>m.getState(t.state).items.find(s=>s.id===o),M=(t,o,s)=>t.dispatch(t.state.tr.setMeta(m,{update:{id:o,...s}})),A=(t,o)=>t.kind==="image"?{src:o,alt:"",caption:""}:{src:o,name:t.name,size:t.file.size??null,mime:t.file.type||null};function T(t,o,s){t.preview&&URL.revokeObjectURL?.(t.preview),s&&o.dispatch(s)}async function H(t,o){let s=u.get(t),e=new AbortController;s.aborts.set(o.id,e);let a=-5,n=({percent:d})=>{d-a<5&&d!==100||(a=d,u.has(t)&&z(t,o.id)&&M(t,o.id,{percent:d}))},r;try{r=await s.upload(o.file,{onProgress:n,signal:e.signal})}catch{r={code:"network",msg:"Upload failed"}}if(s.aborts.delete(o.id),!u.has(t)||!z(t,o.id))return;if(r?.ok){let d=I(r.uploads?.[0]?.url);if(d){T(o,t,P(t.state,o.id,A(o,d))),f(t,`${o.name} added`);return}r={code:"bad-response",msg:"The upload returned an invalid address"}}if((!r||typeof r!="object")&&(r={code:"bad-response",msg:"The upload returned an invalid response"}),r.code==="aborted")return T(o,t,F(t.state,o.id));if(r.code==="unsupported"){let d=/^image\/(png|jpeg|gif|webp)$/i.test(o.file.type)&&o.file.size<=L,p=d?"This host doesn't store files. You can keep this image inside the document, which makes the document larger.":o.kind==="image"&&o.file.size>L?"This host doesn't store files, and this image is over 1.5 MB, too large to keep inside the document.":"This host doesn't store files.";M(t,o.id,{state:d?"embed-choice":"error",code:r.code,message:p}),f(t,`${o.name}: ${p}`);return}let c=r.code==="timeout"?"The upload timed out. It may have arrived; trying again is safe.":r.msg||"Upload failed";M(t,o.id,{state:"error",code:r.code,message:c}),f(t,`${o.name}: ${c}`)}var Y=t=>t.replace(/<(meta|style|img)\b[^>]*>/gi,"").replace(/<[^>]+>/g,"").trim()!=="";function Q({upload:t,features:o=null}){let s=e=>{!o||o.has("media")||!u.has(e)||o.ensure("media").catch(()=>{})};return new B({key:m,state:O,view(e){let n=e.dom.ownerDocument.createElement("input");n.type="file",n.multiple=!0,n.hidden=!0,n.className="page-file-input",e.dom.parentElement.append(n),u.set(e,{upload:t,aborts:new Map,input:n}),n.addEventListener("change",()=>{let c=[...n.files??[]],d=m.getState(e.state).picker;if(e.dispatch(e.state.tr.setMeta(m,{picker:null})),c.length&&d){let{remove:p}=d;p&&e.state.doc.textBetween(p.from,p.to)===p.text&&e.dispatch(h(e.state.tr.delete(p.from,p.to)));let i=_(e.state.doc,d.place.hostId);(!d.place.hostId||i>=0)&&(y(e,c,i>=0?b(e.state,i):d.place),s(e))}n.value="",e.focus()}),n.addEventListener("cancel",()=>e.dispatch(e.state.tr.setMeta(m,{picker:null})));let r=c=>{let d=c.target.closest?.(".page-upload-btn");if(!d)return;c.preventDefault();let p=C.get(e),i=d.dataset.upload;d.dataset.act==="retry"?p?.retryUpload(e,i):d.dataset.act==="embed"?p?.embedUpload(e,i):p?.cancelUpload(e,i)};return e.dom.addEventListener("click",r),{destroy(){e.dom.removeEventListener("click",r);let c=u.get(e);u.delete(e);for(let d of m.getState(e.state).items)d.preview&&URL.revokeObjectURL?.(d.preview);for(let d of c.aborts.values())d.abort();n.remove()}}},props:{handlePaste(e,a){let n=a.clipboardData,r=[...n?.files??[]];if(!r.length||e.state.selection.$from.parent.type.spec.code||Y(n.getData("text/html")||""))return!1;let c=b(e.state,e.state.selection.$head.index(0));return a.preventDefault(),y(e,r,c),s(e),!0},handleDrop(e,a,n,r){let c=[...a.dataTransfer?.files??[]];if(r||!c.length)return!1;let d=e.posAtCoords({left:a.clientX,top:a.clientY});if(!d)return!1;let p=x(e.state.doc),i=Math.min(e.state.doc.resolve(d.pos).index(0),p.length-1),l=e.nodeDOM(p[i].at)?.getBoundingClientRect?.(),D=l&&a.clientY<l.top+l.height/2;a.preventDefault();let S={at:D?p[i].at:p[p[i].subEnd].end,parent:p[i].node.attrs.parent??null,replaceId:null};return y(e,c,S),s(e),!0}}})}var _=(t,o)=>{let s=-1;return t.forEach((e,a,n)=>{e.attrs.id===o&&(s=n)}),s};function V(t,o,s=b(t.state,t.state.selection.$head.index(0)),e=null){let a=u.get(t);if(!a)return!1;let n={place:s,remove:e&&{...e,text:t.state.doc.textBetween(e.from,e.to)}};return t.dispatch(t.state.tr.setMeta(m,{picker:n})),a.input.accept=o,a.input.click(),!0}export{m as a,L as b,u as c,C as d,U as e,b as f,P as g,F as h,z as i,M as j,A as k,T as l,H as m,Q as n,V as o};
@@ -1 +1 @@
1
- import{e as g,f as h}from"./c-TRS6TM6O.js";import{d as m}from"./c-DCXOXBF3.js";import"./c-VRZN56XY.js";import"./c-OW5QIGG3.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import{b as f}from"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var v="clay.undo",S=1,x="conflict",N="text",k="undo";function R(){let e=f.local.get(k);return Number.isFinite(e?.count)&&e.count>0?e.count:0}function _(e){e>0?f.local.set(k,{count:e,at:Date.now()}):f.local.remove(k)}function T(){return(globalThis.window?.clay??globalThis.clay)?.recovery??null}var y=null;function p(){let e=T();if(!e||typeof e.register!="function")return null;if(y?.service===e)return y.channel;try{y={service:e,channel:e.register({channel:v,version:S})}}catch{return null}return y.channel}var O=(e,t)=>`refused:${e}:${t}`;function D(e){if(e==null||typeof document>"u")return null;let t=globalThis.CSS?.escape?globalThis.CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&");try{return document.querySelector(`[data-id="${t}"]`)}catch{return null}}function E(){let t=(globalThis.window?.clay??globalThis.clay)?.conflicts;return typeof t?.contextFor=="function"?t:null}function A({id:e=null}={}){let t=e==null?null:String(e),r=E();return(r?r.contextFor({source:"undo",id:t,element:D(t)},null):null)??{kind:null,id:t,label:null,field:null}}function C(e){return e.map(t=>h(A(t)))}async function F(e,t,r){let n;try{n=await e.list()}catch{return}if(n?.ok){for(let o of n.records)if(!(o.key!==t||String(o.id)===String(r)))try{await e.dismiss(o.id,{revision:o.revision})}catch{}}}var w=Promise.resolve();function H(e,t){let r=w.then(()=>I(e,t));return w=r.catch(()=>{}),r}async function I(e,t){let r=p();if(!r)return{ok:!1,code:"unavailable"};let n=null;try{n=e?.describe?.(t?.entryId)??null}catch{n=null}if(!n)return{ok:!1,code:"unknown-entry"};let o=n.refused&&typeof n.refused=="object"?n.refused:{},c=t?.direction??o.direction??null,i=(Array.isArray(o.targets)?o.targets:[]).map(l=>({id:l?.id==null?null:String(l.id),kind:l?.kind==null?null:String(l.kind)})),s=O(n.id??t?.entryId,c),a=g({label:n.label??null,direction:c,code:t?.code??o.code??null,targets:i,context:C(i),steps:n.steps??[]},[],""),u;try{u=r.stage({key:s,kind:x,baseEtag:m()??null,base:null,payload:a})}catch(l){return console.error("clayjs: the refused step could not be kept for a later reload; it is still in this tab's history",l),{ok:!1,code:"error"}}let d=await r.flush();return d?.ok&&(await F(r,s,u.id),await b()),d?.ok?d:{ok:!1,code:d?.code||"error"}}async function K({key:e,label:t=null,context:r=null,payload:n=null}={}){let o=p();if(!o)return{ok:!1,code:"unavailable"};let c=e==null?"":String(e);if(!c)return{ok:!1,code:"invalid"};let i=n&&typeof n=="object"?n:{},s=g({...i,label:t,context:h(r)},[],"");try{o.stage({key:`app:${c}`,kind:typeof i.text=="string"?N:x,payload:s})}catch(u){return console.error("clayjs: the app's recovery copy could not be kept; it is still in this tab only",u),{ok:!1,code:"error"}}let a=await o.flush();return a?.ok&&await b(),a}async function b(){let e=p();if(!e)return{ok:!0,records:[]};let t=await e.list();return t?.ok&&_(Array.isArray(t.records)?t.records.length:0),t}async function q(e,{revision:t}={}){let r=p();if(!r)return{ok:!1,code:"unavailable"};let n=await r.dismiss(e,{revision:t});if(n?.ok)try{await b()}catch{}return n}export{v as UNDO_CHANNEL,x as UNDO_KIND,N as UNDO_TEXT,S as UNDO_VERSION,A as contextForTarget,q as dismissKept,K as keep,H as keepRefusal,b as kept,R as pendingUndo};
1
+ import{e as g,f as h}from"./c-TRS6TM6O.js";import{d as m}from"./c-NQJRVJ56.js";import"./c-XGH4GS2T.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import{b as f}from"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var v="clay.undo",S=1,x="conflict",N="text",k="undo";function R(){let e=f.local.get(k);return Number.isFinite(e?.count)&&e.count>0?e.count:0}function _(e){e>0?f.local.set(k,{count:e,at:Date.now()}):f.local.remove(k)}function T(){return(globalThis.window?.clay??globalThis.clay)?.recovery??null}var y=null;function p(){let e=T();if(!e||typeof e.register!="function")return null;if(y?.service===e)return y.channel;try{y={service:e,channel:e.register({channel:v,version:S})}}catch{return null}return y.channel}var O=(e,t)=>`refused:${e}:${t}`;function D(e){if(e==null||typeof document>"u")return null;let t=globalThis.CSS?.escape?globalThis.CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&");try{return document.querySelector(`[data-id="${t}"]`)}catch{return null}}function E(){let t=(globalThis.window?.clay??globalThis.clay)?.conflicts;return typeof t?.contextFor=="function"?t:null}function A({id:e=null}={}){let t=e==null?null:String(e),r=E();return(r?r.contextFor({source:"undo",id:t,element:D(t)},null):null)??{kind:null,id:t,label:null,field:null}}function C(e){return e.map(t=>h(A(t)))}async function F(e,t,r){let n;try{n=await e.list()}catch{return}if(n?.ok){for(let o of n.records)if(!(o.key!==t||String(o.id)===String(r)))try{await e.dismiss(o.id,{revision:o.revision})}catch{}}}var w=Promise.resolve();function H(e,t){let r=w.then(()=>I(e,t));return w=r.catch(()=>{}),r}async function I(e,t){let r=p();if(!r)return{ok:!1,code:"unavailable"};let n=null;try{n=e?.describe?.(t?.entryId)??null}catch{n=null}if(!n)return{ok:!1,code:"unknown-entry"};let o=n.refused&&typeof n.refused=="object"?n.refused:{},c=t?.direction??o.direction??null,i=(Array.isArray(o.targets)?o.targets:[]).map(l=>({id:l?.id==null?null:String(l.id),kind:l?.kind==null?null:String(l.kind)})),s=O(n.id??t?.entryId,c),a=g({label:n.label??null,direction:c,code:t?.code??o.code??null,targets:i,context:C(i),steps:n.steps??[]},[],""),u;try{u=r.stage({key:s,kind:x,baseEtag:m()??null,base:null,payload:a})}catch(l){return console.error("clayjs: the refused step could not be kept for a later reload; it is still in this tab's history",l),{ok:!1,code:"error"}}let d=await r.flush();return d?.ok&&(await F(r,s,u.id),await b()),d?.ok?d:{ok:!1,code:d?.code||"error"}}async function K({key:e,label:t=null,context:r=null,payload:n=null}={}){let o=p();if(!o)return{ok:!1,code:"unavailable"};let c=e==null?"":String(e);if(!c)return{ok:!1,code:"invalid"};let i=n&&typeof n=="object"?n:{},s=g({...i,label:t,context:h(r)},[],"");try{o.stage({key:`app:${c}`,kind:typeof i.text=="string"?N:x,payload:s})}catch(u){return console.error("clayjs: the app's recovery copy could not be kept; it is still in this tab only",u),{ok:!1,code:"error"}}let a=await o.flush();return a?.ok&&await b(),a}async function b(){let e=p();if(!e)return{ok:!0,records:[]};let t=await e.list();return t?.ok&&_(Array.isArray(t.records)?t.records.length:0),t}async function q(e,{revision:t}={}){let r=p();if(!r)return{ok:!1,code:"unavailable"};let n=await r.dismiss(e,{revision:t});if(n?.ok)try{await b()}catch{}return n}export{v as UNDO_CHANNEL,x as UNDO_KIND,N as UNDO_TEXT,S as UNDO_VERSION,A as contextForTarget,q as dismissKept,K as keep,H as keepRefusal,b as kept,R as pendingUndo};
@@ -1 +1 @@
1
- import{d as i}from"./c-VRZN56XY.js";import{e as l}from"./c-OW5QIGG3.js";import{a as r}from"./c-BPF2NSPV.js";var e=r,a=r,s=!1,n=0;function k(){return e}function w(){return s}function p(t){e=typeof t=="string"&&t!==""?t:null,n++,a=e}function L(){return a}function g(){a=null}function m(){p(null)}function c(t){typeof t.spec=="number"&&(s=t.extensions.includes("conditional"))}async function b(){return c(await i()),s}async function y({fresh:t=!1,clearIfMissing:d=t}={}){let f=n,u=await i({fresh:t});if(c(u),n!==f||r&&!(t&&d))return e;let o=u.document?.etag;return typeof o=="string"&&o!==""?(e=o,n++):d&&(e=null,n++),e}document.addEventListener("clay:sync-applied",t=>{t.detail?.source==="disk"&&(typeof t.detail.etag=="string"&&t.detail.etag||g())});document.addEventListener("clay:sync-applied",t=>{l&&t.detail?.source==="disk"&&(typeof t.detail.etag=="string"&&t.detail.etag||(m(),y({fresh:!0})))});export{k as a,w as b,p as c,L as d,g as e,m as f,b as g,y as h};
1
+ import{d as i}from"./c-XGH4GS2T.js";import{f as l}from"./c-3O7OBDCM.js";import{a as r}from"./c-BPF2NSPV.js";var e=r,a=r,s=!1,n=0;function k(){return e}function w(){return s}function p(t){e=typeof t=="string"&&t!==""?t:null,n++,a=e}function L(){return a}function g(){a=null}function m(){p(null)}function c(t){typeof t.spec=="number"&&(s=t.extensions.includes("conditional"))}async function b(){return c(await i()),s}async function y({fresh:t=!1,clearIfMissing:d=t}={}){let f=n,u=await i({fresh:t});if(c(u),n!==f||r&&!(t&&d))return e;let o=u.document?.etag;return typeof o=="string"&&o!==""?(e=o,n++):d&&(e=null,n++),e}document.addEventListener("clay:sync-applied",t=>{t.detail?.source==="disk"&&(typeof t.detail.etag=="string"&&t.detail.etag||g())});document.addEventListener("clay:sync-applied",t=>{l&&t.detail?.source==="disk"&&(typeof t.detail.etag=="string"&&t.detail.etag||(m(),y({fresh:!0})))});export{k as a,w as b,p as c,L as d,g as e,m as f,b as g,y as h};
@@ -0,0 +1 @@
1
+ import{a as Me,b as K,c as Ge,d as Oe}from"./c-JKZJIUIP.js";import"./c-VHNSBD2M.js";var Qe=40,Ne=128,L=500,We=1e4,Ze=63*1024,ke=15*1024,Ae=/^page(\.[0-9]+)?$/,me=512,ce=8e3,en=new Set([401,403]),nn=new Set([401,403,404]),tn=new TextEncoder,ee=y=>tn.encode(JSON.stringify(y)).length,_e=y=>y===0||y===408||y===429||y>=500,Re=y=>y===429||y===503;function sn({transport:y,entries:v,onEpoch:$e=()=>{},onLeave:fe=()=>{},onWriter:de=()=>{},onApplied:ne=()=>{},onLanded:Fe=()=>{},onCheckpoint:Te=()=>{},held:ae=()=>!1,heldIds:De=()=>[],hold:je=()=>!0,taken:he=()=>{},onStop:Be=()=>{},now:te=()=>Date.now(),setTimer:B=setTimeout,clearTimer:H=clearTimeout}){let S=null,G=!1,$=!1,u=null,k=null,F=null,pe=0,g=0,V=null,w=new Set,A=[],oe=!1,q=!1,Q=!1,T=null,ge=-1/0,se=0,O=null,_=null,W=L,Y=Ze,R=L,D=0,z,Z=0,ie=!1,we=0,C=!1,re=null,b=new Map,U=new Set,I=(e,t)=>v.get(e)?.store.deliver?.({code:null,n:null,seq:null,through:null,retryAfter:null,client:S,...t});function j(e){let t=b.get(e);return t||b.set(e,t={n:0,unsent:[],awaiting:[],framed:0}),t}function qe(e,t){!e.adopted||t.through<e.adopted.through||(t.adopted=e.adopted.rev,e.adopted=null)}function m(e,t){let n=v.get(e)?.store;return n?n.pendingEntries().filter(o=>o.id>t.framed):[]}function le(e,t){let n=v.get(e)?.store;if(!n)return;let o=new Set(n.pendingEntries().map(s=>s.id));t.awaiting=t.awaiting.filter(s=>s===T||!s.entries||s.entries.some(i=>o.has(i.id)))}let Ce=e=>e.refused===!0&&!e.uncertain;function X(e,t,n=!0){let o=v.get(e)?.store;for(let s of t.awaiting)s===T&&(s.undecided=!0);n&&(C=!0),t.out=!0,fe(e,{epoch:u,seq:g}),t.unsent=[],o?.setMode("file"),ne()}function P(){if(O!==null||Q||q)return;let e=te(),t=Math.max(0,ge+Qe-e,se-e);O=B(()=>{O=null,Ve()},t)}function Pe(){for(let[e,t]of b){if(!w.has(e)||ae(e))continue;let n=t.awaiting.find(o=>!o.sent);if(n)return{name:e,lane:t,frame:n}}for(let[e,t]of b){if(!t.unsent.length||!w.has(e)||ae(e))continue;let n=ee({name:e,n:t.n+1,ops:[],epoch:u}),o=0;for(;o<t.unsent.length&&o<Ne;){let r=ee(t.unsent[o].op)+1;if(o&&n+r>Y)break;n+=r,o++}let s=t.unsent.splice(0,o),i={n:++t.n,ops:s.map(r=>r.op),entries:s,first:s[0].id,through:s[s.length-1].id,seq:null,sent:!1,receiptGeneration:k,pageGeneration:F};return qe(t,i),t.framed=Math.max(t.framed,i.through),t.awaiting.push(i),{name:e,lane:t,frame:i}}return null}async function Ve(){if(Q||q||!G||!$||z===null)return;let e=Pe();if(!e)return;let{name:t,lane:n,frame:o}=e;b.delete(t),b.set(t,n);let s=u;o.epoch=s,o.client=S,o.sentOn=D,o.sent=!0,I(t,{phase:"sent",n:o.n,first:o.first,through:o.through}),o.refused=!1,Q=!0,T=o,ge=te();let i;try{i=await y.send(S,{name:t,n:o.n,ops:o.ops,epoch:s,...z!==void 0&&{conn:z},...o.receiptGeneration!==null&&{receiptGeneration:o.receiptGeneration},...o.pageGeneration!==null&&Ae.test(t)&&{pageGeneration:o.pageGeneration},...o.adopted&&{adopted:o.adopted},...Ae.test(t)&&n.compaction?.v===1&&{compaction:1}})}catch{i=null}Q=!1,T=null,!q&&(o.undecided?Ye(t,n,o,i||{status:0}):s===u&&n.awaiting.includes(o)&&ze(t,n,o,i||{status:0}),P())}function Ye(e,t,n,{status:o,body:s}){if(delete n.undecided,!t.awaiting.includes(n))return;if((s?.stale===!0||Re(o)||o>=400&&o<500&&!_e(o))&&!n.uncertain){n.refused=!0,n.sent=!1,n.seq=null,n.epoch!==u&&(n.receiptGeneration=k),n.epoch!==u&&(n.pageGeneration=F);return}if(!w.has(e)){o>=200&&o<300&&Number.isInteger(s?.seq)&&!s?.stale?n.seq=s.seq:(n.uncertain=!0,n.uncertainSince??=n.sentOn);return}t.awaiting.splice(t.awaiting.indexOf(n),1);let r=v.get(e)?.store;r?.rebase(r.authoritative,{source:"state",through:n.through,cause:"decided"})}function ve(){for(let[e,t]of b){if(!w.has(e))continue;let n;for(;t.awaiting.length&&t.awaiting[0].seq!==null&&t.awaiting[0].seq<=g;)n=t.awaiting.shift().through;if(n===void 0)continue;let o=v.get(e)?.store;o?.rebase(o.authoritative,{source:"state",through:n,cause:"settled"})}}function ze(e,t,n,{status:o,body:s,retryAfter:i}){if(o>=200&&o<300){if(W=L,s?.stale){n.sent=!1,n.refused=!0,s.epoch!==u?a():P();return}if(s?.epoch&&s.epoch!==u){a();return}n.seq=Number.isInteger(s?.seq)?s.seq:null,I(e,{phase:"landed",n:n.n,seq:n.seq,through:n.through}),ve();return}if(_e(o)){if(n.sent=!1,I(e,{phase:"retry",code:s?.code??(o===0?"offline":o===429?"rate-limited":"server"),n:n.n,through:n.through,retryAfter:i??null}),Re(o)?n.refused=!0:(n.uncertain=!0,n.uncertainSince??=n.sentOn),o===503&&s?.code==="not-connected"){z=null,a();return}if(o===503&&s?.code==="busy"){I(e,{phase:"left",code:"busy",n:n.n,through:n.through}),console.warn(`clay.live("${e}"): the room is full, so it stays at save speed for now`),w.delete(e),X(e,t),B(a,(i>0?i:60)*1e3);return}if(n.uncertain&&n.sentOn!==D){a();return}se=te()+(i>0?i*1e3:W),W=Math.min(W*2,ce);return}if(en.has(o)){I(e,{phase:"refused",code:"revoked",n:n.n,through:n.through}),n.uncertain||(n.refused=!0),ue();return}let r=s?.error||s?.code||`status ${o}`;if(o===404){I(e,{phase:"left",code:"no-store",n:n.n,through:n.through}),console.warn(`clay.live("${e}"): the room has no such store, so it stays at save speed (${r})`),n.refused=!0,w.delete(e),X(e,t,!1);return}if(t.awaiting.splice(t.awaiting.indexOf(n),1),o===413&&!s?.code&&n.entries?.length>1&&Y>ke){Y=ke,console.warn(`clay.live("${e}"): the host takes smaller updates, so they go in frames of ${Y} bytes`),t.unsent.unshift(...n.entries),n.adopted&&(t.adopted={rev:n.adopted,through:n.through}),t.framed=n.first-1;return}let c=v.get(e)?.store,x=s?.code??(o===413&&n.entries?.length===1?"too-large":"refused");I(e,{phase:"refused",code:x,n:n.n,from:n.first,through:n.through,...s?.code==="receipt-expired"&&{ops:n.ops}}),console.warn(`clay.live("${e}"): the host refused an update, so it was undone (${r})`),c?.rebase(c.authoritative,{source:"state",drop:n.first===void 0?void 0:[n.first,n.through],through:n.first===void 0?n.through:void 0,cause:"refused"}),s?.code==="receipt-expired"&&a()}function Ue(e){g=e.seq,e.from==="compactor"&&(se=0,O!==null&&H(O),O=null,P());let t=v.get(e.name)?.store;if(!t||U.has(e.name))return;if(!w.has(e.name)){C=!0;return}let n=t.checkOps(e.ops);if(!n){a();return}let o,s=e.from===S;if(s){let i=j(e.name),r=i.awaiting.findIndex(c=>c.n===e.n);r>=0&&(o=i.awaiting[r].through,I(e.name,{phase:"echoed",n:e.n,seq:e.seq,through:o}),i.awaiting.splice(0,r+1))}t.rebaseOps(n,{source:s?"state":"remote",through:o,frame:{seq:e.seq,from:e.from,n:e.n,ops:e.ops}}),v.get(e.name).last=e.seq,ne(),e.checkpoint===!0&&Te(),ve()}function ye(e){if(!(q||!e||!Number.isInteger(e.seq))){if(!$){A.push(e),A.length>me&&A.shift();return}if(e.epoch!==u){A.push(e),a();return}if(!(e.seq<=g)){if(e.seq!==g+1){A.push(e),a();return}Ue(e)}}}function Xe(e,t){let n=t.seen?t.seen[S]??0:null,o=[],s=[];for(let i of e)n!==null&&i.n<=n||K(t.saved,i.n)?s.push(...i.entries.map(r=>r.id)):i.sent&&i===T?(i.undecided=!0,o.push(i)):Ce(i)?o.push(i):s.push(...i.entries.map(r=>r.id));return{resend:o,dropIds:s}}function Je(e,t,n,o){let s=De(e);if(!s.length)return!1;if(!o){let i=new Set;for(let r of t.awaiting)if(K(n.saved,r.n))for(let c of r.entries??[])i.add(c.id);if(s.every(r=>i.has(r)))return!1}return je(e,s)?!0:(le(e,t),!1)}function Se(e,t=0){if(q||!e||typeof e.epoch!="string")return;if(Z++,e.epoch===u&&Number.isInteger(e.seq)&&e.seq<g){be();return}let n=e.epoch!==u;pe=Number.isInteger(e.provenanceVersion)?e.provenanceVersion:0,k=Number.isSafeInteger(e.receiptGeneration)?e.receiptGeneration:null;let o=F;F=typeof e.pageTransition?.id=="string"?e.pageTransition.id:null;let s=F!==o,i=!1;C=!1,u=e.epoch,g=Number.isInteger(e.seq)?e.seq:0,V=e.writer??null,"conn"in e&&(z=e.conn);let r=e.stores||{};w=new Set(Object.keys(r));for(let f of U)w.delete(f);let c=!1,x=!1;for(let[f,E]of v){if(U.has(f))continue;let d=r[f],l=j(f);le(f,l);let Le=l.room;if(l.room=!!d,l.compaction=d?.compaction??null,!d){l.out||(Le&&s&&I(f,{phase:"left",code:"no-store"}),X(f,l,!1)),l.after!==void 0&&t>=l.after&&(l.after=void 0,l.deferred=!1,he(f));continue}let Ie=l.after!==void 0&&t<l.after;if(Ie||Je(f,l,d,n||l.stale===!0)){w.delete(f),l.deferred=!0,n&&(l.stale=!0),Ie&&(x=!0),c=!0;continue}let xe=n||l.stale===!0;l.deferred=!1,l.stale=!1,l.after=void 0;let He=E.store.handle.status.mode==="file";l.out=!1,E.store.setMode("fast"),E.last=Number.isInteger(d.last)?d.last:0,E.landed=Number.isInteger(d.landed)?d.landed:0;let Ee=[];if(!xe&&k!==null){let N=d.seen?.[S];l.awaiting=l.awaiting.filter(h=>K(d.saved,h.n)||N!==void 0&&h.n<=N||h.seq!==null&&h.seq<=g||(h.receiptGeneration??0)===k?!0:(Ee.push(...h.entries.map(p=>p.id)),I(f,{phase:"refused",code:"receipt-expired",n:h.n,from:h.first,through:h.through,ops:h.ops}),console.warn(`clay.live("${f}"): the room retired an update receipt, so the update was not replayed. Check the saved value before restoring it.`),!1))}if(xe){let{resend:N,dropIds:h}=Xe(l.awaiting,d);for(let M of N)M.undecided||(M.sent=!1,M.seq=null,M.receiptGeneration=k,M.pageGeneration=F);l.awaiting=N,E.store.rebase(d.value,{source:"state",dropIds:h,room:{seq:g,fresh:!0,moves:e.moves?.[f]??null,floor:Number.isInteger(d.floor)?d.floor:null,compaction:l.compaction}}),l.unsent=m(f,l)}else{let N=d.seen?d.seen[S]:void 0,h=[],M=[...Ee];for(let p of l.awaiting)K(d.saved,p.n)?M.push(...p.entries.map(J=>J.id)):p===T?h.push(p):p.seq!==null&&p.seq<=g||N!==void 0&&p.n<=N?M.push(...p.entries.map(J=>J.id)):p.seq!==null?h.push(p):!p.uncertain||N!==void 0||p.uncertainSince===D?(p.sent=!1,h.push(p)):M.push(...p.entries.map(J=>J.id));l.awaiting=h,E.store.rebase(d.value,{source:"state",dropIds:M,room:{seq:g,fresh:!1,moves:e.moves?.[f]??null,floor:Number.isInteger(d.floor)?d.floor:null,compaction:l.compaction}}),He&&(l.unsent=m(f,l),i=!0)}he(f)}c&&(C=!0),(n||i)&&$e(u),ne(),de(),be(),x&&a()}function be(){$=!0;let e=A.filter(t=>t.epoch===u&&t.seq>g).sort((t,n)=>t.seq-n.seq);A=[];for(let t of e)ye(t);P()}async function a(){if(q)return;if(oe){ie=!0;return}oe=!0,ie=!1,$=!1;let e={connection:D,stateCount:Z,read:++we},t=null,n=typeof AbortController=="function"?new AbortController:null,o=new Promise(s=>{_=B(()=>{_=null,n?.abort(),s(null)},We)});try{t=await Promise.race([y.fetchState(S,u!==null&&g>0&&!C?{epoch:u,seq:g}:null,n?{signal:n.signal}:{}),o])}catch{}if(_!==null&&H(_),_=null,oe=!1,!q){if(e.connection!==D||ie){G&&a();return}if(e.stateCount!==Z){if($)return;t=null}if(t&&typeof t.epoch=="string"){R=L,Se(t,e.read);return}if(t&&nn.has(t.status)){ue();return}if(t&&t.status===503){let s=t.code==="busy";for(let[i,r]of v)r.store.handle.status.mode==="fast"&&(I(i,{phase:"left",code:s?"busy":"unavailable"}),console.warn(`clay.live("${i}"): the host has no room for this document now, so it stays at save speed for now`),X(i,j(i)));if(w=new Set,!G)return;s||t.retryAfter>0?(R=L,B(a,(t.retryAfter>0?t.retryAfter:60)*1e3)):(B(a,R),R=Math.min(R*2,ce));return}G&&(B(a,R),R=Math.min(R*2,ce))}}function ue(){if(!q){q=!0,O!==null&&H(O),O=null,_!==null&&H(_),_=null,re?.();for(let[e,t]of v){let n=b.get(e);n?.out||(n?X(e,n):(fe(e,{epoch:u,seq:g}),t.store.setMode("file")))}Be()}}let Ke={open(e){S=e.clientId,G=!0,D++,a()},close(){G=!1,D++,$=!1,A=[]},frame:ye,state(e){C&&e&&!("moves"in e)?a():Se(e)},writer(e){if(!(!e||e.epoch!==u)){if(V=e.writer??null,e.landed&&typeof e.landed=="object"){Z++;for(let[t,n]of Object.entries(e.landed)){let o=v.get(t);o&&Number.isInteger(n)&&(o.landed=n,I(t,{phase:"checkpointed",seq:n}))}Fe()}de()}}};return{start(){!re&&!q&&(re=y.start(Ke))},local(e,t,n){if(q||u===null||!w.has(e))return;let o=j(e),s=n-t.length+1;t.forEach((i,r)=>o.unsent.push({id:s+r,op:i})),P()},abandon(e){if(U.has(e))return;U.add(e),w.delete(e);let t=j(e);t.awaiting=t.awaiting.filter(n=>n===T),t.unsent=[],t.adopted=null},adopted(e,t,n){if(q||!w.has(e))return;let o=j(e),s=o.awaiting.find(i=>!i.sent&&i.through>=n);s?s.adopted=t:o.adopted={rev:t,through:n}},release(e,{read:t=!1}={}){if(q)return;let n=j(e);if(n.deferred||t){n.after=we+1,u!==null&&G&&a();return}u!==null&&w.has(e)&&(le(e,n),n.unsent=m(e,n),P())},framed(e){return b.get(e)?.n??0},pendingFrames(e,t,{reserve:n=!1}={}){let o=b.get(e);if(n&&o&&S&&u===t?.epoch){let c=m(e,o);for(;c.length;){let x=ee({name:e,n:o.n+1,ops:[],epoch:u}),f=0;for(;f<c.length&&f<Ne;){let l=ee(c[f].op)+1;if(f&&x+l>Y)break;x+=l,f++}let E=c.splice(0,f),d={n:++o.n,ops:E.map(l=>l.op),entries:E,first:E[0].id,through:E[E.length-1].id,seq:null,sent:!1,refused:!0,epoch:u,client:S,receiptGeneration:k,pageGeneration:F};qe(o,d),o.awaiting.push(d),o.framed=d.through}o.unsent=[]}let s=new Set(v.get(e)?.store.pendingEntries().map(c=>c.id)??[]),i=[],r=!0;for(let c of o?.awaiting??[]){let x=c.entries.filter(f=>s.has(f.id));if(x.length){if(x.length!==c.entries.length||c.epoch!==t?.epoch||!c.client){r=!1;continue}i=Me(i,[[c.client,[[c.n,c.n]]]])}}return{frames:i,complete:r}},captured(e,t,n){let o=b.get(e);if(!o||!t||t.epoch!==u)return[];let s=Oe(n),i=[];return o.awaiting=o.awaiting.filter(r=>{let c=r.epoch===t.epoch&&(Ge(s,r.client,r.n)||r.seq!==null&&r.seq<=t.seq);return c&&i.push(...r.entries.map(x=>x.id)),!c}),i},refresh(){u!==null&&G&&a()},storeOpened(){u!==null&&G&&a()},roomBound(e){return!q&&b.get(e)?.room===!0},isWriter(){return V!==null&&V===S},get status(){return{connected:G,synced:$,epoch:u,seq:g,writer:V,clientId:S,stopped:q,provenanceVersion:pe,receiptGeneration:k}},stop:ue}}export{Ze as FRAME_BYTES,Ne as MAX_OPS,Qe as MIN_GAP_MS,ke as OLD_FRAME_BYTES,L as RETRY_MS,We as STATE_TIMEOUT_MS,sn as createFastLane};
@@ -1,2 +1,2 @@
1
- import{e as a}from"./c-OIBUTDXI.js";import{a as c}from"./c-4JZDZFF6.js";var s=e=>e.nodeType===1&&e.hasAttribute("data-clay-skin");function f(e){for(let t of e.childNodes)if(!s(t))return t;return null}function d(e,t){if(t.parentNode!==e)return!1;for(let n=t.previousSibling;n;n=n.previousSibling)if(!s(n))return!1;return!0}var u=new Map;function y(e){return`
1
+ import{e as a}from"./c-BJ7YQ5QZ.js";import{a as c}from"./c-4JZDZFF6.js";var s=e=>e.nodeType===1&&e.hasAttribute("data-clay-skin");function f(e){for(let t of e.childNodes)if(!s(t))return t;return null}function d(e,t){if(t.parentNode!==e)return!1;for(let n=t.previousSibling;n;n=n.previousSibling)if(!s(n))return!1;return!0}var u=new Map;function y(e){return`
2
2
  @layer clay-skin{:is(${e.join(", ")}){color-scheme:${c()} !important}}`}function m(e,t,{roots:n}={}){u.set(e,{css:t,roots:n});let o=document.head||document.documentElement,i=null;for(let l of o.querySelectorAll("style[data-clay-skin]"))l.getAttribute("data-clay-skin")===e&&(i=l);i||(i=document.createElement("style"),i.setAttribute("clay",a),i.setAttribute("data-clay-skin",e));let r=n?t+y(n):t;return i.textContent!==r&&(i.textContent=r),d(o,i)||o.insertBefore(i,f(o)),i}typeof document<"u"&&document.addEventListener("clay:sync-applied",()=>{for(let[e,{css:t,roots:n}]of u)m(e,t,{roots:n})});export{m as a};
@@ -0,0 +1 @@
1
+ import{A,B,C,D,E,F,G,H,I,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./c-YCLU4UNT.js";import"./c-DHBRA6DL.js";import"./c-L3F5ZLIV.js";import"./c-JRKY44DK.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import"./c-QIXT3Q7C.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";export{c as COMPACT_BATCHES,d as COMPACT_BYTES,y as COPY_CHANNEL,z as COPY_VERSION,E as IME_CHANNEL,F as IME_VERSION,a as PAGE_CHANNEL,b as PAGE_CHANNEL_VERSION,f as PageReplayError,g as accumulateCapsule,j as admitCapsule,l as applyCapsule,k as capsulesOf,C as copyState,x as coversText,r as createPageJournal,w as describeReview,I as imeEntries,p as journalBase,B as markerFor,e as mergePageUpdates,H as openImeShadow,s as openPageJournal,o as pageAuthority,q as pageChannel,A as pageCopyChannel,G as pageImeChannel,n as pageJournalContext,i as reconstructPage,v as reconstructText,D as recoverAsCopy,u as replayInto,m as replayJournals,h as replayPageValue,t as watchJournal};
@@ -1,2 +1,2 @@
1
- import{a as u}from"./c-HDDEEL77.js";import{A as M}from"./c-5J4E7O4Y.js";import{b,d as x,m as v}from"./c-WWXIDH4O.js";import"./c-VHNSBD2M.js";var{Plugin:R}=b,{Decoration:D}=x;var O=[["","Plain text"],["javascript","JavaScript"],["typescript","TypeScript"],["jsx","JSX"],["tsx","TSX"],["json","JSON"],["html","HTML"],["css","CSS"],["python","Python"],["shellscript","Shell"],["sql","SQL"],["go","Go"],["rust","Rust"],["java","Java"],["c","C"],["cpp","C++"],["csharp","C#"],["ruby","Ruby"],["php","PHP"],["yaml","YAML"],["markdown","Markdown"],["diff","Diff"],["swift","Swift"],["kotlin","Kotlin"],["xml","XML"]],L=new Set(O.map(([s])=>s)),T={js:"javascript",mjs:"javascript",ts:"typescript",py:"python",sh:"shellscript",bash:"shellscript",shell:"shellscript",zsh:"shellscript",rb:"ruby",yml:"yaml",md:"markdown",htm:"html",golang:"go",rs:"rust","c++":"cpp",cs:"csharp","c#":"csharp",kt:"kotlin"},m=s=>{let t=String(s??"").trim().toLowerCase(),e=T[t]??t;return L.has(e)?e:""},n=s=>({color:s}),C={name:"page",appearance:"light",cssVariables:{prefix:"--page-code-token-"},style:{syntax:{comment:n("comment"),keyword:n("keyword"),operator:n("keyword"),preproc:n("keyword"),"punctuation.special":n("keyword"),string:n("string-expression"),"string.escape":n("constant"),"string.regex":n("constant"),"string.special":n("constant"),number:n("constant"),boolean:n("constant"),constant:n("constant"),type:n("constant"),property:n("constant"),enum:n("constant"),variant:n("constant"),namespace:n("constant"),label:n("constant"),function:n("function"),constructor:n("function"),selector:n("function"),attribute:n("function"),"variable.parameter":n("parameter"),tag:n("string-expression"),link_uri:n("link"),link_text:n("link"),"diff.plus":n("string-expression"),"diff.minus":n("keyword"),title:{font_weight:700},emphasis:{font_style:"italic"},"emphasis.strong":{font_weight:700}}}},E=null;async function P(s,t){E??=import("./c-3OWDMNJR.js");let{codeToTokens:e}=await E;return e(s,{lang:t,theme:C}).tokens}var _="var(--page-code-token-foreground)",A=s=>{let t=[];return s.color&&s.color!==_&&t.push(`color: ${s.color}`),s.fontStyle&1&&t.push("font-style: italic"),s.fontStyle&2&&t.push("font-weight: 600"),s.fontStyle&4&&t.push("text-decoration: underline"),t.join("; ")},H=200,y=class{constructor(t,e,i){this.view=t,this.run=e,this.delay=i,this.cache=new Map,this.pending=new Set,this.visible=new Set,this.targets=new Map,this.timer=0;let c=t.dom.ownerDocument.defaultView.IntersectionObserver;this.io=c?new c(a=>{for(let o of a){let r=o.target.dataset.id;this.targets.get(r)===o.target&&this.visible[o.isIntersecting?"add":"delete"](r)}this.schedule(0)},{rootMargin:"200px 0px"}):null,this.schedule(0)}update(t,e){(!e||t.state.doc!==e.doc)&&this.schedule(this.delay)}schedule(t){clearTimeout(this.timer),this.timer=setTimeout(()=>this.pass(),t)}pass(){let{view:t}=this;if(t.isDestroyed)return;let e=[],i=new Map,c=u.getState(t.state);t.state.doc.forEach((o,r)=>{if(o.type!==v.nodes.code_block)return;let p=o.attrs.id,d=t.nodeDOM(r);d&&i.set(p,d);let g=m(o.attrs.lang);if(!g)return;let k=o.textContent,l=`${g}
1
+ import{a as u}from"./c-VJYEVRYK.js";import{B as M}from"./c-AMU3BPPR.js";import{b,d as x,m as v}from"./c-QIXT3Q7C.js";import"./c-VHNSBD2M.js";var{Plugin:R}=b,{Decoration:D}=x;var O=[["","Plain text"],["javascript","JavaScript"],["typescript","TypeScript"],["jsx","JSX"],["tsx","TSX"],["json","JSON"],["html","HTML"],["css","CSS"],["python","Python"],["shellscript","Shell"],["sql","SQL"],["go","Go"],["rust","Rust"],["java","Java"],["c","C"],["cpp","C++"],["csharp","C#"],["ruby","Ruby"],["php","PHP"],["yaml","YAML"],["markdown","Markdown"],["diff","Diff"],["swift","Swift"],["kotlin","Kotlin"],["xml","XML"]],L=new Set(O.map(([s])=>s)),T={js:"javascript",mjs:"javascript",ts:"typescript",py:"python",sh:"shellscript",bash:"shellscript",shell:"shellscript",zsh:"shellscript",rb:"ruby",yml:"yaml",md:"markdown",htm:"html",golang:"go",rs:"rust","c++":"cpp",cs:"csharp","c#":"csharp",kt:"kotlin"},m=s=>{let t=String(s??"").trim().toLowerCase(),e=T[t]??t;return L.has(e)?e:""},n=s=>({color:s}),C={name:"page",appearance:"light",cssVariables:{prefix:"--page-code-token-"},style:{syntax:{comment:n("comment"),keyword:n("keyword"),operator:n("keyword"),preproc:n("keyword"),"punctuation.special":n("keyword"),string:n("string-expression"),"string.escape":n("constant"),"string.regex":n("constant"),"string.special":n("constant"),number:n("constant"),boolean:n("constant"),constant:n("constant"),type:n("constant"),property:n("constant"),enum:n("constant"),variant:n("constant"),namespace:n("constant"),label:n("constant"),function:n("function"),constructor:n("function"),selector:n("function"),attribute:n("function"),"variable.parameter":n("parameter"),tag:n("string-expression"),link_uri:n("link"),link_text:n("link"),"diff.plus":n("string-expression"),"diff.minus":n("keyword"),title:{font_weight:700},emphasis:{font_style:"italic"},"emphasis.strong":{font_weight:700}}}},E=null;async function P(s,t){E??=import("./c-3OWDMNJR.js");let{codeToTokens:e}=await E;return e(s,{lang:t,theme:C}).tokens}var _="var(--page-code-token-foreground)",A=s=>{let t=[];return s.color&&s.color!==_&&t.push(`color: ${s.color}`),s.fontStyle&1&&t.push("font-style: italic"),s.fontStyle&2&&t.push("font-weight: 600"),s.fontStyle&4&&t.push("text-decoration: underline"),t.join("; ")},H=200,y=class{constructor(t,e,i){this.view=t,this.run=e,this.delay=i,this.cache=new Map,this.pending=new Set,this.visible=new Set,this.targets=new Map,this.timer=0;let c=t.dom.ownerDocument.defaultView.IntersectionObserver;this.io=c?new c(a=>{for(let o of a){let r=o.target.dataset.id;this.targets.get(r)===o.target&&this.visible[o.isIntersecting?"add":"delete"](r)}this.schedule(0)},{rootMargin:"200px 0px"}):null,this.schedule(0)}update(t,e){(!e||t.state.doc!==e.doc)&&this.schedule(this.delay)}schedule(t){clearTimeout(this.timer),this.timer=setTimeout(()=>this.pass(),t)}pass(){let{view:t}=this;if(t.isDestroyed)return;let e=[],i=new Map,c=u.getState(t.state);t.state.doc.forEach((o,r)=>{if(o.type!==v.nodes.code_block)return;let p=o.attrs.id,d=t.nodeDOM(r);d&&i.set(p,d);let g=m(o.attrs.lang);if(!g)return;let k=o.textContent,l=`${g}
2
2
  ${k}`,w=this.cache.get(l);if(w)for(let h of w){let S=A(h);S&&h.content&&e.push(D.inline(r+1+h.offset,r+1+h.offset+h.content.length,{style:S}))}else{if(e.push(...c.find(r,r+o.nodeSize)),this.io&&!this.visible.has(p)||this.pending.has(l))return;this.pending.add(l),this.run(k,g).then(h=>h.flat(),()=>[]).then(h=>{this.pending.delete(l),this.cache.set(l,h),this.cache.size>H&&this.cache.delete(this.cache.keys().next().value),this.schedule(0)})}}),this.track(i);let a=o=>o.map(r=>`${r.from}:${r.to}:${r.type.attrs.style}`).join("|");a(e)!==a(u.getState(t.state).find())&&t.dispatch(t.state.tr.setMeta(u,e).setMeta("addToHistory",!1))}track(t){if(this.io){for(let[e,i]of this.targets)t.get(e)!==i&&(this.io.unobserve(i),this.targets.delete(e),this.visible.delete(e));for(let[e,i]of t)this.targets.get(e)!==i&&(this.targets.set(e,i),this.io.observe(i))}}destroy(){clearTimeout(this.timer),this.io?.disconnect()}};function j(s,{tokenize:t=P,delay:e=300}={}){let i=new y(s,t,e),c=s.dispatch.bind(s),a=s.state.doc,o=p=>{if(c(p),s.state.doc===a)return;let d={doc:a};a=s.state.doc,i.update(s,d)};s.dispatch=o;let r=i.destroy.bind(i);return i.destroy=()=>{s.dispatch===o&&(s.dispatch=c),r()},i}var f=class{constructor(t,e,i){this.node=t,this.view=e,this.getPos=i;let c=e.dom.ownerDocument;this.dom=c.createElement("pre"),this.contentDOM=c.createElement("code"),this.select=c.createElement("select"),this.select.className="page-code-lang",this.select.contentEditable="false",this.select.setAttribute("aria-label","Code language");for(let[a,o]of O)this.select.append(new Option(o,a));this.select.addEventListener("change",()=>this.setLang(this.select.value)),this.dom.append(this.select,this.contentDOM),this.render(t)}render(t){this.node=t,this.dom.dataset.id=t.attrs.id??"";let e=m(t.attrs.lang);e?this.dom.dataset.lang=e:delete this.dom.dataset.lang,this.select.value=e}setLang(t){let e=this.getPos();e==null||t===m(this.node.attrs.lang)||(this.view.dispatch(M(this.view.state.tr.setNodeMarkup(e,null,{...this.node.attrs,lang:t}))),this.view.focus())}update(t){return t.type!==this.node.type?!1:(this.render(t),!0)}stopEvent(t){return this.select.contains(t.target)}ignoreMutation(t){return t.type!=="selection"&&this.select.contains(t.target)}};function X({view:s=null,highlight:t={}}={}){let e=s?j(s,t):null;return{id:"code",nodeViews:{code_block:(i,c,a)=>new f(i,c,a)},css:null,dispose(){e?.destroy()}}}export{X as createFeature};
@@ -1 +1 @@
1
- import"./c-VHNSBD2M.js";var l=(e,n)=>Object.assign(new Error(`clayjs: ${e}`),{code:n}),u=(e,n)=>!e||n.seq===null||e.seq===null||n.seq>e.seq?n:e;function a({stream:e,apply:n,retire:f,yieldArticle:i=()=>!1,reclaimArticle:s=()=>!1}){let t=null,r=!1;e.adopt({onSnapshot:o=>(t=u(t,o),!0)});let d=()=>{let o=t;return t=null,o};return{get represented(){return e.represented},get held(){return t??e.represented},yieldArticle(){return r||!i()?!1:(r=!0,!0)},reclaimArticle(){return!r||!s()?!1:(r=!1,!0)},reconcile(){let o=d();return o&&!n(o)?Promise.reject(l("the switch could not apply the saved file","load-failed")):Promise.resolve()},resume(){e.adopt({onSnapshot:n});let o=d();o&&n(o)},commit(){if(!r){let o=d();if(o&&!n(o))return!1}return e.represented.bytes===null?!1:(e.stop(),f())}}}async function c({stream:e,options:n,apply:f,retire:i,yieldArticle:s=()=>!1,reclaimArticle:t=()=>!1}){if(e)return a({stream:e,apply:f,retire:i,yieldArticle:s,reclaimArticle:t});let r=await import("./sync/live-sync-J7VMYTKS.js").then(({liveSync:d})=>d.prepareHandoff(n));return{get represented(){return r.represented},get held(){return r.held},yieldArticle:s,reclaimArticle:t,reconcile:()=>r.reconcile(),resume:()=>r.resume(),commit:()=>r.commit()&&i()}}async function p(e,{signal:n,deadline:f=15e3}={}){let i=Date.now()+f;for(;e._morphInFlight;){if(n?.aborted)throw e._handoffHeld=!1,l("the switch was cancelled","aborted");if(Date.now()>=i)throw e._handoffHeld=!1,l("the apply did not settle","timeout");await new Promise(t=>setTimeout(t,1))}let s=()=>e._pendingHtml!=null||e._pendingExternal!=null;return{get represented(){return e._represented},get held(){let t=e._represented;return e._pendingHtml!=null&&(t=u(t,{bytes:e._pendingHtml,etag:e._pendingEtag??null,seq:e._pendingSeq??null})),e._pendingExternal&&(t=u(t,{bytes:e._pendingExternal.html,etag:e._pendingExternal.etag??null,seq:e._pendingExternal.seq??null})),t},async reconcile(){if(!(!e._handoff||e.isDestroyed)){for(let t=0;t<8;t++){if(e._morphInFlight){await new Promise(r=>setTimeout(r,1));continue}if(!s())return;await e._runPending()}if(s())throw l("the held frame could not be applied","load-failed")}},resume(){e._handoff&&(e._handoff=null,e._handoffHeld=!1,e._scheduleNextFrame())},commit(){return e._represented.bytes?(e._handoff=null,e._handoffHeld=!1,e.stop(),!0):!1}}}export{p as engineHandoff,c as readerHandoff};
1
+ import"./c-VHNSBD2M.js";var l=(e,n)=>Object.assign(new Error(`clayjs: ${e}`),{code:n}),u=(e,n)=>!e||n.seq===null||e.seq===null||n.seq>e.seq?n:e;function a({stream:e,apply:n,retire:f,yieldArticle:i=()=>!1,reclaimArticle:s=()=>!1}){let t=null,r=!1;e.adopt({onSnapshot:o=>(t=u(t,o),!0)});let d=()=>{let o=t;return t=null,o};return{get represented(){return e.represented},get held(){return t??e.represented},yieldArticle(){return r||!i()?!1:(r=!0,!0)},reclaimArticle(){return!r||!s()?!1:(r=!1,!0)},reconcile(){let o=d();return o&&!n(o)?Promise.reject(l("the switch could not apply the saved file","load-failed")):Promise.resolve()},resume(){e.adopt({onSnapshot:n});let o=d();o&&n(o)},commit(){if(!r){let o=d();if(o&&!n(o))return!1}return e.represented.bytes===null?!1:(e.stop(),f())}}}async function c({stream:e,options:n,apply:f,retire:i,yieldArticle:s=()=>!1,reclaimArticle:t=()=>!1}){if(e)return a({stream:e,apply:f,retire:i,yieldArticle:s,reclaimArticle:t});let r=await import("./sync/live-sync-MO5DH33W.js").then(({liveSync:d})=>d.prepareHandoff(n));return{get represented(){return r.represented},get held(){return r.held},yieldArticle:s,reclaimArticle:t,reconcile:()=>r.reconcile(),resume:()=>r.resume(),commit:()=>r.commit()&&i()}}async function p(e,{signal:n,deadline:f=15e3}={}){let i=Date.now()+f;for(;e._morphInFlight;){if(n?.aborted)throw e._handoffHeld=!1,l("the switch was cancelled","aborted");if(Date.now()>=i)throw e._handoffHeld=!1,l("the apply did not settle","timeout");await new Promise(t=>setTimeout(t,1))}let s=()=>e._pendingHtml!=null||e._pendingExternal!=null;return{get represented(){return e._represented},get held(){let t=e._represented;return e._pendingHtml!=null&&(t=u(t,{bytes:e._pendingHtml,etag:e._pendingEtag??null,seq:e._pendingSeq??null})),e._pendingExternal&&(t=u(t,{bytes:e._pendingExternal.html,etag:e._pendingExternal.etag??null,seq:e._pendingExternal.seq??null})),t},async reconcile(){if(!(!e._handoff||e.isDestroyed)){for(let t=0;t<8;t++){if(e._morphInFlight){await new Promise(r=>setTimeout(r,1));continue}if(!s())return;await e._runPending()}if(s())throw l("the held frame could not be applied","load-failed")}},resume(){e._handoff&&(e._handoff=null,e._handoffHeld=!1,e._scheduleNextFrame())},commit(){return e._represented.bytes?(e._handoff=null,e._handoffHeld=!1,e.stop(),!0):!1}}}export{p as engineHandoff,c as readerHandoff};
@@ -1 +1 @@
1
- import{e as c,f as s}from"./c-XCNTK76U.js";import{k as g,m as u}from"./c-SPIORRYS.js";import{i as l}from"./c-DCFSEJZG.js";var p={debug:!1};function t(...n){p.debug&&console.log("[save-freeze]",...n)}var f=new WeakMap;function m(n,o){f=new WeakMap;let e=n.querySelectorAll(l);t("freezing clone:",e.length);for(let r of e){let a=o.original(r);if(!a)continue;let i=c(a);i!==void 0&&(f.set(r,i),r.innerHTML!==i&&(t("restoring original"),r.innerHTML=i))}}function d(n){for(let o of n.querySelectorAll(l)){let e=f.get(o);e!==void 0&&o.innerHTML!==e&&(t("re-restoring original after prepare-phase change"),o.innerHTML=e)}}function E(){t("init"),s(),g(m),u(d)}E();var h=p;export{h as a};
1
+ import{e as c,f as s}from"./c-Q26MME6N.js";import{k as g,q as u}from"./c-7MG5RU63.js";import{i as l}from"./c-DCFSEJZG.js";var p={debug:!1};function t(...n){p.debug&&console.log("[save-freeze]",...n)}var f=new WeakMap;function m(n,o){f=new WeakMap;let e=n.querySelectorAll(l);t("freezing clone:",e.length);for(let r of e){let a=o.original(r);if(!a)continue;let i=c(a);i!==void 0&&(f.set(r,i),r.innerHTML!==i&&(t("restoring original"),r.innerHTML=i))}}function d(n){for(let o of n.querySelectorAll(l)){let e=f.get(o);e!==void 0&&o.innerHTML!==e&&(t("re-restoring original after prepare-phase change"),o.innerHTML=e)}}function E(){t("init"),s(),g(m),u(d)}E();var h=p;export{h as a};
@@ -1 +1 @@
1
- import{a as _,d as v}from"./c-BWFVSBDF.js";import{b as c}from"./c-RVMWGXEJ.js";import{b as u,c as s}from"./c-NUHP2XDB.js";import{e as b}from"./c-VRZN56XY.js";import"./c-OW5QIGG3.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var d="#FFFCF6",l=["all:initial","color-scheme:inherit","direction:ltr","unicode-bidi:isolate"],y=18,h=3,p=null,f=null;function C(){return f??=Promise.all([import("./c-6HMB24EV.js"),import("./c-ZE46QDIH.js")]).then(([i,e])=>p={RUNTIME_ONLY:i.RUNTIME_ONLY,CHIP_FONT:`600 11px/16px ${e.FONT_MONO}`}).catch(i=>{throw f=null,i}),f}var $=()=>C().then(()=>!0,()=>!1);function a(i){return i.setAttribute("clay",p.RUNTIME_ONLY),i}function A(i){let e=i&&Array.isArray(i.people)?i.people:[],o=[];for(let t of e){if(!t||t.you===!0||typeof t.id!="string"||!t.id||typeof t.editing!="string"||!_.test(t.editing))continue;let n=typeof t.name=="string"&&t.name.trim()?t.name.trim():"Someone";o.push({id:t.id,name:n,path:t.editing})}return o}var m=class{constructor(){this.editors=[],this.root=null,this._gate=null,this._frame=0,this._following=!1,this._onMove=()=>this.schedule()}supported(){return this._gate||(this._gate=b("presence").then(e=>e===!0,()=>!1)),this._gate}async update(e){this.editors=A(e),await this.supported()&&await this.render()}clear(){this.editors=[],this.follow(!1),this._frame&&cancelAnimationFrame(this._frame),this._frame=0,this.root&&this.root.remove(),this.root=null}schedule(){this._frame||(this._frame=requestAnimationFrame(()=>{this._frame=0,this.render()}))}render(){return p?(this.paint(),Promise.resolve()):$().then(e=>{e&&this.paint()})}paint(){let e=new Map;for(let t of this.editors){let n=v(t.path);n&&(e.has(n)||e.set(n,[]),e.get(n).push(t))}let o=[];for(let[t,n]of e){let r=this.box(t,n);r&&o.push(r)}if(!o.length){this.root&&(this.root.textContent="",u(this.root,"display","none")),this.follow(this.editors.length>0);return}this.build()&&(this.root.textContent="",this.root.append(...o),u(this.root,"display","block"),this.follow(!0))}box(e,o){let t=e.getBoundingClientRect();if(!(t.width||t.height))return null;let n=c(o[0].id),r=a(s("div",[...l,"position:fixed","box-sizing:border-box","pointer-events:none",`top:${Math.round(t.top-h)}px`,`left:${Math.round(t.left-h)}px`,`width:${Math.round(t.width+h*2)}px`,`height:${Math.round(t.height+h*2)}px`,`border:2px solid ${n}`,`box-shadow:0 0 0 1px ${d}, inset 0 0 0 1px ${d}`]));r.setAttribute("data-clay-editing-marker","");let M=t.top-h>=y+2,x=a(s("div",[...l,"position:absolute","left:-2px",M?"bottom:100%":"top:100%","display:flex","gap:2px","pointer-events:none"]));for(let g of o){let w=a(s("span",[...l,"box-sizing:border-box",`height:${y}px`,"padding:1px 6px",`font:${p.CHIP_FONT}`,"letter-spacing:.02em","white-space:nowrap","max-width:180px","overflow:hidden","text-overflow:ellipsis",`background-color:${c(g.id)}`,`color:${d}`,`box-shadow:0 0 0 1px ${d}`],g.name));w.setAttribute("data-clay-editing-chip",""),x.appendChild(w)}return r.appendChild(x),r}build(){return this.root&&this.root.isConnected?!0:typeof document>"u"||!document.body?!1:(this.root=a(s("div",[...l,"position:fixed","top:0","left:0","width:0","height:0","overflow:visible","z-index:2147482999","pointer-events:none","display:none"])),this.root.setAttribute("data-clay-editing",""),document.body.appendChild(this.root),!0)}follow(e){if(typeof window>"u"||!!e===this._following)return;this._following=!!e;let o=e?"addEventListener":"removeEventListener";window[o]("scroll",this._onMove,{capture:!0,passive:!0}),window[o]("resize",this._onMove,{passive:!0}),document[o]("input",this._onMove),document[o]("clay:sync-applied",this._onMove)}},N=new m;var O=N;export{m as EditingMarker,O as default,N as editingMarker};
1
+ import{a as _,d as v}from"./c-BWFVSBDF.js";import{b as c}from"./c-RVMWGXEJ.js";import{b as u,c as s}from"./c-NUHP2XDB.js";import{e as b}from"./c-XGH4GS2T.js";import"./c-3O7OBDCM.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var d="#FFFCF6",l=["all:initial","color-scheme:inherit","direction:ltr","unicode-bidi:isolate"],y=18,h=3,p=null,f=null;function C(){return f??=Promise.all([import("./c-2ZZBC45O.js"),import("./c-ZE46QDIH.js")]).then(([i,e])=>p={RUNTIME_ONLY:i.RUNTIME_ONLY,CHIP_FONT:`600 11px/16px ${e.FONT_MONO}`}).catch(i=>{throw f=null,i}),f}var $=()=>C().then(()=>!0,()=>!1);function a(i){return i.setAttribute("clay",p.RUNTIME_ONLY),i}function A(i){let e=i&&Array.isArray(i.people)?i.people:[],o=[];for(let t of e){if(!t||t.you===!0||typeof t.id!="string"||!t.id||typeof t.editing!="string"||!_.test(t.editing))continue;let n=typeof t.name=="string"&&t.name.trim()?t.name.trim():"Someone";o.push({id:t.id,name:n,path:t.editing})}return o}var m=class{constructor(){this.editors=[],this.root=null,this._gate=null,this._frame=0,this._following=!1,this._onMove=()=>this.schedule()}supported(){return this._gate||(this._gate=b("presence").then(e=>e===!0,()=>!1)),this._gate}async update(e){this.editors=A(e),await this.supported()&&await this.render()}clear(){this.editors=[],this.follow(!1),this._frame&&cancelAnimationFrame(this._frame),this._frame=0,this.root&&this.root.remove(),this.root=null}schedule(){this._frame||(this._frame=requestAnimationFrame(()=>{this._frame=0,this.render()}))}render(){return p?(this.paint(),Promise.resolve()):$().then(e=>{e&&this.paint()})}paint(){let e=new Map;for(let t of this.editors){let n=v(t.path);n&&(e.has(n)||e.set(n,[]),e.get(n).push(t))}let o=[];for(let[t,n]of e){let r=this.box(t,n);r&&o.push(r)}if(!o.length){this.root&&(this.root.textContent="",u(this.root,"display","none")),this.follow(this.editors.length>0);return}this.build()&&(this.root.textContent="",this.root.append(...o),u(this.root,"display","block"),this.follow(!0))}box(e,o){let t=e.getBoundingClientRect();if(!(t.width||t.height))return null;let n=c(o[0].id),r=a(s("div",[...l,"position:fixed","box-sizing:border-box","pointer-events:none",`top:${Math.round(t.top-h)}px`,`left:${Math.round(t.left-h)}px`,`width:${Math.round(t.width+h*2)}px`,`height:${Math.round(t.height+h*2)}px`,`border:2px solid ${n}`,`box-shadow:0 0 0 1px ${d}, inset 0 0 0 1px ${d}`]));r.setAttribute("data-clay-editing-marker","");let M=t.top-h>=y+2,x=a(s("div",[...l,"position:absolute","left:-2px",M?"bottom:100%":"top:100%","display:flex","gap:2px","pointer-events:none"]));for(let g of o){let w=a(s("span",[...l,"box-sizing:border-box",`height:${y}px`,"padding:1px 6px",`font:${p.CHIP_FONT}`,"letter-spacing:.02em","white-space:nowrap","max-width:180px","overflow:hidden","text-overflow:ellipsis",`background-color:${c(g.id)}`,`color:${d}`,`box-shadow:0 0 0 1px ${d}`],g.name));w.setAttribute("data-clay-editing-chip",""),x.appendChild(w)}return r.appendChild(x),r}build(){return this.root&&this.root.isConnected?!0:typeof document>"u"||!document.body?!1:(this.root=a(s("div",[...l,"position:fixed","top:0","left:0","width:0","height:0","overflow:visible","z-index:2147482999","pointer-events:none","display:none"])),this.root.setAttribute("data-clay-editing",""),document.body.appendChild(this.root),!0)}follow(e){if(typeof window>"u"||!!e===this._following)return;this._following=!!e;let o=e?"addEventListener":"removeEventListener";window[o]("scroll",this._onMove,{capture:!0,passive:!0}),window[o]("resize",this._onMove,{passive:!0}),document[o]("input",this._onMove),document[o]("clay:sync-applied",this._onMove)}},N=new m;var O=N;export{m as EditingMarker,O as default,N as editingMarker};
@@ -0,0 +1,6 @@
1
+ import{c as E}from"./c-KBS3UV6B.js";import{i as x,j as I}from"./c-4TXNLX4K.js";import"./c-EXKHPOVC.js";import"./c-L5VFATT6.js";import"./c-MWXFLW4J.js";import"./c-ZK4GIZH2.js";import"./c-W4JCVLAB.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{B as C}from"./c-AMU3BPPR.js";import{G as b,J as A,m as f}from"./c-QIXT3Q7C.js";import"./c-WCXLG3MV.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";var D=`
2
+ [data-page-heading]{display:block}
3
+ [data-page-heading]>span[data-page-icon]{display:inline-block;font-size:34px;line-height:1;margin-block-end:.2em}
4
+ [data-page-heading]>img[data-page-cover]{display:block;width:100%;height:180px;object-fit:cover;border-radius:var(--page-image-radius, 6px);margin-block-end:.6em}
5
+ [data-page-heading]>h1{font-family:var(--page-font-display);font-size:var(--page-h1-size);font-weight:var(--page-h1-weight);letter-spacing:var(--page-h1-tracking);line-height:var(--page-h1-line);color:var(--page-ink-strong);margin-block:0 .6em}
6
+ `,v=null,P=()=>v??=import("./c-HMV6P4RX.js").catch(r=>{throw v=null,r});function z(r){let t=typeof r=="string"?r:"";return!t.trim()||typeof Intl>"u"||typeof Intl.Segmenter!="function"||[...new Intl.Segmenter("en",{granularity:"grapheme"}).segment(t)].length!==1?!1:[...t].length<=32&&new TextEncoder().encode(t).length<=128}function S(r){let t=0;for(let i=0;i<r.childCount;i++){let a=r.child(i);if(a.type===f.nodes.heading&&a.attrs.level===1&&a.attrs.parent==null)return{index:i,at:t,node:a};t+=a.nodeSize}return null}function L(r,t){let i=r.createElement("img");return i.setAttribute("data-page-cover",""),i.setAttribute("src",t.pageCoverSrc),i.setAttribute("alt",t.pageCoverAlt??""),i.setAttribute("style",`object-position:${t.pageCoverX}% ${t.pageCoverY}%`),i}var g=class{constructor(t,i){this.node=t,this.decorated=!!(t.attrs.pageIcon||t.attrs.pageCoverSrc);let a=i.dom.ownerDocument,p=a.createElement(`h${t.attrs.level}`);if(p.setAttribute("data-id",t.attrs.id),this.dom=this.contentDOM=p,!this.decorated)return;let l=a.createElement("header");if(l.setAttribute("data-id",t.attrs.id),l.setAttribute("data-page-heading","1"),p.removeAttribute("data-id"),t.attrs.pageCoverSrc&&l.append(L(a,t.attrs)),t.attrs.pageIcon){let c=a.createElement("span");c.setAttribute("data-page-icon",""),c.setAttribute("aria-hidden","true"),c.textContent=t.attrs.pageIcon,l.append(c)}l.append(p),this.dom=l}update(t){return this.decorated!==!!(t.attrs.pageIcon||t.attrs.pageCoverSrc)||!t.sameMarkup(this.node)?!1:(this.node=t,!0)}ignoreMutation(t){return!this.contentDOM.contains(t.target)}};function W({view:r=null}={}){if(!r)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let t=r.dom.ownerDocument,i=null,a=null;function p(){try{let n=r.dom.parentElement?.getBoundingClientRect?.()??{left:0,top:0},e=r.coordsAtPos(r.state.selection.from);return{x:Math.max(8,e.left-n.left),y:e.bottom+6-n.top}}catch{return null}}function l(n){let e=n.picker.activeId();e?r.dom.setAttribute("aria-activedescendant",e):r.dom.getAttribute("aria-activedescendant")?.startsWith(n.picker.el.id)&&r.dom.removeAttribute("aria-activedescendant")}function c(){let n=a;if(n){a=null;for(let[e,o,u,d]of n.listen)e.removeEventListener(o,u,d);r.dom.getAttribute("aria-activedescendant")?.startsWith(`${n.picker.el.id}-`)&&r.dom.removeAttribute("aria-activedescendant"),n.picker.destroy()}}function j(n,e){let o=S(r.state.doc);if((o?o.node.attrs.id:null)!==n.owner)return{ok:!1,code:"stale-target"};let d=r.state.tr;if(o)d.setNodeMarkup(o.at,null,{...o.node.attrs,pageIcon:e});else{let s=r.state.doc.maybeChild(0);d.insert(0,f.nodes.heading.create({id:A(),pos:b(null,s?.attrs.pos??null),parent:null,level:1,pageIcon:e}))}return r.dispatch(C(d)),{ok:!0,icon:e}}async function m(n){let e=a;if(!e)return{ok:!1,code:"not-editing"};let o=e.picker.personAt(n);return c(),o?z(o.char)?x(r,()=>j(e,o.char)):{ok:!1,code:"invalid-icon"}:{ok:!1,code:"no-emoji"}}function w(n){let e=a;if(!e||I(n,r))return;let o=()=>{n.preventDefault(),n.stopPropagation()};n.key==="ArrowDown"||n.key==="ArrowUp"?(o(),e.picker.move(n.key==="ArrowDown"?1:-1),l(e)):n.key==="Enter"?(o(),m(e.picker.index())):(n.key==="Escape"||n.key==="Tab")&&(o(),c())}async function M(n){c();let e={owner:S(r.state.doc)?.node.attrs.id??null,picker:null,listen:[]};e.picker=E({document:t,label:"Choose a page icon",empty:"No emoji found",onPick:s=>m(s)}),a=e;let o=(s,h,k,y)=>{s.addEventListener(h,k,y),e.listen.push([s,h,k,y])};o(t,"keydown",s=>w(s),!0),o(r.dom,"input",()=>c()),o(t,"mousedown",s=>{e.picker.el.contains(s.target)||c()},!0),(r.dom.parentElement??t.body).appendChild(e.picker.el);let u,d;try{let s=await P();d=s.filterEmoji,i??=s.emojiLibrary(),u=await i()}catch(s){return c(),{ok:!1,code:"unavailable",error:s}}return a!==e?{ok:!1,code:"not-editing"}:(e.picker.show(d(u,n?.query),p()),l(e),{ok:!0,picker:!0})}return{nodeViews:{heading:(n,e)=>new g(n,e)},css:D,async run(n){return M(n)},dispose(){c()}}}export{W as createFeature,z as isIconGlyph,S as titleOf};