@panphora/clayjs 1.17.0 → 1.18.1

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-26C55578.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 Fe,c as N}from"../c-VHM5XQHK.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{a as B,b as De}from"../c-Q7NQD65V.js";import{K as Pe,L as Ce,f as le,k as ce,l as ue,m as he,n as be,o as me,p as fe,t as ke,v as Ae}from"../c-3H6BZDNJ.js";import"../c-4DFEJ2PO.js";import"../c-6CRUUXOX.js";import{d as se,f as de}from"../c-336SGU5W.js";import{b as Se}from"../c-HDDEEL77.js";import{d as ge}from"../c-6KEVEQ7L.js";import{A as T,G as ze,b as pe,c as ne,d as ie,e as V,j as ve,n as xe,u as we,x as ye,y as Ee}from"../c-5J4E7O4Y.js";import{F as ee,I as ae,M as te,O as re,R as oe,a as Z,b as k,d as E,e as S,f as M,g as P,h as Y,i as J,m as b,v as Q}from"../c-WWXIDH4O.js";import{a as j,b as Me,c as L}from"../c-U62OB4BT.js";import{a as Be}from"../c-BYTKL6UX.js";import"../c-4L3BTFRK.js";import"../c-5V3MOVJT.js";import{b as R}from"../c-GY422N3Q.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-ZWIOJGMT.js";import"../c-IJUK2GPW.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{Decoration:Te,DecorationSet:qe}=E,Xe="Type / for blocks",Ge="Untitled";function Ze(e){let a=!1,t=null;return e.forEach((r,o)=>{a||r.type!==b.nodes.heading||r.attrs.level!==1||(r.attrs.parent??null)!==null||(a=!0,r.content.size||(t=Te.node(o,o+r.nodeSize,{class:"page-title-placeholder","data-placeholder":Ge})))}),t}function Le(e=Xe){return new k.Plugin({props:{decorations(a){let t=[],r=Ze(a.doc);r&&t.push(r);let{selection:o}=a;if(o.empty){let p=o.$from;if(p.depth===1){let n=p.parent;if(n.type===b.nodes.paragraph&&!n.content.size){let g=p.before(1);t.push(Te.node(g,g+n.nodeSize,{class:"page-placeholder","data-placeholder":e}))}}}return t.length?qe.create(a.doc,t):null}}})}var{Plugin:Oe}=k,{Decoration:Ye,DecorationSet:Je}=E;function H(e,a){let t=null;return e.state.doc.forEach((r,o)=>{r.attrs.id===a&&r.type===b.nodes.list_item&&r.attrs.kind==="check"&&(t={node:r,pos:o})}),t}function _(e,a,t,r){let o=H(e,a);o&&e.dispatch(T(e.state.tr.setNodeMarkup(o.pos,null,{...o.node.attrs,[t]:r||null})))}function U(e,a,t,r){let o=e.createElement("button");return o.type="button",o.className="page-check-chip",o.dataset.check=r,o.textContent=a,o.setAttribute("aria-label",t),o}function Qe(e,a,t){let r=t.ownerDocument,o=H(e,a)?.node.attrs.owner||"",p=r.createElement("span");p.className="page-check-popup page-check-owner",p.contentEditable="false";let n=B(r,"span","page-board-owners"),g=B(r,"span","page-board-people",{role:"group","aria-label":"Owner"}),c=B(r,"input","page-board-owner-input",{type:"text","aria-label":"Owner name",placeholder:"Or type a name\u2026"});c.value=o;let v=d=>_(e,a,"owner",d),m=(d,f,l,i)=>{let u=B(r,"button",`page-board-person${d?"":" is-none"}`,{type:"button","aria-pressed":String(i),"data-check":l});return d?u.append(De(r,d),B(r,"span",null,{},d)):u.textContent=f,u.addEventListener("click",()=>v(d)),u},w=d=>{let f=c.value.trim().toLowerCase(),l=(d||[]).filter(i=>!f||f===o.toLowerCase()||i.name.toLowerCase().includes(f));g.replaceChildren(...l.map(i=>m(i.name,i.name,"owner-option",i.name===o)),m(null,"No owner","clear-owner",!o))};c.addEventListener("keydown",d=>{d.key==="Enter"&&(d.preventDefault(),v(c.value.trim())),d.key==="Escape"&&(d.preventDefault(),p.remove(),t.focus()),d.stopPropagation()}),n.append(g,c),p.append(n),t.after(p),c.focus();let x=[];w(x),c.addEventListener("input",()=>w(x));let z=globalThis.clay?.people?.available;z&&Promise.resolve().then(()=>z()).then(d=>{p.isConnected&&(x=d||[],w(x))}).catch(()=>{})}function ea(e,a,t){let r=t.ownerDocument,o=r.createElement("span");o.className="page-check-popup",o.contentEditable="false";let p=r.createElement("input");p.type="date",p.setAttribute("aria-label","Due date"),p.value=H(e,a)?.node.attrs.due||"",p.addEventListener("change",()=>_(e,a,"due",p.value)),p.addEventListener("keydown",g=>g.stopPropagation());let n=U(r,"Clear","Clear due date","clear-date");n.addEventListener("click",()=>_(e,a,"due",null)),o.append(p,n),t.after(o),p.focus()}function aa(e,a){let t=e.dom.ownerDocument,r=t.createElement("span");r.className="page-check-controls",r.contentEditable="false",r.dataset.empty=String(!a.attrs.owner&&!a.attrs.due);let o=U(t,a.attrs.owner||"Assign",a.attrs.owner?`Owner: ${a.attrs.owner}`:"Assign owner","owner"),p=a.attrs.due?new Date(`${a.attrs.due}T00:00:00Z`).toLocaleDateString("en-US",{month:"short",day:"numeric",timeZone:"UTC"}):"Date",n=U(t,p,a.attrs.due?`Due ${p}`:"Set due date","date");return o.addEventListener("click",()=>Qe(e,a.attrs.id,o)),n.addEventListener("click",()=>ea(e,a.attrs.id,n)),r.append(o,n),r}function ta(e,a){let t=e.state.selection.$head;if(t.depth!==1||t.parent.type!==b.nodes.list_item||t.parent.attrs.kind!=="check")return!1;let r=t.parent.attrs.id,p=[...e.dom.querySelectorAll(".page-check-controls")].find(n=>n.dataset.item===r)?.querySelector(`[data-check="${a}"]`);return p?(p.focus(),!0):!1}var $e=new Oe({props:{handleKeyDown(e,a){if(!(a.metaKey||a.ctrlKey)||!a.shiftKey||a.altKey)return!1;let t=a.key.toLowerCase()==="o"?"owner":a.key.toLowerCase()==="d"?"date":null;return t?ta(e,t):!1}}});function Ke(){return new Oe({props:{decorations(e){let a=[];return e.doc.forEach((t,r)=>{t.type!==b.nodes.list_item||t.attrs.kind!=="check"||a.push(Ye.widget(r+t.nodeSize-1,o=>{let p=aa(o,t);return p.dataset.item=t.attrs.id,p},{key:`${t.attrs.id}:${t.attrs.owner}:${t.attrs.due}`,side:1,stopEvent:()=>!0,ignoreSelection:!0}))}),Je.create(e.doc,a)}}})}var Ie="page-editor-style",ra=[1,2,3,4,5,6,7,8],oa=`
1
+ import{a as se,c as L}from"../c-BIJALSRD.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as he}from"../c-VJYEVRYK.js";import{P as Pe,Q as Ce,f as te,j as ge,k as de,l as le,m as ce,o as ue,r as be,t as fe,y as me}from"../c-4TXNLX4K.js";import"../c-EXKHPOVC.js";import"../c-L5VFATT6.js";import{n as oe}from"../c-MWXFLW4J.js";import"../c-ZK4GIZH2.js";import{a as pe,b as ie,d as ne}from"../c-W4JCVLAB.js";import"../c-7K4SCQB7.js";import"../c-WMRJKQ2V.js";import{A as ze,B as Ee,H as Ae,b as ae,c as re,f as R,k as ve,o as ke,w as we,z as ye}from"../c-AMU3BPPR.js";import{G as Y,J,N as Q,P as Z,S as ee,a as W,b as u,d as v,e as B,f as D,g as w,h as U,i as X,m as b,w as G}from"../c-QIXT3Q7C.js";import{a as q,c as Be,d as F}from"../c-VILENZTD.js";import{a as xe}from"../c-BYTKL6UX.js";import"../c-WCXLG3MV.js";import"../c-57XDY6HC.js";import{b as I}from"../c-GY422N3Q.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-ZWIOJGMT.js";import"../c-IJUK2GPW.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{Decoration:V,DecorationSet:qe}=v,Ve="Type / for blocks",$e="Untitled",He="To do";function _e(e){let a=!1,r=null;return e.forEach((o,t)=>{a||o.type!==b.nodes.heading||o.attrs.level!==1||(o.attrs.parent??null)!==null||(a=!0,o.content.size||(r=V.node(t,t+o.nodeSize,{class:"page-title-placeholder","data-placeholder":$e})))}),r}function Ne(e){let a=[];return e.forEach((r,o)=>{r.type!==b.nodes.list_item||r.attrs.kind!=="check"||r.content.size||r.attrs.checked||a.push(V.node(o,o+r.nodeSize,{class:"page-check-placeholder","data-placeholder":He}))}),a}function Se(e=Ve){return new u.Plugin({props:{decorations(a){let r=Ne(a.doc),o=_e(a.doc);o&&r.push(o);let{selection:t}=a;if(t.empty){let p=t.$from;if(p.depth===1){let n=p.parent;if(n.type===b.nodes.paragraph&&!n.content.size){let d=p.before(1);r.push(V.node(d,d+n.nodeSize,{class:"page-placeholder","data-placeholder":e}))}}}return r.length?qe.create(a.doc,r):null}}})}var De=new u.Plugin({props:{handleKeyDown(e,a){if(!(a.metaKey||a.ctrlKey)||!a.shiftKey||a.altKey)return!1;let r=a.key.toLowerCase()==="o"?"owner":a.key.toLowerCase()==="d"?"date":null;if(!r||e.dom.getAttribute(r==="owner"?"data-assignees":"data-dates")==="false")return!1;for(let o of pe.get(e)??[])if(o.focusControl?.(e,r))return!0;return!1}}});var Me="page-editor-style",We=[1,2,3,4,5,6,7,8],Ue=`
2
2
  --page-bg: #F7F6F2; --page-ink: #23221F; --page-ink-soft: #6B6862; --page-ink-faint: #9B968C;
3
3
  --page-rule: rgba(35, 34, 31, 0.10); --page-accent: #2F5E9E; --page-link: #164583; --page-selection: rgba(88, 120, 170, 0.20);
4
4
  --page-check-border: rgba(35, 34, 31, 0.35); --page-check-fill: #23221F; --page-check-ink: #F7F6F2;
@@ -15,7 +15,7 @@ import{a as Fe,c as N}from"../c-VHM5XQHK.js";import"../c-IW6GGOU2.js";import"../
15
15
  --page-pop-bg: #FBFAF7; --page-pop-ink: #23221F; --page-pop-muted: #6B6862; --page-pop-line: rgba(35, 34, 31, 0.10);
16
16
  --page-pop-shadow: 0 1px 2px rgba(35, 34, 31, 0.05), 0 8px 24px rgba(35, 34, 31, 0.08); --page-pop-hover: rgba(35, 34, 31, 0.06);
17
17
  --page-scrim: rgba(35, 34, 31, 0.12);
18
- --page-danger: #9E3B2F; --page-block-selected: rgba(88, 120, 170, 0.12);`,Ve=`
18
+ --page-danger: #9E3B2F; --page-block-selected: rgba(88, 120, 170, 0.12);`,Fe=`
19
19
  --page-bg: #1A1A18; --page-ink: #E7E4DC; --page-ink-soft: #A3A098; --page-ink-faint: #75726B;
20
20
  --page-rule: rgba(231, 228, 220, 0.10); --page-accent: #8DB0E6; --page-link: #8DB0E6; --page-selection: rgba(120, 155, 210, 0.28);
21
21
  --page-check-border: rgba(231, 228, 220, 0.35); --page-check-fill: #E7E4DC; --page-check-ink: #1A1A18;
@@ -33,9 +33,9 @@ import{a as Fe,c as N}from"../c-VHM5XQHK.js";import"../c-IW6GGOU2.js";import"../
33
33
  --page-pop-shadow: 0 1px 2px rgba(10, 10, 9, 0.3), 0 10px 28px rgba(10, 10, 9, 0.35); --page-pop-hover: rgba(231, 228, 220, 0.07);
34
34
  --page-scrim: rgba(10, 10, 9, 0.35);
35
35
  --page-danger: #E08A7A; --page-block-selected: rgba(120, 155, 210, 0.18);
36
- --chart-1: #8DB0E6; --chart-2: #D9A0C8; --chart-3: #A9C98B; --chart-4: #BBA6E6; --chart-5: #E0B47A; --chart-6: #A3A098;`,pa=`
36
+ --chart-1: #8DB0E6; --chart-2: #D9A0C8; --chart-3: #A9C98B; --chart-4: #BBA6E6; --chart-5: #E0B47A; --chart-6: #A3A098;`,Xe=`
37
37
  @layer page {
38
- :where(article[data-page], .page-shell) {${oa}
38
+ :where(article[data-page], .page-shell) {${Ue}
39
39
  --chart-1: #2F5E9E; --chart-2: #164583; --chart-3: #5B5953; --chart-4: #8A3B6E; --chart-5: #3E6A28; --chart-6: #8A5A1E;
40
40
  --page-ink-strong: var(--page-ink); --page-caret: var(--page-accent);
41
41
  --page-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --page-font-display: var(--page-font); --page-font-heading: var(--page-font);
@@ -49,8 +49,8 @@ import{a as Fe,c as N}from"../c-VHM5XQHK.js";import"../c-IW6GGOU2.js";import"../
49
49
  --page-chrome-shadow-rest: none; --page-chrome-shadow-moved: none; --page-chrome-radius: 7px; --page-plus-size: 24px; --page-fade: 240ms;
50
50
  --page-pop-radius: 10px; --page-bar-bg: var(--page-pop-bg); --page-bar-ink: var(--page-pop-ink);
51
51
  }
52
- @media (prefers-color-scheme: dark) { :where(:root:not([data-theme="light"]) :is(article[data-page], .page-shell)) {${Ve} } }
53
- :where(:root[data-theme="dark"] :is(article[data-page], .page-shell)) {${Ve} }
52
+ @media (prefers-color-scheme: dark) { :where(:root:not([data-theme="light"]) :is(article[data-page], .page-shell)) {${Fe} } }
53
+ :where(:root[data-theme="dark"] :is(article[data-page], .page-shell)) {${Fe} }
54
54
 
55
55
  .page-shell { position: relative; background: var(--page-bg); color: var(--page-ink); font-family: var(--page-font); font-size: var(--page-font-size); line-height: var(--page-line-height); padding: 0 16px; }
56
56
  .page-editor { max-width: var(--page-measure); margin: 0 auto; padding: var(--page-pad-top) 0 30vh; outline: none; white-space: pre-wrap; overflow-wrap: break-word; caret-color: var(--page-caret); }
@@ -76,7 +76,7 @@ import{a as Fe,c as N}from"../c-VHM5XQHK.js";import"../c-IW6GGOU2.js";import"../
76
76
  :where(article[data-page], .page-editor) hr { border: 0; border-top: 1px solid var(--page-rule); margin-block: 1.2em; }
77
77
  :where(article[data-page], .page-editor) .page-hidden { display: none; }
78
78
  :where(article[data-page], .page-editor) .page-li { position: relative; --li-indent: 0; padding-inline-start: calc((var(--li-indent) + 1) * var(--page-indent)); }
79
- ${ra.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}"] { --li-indent: ${e}; }`).join(`
79
+ ${We.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}"] { --li-indent: ${e}; }`).join(`
80
80
  `)}
81
81
  :where(article[data-page], .page-editor) .page-li::before { position: absolute; inset-inline-start: calc(var(--li-indent) * var(--page-indent)); width: var(--page-indent); text-align: center; color: var(--page-marker); content: "\\2022"; }
82
82
  :where(article[data-page], .page-editor) .page-li[data-kind="bullet"]::before { content: ""; box-sizing: border-box; width: var(--page-bullet-size); height: var(--page-bullet-size); top: calc((1em * var(--page-line-height) - var(--page-bullet-size)) / 2); inset-inline-start: calc(var(--li-indent) * var(--page-indent) + (var(--page-indent) - var(--page-bullet-size)) / 2); border-radius: 50%; background: currentColor; }
@@ -100,8 +100,8 @@ ${ra.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}
100
100
  .page-tool { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 6px; border: 0; border-radius: 5px; background: none; color: inherit; font: 500 13px/1 var(--page-font); cursor: pointer; }
101
101
  .page-tool:hover, .page-tool[aria-pressed="true"] { background: var(--page-pop-hover); }
102
102
  .page-tool-turn { gap: 4px; padding: 0 8px; }
103
- /* The phone's fourth control: everything the narrow bar folds away. */
104
- .page-tool-more { display: none; }
103
+ /* The phone's fourth control folds away everything the narrow bar hides; on a desktop it
104
+ holds what has no button of its own (colors, icon and cover, the exports). */
105
105
  .page-tool-sep { width: 1px; height: 16px; margin: 0 3px; background: currentColor; opacity: 0.5; }
106
106
  .page-safe-probe { position: fixed; left: 0; bottom: 0; width: 0; height: 0; padding-bottom: env(safe-area-inset-bottom); visibility: hidden; pointer-events: none; }
107
107
  .page-plus { position: absolute; z-index: 2; top: calc(var(--page-plus-top, 0px) - var(--page-plus-size) / 2); left: calc(var(--page-plus-left, 0px) - var(--page-plus-size) - 12px); width: var(--page-plus-size); height: var(--page-plus-size); display: grid; place-items: center; padding: 0; cursor: pointer; }
@@ -111,10 +111,23 @@ ${ra.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}
111
111
  .page-bubble, .page-menu { position: absolute; z-index: 4; background: var(--page-pop-bg); color: var(--page-pop-ink); border: 1px solid var(--page-pop-line); box-shadow: var(--page-pop-shadow); border-radius: var(--page-pop-radius); }
112
112
  .page-bubble { display: flex; gap: 1px; padding: 3px; left: var(--page-pop-x, 0px); top: var(--page-pop-y, 0px); transform: translate(-50%, calc(-100% - 8px)); }
113
113
  .page-menu { left: var(--page-pop-x, 0px); top: var(--page-pop-y, 0px); width: 260px; max-height: 340px; overflow-y: auto; padding: 6px; font-size: 14px; }
114
+ .page-settings { position: absolute; z-index: 4; box-sizing: border-box; left: var(--page-pop-x, 0px); top: var(--page-pop-y, 0px); width: min(264px, calc(100vw - 28px)); padding: 9px 11px; background: var(--page-pop-bg); color: var(--page-pop-ink); border: 1px solid var(--page-pop-line); border-radius: var(--page-pop-radius); box-shadow: var(--page-pop-shadow); font-size: 13px; }
115
+ .page-settings-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 6px; margin-bottom: 2px; border-bottom: 1px solid var(--page-pop-line); }
116
+ .page-settings-title { font-size: 12.5px; font-weight: 600; color: var(--page-pop-ink); }
117
+ .page-settings-close { display: inline-grid; place-content: center; width: 20px; height: 20px; padding: 0; border: 1px solid transparent; border-radius: 5px; background: none; color: var(--page-pop-muted); cursor: pointer; }
118
+ .page-settings-close:hover { background: var(--page-pop-hover); color: var(--page-pop-ink); }
119
+ .page-settings-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; }
120
+ .page-settings-name { min-width: 0; font-weight: 500; line-height: 1.3; }
121
+ .page-settings-switch { position: relative; flex: 0 0 30px; box-sizing: border-box; width: 30px; height: 18px; padding: 0; border: 0; border-radius: 9px; background: var(--page-chrome-line-moved); cursor: pointer; transition: background-color var(--page-fade); }
122
+ .page-settings-switch[aria-checked="true"] { background: var(--page-accent); }
123
+ .page-settings-knob { position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--page-pop-bg); transition: transform var(--page-fade); }
124
+ .page-settings-switch[aria-checked="true"] .page-settings-knob { transform: translateX(12px); }
125
+ .page-settings-note { margin: 4px 0 2px; color: var(--page-pop-muted); font-size: 11px; line-height: 1.4; }
114
126
  .page-menu-title { padding: 4px 10px 6px; color: var(--page-pop-muted); font-size: 12px; }
115
127
  .page-menu-item { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 34px; padding: 4px 10px; border: 0; border-radius: 7px; background: none; color: inherit; font: inherit; text-align: start; cursor: pointer; }
116
128
  .page-menu-item[aria-selected="true"], .page-menu-item.is-active, .page-menu-item:hover { background: var(--page-pop-hover); }
117
129
  .page-menu-icon { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--page-pop-line); border-radius: 6px; color: var(--page-pop-muted); font-size: 12px; flex: none; }
130
+ .page-menu-icon svg { display: block; }
118
131
  .page-menu-hint { margin-inline-start: auto; color: var(--page-pop-muted); font-size: 12px; }
119
132
  .page-menu-text { display: flex; flex-direction: column; min-width: 0; }
120
133
  .page-menu-desc { color: var(--page-pop-muted); font-size: 12px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@@ -138,11 +151,48 @@ ${ra.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}
138
151
  .page-editor .page-title-placeholder::before { content: attr(data-placeholder); float: left; height: 0; color: var(--page-ink-faint); pointer-events: none; }
139
152
  .page-csv-error { margin: 8px 0; color: var(--page-danger); font-size: 14px; }
140
153
  .page-editor .page-table { max-width: 100%; min-width: 0; border: 1px solid var(--page-rule); border-radius: 8px; }
141
- .page-editor .page-chart { position: relative; max-width: 100%; min-width: 0; margin-inline: 0; color: var(--page-ink); }
154
+ .page-editor .page-chart { position: relative; max-width: 100%; min-width: 0; margin-inline: 0; border: 1px solid var(--page-rule); border-radius: var(--page-chrome-radius); color: var(--page-ink); }
142
155
  .page-chart-plot svg { display: block; width: 100%; height: auto; color: var(--chart-text, var(--page-ink-soft)); font: 12px var(--page-font); }
143
- .page-chart figcaption { color: var(--page-ink-soft); font-size: 0.88em; text-align: center; }
144
- .page-chart-settings { display: block; margin: 8px auto 0; padding: 4px 10px; border: 1px solid var(--page-rule); border-radius: 6px; background: var(--page-pop-bg); color: var(--page-ink); font: inherit; cursor: pointer; }
145
- .page-chart-title-input { display: block; width: min(100%, 24em); box-sizing: border-box; margin: 6px auto; padding: 4px 8px; border: 1px solid var(--page-rule); border-radius: 6px; background: var(--page-pop-bg); color: var(--page-ink); font: inherit; }
156
+ .page-chart-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--page-rule); }
157
+ .page-chart-title { min-width: 0; margin-inline-end: auto; font-size: 14px; font-weight: 600; line-height: 1.3; }
158
+ .page-chart-title.is-empty { color: var(--page-ink-faint); font-weight: 500; }
159
+ .page-chart-source { display: inline-flex; align-items: center; gap: 5px; box-sizing: border-box; height: 22px; padding: 0 7px; border: 1px solid var(--page-pop-line); border-radius: var(--page-chrome-radius); background: var(--page-pop-bg); color: var(--page-pop-muted); font: inherit; font-size: 11.5px; cursor: pointer; }
160
+ .page-chart-source:hover { color: var(--page-ink); border-color: var(--page-chrome-line-moved); }
161
+ .page-chart-source svg, .page-chart-edit svg, .page-chart-remove svg { flex: none; }
162
+ .page-chart-edit { display: inline-flex; align-items: center; gap: 6px; box-sizing: border-box; height: 28px; padding: 0 10px; border: 1px solid var(--page-rule); border-radius: var(--page-chrome-radius); background: none; color: var(--page-ink); font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; }
163
+ .page-chart-edit:hover, .page-chart-edit[aria-expanded="true"] { background: var(--page-pop-hover); }
164
+ .page-chart-panel { position: absolute; z-index: 5; top: 46px; inset-inline-end: 10px; box-sizing: border-box; width: 304px; padding: 12px; border: 1px solid var(--page-pop-line); border-radius: var(--page-pop-radius); background: var(--page-pop-bg); box-shadow: var(--page-pop-shadow); color: var(--page-pop-ink); font-family: var(--page-font); font-size: 13px; text-align: start; }
165
+ .page-chart-panel:focus { outline: none; }
166
+ .page-chart-row { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
167
+ .page-chart-row:last-child { margin-bottom: 0; }
168
+ .page-chart-label { color: var(--page-pop-muted); font-size: 12px; font-weight: 500; }
169
+ .page-chart-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
170
+ .page-chart-type, .page-chart-remove, .page-chart-done { display: inline-flex; align-items: center; justify-content: center; gap: 6px; box-sizing: border-box; height: 28px; padding: 0 10px; border: 1px solid var(--page-pop-line); border-radius: var(--page-chrome-radius); background: none; color: var(--page-pop-ink); font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; }
171
+ .page-chart-type:hover, .page-chart-remove:hover, .page-chart-done:hover { background: var(--page-pop-hover); }
172
+ .page-chart-type[aria-pressed="true"] { border-color: var(--page-chrome-line-moved); background: var(--page-pop-hover); font-weight: 600; }
173
+ .page-chart-select, .page-chart-title-input { box-sizing: border-box; width: 100%; height: 28px; padding: 0 8px; border: 1px solid var(--page-pop-line); border-radius: var(--page-chrome-radius); background: var(--page-pop-bg); color: var(--page-pop-ink); font: inherit; font-size: 12.5px; }
174
+ .page-chart-values { display: flex; flex-direction: column; gap: 1px; padding: 5px 6px; border: 1px solid var(--page-pop-line); border-radius: var(--page-chrome-radius); }
175
+ .page-chart-value { display: flex; align-items: center; gap: 7px; padding: 2px 4px; font-size: 12.5px; cursor: pointer; }
176
+ .page-chart-value:hover { background: var(--page-pop-hover); }
177
+ .page-chart-value input { margin: 0; accent-color: var(--page-accent); }
178
+ .page-chart-swatch { flex: none; width: 10px; height: 10px; border-radius: 2px; }
179
+ .page-chart-hint { color: var(--page-pop-muted); font-size: 11px; line-height: 1.4; }
180
+ .page-chart-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--page-pop-line); }
181
+ .page-chart-remove { color: var(--page-danger); }
182
+ .page-chart-broken { box-sizing: border-box; padding: 16px; border: 1px solid var(--page-pop-line); border-radius: var(--page-chrome-radius); background: var(--page-pop-hover); font-family: var(--page-font); text-align: start; }
183
+ .page-chart-broken[hidden] { display: none; }
184
+ .page-chart-plot[hidden] { display: none; }
185
+ .page-chart-broken-head { margin-bottom: 4px; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
186
+ .page-chart-broken-text { margin: 0 0 12px; color: var(--page-pop-muted); font-size: 12.5px; line-height: 1.45; }
187
+ .page-chart-broken-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
188
+ .page-chart-use, .page-chart-delete { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; height: 28px; padding: 0 10px; border: 1px solid var(--page-pop-line); border-radius: var(--page-chrome-radius); background: var(--page-pop-bg); color: var(--page-pop-ink); font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; }
189
+ .page-chart-use:hover, .page-chart-delete:hover { background: var(--page-pop-bg); border-color: var(--page-chrome-line-moved); }
190
+ .page-chart-delete { color: var(--page-danger); }
191
+ .page-chart-broken-actions .page-chart-select { width: auto; min-width: 0; flex: 1 1 140px; }
192
+ @media (max-width: 560px) {
193
+ .page-chart-panel { position: static; inset-inline-end: auto; width: auto; border: 0; border-top: 1px solid var(--page-pop-line); border-radius: 0; box-shadow: none; }
194
+ .page-chart-use, .page-chart-delete, .page-chart-broken-actions .page-chart-select { height: 44px; }
195
+ }
146
196
  .page-table-scroll { max-width: 100%; overflow-x: auto; }
147
197
  .page-table table { border-collapse: collapse; min-width: max-content; width: 100%; table-layout: auto; }
148
198
  .page-table th, .page-table td { min-width: 120px; padding: 6px 10px; border-inline-end: 1px solid var(--page-rule); border-block-end: 1px solid var(--page-rule); text-align: start; white-space: pre-wrap; }
@@ -150,16 +200,62 @@ ${ra.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}
150
200
  .page-table th[data-kind="number"], .page-table td[data-kind="number"] { text-align: end; }
151
201
  .page-table th[aria-sort="ascending"] button::after { content: " \u2191"; }
152
202
  .page-table th[aria-sort="descending"] button::after { content: " \u2193"; }
153
- .page-table th button, .page-table-row-menu, .page-check-chip { border: 0; border-radius: 5px; background: none; color: inherit; font: inherit; cursor: pointer; }
154
- .page-table th button:hover, .page-table-row-menu:hover, .page-check-chip:hover { background: var(--page-pop-hover); }
155
- .page-table-row-menu { opacity: 0; font-size: 12px; color: var(--page-ink-soft); }
203
+ .page-table th button, .page-table-row-menu { border: 0; border-radius: 5px; background: none; color: inherit; font: inherit; cursor: pointer; }
204
+ .page-table th button:hover, .page-table-row-menu:hover { background: var(--page-pop-hover); }
205
+ .page-editor td > span { display: block; }
206
+ .page-table-row-menu { float: inline-end; margin-inline-start: 4px; opacity: 0; font-size: 12px; color: var(--page-ink-soft); display: inline-grid; place-items: center; width: 22px; height: 22px; padding: 0; }
156
207
  .page-table tr:hover .page-table-row-menu, .page-table tr:focus-within .page-table-row-menu, .page-table-row-menu:focus-visible { opacity: 1; }
157
- .page-check-controls { display: inline-flex; gap: 4px; margin-inline-start: 8px; color: var(--page-ink-soft); font-size: 0.78em; text-decoration: none; }
158
- .page-check-controls[data-empty="true"] { opacity: 0; }
159
- .page-li:hover .page-check-controls, .page-li:focus-within .page-check-controls { opacity: 1; }
208
+ /* The tags float to the end of the item's first line, so long text wraps beside and
209
+ below them without the text's own marks being pulled apart. The item's whole line
210
+ stays the click target for an empty item, which has no text of its own. */
211
+ .page-li.page-check-placeholder::after { content: attr(data-placeholder); position: absolute; inset-inline-start: calc((var(--li-indent) + 1) * var(--page-indent)); color: var(--page-ink-faint); pointer-events: none; }
212
+ .page-check-controls { display: inline-flex; float: inline-end; flex-wrap: wrap; align-items: center; gap: 5px; margin-inline-start: 10px; text-decoration: none; }
213
+ .page-check-chip { display: inline-flex; align-items: center; gap: 4px; box-sizing: border-box; height: 23px; padding: 0 7px; border: 1px solid var(--page-rule); border-radius: var(--page-check-radius); background: transparent; color: var(--page-ink-soft); font: 400 12px/1 var(--page-font); white-space: nowrap; cursor: pointer; }
214
+ .page-check-chip svg { flex: none; }
215
+ .page-check-chip:hover { background: var(--page-pop-hover); }
216
+ .page-check-chip[data-filled="true"] { border-color: transparent; background: var(--page-chrome-bg-moved); color: var(--page-ink); font-weight: 500; }
217
+ .page-check-chip[data-overdue="true"] { border-color: var(--page-danger); color: var(--page-danger); }
218
+ .page-li[data-checked="true"] .page-check-controls { opacity: 0.62; }
219
+ [data-assignees="false"] .page-check-chip[data-check="owner"], [data-dates="false"] .page-check-chip[data-check="date"] { display: none; }
220
+ [data-assignees="false"][data-dates="false"] .page-check-controls { display: none; }
160
221
  .page-check-popup { display: inline-flex; gap: 4px; padding: 4px; background: var(--page-pop-bg); color: var(--page-pop-ink); border: 1px solid var(--page-pop-line); border-radius: var(--page-pop-radius); box-shadow: var(--page-pop-shadow); }
161
222
  .page-check-popup input { font: inherit; color: inherit; background: var(--page-pop-bg); border: 1px solid var(--page-pop-line); }
162
- .page-check-popup.page-check-owner { display: inline-block; width: min(280px, 80vw); padding: 8px 0; vertical-align: top; }
223
+ .page-check-popup.page-check-owner, .page-check-popup.page-check-date { position: absolute; z-index: 5; display: block; box-sizing: border-box; width: min(264px, calc(100vw - 28px)); padding: 8px; background: var(--page-pop-bg); color: var(--page-pop-ink); border: 1px solid var(--page-pop-line); border-radius: var(--page-pop-radius); box-shadow: var(--page-pop-shadow); font-family: var(--page-font); }
224
+ .page-check-search { box-sizing: border-box; width: 100%; height: 28px; padding: 0 8px; border: 1px solid var(--page-pop-line); border-radius: 7px; background: var(--page-pop-bg); color: var(--page-pop-ink); font: inherit; font-size: 12.5px; }
225
+ .page-check-search::placeholder { color: var(--page-ink-faint); }
226
+ .page-check-subhead { padding: 7px 4px 4px; color: var(--page-pop-muted); font-size: 11.5px; font-weight: 500; }
227
+ .page-check-people { display: flex; flex-direction: column; gap: 1px; }
228
+ .page-check-person { display: flex; align-items: center; gap: 7px; width: 100%; padding: 5px 6px; border: 0; background: none; color: var(--page-pop-ink); font: inherit; font-size: 12.5px; text-align: start; cursor: pointer; }
229
+ .page-check-person:hover { background: var(--page-pop-hover); }
230
+ .page-check-person[aria-pressed="true"] { font-weight: 500; }
231
+ .page-check-person .page-board-face { flex: 0 0 18px; width: 18px; height: 18px; }
232
+ .page-check-person-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
233
+ .page-check-person-meta { margin-inline-start: auto; color: var(--page-pop-muted); font-size: 11px; }
234
+ .page-check-person svg { flex: none; }
235
+ .page-check-divider { height: 1px; margin: 6px 0; background: var(--page-pop-line); }
236
+ .page-check-danger { color: var(--page-danger); }
237
+ .page-check-danger:hover { background: var(--page-pop-hover); }
238
+ .page-check-danger[disabled] { opacity: 0.45; background: none; cursor: default; }
239
+ .page-check-quick { display: flex; flex-direction: column; gap: 1px; }
240
+ .page-check-quick-row { display: flex; align-items: center; gap: 7px; width: 100%; padding: 5px 6px; border: 0; background: none; color: var(--page-pop-ink); font: inherit; font-size: 12.5px; text-align: start; cursor: pointer; }
241
+ .page-check-quick-row:hover { background: var(--page-pop-hover); }
242
+ .page-check-quick-row svg { flex: none; }
243
+ .page-check-quick-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
244
+ .page-check-quick-meta { margin-inline-start: auto; color: var(--page-pop-muted); font-family: var(--page-font-mono); font-size: 11px; font-variant-numeric: tabular-nums; }
245
+ .page-check-cal { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--page-pop-line); }
246
+ .page-check-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 5px; padding: 0 2px; }
247
+ .page-check-cal-month { color: var(--page-pop-ink); font-size: 12px; font-weight: 600; }
248
+ .page-check-cal-year { font-family: var(--page-font-mono); font-size: 11.5px; font-variant-numeric: tabular-nums; }
249
+ .page-check-cal-nav { display: inline-flex; gap: 3px; }
250
+ .page-check-cal-btn { display: inline-grid; place-content: center; width: 22px; height: 22px; padding: 0; border: 1px solid var(--page-pop-line); border-radius: var(--page-check-radius); background: none; color: var(--page-pop-ink); cursor: pointer; }
251
+ .page-check-cal-btn:hover { background: var(--page-pop-hover); }
252
+ .page-check-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
253
+ .page-check-cal-dow { padding: 2px 0; color: var(--page-pop-muted); font-size: 10.5px; font-weight: 500; }
254
+ .page-check-cal-day { height: 28px; padding: 0; border: 1px solid transparent; border-radius: var(--page-check-radius); background: transparent; color: var(--page-pop-ink); font-family: var(--page-font-mono); font-size: 11.5px; font-variant-numeric: tabular-nums; cursor: pointer; }
255
+ .page-check-cal-day:hover { background: var(--page-pop-hover); }
256
+ .page-check-cal-day[data-outside="true"] { opacity: 0.5; }
257
+ .page-check-cal-day[data-today="true"] { border-color: var(--page-accent); font-weight: 500; }
258
+ .page-check-cal-day[aria-pressed="true"] { background: var(--page-chrome-bg-moved); font-weight: 500; }
163
259
  .page-board-owners { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding-inline: 8px; }
164
260
  .page-board-people { display: flex; flex-wrap: wrap; gap: 4px; }
165
261
  .page-board-person { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px 0 4px; border: 1px solid var(--page-rule); border-radius: 14px; background: var(--page-pop-bg); color: var(--page-pop-ink); font: inherit; font-size: 13px; cursor: pointer; transition: background-color var(--page-fade), border-color var(--page-fade); }
@@ -185,6 +281,7 @@ ${ra.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}
185
281
  .page-bubble { display: none; }
186
282
  .page-scrim { display: block; position: fixed; inset: 0; z-index: 4; background: var(--page-scrim); }
187
283
  .page-menu { position: fixed; left: 0; top: 0; width: var(--page-pop-width, min(280px, calc(100vw - 16px))); max-height: min(70vh, var(--page-pop-max, 70vh)); overflow-y: auto; transform: translate(var(--page-pop-x, 0px), var(--page-pop-y, 0px)); z-index: 5; }
284
+ .page-settings { position: fixed; left: 0; top: 0; transform: translate(var(--page-pop-x, 0px), var(--page-pop-y, 0px)); z-index: 5; }
188
285
  .page-menu-item { min-height: 48px; font-size: 16px; }
189
286
  .page-link { position: fixed; left: 0; right: 0; top: auto; bottom: 0; max-width: none; padding: 8px 16px calc(8px + env(safe-area-inset-bottom)); border-radius: 0; border-width: 1px 0 0; }
190
287
  .page-link-input { min-width: 0; height: 44px; font-size: 16px; }
@@ -192,11 +289,16 @@ ${ra.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}
192
289
  .page-image-frame { width: 100% !important; }
193
290
  .page-image-handle { display: none; }
194
291
  .page-table th button, .page-table-row-menu, .page-check-chip, .page-check-popup button, .page-menu-item { min-height: 44px; }
292
+ .page-check-person { min-height: 44px; }
293
+ .page-check-popup .page-check-quick-row { min-height: 44px; }
294
+ .page-check-popup .page-check-cal-day { height: 40px; min-height: 40px; }
195
295
  .page-board-owner-input { font-size: 16px; height: 44px; }
296
+ .page-check-search { font-size: 16px; height: 44px; }
297
+ .page-check-popup .page-check-cal-btn { width: 44px; height: 44px; }
196
298
  .page-board-person { height: 44px; border-radius: 22px; }
197
299
  }
198
300
  @media (prefers-reduced-motion: reduce) {
199
301
  .page-dock, .page-plus, .page-grip, .page-toggle-button, .page-image-handle, .page-upload-bar > span, .page-board-person { transition: none; }
200
302
  }
201
303
  }
202
- `,na=(e,a)=>(a&&a(e.tr.replaceSelectionWith(b.nodes.hard_break.create()).scrollIntoView()),!0),ia=(e,a,t)=>!a||!t?.editable||!Q(e,b.marks.underline)?!1:(import("../c-DFS4XZJV.js").then(({formatMark:r})=>r(t,"underline"),()=>null).then(r=>{r?.status!=="applied"&&!t.isDestroyed&&ie(t,r?.message??"That format isn\u2019t available here.")}),!0),ga=({history:e=!0,undo:a,redo:t}={})=>({"Mod-z":e?S.undo:()=>(a?.(),!0),"Shift-Mod-z":e?S.redo:()=>(t?.(),!0),"Mod-y":e?S.redo:()=>(t?.(),!0),"Shift-Enter":na,"Mod-b":P.toggleMark(b.marks.strong),"Mod-i":P.toggleMark(b.marks.em),"Mod-u":ia}),la=(e,a,t)=>ue(null,t)?!1:Y.undoInputRule(e,a&&(r=>a(T(r)))),sa={Backspace:P.chainCommands(la,me),"Mod-e":P.toggleMark(b.marks.code),"Mod-Shift-s":P.toggleMark(b.marks.strike)},da=(e,a)=>globalThis.clay?.upload?.(e,a)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),je=new WeakMap,O=new k.PluginKey("lazyViews"),W=class{constructor(a,t){this.node=a,this.type=a.type,this.registry=t;let{dom:r,contentDOM:o}=Z.DOMSerializer.renderSpec(document,a.type.spec.toDOM(a));this.dom=r,this.contentDOM=o??null}update(a){return a.type===this.type&&!this.registry.has(a.type.name)}};function ca(){return new k.Plugin({key:O,state:{init:()=>E.DecorationSet.empty,apply(e){let a=e.getMeta(O);if(!a)return E.DecorationSet.empty;let t=[];return e.doc.forEach((r,o)=>{a.types.includes(r.type.name)&&t.push(E.Decoration.node(o,o+r.nodeSize,{},{lazyView:t.length+1}))}),E.DecorationSet.create(e.doc,t)}},props:{decorations:e=>O.getState(e)}})}function ua({view:e,upload:a,toolHost:t,board:r=null,undo:o=null,redo:p=null,revise:n=null,highlight:g},c,v){let m=v.createFeature({view:e,upload:a,toolHost:t,board:r,undo:o,redo:p,revise:n,highlight:g}),w=je.get(e),x=()=>{if(m.css&&R(`page-feature-${c}`,m.css,`page-feature-${c}`,["editor-ui"]),!m.nodeViews)return;let d=Object.keys(m.nodeViews);for(let f of d)w.set(f,m.nodeViews[f]);e.dispatch(e.state.tr.setMeta(O,{types:d}).setMeta("addToHistory",!1))},z=()=>{e.isDestroyed||(e.composing?setTimeout(z,25):x())};return e.composing?e.dom.addEventListener("compositionend",()=>setTimeout(z,25),{once:!0}):x(),m}function ha(e){return new k.Plugin({view(a){let t=new Set,r=()=>{for(let p of t)e.has(p)&&t.delete(p);a.state.doc.forEach(p=>{let n=Me(p.type.name);!n||e.has(n)||t.has(n)||e.ensure(n).catch(()=>{t.add(n)})})},o=a.state.doc;return r(),{update(){a.state.doc!==o&&(o=a.state.doc,r())}}}})}function ba({load:e=()=>Promise.reject(new Error("page: this editor has no command module")),context:a=()=>({}),reportError:t}={}){let r=new Map,o=new Set,p=null,n=null,g=!0,c=!1,v=0,m=l=>{let i=r.get(l);return i||(i=Promise.resolve(e(l)),r.set(l,i),i.catch(()=>{r.get(l)===i&&r.delete(l)})),i},w=()=>(n??=N({load:m,install:(l,i)=>i.createFeature(a(p)),reportError:t??((l,i)=>console.error(`clayjs: the ${i} command failed to load`,l))}),n),x=()=>{let l=v,i=p.state.selection;return{revision:l,selection:i,valid:()=>g&&!c&&!p.isDestroyed&&v===l&&p.state.selection.eq(i)}};function z(l,i){l.doc!==i.doc&&(v+=1);for(let u of o)u.lease.valid()||(o.delete(u),u.controller.abort({ok:!1,code:"stale-target"}))}async function d(l,i){if(!g||c||!p||p.isDestroyed)return{ok:!1,code:"not-editing"};let u={lease:x(),controller:new AbortController};o.add(u);try{let A=await w().ensure(l,{signal:u.controller.signal});return A?u.lease.valid()?await A.run(i):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(A){return u.controller.signal.aborted?u.controller.signal.reason:{ok:!1,code:"unavailable",error:A}}finally{o.delete(u)}}function f(){if(g){g=!1;for(let l of o)l.controller.abort({ok:!1,code:"not-editing"});o.clear(),n?.dispose(),n=null}}return{attach(l){p=l},observe:z,run:d,enter(){c||(g=!0)},leave:f,dispose(){f(),c=!0,g=!1,r.clear()}}}var q=new WeakMap;function ma(e){return new k.Plugin({view:()=>({update:(a,t)=>e.observe(a.state,t)}),props:{handleTextInput(a,t,r,o){return o!=="@"||a.composing||!Object.hasOwn(L,"mentions")?!1:(a.dispatch(a.state.tr.insertText("@",t,r)),e.run("mentions",{from:t,to:t+1}),!0)}}})}function Qa(e,a,t){let r=e?q.get(e):null;return r?Object.hasOwn(L,a)?r.run(a,t):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function fa(e){return new k.Plugin({view(a){let t=e?()=>e.tablesChanged():()=>Be.get(a)?.tablesChanged?.(),r=a.state.doc;return{update(o){o.state.doc!==r&&(r=o.state.doc,t())}}}})}function ka({upload:e=da,highlight:a,history:t=!0,undo:r,redo:o,onAiTool:p=null,toolHost:n=null,features:g=null,commandHost:c=null}={}){return[ne(),ke({onAiTool:p}),c?ma(c):null,fe(),fa(n),pe(),Ae(),ze(),he(),be(),Le(),Fe(),M.keymap(sa),Pe,$e,M.keymap(Ee),M.keymap(ga({history:t,undo:r,redo:o})),M.keymap(P.baseKeymap),ve(),oe(),Ce(),de(),Ke(),le({upload:e}),we(),ge({upload:e,features:g}),Se(),ye(),ce(),t?S.history():null,J.gapCursor(),ca(),g?ha(g):null].filter(Boolean)}function va(e,a={}){let t=e&&Object.keys(e).length?e:{[ae()]:{t:"paragraph",pos:ee(),c:""}},r=a.doc??re(b,t);return k.EditorState.create({doc:r,plugins:ka(a)})}function et(e){!e||e.isDestroyed||e.updateState(e.state)}function at(e,a){if(!e||e.isDestroyed)return!1;let t=a===!0;e.setProps({editable:()=>t});let r=q.get(e);return t?r?.enter():r?.leave(),t}function xa(e,a){let t=a.target.closest?.('.page-li[data-kind="check"]');if(!t||!e.dom.contains(t))return!1;let r=t.getBoundingClientRect(),o=parseFloat(getComputedStyle(t).paddingInlineStart)||0,p=getComputedStyle(t).direction==="rtl"?r.right-a.clientX:a.clientX-r.left;if(p<0||p>o)return!1;let n=e.posAtDOM(t,0)-1,g=e.state.doc.nodeAt(n);return g?(a.preventDefault(),e.dispatch(e.state.tr.setNodeMarkup(n,null,{...g.attrs,checked:!g.attrs.checked})),!0):!1}function tt(e,{blocks:a=null,onChange:t=null,upload:r,highlight:o,doc:p,dispatch:n,history:g=!0,undo:c,redo:v,editable:m=!0,toolHost:w=null,onAiTool:x=null,reviseTool:z=null,board:d=null,features:f=null,formatGate:l=null}={}){let i=e.ownerDocument;R(Ie,pa,Ie,["editor-ui"]);let u=i.createElement("div");u.className="page-shell",u.setAttribute("clay","editor-ui"),u.setAttribute("sap-ignore",""),e.appendChild(u);let A=!1,h=null,$=f??N({load:s=>j[s].load(),install:(s,y)=>ua({view:h,upload:r,toolHost:w,board:d,undo:c,redo:v,revise:z,highlight:o},s,y)}),F=ba({load:s=>L[s].load(),context:s=>({view:s,upload:r})}),K=new Map,X={};for(let s of Object.values(j))for(let y of s.views??s.types)X[y]=(D,_e,Ue,He,We)=>{let G=K.get(D.type.name);return G?G(D,_e,Ue,He,We):new W(D,K)};h=new E.EditorView(u,{state:va(a,{upload:r,highlight:o,doc:p,history:g,undo:c,redo:v,onAiTool:x,toolHost:w,features:$,commandHost:F}),attributes:{class:"page-editor"},editable:()=>m,nodeViews:X,handleDOMEvents:{mousedown:xa,dragstart(s,y){let D=s.state.selection;return D instanceof k.NodeSelection||D instanceof xe?(y.preventDefault(),!0):!1}},dispatchTransaction(s){if(n){n(s);return}A&&s.docChanged&&!s.getMeta(V)&&S.closeHistory(s),s.docChanged&&(A=!!s.getMeta(V));let y=h.state.doc;h.updateState(h.state.apply(s)),t&&h.state.doc!==y&&t(te(h.state.doc))}}),je.set(h,K),se.set(h,$),F.attach(h),q.set(h,F);let Ne=h.destroy.bind(h),C=null,I=!1,Re=()=>(C||(C=Promise.resolve().then(()=>l()).catch(s=>{throw C=null,s})),C);return h.runFormatCommand=async s=>{if(I)return{status:"disposed",retry:!1};if(!l)return{status:"unsupported-host",code:"page-format-unsupported",retry:!1};let y=await Re();return I?(y.dispose?.(),{status:"disposed",retry:!1}):y.run({apply:s})},h.destroy=()=>{I=!0,C&&C.then(s=>s?.dispose?.(),()=>{}),F.dispose(),$.dispose(),Ne()},h}export{pa as PAGE_EDITOR_CSS,tt as createPageEditor,ua as installPageFeature,O as lazyViewsKey,ca as lazyViewsPlugin,ka as pagePlugins,va as pageState,et as refreshMountedView,Qa as runPageCommand,at as setEditorActive};
304
+ `,Ge=(e,a)=>(a&&a(e.tr.replaceSelectionWith(b.nodes.hard_break.create()).scrollIntoView()),!0),Ye=(e,a,r)=>!a||!r?.editable||!G(e,b.marks.underline)?!1:(import("../c-6UGWFMQC.js").then(({formatMark:o,refuse:t})=>o(r,"underline").then(p=>{p?.status!=="applied"&&t(r,p?.message??"That format isn\u2019t available here.")}),()=>null),!0),Je=({history:e=!0,undo:a,redo:r}={})=>({"Mod-z":e?B.undo:()=>(a?.(),!0),"Shift-Mod-z":e?B.redo:()=>(r?.(),!0),"Mod-y":e?B.redo:()=>(r?.(),!0),"Shift-Enter":Ge,"Mod-b":w.toggleMark(b.marks.strong),"Mod-i":w.toggleMark(b.marks.em),"Mod-u":Ye}),Qe=(e,a,r)=>ge(null,r)?!1:U.undoInputRule(e,a&&(o=>a(Ee(o)))),Ze={Backspace:w.chainCommands(Qe,ce),"Mod-e":w.toggleMark(b.marks.code),"Mod-Shift-s":w.toggleMark(b.marks.strike)},ea=(e,a)=>globalThis.clay?.upload?.(e,a)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Te=new WeakMap,T=new u.PluginKey("lazyViews"),$=class{constructor(a,r){this.node=a,this.type=a.type,this.registry=r;let{dom:o,contentDOM:t}=W.DOMSerializer.renderSpec(document,a.type.spec.toDOM(a));this.dom=o,this.contentDOM=t??null}update(a){return a.type===this.type&&!this.registry.has(a.type.name)}};function aa(){return new u.Plugin({key:T,state:{init:()=>v.DecorationSet.empty,apply(e){let a=e.getMeta(T);if(!a)return v.DecorationSet.empty;let r=[];return e.doc.forEach((o,t)=>{a.types.includes(o.type.name)&&r.push(v.Decoration.node(t,t+o.nodeSize,{},{lazyView:r.length+1}))}),v.DecorationSet.create(e.doc,r)}},props:{decorations:e=>T.getState(e)}})}function ra({view:e,upload:a,toolHost:r,board:o=null,undo:t=null,redo:p=null,revise:n=null,highlight:d},s,m){let x=m.createFeature({view:e,upload:a,toolHost:r,board:o,undo:t,redo:p,revise:n,highlight:d}),y=Te.get(e),z=()=>{if(x.css&&I(`page-feature-${s}`,x.css,`page-feature-${s}`,["editor-ui"]),!x.nodeViews)return;let A=Object.keys(x.nodeViews);for(let k of A)y.set(k,x.nodeViews[k]);e.dispatch(e.state.tr.setMeta(T,{types:A}).setMeta("addToHistory",!1))},E=()=>{e.isDestroyed||(e.composing?setTimeout(E,25):z())};return e.composing?e.dom.addEventListener("compositionend",()=>setTimeout(E,25),{once:!0}):z(),x}function oa(e){return new u.Plugin({view(a){let r=new Set,o=()=>{for(let p of r)e.has(p)&&r.delete(p);a.state.doc.forEach(p=>{let n=Be(p);!n||e.has(n)||r.has(n)||e.ensure(n).catch(()=>{r.add(n)})})},t=a.state.doc;return o(),{update(){a.state.doc!==t&&(t=a.state.doc,o())}}}})}function ta({load:e=()=>Promise.reject(new Error("page: this editor has no command module")),context:a=()=>({}),reportError:r}={}){let o=new Map,t=new Set,p=null,n=null,d=!0,s=!1,m=0,x=l=>{let g=o.get(l);return g||(g=Promise.resolve(e(l)),o.set(l,g),g.catch(()=>{o.get(l)===g&&o.delete(l)})),g},y=()=>(n??=L({load:x,install:(l,g)=>g.createFeature(a(p)),reportError:r??((l,g)=>console.error(`clayjs: the ${g} command failed to load`,l))}),n),z=()=>{let l=m,g=p.state.selection;return{revision:l,selection:g,valid:()=>d&&!s&&!p.isDestroyed&&m===l&&p.state.selection.eq(g)}};function E(l,g){l.doc!==g.doc&&(m+=1);for(let h of t)h.lease.valid()||(t.delete(h),h.controller.abort({ok:!1,code:"stale-target"}))}async function A(l,g){if(!d||s||!p||p.isDestroyed)return{ok:!1,code:"not-editing"};let h={lease:z(),controller:new AbortController};t.add(h);try{let c=await y().ensure(l,{signal:h.controller.signal});return c?h.lease.valid()?await c.run(g):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(c){return h.controller.signal.aborted?h.controller.signal.reason:{ok:!1,code:"unavailable",error:c}}finally{t.delete(h)}}function k(){if(d){d=!1;for(let l of t)l.controller.abort({ok:!1,code:"not-editing"});t.clear()}}function S(){k(),n?.dispose(),n=null}return{attach(l){p=l},observe:E,run:A,enter(){s||(d=!0)},quiesce:k,leave:S,dispose(){S(),s=!0,d=!1,o.clear()}}}var H=new WeakMap;function pa(e){return new u.Plugin({view:()=>({update:(a,r)=>e.observe(a.state,r)}),props:{handleTextInput(a,r,o,t){return t!=="@"||a.composing||!Object.hasOwn(F,"mentions")?!1:(a.dispatch(a.state.tr.insertText("@",r,o)),e.run("mentions",{from:r,to:r+1}),!0)}}})}function qa(e,a,r){let o=e?H.get(e):null;return o?Object.hasOwn(F,a)?o.run(a,r):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function ia(e){return new u.Plugin({view(a){let r=e?()=>e.tablesChanged():()=>xe.get(a)?.tablesChanged?.(),o=a.state.doc;return{update(t){t.state.doc!==o&&(o=t.state.doc,r())}}}})}function na({upload:e=ea,highlight:a,history:r=!0,undo:o,redo:t,onAiTool:p=null,toolHost:n=null,features:d=null,commandHost:s=null}={}){return[re(),me({onAiTool:p}),s?pa(s):null,fe(),ia(n),ae(),ue(),Ae(),de(),le(),Se(),se(),D.keymap(Ze),Pe,De,D.keymap(ze),D.keymap(Je({history:r,undo:o,redo:t})),D.keymap(w.baseKeymap),ve(),ee(),Ce(),ne(),te({upload:e}),we(),oe({upload:e,features:d}),he(),ye(),be(),r?B.history():null,X.gapCursor(),aa(),d?oa(d):null].filter(Boolean)}function ga(e,a={}){let r=e&&Object.keys(e).length?e:{[J()]:{t:"paragraph",pos:Y(),c:""}},o=a.doc??Z(b,r);return u.EditorState.create({doc:o,plugins:na(a)})}function Va(e){!e||e.isDestroyed||e.updateState(e.state)}function $a(e,a,{quiesce:r=!1}={}){if(!e||e.isDestroyed)return!1;let o=a===!0;e.setProps({editable:()=>o});let t=H.get(e);return o?t?.enter():r?t?.quiesce():t?.leave(),o}function da(e,a){let r=a.target.closest?.('.page-li[data-kind="check"]');if(!r||!e.dom.contains(r))return!1;let o=r.getBoundingClientRect(),t=parseFloat(getComputedStyle(r).paddingInlineStart)||0,p=getComputedStyle(r).direction==="rtl"?o.right-a.clientX:a.clientX-o.left;if(p<0||p>t)return!1;let n=e.posAtDOM(r,0)-1,d=e.state.doc.nodeAt(n);return d?(a.preventDefault(),e.dispatch(e.state.tr.setNodeMarkup(n,null,{...d.attrs,checked:!d.attrs.checked})),!0):!1}function Ha(e,{blocks:a=null,onChange:r=null,upload:o,highlight:t,doc:p,dispatch:n,history:d=!0,undo:s,redo:m,editable:x=!0,toolHost:y=null,onAiTool:z=null,reviseTool:E=null,board:A=null,features:k=null,formatGate:S=null}={}){let l=e.ownerDocument;I(Me,Xe,Me,["editor-ui"]);let g=l.createElement("div");g.className="page-shell",g.setAttribute("clay","editor-ui"),g.setAttribute("sap-ignore",""),e.appendChild(g);let h=!1,c=null,O=k??L({load:i=>q[i].load(),install:(i,f)=>ra({view:c,upload:o,toolHost:y,board:A,undo:s,redo:m,revise:E,highlight:t},i,f)}),M=ta({load:i=>F[i].load(),context:i=>({view:i,upload:o})}),j=new Map,_={};for(let i of Object.values(q))for(let f of i.views??i.types)_[f]=(C,Ke,Ie,Le,Re)=>{let N=j.get(C.type.name);return N?N(C,Ke,Ie,Le,Re):new $(C,j)};c=new v.EditorView(g,{state:ga(a,{upload:o,highlight:t,doc:p,history:d,undo:s,redo:m,onAiTool:z,toolHost:y,features:O,commandHost:M}),attributes:{class:"page-editor"},scrollMargin:{top:16,bottom:96,left:5,right:5},scrollThreshold:{top:16,bottom:96,left:0,right:0},editable:()=>x,nodeViews:_,handleDOMEvents:{mousedown:da,dragstart(i,f){let C=i.state.selection;return C instanceof u.NodeSelection||C instanceof ke?(f.preventDefault(),!0):!1}},dispatchTransaction(i){if(n){n(i);return}h&&i.docChanged&&!i.getMeta(R)&&B.closeHistory(i),i.docChanged&&(h=!!i.getMeta(R));let f=c.state.doc;c.updateState(c.state.apply(i)),r&&c.state.doc!==f&&r(Q(c.state.doc))}}),Te.set(c,j),ie.set(c,O),M.attach(c),H.set(c,M);let Oe=c.destroy.bind(c),P=null,K=!1,je=()=>(P||(P=Promise.resolve().then(()=>S()).catch(i=>{throw P=null,i})),P);return c.runFormatCommand=async i=>{if(K)return{status:"disposed",retry:!1};if(!S)return{status:"unsupported-host",code:"page-format-unsupported",retry:!1};let f=await je();return K?(f.dispose?.(),{status:"disposed",retry:!1}):f.run({apply:i})},c.destroy=()=>{K=!0,P&&P.then(i=>i?.dispose?.(),()=>{}),M.dispose(),O.dispose(),Oe()},c}export{Xe as PAGE_EDITOR_CSS,Ha as createPageEditor,ra as installPageFeature,T as lazyViewsKey,aa as lazyViewsPlugin,na as pagePlugins,ga as pageState,Va as refreshMountedView,qa as runPageCommand,$a as setEditorActive};
@@ -0,0 +1,6 @@
1
+ import{a as Ce}from"../c-AQYCG7QW.js";import{c as Se}from"../c-AMYEFA2E.js";import{e as $e,g as N,h as Be,j as ae,l as ve,n as Ee,p as Pe,q as d}from"../c-BJ7YQ5QZ.js";import{a as De}from"../c-4JZDZFF6.js";import{b as W,c as ye,d as re,e as w,f as Fe}from"../c-VAK7SG37.js";import{b as T}from"../c-MHI3GYKF.js";import{b as Ke}from"../c-PLP4JKFC.js";import{a as le,b as We}from"../c-QTTJYJMA.js";import{b as m}from"../c-NUHP2XDB.js";import"../c-Q26MME6N.js";import{a as Ne}from"../c-VKEDWYDF.js";import{m as _e,n as se}from"../c-T637T7SN.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-FWKHM4E7.js";import"../c-X5LNHET5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as xe}from"../c-ZWIOJGMT.js";import"../c-B7J4K2AE.js";import"../c-ATKAOH23.js";import"../c-EK63G3CG.js";import"../c-NQJRVJ56.js";import"../c-XGH4GS2T.js";import"../c-IJUK2GPW.js";import{k as He}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{h as J,o as Ie}from"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ye="ai-edit",ft="h1,h2,h3,h4,h5,h6,p,figure",pt="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",ht="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",Je="script,style,template,textarea,input,select,button,iframe,svg,math",mt=900*1024,gt="This section is too large for AI editing; select a smaller part.",bt="The save did not finish; the edit is still on the page.",wt=0,a=null,r,g,c,y,E,h,b,v,L,D,$,B,R,F={},p=null,k=null,H=null,de=!1,ie=new WeakMap,ge=new Set,f=null,U=null,x=null,_,P,ue=null,C=null,z=null,A=null,Z=null,fe=[],q=null,Ae=0;function Xe(e){ie.delete(e),ge.delete(e)}function Me(e,t){if(!t){Xe(e);return}ie.set(e,t),ge.add(e)}var Qe="clay-ai-edit",qe="AI editing is turned off. Turn it on from the app\u2019s menu.";async function Ze(){let t=(await Se.helpers()).find(n=>n.name===Ye);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}function xt(){xe.pause()}function Re(){xe.resume()}function ce(e){if(!(e instanceof Element))return null;let t=e.closest("[data-edit-id]");if(!t)return null;let n=e.closest(ft);return n&&t.contains(n)?n:t}function yt(e){if(e===document.body)return"document";let t=e.getAttribute("data-edit-id");if(t)return t;let n=e.closest("[data-edit-id]");return n?n.getAttribute("data-edit-id")+" \u203A "+e.tagName.toLowerCase():e.id?"#"+e.id:e.tagName.toLowerCase()}function be(){let e=window.getSelection();return!e||e.rangeCount===0||e.isCollapsed?null:e.getRangeAt(0)}function et(e){let t=e.commonAncestorContainer;if(t.nodeType!==1&&(t=t.parentElement),!t||!document.body.contains(t))return null;if(t===document.body)return document.body;if(t.closest("[data-clay-ai-edit]")||t.closest(J)||t.closest(Je))return null;if(t.closest("[data-edit-id]"))return ce(t);let n=t.closest(pt)||t.closest(ht);return n&&n!==document.body?n:null}function tt(e,t){if(!e||!t||!t.contains(e.commonAncestorContainer))return;let n=e.toString();if(!n.trim())return;let i=document.createRange();i.selectNodeContents(t),i.setEnd(e.startContainer,e.startOffset);let o=i.toString().length;return{text:n,start:o,end:o+n.length}}function pe(e){let t=be();if(t){if(e===document.body){let n=t.toString();return n.trim()?{text:n,start:void 0,end:void 0}:void 0}return tt(t,e)}}function nt(){let e=document.body.cloneNode(!0);return e.querySelectorAll(J).forEach(t=>t.remove()),e.outerHTML}function vt(e,t,n){let{HyperMorph:i}=le();return i.morph(e,t,{morphStyle:"outerHTML",restoreFocus:!0,scripts:n})}function he(e,t,{rewind:n=!1}={}){let{HyperMorph:i,mergeTagRecognizers:o}=le(),s=n?{merge:!1,handle:!1}:{mergeBase:e.snapshot,mergeTags:o,handle:!1};e.docMode?(typeof t=="string"&&(t=new DOMParser().parseFromString(t,"text/html").body),i.morph(document.body,t,{morphStyle:"outerHTML",restoreFocus:document.activeElement?.localName!=="clay-editor-ui",scripts:s,callbacks:{beforeNodeRemoved:l=>!(l.nodeType===1&&l.matches(J))}})):vt(e.el,t,s),Ke()}function Et(e,t){let n=e.search(new RegExp("<"+t+"(\\s|>)","i"));if(n===-1)return null;let i=e.slice(n).replace(/\s*`{1,3}\s*$/,"");if(t.toLowerCase()==="body")return new DOMParser().parseFromString(i,"text/html").body;let o=document.createElement("template");o.innerHTML=i;let s=o.content.firstElementChild;return!s||s.tagName.toLowerCase()!==t.toLowerCase()?null:s}function Ct(e,t,n){let i=e===document.body,o=[...t.matchAll(/(?<![\w\u00C0-\u024F.@\/:-])@([\w.-]*[/.][\w./-]*)/g)].map(u=>u[1].replace(/\.+$/,"")).filter(u=>u!=="page").filter(u=>/[/.]/.test(u)),s=i?nt():e.outerHTML,l={id:"req-"+Date.now().toString(36)+"-"+ ++wt,editId:yt(e),tag:e.tagName.toLowerCase(),elementHTML:s,comment:t,contextRefs:o};return n&&(l.quote=n.text,Number.isInteger(n.start)&&(l.selection={start:n.start,end:n.end})),!i&&/(?<![\w\u00C0-\u024F.@\/:-])@page(?![\w\/-]|\.\w)/.test(t)&&(l.page=!0),{id:l.id,el:e,docMode:i,tag:l.tag,reassertId:i?null:e.getAttribute("data-edit-id"),snapshot:s,payload:l,state:"requesting",paused:!1,handle:null,finalCandidate:null}}async function St(e,t,n){if(a=Ct(e,t,n),new Blob([JSON.stringify(a.payload)]).size>mt){a=null,me(gt,"warn");return}if(Me(e,t),Pt(),a.paused=!0,xt(),k={},te("working"),O("Sending\u2026"),a.payload.page&&await window.clay.save(),!a)return;let i=Se.send(a.payload,{helper:Ye,onStatus:({text:s})=>{a?.handle===i&&O(s)}});a.handle=i;let o=await i.done;!a||a.handle!==i||(await We(),!(!a||a.handle!==i)&&(o.state==="done"?kt(o.result||{}):o.state==="cancelled"?Q("HTML Clay stopped this edit."):Q(o.error||"the helper reported an error")))}var Tt=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,Lt=new Set(["iframe","frame","object","embed","base","link"]);function At(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Mt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Te(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function ze(e){let t=new Map,n=i=>t.set(i,(t.get(i)||0)+1);for(let i of[e,...e.querySelectorAll("*")]){let o=i.tagName.toLowerCase();o==="script"?Mt(i)&&n("script "+Te(i)+"|"+i.textContent.trim()):(Lt.has(o)||o==="meta"&&i.hasAttribute("http-equiv")||(o==="animate"||o==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(o+" "+Te(i));for(let s of i.attributes){let l=s.name.toLowerCase();Tt.test(l)?n(o+" "+l+"="+s.value.trim()):l==="srcdoc"?n(o+" srcdoc="+s.value):At(s.value)&&n(o+" "+l+"="+s.value)}}return t}function Rt(e,t,n){let i=n?new DOMParser().parseFromString(t,"text/html").body:(()=>{let s=document.createElement("template");return s.innerHTML=t,s.content.firstElementChild})(),o=i?ze(i):new Map;for(let[s,l]of ze(e))if(l>(o.get(s)||0))return!0;return!1}var Ot="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function kt(e){if(!a||a.state!=="requesting")return;a.state="deciding";let t=[],n=Et(e.html||"",a.tag);if(!n){Q(`reply is not a single <${a.tag}> element`);return}if(!a.docMode){let i=document.createElement("template");i.innerHTML=e.html||"",i.content.children.length>1&&t.push("reply had extra root elements \u2014 kept the first")}if(a.reassertId&&n.setAttribute("data-edit-id",a.reassertId),Rt(n,a.snapshot,a.docMode)){Q(Ot);return}_e(),a.held=!0,a.finalCandidate=n;try{he(a,n)}catch(i){Q("the reply could not be applied: "+(i?.message||i));return}S(),Xe(a.el),te("ready"),O(Ht(t,e.model),t.length?"warn":"")}function Ht(e,t){let n=["Edit ready.",...e.map(i=>"\u26A0 "+i)];return t&&n.push(`(${t})`),n.join(" ")}function Q(e){a&&(oe(),te("error"),O(e,"warn"))}function oe(){let e=a;if(a=null,!!e)try{(e.state==="requesting"||e.state==="deciding")&&le()&&he(e,e.snapshot,{rewind:!0})}finally{e.paused&&Re(),e.held&&se(),S()}}async function it(){let e=a;if(!e)return;a=null;let t=e.docMode?nt():e.el.outerHTML;try{he(e,e.snapshot,{rewind:!0})}finally{e.paused&&Re(),e.held&&se({replay:!1})}he(e,t),S(),te("saving"),O("Saving\u2026");let n=k,i=await window.clay.save();if(n===k){if(i&&i.ok===!1){te("error"),O(i.msg||bt,"warn");return}O(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),Bt()}}function ot(){a?.handle?.cancel(),oe(),V()}var Ge=["z-index:99999","padding:0","display:inline-grid","place-items:center","line-height:1",`box-shadow:${re}`];function K(e,t,n){return e.setAttribute(t,n),e}function It(){let{signal:e}=Z;q=document.createElement("style"),q.setAttribute("clay",$e),q.textContent=`
2
+ [editmode\\:contenteditable][contenteditable]:focus {
3
+ outline: 1px solid #4a4a6a; outline-offset: 4px; border-radius: 2px;
4
+ }
5
+ ::highlight(clay-ai-edit) { background-color: ${w["brass-soft"]} !important; }
6
+ `,document.head.appendChild(q);let t=`color-scheme:${De()}`;g=K(ae("div",["box-sizing:content-box","position:fixed","z-index:99998","pointer-events:none",`border:2px solid ${w.brass}`,"border-radius:0",t]),"data-clay-ai-edit","ring"),d(g,!1),r=K(ve("div",["position:fixed","z-index:99999","width:min(28rem, calc(100vw - 32px))","padding:12px","border-radius:12px",`box-shadow:${re}`,`font:13px/1.5 ${W}`,t]),"data-clay-ai-edit","panel"),d(r,!1),r.setAttribute("role","dialog"),r.setAttribute("aria-label","AI edit");let n=(u,M)=>K(u,"data-clay-ai-edit-part",M);E=n(ae("div",["position:absolute","width:12px","height:12px","pointer-events:none",`background:${w.surface}`,`border-left:1px solid ${w["line-2"]}`,`border-top:1px solid ${w["line-2"]}`]),"pointer"),d(E,!1),c=n(Pe("textarea",{rules:["flex:1","min-width:0","min-height:40px","max-height:9.5em","resize:none","overflow-y:auto","padding:8px 12px",`font:15px/1.45 ${W}`]}),"input"),c.rows=1,c.placeholder="Describe the change",c.setAttribute("aria-label","Describe the change"),c.title="Enter sends \xB7 Shift+Enter adds a line \xB7 @fable or @codex picks another agent \xB7 @file.ext adds context",y=n(Ee("div",["display:block","margin-top:0",`color:${w.muted}`,`font:12.5px/1.5 ${ye}`]),"status"),y.setAttribute("role","status"),y.setAttribute("aria-live","polite"),F.send=n(N("Send",{variant:"primary",extra:["min-height:40px","flex:none"]}),"send"),d(F.send,!0,"inline-flex");let i=ae("div",["display:flex","align-items:flex-start","gap:8px"]);i.append(c,F.send),r.append(E,i,y),v=K(ve("div",["position:fixed","left:50%","bottom:16px","transform:translateX(-50%)","z-index:99999","width:min(35rem, calc(100vw - 32px))","padding:8px 10px","border-radius:12px","gap:8px","align-items:center",`box-shadow:${re}`,`font:13px/1.5 ${W}`,t]),"data-clay-ai-edit","status-bar"),d(v,!1,"flex"),L=n(Ee("div",["display:block","flex:1","min-width:0","overflow:hidden","text-overflow:ellipsis","white-space:nowrap",`color:${w.muted}`,`font:12.5px/1.5 ${ye}`]),"bar-status"),L.setAttribute("role","status"),L.setAttribute("aria-live","polite"),D=n(N("Stop",{extra:["flex:none"]}),"bar-stop"),$=n(N("Keep",{variant:"primary",extra:["flex:none"]}),"bar-keep"),B=n(N("Revert",{variant:"quiet",extra:["flex:none"]}),"bar-revert"),R=n(Be(Fe.toastClose,{label:"Dismiss error"}),"bar-close"),R.pin({flex:"none"});for(let u of[D,$,B,R])d(u,!1,"inline-flex");v.append(L,D,$,B,R),h=K(N("AI",{small:!0,extra:["position:fixed","width:26px","height:26px",`font:600 11px/1 ${W}`,...Ge,t]}),"data-clay-ai-edit","chip"),h.title="Comment on this (\u2318J)",d(h,!1,"inline-grid"),b=K(N("AI",{extra:["position:fixed","width:40px","height:40px",`font:600 14px/1 ${W}`,...Ge,t]}),"data-clay-ai-edit","bubble"),b.title="Comment on the whole page",Le(),document.body.append(g,r,v,h,b),G(),F.send.addEventListener("click",Ve),D.addEventListener("click",ot),$.addEventListener("click",it),B.addEventListener("click",()=>{oe(),V()}),R.addEventListener("click",()=>{p==="error"&&V()}),c.addEventListener("keydown",u=>{u.key==="Enter"&&!u.shiftKey&&(u.preventDefault(),F.send.hidden||Ve())}),c.addEventListener("input",ee),h.addEventListener("mousedown",u=>u.preventDefault()),h.addEventListener("click",()=>{let u=U,M=P;j(),u&&!a&&!p&&ne(u,M||pe(u))}),b.addEventListener("click",()=>{if(!(a||p)){if(!r.hidden&&f===document.body){c.value.trim()?c.focus():X();return}ne(document.body,pe(document.body))}}),window.addEventListener("scroll",()=>{S(),j()},{passive:!0,signal:e}),window.addEventListener("resize",()=>{Le(),r&&!r.hidden&&ee(),S()},{passive:!0,signal:e});let o=()=>{Le(),S()};document.addEventListener("hcms:open",()=>{o(),setTimeout(o,350)},{signal:e}),document.addEventListener("hcms:close",()=>{o(),setTimeout(o,350)},{signal:e});let s=new MutationObserver(u=>{G();let M=I=>[...I].some(Y=>Y.nodeType===1&&Y.hasAttribute("data-hcms-toggle-host"));u.some(I=>M(I.addedNodes)||M(I.removedNodes))&&o()});s.observe(document.body,{childList:!0}),fe.push(s);let l=new MutationObserver(()=>{f&&!f.isConnected&&st()});l.observe(document.body,{childList:!0,subtree:!0}),fe.push(l)}function rt(){f?.isConnected&&S()}function ee(){m(c,"height","auto"),c.value&&m(c,"height",c.scrollHeight+2+"px"),rt()}function G(){let e=b?.ownerDocument;if(!e)return;let t=!p&&A==="ready"&&!!e.querySelector("[data-edit-id]");d(b,t,"inline-grid"),t&&T(b)}function Nt(e){!e||typeof window.Highlight!="function"||!window.CSS?.highlights||window.CSS.highlights.set(Qe,new window.Highlight(e))}function we(){window.CSS?.highlights?.delete(Qe)}function at(){let e=A==="ready";c.disabled=!e,e?y.textContent===qe&&me(""):me(qe,"warn"),d(F.send,e,"inline-flex"),G()}function Ft(){Ze().then(e=>{r&&(A=e||"unavailable",!r.hidden&&!a?at():G())}).catch(()=>{})}function Le(){if(!b)return;let e=document.querySelector("[data-hcms-toggle-host]"),t=e&&e.getBoundingClientRect(),n=!!t&&t.width>0&&t.height>0;b.pin({right:n?`${Math.round((document.documentElement.clientWidth||window.innerWidth)-t.left+8)}px`:"16px",bottom:n?`${Math.round((document.documentElement.clientHeight||window.innerHeight)-t.bottom)}px`:"16px"}),T(b)}function Dt(e){clearTimeout(x),x=null,U=e,P=void 0;let t=e.getBoundingClientRect();h.pin({left:Math.min(t.right+8,window.innerWidth-34)+"px",top:Math.max(8,t.top)+"px"}),d(h,!0,"inline-grid"),T(h)}function j(){clearTimeout(x),x=null,d(h,!1,"inline-grid"),U=null,P=void 0}function je(){h.hidden||x||(x=setTimeout(j,400))}function $t(){if(a||p||!r.hidden||A!=="ready"||lt())return;let e=be(),t=e&&et(e),n=t&&tt(e,t);if(!n){P&&j();return}let i=typeof e.getClientRects=="function"?e.getClientRects():[],o=i.length?i[i.length-1]:t.getBoundingClientRect();clearTimeout(x),x=null,U=t,P=n,h.pin({left:Math.min(o.right+6,window.innerWidth-34)+"px",top:Math.max(8,o.top+o.height/2-13)+"px"}),d(h,!0,"inline-grid"),T(h)}function me(e,t){m(y,"margin-top",e?"8px":"0"),y.textContent=e||"",t==="warn"?y.setAttribute("data-tone","warn"):y.removeAttribute("data-tone"),m(y,"color",t==="warn"?w.ox:w.muted),rt()}function O(e,t){L.textContent=e||"",t==="warn"?L.setAttribute("data-tone","warn"):L.removeAttribute("data-tone"),m(L,"color",t==="warn"?w.ox:w.muted)}function te(e){clearTimeout(H),H=null;let t=!!p,n=document.activeElement;p=e;let i={working:[D],ready:[$,B],error:[R],saving:[]}[e]||[],o=[D,$,B,R];for(let l of o)d(l,i.includes(l),"inline-flex");j(),d(v,!0,"flex"),G(),S(),T(v);let s=i[0];s&&(!t||o.includes(n)&&!i.includes(n))&&s.focus({preventScroll:!0})}function Bt(){clearTimeout(H);let e=k;H=setTimeout(()=>{e&&e===k&&V()},1500)}function V(e){e!==void 0&&e!==k||(clearTimeout(H),H=null,k=null,r.hidden||Oe(),p=null,d(v,!1,"flex"),O(""),f=null,C=null,z=null,_=void 0,we(),d(r,!1),c.value="",d(g,!1),d(E,!1),G())}function S(){if(!f)return;if(!f.isConnected){st();return}if(f===document.body){if(d(g,!1),d(E,!1),r.hidden)return;let I=b.getBoundingClientRect(),Y=r.offsetWidth||480;m(r,"left",Math.max(16,Math.min((I.right||window.innerWidth-16)-Y,window.innerWidth-Y-16))+"px"),m(r,"top",Math.max(16,(I.top||window.innerHeight-56)-(r.offsetHeight||120)-12)+"px");return}let e=f.getBoundingClientRect();if(d(g,!!p||!_||!!a),m(g,"left",e.left-5+"px"),m(g,"top",e.top-5+"px"),m(g,"width",e.width+6+"px"),m(g,"height",e.height+6+"px"),r.hidden)return;let t=C&&C.startContainer.isConnected&&typeof C.getBoundingClientRect=="function"?C.getBoundingClientRect():null,n=t&&(t.width||t.height)?t:e,i=r.offsetWidth||480,o=Math.max(16,Math.min(n.left,window.innerWidth-i-16)),s=n.bottom+10,l=r.offsetHeight||120;s+l>window.innerHeight-16&&(s=Math.max(16,n.top-l-10)),m(r,"left",o+"px"),m(r,"top",s+"px");let u=s>=n.bottom,M=Math.max(14,Math.min(n.left+10-o,i-28));d(E,!0),m(E,"left",M+"px"),m(E,"top",u?"-7px":l-6+"px"),m(E,"transform",u?"rotate(45deg)":"rotate(225deg)")}function ne(e,t){!r.hidden&&f&&f!==e&&Oe();let n=t?be():null,i=document.activeElement;z=i&&i!==document.body&&!r.contains(i)?i:null,f=e,C=n?n.cloneRange():null,j(),d(r,!0),_=t;let o=t?t.text.trim().length>400?t.text.trim().slice(0,400)+"\u2026":t.text.trim():"";r.dataset.quote=o,me(""),c.value=ie.get(e)||"",Nt(C),at(),S(),ee(),T(r),T(g),c.focus(),Ft()}function Oe(){f&&Me(f,c.value)}function X(){a&&(a.handle?.cancel(),oe());let e=z,t=r.contains(document.activeElement);Oe(),f=null,C=null,z=null,_=void 0,we(),d(r,!1),d(g,!1),c.value="",ee(),t&&e&&e.isConnected&&e.focus({preventScroll:!0})}function Pt(){C=null,z=null,_=void 0,we(),d(r,!1),c.value="",ee(),S(),T(g)}function st(){let e=a;e&&(e.handle?.cancel(),oe()),V()}function Ve(){let e=c.value.trim();!e||!f||a||A!=="ready"||St(f,e,_)}var _t=/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent||"");function Wt(e){return!(_t?e.metaKey&&!e.ctrlKey:e.ctrlKey&&!e.metaKey)||e.shiftKey||e.altKey||e.repeat||e.isComposing?!1:e.code==="KeyJ"||(e.key||"").toLowerCase()==="j"}function lt(){let e=Ce();return!e||e===document.body?!1:r&&r.contains(e)?!r.hidden:e.matches("input,textarea,select")}var Kt='[data-clay-modal], dialog[open], [aria-modal="true"]',qt='input,textarea,select,[contenteditable=""],[contenteditable="true"]';function zt(e){if(e.defaultPrevented||document.querySelector(Kt))return!1;let t=Ce();return!t||t===document.body||r.contains(t)||v.contains(t)?!0:t.isContentEditable===!0?!1:!t.matches(qt)}function Gt(){let{signal:e}=Z;document.addEventListener("pointerdown",n=>{de=r.contains(n.target)},{capture:!0,signal:e}),document.addEventListener("click",n=>{let i=de;if(de=!1,i||r.contains(n.target)||v.contains(n.target)||h.contains(n.target)||b.contains(n.target)||a||p)return;let o=n.target.closest?.("[data-edit-id]"),s=o?ce(n.target):null;if(o&&s===o){let l=!r.hidden&&o===f;r.hidden||X(),l||ne(o,pe(o))}else r.hidden||X()},{signal:e});let t=0;document.addEventListener("mousemove",n=>{let i=Date.now();if(i-t<80)return;if(t=i,a||p||!r.hidden){je();return}if(A!=="ready"||P)return;if(h.contains(n.target)){clearTimeout(x),x=null;return}let o=ce(n.target);o?Dt(o):je()},{signal:e}),document.addEventListener("keydown",n=>{if(Wt(n)){if(p||a||lt())return;f&&!f.isConnected&&X();let i=be(),o=i?et(i):null;if(!o){let s=window.getSelection(),l=s&&s.anchorNode;l&&l.nodeType!==1&&(l=l.parentElement),o=l&&ce(l)||U}if(!o)return;n.preventDefault(),ne(o,pe(o));return}if(n.key==="Escape"&&zt(n)){if(p==="working"){ot();return}if(p==="ready"){it();return}if(p==="error"){V();return}p||r.hidden||X()}},{signal:e}),document.addEventListener("selectionchange",()=>{clearTimeout(ue),ue=setTimeout($t,150)},{signal:e})}async function dt(){let e=++Ae;return A=await Ze(),e===Ae}function ct(){!A||r||(Z=new AbortController,It(),Gt())}async function ke(){!He()||r||await dt()&&ct()}function Ue(e){return e instanceof Element&&e.ownerDocument===document&&document.body.contains(e)&&!e.closest("[data-clay-ai-edit]")&&!e.closest(J)&&!e.closest(Ie)&&!e.closest(Je)}async function jt(e,{prompt:t}={}){return!Ue(e)||(await ke(),await new Promise(n=>setTimeout(n,0)),!r||a||p||!Ue(e))?!1:!r.hidden&&f===e?(c.focus(),!0):(typeof t=="string"&&!ie.has(e)&&Me(e,t),ne(e,null),!0)}function Vt(){Ae++;let e=a;a=null;try{e?.handle?.cancel(),e&&(e.paused&&Re(),e.held&&se())}catch{}clearTimeout(ue),ue=null,clearTimeout(x),x=null,clearTimeout(H),H=null,we(),Z?.abort(),Z=null;for(let t of fe)t.disconnect();fe=[];for(let t of[q,g,r,v,h,b])t?.remove();q=g=r=c=y=E=v=L=null,D=$=B=R=h=b=null,F={},p=null,k=null,f=null,C=null,z=null,_=void 0,U=null,P=void 0,de=!1,A=null,ie=new WeakMap,ge.clear()}function sn(){return{id:"clay:ai-edit",order:950,prepare(e={}){let t=e.initial===!0;return{ready:t?ut:dt(),enable(){t||ct()},quiesce(){let n=r&&!r.hidden&&c.value.trim()!==""||[...ge].some(o=>o.isConnected),i=[];if(a&&i.push(a.id),p==="saving"&&i.push("save"),n&&i.push("prompt"),!!i.length)throw Object.assign(new Error("clay.aiEdit: an edit here is still unresolved"),{code:"pending-input",pending:i})},resume(){},dispose(){Vt()}}}}}var ut=null;Ne(()=>{ut=ke().then(()=>{},()=>{})});var ln={init:ke,open:jt};export{ln as aiEdit,sn as aiEditParticipant,sn as modeParticipant};