@panphora/clayjs 1.25.0 → 1.25.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 (214) 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 +4432 -3831
  11. package/dist/m/attrs/{save-freeze-MH3AOD56.js → save-freeze-PUYX32AK.js} +1 -1
  12. package/dist/m/{c-XHZIKRCV.js → c-2A2ATCIH.js} +1 -1
  13. package/dist/m/{c-BOMQIQ3V.js → c-2EFMJYGJ.js} +1 -1
  14. package/dist/m/{c-JD2VFAYG.js → c-2GB34XL4.js} +2 -2
  15. package/dist/m/{c-CITLTVQ4.js → c-2TJCFPX4.js} +1 -1
  16. package/dist/m/c-33SS5A4Y.js +1 -0
  17. package/dist/m/{c-V2FPBRO6.js → c-34J5HC7N.js} +1 -1
  18. package/dist/m/{c-ZEA3DCG3.js → c-3AAQJAKJ.js} +1 -1
  19. package/dist/m/c-3F3AADKG.js +1 -0
  20. package/dist/m/{c-GDNZEOOZ.js → c-3WX5FABT.js} +1 -1
  21. package/dist/m/{c-QWB53KRW.js → c-3XNTQQEJ.js} +1 -1
  22. package/dist/m/{c-AI3H6ETU.js → c-3Y234AUB.js} +2 -2
  23. package/dist/m/{c-GEAG5XAK.js → c-42RLKGEY.js} +1 -1
  24. package/dist/m/{c-XQTERKQA.js → c-44WITKWQ.js} +1 -1
  25. package/dist/m/c-47M4QHCK.js +1 -0
  26. package/dist/m/{c-UOUUI265.js → c-4M2T676V.js} +1 -1
  27. package/dist/m/{c-3E2IK5HU.js → c-4NAYDOWH.js} +1 -1
  28. package/dist/m/{c-TLQINES7.js → c-4OZZ7ENT.js} +2 -2
  29. package/dist/m/{c-QDVG4NAZ.js → c-5IIEOPIV.js} +1 -1
  30. package/dist/m/{c-4Q6QIODW.js → c-755ZOHOM.js} +1 -1
  31. package/dist/m/c-7Q4XYDF4.js +1 -0
  32. package/dist/m/c-7RHOMAMR.js +1 -0
  33. package/dist/m/{c-BCWYEG6P.js → c-7Z2625LX.js} +1 -1
  34. package/dist/m/{c-C6YZNU6E.js → c-A3OKSYRI.js} +1 -1
  35. package/dist/m/{c-RGAALCDU.js → c-A5IYL7JI.js} +1 -1
  36. package/dist/m/c-A5LASUEZ.js +1 -0
  37. package/dist/m/c-AQVQKFKB.js +1 -0
  38. package/dist/m/{c-IESDKFO6.js → c-ASGHHLFX.js} +1 -1
  39. package/dist/m/c-ASMLERFA.js +7 -0
  40. package/dist/m/{c-ORLPQFNU.js → c-AZM34SPO.js} +1 -1
  41. package/dist/m/{c-TCFVG3I4.js → c-BHLYQGTA.js} +1 -1
  42. package/dist/m/{c-ZORVIXUR.js → c-C27EVUQ6.js} +1 -1
  43. package/dist/m/{c-SUAC5RSG.js → c-C5UGNOC2.js} +1 -1
  44. package/dist/m/c-C6DXZIXD.js +1 -0
  45. package/dist/m/{c-WSTUCBHV.js → c-CPRGR2II.js} +1 -1
  46. package/dist/m/{c-NFQFV7OP.js → c-D2OPWOWO.js} +1 -1
  47. package/dist/m/{c-PRZNJUYZ.js → c-D4N4UJCQ.js} +2 -2
  48. package/dist/m/{c-D62HRSZK.js → c-DAUQ6JZ3.js} +1 -1
  49. package/dist/m/{c-5PZYDWTW.js → c-DDCYVLGG.js} +1 -1
  50. package/dist/m/{c-FBOO2UY3.js → c-DVMDYRAE.js} +1 -1
  51. package/dist/m/{c-WGQVSKKC.js → c-DYTBSJBI.js} +1 -1
  52. package/dist/m/{c-O2QZDVZ2.js → c-EEWPNUM2.js} +1 -1
  53. package/dist/m/{c-MFB74XVN.js → c-EHAR4RJJ.js} +2 -2
  54. package/dist/m/c-EIDZHQHZ.js +1 -0
  55. package/dist/m/c-ELXMSEN5.js +1 -0
  56. package/dist/m/c-FC5RUFPR.js +1 -0
  57. package/dist/m/{c-V4B3RUWB.js → c-GFASNR55.js} +1 -1
  58. package/dist/m/{c-4AE2A2LK.js → c-GNFDX6SU.js} +1 -1
  59. package/dist/m/{c-UD4VDBGJ.js → c-H3M6UDNV.js} +1 -1
  60. package/dist/m/{c-MUM53J5J.js → c-H4M2T4A6.js} +1 -1
  61. package/dist/m/{c-U7F66I64.js → c-HYNM5U6B.js} +1 -1
  62. package/dist/m/c-J2YYLEVM.js +1 -0
  63. package/dist/m/c-J2ZW4HMR.js +1 -0
  64. package/dist/m/{c-WCG6AKA7.js → c-JC4RZW4E.js} +1 -1
  65. package/dist/m/c-K2ZHQMPF.js +1 -0
  66. package/dist/m/{c-Z2OZFX3N.js → c-L6KVXPBO.js} +1 -1
  67. package/dist/m/{c-JWW6BHWD.js → c-LUBZU4AZ.js} +4 -4
  68. package/dist/m/{c-SEVOS4UE.js → c-LYNLY3MR.js} +1 -1
  69. package/dist/m/{c-NADLYVAH.js → c-MHTO3QAD.js} +1 -1
  70. package/dist/m/{c-SFYTKRU7.js → c-MKAUC6DB.js} +1 -1
  71. package/dist/m/c-MLMJUNRV.js +1 -0
  72. package/dist/m/{c-WDFQ7PBU.js → c-MMEVDN6D.js} +1 -1
  73. package/dist/m/{c-KYTVZT4D.js → c-NW4ZFKCY.js} +1 -1
  74. package/dist/m/{c-YFO6ZJLQ.js → c-O3DPFZCE.js} +1 -1
  75. package/dist/m/c-O4YIDULY.js +1 -0
  76. package/dist/m/c-OZOACVUD.js +1 -0
  77. package/dist/m/{c-MV7TEUTD.js → c-OZVK3TFI.js} +1 -1
  78. package/dist/m/c-PP3CUF3U.js +1 -0
  79. package/dist/m/{c-GY4BREDT.js → c-QL4NYM2L.js} +1 -1
  80. package/dist/m/c-RES2S5Q3.js +1 -0
  81. package/dist/m/c-RFGELYEU.js +2 -0
  82. package/dist/m/c-RGFPLQGV.js +1 -0
  83. package/dist/m/{c-FKTALXNV.js → c-STAPQ2X6.js} +1 -1
  84. package/dist/m/c-SYVF6ZMF.js +1 -0
  85. package/dist/m/{c-X3V4RWMA.js → c-T5IWJOMW.js} +1 -1
  86. package/dist/m/{c-DT7E76Z2.js → c-T7LOTEWO.js} +1 -1
  87. package/dist/m/{c-SFZRY6RT.js → c-TWB5ZQU4.js} +1 -1
  88. package/dist/m/c-U35T5NAY.js +1 -0
  89. package/dist/m/c-UW6MMZ4V.js +1 -0
  90. package/dist/m/c-VGG3UR7I.js +1 -0
  91. package/dist/m/c-VU4WEWPH.js +4 -0
  92. package/dist/m/{c-5Q5XBN56.js → c-W7LWCJHD.js} +1 -1
  93. package/dist/m/c-WOJ2RTV4.js +1 -0
  94. package/dist/m/{c-ZJG6C2WL.js → c-WOWGGNCJ.js} +1 -1
  95. package/dist/m/{c-SXZYVXD6.js → c-XCOQNISP.js} +1 -1
  96. package/dist/m/{c-IL5IVTOG.js → c-XS7G6U3Z.js} +1 -1
  97. package/dist/m/{c-HGG7M2S3.js → c-Y3J5LDKB.js} +1 -1
  98. package/dist/m/{c-JB5YU57S.js → c-Y3MPVURA.js} +1 -1
  99. package/dist/m/c-Y6HH7LTM.js +1 -0
  100. package/dist/m/{c-52OC3OH3.js → c-YRDKVEGR.js} +1 -1
  101. package/dist/m/{c-WVCT3ITX.js → c-YZGWSCMT.js} +1 -1
  102. package/dist/m/{c-YX2MC7YL.js → c-ZJ7726FO.js} +1 -1
  103. package/dist/m/core/{admin-attrs-ZI6K6UGM.js → admin-attrs-43JBA6JB.js} +1 -1
  104. package/dist/m/core/{autosave-BSM2ABJL.js → autosave-HD7Y7UNV.js} +1 -1
  105. package/dist/m/core/{conflict-notice-7EQLDYPA.js → conflict-notice-Y2NTMDGJ.js} +1 -1
  106. package/dist/m/core/{persist-2SZO3PCE.js → persist-MX3VYVBN.js} +1 -1
  107. package/dist/m/core/{save-K6Q47J2X.js → save-JZ7R4ET2.js} +1 -1
  108. package/dist/m/core/{save-core-U3Z44XBO.js → save-core-I4N6S4ED.js} +1 -1
  109. package/dist/m/core/{site-edits-CFMF6GHD.js → site-edits-TIJDPG6H.js} +1 -1
  110. package/dist/m/core/{snapshot-PWCHYFL6.js → snapshot-N5MKDGNI.js} +1 -1
  111. package/dist/m/core/{unsaved-warning-2WRZLJH5.js → unsaved-warning-BP6ZY3PG.js} +1 -1
  112. package/dist/m/internals/{index-FSLC4M7J.js → index-3LAVREAU.js} +1 -1
  113. package/dist/m/{loader-RC54UV7H.js → loader-7ORQVRCK.js} +1 -1
  114. package/dist/m/manifest-A27A4278.js +1 -0
  115. package/dist/m/manifest-edit-E8A61EB4.js +1 -0
  116. package/dist/m/manifest.json +1099 -1039
  117. package/dist/m/page/{editor-PKSPJ2XJ.js → editor-HS2CAV3W.js} +5 -5
  118. package/dist/m/plugins/{ai-edit-3LG6MGS3.js → ai-edit-WDV2GLDU.js} +2 -2
  119. package/dist/m/plugins/{cms-T2HLI7JG.js → cms-4KET6RZT.js} +9 -9
  120. package/dist/m/plugins/{derive-7DR5TUDH.js → derive-R4USHZ7P.js} +1 -1
  121. package/dist/m/plugins/{indicator-CTKX4EY7.js → indicator-OLPZ4WFI.js} +1 -1
  122. package/dist/m/plugins/{live-IFLL6YN5.js → live-CO4VJS46.js} +1 -1
  123. package/dist/m/plugins/{menu-YJZ3JWBC.js → menu-ESEFQARM.js} +1 -1
  124. package/dist/m/plugins/{page-GTDPYGE4.js → page-L3VKIQU2.js} +2 -2
  125. package/dist/m/plugins/{page-view-NMCCU6MF.js → page-view-6KNTXABH.js} +1 -1
  126. package/dist/m/plugins/{people-6WIWCZEG.js → people-EBWE337I.js} +1 -1
  127. package/dist/m/plugins/quickcrop-VNRXGRPC.js +26 -0
  128. package/dist/m/plugins/{richclay-L3BZMX4I.js → richclay-V6WKJTUF.js} +17 -17
  129. package/dist/m/plugins/sortable-BAG3MSWS.js +1 -0
  130. package/dist/m/plugins/{source-7LSGOV46.js → source-OYHDXKTB.js} +1 -1
  131. package/dist/m/plugins/undo-WUK2NLBA.js +1 -0
  132. package/dist/m/plugins/{upgrade-MMPZUCDM.js → upgrade-SZQJYEQQ.js} +1 -1
  133. package/dist/m/plugins/{visitor-drafts-V5YB7XDH.js → visitor-drafts-ZE6PCAFP.js} +2 -2
  134. package/dist/m/plugins/{visitor-menu-QDV2MYJN.js → visitor-menu-5XY57JQA.js} +1 -1
  135. package/dist/m/plugins/{wire-3YGUO3GE.js → wire-S5ATC4QI.js} +1 -1
  136. package/dist/m/reader-core-AHOAP5DH.js +77 -0
  137. package/dist/m/sync/{live-sync-XMXXZS3G.js → live-sync-DX4K5GDB.js} +1 -1
  138. package/dist/m/ui/index-G7ZJXNMG.js +1 -0
  139. package/dist/m/vendor/{sap-core.vendor-JANUQULT.js → sap-core.vendor-5TWOJYVM.js} +4 -4
  140. package/dist/offline-manifest.json +707 -677
  141. package/dist/server/core.cjs +4245 -2614
  142. package/dist/server/markdown.cjs +1 -0
  143. package/dist/server/markdown.mjs +7 -0
  144. package/docs/guide.md +26 -37
  145. package/entries/clay-data.js +1 -1
  146. package/entries/sap.js +5 -5
  147. package/package.json +6 -2
  148. package/packed-contract.json +3 -0
  149. package/src/attrs/save-freeze.js +1 -1
  150. package/src/core/admin-contenteditable.js +1 -1
  151. package/src/core/admin-inputs.js +1 -1
  152. package/src/core/admin-onclick.js +1 -1
  153. package/src/core/admin-resources.js +5 -2
  154. package/src/core/conflict-notice-ui.js +59 -34
  155. package/src/core/save.js +9 -9
  156. package/src/core/snapshot.js +56 -43
  157. package/src/core/stale-host-notice.js +20 -7
  158. package/src/page/editor.js +10 -4
  159. package/src/page/import-markdown.js +22 -8
  160. package/src/page/save-projection.js +1 -1
  161. package/src/plugins/quickcrop.js +128 -69
  162. package/src/plugins/sortable.js +25 -9
  163. package/src/server/markdown/index.js +23 -0
  164. package/src/sync/conflicts.js +3 -1
  165. package/src/sync/data-guard-notice.js +137 -18
  166. package/src/ui/bevel-controls.js +4 -1
  167. package/src/ui/dialogs.js +11 -7
  168. package/src/ui/modal.js +9 -7
  169. package/src/ui/toast.js +67 -32
  170. package/src/vendor/hyper-html-api-data.vendor.js +1 -1
  171. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  172. package/src/vendor/hyper-undo.vendor.js +1 -1
  173. package/src/vendor/hypercms.vendor.js +7 -7
  174. package/src/vendor/richclay.vendor.js +16 -16
  175. package/src/vendor/sap-core.vendor.js +4 -4
  176. package/tool-generation/context.md +69 -0
  177. package/tool-generation/system.md +1 -1
  178. package/dist/m/c-277QP5ET.js +0 -1
  179. package/dist/m/c-5SZ6KFR5.js +0 -1
  180. package/dist/m/c-CU33V6RW.js +0 -4
  181. package/dist/m/c-CVSWLX3X.js +0 -1
  182. package/dist/m/c-DXPOFLEJ.js +0 -1
  183. package/dist/m/c-EODTTNVA.js +0 -1
  184. package/dist/m/c-ESK4S67I.js +0 -1
  185. package/dist/m/c-FDWR3FL7.js +0 -1
  186. package/dist/m/c-FJDTDGDA.js +0 -1
  187. package/dist/m/c-FYDKYW6E.js +0 -1
  188. package/dist/m/c-HKSLOVU4.js +0 -1
  189. package/dist/m/c-IJHF4IO6.js +0 -1
  190. package/dist/m/c-IUL7PU4P.js +0 -1
  191. package/dist/m/c-K4M76VPM.js +0 -7
  192. package/dist/m/c-M7ITYKMF.js +0 -1
  193. package/dist/m/c-MR75YPRT.js +0 -1
  194. package/dist/m/c-NHXOBD6A.js +0 -1
  195. package/dist/m/c-NVU3DORS.js +0 -1
  196. package/dist/m/c-PNZIJFG7.js +0 -1
  197. package/dist/m/c-RHPHMTF2.js +0 -2
  198. package/dist/m/c-RWJ3OSCP.js +0 -1
  199. package/dist/m/c-SGG6MUXW.js +0 -1
  200. package/dist/m/c-SXNSSHPP.js +0 -1
  201. package/dist/m/c-TFLRT5JX.js +0 -1
  202. package/dist/m/c-U65PREMC.js +0 -1
  203. package/dist/m/c-VMXCX52Q.js +0 -1
  204. package/dist/m/c-YYGUHSZR.js +0 -1
  205. package/dist/m/manifest-3B84C829.js +0 -1
  206. package/dist/m/manifest-edit-1CB79AD4.js +0 -1
  207. package/dist/m/plugins/quickcrop-X5MRIBAP.js +0 -26
  208. package/dist/m/plugins/sortable-365SRRL3.js +0 -1
  209. package/dist/m/plugins/undo-UES4KS7B.js +0 -1
  210. package/dist/m/reader-core-VR7EL4WV.js +0 -77
  211. package/dist/m/ui/index-MGTWOW2C.js +0 -1
  212. /package/dist/m/{c-QTTJYJMA.js → c-FILLTJA7.js} +0 -0
  213. /package/dist/m/plugins/{quickcrop-X5MRIBAP.js.LEGAL.txt → quickcrop-VNRXGRPC.js.LEGAL.txt} +0 -0
  214. /package/dist/m/plugins/{richclay-L3BZMX4I.js.LEGAL.txt → richclay-V6WKJTUF.js.LEGAL.txt} +0 -0
@@ -1,4 +1,4 @@
1
- import{a as ho,c as R}from"../c-OBMZASYQ.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as go}from"../c-7NCWENHV.js";import{P as So,Q as Do,f as lo,j as bo,k as po,l as ko,m as so,o as uo,r as xo,t as vo,y as wo}from"../c-JWW6BHWD.js";import"../c-GO635CRU.js";import"../c-V2V5FKXX.js";import{n as io}from"../c-DT7E76Z2.js";import"../c-C6YZNU6E.js";import"../c-7K4SCQB7.js";import"../c-WMRJKQ2V.js";import{A as Ao,B as Po,C as Co,I as Bo,b as ro,c as to,f as q,k as yo,p as zo,x as Eo}from"../c-AI3H6ETU.js";import{A as Q,E as Z,G as oo,J as eo,d as g,n as Y,x as J}from"../c-OH2FPYSY.js";import{a as V,c as Mo,d as T}from"../c-SXZYVXD6.js";import{a as fo}from"../c-Z6MROEQ4.js";import{a as mo}from"../c-Q26XHBLQ.js";import{a as co,b as ao,d as no}from"../c-FSQXFG5T.js";import{a as U,b as h,d as m,e as S,f as D,g as y,h as X,i as G}from"../c-RETTCOWO.js";import"../c-WCG6AKA7.js";import"../c-57XDY6HC.js";import{b as L}from"../c-NL4I4KNG.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-IJUK2GPW.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var{Decoration:$,DecorationSet:Ho}=m,_o="Type / for blocks",No="Untitled",Wo="To do";function Uo(o){let e=!1,r=null;return o.forEach((t,i)=>{e||t.type!==g.nodes.heading||t.attrs.level!==1||(t.attrs.parent??null)!==null||(e=!0,t.content.size||(r=$.node(i,i+t.nodeSize,{class:"blockeditor-title-placeholder","data-placeholder":No})))}),r}function Xo(o){let e=[];return o.forEach((r,t)=>{r.type!==g.nodes.list_item||r.attrs.kind!=="check"||r.content.size||r.attrs.checked||e.push($.node(t,t+r.nodeSize,{class:"blockeditor-check-placeholder","data-placeholder":Wo}))}),e}function Fo(o=_o){return new h.Plugin({props:{decorations(e){let r=Xo(e.doc),t=Uo(e.doc);t&&r.push(t);let{selection:i}=e;if(i.empty){let d=i.$from;if(d.depth===1){let c=d.parent;if(c.type===g.nodes.paragraph&&!c.content.size){let n=d.before(1);r.push($.node(n,n+c.nodeSize,{class:"blockeditor-placeholder","data-placeholder":o}))}}}return r.length?Ho.create(e.doc,r):null}}})}var To=new h.Plugin({props:{handleKeyDown(o,e){if(!(e.metaKey||e.ctrlKey)||!e.shiftKey||e.altKey)return!1;let r=e.key.toLowerCase()==="o"?"owner":e.key.toLowerCase()==="d"?"date":null;if(!r||o.dom.getAttribute(r==="owner"?"data-assignees":"data-dates")==="false")return!1;for(let t of co.get(o)??[])if(t.focusControl?.(o,r))return!0;return!1}}});var Oo="blockeditor-editor-style",Go=[1,2,3,4,5,6,7,8],Yo=`
1
+ import{a as ho,c as R}from"../c-OBMZASYQ.js";import"../c-IW6GGOU2.js";import"../c-HAWFNBYG.js";import{b as go}from"../c-7NCWENHV.js";import{P as So,Q as Mo,f as lo,j as bo,k as po,l as ko,m as so,o as uo,r as xo,t as vo,y as wo}from"../c-LUBZU4AZ.js";import"../c-GO635CRU.js";import"../c-V2V5FKXX.js";import{n as io}from"../c-T7LOTEWO.js";import"../c-A3OKSYRI.js";import"../c-7K4SCQB7.js";import"../c-WMRJKQ2V.js";import{A as Ao,B as Po,C as Co,I as Bo,b as ro,c as to,f as V,k as yo,p as zo,x as Eo}from"../c-3Y234AUB.js";import{A as Q,E as Z,G as oo,J as eo,d as g,n as Y,x as J}from"../c-OH2FPYSY.js";import{a as q,c as Do,d as T}from"../c-XCOQNISP.js";import{a as fo}from"../c-Z6MROEQ4.js";import{a as mo}from"../c-Q26XHBLQ.js";import{a as co,b as ao,d as no}from"../c-FSQXFG5T.js";import{a as U,b as h,d as m,e as S,f as M,g as y,h as X,i as G}from"../c-RETTCOWO.js";import"../c-JC4RZW4E.js";import"../c-57XDY6HC.js";import{b as L}from"../c-NL4I4KNG.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-MZCOGNZL.js";import"../c-IJUK2GPW.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var{Decoration:$,DecorationSet:_o}=m,No="Type / for blocks",Wo="Untitled",Uo="To do";function Xo(o){let e=!1,r=null;return o.forEach((t,i)=>{e||t.type!==g.nodes.heading||t.attrs.level!==1||(t.attrs.parent??null)!==null||(e=!0,t.content.size||(r=$.node(i,i+t.nodeSize,{class:"blockeditor-title-placeholder","data-placeholder":Wo})))}),r}function Go(o){let e=[];return o.forEach((r,t)=>{r.type!==g.nodes.list_item||r.attrs.kind!=="check"||r.content.size||r.attrs.checked||e.push($.node(t,t+r.nodeSize,{class:"blockeditor-check-placeholder","data-placeholder":Uo}))}),e}function Fo(o=No){return new h.Plugin({props:{decorations(e){let r=Go(e.doc),t=Xo(e.doc);t&&r.push(t);let{selection:i}=e;if(i.empty){let d=i.$from;if(d.depth===1){let c=d.parent;if(c.type===g.nodes.paragraph&&!c.content.size){let b=d.before(1);r.push($.node(b,b+c.nodeSize,{class:"blockeditor-placeholder","data-placeholder":o}))}}}return r.length?_o.create(e.doc,r):null}}})}var To=new h.Plugin({props:{handleKeyDown(o,e){if(!(e.metaKey||e.ctrlKey)||!e.shiftKey||e.altKey)return!1;let r=e.key.toLowerCase()==="o"?"owner":e.key.toLowerCase()==="d"?"date":null;if(!r||o.dom.getAttribute(r==="owner"?"data-assignees":"data-dates")==="false")return!1;for(let t of co.get(o)??[])if(t.focusControl?.(o,r))return!0;return!1}}});var Oo="blockeditor-editor-style",Yo=[1,2,3,4,5,6,7,8],Jo=`
2
2
  --blockeditor-bg: #F7F6F2; --blockeditor-ink: #23221F; --blockeditor-ink-soft: #6B6862; --blockeditor-ink-faint: #9B968C;
3
3
  --blockeditor-rule: rgba(35, 34, 31, 0.10); --blockeditor-accent: #2F5E9E; --blockeditor-link: #164583; --blockeditor-selection: rgba(88, 120, 170, 0.20);
4
4
  --blockeditor-check-border: rgba(35, 34, 31, 0.35); --blockeditor-check-fill: #23221F; --blockeditor-check-ink: #F7F6F2;
@@ -33,9 +33,9 @@ import{a as ho,c as R}from"../c-OBMZASYQ.js";import"../c-IW6GGOU2.js";import"../
33
33
  --blockeditor-pop-shadow: 0 1px 2px rgba(10, 10, 9, 0.3), 0 10px 28px rgba(10, 10, 9, 0.35); --blockeditor-pop-hover: rgba(231, 228, 220, 0.07);
34
34
  --blockeditor-scrim: rgba(10, 10, 9, 0.35);
35
35
  --blockeditor-danger: #E08A7A; --blockeditor-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;`,Jo=`
36
+ --chart-1: #8DB0E6; --chart-2: #D9A0C8; --chart-3: #A9C98B; --chart-4: #BBA6E6; --chart-5: #E0B47A; --chart-6: #A3A098;`,Qo=`
37
37
  @layer blockeditor {
38
- :where(article[data-blockeditor], .blockeditor-shell) {${Yo}
38
+ :where(article[data-blockeditor], .blockeditor-shell) {${Jo}
39
39
  --chart-1: #2F5E9E; --chart-2: #164583; --chart-3: #5B5953; --chart-4: #8A3B6E; --chart-5: #3E6A28; --chart-6: #8A5A1E;
40
40
  --blockeditor-ink-strong: var(--blockeditor-ink); --blockeditor-caret: var(--blockeditor-accent);
41
41
  --blockeditor-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --blockeditor-font-display: var(--blockeditor-font); --blockeditor-font-heading: var(--blockeditor-font);
@@ -76,7 +76,7 @@ import{a as ho,c as R}from"../c-OBMZASYQ.js";import"../c-IW6GGOU2.js";import"../
76
76
  :where(article[data-blockeditor], .blockeditor-editor) hr { border: 0; border-top: 1px solid var(--blockeditor-rule); margin-block: 1.2em; }
77
77
  :where(article[data-blockeditor], .blockeditor-editor) .blockeditor-hidden { display: none; }
78
78
  :where(article[data-blockeditor], .blockeditor-editor) .blockeditor-li { position: relative; --li-indent: 0; padding-inline-start: calc((var(--li-indent) + 1) * var(--blockeditor-indent)); }
79
- ${Go.map(o=>`:where(article[data-blockeditor], .blockeditor-editor) .blockeditor-li[data-indent="${o}"] { --li-indent: ${o}; }`).join(`
79
+ ${Yo.map(o=>`:where(article[data-blockeditor], .blockeditor-editor) .blockeditor-li[data-indent="${o}"] { --li-indent: ${o}; }`).join(`
80
80
  `)}
81
81
  :where(article[data-blockeditor], .blockeditor-editor) .blockeditor-li::before { position: absolute; inset-inline-start: calc(var(--li-indent) * var(--blockeditor-indent)); width: var(--blockeditor-indent); text-align: center; color: var(--blockeditor-marker); content: "\\2022"; }
82
82
  :where(article[data-blockeditor], .blockeditor-editor) .blockeditor-li[data-kind="bullet"]::before { content: ""; box-sizing: border-box; width: var(--blockeditor-bullet-size); height: var(--blockeditor-bullet-size); top: calc((1em * var(--blockeditor-line-height) - var(--blockeditor-bullet-size)) / 2); inset-inline-start: calc(var(--li-indent) * var(--blockeditor-indent) + (var(--blockeditor-indent) - var(--blockeditor-bullet-size)) / 2); border-radius: 50%; background: currentColor; }
@@ -304,4 +304,4 @@ ${Go.map(o=>`:where(article[data-blockeditor], .blockeditor-editor) .blockeditor
304
304
  .blockeditor-dock, .blockeditor-plus, .blockeditor-grip, .blockeditor-toggle-button, .blockeditor-image-handle, .blockeditor-upload-bar > span, .blockeditor-board-person { transition: none; }
305
305
  }
306
306
  }
307
- `,Qo=(o,e)=>(e&&e(o.tr.replaceSelectionWith(g.nodes.hard_break.create()).scrollIntoView()),!0),Zo=(o,e,r)=>!e||!r?.editable||!Y(o,g.marks.underline)?!1:(import("../c-TCFVG3I4.js").then(({formatMark:t,refuse:i})=>t(r,"underline").then(d=>{d?.status!=="applied"&&i(r,d?.message??"That format isn\u2019t available here.")}),()=>null),!0),oe=({history:o=!0,undo:e,redo:r}={})=>({"Mod-z":o?S.undo:()=>(e?.(),!0),"Shift-Mod-z":o?S.redo:()=>(r?.(),!0),"Mod-y":o?S.redo:()=>(r?.(),!0),"Shift-Enter":Qo,"Mod-b":y.toggleMark(g.marks.strong),"Mod-i":y.toggleMark(g.marks.em),"Mod-u":Zo}),ee=(o,e,r)=>bo(null,r)?!1:X.undoInputRule(o,e&&(t=>e(Co(t)))),re={Backspace:y.chainCommands(ee,so),"Mod-e":y.toggleMark(g.marks.code),"Mod-Shift-s":y.toggleMark(g.marks.strike)},te=(o,e)=>globalThis.clay?.upload?.(o,e)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Ko=new WeakMap,O=new h.PluginKey("lazyViews"),H=class{constructor(e,r){this.node=e,this.type=e.type,this.registry=r;let{dom:t,contentDOM:i}=U.DOMSerializer.renderSpec(document,e.type.spec.toDOM(e));this.dom=t,this.contentDOM=i??null}update(e){return e.type===this.type&&!this.registry.has(e.type.name)}};function ie(){return new h.Plugin({key:O,state:{init:()=>m.DecorationSet.empty,apply(o){let e=o.getMeta(O);if(!e)return m.DecorationSet.empty;let r=[];return o.doc.forEach((t,i)=>{e.types.includes(t.type.name)&&r.push(m.Decoration.node(i,i+t.nodeSize,{},{lazyView:r.length+1}))}),m.DecorationSet.create(o.doc,r)}},props:{decorations:o=>O.getState(o)}})}function de({view:o,upload:e,toolHost:r,board:t=null,undo:i=null,redo:d=null,revise:c=null,highlight:n},s,u){let x=u.createFeature({view:o,upload:e,toolHost:r,board:t,undo:i,redo:d,revise:c,highlight:n}),z=Ko.get(o),E=()=>{if(x.css&&L(`blockeditor-feature-${s}`,x.css,`blockeditor-feature-${s}`,["editor-ui"]),!x.nodeViews)return;let P=Object.keys(x.nodeViews);for(let v of P)z.set(v,x.nodeViews[v]);o.dispatch(o.state.tr.setMeta(O,{types:P}).setMeta("addToHistory",!1))},A=()=>{o.isDestroyed||(o.composing?setTimeout(A,25):E())};return o.composing?o.dom.addEventListener("compositionend",()=>setTimeout(A,25),{once:!0}):E(),x}function le(o){return new h.Plugin({view(e){let r=new Set,t=()=>{for(let d of r)o.has(d)&&r.delete(d);e.state.doc.forEach(d=>{let c=Mo(d);!c||o.has(c)||r.has(c)||o.ensure(c).catch(()=>{r.add(c)})})},i=e.state.doc;return t(),{update(){e.state.doc!==i&&(i=e.state.doc,t())}}}})}function ce({load:o=()=>Promise.reject(new Error("page: this editor has no command module")),context:e=()=>({}),reportError:r}={}){let t=new Map,i=new Set,d=null,c=null,n=!0,s=!1,u=0,x=a=>{let b=t.get(a);return b||(b=Promise.resolve(o(a)),t.set(a,b),b.catch(()=>{t.get(a)===b&&t.delete(a)})),b},z=()=>(c??=R({load:x,install:(a,b)=>b.createFeature(e(d)),reportError:r??((a,b)=>console.error(`clayjs: the ${b} command failed to load`,a))}),c),E=()=>{let a=u,b=d.state.selection;return{revision:a,selection:b,valid:()=>n&&!s&&!d.isDestroyed&&u===a&&d.state.selection.eq(b)}};function A(a,b){a.doc!==b.doc&&(u+=1);for(let p of i)p.lease.valid()||(i.delete(p),p.controller.abort({ok:!1,code:"stale-target"}))}async function P(a,b){if(!n||s||!d||d.isDestroyed)return{ok:!1,code:"not-editing"};let p={lease:E(),controller:new AbortController};i.add(p);try{let w=await z().ensure(a,{signal:p.controller.signal});return w?p.lease.valid()?await w.run(b):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(w){return p.controller.signal.aborted?p.controller.signal.reason:{ok:!1,code:"unavailable",error:w}}finally{i.delete(p)}}function v(){if(n){n=!1;for(let a of i)a.controller.abort({ok:!1,code:"not-editing"});i.clear()}}function M(){v(),c?.dispose(),c=null}return{attach(a){d=a},observe:A,run:P,enter(){s||(n=!0)},quiesce:v,leave:M,dispose(){M(),s=!0,n=!1,t.clear()}}}var _=new WeakMap;function ae(o){return new h.Plugin({view:()=>({update:(e,r)=>o.observe(e.state,r)}),props:{handleTextInput(e,r,t,i){return i!=="@"||e.composing||!Object.hasOwn(T,"mentions")?!1:(e.dispatch(e.state.tr.insertText("@",r,t)),o.run("mentions",{from:r,to:r+1}),!0)}}})}function _e(o,e,r){let t=o?_.get(o):null;return t?Object.hasOwn(T,e)?t.run(e,r):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function ne(o){return new h.Plugin({view(e){let r=o?()=>o.tablesChanged():()=>mo.get(e)?.tablesChanged?.(),t=e.state.doc;return{update(i){i.state.doc!==t&&(t=i.state.doc,r())}}}})}function be({upload:o=te,highlight:e,history:r=!0,undo:t,redo:i,onAiTool:d=null,mediaNote:c=null,toolHost:n=null,features:s=null,commandHost:u=null}={}){return[to(),wo({onAiTool:d,mediaNote:c}),u?ae(u):null,vo(),ne(n),ro(),uo(),Bo(),po(),ko(),Fo(),ho(),D.keymap(re),So,To,D.keymap(Po),D.keymap(oe({history:r,undo:t,redo:i})),D.keymap(y.baseKeymap),yo(),eo(),Do(),no(),lo({upload:o}),Eo(),io({upload:o,features:s}),go(),Ao(),fo(),xo(),r?S.history():null,G.gapCursor(),ie(),s?le(s):null].filter(Boolean)}function pe(o,e={}){let r=o&&Object.keys(o).length?o:{[Q()]:{t:"paragraph",pos:J(),c:""}},t=e.doc??oo(g,r);return h.EditorState.create({doc:t,plugins:be(e)})}function Ne(o){!o||o.isDestroyed||o.updateState(o.state)}function We(o,e,{quiesce:r=!1}={}){if(!o||o.isDestroyed)return!1;let t=e===!0;o.setProps({editable:()=>t});let i=_.get(o);return t?i?.enter():r?i?.quiesce():i?.leave(),t}function ke(o,e){let r=e.target.closest?.('.blockeditor-li[data-kind="check"]');if(!r||!o.dom.contains(r))return!1;let t=r.getBoundingClientRect(),i=parseFloat(getComputedStyle(r).paddingInlineStart)||0,d=getComputedStyle(r).direction==="rtl"?t.right-e.clientX:e.clientX-t.left;if(d<0||d>i)return!1;let c=o.posAtDOM(r,0)-1,n=o.state.doc.nodeAt(c);return n?(e.preventDefault(),o.dispatch(o.state.tr.setNodeMarkup(c,null,{...n.attrs,checked:!n.attrs.checked})),!0):!1}function Ue(o,{blocks:e=null,onChange:r=null,upload:t,highlight:i,doc:d,dispatch:c,history:n=!0,undo:s,redo:u,editable:x=!0,toolHost:z=null,onAiTool:E=null,mediaNote:A=null,reviseTool:P=null,board:v=null,features:M=null,formatGate:a=null}={}){let b=o.ownerDocument;L(Oo,Jo,Oo,["editor-ui"]);let p=b.createElement("div");p.className="blockeditor-shell",p.setAttribute("clay","editor-ui"),p.setAttribute("sap-ignore",""),o.appendChild(p);let w=!1,k=null,j=M??R({load:l=>V[l].load(),install:(l,f)=>de({view:k,upload:t,toolHost:z,board:v,undo:s,redo:u,revise:P,highlight:i},l,f)}),F=ce({load:l=>T[l].load(),context:l=>({view:l,upload:t})}),K=new Map,N={};for(let l of Object.values(V))for(let f of l.views??l.types)N[f]=(B,Ro,qo,Vo,$o)=>{let W=K.get(B.type.name);return W?W(B,Ro,qo,Vo,$o):new H(B,K)};k=new m.EditorView(p,{state:pe(e,{upload:t,highlight:i,doc:d,history:n,undo:s,redo:u,onAiTool:E,mediaNote:A,toolHost:z,features:j,commandHost:F}),attributes:{class:"blockeditor-editor"},scrollMargin:{top:16,bottom:96,left:5,right:5},scrollThreshold:{top:16,bottom:96,left:0,right:0},editable:()=>x,nodeViews:N,handleDOMEvents:{mousedown:ke,dragstart(l,f){let B=l.state.selection;return B instanceof h.NodeSelection||B instanceof zo?(f.preventDefault(),!0):!1}},dispatchTransaction(l){if(c){c(l);return}w&&l.docChanged&&!l.getMeta(q)&&S.closeHistory(l),l.docChanged&&(w=!!l.getMeta(q));let f=k.state.doc;k.updateState(k.state.apply(l)),r&&k.state.doc!==f&&r(Z(k.state.doc))}}),Ko.set(k,K),ao.set(k,j),F.attach(k),_.set(k,F);let Io=k.destroy.bind(k),C=null,I=!1,Lo=()=>(C||(C=Promise.resolve().then(()=>a()).catch(l=>{throw C=null,l})),C);return k.runFormatCommand=async l=>{if(I)return{status:"disposed",retry:!1};if(!a)return{status:"unsupported-host",code:"blockeditor-format-unsupported",retry:!1};let f=await Lo();return I?(f.dispose?.(),{status:"disposed",retry:!1}):f.run({apply:l})},k.destroy=()=>{I=!0,C&&C.then(l=>l?.dispose?.(),()=>{}),F.dispose(),j.dispose(),Io()},k}export{Jo as PAGE_EDITOR_CSS,pe as blockeditorState,Ue as createPageEditor,de as installPageFeature,O as lazyViewsKey,ie as lazyViewsPlugin,be as pagePlugins,Ne as refreshMountedView,_e as runPageCommand,We as setEditorActive};
307
+ `,Zo=(o,e)=>(e&&e(o.tr.replaceSelectionWith(g.nodes.hard_break.create()).scrollIntoView()),!0),oe=(o,e,r)=>!e||!r?.editable||!Y(o,g.marks.underline)?!1:(import("../c-BHLYQGTA.js").then(({formatMark:t,refuse:i})=>t(r,"underline").then(d=>{d?.status!=="applied"&&i(r,d?.message??"That format isn\u2019t available here.")}),()=>null),!0),ee=({history:o=!0,undo:e,redo:r}={})=>({"Mod-z":o?S.undo:()=>(e?.(),!0),"Shift-Mod-z":o?S.redo:()=>(r?.(),!0),"Mod-y":o?S.redo:()=>(r?.(),!0),"Shift-Enter":Zo,"Mod-b":y.toggleMark(g.marks.strong),"Mod-i":y.toggleMark(g.marks.em),"Mod-u":oe}),re=(o,e,r)=>bo(null,r)?!1:X.undoInputRule(o,e&&(t=>e(Co(t)))),te={Backspace:y.chainCommands(re,so),"Mod-e":y.toggleMark(g.marks.code),"Mod-Shift-s":y.toggleMark(g.marks.strike)},ie=(o,e)=>globalThis.clay?.upload?.(o,e)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),Io=new WeakMap,O=new h.PluginKey("lazyViews"),H=class{constructor(e,r){this.node=e,this.type=e.type,this.registry=r;let{dom:t,contentDOM:i}=U.DOMSerializer.renderSpec(document,e.type.spec.toDOM(e));this.dom=t,this.contentDOM=i??null}update(e){return e.type===this.type&&!this.registry.has(e.type.name)}};function de(){return new h.Plugin({key:O,state:{init:()=>m.DecorationSet.empty,apply(o){let e=o.getMeta(O);if(!e)return m.DecorationSet.empty;let r=[];return o.doc.forEach((t,i)=>{e.types.includes(t.type.name)&&r.push(m.Decoration.node(i,i+t.nodeSize,{},{lazyView:r.length+1}))}),m.DecorationSet.create(o.doc,r)}},props:{decorations:o=>O.getState(o)}})}function le({view:o,upload:e,toolHost:r,board:t=null,undo:i=null,redo:d=null,revise:c=null,highlight:b},s,u){let x=u.createFeature({view:o,upload:e,toolHost:r,board:t,undo:i,redo:d,revise:c,highlight:b}),z=Io.get(o),E=()=>{if(x.css&&L(`blockeditor-feature-${s}`,x.css,`blockeditor-feature-${s}`,["editor-ui"]),!x.nodeViews)return;let P=Object.keys(x.nodeViews);for(let v of P)z.set(v,x.nodeViews[v]);o.dispatch(o.state.tr.setMeta(O,{types:P}).setMeta("addToHistory",!1))},A=()=>{o.isDestroyed||(o.composing?setTimeout(A,25):E())};return o.composing?o.dom.addEventListener("compositionend",()=>setTimeout(A,25),{once:!0}):E(),x}function ce(o){return new h.Plugin({view(e){let r=new Set,t=()=>{for(let d of r)o.has(d)&&r.delete(d);e.state.doc.forEach(d=>{let c=Do(d);!c||o.has(c)||r.has(c)||o.ensure(c).catch(()=>{r.add(c)})})},i=e.state.doc;return t(),{update(){e.state.doc!==i&&(i=e.state.doc,t())}}}})}function ae({load:o=()=>Promise.reject(new Error("page: this editor has no command module")),context:e=()=>({}),reportError:r}={}){let t=new Map,i=new Set,d=null,c=null,b=!0,s=!1,u=0,x=a=>{let n=t.get(a);return n||(n=Promise.resolve(o(a)),t.set(a,n),n.catch(()=>{t.get(a)===n&&t.delete(a)})),n},z=()=>(c??=R({load:x,install:(a,n)=>n.createFeature(e(d)),reportError:r??((a,n)=>console.error(`clayjs: the ${n} command failed to load`,a))}),c),E=()=>{let a=u,n=d.state.selection;return{revision:a,selection:n,valid:()=>b&&!s&&!d.isDestroyed&&u===a&&d.state.selection.eq(n)}};function A(a,n){a.doc!==n.doc&&(u+=1);for(let p of i)p.lease.valid()||(i.delete(p),p.controller.abort({ok:!1,code:"stale-target"}))}async function P(a,n){if(!b||s||!d||d.isDestroyed)return{ok:!1,code:"not-editing"};let p={lease:E(),controller:new AbortController};i.add(p);try{let w=await z().ensure(a,{signal:p.controller.signal});return w?p.lease.valid()?await w.run(n):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(w){return p.controller.signal.aborted?p.controller.signal.reason:{ok:!1,code:"unavailable",error:w}}finally{i.delete(p)}}function v(){if(b){b=!1;for(let a of i)a.controller.abort({ok:!1,code:"not-editing"});i.clear()}}function D(){v(),c?.dispose(),c=null}return{attach(a){d=a},observe:A,run:P,enter(){s||(b=!0)},quiesce:v,leave:D,dispose(){D(),s=!0,b=!1,t.clear()}}}var _=new WeakMap;function ne(o){return new h.Plugin({view:()=>({update:(e,r)=>o.observe(e.state,r)}),props:{handleTextInput(e,r,t,i){return i!=="@"||e.composing||!Object.hasOwn(T,"mentions")?!1:(e.dispatch(e.state.tr.insertText("@",r,t)),o.run("mentions",{from:r,to:r+1}),!0)}}})}function Ne(o,e,r){let t=o?_.get(o):null;return t?Object.hasOwn(T,e)?t.run(e,r):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function be(o){return new h.Plugin({view(e){let r=o?()=>o.tablesChanged():()=>mo.get(e)?.tablesChanged?.(),t=e.state.doc;return{update(i){i.state.doc!==t&&(t=i.state.doc,r())}}}})}function pe({upload:o=ie,highlight:e,history:r=!0,undo:t,redo:i,onAiTool:d=null,mediaNote:c=null,toolHost:b=null,features:s=null,commandHost:u=null}={}){return[to(),wo({onAiTool:d,mediaNote:c}),u?ne(u):null,vo(),be(b),ro(),uo(),Bo(),po(),ko(),Fo(),ho(),M.keymap(te),So,To,M.keymap(Po),M.keymap(ee({history:r,undo:t,redo:i})),M.keymap(y.baseKeymap),yo(),eo(),Mo(),no(),lo({upload:o}),Eo(),io({upload:o,features:s}),go(),Ao(),fo(),xo(),r?S.history():null,G.gapCursor(),de(),s?ce(s):null].filter(Boolean)}function ke(o,e={}){let r=o&&Object.keys(o).length?o:{[Q()]:{t:"paragraph",pos:J(),c:""}},t=e.doc??oo(g,r);return h.EditorState.create({doc:t,plugins:pe(e)})}function We(o){!o||o.isDestroyed||o.updateState(o.state)}function Ue(o,e,{quiesce:r=!1}={}){if(!o||o.isDestroyed)return!1;let t=e===!0;o.setProps({editable:()=>t});let i=_.get(o);return t?i?.enter():r?i?.quiesce():i?.leave(),t}function se(o,e){let r=e.target.closest?.('.blockeditor-li[data-kind="check"]');if(!r||!o.dom.contains(r))return!1;let t=r.getBoundingClientRect(),i=parseFloat(getComputedStyle(r).paddingInlineStart)||0,d=getComputedStyle(r).direction==="rtl"?t.right-e.clientX:e.clientX-t.left;if(d<0||d>i)return!1;let c=o.posAtDOM(r,0)-1,b=o.state.doc.nodeAt(c);return b?(e.preventDefault(),o.dispatch(o.state.tr.setNodeMarkup(c,null,{...b.attrs,checked:!b.attrs.checked})),!0):!1}function Ko(o,e){let r=parseFloat(o.defaultView?.getComputedStyle(o.documentElement).scrollPaddingTop);return Number.isFinite(r)?Math.max(e,r):e}function Xe(o,{blocks:e=null,onChange:r=null,upload:t,highlight:i,doc:d,dispatch:c,history:b=!0,undo:s,redo:u,editable:x=!0,toolHost:z=null,onAiTool:E=null,mediaNote:A=null,reviseTool:P=null,board:v=null,features:D=null,formatGate:a=null}={}){let n=o.ownerDocument;L(Oo,Qo,Oo,["editor-ui"]);let p=n.createElement("div");p.className="blockeditor-shell",p.setAttribute("clay","editor-ui"),p.setAttribute("sap-ignore",""),o.appendChild(p);let w=!1,k=null,j=D??R({load:l=>q[l].load(),install:(l,f)=>le({view:k,upload:t,toolHost:z,board:v,undo:s,redo:u,revise:P,highlight:i},l,f)}),F=ae({load:l=>T[l].load(),context:l=>({view:l,upload:t})}),K=new Map,N={};for(let l of Object.values(q))for(let f of l.views??l.types)N[f]=(B,Vo,qo,$o,Ho)=>{let W=K.get(B.type.name);return W?W(B,Vo,qo,$o,Ho):new H(B,K)};k=new m.EditorView(p,{state:ke(e,{upload:t,highlight:i,doc:d,history:b,undo:s,redo:u,onAiTool:E,mediaNote:A,toolHost:z,features:j,commandHost:F}),attributes:{class:"blockeditor-editor"},scrollMargin:{get top(){return Ko(n,16)},bottom:96,left:5,right:5},scrollThreshold:{get top(){return Ko(n,16)},bottom:96,left:0,right:0},editable:()=>x,nodeViews:N,handleDOMEvents:{mousedown:se,dragstart(l,f){let B=l.state.selection;return B instanceof h.NodeSelection||B instanceof zo?(f.preventDefault(),!0):!1}},dispatchTransaction(l){if(c){c(l);return}w&&l.docChanged&&!l.getMeta(V)&&S.closeHistory(l),l.docChanged&&(w=!!l.getMeta(V));let f=k.state.doc;k.updateState(k.state.apply(l)),r&&k.state.doc!==f&&r(Z(k.state.doc))}}),Io.set(k,K),ao.set(k,j),F.attach(k),_.set(k,F);let Lo=k.destroy.bind(k),C=null,I=!1,Ro=()=>(C||(C=Promise.resolve().then(()=>a()).catch(l=>{throw C=null,l})),C);return k.runFormatCommand=async l=>{if(I)return{status:"disposed",retry:!1};if(!a)return{status:"unsupported-host",code:"blockeditor-format-unsupported",retry:!1};let f=await Ro();return I?(f.dispose?.(),{status:"disposed",retry:!1}):f.run({apply:l})},k.destroy=()=>{I=!0,C&&C.then(l=>l?.dispose?.(),()=>{}),F.dispose(),j.dispose(),Lo()},k}export{Qo as PAGE_EDITOR_CSS,ke as blockeditorState,Xe as createPageEditor,le as installPageFeature,O as lazyViewsKey,de as lazyViewsPlugin,pe as pagePlugins,We as refreshMountedView,Ne as runPageCommand,Ue as setEditorActive};
@@ -1,6 +1,6 @@
1
- import{a as Le}from"../c-AQYCG7QW.js";import{c as Ae}from"../c-SUAC5RSG.js";import{e as Ke,g as F,h as ze,j as le,l as Te,n as Ce,p as Ge,q as d}from"../c-MR75YPRT.js";import{a as qe}from"../c-4JZDZFF6.js";import{b as G,c as Se,d as se,e as x,f as We}from"../c-5RZNFTWD.js";import{b as O}from"../c-PKCCHJ5X.js";import{b as Ue}from"../c-FJDTDGDA.js";import{a as de,b as Ve}from"../c-QTTJYJMA.js";import{b as h}from"../c-NUHP2XDB.js";import"../c-QCDVDZIR.js";import{a as $e}from"../c-VKEDWYDF.js";import{n as je,o as ce}from"../c-VMXCX52Q.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-ZPI7M5U5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Ee}from"../c-MZCOGNZL.js";import"../c-MFB74XVN.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-KU3PX7LL.js";import"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import{k as Be}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-PNZIJFG7.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{h as ee,o as _e}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var tt="ai-edit",xt="h1,h2,h3,h4,h5,h6,p,figure",vt="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",Et="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",nt="script,style,template,textarea,input,select,button,iframe,svg,math",St="This section is too large for AI editing. Select a smaller part.",Oe="The save did not finish; the edit is still on the page.",Tt=0,o=null,a,w,u,T,A,m,b,v,R,_,$,W,D,B={},p=null,C=null,N=null,ue=!1,re=new WeakMap,He=new Set,f=null,Z=null,S=null,z,q,pe=null,k=null,Y=null,L=null,te=null,he=[],V=null,H=null,Re=0;function we(e){re.delete(e),He.delete(e)}function be(e,t){if(!t){we(e);return}re.set(e,t),He.add(e)}var it="clay-ai-edit",Ye="AI editing is turned off. Turn it on from the app\u2019s menu.";async function rt(){let t=(await Ae.helpers()).find(n=>n.name===tt);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}var K=()=>window.clay?.blockeditor?.ai||null,Ct=()=>!!window.clay?.editPlugins?.includes("blockeditor")&&!!document.querySelector("article[data-blockeditor]"),ye=()=>Ct()&&!K()?.active();function Lt(){Ee.pause()}function Ie(){Ee.resume()}function fe(e){if(!(e instanceof Element))return null;let t=e.closest("[data-edit-id]");if(!t)return null;let n=e.closest(xt);return n&&t.contains(n)?n:t}function At(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 xe(){let e=window.getSelection();return!e||e.rangeCount===0||e.isCollapsed?null:e.getRangeAt(0)}function ot(e){if(K()||ye())return null;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(ee)||t.closest(nt))return null;if(t.closest("[data-edit-id]"))return fe(t);let n=t.closest(vt)||t.closest(Et);return n&&n!==document.body?n:null}function at(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 r=i.toString().length;return{text:n,start:r,end:r+n.length}}function me(e){let t=xe();if(t){if(e===document.body){let n=t.toString();return n.trim()?{text:n,start:void 0,end:void 0}:void 0}return at(t,e)}}function st(){let e=document.body.cloneNode(!0);return e.querySelectorAll(ee).forEach(t=>t.remove()),e.outerHTML}function Mt(e,t,n){let{HyperMorph:i}=de();return i.morph(e,t,{morphStyle:"outerHTML",restoreFocus:!0,scripts:n})}function ge(e,t,{rewind:n=!1}={}){let{HyperMorph:i,mergeTagRecognizers:r}=de(),s=n?{merge:!1,handle:!1}:{mergeBase:e.snapshot,mergeTags:r,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(ee))}})):Mt(e.el,t,s),Ue()}function kt(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 r=document.createElement("template");r.innerHTML=i;let s=r.content.firstElementChild;return!s||s.tagName.toLowerCase()!==t.toLowerCase()?null:s}function Ot(e,t,n,{contextRefsOf:i,wantsPage:r}){let s=e===document.body,l=s?st():e.outerHTML,c={id:"req-"+Date.now().toString(36)+"-"+ ++Tt,editId:At(e),tag:e.tagName.toLowerCase(),elementHTML:l,comment:t,contextRefs:i(t)};return n&&(c.quote=n.text,Number.isInteger(n.start)&&(c.selection={start:n.start,end:n.end})),!s&&r(t)&&(c.page=!0),{id:c.id,el:e,docMode:s,tag:c.tag,reassertId:s?null:e.getAttribute("data-edit-id"),snapshot:l,payload:c,state:"requesting",paused:!1,handle:null,finalCandidate:null}}async function Rt(e,t,n){if(e.aiTarget)return Ht(e,t,n);let{MAX_PAYLOAD_BYTES:i,contextRefsOf:r,wantsPage:s}=await import("../c-TGSHHFO6.js");if(o=Ot(e,t,n,{contextRefsOf:r,wantsPage:s}),new Blob([JSON.stringify(o.payload)]).size>i){o=null,ie(St,"warn");return}if(be(e,t),mt(),o.paused=!0,Lt(),C={},P("working"),y("Sending\u2026"),o.payload.page&&await window.clay.save(),!o)return;let l=Ae.send(o.payload,{helper:tt,onStatus:({text:g})=>{o?.handle===l&&y(g)}});o.handle=l;let c=await l.done;!o||o.handle!==l||(await Ve(),!(!o||o.handle!==l)&&(c.state==="done"?_t(c.result||{}):c.state==="cancelled"?M("HTML Clay stopped this edit."):M(c.error||"the helper reported an error")))}async function Ht(e,t,n){let i={id:null,el:e,target:e,docMode:!1,state:"requesting",paused:!1,held:!1,handle:null,finalCandidate:null};o=i;let r;try{r=await e.start(t,n)}catch(g){M(g?.message||"the helper reported an error");return}if(o!==i)return;if(r.status!=="ok"){o=null,ie(r.message,"warn");return}i.id=r.id,be(e,t),mt(),C={},P("working"),y("Sending\u2026");let s=r.send({onStatus:({text:g})=>{o===i&&y(g)}});i.handle=s;let l=await s.done;if(o!==i)return;if(l.state!=="done"){l.state==="cancelled"?M("HTML Clay stopped this edit."):M(l.error||"the helper reported an error");return}i.state="deciding";let c;try{c=await e.propose(l.result||{})}catch(g){M(g?.message||"the reply could not be applied");return}if(o===i){if(c.status!=="ready"){M(c.message);return}we(e),P("ready"),y(lt(c.warnings||[],(l.result||{}).model),c.warnings?.length?"warn":"")}}var It=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,Pt=new Set(["iframe","frame","object","embed","base","link"]);function Dt(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Nt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Me(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Je(e){let t=new Map,n=i=>t.set(i,(t.get(i)||0)+1);for(let i of[e,...e.querySelectorAll("*")]){let r=i.tagName.toLowerCase();r==="script"?Nt(i)&&n("script "+Me(i)+"|"+i.textContent.trim()):(Pt.has(r)||r==="meta"&&i.hasAttribute("http-equiv")||(r==="animate"||r==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(r+" "+Me(i));for(let s of i.attributes){let l=s.name.toLowerCase();It.test(l)?n(r+" "+l+"="+s.value.trim()):l==="srcdoc"?n(r+" srcdoc="+s.value):Dt(s.value)&&n(r+" "+l+"="+s.value)}}return t}function Ft(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})(),r=i?Je(i):new Map;for(let[s,l]of Je(e))if(l>(r.get(s)||0))return!0;return!1}var Bt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function _t(e){if(!o||o.state!=="requesting")return;o.state="deciding";let t=[],n=kt(e.html||"",o.tag);if(!n){M(`reply is not a single <${o.tag}> element`);return}if(!o.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(o.reassertId&&n.setAttribute("data-edit-id",o.reassertId),Ft(n,o.snapshot,o.docMode)){M(Bt);return}je(),o.held=!0,o.finalCandidate=n;try{ge(o,n)}catch(i){M("the reply could not be applied: "+(i?.message||i));return}E(),we(o.el),P("ready"),y(lt(t,e.model),t.length?"warn":"")}function lt(e,t){let n=["Edit ready.",...e.map(i=>"\u26A0 "+i)];return t&&n.push(`(${t})`),n.join(" ")}function M(e){o&&(oe(),P("error"),y(e,"warn"))}function oe(){let e=o;if(o=null,!!e){if(e.target){e.target.discard(),E();return}try{(e.state==="requesting"||e.state==="deciding")&&de()&&ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce(),E()}}}async function ct(){let e=o;if(!e)return;if(o=null,e.target)return $t(e.target);let t=e.docMode?st():e.el.outerHTML;try{ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce({replay:!1})}ge(e,t),E(),P("saving"),y("Saving\u2026");let n=C,i=await window.clay.save();if(n===C){if(i&&i.ok===!1){P("error"),y(i.msg||Oe,"warn");return}y(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),pt()}}async function $t(e){E(),P("saving"),y("Saving\u2026");let t=C,n;try{n=await e.keep()}catch(i){n={status:"failed",message:i?.message||Oe}}if(t===C){if(!n||n.status!=="kept"){P("error"),y(n&&n.message||Oe,"warn");return}y(n.message||"Saved"),pt()}}function dt(){o?.handle?.cancel(),oe(),Q()}var Xe=["z-index:99999","padding:0","display:inline-grid","place-items:center","line-height:1",`box-shadow:${se}`];function j(e,t,n){return e.setAttribute(t,n),e}function Wt(){let{signal:e}=te;V=document.createElement("style"),V.setAttribute("clay",Ke),V.textContent=`
1
+ import{a as Le}from"../c-AQYCG7QW.js";import{c as Ae}from"../c-C5UGNOC2.js";import{a as Ke,c as F,d as ze,f as le,h as Te,j as Ce,l as Ge,m as d}from"../c-J2ZW4HMR.js";import"../c-A5LASUEZ.js";import{a as qe}from"../c-4JZDZFF6.js";import{b as G,c as Se,d as se,e as x,f as We}from"../c-5RZNFTWD.js";import{b as O}from"../c-PKCCHJ5X.js";import{b as Ue}from"../c-RGFPLQGV.js";import{a as de,b as Ve}from"../c-FILLTJA7.js";import{b as h}from"../c-NUHP2XDB.js";import"../c-QCDVDZIR.js";import{a as $e}from"../c-VKEDWYDF.js";import{n as je,o as ce}from"../c-FC5RUFPR.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-P73XPAOA.js";import"../c-ZPI7M5U5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Ee}from"../c-MZCOGNZL.js";import"../c-EHAR4RJJ.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-KU3PX7LL.js";import"../c-EQ5NBOGA.js";import"../c-IJUK2GPW.js";import{k as Be}from"../c-C7SUMNMI.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4TWEIKZ.js";import"../c-UW6MMZ4V.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-MOP5KBWZ.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{h as ee,o as _e}from"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var tt="ai-edit",xt="h1,h2,h3,h4,h5,h6,p,figure",vt="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",Et="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",nt="script,style,template,textarea,input,select,button,iframe,svg,math",St="This section is too large for AI editing. Select a smaller part.",Oe="The save did not finish; the edit is still on the page.",Tt=0,o=null,a,w,u,T,A,m,b,v,R,_,$,W,D,B={},p=null,C=null,N=null,ue=!1,re=new WeakMap,He=new Set,f=null,Z=null,S=null,z,q,pe=null,k=null,Y=null,L=null,te=null,he=[],V=null,H=null,Re=0;function we(e){re.delete(e),He.delete(e)}function be(e,t){if(!t){we(e);return}re.set(e,t),He.add(e)}var it="clay-ai-edit",Ye="AI editing is turned off. Turn it on from the app\u2019s menu.";async function rt(){let t=(await Ae.helpers()).find(n=>n.name===tt);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}var K=()=>window.clay?.blockeditor?.ai||null,Ct=()=>!!window.clay?.editPlugins?.includes("blockeditor")&&!!document.querySelector("article[data-blockeditor]"),ye=()=>Ct()&&!K()?.active();function Lt(){Ee.pause()}function Ie(){Ee.resume()}function fe(e){if(!(e instanceof Element))return null;let t=e.closest("[data-edit-id]");if(!t)return null;let n=e.closest(xt);return n&&t.contains(n)?n:t}function At(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 xe(){let e=window.getSelection();return!e||e.rangeCount===0||e.isCollapsed?null:e.getRangeAt(0)}function ot(e){if(K()||ye())return null;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(ee)||t.closest(nt))return null;if(t.closest("[data-edit-id]"))return fe(t);let n=t.closest(vt)||t.closest(Et);return n&&n!==document.body?n:null}function at(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 r=i.toString().length;return{text:n,start:r,end:r+n.length}}function me(e){let t=xe();if(t){if(e===document.body){let n=t.toString();return n.trim()?{text:n,start:void 0,end:void 0}:void 0}return at(t,e)}}function st(){let e=document.body.cloneNode(!0);return e.querySelectorAll(ee).forEach(t=>t.remove()),e.outerHTML}function Mt(e,t,n){let{HyperMorph:i}=de();return i.morph(e,t,{morphStyle:"outerHTML",restoreFocus:!0,scripts:n})}function ge(e,t,{rewind:n=!1}={}){let{HyperMorph:i,mergeTagRecognizers:r}=de(),s=n?{merge:!1,handle:!1}:{mergeBase:e.snapshot,mergeTags:r,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(ee))}})):Mt(e.el,t,s),Ue()}function kt(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 r=document.createElement("template");r.innerHTML=i;let s=r.content.firstElementChild;return!s||s.tagName.toLowerCase()!==t.toLowerCase()?null:s}function Ot(e,t,n,{contextRefsOf:i,wantsPage:r}){let s=e===document.body,l=s?st():e.outerHTML,c={id:"req-"+Date.now().toString(36)+"-"+ ++Tt,editId:At(e),tag:e.tagName.toLowerCase(),elementHTML:l,comment:t,contextRefs:i(t)};return n&&(c.quote=n.text,Number.isInteger(n.start)&&(c.selection={start:n.start,end:n.end})),!s&&r(t)&&(c.page=!0),{id:c.id,el:e,docMode:s,tag:c.tag,reassertId:s?null:e.getAttribute("data-edit-id"),snapshot:l,payload:c,state:"requesting",paused:!1,handle:null,finalCandidate:null}}async function Rt(e,t,n){if(e.aiTarget)return Ht(e,t,n);let{MAX_PAYLOAD_BYTES:i,contextRefsOf:r,wantsPage:s}=await import("../c-TGSHHFO6.js");if(o=Ot(e,t,n,{contextRefsOf:r,wantsPage:s}),new Blob([JSON.stringify(o.payload)]).size>i){o=null,ie(St,"warn");return}if(be(e,t),mt(),o.paused=!0,Lt(),C={},P("working"),y("Sending\u2026"),o.payload.page&&await window.clay.save(),!o)return;let l=Ae.send(o.payload,{helper:tt,onStatus:({text:g})=>{o?.handle===l&&y(g)}});o.handle=l;let c=await l.done;!o||o.handle!==l||(await Ve(),!(!o||o.handle!==l)&&(c.state==="done"?_t(c.result||{}):c.state==="cancelled"?M("HTML Clay stopped this edit."):M(c.error||"the helper reported an error")))}async function Ht(e,t,n){let i={id:null,el:e,target:e,docMode:!1,state:"requesting",paused:!1,held:!1,handle:null,finalCandidate:null};o=i;let r;try{r=await e.start(t,n)}catch(g){M(g?.message||"the helper reported an error");return}if(o!==i)return;if(r.status!=="ok"){o=null,ie(r.message,"warn");return}i.id=r.id,be(e,t),mt(),C={},P("working"),y("Sending\u2026");let s=r.send({onStatus:({text:g})=>{o===i&&y(g)}});i.handle=s;let l=await s.done;if(o!==i)return;if(l.state!=="done"){l.state==="cancelled"?M("HTML Clay stopped this edit."):M(l.error||"the helper reported an error");return}i.state="deciding";let c;try{c=await e.propose(l.result||{})}catch(g){M(g?.message||"the reply could not be applied");return}if(o===i){if(c.status!=="ready"){M(c.message);return}we(e),P("ready"),y(lt(c.warnings||[],(l.result||{}).model),c.warnings?.length?"warn":"")}}var It=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,Pt=new Set(["iframe","frame","object","embed","base","link"]);function Dt(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Nt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Me(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Je(e){let t=new Map,n=i=>t.set(i,(t.get(i)||0)+1);for(let i of[e,...e.querySelectorAll("*")]){let r=i.tagName.toLowerCase();r==="script"?Nt(i)&&n("script "+Me(i)+"|"+i.textContent.trim()):(Pt.has(r)||r==="meta"&&i.hasAttribute("http-equiv")||(r==="animate"||r==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(r+" "+Me(i));for(let s of i.attributes){let l=s.name.toLowerCase();It.test(l)?n(r+" "+l+"="+s.value.trim()):l==="srcdoc"?n(r+" srcdoc="+s.value):Dt(s.value)&&n(r+" "+l+"="+s.value)}}return t}function Ft(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})(),r=i?Je(i):new Map;for(let[s,l]of Je(e))if(l>(r.get(s)||0))return!0;return!1}var Bt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function _t(e){if(!o||o.state!=="requesting")return;o.state="deciding";let t=[],n=kt(e.html||"",o.tag);if(!n){M(`reply is not a single <${o.tag}> element`);return}if(!o.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(o.reassertId&&n.setAttribute("data-edit-id",o.reassertId),Ft(n,o.snapshot,o.docMode)){M(Bt);return}je(),o.held=!0,o.finalCandidate=n;try{ge(o,n)}catch(i){M("the reply could not be applied: "+(i?.message||i));return}E(),we(o.el),P("ready"),y(lt(t,e.model),t.length?"warn":"")}function lt(e,t){let n=["Edit ready.",...e.map(i=>"\u26A0 "+i)];return t&&n.push(`(${t})`),n.join(" ")}function M(e){o&&(oe(),P("error"),y(e,"warn"))}function oe(){let e=o;if(o=null,!!e){if(e.target){e.target.discard(),E();return}try{(e.state==="requesting"||e.state==="deciding")&&de()&&ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce(),E()}}}async function ct(){let e=o;if(!e)return;if(o=null,e.target)return $t(e.target);let t=e.docMode?st():e.el.outerHTML;try{ge(e,e.snapshot,{rewind:!0})}finally{e.paused&&Ie(),e.held&&ce({replay:!1})}ge(e,t),E(),P("saving"),y("Saving\u2026");let n=C,i=await window.clay.save();if(n===C){if(i&&i.ok===!1){P("error"),y(i.msg||Oe,"warn");return}y(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),pt()}}async function $t(e){E(),P("saving"),y("Saving\u2026");let t=C,n;try{n=await e.keep()}catch(i){n={status:"failed",message:i?.message||Oe}}if(t===C){if(!n||n.status!=="kept"){P("error"),y(n&&n.message||Oe,"warn");return}y(n.message||"Saved"),pt()}}function dt(){o?.handle?.cancel(),oe(),Q()}var Xe=["z-index:99999","padding:0","display:inline-grid","place-items:center","line-height:1",`box-shadow:${se}`];function j(e,t,n){return e.setAttribute(t,n),e}function Wt(){let{signal:e}=te;V=document.createElement("style"),V.setAttribute("clay",Ke),V.textContent=`
2
2
  [editmode\\:contenteditable][contenteditable]:focus {
3
3
  outline: 1px solid #4a4a6a; outline-offset: 4px; border-radius: 2px;
4
4
  }
5
5
  ::highlight(clay-ai-edit) { background-color: ${x["brass-soft"]} !important; }
6
- `,document.head.appendChild(V);let t=`color-scheme:${qe()}`;w=j(le("div",["box-sizing:content-box","position:fixed","z-index:99998","pointer-events:none",`border:2px solid ${x.brass}`,"border-radius:0",t]),"data-clay-ai-edit","ring"),d(w,!1),a=j(Te("div",["position:fixed","z-index:99999","width:min(28rem, calc(100vw - 32px))","padding:12px","border-radius:12px",`box-shadow:${se}`,`font:13px/1.5 ${G}`,t]),"data-clay-ai-edit","panel"),d(a,!1),a.setAttribute("role","dialog"),a.setAttribute("aria-label","AI edit");let n=(c,g)=>j(c,"data-clay-ai-edit-part",g);A=n(le("div",["position:absolute","width:12px","height:12px","pointer-events:none",`background:${x.surface}`,`border-left:1px solid ${x["line-2"]}`,`border-top:1px solid ${x["line-2"]}`]),"pointer"),d(A,!1),u=n(Ge("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 ${G}`]}),"input"),u.rows=1,u.placeholder="Describe the change",u.setAttribute("aria-label","Describe the change"),u.title="Enter sends \xB7 Shift+Enter adds a line \xB7 @fable or @codex picks another agent \xB7 @file.ext adds context",T=n(Ce("div",["display:block","margin-top:0",`color:${x.muted}`,`font:12.5px/1.5 ${Se}`]),"status"),T.setAttribute("role","status"),T.setAttribute("aria-live","polite"),B.send=n(F("Send",{variant:"primary",extra:["min-height:40px","flex:none"]}),"send"),d(B.send,!0,"inline-flex");let i=le("div",["display:flex","align-items:flex-start","gap:8px"]);i.append(u,B.send),a.append(A,i,T),v=j(Te("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:${se}`,`font:13px/1.5 ${G}`,t]),"data-clay-ai-edit","status-bar"),d(v,!1,"flex"),R=n(Ce("div",["display:block","flex:1","min-width:0","overflow:hidden","text-overflow:ellipsis","white-space:nowrap",`color:${x.muted}`,`font:12.5px/1.5 ${Se}`]),"bar-status"),R.setAttribute("role","status"),R.setAttribute("aria-live","polite"),_=n(F("Stop",{extra:["flex:none"]}),"bar-stop"),$=n(F("Keep",{variant:"primary",extra:["flex:none"]}),"bar-keep"),W=n(F("Discard",{variant:"quiet",extra:["flex:none"]}),"bar-revert"),D=n(ze(We.toastClose,{label:"Dismiss error"}),"bar-close"),D.pin({flex:"none"});for(let c of[_,$,W,D])d(c,!1,"inline-flex");v.append(R,_,$,W,D),m=j(F("AI",{small:!0,extra:["position:fixed","width:26px","height:26px",`font:600 11px/1 ${G}`,...Xe,t]}),"data-clay-ai-edit","chip"),m.title="Comment on this (\u2318J)",d(m,!1,"inline-grid"),b=j(F("AI",{extra:["position:fixed","width:40px","height:40px",`font:600 14px/1 ${G}`,...Xe,t]}),"data-clay-ai-edit","bubble"),b.title="Comment on the whole page",ke(),document.body.append(w,a,v,m,b),J(),B.send.addEventListener("click",Ze),_.addEventListener("click",dt),$.addEventListener("click",ct),W.addEventListener("click",()=>{oe(),Q()}),D.addEventListener("click",()=>{p==="error"&&Q()}),u.addEventListener("keydown",c=>{c.key==="Enter"&&!c.shiftKey&&(c.preventDefault(),B.send.hidden||Ze())}),u.addEventListener("input",ne),m.addEventListener("mousedown",c=>c.preventDefault()),m.addEventListener("click",()=>{let c=Z,g=q;X(),c&&!o&&!p&&I(c,g||me(c))}),b.addEventListener("click",()=>{if(!(o||p)){if(!a.hidden&&f===document.body){u.value.trim()?u.focus():U();return}I(document.body,me(document.body))}}),window.addEventListener("scroll",()=>{E(),X()},{passive:!0,signal:e}),window.addEventListener("resize",()=>{ke(),a&&!a.hidden&&ne(),E()},{passive:!0,signal:e});let r=()=>{ke(),E()};document.addEventListener("hcms:open",()=>{r(),setTimeout(r,350)},{signal:e}),document.addEventListener("hcms:close",()=>{r(),setTimeout(r,350)},{signal:e});let s=new MutationObserver(()=>J());s.observe(document.body,{childList:!0}),he.push(s);let l=new MutationObserver(()=>{f&&!f.isConnected&&gt()});l.observe(document.body,{childList:!0,subtree:!0}),he.push(l)}function ut(){f?.isConnected&&E()}function ne(){h(u,"height","auto"),u.value&&h(u,"height",u.scrollHeight+2+"px"),ut()}function J(){let e=b?.ownerDocument;if(!e)return;let t=!p&&L==="ready"&&!!e.querySelector("[data-edit-id]");d(b,t,"inline-grid"),t&&O(b)}function qt(e){!e||typeof window.Highlight!="function"||!window.CSS?.highlights||window.CSS.highlights.set(it,new window.Highlight(e))}function ve(){window.CSS?.highlights?.delete(it)}function ft(){let e=L==="ready";u.disabled=!e,e?T.textContent===Ye&&ie(""):ie(Ye,"warn"),d(B.send,e,"inline-flex"),J()}function Kt(){rt().then(e=>{a&&(L=e||"unavailable",!a.hidden&&!o?ft():J())}).catch(()=>{})}function ke(){b&&(b.pin({right:"16px",bottom:"16px"}),O(b))}function zt(e){clearTimeout(S),S=null,Z=e,q=void 0;let t=e.getBoundingClientRect();m.pin({left:Math.min(t.right+8,window.innerWidth-34)+"px",top:Math.max(8,t.top)+"px"}),d(m,!0,"inline-grid"),O(m)}function X(){clearTimeout(S),S=null,d(m,!1,"inline-grid"),Z=null,q=void 0}function Qe(){m.hidden||S||(S=setTimeout(X,400))}function Gt(){if(o||p||!a.hidden||L!=="ready"||wt())return;let e=xe(),t=e&&ot(e),n=t&&at(e,t);if(!n){q&&X();return}let i=typeof e.getClientRects=="function"?e.getClientRects():[],r=i.length?i[i.length-1]:t.getBoundingClientRect();clearTimeout(S),S=null,Z=t,q=n,m.pin({left:Math.min(r.right+6,window.innerWidth-34)+"px",top:Math.max(8,r.top+r.height/2-13)+"px"}),d(m,!0,"inline-grid"),O(m)}function ie(e,t){h(T,"margin-top",e?"8px":"0"),T.textContent=e||"",t==="warn"?T.setAttribute("data-tone","warn"):T.removeAttribute("data-tone"),h(T,"color",t==="warn"?x.ox:x.muted),ut()}function y(e,t){R.textContent=e||"",t==="warn"?R.setAttribute("data-tone","warn"):R.removeAttribute("data-tone"),h(R,"color",t==="warn"?x.ox:x.muted)}function P(e){clearTimeout(N),N=null;let t=!!p,n=document.activeElement;p=e;let i={working:[_],ready:[$,W],error:[D],saving:[]}[e]||[],r=[_,$,W,D];for(let l of r)d(l,i.includes(l),"inline-flex");X(),d(v,!0,"flex"),J(),E(),O(v);let s=i[0];s&&(!t||r.includes(n)&&!i.includes(n))&&s.focus({preventScroll:!0})}function pt(){clearTimeout(N);let e=C;N=setTimeout(()=>{e&&e===C&&Q()},1500)}function Q(e){e!==void 0&&e!==C||(clearTimeout(N),N=null,C=null,a.hidden||ht(),p=null,d(v,!1,"flex"),y(""),f=null,k=null,Y=null,z=void 0,ve(),d(a,!1),u.value="",d(w,!1),d(A,!1),J())}function E(){let e=window.matchMedia?.("(pointer: coarse)")?.matches;if(h(v,"bottom",K()?.active()&&e?"112px":"16px"),!f)return;if(!f.isConnected){gt();return}if(f===document.body){if(d(w,!1),d(A,!1),a.hidden)return;let Ne=b.getBoundingClientRect(),Fe=a.offsetWidth||480;h(a,"left",Math.max(16,Math.min((Ne.right||window.innerWidth-16)-Fe,window.innerWidth-Fe-16))+"px"),h(a,"top",Math.max(16,(Ne.top||window.innerHeight-56)-(a.offsetHeight||120)-12)+"px");return}let t=f.getBoundingClientRect();if(d(w,!!p||!z||!!o),h(w,"left",t.left-5+"px"),h(w,"top",t.top-5+"px"),h(w,"width",t.width+6+"px"),h(w,"height",t.height+6+"px"),a.hidden)return;let n=k&&k.startContainer.isConnected&&typeof k.getBoundingClientRect=="function"?k.getBoundingClientRect():null,i=n&&(n.width||n.height)?n:t,r=a.offsetWidth||480,s=Math.max(16,Math.min(i.left,window.innerWidth-r-16)),l=i.bottom+10,c=a.offsetHeight||120;l+c>window.innerHeight-16&&(l=Math.max(16,i.top-c-10)),h(a,"left",s+"px"),h(a,"top",l+"px");let g=l>=i.bottom,yt=Math.max(14,Math.min(i.left+10-s,r-28));d(A,!0),h(A,"left",yt+"px"),h(A,"top",g?"-7px":c-6+"px"),h(A,"transform",g?"rotate(45deg)":"rotate(225deg)")}function I(e,t){let n=!a.hidden,i=n&&f===e,r=n&&!!f&&f!==e,s=r?u.value:null;r&&we(f);let l=t?xe():null,c=document.activeElement;Y=c&&c!==document.body&&!a.contains(c)?c:null,f=e,k=l?l.cloneRange():null,X(),d(a,!0),z=t;let g=t?t.text.trim().length>400?t.text.trim().slice(0,400)+"\u2026":t.text.trim():e.aiTarget?e.label:"";a.dataset.quote=g,ie(""),i||(u.value=s||re.get(e)||""),qt(k),ft(),E(),ne(),O(a),O(w),u.focus(),Kt()}function ht(){f&&be(f,u.value)}function U(){o&&(o.handle?.cancel(),oe());let e=Y,t=a.contains(document.activeElement);ht(),f=null,k=null,Y=null,z=void 0,ve(),H?.close(),d(a,!1),d(w,!1),u.value="",ne(),t&&e&&e.isConnected&&e.focus({preventScroll:!0})}function mt(){H?.close(),k=null,Y=null,z=void 0,ve(),d(a,!1),u.value="",ne(),E(),O(w)}function gt(){let e=o;e&&(e.handle?.cancel(),oe()),Q()}function Ze(){let e=u.value.trim();!e||!f||o||L!=="ready"||Rt(f,e,z)}var jt=/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent||"");function Vt(e){return!(jt?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 wt(){let e=Le();return!e||e===document.body?!1:a&&a.contains(e)?!a.hidden:e.matches("input,textarea,select")}var Ut='[data-clay-modal], dialog[open], [aria-modal="true"]',Yt='input,textarea,select,[contenteditable=""],[contenteditable="true"]';function Jt(e){if(e.defaultPrevented||document.querySelector(Ut))return!1;let t=Le();return!t||t===document.body||a.contains(t)||v.contains(t)?!0:t.isContentEditable===!0?!1:!t.matches(Yt)}function Xt(){let{signal:e}=te;document.addEventListener("pointerdown",n=>{ue=a.contains(n.target)},{capture:!0,signal:e}),document.addEventListener("click",n=>{let i=ue;if(ue=!1,i||a.contains(n.target)||v.contains(n.target)||m.contains(n.target)||b.contains(n.target)||H?.contains(n.target)||o||p)return;let r=n.target.closest?.("[data-edit-id]"),s=r?fe(n.target):null;if(r&&s===r){let l=!a.hidden&&r===f;a.hidden||U(),l||I(r,me(r))}else a.hidden||U()},{signal:e});let t=0;document.addEventListener("mousemove",n=>{let i=Date.now();if(i-t<80)return;if(t=i,o||p||!a.hidden){Qe();return}if(L!=="ready"||q)return;if(m.contains(n.target)){clearTimeout(S),S=null;return}let r=fe(n.target);r?zt(r):Qe()},{signal:e}),document.addEventListener("keydown",n=>{if(Vt(n)){if(p||o||wt())return;let i=K();if(i?.active()){let l=i.targetFromSelection();if(!l)return;n.preventDefault(),I(l,l.quote);return}if(ye())return;f&&!f.isConnected&&U();let r=xe(),s=r?ot(r):null;if(!s){let l=window.getSelection(),c=l&&l.anchorNode;c&&c.nodeType!==1&&(c=c.parentElement),s=c&&fe(c)||Z}if(!s)return;n.preventDefault(),I(s,me(s));return}if(n.key==="Escape"&&Jt(n)){if(p==="working"){dt();return}if(p==="ready"){ct();return}if(p==="error"){Q();return}p||a.hidden||U()}},{signal:e}),document.addEventListener("selectionchange",()=>{clearTimeout(pe),pe=setTimeout(Gt,150)},{signal:e})}async function Pe(){let e=++Re;return L=await rt(),e===Re}function bt(){!L||a||(te=new AbortController,Wt(),Xt())}async function Qt(){return await(De||Pe()),L==="ready"||L==="unavailable"}async function ae(){!Be()||a||await Pe()&&bt()}function et(e){return e instanceof Element&&e.ownerDocument===document&&document.body.contains(e)&&!e.closest("[data-clay-ai-edit]")&&!e.closest(ee)&&!e.closest(_e)&&!e.closest(nt)}async function Zt(e,{prompt:t}={}){if(ye()||K()?.active()&&e!==document.body||!et(e)||(await ae(),await new Promise(r=>setTimeout(r,0)),!a||o||p))return!1;let n=K(),i=n?.active()?n.wholePage():e;return(i===e?!et(e):!i.isConnected)?!1:!a.hidden&&f===i?(u.focus(),!0):(typeof t=="string"&&!re.has(i)&&be(i,t),I(i,null),!0)}async function en(e){return!e||e.aiTarget!==!0||(await ae(),await new Promise(t=>setTimeout(t,0)),!a||o||p)||!e.isConnected?!1:!a.hidden&&f===e?(u.focus(),!0):(I(e,e.quote??null),!0)}async function tn(){if(await ae(),ye()||(await new Promise(n=>setTimeout(n,0)),!a||o||p))return!1;if(H?.picking)return!0;let e=K(),t=await import("../c-FDWR3FL7.js").catch(()=>null);return t?(H=t.createPicker({surface:e?.active()?e:null,onPicked:n=>I(n,n.quote),onWholePage:()=>I(e?.active()?e.wholePage():document.body),onCancel:()=>{a.hidden||U()}}),H.open(),!0):!1}function nn(){Re++;let e=o;o=null;try{e?.handle?.cancel(),e&&(e.paused&&Ie(),e.held&&ce())}catch{}clearTimeout(pe),pe=null,clearTimeout(S),S=null,clearTimeout(N),N=null,ve(),te?.abort(),te=null;for(let t of he)t.disconnect();he=[],H?.close(),H=null;for(let t of[V,w,a,v,m,b])t?.remove();V=w=a=u=T=A=v=R=null,_=$=W=D=m=b=null,B={},p=null,C=null,f=null,k=null,Y=null,z=void 0,Z=null,q=void 0,ue=!1,L=null,re=new WeakMap,He.clear()}function gn(){return{id:"clay:ai-edit",order:950,prepare(e={}){let t=e.initial===!0;return{ready:t?De:Pe(),enable(){t||bt()},quiesce(){let n=a&&!a.hidden&&u.value.trim()!=="",i=[];if(o&&i.push(o.id),H?.picking&&i.push("picker"),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(){nn()}}}}}var De=null;$e(()=>{De=ae().then(()=>{},()=>{})});var wn={init:ae,open:Zt,openTarget:en,pick:tn,available:Qt};export{wn as aiEdit,gn as aiEditParticipant,gn as modeParticipant};
6
+ `,document.head.appendChild(V);let t=`color-scheme:${qe()}`;w=j(le("div",["box-sizing:content-box","position:fixed","z-index:99998","pointer-events:none",`border:2px solid ${x.brass}`,"border-radius:0",t]),"data-clay-ai-edit","ring"),d(w,!1),a=j(Te("div",["position:fixed","z-index:99999","width:min(28rem, calc(100vw - 32px))","padding:12px","border-radius:12px",`box-shadow:${se}`,`font:13px/1.5 ${G}`,t]),"data-clay-ai-edit","panel"),d(a,!1),a.setAttribute("role","dialog"),a.setAttribute("aria-label","AI edit");let n=(c,g)=>j(c,"data-clay-ai-edit-part",g);A=n(le("div",["position:absolute","width:12px","height:12px","pointer-events:none",`background:${x.surface}`,`border-left:1px solid ${x["line-2"]}`,`border-top:1px solid ${x["line-2"]}`]),"pointer"),d(A,!1),u=n(Ge("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 ${G}`]}),"input"),u.rows=1,u.placeholder="Describe the change",u.setAttribute("aria-label","Describe the change"),u.title="Enter sends \xB7 Shift+Enter adds a line \xB7 @fable or @codex picks another agent \xB7 @file.ext adds context",T=n(Ce("div",["display:block","margin-top:0",`color:${x.muted}`,`font:12.5px/1.5 ${Se}`]),"status"),T.setAttribute("role","status"),T.setAttribute("aria-live","polite"),B.send=n(F("Send",{variant:"primary",extra:["min-height:40px","flex:none"]}),"send"),d(B.send,!0,"inline-flex");let i=le("div",["display:flex","align-items:flex-start","gap:8px"]);i.append(u,B.send),a.append(A,i,T),v=j(Te("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:${se}`,`font:13px/1.5 ${G}`,t]),"data-clay-ai-edit","status-bar"),d(v,!1,"flex"),R=n(Ce("div",["display:block","flex:1","min-width:0","overflow:hidden","text-overflow:ellipsis","white-space:nowrap",`color:${x.muted}`,`font:12.5px/1.5 ${Se}`]),"bar-status"),R.setAttribute("role","status"),R.setAttribute("aria-live","polite"),_=n(F("Stop",{extra:["flex:none"]}),"bar-stop"),$=n(F("Keep",{variant:"primary",extra:["flex:none"]}),"bar-keep"),W=n(F("Discard",{variant:"quiet",extra:["flex:none"]}),"bar-revert"),D=n(ze(We.toastClose,{label:"Dismiss error"}),"bar-close"),D.pin({flex:"none"});for(let c of[_,$,W,D])d(c,!1,"inline-flex");v.append(R,_,$,W,D),m=j(F("AI",{small:!0,extra:["position:fixed","width:26px","height:26px",`font:600 11px/1 ${G}`,...Xe,t]}),"data-clay-ai-edit","chip"),m.title="Comment on this (\u2318J)",d(m,!1,"inline-grid"),b=j(F("AI",{extra:["position:fixed","width:40px","height:40px",`font:600 14px/1 ${G}`,...Xe,t]}),"data-clay-ai-edit","bubble"),b.title="Comment on the whole page",ke(),document.body.append(w,a,v,m,b),J(),B.send.addEventListener("click",Ze),_.addEventListener("click",dt),$.addEventListener("click",ct),W.addEventListener("click",()=>{oe(),Q()}),D.addEventListener("click",()=>{p==="error"&&Q()}),u.addEventListener("keydown",c=>{c.key==="Enter"&&!c.shiftKey&&(c.preventDefault(),B.send.hidden||Ze())}),u.addEventListener("input",ne),m.addEventListener("mousedown",c=>c.preventDefault()),m.addEventListener("click",()=>{let c=Z,g=q;X(),c&&!o&&!p&&I(c,g||me(c))}),b.addEventListener("click",()=>{if(!(o||p)){if(!a.hidden&&f===document.body){u.value.trim()?u.focus():U();return}I(document.body,me(document.body))}}),window.addEventListener("scroll",()=>{E(),X()},{passive:!0,signal:e}),window.addEventListener("resize",()=>{ke(),a&&!a.hidden&&ne(),E()},{passive:!0,signal:e});let r=()=>{ke(),E()};document.addEventListener("hcms:open",()=>{r(),setTimeout(r,350)},{signal:e}),document.addEventListener("hcms:close",()=>{r(),setTimeout(r,350)},{signal:e});let s=new MutationObserver(()=>J());s.observe(document.body,{childList:!0}),he.push(s);let l=new MutationObserver(()=>{f&&!f.isConnected&&gt()});l.observe(document.body,{childList:!0,subtree:!0}),he.push(l)}function ut(){f?.isConnected&&E()}function ne(){h(u,"height","auto"),u.value&&h(u,"height",u.scrollHeight+2+"px"),ut()}function J(){let e=b?.ownerDocument;if(!e)return;let t=!p&&L==="ready"&&!!e.querySelector("[data-edit-id]");d(b,t,"inline-grid"),t&&O(b)}function qt(e){!e||typeof window.Highlight!="function"||!window.CSS?.highlights||window.CSS.highlights.set(it,new window.Highlight(e))}function ve(){window.CSS?.highlights?.delete(it)}function ft(){let e=L==="ready";u.disabled=!e,e?T.textContent===Ye&&ie(""):ie(Ye,"warn"),d(B.send,e,"inline-flex"),J()}function Kt(){rt().then(e=>{a&&(L=e||"unavailable",!a.hidden&&!o?ft():J())}).catch(()=>{})}function ke(){b&&(b.pin({right:"16px",bottom:"16px"}),O(b))}function zt(e){clearTimeout(S),S=null,Z=e,q=void 0;let t=e.getBoundingClientRect();m.pin({left:Math.min(t.right+8,window.innerWidth-34)+"px",top:Math.max(8,t.top)+"px"}),d(m,!0,"inline-grid"),O(m)}function X(){clearTimeout(S),S=null,d(m,!1,"inline-grid"),Z=null,q=void 0}function Qe(){m.hidden||S||(S=setTimeout(X,400))}function Gt(){if(o||p||!a.hidden||L!=="ready"||wt())return;let e=xe(),t=e&&ot(e),n=t&&at(e,t);if(!n){q&&X();return}let i=typeof e.getClientRects=="function"?e.getClientRects():[],r=i.length?i[i.length-1]:t.getBoundingClientRect();clearTimeout(S),S=null,Z=t,q=n,m.pin({left:Math.min(r.right+6,window.innerWidth-34)+"px",top:Math.max(8,r.top+r.height/2-13)+"px"}),d(m,!0,"inline-grid"),O(m)}function ie(e,t){h(T,"margin-top",e?"8px":"0"),T.textContent=e||"",t==="warn"?T.setAttribute("data-tone","warn"):T.removeAttribute("data-tone"),h(T,"color",t==="warn"?x.ox:x.muted),ut()}function y(e,t){R.textContent=e||"",t==="warn"?R.setAttribute("data-tone","warn"):R.removeAttribute("data-tone"),h(R,"color",t==="warn"?x.ox:x.muted)}function P(e){clearTimeout(N),N=null;let t=!!p,n=document.activeElement;p=e;let i={working:[_],ready:[$,W],error:[D],saving:[]}[e]||[],r=[_,$,W,D];for(let l of r)d(l,i.includes(l),"inline-flex");X(),d(v,!0,"flex"),J(),E(),O(v);let s=i[0];s&&(!t||r.includes(n)&&!i.includes(n))&&s.focus({preventScroll:!0})}function pt(){clearTimeout(N);let e=C;N=setTimeout(()=>{e&&e===C&&Q()},1500)}function Q(e){e!==void 0&&e!==C||(clearTimeout(N),N=null,C=null,a.hidden||ht(),p=null,d(v,!1,"flex"),y(""),f=null,k=null,Y=null,z=void 0,ve(),d(a,!1),u.value="",d(w,!1),d(A,!1),J())}function E(){let e=window.matchMedia?.("(pointer: coarse)")?.matches;if(h(v,"bottom",K()?.active()&&e?"112px":"16px"),!f)return;if(!f.isConnected){gt();return}if(f===document.body){if(d(w,!1),d(A,!1),a.hidden)return;let Ne=b.getBoundingClientRect(),Fe=a.offsetWidth||480;h(a,"left",Math.max(16,Math.min((Ne.right||window.innerWidth-16)-Fe,window.innerWidth-Fe-16))+"px"),h(a,"top",Math.max(16,(Ne.top||window.innerHeight-56)-(a.offsetHeight||120)-12)+"px");return}let t=f.getBoundingClientRect();if(d(w,!!p||!z||!!o),h(w,"left",t.left-5+"px"),h(w,"top",t.top-5+"px"),h(w,"width",t.width+6+"px"),h(w,"height",t.height+6+"px"),a.hidden)return;let n=k&&k.startContainer.isConnected&&typeof k.getBoundingClientRect=="function"?k.getBoundingClientRect():null,i=n&&(n.width||n.height)?n:t,r=a.offsetWidth||480,s=Math.max(16,Math.min(i.left,window.innerWidth-r-16)),l=i.bottom+10,c=a.offsetHeight||120;l+c>window.innerHeight-16&&(l=Math.max(16,i.top-c-10)),h(a,"left",s+"px"),h(a,"top",l+"px");let g=l>=i.bottom,yt=Math.max(14,Math.min(i.left+10-s,r-28));d(A,!0),h(A,"left",yt+"px"),h(A,"top",g?"-7px":c-6+"px"),h(A,"transform",g?"rotate(45deg)":"rotate(225deg)")}function I(e,t){let n=!a.hidden,i=n&&f===e,r=n&&!!f&&f!==e,s=r?u.value:null;r&&we(f);let l=t?xe():null,c=document.activeElement;Y=c&&c!==document.body&&!a.contains(c)?c:null,f=e,k=l?l.cloneRange():null,X(),d(a,!0),z=t;let g=t?t.text.trim().length>400?t.text.trim().slice(0,400)+"\u2026":t.text.trim():e.aiTarget?e.label:"";a.dataset.quote=g,ie(""),i||(u.value=s||re.get(e)||""),qt(k),ft(),E(),ne(),O(a),O(w),u.focus(),Kt()}function ht(){f&&be(f,u.value)}function U(){o&&(o.handle?.cancel(),oe());let e=Y,t=a.contains(document.activeElement);ht(),f=null,k=null,Y=null,z=void 0,ve(),H?.close(),d(a,!1),d(w,!1),u.value="",ne(),t&&e&&e.isConnected&&e.focus({preventScroll:!0})}function mt(){H?.close(),k=null,Y=null,z=void 0,ve(),d(a,!1),u.value="",ne(),E(),O(w)}function gt(){let e=o;e&&(e.handle?.cancel(),oe()),Q()}function Ze(){let e=u.value.trim();!e||!f||o||L!=="ready"||Rt(f,e,z)}var jt=/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent||"");function Vt(e){return!(jt?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 wt(){let e=Le();return!e||e===document.body?!1:a&&a.contains(e)?!a.hidden:e.matches("input,textarea,select")}var Ut='[data-clay-modal], dialog[open], [aria-modal="true"]',Yt='input,textarea,select,[contenteditable=""],[contenteditable="true"]';function Jt(e){if(e.defaultPrevented||document.querySelector(Ut))return!1;let t=Le();return!t||t===document.body||a.contains(t)||v.contains(t)?!0:t.isContentEditable===!0?!1:!t.matches(Yt)}function Xt(){let{signal:e}=te;document.addEventListener("pointerdown",n=>{ue=a.contains(n.target)},{capture:!0,signal:e}),document.addEventListener("click",n=>{let i=ue;if(ue=!1,i||a.contains(n.target)||v.contains(n.target)||m.contains(n.target)||b.contains(n.target)||H?.contains(n.target)||o||p)return;let r=n.target.closest?.("[data-edit-id]"),s=r?fe(n.target):null;if(r&&s===r){let l=!a.hidden&&r===f;a.hidden||U(),l||I(r,me(r))}else a.hidden||U()},{signal:e});let t=0;document.addEventListener("mousemove",n=>{let i=Date.now();if(i-t<80)return;if(t=i,o||p||!a.hidden){Qe();return}if(L!=="ready"||q)return;if(m.contains(n.target)){clearTimeout(S),S=null;return}let r=fe(n.target);r?zt(r):Qe()},{signal:e}),document.addEventListener("keydown",n=>{if(Vt(n)){if(p||o||wt())return;let i=K();if(i?.active()){let l=i.targetFromSelection();if(!l)return;n.preventDefault(),I(l,l.quote);return}if(ye())return;f&&!f.isConnected&&U();let r=xe(),s=r?ot(r):null;if(!s){let l=window.getSelection(),c=l&&l.anchorNode;c&&c.nodeType!==1&&(c=c.parentElement),s=c&&fe(c)||Z}if(!s)return;n.preventDefault(),I(s,me(s));return}if(n.key==="Escape"&&Jt(n)){if(p==="working"){dt();return}if(p==="ready"){ct();return}if(p==="error"){Q();return}p||a.hidden||U()}},{signal:e}),document.addEventListener("selectionchange",()=>{clearTimeout(pe),pe=setTimeout(Gt,150)},{signal:e})}async function Pe(){let e=++Re;return L=await rt(),e===Re}function bt(){!L||a||(te=new AbortController,Wt(),Xt())}async function Qt(){return await(De||Pe()),L==="ready"||L==="unavailable"}async function ae(){!Be()||a||await Pe()&&bt()}function et(e){return e instanceof Element&&e.ownerDocument===document&&document.body.contains(e)&&!e.closest("[data-clay-ai-edit]")&&!e.closest(ee)&&!e.closest(_e)&&!e.closest(nt)}async function Zt(e,{prompt:t}={}){if(ye()||K()?.active()&&e!==document.body||!et(e)||(await ae(),await new Promise(r=>setTimeout(r,0)),!a||o||p))return!1;let n=K(),i=n?.active()?n.wholePage():e;return(i===e?!et(e):!i.isConnected)?!1:!a.hidden&&f===i?(u.focus(),!0):(typeof t=="string"&&!re.has(i)&&be(i,t),I(i,null),!0)}async function en(e){return!e||e.aiTarget!==!0||(await ae(),await new Promise(t=>setTimeout(t,0)),!a||o||p)||!e.isConnected?!1:!a.hidden&&f===e?(u.focus(),!0):(I(e,e.quote??null),!0)}async function tn(){if(await ae(),ye()||(await new Promise(n=>setTimeout(n,0)),!a||o||p))return!1;if(H?.picking)return!0;let e=K(),t=await import("../c-7Q4XYDF4.js").catch(()=>null);return t?(H=t.createPicker({surface:e?.active()?e:null,onPicked:n=>I(n,n.quote),onWholePage:()=>I(e?.active()?e.wholePage():document.body),onCancel:()=>{a.hidden||U()}}),H.open(),!0):!1}function nn(){Re++;let e=o;o=null;try{e?.handle?.cancel(),e&&(e.paused&&Ie(),e.held&&ce())}catch{}clearTimeout(pe),pe=null,clearTimeout(S),S=null,clearTimeout(N),N=null,ve(),te?.abort(),te=null;for(let t of he)t.disconnect();he=[],H?.close(),H=null;for(let t of[V,w,a,v,m,b])t?.remove();V=w=a=u=T=A=v=R=null,_=$=W=D=m=b=null,B={},p=null,C=null,f=null,k=null,Y=null,z=void 0,Z=null,q=void 0,ue=!1,L=null,re=new WeakMap,He.clear()}function gn(){return{id:"clay:ai-edit",order:950,prepare(e={}){let t=e.initial===!0;return{ready:t?De:Pe(),enable(){t||bt()},quiesce(){let n=a&&!a.hidden&&u.value.trim()!=="",i=[];if(o&&i.push(o.id),H?.picking&&i.push("picker"),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(){nn()}}}}}var De=null;$e(()=>{De=ae().then(()=>{},()=>{})});var wn={init:ae,open:Zt,openTarget:en,pick:tn,available:Qt};export{wn as aiEdit,gn as aiEditParticipant,gn as modeParticipant};