@panphora/clayjs 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) 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 +7917 -5621
  11. package/dist/m/attrs/refetch-on-save-ZUE7PSCI.js +1 -0
  12. package/dist/m/attrs/save-freeze-MYNVXREN.js +1 -0
  13. package/dist/m/c-2YYDMLNZ.js +1 -0
  14. package/dist/m/c-336SGU5W.js +1 -0
  15. package/dist/m/c-3H6BZDNJ.js +6 -0
  16. package/dist/m/{c-LR4CGEPT.js → c-3RUU4TPX.js} +1 -1
  17. package/dist/m/c-3XIRD4NU.js +1 -0
  18. package/dist/m/c-4DFEJ2PO.js +3 -0
  19. package/dist/m/c-56QRZTZH.js +1 -0
  20. package/dist/m/c-5J4E7O4Y.js +4 -0
  21. package/dist/m/c-5LKDWQTL.js +19 -0
  22. package/dist/m/c-5QWQ7A5L.js +1 -0
  23. package/dist/m/c-5RJFTLSF.js +1 -0
  24. package/dist/m/c-6AZOGAPE.js +1 -0
  25. package/dist/m/{c-Y6USGTS5.js → c-6CRUUXOX.js} +5 -5
  26. package/dist/m/{c-54RCDCBU.js → c-6KEVEQ7L.js} +1 -1
  27. package/dist/m/{c-LTGMXXKO.js → c-6NC5I2TV.js} +1 -1
  28. package/dist/m/{c-YDH7Q3NY.js → c-74MGYWZF.js} +1 -1
  29. package/dist/m/{c-Z36J63PP.js → c-7OLLJPWP.js} +1 -1
  30. package/dist/m/c-A3E3NIMC.js +1 -0
  31. package/dist/m/{c-5R4PTRG2.js → c-AMSNPOCX.js} +1 -1
  32. package/dist/m/c-B3JM5ZXC.js +1 -0
  33. package/dist/m/c-BPF2NSPV.js +1 -0
  34. package/dist/m/c-BQ6LOBEE.js +1 -0
  35. package/dist/m/c-CJ3A7ZKE.js +1 -0
  36. package/dist/m/c-CQHPGKX2.js +1 -0
  37. package/dist/m/c-DCXOXBF3.js +1 -0
  38. package/dist/m/c-DFS4XZJV.js +2 -0
  39. package/dist/m/{c-F3CKJTJS.js → c-DNENWY4O.js} +1 -1
  40. package/dist/m/c-E4LIR5X5.js +1 -0
  41. package/dist/m/c-EVCQ3BKA.js +1 -0
  42. package/dist/m/{c-5Y6TNX5W.js → c-EZU56NQV.js} +2 -2
  43. package/dist/m/c-FDNHHZY5.js +1 -0
  44. package/dist/m/{c-SWRJFCNN.js → c-FRLHSY7E.js} +1 -1
  45. package/dist/m/c-FROJUZMV.js +1 -0
  46. package/dist/m/c-G2JPKCTP.js +1 -0
  47. package/dist/m/c-GB6TU7WV.js +1 -0
  48. package/dist/m/{c-GB3JTV6E.js → c-GFJJEBTU.js} +1 -1
  49. package/dist/m/{c-J7CA54IP.js → c-GSFIGKOP.js} +1 -1
  50. package/dist/m/{c-OYTFP5QN.js → c-GY422N3Q.js} +1 -1
  51. package/dist/m/c-HAWFNBYG.js +1 -0
  52. package/dist/m/{c-33HUYEDI.js → c-HDDEEL77.js} +1 -1
  53. package/dist/m/c-HFKUVACH.js +1 -0
  54. package/dist/m/c-HHDFCNHV.js +1 -0
  55. package/dist/m/c-I2ZATQCD.js +2 -0
  56. package/dist/m/c-IEM4NTCS.js +1 -0
  57. package/dist/m/c-IW6GGOU2.js +1 -0
  58. package/dist/m/{c-SGCCC4FW.js → c-JDCX26UP.js} +2 -2
  59. package/dist/m/c-JRKY44DK.js +1 -0
  60. package/dist/m/c-JU3NK25H.js +1 -0
  61. package/dist/m/{c-VFX45IZQ.js → c-KAU6E43D.js} +1 -1
  62. package/dist/m/c-KBS3UV6B.js +1 -0
  63. package/dist/m/c-KGVGROZT.js +1 -0
  64. package/dist/m/{c-YG2NJYS6.js → c-KQ6TYJAP.js} +2 -2
  65. package/dist/m/{c-2JL6E75N.js → c-KU3ZFADW.js} +1 -1
  66. package/dist/m/c-LWLBHLVC.js +3 -0
  67. package/dist/m/c-M2L47S2X.js +7 -0
  68. package/dist/m/c-MFP2ZWD4.js +1 -0
  69. package/dist/m/{c-4YSCRICO.js → c-MKSQ4Y57.js} +1 -1
  70. package/dist/m/{c-2M73252O.js → c-NUFFJVVJ.js} +1 -1
  71. package/dist/m/c-NUHSPT5P.js +1 -0
  72. package/dist/m/c-O72HVYSA.js +1 -0
  73. package/dist/m/c-OW5QIGG3.js +1 -0
  74. package/dist/m/c-PGRCK73F.js +1 -0
  75. package/dist/m/{c-4DRMS4QG.js → c-PS5ARVWR.js} +1 -1
  76. package/dist/m/c-Q622NS2Y.js +1 -0
  77. package/dist/m/c-Q7NQD65V.js +1 -0
  78. package/dist/m/c-QH63LQOS.js +1 -0
  79. package/dist/m/{c-TQZ2JYHD.js → c-QICP2YR5.js} +1 -1
  80. package/dist/m/{c-7VGZ7RU5.js → c-QJ4OM3G6.js} +1 -1
  81. package/dist/m/{c-MMUIUUZG.js → c-R3L7ZJGB.js} +1 -1
  82. package/dist/m/c-R7IWVINQ.js +1 -0
  83. package/dist/m/{c-HVYXIS72.js → c-RSMOODDU.js} +1 -1
  84. package/dist/m/{c-KKWLDOPM.js → c-RYUXUUBX.js} +1 -1
  85. package/dist/m/c-S4ZEH46B.js +9 -0
  86. package/dist/m/c-SDAXDM2D.js +1 -0
  87. package/dist/m/c-SMBZG5X4.js +1 -0
  88. package/dist/m/{c-UXBMRDZB.js → c-SMGU7RT3.js} +1 -1
  89. package/dist/m/c-SPIORRYS.js +1 -0
  90. package/dist/m/c-SWLRT66R.js +1 -0
  91. package/dist/m/c-SZGYW5HT.js +1 -0
  92. package/dist/m/c-TCJTVAFN.js +1 -0
  93. package/dist/m/{c-HRDCD3WN.js → c-TJ6WOJL3.js} +1 -1
  94. package/dist/m/c-TYLXX4NF.js +21 -0
  95. package/dist/m/c-U62OB4BT.js +1 -0
  96. package/dist/m/{c-NMJRXKPC.js → c-U6YWUAR3.js} +1 -1
  97. package/dist/m/c-UDCSU5G5.js +2 -0
  98. package/dist/m/{c-NZMNXVF6.js → c-UDUUJPFZ.js} +1 -1
  99. package/dist/m/c-VE6ZMYMC.js +1 -0
  100. package/dist/m/c-VG5XIN4T.js +1 -0
  101. package/dist/m/c-VHM5XQHK.js +1 -0
  102. package/dist/m/c-VI5RMSVY.js +1 -0
  103. package/dist/m/c-VRZN56XY.js +1 -0
  104. package/dist/m/c-W5MCHEGA.js +1 -0
  105. package/dist/m/c-WDC5GVKU.js +1 -0
  106. package/dist/m/c-WWXIDH4O.js +28 -0
  107. package/dist/m/{c-QIX5BJYN.js → c-XCNTK76U.js} +1 -1
  108. package/dist/m/c-XMS6DPBR.js +1 -0
  109. package/dist/m/c-Y5HBBIQ4.js +1 -0
  110. package/dist/m/{c-5M4YEKCX.js → c-ZVPVXTJF.js} +1 -1
  111. package/dist/m/c-ZVRKXKM7.js +1 -0
  112. package/dist/m/{c-HT33EQRN.js → c-ZWIOJGMT.js} +1 -1
  113. package/dist/m/core/admin-attrs-QHOKPJ7W.js +1 -0
  114. package/dist/m/core/autosave-HRYGUWV6.js +1 -0
  115. package/dist/m/core/conflict-notice-6MROJN2L.js +1 -0
  116. package/dist/m/core/host-permission-FNXVEFNE.js +1 -0
  117. package/dist/m/core/is-edit-mode-KTWA3O5N.js +1 -0
  118. package/dist/m/core/{persist-HKHA66IY.js → persist-JFYRHMRJ.js} +1 -1
  119. package/dist/m/core/recovery-FLTCC2OC.js +1 -0
  120. package/dist/m/core/save-HQZ4S667.js +1 -0
  121. package/dist/m/core/save-core-KGQWFUNH.js +1 -0
  122. package/dist/m/core/snapshot-EGQZNT45.js +1 -0
  123. package/dist/m/core/unsaved-warning-IDJLD66H.js +1 -0
  124. package/dist/m/events/index-RN2JNGBV.js +1 -0
  125. package/dist/m/internals/index-PVXGPUDA.js +1 -0
  126. package/dist/m/lib/cache-bust-MUMFXZK6.js +1 -0
  127. package/dist/m/loader-S4I7GKXR.js +1 -0
  128. package/dist/m/manifest-4C419D67.js +1 -0
  129. package/dist/m/manifest-edit-B077F288.js +1 -0
  130. package/dist/m/manifest.json +1555 -1058
  131. package/dist/m/options/options-EJMS3K24.js +1 -0
  132. package/dist/m/page/{editor-XUTB2HB2.js → editor-NNJA4OKD.js} +21 -8
  133. package/dist/m/plugins/{ai-edit-ZQ4CGWIP.js → ai-edit-QN4PMMNL.js} +1 -1
  134. package/dist/m/plugins/demo-RM5IR6AO.js +1 -0
  135. package/dist/m/plugins/indicator-URDBBOQO.js +1 -0
  136. package/dist/m/plugins/live-HFWD4OIH.js +1 -0
  137. package/dist/m/plugins/{menu-HCKO3DSP.js → menu-3HIEQSI6.js} +2 -2
  138. package/dist/m/plugins/page-JOKB6XPR.js +2 -0
  139. package/dist/m/plugins/page-view-NXOJHNW6.js +1 -0
  140. package/dist/m/plugins/people-SGPJKANK.js +1 -0
  141. package/dist/m/plugins/{richclay-RC3L2F6X.js → richclay-NRQDSWX6.js} +2 -2
  142. package/dist/m/plugins/sortable-GWT4PWDV.js +1 -0
  143. package/dist/m/plugins/source-4ZRSAIYM.js +1 -0
  144. package/dist/m/plugins/undo-VDA5P7FH.js +1 -0
  145. package/dist/m/plugins/{upgrade-ZNYODP5Y.js → upgrade-W7FG5VFG.js} +1 -1
  146. package/dist/m/plugins/upload-WLYKK6TL.js +1 -0
  147. package/dist/m/plugins/visitor-drafts-LIDY7NH6.js +21 -0
  148. package/dist/m/plugins/visitor-drafts-owner-ZXCKBZE7.js +1 -0
  149. package/dist/m/plugins/wire-4N6GYAF6.js +1 -0
  150. package/dist/m/{reader-core-ILWLXVMP.js → reader-core-DXYCURFF.js} +2 -2
  151. package/dist/m/sync/live-sync-J7VMYTKS.js +1 -0
  152. package/dist/m/ui/{index-EVHKMKBL.js → index-3JLVI27O.js} +1 -1
  153. package/dist/offline-manifest.json +857 -623
  154. package/dist/page/themes/light-1.css +25 -1
  155. package/dist/server/core.cjs +115 -24
  156. package/package.json +1 -1
  157. package/src/core/boot-phase.js +2 -1
  158. package/src/core/conflict-download.js +3 -29
  159. package/src/core/download.js +32 -0
  160. package/src/core/host-meta.js +18 -0
  161. package/src/core/save-core.js +8 -4
  162. package/src/core/save.js +4 -4
  163. package/src/core/snapshot.js +39 -1
  164. package/src/lib/autosave-scheduler.js +3 -4
  165. package/src/page/blocks.js +34 -1
  166. package/src/page/board-views.js +2 -16
  167. package/src/page/chart-tables.js +11 -0
  168. package/src/page/chart.js +6 -10
  169. package/src/page/checkpoint-proof.js +289 -0
  170. package/src/page/chrome.js +24 -6
  171. package/src/page/document-title-dom.js +12 -0
  172. package/src/page/document-title-runtime.js +15 -1
  173. package/src/page/document-title.js +4 -1
  174. package/src/page/editor.js +77 -12
  175. package/src/page/emoji-data.js +162 -0
  176. package/src/page/features/board.js +12 -3
  177. package/src/page/features/chart.js +11 -0
  178. package/src/page/features/dates.js +180 -0
  179. package/src/page/features/emoji.js +187 -0
  180. package/src/page/features/mentions.js +188 -0
  181. package/src/page/features/registry.js +6 -1
  182. package/src/page/features/table.js +2 -2
  183. package/src/page/format-command.js +9 -0
  184. package/src/page/format-host.js +54 -0
  185. package/src/page/format-native-commands.js +142 -0
  186. package/src/page/format-native.js +42 -0
  187. package/src/page/inline.js +32 -8
  188. package/src/page/items.js +15 -3
  189. package/src/page/markdown.js +26 -2
  190. package/src/page/mention-picker.js +99 -0
  191. package/src/page/merge.js +1 -1
  192. package/src/page/projection.js +58 -15
  193. package/src/page/save-projection.js +39 -0
  194. package/src/page/save-states.js +1 -1
  195. package/src/page/schema.js +33 -0
  196. package/src/page/themes/content.css +25 -1
  197. package/src/page/themes/light-1.css +25 -1
  198. package/src/page/view-hooks.js +32 -0
  199. package/src/page/ybind/binding.js +31 -4
  200. package/src/page/ybind/marks.js +2 -1
  201. package/src/page/ybind/provider.js +13 -2
  202. package/src/page/ybind/recovery-replay.js +362 -4
  203. package/src/plugins/live.js +37 -1
  204. package/src/plugins/page.js +117 -3
  205. package/src/plugins/visitor-drafts/intro.js +2 -1
  206. package/src/server/checkpoint/index.js +2 -2
  207. package/src/sync/saved-stream.js +17 -8
  208. package/dist/m/attrs/refetch-on-save-NWPPXOCZ.js +0 -1
  209. package/dist/m/attrs/save-freeze-FUP4Q4X3.js +0 -1
  210. package/dist/m/c-35NBGMZB.js +0 -1
  211. package/dist/m/c-3IQRECYS.js +0 -1
  212. package/dist/m/c-4B6H4G5V.js +0 -1
  213. package/dist/m/c-4FFHZM32.js +0 -1
  214. package/dist/m/c-66O32MV3.js +0 -28
  215. package/dist/m/c-7O6AFR65.js +0 -1
  216. package/dist/m/c-ANQTJ3B5.js +0 -2
  217. package/dist/m/c-AYVOREBE.js +0 -1
  218. package/dist/m/c-B2ZXPOS3.js +0 -3
  219. package/dist/m/c-BMIZKMPV.js +0 -1
  220. package/dist/m/c-CJZSLMVQ.js +0 -1
  221. package/dist/m/c-DBE6ORSI.js +0 -1
  222. package/dist/m/c-EDHUR4MX.js +0 -1
  223. package/dist/m/c-EY6UOM54.js +0 -1
  224. package/dist/m/c-F7Y6FLPY.js +0 -1
  225. package/dist/m/c-FA4DZVTC.js +0 -1
  226. package/dist/m/c-G2BUZITR.js +0 -1
  227. package/dist/m/c-GBGWXTX4.js +0 -1
  228. package/dist/m/c-GHBCCVG4.js +0 -1
  229. package/dist/m/c-IB52R237.js +0 -1
  230. package/dist/m/c-IKWNE4R4.js +0 -1
  231. package/dist/m/c-IU3IYEU6.js +0 -1
  232. package/dist/m/c-IZ2EBRAJ.js +0 -1
  233. package/dist/m/c-KR4UW4KW.js +0 -1
  234. package/dist/m/c-KY3VJGUA.js +0 -8
  235. package/dist/m/c-LXENEBV7.js +0 -1
  236. package/dist/m/c-PPOSCAQD.js +0 -1
  237. package/dist/m/c-QQHEX6HA.js +0 -1
  238. package/dist/m/c-R7RMANJI.js +0 -9
  239. package/dist/m/c-RI4NT75Y.js +0 -1
  240. package/dist/m/c-RUJKSUQW.js +0 -1
  241. package/dist/m/c-T4VO4OCB.js +0 -1
  242. package/dist/m/c-TR6RMDQ7.js +0 -3
  243. package/dist/m/c-UKHTLWUW.js +0 -1
  244. package/dist/m/c-UNN7LWCT.js +0 -1
  245. package/dist/m/c-V7PZZRG7.js +0 -1
  246. package/dist/m/c-VL52ADDR.js +0 -1
  247. package/dist/m/c-WWDBYXLK.js +0 -1
  248. package/dist/m/c-XNNW2CWK.js +0 -1
  249. package/dist/m/c-Z4VRC7GU.js +0 -7
  250. package/dist/m/c-Z6K52OLP.js +0 -19
  251. package/dist/m/c-ZDY2MDAA.js +0 -21
  252. package/dist/m/core/admin-attrs-VGNLAUDK.js +0 -1
  253. package/dist/m/core/autosave-E4PEFPZ6.js +0 -1
  254. package/dist/m/core/conflict-notice-VQ6Y64PH.js +0 -1
  255. package/dist/m/core/host-permission-XN3K2IW3.js +0 -1
  256. package/dist/m/core/is-edit-mode-JXHDVGUL.js +0 -1
  257. package/dist/m/core/recovery-TBBSICE2.js +0 -1
  258. package/dist/m/core/save-WUCHTQBE.js +0 -1
  259. package/dist/m/core/save-core-FJVHT5M3.js +0 -1
  260. package/dist/m/core/snapshot-F3SWDZMM.js +0 -1
  261. package/dist/m/core/unsaved-warning-STKBHE6G.js +0 -1
  262. package/dist/m/events/index-23DPTUT4.js +0 -1
  263. package/dist/m/internals/index-WOVAP3RU.js +0 -1
  264. package/dist/m/lib/cache-bust-CGWT6ZJI.js +0 -1
  265. package/dist/m/loader-HXX6YNH5.js +0 -1
  266. package/dist/m/manifest-F22DEDAC.js +0 -1
  267. package/dist/m/manifest-edit-C3C7376B.js +0 -1
  268. package/dist/m/options/options-2LH76JQ3.js +0 -1
  269. package/dist/m/plugins/demo-ZIBFAA3R.js +0 -1
  270. package/dist/m/plugins/indicator-PV4YW2ID.js +0 -1
  271. package/dist/m/plugins/live-NUTTXSBS.js +0 -1
  272. package/dist/m/plugins/page-KSUH7G6J.js +0 -2
  273. package/dist/m/plugins/page-view-W73OW7WI.js +0 -1
  274. package/dist/m/plugins/people-AJJ32YCG.js +0 -1
  275. package/dist/m/plugins/sortable-YRMQX3ZU.js +0 -1
  276. package/dist/m/plugins/source-KHK5UUSK.js +0 -1
  277. package/dist/m/plugins/undo-OF2L3CXU.js +0 -1
  278. package/dist/m/plugins/upload-XSGNILUY.js +0 -1
  279. package/dist/m/plugins/visitor-drafts-XK5GW55Q.js +0 -21
  280. package/dist/m/plugins/visitor-drafts-owner-KSSH75EV.js +0 -1
  281. package/dist/m/plugins/wire-ZWVWKF76.js +0 -1
  282. package/dist/m/sync/live-sync-4AUVXVJU.js +0 -1
  283. /package/dist/m/plugins/{richclay-RC3L2F6X.js.LEGAL.txt → richclay-NRQDSWX6.js.LEGAL.txt} +0 -0
@@ -0,0 +1 @@
1
+ import{c as m}from"../c-7SWMYKAI.js";import{a as f}from"../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 w="option-visibility",y=[{prefix:"option-not",kind:"show-not"},{prefix:"option",kind:"show"},{prefix:"show-when",kind:"show"},{prefix:"hide-when",kind:"hide"}];function x(t,e){let n=null;for(let o of y)if(t.startsWith(o.prefix+":")){n=o;break}if(!n)return null;let r=t.slice(n.prefix.length+1),i=e,s=i.split("|");return{name:r,rawValue:i,values:s,kind:n.kind,prefix:n.prefix,negated:n.kind==="show-not"}}var h={debug:!1,_started:!1,_unsubscribe:null,log(...t){this.debug&&console.log("[OptionVisibility]",...t)},findOptionAttributes(){let t=new Map;try{let e=document.evaluate('//*[@*[starts-with(name(), "option:") or starts-with(name(), "option-not:") or starts-with(name(), "show-when:") or starts-with(name(), "hide-when:")]]',document.documentElement,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(let n=0;n<e.snapshotLength;n++){let r=e.snapshotItem(n);for(let i of r.attributes){let s=x(i.name,i.value);if(!s)continue;let o=`${s.prefix}:${s.name}=${s.rawValue}`;t.has(o)||t.set(o,s)}}}catch(e){this.log("XPath error, falling back to empty",e)}return[...t.values()]},generateCSS(t){return t.length?t.map(e=>{let{name:n,rawValue:r,values:i}=e,s=e.kind||(e.negated?"show-not":"show"),o=e.prefix||(s==="show-not"?"option-not":s==="hide"?"hide-when":"option"),a=CSS.escape(n),b=CSS.escape(r),u=`[${CSS.escape(o)}\\:${a}="${b}"]`,S=i.map(c=>`[${a}="${CSS.escape(c)}"]`),g=i.map(c=>`[${a}="${CSS.escape(c)}"] *`),p=[...S,...g].join(",");if(s==="hide")return`${u}:is(${p}){display:none!important}`;let l;if(s==="show-not"){let c=i.map($=>`[${a}="${CSS.escape($)}"]`).join(","),d=`[${a}]:not(${c})`;l=`${d},${d} *`}else l=p;return`${u}:not(:is(${l})){display:none!important}`}).join(""):""},update(){try{let t=this.findOptionAttributes(),e=this.generateCSS(t);m(w,e,n=>{n.setAttribute("clay","no-watch")}),this.log(`Generated ${t.length} rules`)}catch(t){console.error("[OptionVisibility] Error generating rules:",t)}},start(){if(!this._started){if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>this.start(),{once:!0});return}this._started=!0,this.update(),this._unsubscribe=f.onAnyChange({debounce:200,selectorFilter:t=>[...t.attributes].some(e=>e.name.startsWith("option:")||e.name.startsWith("option-not:")||e.name.startsWith("show-when:")||e.name.startsWith("hide-when:")),omitChangeDetails:!0,require:"observed",pausable:!1},()=>this.update()),this.log("Started")}},stop(){if(!this._started)return;this._started=!1,this._unsubscribe&&(this._unsubscribe(),this._unsubscribe=null);let t=document.querySelector(`style[data-name="${w}"]`);t&&t.remove(),this.log("Stopped")}};window.clay.optionVisibility=h;var O=h;function _(){h.start()}_();export{O as default,_ as init,x as parseOptionAttribute};
@@ -1,8 +1,13 @@
1
- import{a as C,b as ze,d as Ee}from"../c-IB52R237.js";import{b as Pe}from"../c-33HUYEDI.js";import{c as Ce,e as K}from"../c-IKWNE4R4.js";import"../c-XNNW2CWK.js";import{N as le,P as se,ca as de,da as ce,ga as he,ia as me,ja as be,ka as fe,la as ve,ma as xe,na as ke,oa as we,sa as ye}from"../c-KY3VJGUA.js";import"../c-Y6USGTS5.js";import"../c-EDHUR4MX.js";import{d as ue}from"../c-54RCDCBU.js";import{A as B,G as ge,b as ae,c as T,h as te,l as oe,s as re,v as pe,w as ne,x as ie}from"../c-TR6RMDQ7.js";import{B as Z,E as Y,I as J,K as Q,N as ee,a as q,b as v,d as y,e as S,f as D,g as A,h as X,i as G,m}from"../c-66O32MV3.js";import{a as O,b as Se,c as $}from"../c-BMIZKMPV.js";import{a as Ae}from"../c-BYTKL6UX.js";import"../c-4L3BTFRK.js";import"../c-5V3MOVJT.js";import{b as I}from"../c-OYTFP5QN.js";import"../c-7SWMYKAI.js";import"../c-UGHH4MB3.js";import"../c-HT33EQRN.js";import"../c-IJUK2GPW.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var{Decoration:De,DecorationSet:je}=y,_e="Type / for blocks",Ue="Untitled";function We(e){let a=!1,t=null;return e.forEach((o,r)=>{a||o.type!==m.nodes.heading||o.attrs.level!==1||(o.attrs.parent??null)!==null||(a=!0,o.content.size||(t=De.node(r,r+o.nodeSize,{class:"page-title-placeholder","data-placeholder":Ue})))}),t}function Me(e=_e){return new v.Plugin({props:{decorations(a){let t=[],o=We(a.doc);o&&t.push(o);let{selection:r}=a;if(r.empty){let p=r.$from;if(p.depth===1){let n=p.parent;if(n.type===m.nodes.paragraph&&!n.content.size){let g=p.before(1);t.push(De.node(g,g+n.nodeSize,{class:"page-placeholder","data-placeholder":e}))}}}return t.length?je.create(a.doc,t):null}}})}var{Plugin:Be}=v,{Decoration:He,DecorationSet:qe}=y;function R(e,a){let t=null;return e.state.doc.forEach((o,r)=>{o.attrs.id===a&&o.type===m.nodes.list_item&&o.attrs.kind==="check"&&(t={node:o,pos:r})}),t}function V(e,a,t,o){let r=R(e,a);r&&e.dispatch(B(e.state.tr.setNodeMarkup(r.pos,null,{...r.node.attrs,[t]:o||null})))}function N(e,a,t,o){let r=e.createElement("button");return r.type="button",r.className="page-check-chip",r.dataset.check=o,r.textContent=a,r.setAttribute("aria-label",t),r}function Xe(e,a,t){let o=t.ownerDocument,r=R(e,a)?.node.attrs.owner||"",p=o.createElement("span");p.className="page-check-popup page-check-owner",p.contentEditable="false";let n=C(o,"span","page-board-owners"),g=C(o,"span","page-board-people",{role:"group","aria-label":"Owner"}),c=C(o,"input","page-board-owner-input",{type:"text","aria-label":"Owner name",placeholder:"Or type a name\u2026"});c.value=r;let x=s=>V(e,a,"owner",s),b=(s,f,l,i)=>{let h=C(o,"button",`page-board-person${s?"":" is-none"}`,{type:"button","aria-pressed":String(i),"data-check":l});return s?h.append(ze(o,s),C(o,"span",null,{},s)):h.textContent=f,h.addEventListener("click",()=>x(s)),h},w=s=>{let f=c.value.trim().toLowerCase(),l=(s||[]).filter(i=>!f||f===r.toLowerCase()||i.name.toLowerCase().includes(f));g.replaceChildren(...l.map(i=>b(i.name,i.name,"owner-option",i.name===r)),b(null,"No owner","clear-owner",!r))};c.addEventListener("keydown",s=>{s.key==="Enter"&&(s.preventDefault(),x(c.value.trim())),s.key==="Escape"&&(s.preventDefault(),p.remove(),t.focus()),s.stopPropagation()}),n.append(g,c),p.append(n),t.after(p),c.focus();let k=[];w(k),c.addEventListener("input",()=>w(k));let z=globalThis.clay?.people?.available;z&&Promise.resolve().then(()=>z()).then(s=>{p.isConnected&&(k=s||[],w(k))}).catch(()=>{})}function Ge(e,a,t){let o=t.ownerDocument,r=o.createElement("span");r.className="page-check-popup",r.contentEditable="false";let p=o.createElement("input");p.type="date",p.setAttribute("aria-label","Due date"),p.value=R(e,a)?.node.attrs.due||"",p.addEventListener("change",()=>V(e,a,"due",p.value)),p.addEventListener("keydown",g=>g.stopPropagation());let n=N(o,"Clear","Clear due date","clear-date");n.addEventListener("click",()=>V(e,a,"due",null)),r.append(p,n),t.after(r),p.focus()}function Ze(e,a){let t=e.dom.ownerDocument,o=t.createElement("span");o.className="page-check-controls",o.contentEditable="false",o.dataset.empty=String(!a.attrs.owner&&!a.attrs.due);let r=N(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=N(t,p,a.attrs.due?`Due ${p}`:"Set due date","date");return r.addEventListener("click",()=>Xe(e,a.attrs.id,r)),n.addEventListener("click",()=>Ge(e,a.attrs.id,n)),o.append(r,n),o}function Ye(e,a){let t=e.state.selection.$head;if(t.depth!==1||t.parent.type!==m.nodes.list_item||t.parent.attrs.kind!=="check")return!1;let o=t.parent.attrs.id,p=[...e.dom.querySelectorAll(".page-check-controls")].find(n=>n.dataset.item===o)?.querySelector(`[data-check="${a}"]`);return p?(p.focus(),!0):!1}var Fe=new Be({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?Ye(e,t):!1}}});function Le(){return new Be({props:{decorations(e){let a=[];return e.doc.forEach((t,o)=>{t.type!==m.nodes.list_item||t.attrs.kind!=="check"||a.push(He.widget(o+t.nodeSize-1,r=>{let p=Ze(r,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}))}),qe.create(e.doc,a)}}})}var Te="page-editor-style",Je=[1,2,3,4,5,6,7,8],Qe=`
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=`
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;
5
5
  --page-callout-bg: rgba(35, 34, 31, 0.04); --page-code-bg: rgba(35, 34, 31, 0.05);
6
+ --page-color-gray: #5B5953; --page-color-brown: #8A5A1E; --page-color-orange: #B4531A; --page-color-yellow: #7A6210; --page-color-green: #3E6A28;
7
+ --page-color-blue: #1F5A8A; --page-color-purple: #5E4596; --page-color-pink: #A23E6E; --page-color-red: #9E3B2F;
8
+ --page-mark-bg-gray: rgba(35, 34, 31, 0.12); --page-mark-bg-brown: rgba(138, 90, 30, 0.20); --page-mark-bg-orange: rgba(180, 83, 26, 0.20);
9
+ --page-mark-bg-yellow: rgba(122, 98, 16, 0.22); --page-mark-bg-green: rgba(62, 106, 40, 0.20); --page-mark-bg-blue: rgba(31, 90, 138, 0.18);
10
+ --page-mark-bg-purple: rgba(94, 69, 150, 0.18); --page-mark-bg-pink: rgba(162, 62, 110, 0.18); --page-mark-bg-red: rgba(158, 59, 47, 0.18);
6
11
  --page-code-token-keyword: #8A3B6E; --page-code-token-constant: #1F5A8A; --page-code-token-string: #3E6A28; --page-code-token-string-expression: #3E6A28; --page-code-token-comment: #8B877E; --page-code-token-function: #5E4596; --page-code-token-parameter: #8A5A1E; --page-code-token-punctuation: var(--page-ink-soft); --page-code-token-link: var(--page-link);
7
12
  --page-chrome-ink-rest: rgba(35, 34, 31, 0.20); --page-chrome-ink-moved: rgba(35, 34, 31, 0.34);
8
13
  --page-chrome-bg-rest: rgba(35, 34, 31, 0.02); --page-chrome-bg-moved: rgba(35, 34, 31, 0.04);
@@ -10,11 +15,16 @@ import{a as C,b as ze,d as Ee}from"../c-IB52R237.js";import{b as Pe}from"../c-33
10
15
  --page-pop-bg: #FBFAF7; --page-pop-ink: #23221F; --page-pop-muted: #6B6862; --page-pop-line: rgba(35, 34, 31, 0.10);
11
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);
12
17
  --page-scrim: rgba(35, 34, 31, 0.12);
13
- --page-danger: #9E3B2F; --page-block-selected: rgba(88, 120, 170, 0.12);`,Oe=`
18
+ --page-danger: #9E3B2F; --page-block-selected: rgba(88, 120, 170, 0.12);`,Ve=`
14
19
  --page-bg: #1A1A18; --page-ink: #E7E4DC; --page-ink-soft: #A3A098; --page-ink-faint: #75726B;
15
20
  --page-rule: rgba(231, 228, 220, 0.10); --page-accent: #8DB0E6; --page-link: #8DB0E6; --page-selection: rgba(120, 155, 210, 0.28);
16
21
  --page-check-border: rgba(231, 228, 220, 0.35); --page-check-fill: #E7E4DC; --page-check-ink: #1A1A18;
17
22
  --page-callout-bg: rgba(231, 228, 220, 0.05); --page-code-bg: rgba(231, 228, 220, 0.06);
23
+ --page-color-gray: #A3A098; --page-color-brown: #E0B47A; --page-color-orange: #E8A177; --page-color-yellow: #DEC97A; --page-color-green: #A9C98B;
24
+ --page-color-blue: #8DB0E6; --page-color-purple: #BBA6E6; --page-color-pink: #E3A3C4; --page-color-red: #E08A7A;
25
+ --page-mark-bg-gray: rgba(231, 228, 220, 0.14); --page-mark-bg-brown: rgba(224, 180, 122, 0.22); --page-mark-bg-orange: rgba(232, 161, 119, 0.22);
26
+ --page-mark-bg-yellow: rgba(222, 201, 122, 0.24); --page-mark-bg-green: rgba(169, 201, 139, 0.22); --page-mark-bg-blue: rgba(141, 176, 230, 0.22);
27
+ --page-mark-bg-purple: rgba(187, 166, 230, 0.22); --page-mark-bg-pink: rgba(227, 163, 196, 0.22); --page-mark-bg-red: rgba(224, 138, 122, 0.22);
18
28
  --page-code-token-keyword: #D9A0C8; --page-code-token-constant: #8DB0E6; --page-code-token-string: #A9C98B; --page-code-token-string-expression: #A9C98B; --page-code-token-comment: #75726B; --page-code-token-function: #BBA6E6; --page-code-token-parameter: #E0B47A; --page-code-token-punctuation: var(--page-ink-soft); --page-code-token-link: var(--page-link);
19
29
  --page-chrome-ink-rest: rgba(231, 228, 220, 0.18); --page-chrome-ink-moved: rgba(231, 228, 220, 0.30);
20
30
  --page-chrome-bg-rest: rgba(231, 228, 220, 0.02); --page-chrome-bg-moved: rgba(231, 228, 220, 0.04);
@@ -23,9 +33,9 @@ import{a as C,b as ze,d as Ee}from"../c-IB52R237.js";import{b as Pe}from"../c-33
23
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);
24
34
  --page-scrim: rgba(10, 10, 9, 0.35);
25
35
  --page-danger: #E08A7A; --page-block-selected: rgba(120, 155, 210, 0.18);
26
- --chart-1: #8DB0E6; --chart-2: #D9A0C8; --chart-3: #A9C98B; --chart-4: #BBA6E6; --chart-5: #E0B47A; --chart-6: #A3A098;`,ea=`
36
+ --chart-1: #8DB0E6; --chart-2: #D9A0C8; --chart-3: #A9C98B; --chart-4: #BBA6E6; --chart-5: #E0B47A; --chart-6: #A3A098;`,pa=`
27
37
  @layer page {
28
- :where(article[data-page], .page-shell) {${Qe}
38
+ :where(article[data-page], .page-shell) {${oa}
29
39
  --chart-1: #2F5E9E; --chart-2: #164583; --chart-3: #5B5953; --chart-4: #8A3B6E; --chart-5: #3E6A28; --chart-6: #8A5A1E;
30
40
  --page-ink-strong: var(--page-ink); --page-caret: var(--page-accent);
31
41
  --page-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --page-font-display: var(--page-font); --page-font-heading: var(--page-font);
@@ -39,8 +49,8 @@ import{a as C,b as ze,d as Ee}from"../c-IB52R237.js";import{b as Pe}from"../c-33
39
49
  --page-chrome-shadow-rest: none; --page-chrome-shadow-moved: none; --page-chrome-radius: 7px; --page-plus-size: 24px; --page-fade: 240ms;
40
50
  --page-pop-radius: 10px; --page-bar-bg: var(--page-pop-bg); --page-bar-ink: var(--page-pop-ink);
41
51
  }
42
- @media (prefers-color-scheme: dark) { :where(:root:not([data-theme="light"]) :is(article[data-page], .page-shell)) {${Oe} } }
43
- :where(:root[data-theme="dark"] :is(article[data-page], .page-shell)) {${Oe} }
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} }
44
54
 
45
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; }
46
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); }
@@ -60,10 +70,13 @@ import{a as C,b as ze,d as Ee}from"../c-IB52R237.js";import{b as Pe}from"../c-33
60
70
  .page-editor pre:hover .page-code-lang, .page-editor pre:focus-within .page-code-lang, .page-code-lang:focus-visible, .page-editor pre[data-lang] .page-code-lang { opacity: 1; }
61
71
  .page-code-lang:hover, .page-code-lang:focus-visible { background: var(--page-pop-hover); color: var(--page-ink-soft); }
62
72
  :where(article[data-page], .page-editor) .page-callout { background: var(--page-callout-bg); border: 1px solid var(--page-callout-line); border-radius: 8px; padding: 10px 14px; }
73
+ /* The four floor-1 formats. A quote is set apart by its own inset and ink, with
74
+ no left-border accent; the palette's keys are fixed tokens, in both themes. */
75
+ :where(article[data-page], .page-editor) blockquote { padding-inline-start: var(--page-indent); color: var(--page-ink-soft); }
63
76
  :where(article[data-page], .page-editor) hr { border: 0; border-top: 1px solid var(--page-rule); margin-block: 1.2em; }
64
77
  :where(article[data-page], .page-editor) .page-hidden { display: none; }
65
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)); }
66
- ${Je.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}"] { --li-indent: ${e}; }`).join(`
79
+ ${ra.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}"] { --li-indent: ${e}; }`).join(`
67
80
  `)}
68
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"; }
69
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; }
@@ -186,4 +199,4 @@ ${Je.map(e=>`:where(article[data-page], .page-editor) .page-li[data-indent="${e}
186
199
  .page-dock, .page-plus, .page-grip, .page-toggle-button, .page-image-handle, .page-upload-bar > span, .page-board-person { transition: none; }
187
200
  }
188
201
  }
189
- `,aa=(e,a)=>(a&&a(e.tr.replaceSelectionWith(m.nodes.hard_break.create()).scrollIntoView()),!0),ta=({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":aa,"Mod-b":A.toggleMark(m.marks.strong),"Mod-i":A.toggleMark(m.marks.em)}),oa=(e,a,t)=>fe(null,t)?!1:X.undoInputRule(e,a&&(o=>a(B(o)))),ra={Backspace:A.chainCommands(oa,ke),"Mod-e":A.toggleMark(m.marks.code),"Mod-Shift-s":A.toggleMark(m.marks.strike)},pa=(e,a)=>globalThis.clay?.upload?.(e,a)??Promise.resolve({ok:!1,code:"unavailable",msg:"File uploads are not available in this editor"}),$e=new WeakMap,F=new v.PluginKey("lazyViews"),j=class{constructor(a,t){this.node=a,this.type=a.type,this.registry=t;let{dom:o,contentDOM:r}=q.DOMSerializer.renderSpec(document,a.type.spec.toDOM(a));this.dom=o,this.contentDOM=r??null}update(a){return a.type===this.type&&!this.registry.has(a.type.name)}};function na(){return new v.Plugin({key:F,state:{init:()=>y.DecorationSet.empty,apply(e){let a=e.getMeta(F);if(!a)return y.DecorationSet.empty;let t=[];return e.doc.forEach((o,r)=>{a.types.includes(o.type.name)&&t.push(y.Decoration.node(r,r+o.nodeSize,{},{lazyView:t.length+1}))}),y.DecorationSet.create(e.doc,t)}},props:{decorations:e=>F.getState(e)}})}function ia({view:e,upload:a,toolHost:t,board:o=null,undo:r=null,redo:p=null,revise:n=null,highlight:g},c,x){let b=x.createFeature({view:e,upload:a,toolHost:t,board:o,undo:r,redo:p,revise:n,highlight:g}),w=$e.get(e),k=()=>{if(b.css&&I(`page-feature-${c}`,b.css,`page-feature-${c}`,["editor-ui"]),!b.nodeViews)return;let s=Object.keys(b.nodeViews);for(let f of s)w.set(f,b.nodeViews[f]);e.dispatch(e.state.tr.setMeta(F,{types:s}).setMeta("addToHistory",!1))},z=()=>{e.isDestroyed||(e.composing?setTimeout(z,25):k())};return e.composing?e.dom.addEventListener("compositionend",()=>setTimeout(z,25),{once:!0}):k(),b}function ga(e){return new v.Plugin({view(a){let t=new Set,o=()=>{for(let p of t)e.has(p)&&t.delete(p);a.state.doc.forEach(p=>{let n=Se(p.type.name);!n||e.has(n)||t.has(n)||e.ensure(n).catch(()=>{t.add(n)})})},r=a.state.doc;return o(),{update(){a.state.doc!==r&&(r=a.state.doc,o())}}}})}function la({load:e=()=>Promise.reject(new Error("page: this editor has no command module")),context:a=()=>({}),reportError:t}={}){let o=new Map,r=new Set,p=null,n=null,g=!0,c=!1,x=0,b=l=>{let i=o.get(l);return i||(i=Promise.resolve(e(l)),o.set(l,i),i.catch(()=>{o.get(l)===i&&o.delete(l)})),i},w=()=>(n??=K({load:b,install:(l,i)=>i.createFeature(a(p)),reportError:t??((l,i)=>console.error(`clayjs: the ${i} command failed to load`,l))}),n),k=()=>{let l=x,i=p.state.selection;return{revision:l,selection:i,valid:()=>g&&!c&&!p.isDestroyed&&x===l&&p.state.selection.eq(i)}};function z(l,i){l.doc!==i.doc&&(x+=1);for(let h of r)h.lease.valid()||(r.delete(h),h.controller.abort({ok:!1,code:"stale-target"}))}async function s(l,i){if(!g||c||!p||p.isDestroyed)return{ok:!1,code:"not-editing"};let h={lease:k(),controller:new AbortController};r.add(h);try{let u=await w().ensure(l,{signal:h.controller.signal});return u?h.lease.valid()?await u.run(i):{ok:!1,code:"stale-target"}:{ok:!1,code:"not-editing"}}catch(u){return h.controller.signal.aborted?h.controller.signal.reason:{ok:!1,code:"unavailable",error:u}}finally{r.delete(h)}}function f(){if(g){g=!1;for(let l of r)l.controller.abort({ok:!1,code:"not-editing"});r.clear(),n?.dispose(),n=null}}return{attach(l){p=l},observe:z,run:s,enter(){c||(g=!0)},leave:f,dispose(){f(),c=!0,g=!1,o.clear()}}}var _=new WeakMap;function sa(e){return new v.Plugin({view:()=>({update:(a,t)=>e.observe(a.state,t)})})}function qa(e,a,t){let o=e?_.get(e):null;return o?Object.hasOwn($,a)?o.run(a,t):Promise.resolve({ok:!1,code:"unknown-command"}):Promise.resolve({ok:!1,code:"not-editing"})}function da(e){return new v.Plugin({view(a){let t=e?()=>e.tablesChanged():()=>Ae.get(a)?.tablesChanged?.(),o=a.state.doc;return{update(r){r.state.doc!==o&&(o=r.state.doc,t())}}}})}function ca({upload:e=pa,highlight:a,history:t=!0,undo:o,redo:r,onAiTool:p=null,toolHost:n=null,features:g=null,commandHost:c=null}={}){return[ie(),ye({onAiTool:p}),we(),da(n),ae(),se(),ge(),ve(),xe(),Me(),Ce(),D.keymap(ra),de,Fe,D.keymap(ne),D.keymap(ta({history:t,undo:o,redo:r})),D.keymap(A.baseKeymap),te(),ee(),ce(),be(),Ee(),Le(),he({upload:e}),re(),ue({upload:e,features:g}),Pe(),pe(),le(),t?S.history():null,G.gapCursor(),na(),g?ga(g):null,c?sa(c):null].filter(Boolean)}function ua(e,a={}){let t=e&&Object.keys(e).length?e:{[Y()]:{t:"paragraph",pos:Z(),c:""}},o=a.doc??Q(m,t);return v.EditorState.create({doc:o,plugins:ca(a)})}function Xa(e){!e||e.isDestroyed||e.updateState(e.state)}function Ga(e,a){if(!e||e.isDestroyed)return!1;let t=a===!0;e.setProps({editable:()=>t});let o=_.get(e);return t?o?.enter():o?.leave(),t}function ha(e,a){let t=a.target.closest?.('.page-li[data-kind="check"]');if(!t||!e.dom.contains(t))return!1;let o=t.getBoundingClientRect(),r=parseFloat(getComputedStyle(t).paddingInlineStart)||0,p=getComputedStyle(t).direction==="rtl"?o.right-a.clientX:a.clientX-o.left;if(p<0||p>r)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 Za(e,{blocks:a=null,onChange:t=null,upload:o,highlight:r,doc:p,dispatch:n,history:g=!0,undo:c,redo:x,editable:b=!0,toolHost:w=null,onAiTool:k=null,reviseTool:z=null,board:s=null,features:f=null}={}){let l=e.ownerDocument;I(Te,ea,Te,["editor-ui"]);let i=l.createElement("div");i.className="page-shell",i.setAttribute("clay","editor-ui"),i.setAttribute("sap-ignore",""),e.appendChild(i);let h=!1,u=null,U=f??K({load:d=>O[d].load(),install:(d,E)=>ia({view:u,upload:o,toolHost:w,board:s,undo:c,redo:x,revise:z,highlight:r},d,E)}),M=la({load:d=>$[d].load(),context:d=>({view:d,upload:o})}),L=new Map,W={chart:(d,E,P)=>new me(d,E,P)};for(let d of Object.values(O))for(let E of d.views??d.types)W[E]=(P,Ie,Ve,Ne,Re)=>{let H=L.get(P.type.name);return H?H(P,Ie,Ve,Ne,Re):new j(P,L)};u=new y.EditorView(i,{state:ua(a,{upload:o,highlight:r,doc:p,history:g,undo:c,redo:x,onAiTool:k,toolHost:w,features:U,commandHost:M}),attributes:{class:"page-editor"},editable:()=>b,nodeViews:W,handleDOMEvents:{mousedown:ha,dragstart(d,E){let P=d.state.selection;return P instanceof v.NodeSelection||P instanceof oe?(E.preventDefault(),!0):!1}},dispatchTransaction(d){if(n){n(d);return}h&&d.docChanged&&!d.getMeta(T)&&S.closeHistory(d),d.docChanged&&(h=!!d.getMeta(T));let E=u.state.doc;u.updateState(u.state.apply(d)),t&&u.state.doc!==E&&t(J(u.state.doc))}}),$e.set(u,L),M.attach(u),_.set(u,M);let Ke=u.destroy.bind(u);return u.destroy=()=>{M.dispose(),U.dispose(),Ke()},u}export{ea as PAGE_EDITOR_CSS,Za as createPageEditor,ia as installPageFeature,F as lazyViewsKey,na as lazyViewsPlugin,ca as pagePlugins,ua as pageState,Xa as refreshMountedView,qa as runPageCommand,Ga as setEditorActive};
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};
@@ -1,4 +1,4 @@
1
- import{c as Ce}from"../c-4B6H4G5V.js";import{e as Fe,g as N,h as De,j as ae,l as ve,n as Ee,p as $e,q as d}from"../c-OIBUTDXI.js";import{a as I}from"../c-4JZDZFF6.js";import{b as W,c as ye,d as re,e as b,f as Ne}from"../c-VAK7SG37.js";import{b as _e}from"../c-T4VO4OCB.js";import{a as le,b as Pe}from"../c-FILLTJA7.js";import{b as p}from"../c-NUHP2XDB.js";import"../c-QIX5BJYN.js";import{a as Ie}from"../c-VKEDWYDF.js";import{m as Be,n as se}from"../c-CJZSLMVQ.js";import"../c-GQ6F6IDK.js";import"../c-2SPVQSHC.js";import"../c-5VYOWDTI.js";import"../c-7VGZ7RU5.js";import"../c-4YSCRICO.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as xe}from"../c-HT33EQRN.js";import"../c-B2ZXPOS3.js";import"../c-TQEMVJCS.js";import"../c-3IQRECYS.js";import"../c-AYVOREBE.js";import"../c-IJUK2GPW.js";import{n as He}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-35NBGMZB.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-GHBCCVG4.js";import"../c-HA6INT6J.js";import{h as J,o as ke}from"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ve="ai-edit",ct="h1,h2,h3,h4,h5,h6,p,figure",ut="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",ft="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",Ue="script,style,template,textarea,input,select,button,iframe,svg,math",pt=900*1024,ht="This section is too large for AI editing; select a smaller part.",mt="The save did not finish; the edit is still on the page.",gt=0,a=null,r,g,c,y,E,m,w,v,T,D,$,B,M,F={},h=null,O=null,H=null,de=!1,ie=new WeakMap,ge=new Set,f=null,U=null,x=null,_,P,ue=null,C=null,z=null,L=null,Z=null,fe=[],q=null,Le=0;function Ye(e){ie.delete(e),ge.delete(e)}function Ae(e,t){if(!t){Ye(e);return}ie.set(e,t),ge.add(e)}var Je="clay-ai-edit",We="AI editing is turned off. Turn it on from the app\u2019s menu.";async function Xe(){let t=(await Ce.helpers()).find(n=>n.name===Ve);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}function bt(){xe.pause()}function Me(){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(ct);return n&&t.contains(n)?n:t}function wt(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 Qe(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(Ue))return null;if(t.closest("[data-edit-id]"))return ce(t);let n=t.closest(ut)||t.closest(ft);return n&&n!==document.body?n:null}function Ze(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 Ze(t,e)}}function et(){let e=document.body.cloneNode(!0);return e.querySelectorAll(J).forEach(t=>t.remove()),e.outerHTML}function xt(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:!0,scripts:s,callbacks:{beforeNodeRemoved:l=>!(l.nodeType===1&&l.matches(J))}})):xt(e.el,t,s),_e()}function yt(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 vt(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?et():e.outerHTML,l={id:"req-"+Date.now().toString(36)+"-"+ ++gt,editId:wt(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 Et(e,t,n){if(a=vt(e,t,n),new Blob([JSON.stringify(a.payload)]).size>pt){a=null,me(ht,"warn");return}if(Ae(e,t),$t(),a.paused=!0,bt(),O={},te("working"),R("Sending\u2026"),a.payload.page&&await window.clay.save(),!a)return;let i=Ce.send(a.payload,{helper:Ve,onStatus:({text:s})=>{a?.handle===i&&R(s)}});a.handle=i;let o=await i.done;!a||a.handle!==i||(await Pe(),!(!a||a.handle!==i)&&(o.state==="done"?Rt(o.result||{}):o.state==="cancelled"?Q("HTML Clay stopped this edit."):Q(o.error||"the helper reported an error")))}var Ct=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,St=new Set(["iframe","frame","object","embed","base","link"]);function Tt(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Lt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Se(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Ke(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"?Lt(i)&&n("script "+Se(i)+"|"+i.textContent.trim()):(St.has(o)||o==="meta"&&i.hasAttribute("http-equiv")||(o==="animate"||o==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(o+" "+Se(i));for(let s of i.attributes){let l=s.name.toLowerCase();Ct.test(l)?n(o+" "+l+"="+s.value.trim()):l==="srcdoc"?n(o+" srcdoc="+s.value):Tt(s.value)&&n(o+" "+l+"="+s.value)}}return t}function At(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?Ke(i):new Map;for(let[s,l]of Ke(e))if(l>(o.get(s)||0))return!0;return!1}var Mt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function Rt(e){if(!a||a.state!=="requesting")return;a.state="deciding";let t=[],n=yt(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),At(n,a.snapshot,a.docMode)){Q(Mt);return}Be(),a.held=!0,a.finalCandidate=n;try{he(a,n)}catch(i){Q("the reply could not be applied: "+(i?.message||i));return}S(),Ye(a.el),te("ready"),R(Ot(t,e.model),t.length?"warn":"")}function Ot(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"),R(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&&Me(),e.held&&se(),S()}}async function tt(){let e=a;if(!e)return;a=null;let t=e.docMode?et():e.el.outerHTML;try{he(e,e.snapshot,{rewind:!0})}finally{e.paused&&Me(),e.held&&se({replay:!1})}he(e,t),S(),te("saving"),R("Saving\u2026");let n=O,i=await window.clay.save();if(n===O){if(i&&i.ok===!1){te("error"),R(i.msg||mt,"warn");return}R(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),Dt()}}function nt(){a?.handle?.cancel(),oe(),V()}var qe=["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 Ht(){let{signal:e}=Z;q=document.createElement("style"),q.setAttribute("clay",Fe),q.textContent=`
1
+ import{c as Ce}from"../c-Y5HBBIQ4.js";import{e as Fe,g as N,h as De,j as ae,l as ve,n as Ee,p as $e,q as d}from"../c-OIBUTDXI.js";import{a as I}from"../c-4JZDZFF6.js";import{b as W,c as ye,d as re,e as b,f as Ne}from"../c-VAK7SG37.js";import{b as _e}from"../c-HHDFCNHV.js";import{a as le,b as Pe}from"../c-FILLTJA7.js";import{b as p}from"../c-NUHP2XDB.js";import"../c-XCNTK76U.js";import{a as Ie}from"../c-VKEDWYDF.js";import{m as Be,n as se}from"../c-TCJTVAFN.js";import"../c-GQ6F6IDK.js";import"../c-2SPVQSHC.js";import"../c-5VYOWDTI.js";import"../c-QJ4OM3G6.js";import"../c-MKSQ4Y57.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as xe}from"../c-ZWIOJGMT.js";import"../c-LWLBHLVC.js";import"../c-SDAXDM2D.js";import"../c-TQEMVJCS.js";import"../c-DCXOXBF3.js";import"../c-VRZN56XY.js";import"../c-IJUK2GPW.js";import{j as He}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-SPIORRYS.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import{h as J,o as ke}from"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ve="ai-edit",ct="h1,h2,h3,h4,h5,h6,p,figure",ut="p,h1,h2,h3,h4,h5,h6,li,dt,dd,blockquote,pre,figcaption,td,th",ft="section,article,aside,header,footer,nav,main,div,ul,ol,dl,table,figure,form",Ue="script,style,template,textarea,input,select,button,iframe,svg,math",pt=900*1024,ht="This section is too large for AI editing; select a smaller part.",mt="The save did not finish; the edit is still on the page.",gt=0,a=null,r,g,c,y,E,m,w,v,T,D,$,B,M,F={},h=null,O=null,H=null,de=!1,ie=new WeakMap,ge=new Set,f=null,U=null,x=null,_,P,ue=null,C=null,z=null,L=null,Z=null,fe=[],q=null,Le=0;function Ye(e){ie.delete(e),ge.delete(e)}function Ae(e,t){if(!t){Ye(e);return}ie.set(e,t),ge.add(e)}var Je="clay-ai-edit",We="AI editing is turned off. Turn it on from the app\u2019s menu.";async function Xe(){let t=(await Ce.helpers()).find(n=>n.name===Ve);return t&&(t.state==="ready"||t.state==="unavailable")?t.state:null}function bt(){xe.pause()}function Me(){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(ct);return n&&t.contains(n)?n:t}function wt(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 Qe(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(Ue))return null;if(t.closest("[data-edit-id]"))return ce(t);let n=t.closest(ut)||t.closest(ft);return n&&n!==document.body?n:null}function Ze(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 Ze(t,e)}}function et(){let e=document.body.cloneNode(!0);return e.querySelectorAll(J).forEach(t=>t.remove()),e.outerHTML}function xt(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:!0,scripts:s,callbacks:{beforeNodeRemoved:l=>!(l.nodeType===1&&l.matches(J))}})):xt(e.el,t,s),_e()}function yt(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 vt(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?et():e.outerHTML,l={id:"req-"+Date.now().toString(36)+"-"+ ++gt,editId:wt(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 Et(e,t,n){if(a=vt(e,t,n),new Blob([JSON.stringify(a.payload)]).size>pt){a=null,me(ht,"warn");return}if(Ae(e,t),$t(),a.paused=!0,bt(),O={},te("working"),R("Sending\u2026"),a.payload.page&&await window.clay.save(),!a)return;let i=Ce.send(a.payload,{helper:Ve,onStatus:({text:s})=>{a?.handle===i&&R(s)}});a.handle=i;let o=await i.done;!a||a.handle!==i||(await Pe(),!(!a||a.handle!==i)&&(o.state==="done"?Rt(o.result||{}):o.state==="cancelled"?Q("HTML Clay stopped this edit."):Q(o.error||"the helper reported an error")))}var Ct=/^(on|hx-on|x-|@|:|v-on:|v-bind:|data-on[-:])/,St=new Set(["iframe","frame","object","embed","base","link"]);function Tt(e){let t=e.replace(/[\t\n\r]/g,"").replace(/^[\u0000- ]+/,"").toLowerCase();return t.startsWith("javascript:")||t.startsWith("vbscript:")}function Lt(e){let t=(e.getAttribute("type")||"").trim().toLowerCase();return!t||/javascript|ecmascript/.test(t)||["module","importmap","speculationrules"].includes(t)}function Se(e){return[...e.attributes].map(t=>t.name.toLowerCase()+"="+t.value).sort().join(" ")}function Ke(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"?Lt(i)&&n("script "+Se(i)+"|"+i.textContent.trim()):(St.has(o)||o==="meta"&&i.hasAttribute("http-equiv")||(o==="animate"||o==="set")&&/href/i.test(i.getAttribute("attributeName")||""))&&n(o+" "+Se(i));for(let s of i.attributes){let l=s.name.toLowerCase();Ct.test(l)?n(o+" "+l+"="+s.value.trim()):l==="srcdoc"?n(o+" srcdoc="+s.value):Tt(s.value)&&n(o+" "+l+"="+s.value)}}return t}function At(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?Ke(i):new Map;for(let[s,l]of Ke(e))if(l>(o.get(s)||0))return!0;return!1}var Mt="The reply adds a script or event handler, so it was not applied. AI editing changes content, not code.";function Rt(e){if(!a||a.state!=="requesting")return;a.state="deciding";let t=[],n=yt(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),At(n,a.snapshot,a.docMode)){Q(Mt);return}Be(),a.held=!0,a.finalCandidate=n;try{he(a,n)}catch(i){Q("the reply could not be applied: "+(i?.message||i));return}S(),Ye(a.el),te("ready"),R(Ot(t,e.model),t.length?"warn":"")}function Ot(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"),R(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&&Me(),e.held&&se(),S()}}async function tt(){let e=a;if(!e)return;a=null;let t=e.docMode?et():e.el.outerHTML;try{he(e,e.snapshot,{rewind:!0})}finally{e.paused&&Me(),e.held&&se({replay:!1})}he(e,t),S(),te("saving"),R("Saving\u2026");let n=O,i=await window.clay.save();if(n===O){if(i&&i.ok===!1){te("error"),R(i.msg||mt,"warn");return}R(i&&i.msg||"Saved",i&&i.msgType==="error"?"warn":""),Dt()}}function nt(){a?.handle?.cancel(),oe(),V()}var qe=["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 Ht(){let{signal:e}=Z;q=document.createElement("style"),q.setAttribute("clay",Fe),q.textContent=`
2
2
  [editmode\\:contenteditable][contenteditable]:focus {
3
3
  outline: 1px solid #4a4a6a; outline-offset: 4px; border-radius: 2px;
4
4
  }
@@ -0,0 +1 @@
1
+ import{b as l}from"../c-JAX2667S.js";import{e as i}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import{h as c}from"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var r="clay:demo:"+(document.documentElement.getAttribute("demo-key")||window.location.pathname),y=800,h=[c,"[data-richclay-toolbar]","[data-richclay-menu]","[data-richclay-dialog]","[data-richclay-live]","[data-richclay-float]","#squire-selection-start","#squire-selection-end",".squire-image-resize-container"].join(","),a=!1,d=null;document.addEventListener("clay:snapshot-ready",e=>{d=e.detail.documentElement.querySelector("body")?.outerHTML||null});function p(e){return typeof e=="string"?e:""}var f=window.fetch.bind(window);function g(e){let t=typeof e=="string"?e:e&&e.url||"";try{let o=new URL(t,window.location.href).pathname;return o==="/_/save"||o.startsWith("/_/save/")}catch{return!1}}window.fetch=(e,t={})=>(t.method||e&&e.method||"GET").toUpperCase()!=="POST"||!g(e)?f(e,t):new Promise(n=>{setTimeout(()=>{if(a){a=!1,n(new Response(JSON.stringify({msg:"Server not responding",msgType:"error"}),{status:503,headers:{"Content-Type":"application/json"}}));return}let m=d||p(t.body),s=new DOMParser().parseFromString(m,"text/html");s.querySelectorAll(h).forEach(u=>u.remove());try{localStorage.setItem(r,s.body.outerHTML)}catch{n(new Response(JSON.stringify({msg:"Couldn't save in this browser (storage is full or blocked)",msgType:"error"}),{status:507,headers:{"Content-Type":"application/json"}}));return}n(new Response(JSON.stringify({msg:"Saved in your browser",msgType:"success"}),{status:200,headers:{"Content-Type":"application/json"}}))},y)});async function w(){let e=localStorage.getItem(r);if(!e)return;let t=new DOMParser().parseFromString(e,"text/html");if(!i)for(let o of t.querySelectorAll(":is([editable], [clay-editable])[contenteditable]"))o.removeAttribute("contenteditable");await l(document.body,t.body,{morphStyle:"outerHTML",ignoreActiveValue:!0,scripts:{handle:!0,matchMode:"smart"}})}var v=w(),E={key:r,failNext(){a=!0},reset(){localStorage.removeItem(r),window.location.reload()}};export{E as demo,v as ready};
@@ -0,0 +1 @@
1
+ import{a as s}from"../c-2AZDZWCK.js";import{l as v}from"../c-OIBUTDXI.js";import{a as d}from"../c-4JZDZFF6.js";import{b as p,e as o}from"../c-VAK7SG37.js";import{a as m,b as i}from"../c-NUHP2XDB.js";import{a as f}from"../c-VKEDWYDF.js";import{j as u}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var l={saving:"Saving\u2026",saved:"Saved",error:"Couldn't save",offline:"Offline, not saved",retrying:"Saving\u2026",blocked:"Can't save here"},g=new Set(["saving","retrying","blocked"]),b=new Set(["error","offline","blocked"]),h=[`background:${o.surface}`,`color:${o.ink}`,`border-color:${o["line-2"]}`],S=[`background:${o["ox-soft"]}`,`color:${o.ox}`,`border-color:color-mix(in srgb, ${o.ox} 28%, ${o["ox-soft"]})`],t=null,a=null;function T(){if(t&&t.isConnected)return t;let e=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;return t=v("div",["position:fixed","right:16px","bottom:16px","z-index:2147483000","padding:4px 12px",`font:500 13px/1.6 ${p}`,"opacity:0",`transition:${e?"none":"opacity .25s"}`,"pointer-events:none",`color-scheme:${d()}`]),t.setAttribute("data-clay-indicator",""),t.setAttribute("role","status"),document.body.appendChild(t),t}function x(e){if(!l[e])return;let n=e!=="blocked"&&(b.has(e)||e==="saved"&&s.savedToast);if(s.toasts&&n){clearTimeout(a),t&&(i(t,"opacity","0"),t.textContent="",delete t.dataset.state);return}let r=T();r.textContent=l[e],r.dataset.state=e,i(r,"color-scheme",d()),m(r,b.has(e)?S:h),i(r,"opacity","1"),clearTimeout(a),g.has(e)||(a=setTimeout(()=>{i(r,"opacity","0")},2200))}var c=null;function y(){if(s.chip=!0,c)return;c=new AbortController;let{signal:e}=c;for(let n of Object.keys(l))document.addEventListener("clay:save-"+n,()=>x(n),{signal:e});document.addEventListener("clay:page-save-state",n=>x(n.detail?.state),{signal:e})}function A(){c?.abort(),c=null,clearTimeout(a),a=null,t?.remove(),t=null}function $(){u()&&y()}function O(){return{id:"clay:indicator",order:700,prepare(e={}){return{enable(){e.initial!==!0&&y()},quiesce(){},resume(){},dispose(){A()}}}}}f($);export{O as indicatorParticipant,O as modeParticipant};
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t}from"../c-S4ZEH46B.js";import"../c-TCCA5BZN.js";import"../c-LRPUO2MX.js";import"../c-A7LS5UZW.js";import"../c-5V3MOVJT.js";import"../c-LZJPNR2W.js";import"../c-TCJTVAFN.js";import"../c-GQ6F6IDK.js";import"../c-2SPVQSHC.js";import"../c-5VYOWDTI.js";import"../c-QJ4OM3G6.js";import"../c-MKSQ4Y57.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-ZWIOJGMT.js";import"../c-LWLBHLVC.js";import"../c-SDAXDM2D.js";import"../c-TQEMVJCS.js";import"../c-DCXOXBF3.js";import"../c-VRZN56XY.js";import"../c-IJUK2GPW.js";import"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-SPIORRYS.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as HOLD_MS,r as checkpointWithin,o as closeStore,k as confirmSaved,t as default,b as drainLiveWriter,q as fastLane,h as live,f as liveTags,c as liveWriterParticipant,c as modeParticipant,p as openStores,d as pageLaneReady,e as pageWriterReady,m as receiveFrame,j as registerPageCheckpoints,s as requestCheckpoint,l as sendingCapture,g as serializeLines,i as stageStore,n as storeOf};
@@ -1,4 +1,4 @@
1
- import{a as q}from"../c-AQLFEATB.js";import{a as R}from"../c-VKEDWYDF.js";import{f as x,g as O,i as L,j as z}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var B='<svg xmlns="http://www.w3.org/2000/svg" viewBox="-45.87 -57.96 100.26 60.98" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M44.35 -4.56Q40.03 -0.52 34.69 -0.39Q29.34 -0.25 24.81 -0.14Q20.27 -0.02 15.6 0Q10.93 0.02 6.41 0Q1.89 -0.02 -2.79 -0.02Q-7.48 -0.02 -12.11 -0.14Q-16.73 -0.25 -21.64 -0.27Q-26.55 -0.3 -31.72 -2.25Q-36.88 -4.2 -39.87 -9.12Q-42.87 -14.03 -42.8 -19.61Q-42.74 -25.18 -40.43 -29.94Q-38.12 -34.69 -34.82 -38.78Q-31.52 -42.87 -27.25 -45.6Q-22.98 -48.33 -18.35 -50.59Q-13.73 -52.85 -8.7 -53.88Q-3.68 -54.91 1.32 -54.93Q6.32 -54.96 11.44 -54.56Q16.55 -54.16 21.35 -52.2Q26.16 -50.24 30.69 -48.01Q35.22 -45.78 38.99 -42.18Q42.76 -38.59 45.67 -34.37Q48.59 -30.15 49.99 -24.87Q51.39 -19.59 50.04 -14.09Q48.68 -8.6 44.35 -4.56ZM0.66 -30.49C0.5 -28.73 -0.88 -27.42 -2.42 -27.57C-3.96 -27.71 -5.08 -29.25 -4.91 -31.01C-4.75 -32.77 -3.36 -34.08 -1.83 -33.94C-0.29 -33.79 0.83 -32.25 0.66 -30.49ZM13.61 -29.28C13.44 -27.52 12.06 -26.21 10.52 -26.35C8.98 -26.5 7.87 -28.04 8.03 -29.8C8.2 -31.56 9.58 -32.87 11.12 -32.73C12.66 -32.58 13.77 -31.04 13.61 -29.28ZM-1.23 -17.71Q-0.62 -17.35 -0.03 -17.08Q0.56 -16.81 1.15 -16.54Q1.73 -16.28 2.4 -16Q3.07 -15.72 3.87 -15.6Q4.66 -15.48 5.4 -15.55Q6.13 -15.62 6.77 -15.79Q7.41 -15.96 7.97 -16.23Q8.53 -16.5 9 -16.91Q9.46 -17.32 9.73 -17.9Q9.99 -18.47 10.08 -19.12Q10.17 -19.77 10.08 -20.42Q9.99 -21.06 9.45 -21.32Q8.91 -21.58 8.27 -21.38Q7.63 -21.17 6.99 -20.91Q6.36 -20.65 5.7 -20.61Q5.04 -20.56 4.33 -20.73Q3.62 -20.9 2.92 -21.14Q2.23 -21.39 1.54 -21.68Q0.85 -21.97 0.16 -22.27Q-0.52 -22.56 -1.22 -22.79Q-1.92 -23.03 -2.49 -22.61Q-3.05 -22.19 -3.23 -21.5Q-3.4 -20.81 -3.2 -20.09Q-3.01 -19.38 -3.02 -19.15Q-3.02 -18.93 -2.42 -18.5Q-1.83 -18.06 -1.23 -17.71Z"/></svg>';var _=!0,$=6e3,U=12,G=`.clay-menu {
1
+ import{a as q}from"../c-AQLFEATB.js";import{a as R}from"../c-VKEDWYDF.js";import{b as x,c as O,e as L,f as z}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var B='<svg xmlns="http://www.w3.org/2000/svg" viewBox="-45.87 -57.96 100.26 60.98" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M44.35 -4.56Q40.03 -0.52 34.69 -0.39Q29.34 -0.25 24.81 -0.14Q20.27 -0.02 15.6 0Q10.93 0.02 6.41 0Q1.89 -0.02 -2.79 -0.02Q-7.48 -0.02 -12.11 -0.14Q-16.73 -0.25 -21.64 -0.27Q-26.55 -0.3 -31.72 -2.25Q-36.88 -4.2 -39.87 -9.12Q-42.87 -14.03 -42.8 -19.61Q-42.74 -25.18 -40.43 -29.94Q-38.12 -34.69 -34.82 -38.78Q-31.52 -42.87 -27.25 -45.6Q-22.98 -48.33 -18.35 -50.59Q-13.73 -52.85 -8.7 -53.88Q-3.68 -54.91 1.32 -54.93Q6.32 -54.96 11.44 -54.56Q16.55 -54.16 21.35 -52.2Q26.16 -50.24 30.69 -48.01Q35.22 -45.78 38.99 -42.18Q42.76 -38.59 45.67 -34.37Q48.59 -30.15 49.99 -24.87Q51.39 -19.59 50.04 -14.09Q48.68 -8.6 44.35 -4.56ZM0.66 -30.49C0.5 -28.73 -0.88 -27.42 -2.42 -27.57C-3.96 -27.71 -5.08 -29.25 -4.91 -31.01C-4.75 -32.77 -3.36 -34.08 -1.83 -33.94C-0.29 -33.79 0.83 -32.25 0.66 -30.49ZM13.61 -29.28C13.44 -27.52 12.06 -26.21 10.52 -26.35C8.98 -26.5 7.87 -28.04 8.03 -29.8C8.2 -31.56 9.58 -32.87 11.12 -32.73C12.66 -32.58 13.77 -31.04 13.61 -29.28ZM-1.23 -17.71Q-0.62 -17.35 -0.03 -17.08Q0.56 -16.81 1.15 -16.54Q1.73 -16.28 2.4 -16Q3.07 -15.72 3.87 -15.6Q4.66 -15.48 5.4 -15.55Q6.13 -15.62 6.77 -15.79Q7.41 -15.96 7.97 -16.23Q8.53 -16.5 9 -16.91Q9.46 -17.32 9.73 -17.9Q9.99 -18.47 10.08 -19.12Q10.17 -19.77 10.08 -20.42Q9.99 -21.06 9.45 -21.32Q8.91 -21.58 8.27 -21.38Q7.63 -21.17 6.99 -20.91Q6.36 -20.65 5.7 -20.61Q5.04 -20.56 4.33 -20.73Q3.62 -20.9 2.92 -21.14Q2.23 -21.39 1.54 -21.68Q0.85 -21.97 0.16 -22.27Q-0.52 -22.56 -1.22 -22.79Q-1.92 -23.03 -2.49 -22.61Q-3.05 -22.19 -3.23 -21.5Q-3.4 -20.81 -3.2 -20.09Q-3.01 -19.38 -3.02 -19.15Q-3.02 -18.93 -2.42 -18.5Q-1.83 -18.06 -1.23 -17.71Z"/></svg>';var _=!0,$=6e3,U=12,G=`.clay-menu {
2
2
  position: fixed;
3
3
  top: max(12px, env(safe-area-inset-top));
4
4
  right: max(12px, env(safe-area-inset-right));
@@ -135,4 +135,4 @@ import{a as q}from"../c-AQLFEATB.js";import{a as R}from"../c-VKEDWYDF.js";import
135
135
  }
136
136
  @media (prefers-reduced-motion: reduce) {
137
137
  .clay-menu-track, .clay-menu-thumb { transition: none; }
138
- }`,D=()=>window.clay&&typeof window.clay.mode=="string"?window.clay.mode:z;function P(){if(document.getElementById("clay-menu-style"))return;let t=document.createElement("style");t.id="clay-menu-style",t.setAttribute("clay","editor-ui"),t.textContent=G,document.head.append(t)}function j(){if(document.querySelector(".clay-menu"))return;P();let t=document.createElement("div");t.className="clay-menu",t.setAttribute("clay","editor-ui"),t.setAttribute("clay-mode-toggle",""),t.innerHTML=`<button type="button" class="clay-menu-edit" role="switch" aria-checked="false"><span class="clay-menu-track" aria-hidden="true"><span class="clay-menu-thumb"></span></span><span class="clay-menu-label">Edit</span></button><button type="button" class="clay-menu-goo" aria-haspopup="menu" aria-expanded="false" aria-label="Clay menu">${B}</button><div class="clay-menu-list" role="menu" hidden></div><div class="clay-menu-note" role="status" hidden></div>`;let a=t.querySelector(".clay-menu-edit"),l=t.querySelector(".clay-menu-goo"),i=t.querySelector(".clay-menu-list"),p=t.querySelector(".clay-menu-note"),b=new Map,c=()=>!i.hidden;function w(e){i.hidden=!e,l.setAttribute("aria-expanded",e?"true":"false")}let Q=()=>[...i.querySelectorAll('[role="menuitem"]')];function m(e){let r=Q();r.length&&r[(e+r.length)%r.length].focus()}function s(){c()&&w(!1)}function f(){c()||w(!0)}function N(){let e=i.contains(document.activeElement);i.textContent="";for(let o of b.values()){let u=document.createElement("button");u.type="button",u.setAttribute("role","menuitem"),u.dataset.menuId=o.id,u.textContent=o.label,u.addEventListener("click",()=>{s(),o.run&&o.run()}),i.append(u)}let r=l.querySelector(".clay-menu-dot"),n=[...b.values()].some(o=>o.badge);if(n&&!r){let o=document.createElement("span");o.className="clay-menu-dot",l.append(o)}else!n&&r&&r.remove();e&&m(0)}function v({id:e,label:r,run:n,badge:o}={}){return e?(b.set(e,{id:e,label:String(r??""),run:typeof n=="function"?n:null,badge:!!o}),N(),e):null}function Z(e){e&&(p.textContent=e,p.hidden=!1,clearTimeout(k),k=setTimeout(()=>{p.hidden=!0,p.textContent=""},$))}let k=0,g=!1;function h(){a.setAttribute("aria-checked",D()==="edit"?"true":"false")}h(),document.addEventListener("clay:modechange",h),a.addEventListener("click",async()=>{if(g)return;let e=a.getAttribute("aria-checked"),r=D()==="edit"?"view":"edit";g=!0,a.setAttribute("aria-busy","true"),a.disabled=!0;let n;try{n=await window.clay?.setMode?.(r)}catch(o){n={ok:!1,message:o&&o.message}}if(!(n&&n.reloading))if(g=!1,a.removeAttribute("aria-busy"),a.disabled=!1,n&&n.ok===!1){a.setAttribute("aria-checked",e);let o=q(n);o&&Z(o)}else h()}),l.addEventListener("click",()=>{c()?s():f()}),document.addEventListener("click",e=>{c()&&!t.contains(e.target)&&s()}),t.addEventListener("keydown",e=>{if(e.key==="Escape"){if(!c())return;e.preventDefault(),s(),l.focus();return}if(e.target===l&&(e.key==="Enter"||e.key===" ")){e.preventDefault(),c()?s():(f(),m(0));return}if(!c())return;if(e.key==="Enter"&&i.contains(e.target)){e.preventDefault(),e.target.click();return}let r=Q();if(!r.length)return;let n=r.indexOf(document.activeElement);e.key==="ArrowDown"?(e.preventDefault(),m(n<0?0:n+1)):e.key==="ArrowUp"&&(e.preventDefault(),m(n<0?r.length-1:n-1))});let E=document,d=null,C=null;function F(e){t.style.top=`${Math.round(e.getBoundingClientRect().bottom)+U}px`}function M(){if(!t.isConnected)return;let e=E.querySelector(".clay-intro");if(e!==C){if(d&&(d.disconnect(),d=null),C=e,!e){t.style.removeProperty("top");return}typeof ResizeObserver=="function"&&(d=new ResizeObserver(()=>F(e)),d.observe(e)),F(e)}}let y=document.createElement("style");y.id="clay-menu-vars",y.setAttribute("clay","editor-ui"),document.head.append(y);function A(){let e=t.getBoundingClientRect();y.textContent=`:root { --clay-menu-width: ${Math.ceil(e.width)}px; --clay-menu-height: ${Math.ceil(e.height)}px; }`}document.body.append(t),A(),typeof ResizeObserver=="function"&&new ResizeObserver(A).observe(t),new MutationObserver(M).observe(E.body,{childList:!0}),M();let S=()=>import("../c-UXBMRDZB.js").then(e=>e.open());if(_){v({id:"seo",label:"SEO settings\u2026",run:S});let e=window.clay.storage&&window.clay.storage.session;e&&e.get("reopen-seo")===!0&&(e.remove("reopen-seo"),S().catch(()=>{}))}window.clay.menu={addItem:v,open:f,close:s}}var I=!1,H=()=>(O||L)&&!x;function T(){I||!H()||(I=!0,j())}x||(R(T),document.addEventListener("clay:capabilitychange",T));
138
+ }`,D=()=>window.clay&&typeof window.clay.mode=="string"?window.clay.mode:z;function P(){if(document.getElementById("clay-menu-style"))return;let t=document.createElement("style");t.id="clay-menu-style",t.setAttribute("clay","editor-ui"),t.textContent=G,document.head.append(t)}function j(){if(document.querySelector(".clay-menu"))return;P();let t=document.createElement("div");t.className="clay-menu",t.setAttribute("clay","editor-ui"),t.setAttribute("clay-mode-toggle",""),t.innerHTML=`<button type="button" class="clay-menu-edit" role="switch" aria-checked="false"><span class="clay-menu-track" aria-hidden="true"><span class="clay-menu-thumb"></span></span><span class="clay-menu-label">Edit</span></button><button type="button" class="clay-menu-goo" aria-haspopup="menu" aria-expanded="false" aria-label="Clay menu">${B}</button><div class="clay-menu-list" role="menu" hidden></div><div class="clay-menu-note" role="status" hidden></div>`;let a=t.querySelector(".clay-menu-edit"),l=t.querySelector(".clay-menu-goo"),i=t.querySelector(".clay-menu-list"),p=t.querySelector(".clay-menu-note"),b=new Map,c=()=>!i.hidden;function w(e){i.hidden=!e,l.setAttribute("aria-expanded",e?"true":"false")}let Q=()=>[...i.querySelectorAll('[role="menuitem"]')];function m(e){let r=Q();r.length&&r[(e+r.length)%r.length].focus()}function s(){c()&&w(!1)}function f(){c()||w(!0)}function N(){let e=i.contains(document.activeElement);i.textContent="";for(let o of b.values()){let u=document.createElement("button");u.type="button",u.setAttribute("role","menuitem"),u.dataset.menuId=o.id,u.textContent=o.label,u.addEventListener("click",()=>{s(),o.run&&o.run()}),i.append(u)}let r=l.querySelector(".clay-menu-dot"),n=[...b.values()].some(o=>o.badge);if(n&&!r){let o=document.createElement("span");o.className="clay-menu-dot",l.append(o)}else!n&&r&&r.remove();e&&m(0)}function v({id:e,label:r,run:n,badge:o}={}){return e?(b.set(e,{id:e,label:String(r??""),run:typeof n=="function"?n:null,badge:!!o}),N(),e):null}function Z(e){e&&(p.textContent=e,p.hidden=!1,clearTimeout(k),k=setTimeout(()=>{p.hidden=!0,p.textContent=""},$))}let k=0,g=!1;function h(){a.setAttribute("aria-checked",D()==="edit"?"true":"false")}h(),document.addEventListener("clay:modechange",h),a.addEventListener("click",async()=>{if(g)return;let e=a.getAttribute("aria-checked"),r=D()==="edit"?"view":"edit";g=!0,a.setAttribute("aria-busy","true"),a.disabled=!0;let n;try{n=await window.clay?.setMode?.(r)}catch(o){n={ok:!1,message:o&&o.message}}if(!(n&&n.reloading))if(g=!1,a.removeAttribute("aria-busy"),a.disabled=!1,n&&n.ok===!1){a.setAttribute("aria-checked",e);let o=q(n);o&&Z(o)}else h()}),l.addEventListener("click",()=>{c()?s():f()}),document.addEventListener("click",e=>{c()&&!t.contains(e.target)&&s()}),t.addEventListener("keydown",e=>{if(e.key==="Escape"){if(!c())return;e.preventDefault(),s(),l.focus();return}if(e.target===l&&(e.key==="Enter"||e.key===" ")){e.preventDefault(),c()?s():(f(),m(0));return}if(!c())return;if(e.key==="Enter"&&i.contains(e.target)){e.preventDefault(),e.target.click();return}let r=Q();if(!r.length)return;let n=r.indexOf(document.activeElement);e.key==="ArrowDown"?(e.preventDefault(),m(n<0?0:n+1)):e.key==="ArrowUp"&&(e.preventDefault(),m(n<0?r.length-1:n-1))});let E=document,d=null,C=null;function F(e){t.style.top=`${Math.round(e.getBoundingClientRect().bottom)+U}px`}function M(){if(!t.isConnected)return;let e=E.querySelector(".clay-intro");if(e!==C){if(d&&(d.disconnect(),d=null),C=e,!e){t.style.removeProperty("top");return}typeof ResizeObserver=="function"&&(d=new ResizeObserver(()=>F(e)),d.observe(e)),F(e)}}let y=document.createElement("style");y.id="clay-menu-vars",y.setAttribute("clay","editor-ui"),document.head.append(y);function A(){let e=t.getBoundingClientRect();y.textContent=`:root { --clay-menu-width: ${Math.ceil(e.width)}px; --clay-menu-height: ${Math.ceil(e.height)}px; }`}document.body.append(t),A(),typeof ResizeObserver=="function"&&new ResizeObserver(A).observe(t),new MutationObserver(M).observe(E.body,{childList:!0}),M();let S=()=>import("../c-SMGU7RT3.js").then(e=>e.open());if(_){v({id:"seo",label:"SEO settings\u2026",run:S});let e=window.clay.storage&&window.clay.storage.session;e&&e.get("reopen-seo")===!0&&(e.remove("reopen-seo"),S().catch(()=>{}))}window.clay.menu={addItem:v,open:f,close:s}}var I=!1,H=()=>(O||L)&&!x;function T(){I||!H()||(I=!0,j())}x||(R(T),document.addEventListener("clay:capabilitychange",T));
@@ -0,0 +1,2 @@
1
+ import{a as we}from"../c-3GJ4SDE2.js";import{a as de,b as fe}from"../c-MFP2ZWD4.js";import{a as tr,b as me}from"../c-U62OB4BT.js";import{a as rr}from"../c-BYTKL6UX.js";import{a as er,b as F,c as O}from"../c-4L3BTFRK.js";import{a as or}from"../c-L4WQSC27.js";import{d as Xe,e as ze,i as Ke,j as ye,n as D,o as Qe,q as K,r as he,s as Ze}from"../c-S4ZEH46B.js";import{a as Ue}from"../c-TCCA5BZN.js";import{k as ge}from"../c-LRPUO2MX.js";import"../c-A7LS5UZW.js";import"../c-5V3MOVJT.js";import"../c-LZJPNR2W.js";import{b as $e}from"../c-FILLTJA7.js";import{a as Be}from"../c-NUHP2XDB.js";import{A as Ye,E as Je,d as Ge,e as X,m as pe,n as z}from"../c-TCJTVAFN.js";import"../c-GQ6F6IDK.js";import{a as We}from"../c-2SPVQSHC.js";import"../c-5VYOWDTI.js";import"../c-QJ4OM3G6.js";import"../c-MKSQ4Y57.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-ZWIOJGMT.js";import{d as U}from"../c-LWLBHLVC.js";import"../c-SDAXDM2D.js";import"../c-TQEMVJCS.js";import{a as _e,c as qe,d as Ve}from"../c-DCXOXBF3.js";import{d as Ne}from"../c-VRZN56XY.js";import"../c-IJUK2GPW.js";import{j as Me}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{s as H}from"../c-SPIORRYS.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var $r=Object.freeze({"page-converting":"retrying","page-capacity":"retrying",busy:"retrying","rate-limited":"retrying",offline:"retrying",network:"retrying","network-error":"retrying",timeout:"retrying","save-history-pending":"retrying","page-condition-required":"blocked","page-conversion-refused":"blocked","page-conversion-required":"blocked","page-conversion-stale":"blocked","save-id-reused":"blocked","too-large":"blocked","unsupported-host":"blocked","save-history-refresh-required":"blocked","provenance-unsupported":"blocked","receipt-expired":"blocked"}),Q="Can't save here. Your edits are still in this tab.",Z="Still trying to save. Your edits are safe in this tab.";function M({ok:e=!1,code:r=null,offline:t=!1}={}){return e?"saved":t?"retrying":$r[r]??"error"}function ar(e){let r;try{r=new DOMParser().parseFromString(e,"text/html")}catch{return e}let t=[...r.querySelectorAll('script[type="application/json"][merge="page"][clay~="live"]')].filter(f=>!f.closest("template")&&!f.closest("noscript"));if(t.length!==1)return e;let a=t[0].outerHTML,l=e.indexOf(a);return l<0||e.indexOf(a,l+1)!==-1?e:e.slice(0,l)+e.slice(l+a.length)}function ee(){let{forSave:e}=H();return fe({html:ar(e),name:`${de()}.html`})}function ve(e){return fe({html:ar(e),name:`${de()}.html`})}async function lr(){try{let{forSave:e}=H(),t=new DOMParser().parseFromString(e,"text/html").querySelectorAll("article[data-page]");return t.length!==1?!1:(await navigator.clipboard.writeText(t[0].textContent),!0)}catch{return!1}}var nr="clay.page.author",be="clay.page.author.owned.",sr=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;function cr(e=globalThis.localStorage){try{let r=[];for(let a=0;a<e.length;a++){let l=e.key(a);l&&l.startsWith(be)&&r.push(l.slice(be.length))}let t=e.getItem(nr);return(!t||!r.includes(t))&&(t=sr(),e.setItem(be+t,"1"),e.setItem(nr,t),r.push(t)),{token:t,owned:r.sort()}}catch{let r=sr();return{token:r,owned:[r]}}}var E=Object.freeze({loading:"loading",joining:"joining",adopting:"adopting",ready:"ready",blocked:"blocked",error:"error"}),Ur=new Set([E.ready,E.blocked,E.error]),ir=0,dr=()=>globalThis.performance?.now?.()??Date.now();function fr({gen:e=0,isCurrent:r=()=>!0,onPhase:t=null}={}){return ir+=1,{installId:ir,gen:e,isCurrent:r,onPhase:typeof t=="function"?t:null,phase:E.loading,result:null,at:dr(),controller:new AbortController,disposers:[],disposed:!1,steps:null,deferred:null}}function p(e){return!e.disposed&&!e.controller.signal.aborted&&e.isCurrent()!==!1}function ke(e,r){return p(e)&&!!r?.view&&e.mounted===r.view}function C(e,r,t=null){if(Ur.has(e.phase)&&e.result)return e.result;e.phase=r,e.at=dr(),e.result=Object.freeze({phase:r,reason:t??null,installId:e.installId,at:e.at});try{e.onPhase?.(e.result)}catch(a){console.error("clayjs: page boot phase callback failed",a)}return e.result}function Te(e,r){let t=C(e,E.blocked,r);return e.editorReadyResolve?.(),t}function pr(e,r){return C(e,E.error,r)}function te(e,r){return typeof r=="function"&&e.disposers.push(r),r}function Se(e){if(e.disposed)return;e.disposed=!0,e.mounted=null;try{e.controller.abort()}catch(t){console.error("clayjs: page boot abort failed",t)}let r=e.disposers.splice(0).reverse();for(let t of r)try{t()}catch(a){console.error("clayjs: a page boot disposer failed",a)}}function re(e,r){let t=globalThis.performance;if(typeof t?.mark=="function")try{t.mark(e,{detail:{installId:r.installId}})}catch{try{t.mark(e)}catch{return}}}function Xr(e,r){try{r.release?.(e)}catch(t){console.error("clayjs: page boot release failed",t)}}function V(e,r,t){return r.cancelled?null:(Xr(e,t),Te(e,r.reason??"boot-incomplete"))}function ur(e,r,t,a=null){return Promise.resolve(e).then(l=>l??{ok:!1,reason:t},l=>(console.error(`clayjs: page boot ${t}`,l),{ok:!1,reason:t})).then(l=>(l.ok&&a&&p(r)&&re(a,r),l))}function zr(e,r){return new Promise(t=>{let a=e.controller.signal,l=!1,f=k=>{l||(l=!0,t(k))};if(a.aborted)return f({cancelled:!0});a.addEventListener("abort",()=>f({cancelled:!0}),{once:!0});let g=new Array(r.length),b=r.length;r.forEach((k,A)=>{k.then(R=>{if(!l){if(!R.ok)return f({result:R,branch:k});g[A]=R,b-=1,b===0&&f({results:g})}})})})}async function gr(e,r,{activate:t=!0}={}){re("document:boot",e),C(e,E.loading);let a=r.readSource(e);if(!p(e))return null;if(!a.ok)return Te(e,a.reason);let l=a.source;C(e,E.joining);let f=await zr(e,[ur(r.loadEditorAssets(e,l),e,"editor-assets-failed","document:assets-ready"),ur(r.prepareAuthority(e,l),e,"authority-failed","document:authority-ready")]);if(f.cancelled||!p(e))return null;if(!f.results){try{e.controller.abort()}catch(P){console.error("clayjs: page boot abort failed",P)}return V(e,f.result,r)}let[g,b]=f.results,k=r.mountAndAttach(e,l,g,b);if(!p(e))return null;if(!k.ok)return V(e,k,r);e.mounted=k.view??null,C(e,E.adopting);let A=await r.adoptSource(e,l,k);if(!p(e))return null;if(!A.ok)return V(e,A,r);if(!t){if(r.prepareInput){let P=await r.prepareInput(e,k);if(!p(e))return null;if(!P.ok)return V(e,P,r)}return e.deferred=k,{phase:e.phase,view:k.view,deferred:!0}}let R=await r.enableInput(e,k);return p(e)?R.ok?(re("document:input-ready",e),C(e,E.ready)):V(e,R,r):null}function yr(e){let r=e.deferred;if(e.deferred=null,!r||!p(e))return e.result??null;let t=e.steps?.openInput?.(e,r);return t?.ok?(re("document:input-ready",e),C(e,E.ready)):Te(e,t?.reason??"input-refused")}var W="article[data-page]",le='script[type="application/json"][merge="page"][clay~="live"]',hr={state:"blocked",code:"unsupported-host",message:"This host does not support page editing"},Kr=45e3,Qr="Couldn't save",Zr="Offline, not saved",kr="This page was changed outside the editor. Reload to see it.",et="That change is too large to share, so it was not saved. Reload the page to keep editing.",rt="Some changes you made were replaced by a change made outside the editor.",Tr="The page was changed outside the editor; reload to see it.",tt=150,ot="Loading the editor\u2026",Oe="the page session has not committed yet",mr=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function Ae(e){return mr(e)?e.v!==1||!mr(e.y)||Object.hasOwn(e,"blocks")||Object.hasOwn(e,"deleted")?(console.warn("clayjs: page plugin: the page tag is not a strict Yjs page, leaving the page as saved HTML"),"unsupported-page-format"):null:(console.warn("clayjs: page plugin: the page tag is not JSON, leaving the page as saved HTML"),"invalid-page-json")}var N=null,wr=null;function x(){return wr??=import("../c-TYLXX4NF.js").then(e=>N=e),wr}function at(e){let r=new Set;return e.forEach(t=>{let a=me(t.type.name);a&&r.add(a)}),[...r]}function L(e){e.statusTimer&&(clearTimeout(e.statusTimer),e.statusTimer=null),e.statusNote?.remove(),e.statusNote=null}function lt(e,r){L(e),e.statusTimer=setTimeout(()=>{if(e.statusTimer=null,!p(e))return;let t=r.ownerDocument.createElement("div");t.className="page-boot-status",t.setAttribute("clay","editor-ui"),t.setAttribute("sap-ignore",""),t.setAttribute("role","status"),Be(t,["display:block","margin:0 0 1em","font:500 13px/1.6 system-ui, sans-serif","color:color-mix(in srgb, currentColor 55%, transparent)","user-select:none"]),t.textContent=ot,r.prepend(t),e.statusNote=t},tt)}var ne=0,j=null,oe=null,nt=8e3;function st(e,r=globalThis.location){let t=r?.hash?.slice(1);if(!t)return;let a;try{a=decodeURIComponent(t)}catch{return}let l=-1;e.state.doc.forEach((f,g)=>{l<0&&f.attrs.id===a&&(l=g)}),!(l<0)&&globalThis.requestAnimationFrame?.(()=>e.nodeDOM(l)?.scrollIntoView?.({block:"start"}))}function Pe(e,r,t){document.dispatchEvent(new CustomEvent("clay:page-save-state",{detail:{state:e,code:r,message:t}}))}function Sr(){O(Qr),O(Zr)}function Ar(e){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.retryShown=!1,O(Z)}function ct(e,r,t){Sr(),Pe("retrying",r,t),!(e.retryTimer||e.retryShown)&&(e.retryTimer=setTimeout(()=>{e.retryTimer=null,e.retryShown=!0,F(Z,"warning")},Kr))}function Rr(e,r,t){Ar(e),Sr(),Pe("blocked",r,t),F(Q,"error",{detail:t,actions:[{label:"Download a copy",onClick:ee},{label:"Copy text",onClick:lr}]})}function it(e){Ar(e),O(Q),Pe("saved",null,"")}function ut(e,r,t=!1){if(typeof e!="string"||!e)return!1;let a;try{a=new DOMParser().parseFromString(e,"text/html")}catch{return!1}let l=a.querySelectorAll(W);return t?l.length!==1&&!a.querySelector(le):l.length!==1||a.querySelector(le)?!1:l[0].getAttribute("data-rev")!==r}function dt(e){if(!e.store||!N)return e.savedRev;try{return N.renderFromTags([JSON.stringify(e.store.value)]).rev}catch{return e.savedRev}}function Er(e){let r=e.view;r&&(r.setProps({editable:()=>!1}),r.setProps({dispatchTransaction:t=>r.updateState(r.state.apply(t))}));try{e.binding?.dispose()}catch(t){console.error("clayjs: page plugin binding failed to dispose",t)}e.savesHeld||(e.savesHeld=!0,pe(Tr))}function ft(e){if(!e.tabValue)return ee();let{forSave:r}=H(),t=new DOMParser().parseFromString(r,"text/html"),a=t.querySelectorAll(W);if(a.length!==1)return ee();let l=N.renderFromTags([JSON.stringify(e.tabValue)]);return a[0].innerHTML=l.html,l.rev==null?a[0].removeAttribute("data-rev"):a[0].setAttribute("data-rev",l.rev),ve(`<!DOCTYPE html>
2
+ ${t.documentElement.outerHTML}`)}function jr(e,r){e.replaced||(e.replaced=!0,Er(e),F(r,"warning",{actions:[{label:"Reload",onClick:()=>window.location.reload()},{label:"Download your copy",onClick:()=>ft(e)}]}))}var Ee=e=>jr(e,kr),pt=e=>jr(e,et);function B(e,r,t,a){r==="saved"?it(e):r==="retrying"?ct(e,t,a):r==="blocked"&&Rr(e,t,a)}function I(e,r,t){document.addEventListener(r,t),e.listeners.push([r,t])}function gt(e){I(e,"clay:save-error",t=>{let a=t.detail?.code??null;a!=="page-nothing-to-write"&&B(e,M({code:a}),a,t.detail?.msg??"")}),I(e,"clay:save-offline",t=>{let a=t.detail?.code??null;B(e,M({code:a,offline:!0}),a,t.detail?.msg??"")}),I(e,"clay:save-conflict",t=>{let a=t.detail?.code??null;B(e,M({code:a}),a,t.detail?.msg??"")});let r=t=>{ht(e,t)};I(e,"clay:save-conflict",r),I(e,"clay:save-error",r),I(e,"clay:save-saved",t=>{B(e,M({ok:!0}),null,t.detail?.msg??""),e.savedRev=dt(e),e.adoption?.saved(Ye())}),I(e,"clay:live-notice",t=>{if(t.detail?.name!=="page"||t.detail?.code==="op-too-large")return;if(t.detail?.code==="unknown-store"){Ee(e);return}let a=t.detail?.code??null;B(e,M({code:a}),a,t.detail?.message??"")})}async function yt(){let e=await fetch(new URL(globalThis.location.href).href,{cache:"no-store"});if(!e?.ok)return null;let r=await e.text(),a=new DOMParser().parseFromString(r,"text/html").querySelector(W);return a?{article:a,etag:e.headers?.get?.("etag")||null}:null}async function ht(e,r){let t=e.staged;if(!t||e.staleRetry||e.replaced)return;let a=r?.detail?.code??null;if(!(a!=="page-lineage-stale"&&a!=="conflict")&&!(!e.store||!t.isPending())){e.staleRetry=!0;try{let l=await yt();if(!l||!p(e))return;let f=await x();if(!p(e))return;let g=f.seedPageFromArticle(l.article.cloneNode(!0)),b=l.etag??r?.detail?.etag??null;b&&qe(b),e.store.rebase(g,{source:"state"}),await Je()}catch(l){console.warn("clayjs: page plugin could not offer the refused first write again",l)}}}function Ie(e){let r=e.article;if(!r)return;let t=e.bootHtml,a=e.bootRev;if(e.store&&N)try{let l=N.renderFromTags([JSON.stringify(e.store.value)]);t=l.html,a=l.rev}catch(l){console.error("clayjs: page plugin could not render the saved article",l)}r.innerHTML=t,a==null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",a)}function Ce(e){for(let[r,t]of e.listeners)document.removeEventListener(r,t);e.listeners=[];try{e.adoption?.dispose()}catch(r){console.error("clayjs: page plugin adoption failed to dispose",r)}e.adoption=null;try{e.recover?.destroy()}catch(r){console.error("clayjs: page plugin recover list failed to dispose",r)}if(e.recover=null,e.aiTool?.dispose(),e.aiTool=null,e.awareness?.dispose(),e.awareness=null,e.toolHost?.dispose(),e.toolHost=null,e.view&&rr.delete(e.view),e.article){let r=e.article.querySelector(".page-shell");r&&r.remove()}try{e.binding?.dispose()}catch(r){console.error("clayjs: page plugin binding failed to dispose",r)}try{e.binding?.ydoc?.destroy()}catch(r){console.error("clayjs: page plugin document failed to destroy",r)}try{e.staged?.close()}catch(r){console.error("clayjs: page plugin staged store failed to close",r)}if(e.staged=null,e.pageStore){try{Qe("page",e.pageStore)}catch(r){console.error("clayjs: page plugin store failed to close",r)}e.pageStore=null}e.binding=null,e.flush=null,e.releaseArticle?.(),e.releaseArticle=null}function vr(e){let r=e.view;if(r&&!r.isDestroyed&&typeof r.destroy=="function")try{r.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}e.titleObserver?.dispose(),e.titleObserver=null,L(e),Ce(e),Ie(e)}function je(){ne+=1;let e=j;if(j=null,U("Page-Write",null),ye(null),!!e){Se(e),e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),O(Z),O(Q),O(kr);for(let r of e.notices?.values()??[])O(r);if(e.savesHeld&&(e.savesHeld=!1,z({replay:!1,reason:Tr})),e.titleObserver?.dispose(),e.titleObserver=null,L(e),e.sessionHeld&&z({replay:!1,reason:Oe}),e.autosaveSuspended&&X(),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(r){console.error("clayjs: page plugin view failed to destroy",r)}Ce(e),Ie(e)}}var Re=null;function xe(){return Re||(Re=Promise.all([import("../c-ZVRKXKM7.js"),import("../c-GB6TU7WV.js")]).then(([e,r])=>({replay:e,proof:r})).catch(e=>(console.warn("clayjs: page journal could not load",e),null))),Re}async function mt(e,r){let t=globalThis.window?.clay?.recovery??null;if(!t||!r)return null;let a=await xe();if(!a)return null;try{return a.replay.openPageJournal({meta:e,service:t,base:a.replay.journalBase(r.value)})}catch(l){return console.warn("clayjs: page journal could not open",l),null}}async function br(e){let r=e.binding?.journal;if(!r||!e.store)return{replayed:[],review:[]};let t=await xe();if(!t)return{replayed:[],review:[]};let a=await t.replay.replayInto({journal:r,state:e.store.value,into:e.binding.ydoc});return a.replayed.length&&e.binding.provider.settle(),a.review.length&&(e.recoveryReview=a.review),a}function wt(e){ye(async({capture:r,state:t,article:a,etag:l})=>{let f=e.binding?.journal;if(!f)return;let g=await xe(),b=g?await f.context():null;if(!b)return;let{hostPageStateHref:k}=await import("../c-6AZOGAPE.js"),A=await g.proof.checkpointAccepted({channel:f.channel,records:f.records(),capture:r,accepted:b,article:a,state:t,etag:l,href:await k()});A.ok&&f.retire(A.retired)})}function vt(e,r){let t=null,a=null,l=null,f=null,g=null,b=null,k=null,A=[],R=null,P=null,_=null,G=null,Y=null,Cr=new Promise(o=>{f=o});e.editorReadyResolve=f,te(e,()=>f?.()),te(e,()=>L(e));let J=null,ce=null;e.loadFormatGate=()=>J?Promise.resolve(J):(ce??=Promise.all([import("../c-QH63LQOS.js"),import("../c-CQHPGKX2.js")]).then(([{createFormatGate:o},{createFormatHost:n}])=>{let s=n();return J=o({host:s,supported:s.supported,installed:()=>g?.token??null,revision:()=>null}),J}).catch(o=>{throw ce=null,o}),ce);let Le='script[type="application/json"][merge="page.tools"][clay~="live"]',xr=()=>_||(_=(async()=>{if(!document.querySelector(Le)){let c=document.createElement("script");c.setAttribute("type","application/json"),c.setAttribute("merge","page.tools"),c.setAttribute("clay","live"),c.textContent="{}",document.head.appendChild(c)}if(document.querySelector(Le))try{R=window.clay.live("page.tools"),await R.ready}catch(c){console.warn("clayjs: page plugin could not open the tool store",c)}if(!p(e))return null;let[{createToolHost:o},{tablesFromDoc:n}]=await Promise.all([import("../c-GOWBDM6J.js"),import("../c-VI5RMSVY.js")]);if(!p(e))return null;let s=o({store:R,mode:"edit",tables:()=>n(l?.state.doc??a.doc()).map(({id:c,cols:d,rows:i})=>({id:c,cols:d,rows:i}))});if(e.toolHost=s,we(t)){let{createAiTool:c}=await import("../c-QICP2YR5.js");if(!p(e))return null;let d=window.clay?.wire?.pageTool??r.transport??null;P=c({getView:()=>e.view,store:R,transport:d,acceptState:r.acceptState}),e.aiTool=P}return s})().catch(o=>{throw _=null,o}),_),q=new Map,Lr=o=>{if(q.has(o))return;let n=`The ${o} controls could not load. Reload the page after saving.`;q.set(o,n),F(n,"warning",{actions:[{label:"Retry",onClick:()=>{b.ensure(o).then(()=>{let s=q.get(o);s&&(q.delete(o),O(s))},()=>{})}}]})};e.notices=q;let ie=async({target:o=null,remove:n=null}={})=>{G&&l&&n&&G.holdSlashRange(l,n),await b.ensure("tool").catch(()=>{}),!(!p(e)||!P||!l)&&P.open({target:o,remove:n?G.heldSlashRange(l.state):null})},ue=()=>we(t);function Hr(o){let n=document.querySelectorAll(W),s=typeof o.context?.represented?.bytes=="string"?new DOMParser().parseFromString(o.context.represented.bytes,"text/html"):null,c=s?s.querySelectorAll(W):n,d=s?s.querySelectorAll(le):document.querySelectorAll(le);if(!c.length&&!d.length)return{ok:!1,reason:"no-page"};let i=c.length===1&&d.length===0;if(c.length!==1||!i&&d.length!==1)return console.warn(`clayjs: page plugin needs exactly one article[data-page] and one merge="page" live tag; found ${c.length} article(s) and ${d.length} tag(s), leaving the page as saved HTML`),{ok:!1,reason:"ambiguous-page"};let y=n[0];if(!y)return{ok:!1,reason:"no-page"};let u=c[0],w=d[0],v=null;if(!i){try{v=Ue(w?.textContent)}catch{v=null}let T=Ae(v);if(T)return{ok:!1,reason:T}}let m={article:u.cloneNode(!0),tags:v?[v]:null,element:y,blocks:null,seeded:i,seedValue:null};return m.ready=(async()=>{let T=await x();if(!p(o))return{ok:!1,cancelled:!0};if(i){try{v=m.seedValue=T.seedPageFromArticle(m.article.cloneNode(!0))}catch(h){return console.warn("clayjs: page plugin could not rebuild the page it found, leaving the page as saved HTML",h),{ok:!1,reason:"invalid-page-source"}}let S=Ae(v);if(S)return{ok:!1,reason:S};m.tags=[v]}try{m.blocks=T.blocksFromYValue(v)}catch(S){return console.warn("clayjs: page plugin: the page tag is not a valid Yjs page, leaving the page as saved HTML",S),{ok:!1,reason:"invalid-page-json"}}return{ok:!0}})(),lt(o,y),{ok:!0,source:m}}function Dr(o,n){if(Ae(n))return!1;if(ge(o.authoritative)===ge(n))return!0;try{return o.rebase(n,{source:"state"})}catch(s){return console.warn("clayjs: page plugin could not reconcile the open page store with the saved file",s),!1}}async function Fr(o,n){let s=x();s.catch(()=>null);let c=await n.ready;if(!c.ok)return c;if(!p(o))return{ok:!1,cancelled:!0};let d=await s,i=[...new Set(Object.values(n.blocks).map(u=>me(u.t)).filter(Boolean))];b=d.createFeatureLoader({load:u=>tr[u].load(),install:async(u,w)=>{if(l||await Cr,!p(o)||!l)return null;let v={view:l,upload:r.upload,board:a.board,undo:a.undo,redo:a.redo,revise:ue()?(m,T)=>{ie({target:{toolId:m,rev:T}})}:null};return u==="tool"&&(v.toolHost=await xr(),!p(o))?null:y.installPageFeature(v,u,w)},reportError:(u,w)=>{console.error("clayjs: an editor feature failed to load",u),Lr(w)}});for(let u of i)b.prepare(u).catch(()=>null);let y=null;try{y=await import("../page/editor-NNJA4OKD.js"),Y=y.setEditorActive,G={holdSlashRange:d.holdSlashRange,heldSlashRange:d.heldSlashRange}}catch(u){return console.error("clayjs: page plugin could not load the editor",u),{ok:!1,reason:"editor-assets-failed"}}return p(o)?{ok:!0,editor:y.createPageEditor,refreshView:y.refreshMountedView,featureIds:i,code:d}:{ok:!1,cancelled:!0}}async function Mr(o,n){let s=x();try{t=await Ne()}catch{t=null}if(!p(o))return{ok:!1,cancelled:!0};if(!t||!Array.isArray(t.extensions)||!t.extensions.includes("page"))return Rr(o,hr.code,hr.message),{ok:!1,reason:"missing-capability"};o.mergeTagless=!t.extensions.includes("live-data"),U("Page-Write","v1");let c=null,d=null;if(n.seeded){if(c=await n.ready,!c.ok)return c;if(d=await s,!p(o))return{ok:!1,cancelled:!0}}let i,y=!0;try{if(n.seeded){let h=Ke("page",{value:n.seedValue,represented:r.represented??{bytes:n.article.outerHTML,etag:Ve()??_e()}});o.staged=h,i=h.handle}else{let h=D("page")===null;y=h,i=window.clay.live("page"),h&&(o.pageStore=D("page"))}}catch(h){return console.warn("clayjs: page plugin could not open the page store",h),{ok:!1,reason:"missing-page-store"}}try{await i.ready}catch(h){return console.warn("clayjs: page plugin could not join the page room",h),{ok:!1,reason:"admission-failed"}}if(!p(o))return{ok:!1,cancelled:!0};if(c??=await n.ready,!c.ok)return c;let u=D("page")?.handle?.status?.mode==="fast";if(!y&&!u&&!Dr(D("page"),n.tags?.[0]))return{ok:!1,reason:"stale-store"};if(d??=await s,!p(o))return{ok:!1,cancelled:!0};let w=D("page");if(!w)return{ok:!1,reason:"missing-page-store"};o.store=w;let v=!1,m=null,T=async h=>{let $=await h();return v=$?.ok===!1,m?.changed(),$};g=cr();let S=await mt(t,w);return p(o)?(a=d.createYPageBinding({store:w,onStopped:h=>{o.tabValue=d.yValueOf(a.ydoc),h==="lineage"?(K()?.abandon?.("page"),Ee(o)):pt(o)},authorToken:g.token,ownedTokens:g.owned,checkpointWithin:he,requestCheckpoint:Ze,journal:S,registerUnsavedState:h=>(m=We({id:h.id,isPending:()=>v||h.isPending(),flush:()=>T(()=>h.flush())}),m)}),o.binding=a,S&&wt(o),o.flush=h=>T(()=>a.flush(h)),gt(o),{ok:!0,store:w,handle:i}):{ok:!1,cancelled:!0}}function Nr(o,n){import("../c-U6YWUAR3.js").then(async s=>{if(o.view!==n)return;let c=await s.installPageAwareness({binding:o.binding,view:n});if(c){if(o.view!==n||n.isDestroyed){c.dispose();return}o.awareness=c}}).catch(s=>console.error("clayjs: page plugin remote carets failed to load",s))}function _r(o,n,s){let c=n.element;o.context?.reader?.yieldArticle?.();try{o.releaseArticle=or(c,"editor")}catch(u){return console.error("clayjs: page plugin could not claim the article",u),{ok:!1,reason:"article-owned"}}o.source=n,o.article=c,o.bootHtml=n.article.innerHTML,o.bootRev=n.article.getAttribute("data-rev"),o.savedRev=o.bootRev,I(o,"clay:sync-applied",u=>{o.replaced||ut(u.detail?.html,o.savedRev,o.mergeTagless)&&Ee(o)}),A=[...c.childNodes].filter(u=>u!==o.statusNote);let d=c.ownerDocument.createElement("div"),i=null;try{i=s.editor(d,{doc:a.doc(),dispatch:a.dispatch,history:!1,undo:a.undo,redo:a.redo,board:a.board,editable:!1,features:b,onAiTool:ue()?(u,w)=>{ie({remove:w})}:null,reviseTool:ue()?(u,w)=>{ie({target:{toolId:u,rev:w}})}:null,formatGate:o.loadFormatGate})}catch(u){return console.error("clayjs: page plugin could not mount the editor",u),d.replaceChildren(),o.releaseArticle?.(),o.releaseArticle=null,o.article=null,{ok:!1,reason:"mount-failed"}}l=i,o.view=i;let y=i.dom.closest(".page-shell");if(y&&(y.inert=!0),s.featureIds.length&&y&&(y.style.visibility="hidden"),!s.featureIds.length)for(let u of A)u.remove();return y&&c.appendChild(y),s.refreshView?.(i),a.attach(i),Nr(o,i),f(),k=Promise.allSettled(s.featureIds.map(u=>b.ensure(u))),st(i),o.recover=s.code.createRecoverList({binding:a,mount:i.dom.closest(".page-shell")??c,ownTokens:[g.token,...g.owned],onRestored:u=>s.code.focusBlock(i,u),onStale:()=>er("That change was updated. The list now shows the latest version.","warning")}),o.titleObserver=s.code.observeDocumentTitle(i),{ok:!0,view:i,featureIds:s.featureIds}}async function qr(o,n){try{let s=await x(),{HyperMorph:c}=await $e(),d=s.blocksFromYValue(o.store.authoritative),i=s.readBack(d,document),y=s.mergePageModels(n.baseItems,i,n.parsed,{doc:document,merge3:c.merge3,mergeJson:c.mergeJson});return s.canon(y.items)===s.canon(i)}catch{return!1}}async function Vr(o,n){let s=await x();return await qr(o,n)?{ok:!0,outcome:"writer-adopts"}:new Promise(c=>{let d=null,i=null,y=!1,u=w=>{y||(y=!0,i&&clearTimeout(i),i=null,d?.(),d=null,c(w))};te(o,()=>u({ok:!1,cancelled:!0})),d=o.store.onRebase(w=>{w.source==="remote"&&u({ok:!0,outcome:"writer-adopts"})}),i=setTimeout(()=>{console.warn("page: gave up waiting for the writer's adoption; the hand edit was not adopted"),u({ok:!1,reason:"adoption-timeout"})},s.ADOPTION_TIMEOUT_MS)})}async function Br(o,n,s){let c=await x(),d=c.classifyFile(n.article,n.tags),i=d.kind==="adopt",y=async()=>{let m=await Xe();if(!m||!p(o))return;if(m.status.writer===null){let S=o.store.value.y,h=Object.keys(S),$=h.length?h[0]:`claim-${a.ydoc.clientID.toString(36)}`,Jr=h.length?S[h[0]]:c.yValueOf(a.ydoc).y.seed;o.store.handle.set(["y",$],Jr),m.release("page")}let T;await Promise.race([ze(),new Promise(S=>{T=setTimeout(S,nt)})]),clearTimeout(T)},u=i?y():Promise.resolve(),w=c.installAdoption({view:s.view,source:n,ready:u,isAdopter:()=>{let m=K();return!m||m.status.writer===null?!0:m.isWriter()},requestCheckpoint:()=>he(0),snapshot:()=>H().forSave,mergeTagless:o.mergeTagless,writerReady:y,adopted:m=>K()?.adopted?.("page",m,o.store.mark),notice:m=>{m.copy&&F(rt,"warning",{actions:[{label:"Download your copy",onClick:()=>ve(m.copy)}]})}});o.adoption=w;let v=await w.idle();return v?(v.outcome==="writer-adopts"&&(v=await Vr(o,d)),!v.ok&&p(o)?vr(o):p(o)&&await br(o),v):(await br(o),{ok:!0,outcome:"unchanged"})}async function He(o,n){if(o.replaced)return{ok:!1,reason:"page-replaced"};if(await k,!p(o))return{ok:!1,cancelled:!0};let s=n.view.dom.closest(".page-shell");if(!ke(o,n)||!s||!s.isConnected||n.view.isDestroyed)return{ok:!1,reason:"view-detached"};let c=new Set(n.featureIds??[]),d=at(n.view.state.doc).filter(i=>!c.has(i));return d.length&&(await Promise.allSettled(d.map(i=>b.ensure(i))),!p(o))?{ok:!1,cancelled:!0}:{ok:!0}}function De(o,n){let s=n.view.dom.closest(".page-shell"),c=()=>{for(let d of A)d.remove();s&&(s.style.visibility="")};return o.replaced?(c(),Er(o),{ok:!1,reason:"page-replaced"}):o.inputOpen?{ok:!0}:!ke(o,n)||!s||!s.isConnected||n.view.isDestroyed?{ok:!1,reason:"view-detached"}:(c(),s.inert=!1,Y?.(n.view,!0),o.inputOpen=!0,L(o),{ok:!0})}function Wr(o){return o.inputOpen?(Y?.(o.view,!1),!0):!1}function Gr(o){return o.inputOpen?(Y?.(o.view,!0),!0):!1}async function Yr(o,n){let s=await He(o,n);return s.ok?De(o,n):s}let Fe={readSource:Hr,loadEditorAssets:Fr,prepareAuthority:Mr,mountAndAttach:_r,adoptSource:Br,prepareInput:He,openInput:De,closeInput:Wr,resumeInput:Gr,enableInput:Yr,release:o=>{o.view||vr(o)}};return e.steps=Fe,Fe}async function bt(e,r={},{activate:t=!0}={}){return gr(e,vt(e,r),{activate:t})}function Or(e={},{activate:r=!0,context:t=null}={}){je(),oe=null;let a=++ne,l={...fr({gen:a,isCurrent:()=>a===ne&&(t?.isCurrent?.()??!0),onPhase:g=>{(g.phase==="ready"||g.phase==="blocked"||g.phase==="error")&&L(l),e.onPhase?.(g)}}),article:null,view:null,binding:null,adoption:null,source:null,store:null,toolHost:null,aiTool:null,bootHtml:"",bootRev:null,savedRev:null,staged:null,pageStore:null,releaseArticle:null,replaced:!1,savesHeld:!1,flush:null,loadFormatGate:null,listeners:[],retryTimer:null,retryShown:!1,statusTimer:null,statusNote:null,notices:null,editorReadyResolve:null,context:t,inputOpen:!1,sessionHeld:!1,autosaveSuspended:!1,staleRetry:!1};j=l;let f=bt(l,e,{activate:r}).catch(g=>(console.error("clayjs: page plugin failed to install",g),oe=pr(l,"boot-failed"),j===l&&je(),oe));return{inst:l,boot:f}}function Pr(e={}){return Or(e).boot}function kt(e){if(j===e&&(j=null,ne+=1),U("Page-Write",null),Se(e),e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.titleObserver?.dispose(),e.titleObserver=null,L(e),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(r){console.error("clayjs: page plugin view failed to destroy",r)}e.view=null,Ce(e),Ie(e)}function ae(e){e.sessionHeld&&(e.sessionHeld=!1,z({replay:!1,reason:Oe}))}function Ir(e,{held:r=!0}={}){return{enable(){r&&(ae(e),yr(e))},quiesce(){if(e.view?.composing)throw Object.assign(new Error("clayjs: a composition is still in progress"),{code:"composition"});e.steps?.closeInput?.(e),e.autosaveSuspended||(e.autosaveSuspended=!0,Ge())},resume(){ae(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,X()),e.steps?.resumeInput?.(e)},dispose(){ae(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,X()),kt(e)}}}function Tt(e=null,r={}){pe(Oe);let{inst:t,boot:a}=Or(r,{activate:!1,context:e});t.sessionHeld=!0;let l=Ir(t,{held:!0});se.ready=a.then(()=>se.status);let f=a.then(g=>{if(!g?.deferred)throw Object.assign(new Error("clayjs: the page session could not prepare"),{code:g?.reason??"load-failed"})});return f.catch(()=>{ae(t);try{e?.reader?.reclaimArticle?.()}catch(g){console.error("clayjs: the reader could not take the article back",g)}}),{ready:f,...l}}function Xt(e={}){return{id:"clay:page",order:400,prepare(r={}){return r.initial===!0?j?Ir(j,{held:!1}):{enable(){},quiesce(){},resume(){},dispose(){}}:Tt(r,e)}}}var se={ready:null,install:Pr,get status(){return j?.result??oe},flush(e={}){let r=j;return!r||!r.flush?Promise.resolve({ok:!1,code:"disposed"}):r.flush(e)},dispose:je,get view(){return j?.view??null}};se.ready=Me()?Pr():null;var zt=se;export{nt as WRITER_WAIT_MS,vt as createSteps,zt as default,Xt as modeParticipant,se as page,Xt as pageParticipant,Tt as preparePageSession};
@@ -0,0 +1 @@
1
+ import{a as be,b as me,c as ve,d as le,f as Se}from"../c-7OLLJPWP.js";import{a as ie}from"../c-L4WQSC27.js";import"../c-VRZN56XY.js";import"../c-OW5QIGG3.js";import{a as ge}from"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var we="saved",Re=2;function Ie(){return Math.random().toString(36).slice(2,11)+Date.now().toString(36)}function Ce(){try{let e=new Uint8Array(16);return(globalThis.crypto||window.crypto).getRandomValues(e),Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}catch{return Math.random().toString(36).slice(2)+Date.now().toString(36)}}function Me(e){return typeof e!="string"||e===""?null:new DOMParser().parseFromString(e,"text/html").documentElement?.getAttribute("documentetag")||null}var W=e=>typeof e=="string"&&e?e:null;function De(e){let r=window.location.origin;if(typeof r!="string"||r===""||r==="null")return null;let c=new URL(e||window.location.href,r);return c.protocol==="http:"||c.protocol==="https:"?c.href:null}var Y=e=>Number.isSafeInteger(e)?e:null;function ze(e){if(e==null)return Object.freeze({bytes:null,etag:null,seq:null});if(typeof e.bytes!="string"||e.bytes==="")throw new TypeError("createSavedStream: represented.bytes must be a full HTML string");return Object.freeze({bytes:e.bytes,etag:W(e.etag),seq:Y(e.seq)})}function Ae({documentURL:e,servedEtag:r=null,represented:c=null,onSnapshot:f,onStatus:v}={}){if(typeof f!="function")throw new TypeError("createSavedStream: onSnapshot must be a function");let g=De(e),m=!!W(r),a=ze(c);if(g===null){let n={ready:null,get represented(){return a},adopt(){return n},start(){return n.ready=Promise.resolve(n),n},stop(){}};return n}let S=!0,q=a.seq??0,E=0,P=0,U=f,N=v,C=0,j=!1,L=null,A=null,t=null,s=!1,h=null,d=null,i=null,b=null,k=[],O=n=>!j&&n===C;function x(n,u={}){j||typeof N!="function"||N({state:n,...u})}function _(){k.length=0,b&&(!d||d.active)&&b.clear(),d&&(d.detach(),d=null),h=null,b=null,i=null}function ae(n){if(b){b.update(n);return}k.push(n),!i&&(i=Promise.all([import("../c-SMBZG5X4.js"),import("../c-HFKUVACH.js")]).then(([u,l])=>{h=u.presence,b=l.presence,d=h.attachTransport({send:()=>Promise.resolve(!1)});for(let w of k.splice(0))b.update(w);return b}).catch(()=>(i=null,null)))}function X(){if(_(),!L)return;let n=L;L=null,n.onopen=null,n.onerror=null,n.onmessage=null,n.close()}function B(){if(!A)return;let n=A;A=null,n.controller.abort()}function re(n){if(j)return!1;let u={bytes:n.bytes,etag:W(n.etag),seq:Y(n.seq)};if(typeof u.bytes!="string"||u.bytes==="")return x("recoverable",{reason:"invalid-bytes",seq:u.seq}),!1;if(u.bytes===a.bytes&&u.etag===a.etag&&u.seq===a.seq)return!0;let l=!1;try{l=U(Object.freeze(u))===!0}catch{l=!1}return l?(a=Object.freeze(u),x("applied",{seq:a.seq,etag:a.etag}),!0):(x("recoverable",{reason:"refused",seq:u.seq,etag:u.etag}),!1)}function F(n,u){if(u==="startup")return null;let l=Math.max(n.seq??0,q);return l>0?l:null}function se(n,u){t=n,s=!0,x("recoverable",{reason:u,seq:n.seq??null})}function z(n){j||(t={kind:n.kind,seq:Y(n.seq)},s=!1,R())}function R(){if(j||A||s||!t)return;let n=C,u=t;t=null;let l=new AbortController;A={controller:l};let w=E,K=q,D=T=>{if(A&&A.controller===l&&(A=null),!(!O(n)||l.signal.aborted)){if(T==null){se(u,"repair-failed");return}if(E!==w||q!==K){if(P+=1,P<=Re){t=t??{kind:u.kind,seq:F(u,u.kind)},R();return}o(T.text,{kind:u.kind,seq:F(u,u.kind)},T.etag),R();return}o(T.text,u,T.etag),R()}};fetch(g,{cache:"no-store",signal:l.signal}).then(T=>T.ok?T.text().then(G=>({text:G,etag:W(T.headers?.get?.("etag"))})):null).then(D).catch(()=>D(null))}function o(n,u,l){let K=W(l)??Me(n)??(n===a.bytes?a.etag:null),D=u.kind==="startup"?a.seq:u.seq??a.seq;re({bytes:n,etag:K,seq:D})&&(S=!1,P=0,s=!1,x("current",{seq:a.seq,etag:a.etag}))}function y(n,u){let l={bytes:a.bytes,etag:n??a.etag,seq:u??a.seq};l.etag===a.etag&&l.seq===a.seq||(a=Object.freeze(l),x("current",{seq:a.seq,etag:a.etag}))}function p(n,u,l){let w=W(u);if(!(l!==null&&a.seq!==null&&l<=a.seq)){if(!S&&w!==null&&a.etag!==null){if(w!==a.etag){z({kind:"unmatched",seq:l});return}S=!0}if(n===a.bytes){y(w,l);return}re({bytes:n,etag:w,seq:l})&&(S=!0)}}function I(n,u){let l=n.data;if(l&&l.kind==="external-change"){typeof l.html=="string"?p(l.html,l.etag,u):z({kind:"notice",seq:u});return}typeof n.msg=="string"&&n.msg.endsWith("changed on disk outside this tab")&&z({kind:"notice",seq:u})}function $(n,u){if(!O(u))return;E++;let l;try{l=JSON.parse(n)}catch{x("recoverable",{reason:"bad-json"});return}if(!l||typeof l!="object"||Array.isArray(l)){x("recoverable",{reason:"bad-frame"});return}let w=Y(l.seq);if(w!==null&&w>q&&(q=w),l.type==="notification"){I(l,w);return}if(l.error){x("recoverable",{reason:"server-error",seq:w});return}if(typeof l.html!="string"){W(l.etag)?z({kind:"notice",seq:w}):x("recoverable",{reason:"bad-frame",seq:w});return}p(l.html,l.etag,w)}function M(n,u){if(!O(u))return;E++;let l;try{l=JSON.parse(n)}catch{return}if(!l||typeof l!="object")return;let w=Y(l.seq);if(w!==null&&w>q&&(q=w),l.resync===!0){z({kind:"resync",seq:w});return}l.startup===!0&&z({kind:"startup",seq:null})}function H(n){if(O(n)){if(x("open",{seq:a.seq,etag:a.etag}),s){s=!1,R();return}a.bytes===null&&!m&&z({kind:"startup",seq:null})}}let V={ready:null,get represented(){return a},adopt({onSnapshot:n,onStatus:u}={}){return typeof n=="function"&&(U=n),typeof u=="function"&&(N=u),V},start(){j=!1;let n=++C;return X(),B(),t=null,s=!1,E=0,P=0,q=a.seq??0,V.ready=Se().then(u=>{if(!O(n))return V;let l=Ce(),w=Ie(),K=u.profile.streamPath(g,we,l,w),D=new be(new URL(K,window.location.origin).href,{shared:u.sharedSync,sharedData:u.sharedData,documentURL:g,lane:we,clientId:w,startupCheck:m});return L=D,D.onopen=()=>H(n),D.onerror=()=>{O(n)&&x("reconnecting")},D.onmessage=T=>$(T.data,n),D.addEventListener("cursor",T=>M(T.data,n)),D.addEventListener("presence",T=>{if(!O(n))return;let G;try{G=JSON.parse(T.data)}catch{return}G&&typeof G=="object"&&!Array.isArray(G)&&ae(G)}),V}),V},stop(){j||(j=!0,C++,X(),B(),t=null,s=!1)}};return V}var Ue="article[data-page]",Ve='section[data-type="tool"][data-id]',xe=new Set(["UL","OL","LI","DETAILS"]),qe=new Set(["UL","OL"]),ke=e=>e.tagName==="SECTION"&&e.getAttribute("data-type")==="tool"&&e.hasAttribute("data-id");function Ee(e){return ne(e)}function ne(e){let r=e.querySelector(':scope > script[type="application/json"][data-tool]'),c={};try{c=r?JSON.parse(r.textContent):{}}catch(f){return{rev:null,artifact:null,state:{},signature:null,invalid:!0,error:f}}return{rev:c.rev??null,artifact:c.artifact??null,state:c.state??{},signature:JSON.stringify(c.artifact??null),invalid:!1}}function ue(e){let r=new Map,c=new Set;for(let f of e.querySelectorAll(Ve)){let v=f.getAttribute("data-id");if(!c.has(v)){if(r.has(v)){r.delete(v),c.add(v);continue}r.set(v,ne(f))}}return r}function ce(e){let r=e.querySelector('script[type="application/json"][merge="page.tools"]');if(!r)return{};try{return JSON.parse(r.textContent)}catch{return{}}}function Je(e){let r=new Map,c=new Set,f=v=>{for(let g of v.children){let m=g.getAttribute("data-id");if(m){if(c.has(m))continue;if(r.has(m)){r.delete(m),c.add(m);continue}r.set(m,g)}xe.has(g.tagName)&&f(g)}};return f(e),r}function Ne(e){let r=new Set,c=f=>{for(let v of f.children){let g=v.getAttribute("data-id");g&&r.add(g),xe.has(v.tagName)&&c(v)}};return c(e),r}function Q(e,r=document){if(typeof e!="string"||e==="")return{ok:!1,reason:"bytes"};let c=(r.defaultView??globalThis).DOMParser;if(typeof c!="function")return{ok:!1,reason:"parser"};let f=new c().parseFromString(e,"text/html"),v=[...f.querySelectorAll(Ue)];if(v.length!==1)return{ok:!1,reason:"article"};let g=v[0],m=new Map;for(let S of g.querySelectorAll("details[data-id]"))m.set(S.getAttribute("data-id"),S.hasAttribute("open"));let a=ue(g);return{ok:!0,article:g,source:f,rev:g.getAttribute("data-rev"),title:f.title||null,savedOpen:m,tools:a,toolState:a.size?ce(f):{}}}var fe=(e,r)=>{let c=ne(e),f=ne(r);return!c.invalid&&!f.invalid&&c.rev===f.rev&&c.signature===f.signature};function je(e,{article:r,readerOpen:c=new Map,savedOpen:f=null,keepTool:v=fe}={}){if(!e?.ok||!r)return{changed:!1};for(let t of e.article.querySelectorAll("details[data-id]")){let s=t.getAttribute("data-id");c.has(s)&&t.hasAttribute("open")!==c.get(s)&&t.toggleAttribute("open",c.get(s))}let g=Je(r),m=new Set,a=!1,S=t=>(a=!0,t.cloneNode(!0)),q=(t,s)=>{let h=Ne(t);for(let d of s.children){if(m.has(d)||d.hasAttribute("data-id")||d.tagName!==t.tagName)continue;if(!h.size)return d;let i=Ne(d);for(let b of h)if(i.has(b))return d}return null},E=(t,s)=>{for(let h of s.children)if(!(m.has(h)||h.hasAttribute("data-id"))&&h.tagName===t.tagName)return h;return null},P=(t,s,h=null)=>{for(let{name:d,value:i}of[...s.attributes])d===h||t.getAttribute(d)===i||(t.setAttribute(d,i),a=!0);for(let{name:d}of[...t.attributes])d===h||s.hasAttribute(d)||(t.removeAttribute(d),a=!0)},U=(t,s,h)=>{let d=b=>b&&b.nodeType===t.nodeType&&b.nodeValue===t.nodeValue&&!m.has(b),i=d(s.childNodes[h])?s.childNodes[h]:[...s.childNodes].find(d);return i?(m.add(i),i):t.cloneNode(!0)},N=(t,s)=>{let h=[],d=[...s.childNodes];for(let k=0;k<d.length;k++){let O=d[k];if(O.nodeType!==1){h.push(U(O,t,k));continue}let x=A(O,t);m.add(x),h.push(x)}let i=new Set(h),b=t.firstChild;for(let k of h){for(;b&&!i.has(b);)b=b.nextSibling;if(b===k){b=b.nextSibling;continue}t.insertBefore(k,b),a=!0}for(let k of[...t.childNodes])i.has(k)||(k.remove(),a=!0)},C=t=>{a=!0;let s=t.cloneNode(!1);return N(s,t),s},j=(t,s)=>{a=!0;let h=t.getAttribute("data-id"),d=c.has(h)?c.get(h):s.hasAttribute("open");P(t,s,"open"),t.hasAttribute("open")!==d&&t.toggleAttribute("open",d),N(t,s)},L=(t,s)=>{a=!0,P(t,s),N(t,s)};function A(t,s){let h=t.getAttribute("data-id");if(h){let i=g.get(h);return!i||m.has(i)||i===s||i.contains(s)?S(t):(m.add(i),ke(i)&&ke(t)?v(i,t)?i:S(t):i.tagName!==t.tagName?S(t):i.isEqualNode(t)?i:t.tagName==="DETAILS"?(j(i,t),i):t.tagName==="LI"?(L(i,t),i):qe.has(t.tagName)?(P(i,t),N(i,t),i):S(t))}if(qe.has(t.tagName)){let i=q(t,s);return i?(m.add(i),P(i,t),N(i,t),i):C(t)}let d=E(t,s);return d?(m.add(d),d.isEqualNode(t)?d:(a=!0,S(t))):S(t)}if(N(r,e.article),f){f.clear();for(let[t,s]of e.savedOpen)f.set(t,s)}for(let t of[...c.keys()])e.savedOpen.has(t)||c.delete(t);return{changed:a}}var Te="article[data-page]",Be='section[data-type="tool"][data-id]',Le='script[type="application/json"][merge="page"]',de=["live-at","live-by"];var Fe=e=>{import("../c-JU3NK25H.js").then(({recordEtag:r})=>r(e)).catch(()=>{})},pe=e=>Object.freeze({bytes:typeof e?.bytes=="string"?e.bytes:null,etag:typeof e?.etag=="string"&&e.etag?e.etag:null,seq:Number.isSafeInteger(e?.seq)?e.seq:null}),He=(e,r)=>{let c=e.source.querySelector(Le),f=r.querySelector(Le);if(!c)return f?(f.remove(),!0):!1;if(f){let g=de.map(a=>c.getAttribute(a));return f.textContent===c.textContent&&de.every((a,S)=>f.getAttribute(a)===g[S])?!1:(f.textContent!==c.textContent&&(f.textContent=c.textContent),de.forEach((a,S)=>{g[S]===null?f.removeAttribute(a):f.setAttribute(a,g[S])}),!0)}let v=r.querySelector(Te);return v?.parentNode?(v.parentNode.insertBefore(r.importNode(c,!0),v),!0):!1};function Ge({doc:e,article:r,represented:c=null,feed:f=null,documentURL:v,servedEtag:g=null,stream:m=null,release:a=()=>{}}){let S=new Map,q=new Map,E=new Map,P={data:{}},U=[],N=null,C=null,j=0,L=!1,A=m,t=null,s=pe(c),h=null,d=a,i=!1,b=(o,y)=>{let p=e.defaultView??globalThis;e.dispatchEvent(new p.CustomEvent(o,{detail:y}))},k=()=>{for(let o of E.values())try{o.instance?.dispose?.()}catch{}E.clear()},O=()=>N?Promise.resolve(N):(C||(C=import("../c-GOWBDM6J.js").then(({createToolHost:o})=>L?null:(N=o({store:P,mode:"view"}),N)).catch(o=>(C=null,console.warn("clayjs: could not load the reader tool host",o),null))),C),x=o=>{for(let[y,p]of E){let I=o.get(y);if(!I||I.invalid||I.rev!==p.rev||I.signature!==p.signature){try{p.instance?.dispose?.()}catch{}E.delete(y)}}},_=(o,y)=>{let p=[];for(let[$,M]of o)M.invalid?console.warn("clayjs: could not decode saved tools",M.error):p.push([$,M]);if(!p.length)return;P.data=y??{};let I=++j;O().then($=>{if(!(L||!$||I!==j))for(let[M,H]of p){if(E.has(M))continue;let V=[...r.querySelectorAll(Be)].find(n=>n.getAttribute("data-id")===M);if(V)try{let n=$.mount(V,{id:M,artifact:H.artifact,rev:H.rev,seed:H.state??{}});E.set(M,{rev:H.rev,signature:H.signature,instance:n})}catch(n){console.warn(`clayjs: tool ${M} could not mount`,n)}}})},ae=(o,y)=>{let p=E.get(o.getAttribute("data-id"));if(!p)return fe(o,y);let I=Ee(y);return!I.invalid&&I.rev===p.rev&&I.signature===p.signature},X=o=>{o?.state==="current"&&(s=pe({bytes:s.bytes,etag:o.etag??null,seq:o.seq??null})),o?.state&&o.state!=="applied"&&b("clay:reader-status",o)},B=o=>{je(o,{article:r,readerOpen:S,savedOpen:q,keepTool:ae}),o.rev===null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",o.rev),o.title&&(e.title=o.title),He(o,e)},re=o=>{console.warn("clayjs: the reader could not apply a saved file",o),A?.stop(),A=null,k();let y=s.bytes?Q(s.bytes,e):null;if(y?.ok)try{B(y)}catch(p){console.warn("clayjs: the reader could not restore the previous file",p)}b("clay:reader-status",{state:"blocked"})};function F(o){if(L||i)return!1;let y=Q(o.bytes,e);if(!y.ok||r.querySelector(".page-editor"))return!1;if(me(o.bytes))return A?.stop(),A=null,le(),b("clay:reader-status",{state:"blocked",reason:"upgraded"}),!1;x(y.tools);try{B(y)}catch(p){return re(p),!1}return s=pe(o),s.etag&&Fe(s.etag),_(y.tools,y.toolState),b("clay:reader-status",{state:"applied",etag:s.etag,seq:s.seq}),!0}let se=()=>s.bytes===null?!1:(R.stop(),!0),z=o=>{let y=o.target;if(y.tagName!=="DETAILS"||!r.contains(y))return;let p=y.getAttribute("data-id");p&&(y.open===q.get(p)?S.delete(p):S.set(p,y.open))};if(e.addEventListener("toggle",z,!0),U.push(["toggle",z,!0]),c){let o=Q(c.bytes,e);if(!o.ok)throw new Error(`clayjs: the saved file is not a readable page (${o.reason})`);B(o),_(o.tools,o.toolState)}else{for(let o of r.querySelectorAll("details[data-id]"))q.set(o.getAttribute("data-id"),o.hasAttribute("open"));_(ue(r),ce(e))}let R={ready:null,get represented(){return s},yieldArticle(){return L||i?!1:(j++,k(),i=!0,d(),!0)},reclaimArticle(){if(L||!i)return!1;if(d=ie(r,"reader"),i=!1,s.bytes!==null){let o=Q(s.bytes,e);o.ok&&(B(o),_(o.tools,o.toolState))}return!0},prepareHandoff(o={}){return h?Promise.resolve(h):L?Promise.reject(new Error("clayjs: the reader is stopped")):(h=import("../c-GSFIGKOP.js").then(({readerHandoff:y})=>y({stream:A,options:o,apply:F,retire:se,yieldArticle:R.yieldArticle,reclaimArticle:R.reclaimArticle})),h)},stop(){if(L)return t;L=!0,h=null,j++,A?.stop(),A=null;for(let[o,y,p]of U)e.removeEventListener(o,y,p);U.length=0,k();try{N?.dispose()}catch{}return N=null,i||d(),i=!1,d=()=>!1,t=Object.freeze({...s}),t}};if(R.ready=Promise.resolve(R),f){let o=y=>{let p=y.detail;typeof p?.html=="string"&&(p.source&&p.source!=="disk"&&p.lane!=="saved"||F({bytes:p.html,etag:p.etag??null,seq:p.seq??null}))};f.addEventListener("clay:sync-applied",o),U.push(["clay:sync-applied",o])}else A?A.adopt({onSnapshot:F,onStatus:X}):(A=Ae({documentURL:v,servedEtag:g,represented:s.bytes?s:null,onSnapshot:F,onStatus:X}),A.start());return R}function oe({represented:e=null,documentURL:r,servedEtag:c=null,stream:f=null,feed:v=null,doc:g=document}={}){if(e&&(typeof e.bytes!="string"||e.bytes===""))throw new TypeError("clayjs: the reader needs the full saved bytes to start");if(!v&&!f&&!e&&!r)throw new TypeError("clayjs: the reader needs a file, a stream or a page to follow");let m=g.querySelectorAll(Te);if(m.length!==1)throw new Error("clayjs: the reader needs exactly one article[data-page]");let a=m[0];if(a.querySelector(".page-editor"))throw new Error("clayjs: the reader will not start over a mounted editor");if(e){let q=Q(e.bytes,g);if(!q.ok)throw new Error("clayjs: the saved file is not a readable page");if(ve(q.source))throw le(),new Error("clayjs: the saved file was published at another version of this document")}let S=ie(a,"reader");try{return Ge({doc:g,article:a,represented:e,feed:v,documentURL:r,servedEtag:c,stream:f,release:S})}catch(q){throw S(),q}}var J=null,te=null,ye=!1,Oe=!1,ee=null,Z=null,he=null,Pe=()=>document.querySelectorAll("article[data-page]").length===1;function We(){ee=e=>{if(ye)return;let r=e.detail;r?.state==="applied"?te?.(J):(r?.state==="blocked"||r?.state==="recoverable")&&te?.(null)},document.addEventListener("clay:reader-status",ee)}function _e(){ee&&document.removeEventListener("clay:reader-status",ee),ee=null,te=null}function $e(e=null){if(!Pe())return Promise.resolve(null);try{J=e?oe({represented:e}):oe({documentURL:window.location.href,servedEtag:ge})}catch(r){return console.warn("clayjs: the reader could not start over the served article",r),Promise.resolve(null)}return e?Promise.resolve(J.represented):new Promise(r=>{te=r})}function Qe(e=null){if(!Pe())return Promise.resolve(null);try{J=oe({feed:document,represented:e,documentURL:window.location.href})}catch(r){return console.warn("clayjs: the reader could not start over the page sync projects",r),Promise.resolve(null)}return Promise.resolve(J)}function Xe({sync:e=!1,represented:r=null}={}){return Z||(ye=!1,Oe=e,We(),he=e?Qe(r):$e(r),Z=e?he:Promise.resolve(null),Z)}function ut(e={}){return Ke(),Xe(e)}function ct(e){return J?J.prepareHandoff(e):Promise.reject(new Error("clayjs: the reader has not started"))}function Ke(){ye=!0,Oe||te?.(null),_e(),J?.stop(),J=null,he=null,Z=null}export{he as acquired,ct as prepareHandoff,Z as ready,ut as restart,Xe as start,Ke as stop};
@@ -0,0 +1 @@
1
+ import{a as I,c as V}from"../c-RVMWGXEJ.js";import{a as P,d as j}from"../c-VRZN56XY.js";import{e as K,i as M}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var b=()=>window.clay&&"isEditMode"in window.clay?!!window.clay.isEditMode:K,pe=/^[A-Za-z0-9_-]{8,64}$/,D="clay:people:me",de=2e3,B=120,Q=/\S+@\S+\.\S+/,a={supports:!1,me:null,members:null,unavailable:!1},l=null,m,u=null,f=null,y=null,x=null,N="",_=null;function g(e){if(!e||typeof e!="object")return null;let t=typeof e.id=="string"?e.id:"",n=typeof e.name=="string"?e.name.trim().replace(/\s+/g," "):"";return!pe.test(t)||!n||n.length>B||Q.test(n)?null:{id:t,name:n}}function p({id:e,name:t}){return Object.freeze({id:e,name:t,initials:V(t),color:I(e)})}function E(){document.dispatchEvent(new CustomEvent("clay:people",{detail:{me:ee()}}))}function fe(){return document.querySelector("[clay-people]")}function O(){return[...document.querySelectorAll("[clay-people] data[value]")]}function R(){if(u)return u;u=new Map;for(let e of O()){let t=g({id:e.getAttribute("value"),name:e.textContent});t&&!u.has(t.id)&&u.set(t.id,p(t))}return u}function S(){if(m===void 0){m=null;try{m=g(JSON.parse(window.localStorage.getItem(D)||"null"))}catch{}}return m}function q(e){m=e;try{window.localStorage.setItem(D,JSON.stringify(e))}catch{}}function me(){let e=new Uint8Array(16);return crypto.getRandomValues(e),btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function ee(){if(!b())return null;if(a.me)return p(a.me);if(a.unavailable||l!=="ok"&&l!=="none")return null;let e=S();return e?p(e):null}function te(e){let t=P(e);if(t!=="ok"&&a.supports)return;let n=e.document?.people,o=e.extensions.includes("people")&&!!n&&typeof n=="object",r={supports:o,me:o?g(n.me):null,members:o&&Array.isArray(n.members)?n.members.map(g).filter(Boolean):null,unavailable:o&&n.unavailable===!0},s=t!==l||JSON.stringify(r)!==JSON.stringify(a);a=r,l=t,s&&E()}async function k(e){te(await j({fresh:e}))}function ne(e){L();let t=String(e??""),n=a.me?.id===t&&a.me||a.members?.find(r=>r.id===t);if(n)return p(n);let o=S();return o?.id===t?p(o):R().get(t)||Object.freeze({id:t,name:"Unknown person",initials:"?",color:I(t)})}function oe(){return L(),[...R().keys()].map(ne)}async function be(){return await k(l!=="none"),a.members?a.members.map(p):null}function J(e){let t=g(e);if(!t)throw new TypeError("clay.people.add: needs an id of 8 to 64 letters, digits, _ or -, and a name of 1 to 120 characters");let n=fe();n||(n=document.createElement("div"),n.setAttribute("clay-people",""),n.hidden=!0,document.body.append(n));let o=O().filter(r=>r.getAttribute("value")===t.id);if(o.length){o[0].textContent!==t.name&&(o[0].textContent=t.name);for(let r of o.slice(1))r.remove()}else{let r=document.createElement("data");r.setAttribute("value",t.id),r.textContent=t.name,n.append(r)}return u=null,p(t)}function ge(e){let t=String(e??"");for(let n of O())n.getAttribute("value")===t&&n.remove();u=null}function re(){return b()&&!a.me&&(l==="ok"||l==="none")&&!!S()&&!a.unavailable}function he(e){if(!re())throw Object.assign(new Error("clay.people.rename: only a name chosen in this browser can be changed here"),{code:"not-renamable"});let t=S(),n=g({id:t.id,name:e});if(!n)throw new TypeError("clay.people.rename: needs a name of 1 to 120 characters that is not an email address");return q(n),O().some(o=>o.getAttribute("value")===n.id)&&J(n),E(),p(n)}var ye=e=>e!==M().generation||!b();function z(e){if(ye(e))throw Object.assign(new Error("clay.author: the page left edit mode before your name was recorded"),{code:"stale-document"})}function X(){return Object.assign(new Error("Can't reach the host to check who you are. Try again in a moment."),{code:"people-unavailable"})}async function Pe(e,t="data-by"){if(!window.clay?.isEditMode)throw new Error("clay.author: this page is not in edit mode");if(!(e instanceof Element))throw new TypeError("clay.author: needs an element");let n=M().generation;if(a.supports){let r=await j({fresh:!0});z(n);let s=P(r);if(s==="none")throw Object.assign(new Error("This page lost its connection to the host. Reload it to keep editing."),{code:"people-unavailable"});if(s!=="ok")throw X();if(te(r),a.unavailable)throw Object.assign(new Error("The app hosting this file can't name you right now. Check its Profile settings, then try again."),{code:"people-unavailable"})}else l!=="ok"&&l!=="none"&&(await k(l==="failed"),z(n));if(l==="failed")throw X();let o=ee();if(!o){let r=await ve();if(z(n),!r)return null;q(r),o=p(r),E()}return J(o),e.setAttribute(t,o.id),o}function we(){return _??=Promise.all([import("../c-WNYBLIOZ.js"),import("../c-6HMB24EV.js"),import("../c-OCSZ4QGN.js")]).then(([e,t,n])=>({...e,...t,resolveTheme:n.resolveTheme})).catch(e=>{throw _=null,e}),_}function ve(){return f&&(!y||y.isConnected)||(f&&x(),f=xe().catch(e=>{throw f=null,y=null,x=null,e})),f}async function xe(){let e=await we();return new Promise(t=>{let n=e.resolveTheme(),{root:o,overlay:r,panel:s,heading:ae,body:U,footer:le,close:se}=e.bevelDialog({zIndex:"2147483001",width:"420px",closable:!0,titled:!0,theme:n,surface:"people"});y=o,x=()=>d(null),ae.textContent="What name should appear on your changes?",s.setAttribute("aria-label","Your name");let c=e.bevelInput("input",{rules:["display:block","width:100%","margin:0"],theme:n,parts:["dialog.input","people.input"]});c.setAttribute("aria-label","Your name"),c.maxLength=B,c.autocomplete="name";let h=e.bevelText("p",["display:block","margin:10px 0 0","font-size:13px","opacity:.8"],"Saved in this browser. Everyone who can read this page will see it.",{theme:n,parts:["dialog.hint","people.hint"],role:"mutedText"}),F=h.textContent;U.append(c,h);let W=oe().slice(0,8);if(W.length){let i=e.bevelText("p",["display:block","margin:18px 0 8px","font-size:13px"],"Or continue as someone already in this page:",{theme:n,parts:["people.choiceLabel"],role:"mutedText"}),H=e.bevelBox("div",["display:flex","flex-wrap:wrap","gap:8px"],{theme:n,parts:["people.choices"]});for(let T of W)H.append(e.bevelButton(T.name,{small:!0,onClick:()=>d({id:T.id,name:T.name}),theme:n,parts:["dialog.button","people.button","people.choice"],labelParts:["dialog.buttonLabel","people.buttonLabel"]}));U.append(i,H)}let ce=e.bevelButton("Cancel",{onClick:()=>d(null),theme:n,parts:["dialog.button","people.button"],labelParts:["dialog.buttonLabel","people.buttonLabel"]}),ue=e.bevelButton("Continue",{variant:"primary",onClick:()=>A(),theme:n,parts:["dialog.button","people.button"],labelParts:["dialog.buttonLabel","people.buttonLabel"]});le.append(ce,ue);let A=()=>{let i=c.value.trim().replace(/\s+/g," ");if(!i){c.focus();return}if(Q.test(i)){h.textContent="Use a name, not an email address. Everyone who can read this page will see it.",c.focus();return}d({id:me(),name:i.slice(0,B)})};c.addEventListener("input",()=>{h.textContent!==F&&(h.textContent=F)}),s.addEventListener("submit",i=>{i.preventDefault(),A()}),se?.addEventListener("click",()=>d(null));let C=!1;r.addEventListener("mousedown",i=>{C=i.target===r}),r.addEventListener("click",i=>{C&&i.target===r&&d(null),C=!1});let Y=i=>{if(i.key==="Tab"){i.stopPropagation(),e.keepFocusIn(s,i);return}i.key==="Escape"?(i.preventDefault(),i.stopPropagation(),d(null)):i.key==="Enter"&&i.target===c&&(i.preventDefault(),i.stopPropagation(),A())};document.addEventListener("keydown",Y,!0);let $=!1;function d(i){$||($=!0,document.removeEventListener("keydown",Y,!0),o.remove(),i&&q(i),f=null,y=null,x=null,t(i))}e.dismissOf.set(o,()=>d(null)),o.setAttribute("aria-hidden","false"),Ee().append(o),c.focus()})}function Ee(){let e=[...document.querySelectorAll("dialog[open]")].filter(t=>t.matches(":modal"));return e[e.length-1]||document.body}function Z(e){return e.nodeType===1&&(e.matches("[clay-people]")||!!e.querySelector("[clay-people]"))}function G(){return JSON.stringify([...R().values()].map(({id:e,name:t})=>[e,t]))}var w=null;function L(){let e=document;if(w?.doc===e)return;w?.observer.disconnect(),N=G();let t=new MutationObserver(n=>{if(!(typeof document>"u"||document!==e))for(let o of n){let r=o.target.nodeType===1?o.target:o.target.parentElement;if(o.attributeName==="clay-people"||r?.closest("[clay-people]")||[...o.addedNodes].some(Z)||[...o.removedNodes].some(Z)){u=null;let s=G();s!==N&&(N=s,E());return}}});t.observe(e.body,{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["value","clay-people"]}),w={doc:e,observer:t}}function ke(){w?.observer.disconnect(),w=null}var v=null;function ie(){if(!b())return Promise.resolve(null);if(!v){let e=new AbortController,{signal:t}=e;window.addEventListener("storage",n=>{n.key!==D||!b()||(m=void 0,E())},{signal:t}),document.addEventListener("visibilitychange",()=>{b()&&document.visibilityState==="visible"&&l!=="none"&&k(!0)},{signal:t}),v={listeners:e,first:k(!1)}}return Promise.race([v.first,new Promise(e=>setTimeout(e,de))])}function Oe(){v?.listeners.abort(),v=null}async function Se(){L(),await ie()}function Le(){return{enable(){L(),ie()},quiesce(){if(f)throw Object.assign(new Error("clay:people: a name is still being chosen"),{code:"pending-input",pending:["name"]})},resume(){},dispose(){x?.(),ke(),Oe()}}}function je(){return{id:"clay:people",order:330,prepare(e={}){let t=Le();return e.initial!==!0?t:{...t,enable(){}}}}}var Ae=Object.freeze({get:ne,list:oe,available:be,add:J,remove:ge,canRename:re,rename:he}),Ie=Se(),Ne=Ae;export{Pe as author,ee as currentMe,Ne as default,je as modeParticipant,Ae as people,je as peopleParticipant,Ie as ready};
@@ -1,4 +1,4 @@
1
- import{a as bo}from"../c-HPURYVZS.js";import"../c-OIBUTDXI.js";import"../c-4JZDZFF6.js";import"../c-VAK7SG37.js";import"../c-NUHP2XDB.js";import{n as yo}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var vo=[".richclay-toolbar",".richclay-float",".richclay-dialog"],xo=`@layer clay-skin{
1
+ import{a as bo}from"../c-HPURYVZS.js";import"../c-OIBUTDXI.js";import"../c-4JZDZFF6.js";import"../c-VAK7SG37.js";import"../c-NUHP2XDB.js";import{j as yo}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var vo=[".richclay-toolbar",".richclay-float",".richclay-dialog"],xo=`@layer clay-skin{
2
2
  :is(.richclay-toolbar, .richclay-float, .richclay-dialog),:is(.richclay-toolbar, .richclay-float, .richclay-dialog) *{--richclay-surface:light-dark(#FFFCF6, #11131E) !important;--richclay-surface-alt:light-dark(#F4ECDF, #1A1D2C) !important;--richclay-text:light-dark(#2B241B, #ECEAF2) !important;--richclay-muted:light-dark(#6B5942, #8A90AB) !important;--richclay-border:light-dark(#D8C8AF, #353B52) !important;--richclay-accent:light-dark(#8F6310, #D9A445) !important;--richclay-accent-ink:light-dark(#FDF8F0, #0B0C13) !important;--richclay-focus:light-dark(#8F6310, #D9A445) !important;--richclay-danger:light-dark(#A83A2C, #FF5566) !important;--richclay-radius:0px !important;--richclay-control-size:32px !important;--richclay-shadow:0 1px 2px rgba(0,0,0,.12),0 10px 28px -12px rgba(0,0,0,.35) !important}
3
3
  :is(.richclay-toolbar, .richclay-float, .richclay-dialog){font-family:system-ui,-apple-system,"Segoe UI",sans-serif !important}
4
4
  :where(.richclay-float, .richclay-dialog):is(.richclay-toolbar, .richclay-float, .richclay-dialog){color:light-dark(#2B241B, #ECEAF2) !important;background:light-dark(#FFFCF6, #11131E) !important;border:1px solid light-dark(#D8C8AF, #353B52) !important}
@@ -514,4 +514,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
514
514
  }
515
515
  }
516
516
  `,te=typeof globalThis<"u"?globalThis:self;te&&!te.Squire&&(te.Squire=ca),te&&!te.DOMPurify&&(te.DOMPurify=Wa),Ql(gs);var ys=Ki.autoInit(),bs=Ki;return _o(hr)})();window.__hyperclayNoAutoExport||(window.hyperclay=window.hyperclay||{},window.hyperclay.RichClay=Qe.default,window.RichClay=window.RichClay||Qe.default,window.h=window.hyperclay);var gt=Qe.default,rc=Qe.default;bo("richclay",xo,{roots:vo});var Xe=null,Co=(v,st)=>Object.assign(new Error(`clay:richclay: ${v}`),{code:st}),Vs=v=>v?v.signal?.aborted?!0:typeof v.isCurrent=="function"&&!v.isCurrent():!1,Gs=v=>({root:v,win:v.ownerDocument?.defaultView||window,admitted:!1,stopWatch:null,subscriber:null}),wo=v=>[...v.root.querySelectorAll(gt.selector)];function So(v){for(let st of gt.init(wo(v)))st.reattach()}function Zs(v){let st=()=>So(v);return{enable(){if(v.admitted)return;v.admitted=!0,So(v),v.stopWatch=gt.watch(v.win);let at=v.root.ownerDocument||document;v.subscriber={target:at,type:"clay:sync-applied",handler:st},at.addEventListener(v.subscriber.type,st)},quiesce(){v.admitted=!1,v.stopWatch&&(v.stopWatch(),v.stopWatch=null)},resume(){v.admitted||(v.admitted=!0,v.stopWatch=gt.watch(v.win))},dispose(){v.admitted=!1,v.stopWatch&&(v.stopWatch(),v.stopWatch=null);let at=v.subscriber;v.subscriber=null,at&&at.target.removeEventListener(at.type,at.handler);for(let Je of wo(v))gt.stripElement(Je);Xe===v&&(Xe=null)}}}function Ys(v=document){return{id:"clay:richclay",order:310,async prepare(st={}){if(st.initial===!0)return Qs();if(typeof gt.watch!="function"||typeof gt.stripElement!="function")throw Co("this vendor build has no watchable lifecycle","unsupported-plugin");if(Vs(st))throw Co("prepared for a stale generation","stale-document");let at=gt.autoInit?.();return typeof at=="function"&&at(),Zs(Xe||(Xe=Gs(v)))}}}async function Qs(){let v=await Js;return{enable(){},quiesce:()=>v?.quiesce(),resume:()=>v?.resume(),dispose:()=>v?.dispose()}}async function Xs(){if(!yo())return null;let v=await Ys().prepare();return v.enable(),v}var Js=Xs();var fc=gt;export{gt as RichClay,fc as default,Xs as init,Ys as modeParticipant,Js as ready,Ys as richclayParticipant};
517
- /*! For license information please see richclay-RC3L2F6X.js.LEGAL.txt */
517
+ /*! For license information please see richclay-NRQDSWX6.js.LEGAL.txt */
@@ -0,0 +1 @@
1
+ import{a as E,d as x,e as g,f as $,g as I}from"../c-7DJDKPGL.js";import{a as F}from"../c-ZWIOJGMT.js";import"../c-IJUK2GPW.js";import{e as k,j as D}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import{k as R}from"../c-SPIORRYS.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import{e as O}from"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var T=O("history"),Q="[cms-template]",q=["draggable","style"],W=["pointerup","pointercancel","dragend","drop"],y=new Set,h=null,A=null,p=null;function N(e,t,n,r,i){let s={target:t,type:n,handler:r,options:i};return t.addEventListener(n,r,i),e.listeners.push(s),s}function z(e,t){t.target.removeEventListener(t.type,t.handler,t.options);let n=e.listeners.indexOf(t);n!==-1&&e.listeners.splice(n,1)}function U(e,t){let n=setTimeout(()=>{e.timers.delete(n),t()},0);return e.timers.add(n),n}function X(e,t){return{Sortable:e,root:t,admitted:!1,instances:new Set,listeners:[],timers:new Set,presses:new Set,stop:null}}var Y={admitted:!0,instances:new Set,listeners:[],timers:new Set,presses:new Set};function Z(e){return[e,...e.querySelectorAll("*")].filter(t=>!t.closest(T)).map(t=>[t,q.map(n=>t.getAttribute(n))])}function _(e){for(let[t,n]of e)q.forEach((r,i)=>{let s=n[i],a=t.getAttribute(r);if(a!==s)if(s===null){if(r==="style"&&a)return;t.removeAttribute(r)}else t.setAttribute(r,s)})}function H(e){return/^(UL|OL)$/.test(e.tagName)?"li":"*"}function C(e){return`> ${H(e)}:not(${T})`}function B(e,t){return!e||!t||t.nodeType!==1||!t.matches(H(e))?!1:!t.closest(T)&&!t.closest(Q)}function M(e,t){return!e||!t||t.parentElement!==e?!1:B(e,t)}function ee(e,t){let n=t.nextElementSibling;for(;n&&!M(e,n);)n=n.nextElementSibling;return n}function P(e,t){return Array.prototype.indexOf.call(e.children,t)}function V(e,t){if(t)try{new Function(`return (async function(evt) { ${t} })`)().call(e.from,e)}catch(n){console.error("Error in onsorted execution:",n)}e.from.dispatchEvent(new CustomEvent("clay:sorted",{bubbles:!0,detail:{item:e.item,from:e.from,to:e.to,oldIndex:e.oldIndex,newIndex:e.newIndex}})),e.from.dispatchEvent(new Event("input",{bubbles:!0}))}function j(e,t,n=Y){let r={};if(r.draggable=C(e),t.get(e))return;let i=e.getAttribute("sortable");i&&(r.group=i);let s=e.querySelectorAll("[sortable-handle]"),a=e.querySelectorAll("[sortable]");Array.from(s).some(o=>!Array.from(a).some(l=>l.contains(o)))&&(r.handle="[sortable-handle]");let c=e.getAttribute("onsorting");c&&(r.onMove=function(o){if(n.admitted)try{new Function(`return (async function(evt) { ${c} })`)().call(e,o)}catch(l){console.error("Error in onsorting execution:",l)}});let f=e.getAttribute("onsorted");r.onEnd=function(o){if(!n.admitted)return;let l={item:o.item,from:o.from,to:o.to,oldIndex:o.oldIndex,newIndex:o.newIndex},b=u;u=null,m&&(_(m),m=null),b&&(I(b,l),g(b)),V(l,f)};let d=null,u=null,m=null,w=!1,v=[],J=()=>{let o=u;u=null,m=null,g(o)},L=()=>{let o=d;d=null,o&&(n.presses.delete(o),y.delete(o),m=o),v.forEach(l=>z(n,l)),v=[],o&&U(n,()=>_(o))},K=()=>{w?x(u):(g(u),u=null),w=!1,L(),U(n,J)};N(n,e,"pointerdown",o=>{let l=o.target instanceof Element?o.target:null;for(;l&&l.parentElement!==e;)l=l.parentElement;!l||d||(d=Z(l),u=E(l),w=!1,n.presses.add(d),y.add(d),v=W.map(b=>N(n,document,b,K,!0)))},!0),r.onUnchoose=L,r.onStart=()=>{w=!0},t.create(e,r),n.instances.add(e)}function te(e,t,n=null){let r=f=>({ok:!1,code:f});if(!k||p&&!p.admitted)return r("not-editable");let i=document;if(!e||e.nodeType!==1||!e.isConnected||e.ownerDocument!==i)return r("detached");let s=e.parentElement;if(!s||!s.isConnected||!t||t.nodeType!==1||!t.isConnected||t.ownerDocument!==i)return r("detached");if(!s.hasAttribute("sortable")||!M(s,e)||!t.hasAttribute("sortable")||!B(t,e)||e===t||e.contains(t))return r("item");if(s!==t){let f=s.getAttribute("sortable");if(!f||f!==t.getAttribute("sortable"))return r("group")}if(n===e)return{ok:!0,moved:!1};if(n!==null&&!M(t,n))return r("anchor");if(s===t&&ee(s,e)===n)return{ok:!0,moved:!1};let a=P(s,e),S=E(e);x(S);let c;try{t.insertBefore(e,n),c={item:e,from:s,to:t,oldIndex:a,newIndex:P(t,e)},I(S,c)}finally{g(S)}return V(c,s.getAttribute("onsorted")),{ok:!0,moved:!0,...c}}function ne(){return h||(h=import("../vendor/Sortable.vendor-A755ITLN.js").then(e=>window.Sortable||e.default),h.catch(()=>{h=null})),h}function re(){return A||(R((e,{original:t})=>{for(let r of e.querySelectorAll("[sortable] .sortable-chosen, [sortable] .sortable-ghost, [sortable] .sortable-drag"))r.classList.remove("sortable-chosen","sortable-ghost","sortable-drag"),r.classList.length||r.removeAttribute("class");if(!y.size)return;let n=new Map;for(let r of y)for(let[i,s]of r)n.set(i,s);for(let r of e.querySelectorAll("[sortable] *")){let i=n.get(t(r));i&&q.forEach((s,a)=>{i[a]===null?r.removeAttribute(s):r.setAttribute(s,i[a])})}}),A=!0,A)}function se(e){return{enable(){if(!e.admitted){e.admitted=!0;for(let t of e.root.querySelectorAll("[sortable]"))j(t,e.Sortable,e);e.stop=F.onAddElement({selectorFilter:"[sortable]",debounce:200,require:"observed",pausable:!1},t=>{e.admitted&&t.forEach(({element:n})=>{j(n,e.Sortable,e)})})}},quiesce(){e.admitted=!1},resume(){e.admitted=!0},dispose(){e.admitted=!1,e.stop&&(e.stop(),e.stop=null);for(let t of[...e.listeners])z(e,t);for(let t of e.timers)clearTimeout(t);e.timers.clear();for(let t of e.presses)y.delete(t);e.presses.clear(),$();for(let t of e.instances)e.Sortable?.get?.(t)?.destroy?.();e.instances.clear(),p===e&&(p=null)}}}var oe=e=>e?e.signal?.aborted?!0:typeof e.isCurrent=="function"&&!e.isCurrent():!1;function le(e=document){return{id:"clay:sortable",order:300,async prepare(t={}){if(t.initial===!0)return ie();let n=await ne();if(oe(t))throw Object.assign(new Error("clay:sortable prepared for a stale generation"),{code:"stale-document"});return re(),se(p||(p=X(n,e)))}}}async function ie(){let e=await ae;return{enable(){},quiesce:()=>e?.quiesce(),resume:()=>e?.resume(),dispose:()=>e?.dispose()}}async function G(){if(!D())return null;let e=await le().prepare();return e.enable(),e}var ae=G(),me=Object.freeze({move:te});var be=G;export{be as default,G as init,j as makeSortable,le as modeParticipant,te as move,ae as ready,me as sortable,le as sortableParticipant};
@@ -0,0 +1 @@
1
+ import{g as p}from"../c-LWLBHLVC.js";import"../c-SDAXDM2D.js";import"../c-TQEMVJCS.js";import"../c-DCXOXBF3.js";import"../c-VRZN56XY.js";import"../c-IJUK2GPW.js";import{j as d}from"../c-OW5QIGG3.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-SPIORRYS.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-DCFSEJZG.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var g={installed:!1,refused:null,sourceBytes:null,paired:0,unresolved:0,unmatchedLive:0,unmatchedSource:0,attrDiffs:0,saves:0,reprints:0,lastReprint:null,partialReprints:0,lastPartialReprint:null,lastRenderMs:null,lastBytes:null,refreshes:0,timing:{fetch:null,model:null,pair:null,refresh:null}},l=null,c=null,i=null,u=d(),s=0,r=null,a=!1,o=null;function v(){return o??=import("../c-ZVPVXTJF.js").catch(e=>{throw o=null,e}),o}function f(e,t,n){typeof e=="string"&&(i=Object.freeze({bytes:e,etag:t??null,seq:n??null}))}function h(){if(r)return r;let e=s,t=c;return r=v().then(n=>(l=n,e!==s?(r=null,null):n.start({context:t,latest:()=>i}))).catch(n=>(r=null,console.info("clayjs: source map off ("+(n&&n.message?n.message:n)+"); saves use the full serialization"),null)).then(n=>(e===s&&(a=!0),n)),r}function x(){return!u||a?null:h()}function m(){s++,u=!1,a=!1,r=null,c=null,l&&l.release()}p((e,t)=>{f(e,i?i.etag:null,i?i.seq:null),l&&!l.installed()&&l.adoptAccepted(e,t)});document.addEventListener("clay:sync-applied",e=>{let t=e&&e.detail;!t||t.source!=="disk"||typeof t.html!="string"||(f(t.html,t.etag,t.seq),l&&!l.installed()&&l.adoptAccepted(t.html,null))});function y(e,t,n={}){return l?l.renderSave(e,t,n):t}var A={get ready(){return u?h():null},stats:()=>l?l.stats():{...g},text:()=>l?l.text():null,locate:e=>l?l.locateLive(e):null,unpaired:()=>l?l.unpaired():null,ensureForSave:x};function L(){return{id:"clay:source",order:30,prepare(e={}){let t=e&&e.represented;if(t&&(c={represented:t},f(t.bytes,t.etag,t.seq)),e&&e.initial===!0)return u=!0,{enable(){},quiesce(){},resume(){},dispose:m};let n=++s;return u=!1,a=!1,r=null,{enable(){n===s&&(u=!0)},quiesce(){},resume(){n===s&&(u=!0)},dispose(){n===s&&m()}}}}}var R=A;export{R as default,L as modeParticipant,y as renderSave,A as source,L as sourceParticipant};