@panphora/clayjs 1.23.0 → 1.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/dist/all.js +1 -1
  2. package/dist/blockeditor/themes/light-1.css +431 -0
  3. package/dist/clay-dom.js +1 -1
  4. package/dist/clay-events.js +1 -1
  5. package/dist/clay-internals.js +1 -1
  6. package/dist/clay-options.js +1 -1
  7. package/dist/clay-router.js +1 -1
  8. package/dist/clay-ui.js +1 -1
  9. package/dist/clay-utils.js +1 -1
  10. package/dist/clay.js +1 -1
  11. package/dist/clay.standalone.js +30285 -26613
  12. package/dist/m/c-277QP5ET.js +1 -0
  13. package/dist/m/c-2BLVA6IN.js +5 -0
  14. package/dist/m/c-2OJMOUPC.js +1 -0
  15. package/dist/m/c-2PVGJFI5.js +1 -0
  16. package/dist/m/{c-AYVGD6A6.js → c-3UW5EJ77.js} +1 -1
  17. package/dist/m/{c-T5NK2TVY.js → c-42ZNV7LI.js} +1 -1
  18. package/dist/m/{c-3TLG3OLG.js → c-46LJAZZJ.js} +1 -1
  19. package/dist/m/c-47IBJGPQ.js +1 -0
  20. package/dist/m/c-5FXEKU4Y.js +1 -0
  21. package/dist/m/c-5KXDKC5G.js +1 -0
  22. package/dist/m/{c-EUGJVHDD.js → c-5RZNFTWD.js} +1 -1
  23. package/dist/m/c-65LJU2H2.js +72 -0
  24. package/dist/m/{c-NQJRVJ56.js → c-6IJEVE6B.js} +1 -1
  25. package/dist/m/{c-NW54NHKE.js → c-6LEYVQJK.js} +1 -1
  26. package/dist/m/{c-GSRLXYWL.js → c-6Q6RGFBF.js} +1 -1
  27. package/dist/m/c-6RGEQNVV.js +1 -0
  28. package/dist/m/c-7CM4GMTS.js +6 -0
  29. package/dist/m/c-7NCWENHV.js +1 -0
  30. package/dist/m/c-7V6MGMX2.js +1 -0
  31. package/dist/m/{c-LKSL4AUJ.js → c-7WZSUTYP.js} +1 -1
  32. package/dist/m/c-A4L7APIU.js +1 -0
  33. package/dist/m/c-APGHGDZM.js +1 -0
  34. package/dist/m/c-AT7GLQGV.js +34 -0
  35. package/dist/m/{c-ZRXJD4G6.js → c-B7GOFGQR.js} +1 -1
  36. package/dist/m/{c-KDXIJEEF.js → c-BGN7RCTJ.js} +1 -1
  37. package/dist/m/c-BKM46LUJ.js +1 -0
  38. package/dist/m/c-BOMQIQ3V.js +1 -0
  39. package/dist/m/{c-62HZW5DH.js → c-C5AKJVRH.js} +1 -1
  40. package/dist/m/{c-BXYSDKAN.js → c-CJ7QYEWI.js} +1 -1
  41. package/dist/m/c-CTGRDT6E.js +1 -0
  42. package/dist/m/c-CV4T65JE.js +6 -0
  43. package/dist/m/c-CVSWLX3X.js +1 -0
  44. package/dist/m/c-CZHTXGJS.js +1 -0
  45. package/dist/m/c-D7NT5S4F.js +1 -0
  46. package/dist/m/c-DD26VXAP.js +1 -0
  47. package/dist/m/{c-ANNFZFLN.js → c-DDS23EY6.js} +1 -1
  48. package/dist/m/{c-ALDVFPWL.js → c-DFKBGSN2.js} +1 -1
  49. package/dist/m/c-DIKR7H57.js +147 -0
  50. package/dist/m/c-DXPOFLEJ.js +1 -0
  51. package/dist/m/c-EDE45NM7.js +1 -0
  52. package/dist/m/c-EILLN2H2.js +1 -0
  53. package/dist/m/c-EODTTNVA.js +1 -0
  54. package/dist/m/{c-G6COVIZB.js → c-ESK4S67I.js} +1 -1
  55. package/dist/m/c-FDWR3FL7.js +1 -0
  56. package/dist/m/{c-WQZTI5P2.js → c-FEC6LGFF.js} +1 -1
  57. package/dist/m/c-FLEIU6CG.js +1 -0
  58. package/dist/m/c-FQAQRXGK.js +1 -0
  59. package/dist/m/{c-W4JCVLAB.js → c-FSQXFG5T.js} +1 -1
  60. package/dist/m/c-FVPNX2GO.js +135 -0
  61. package/dist/m/c-FYDKYW6E.js +1 -0
  62. package/dist/m/c-GNI7WHKF.js +32 -0
  63. package/dist/m/c-GO635CRU.js +3 -0
  64. package/dist/m/c-H3FNLBHN.js +2 -0
  65. package/dist/m/c-HDVH3MVC.js +72 -0
  66. package/dist/m/c-HIX5H5L7.js +1 -0
  67. package/dist/m/c-HKSLOVU4.js +1 -0
  68. package/dist/m/{c-SGRIYOAJ.js → c-HL6BLJNA.js} +1 -1
  69. package/dist/m/c-HTLYXCUH.js +1 -0
  70. package/dist/m/{c-QIR5CAKM.js → c-IUL7PU4P.js} +1 -1
  71. package/dist/m/c-IXO7EI2Q.js +1 -0
  72. package/dist/m/{c-W5E5P2TZ.js → c-JQF2EUCG.js} +1 -1
  73. package/dist/m/{c-NEL7HQW3.js → c-JWDCQL6J.js} +1 -1
  74. package/dist/m/c-KQKKIVLW.js +20 -0
  75. package/dist/m/c-LATNQ6Q5.js +1 -0
  76. package/dist/m/c-LD6UVV5R.js +1 -0
  77. package/dist/m/c-LS7IVQVW.js +1 -0
  78. package/dist/m/{c-JCOQVZYS.js → c-LSVN3OLG.js} +1 -1
  79. package/dist/m/{c-JDZDF2QM.js → c-LTSPHVAK.js} +1 -1
  80. package/dist/m/c-MFOSMAVM.js +3 -0
  81. package/dist/m/c-MJ7GVE46.js +1 -0
  82. package/dist/m/c-MP6S4AZU.js +6 -0
  83. package/dist/m/c-MQKSKQHG.js +2 -0
  84. package/dist/m/{c-UHUNXWKN.js → c-MQYEDF3Q.js} +1 -1
  85. package/dist/m/{c-IHUWUKIU.js → c-MR75YPRT.js} +1 -1
  86. package/dist/m/c-ND3Q2G2I.js +1 -0
  87. package/dist/m/c-NEQRFC4O.js +1 -0
  88. package/dist/m/{c-5FKRZNJV.js → c-NFQFV7OP.js} +1 -1
  89. package/dist/m/c-NHXOBD6A.js +1 -0
  90. package/dist/m/{c-QIKT6SKM.js → c-NICICT4P.js} +1 -1
  91. package/dist/m/c-NQAPWM7O.js +1 -0
  92. package/dist/m/{c-QUGCKMWF.js → c-NVU3DORS.js} +1 -1
  93. package/dist/m/{c-LWIDDWAR.js → c-OCYG4NBQ.js} +22 -22
  94. package/dist/m/c-OH2FPYSY.js +19 -0
  95. package/dist/m/c-OYHI67B6.js +1 -0
  96. package/dist/m/{c-R2XUODVY.js → c-OYW5MFPZ.js} +1 -1
  97. package/dist/m/{c-5B4YBZXC.js → c-P2HKMJAW.js} +1 -1
  98. package/dist/m/{c-TSBVMWAH.js → c-PCNJETUA.js} +1 -1
  99. package/dist/m/c-PDBNCJCT.js +1 -0
  100. package/dist/m/c-PGSBXHUE.js +1 -0
  101. package/dist/m/{c-5TIZ2I64.js → c-PYG2NGWU.js} +1 -1
  102. package/dist/m/c-Q26XHBLQ.js +1 -0
  103. package/dist/m/c-Q6BG3ZLO.js +1 -0
  104. package/dist/m/c-QENKN7QI.js +1 -0
  105. package/dist/m/c-QQFHEODI.js +1 -0
  106. package/dist/m/c-QTEUO2K6.js +1 -0
  107. package/dist/m/c-R23UHMXG.js +1 -0
  108. package/dist/m/c-RETTCOWO.js +10 -0
  109. package/dist/m/c-SE3SIY7Y.js +7 -0
  110. package/dist/m/{c-XX75FFNL.js → c-SGGGCIVD.js} +1 -1
  111. package/dist/m/c-SGH3UTF3.js +1 -0
  112. package/dist/m/c-SIM7Z3U7.js +1 -0
  113. package/dist/m/{c-X5LNHET5.js → c-SKMIR5HQ.js} +1 -1
  114. package/dist/m/{c-R27DWQKX.js → c-STRI73GQ.js} +1 -1
  115. package/dist/m/c-SUXHUL7U.js +1 -0
  116. package/dist/m/c-SXGEWPFC.js +10 -0
  117. package/dist/m/c-SXNSSHPP.js +1 -0
  118. package/dist/m/c-T3P3AXEW.js +1 -0
  119. package/dist/m/{c-PXLTUYZC.js → c-TFLRT5JX.js} +1 -1
  120. package/dist/m/{c-YCLU4UNT.js → c-TGIMBAWE.js} +1 -1
  121. package/dist/m/c-TGSHHFO6.js +1 -0
  122. package/dist/m/c-U4NTUVDZ.js +1 -0
  123. package/dist/m/c-UOOIF2AL.js +1 -0
  124. package/dist/m/{c-6TYGD5AB.js → c-UOUUI265.js} +1 -1
  125. package/dist/m/c-V2U3F4QX.js +1 -0
  126. package/dist/m/c-V2V5FKXX.js +1 -0
  127. package/dist/m/c-VBXRXTVS.js +26 -0
  128. package/dist/m/c-VHSMPITY.js +1 -0
  129. package/dist/m/c-VPXCXBDT.js +1 -0
  130. package/dist/m/c-WCG6AKA7.js +1 -0
  131. package/dist/m/c-WNOLMHI2.js +1 -0
  132. package/dist/m/{c-CRPIDGXC.js → c-X6MOYATI.js} +1 -1
  133. package/dist/m/{c-FQGHR32O.js → c-X75G43SZ.js} +1 -1
  134. package/dist/m/c-XB6EAIAR.js +13 -0
  135. package/dist/m/c-XMIDHEKF.js +1 -0
  136. package/dist/m/c-XUZMRQ7O.js +4 -0
  137. package/dist/m/{c-2Z22FCFK.js → c-XW5TIYYB.js} +1 -1
  138. package/dist/m/c-YDW4VCHP.js +1 -0
  139. package/dist/m/{c-QGAPG7OM.js → c-YLHTD3KX.js} +1 -1
  140. package/dist/m/c-YNIEIPBS.js +1 -0
  141. package/dist/m/c-Z4G2UK6T.js +4 -0
  142. package/dist/m/c-Z6MROEQ4.js +1 -0
  143. package/dist/m/c-ZFO5RW6G.js +2 -0
  144. package/dist/m/c-ZGCO4J3H.js +8 -0
  145. package/dist/m/c-ZKKAF4UT.js +3 -0
  146. package/dist/m/c-ZRGEN6QQ.js +4 -0
  147. package/dist/m/core/{admin-attrs-U7IJNYBG.js → admin-attrs-ONRWVXPK.js} +1 -1
  148. package/dist/m/core/{autosave-F5YQCKVL.js → autosave-TBKAAAFB.js} +1 -1
  149. package/dist/m/core/conflict-notice-FOEE6I7E.js +1 -0
  150. package/dist/m/core/draft-mode-4MCL3LYI.js +1 -0
  151. package/dist/m/core/{host-permission-6EVJGNPL.js → host-permission-X4BENZEU.js} +1 -1
  152. package/dist/m/core/{is-edit-mode-GCX6767E.js → is-edit-mode-FFHCQ5DR.js} +1 -1
  153. package/dist/m/core/{persist-CJXIL7D4.js → persist-6ILUR34S.js} +1 -1
  154. package/dist/m/core/{recovery-DRFZRJED.js → recovery-APWADU4K.js} +1 -1
  155. package/dist/m/core/save-6HT2LABE.js +1 -0
  156. package/dist/m/core/save-core-EVMNZQ4V.js +1 -0
  157. package/dist/m/core/site-edits-G4BOZMV4.js +1 -0
  158. package/dist/m/core/{unsaved-warning-HNQVTA2D.js → unsaved-warning-ITZDIZ2I.js} +1 -1
  159. package/dist/m/internals/{index-NRPNDTSA.js → index-HS3CQDFW.js} +1 -1
  160. package/dist/m/loader-GLLVDUZA.js +1 -0
  161. package/dist/m/manifest-50FF1C45.js +1 -0
  162. package/dist/m/manifest-edit-BE1A621D.js +1 -0
  163. package/dist/m/manifest.json +2072 -1811
  164. package/dist/m/page/editor-KAZDJNND.js +307 -0
  165. package/dist/m/plugins/ai-edit-LABECCSN.js +6 -0
  166. package/dist/m/plugins/{cms-H7DTMUQX.js → cms-T2HLI7JG.js} +16 -16
  167. package/dist/m/plugins/{demo-42BSYQ7T.js → demo-T7B4RIKL.js} +1 -1
  168. package/dist/m/plugins/{derive-QVI3LI3A.js → derive-6LPJOCAV.js} +1 -1
  169. package/dist/m/plugins/indicator-J4ABFARX.js +1 -0
  170. package/dist/m/plugins/{live-DCUBKXY4.js → live-PGBIEMGB.js} +1 -1
  171. package/dist/m/plugins/menu-YZL3X2AJ.js +1 -0
  172. package/dist/m/plugins/page-WOCNX2IN.js +2 -0
  173. package/dist/m/plugins/page-view-SJODOOGE.js +1 -0
  174. package/dist/m/plugins/{people-5XRNRP5U.js → people-C4TCWFOQ.js} +1 -1
  175. package/dist/m/plugins/{quickcrop-WWF5I422.js → quickcrop-X5MRIBAP.js} +2 -2
  176. package/dist/m/plugins/richclay-Y2NV44NA.js +549 -0
  177. package/dist/m/plugins/sortable-XCHQG65Z.js +1 -0
  178. package/dist/m/plugins/{source-6BKMK4PO.js → source-YK7MO23W.js} +1 -1
  179. package/dist/m/plugins/{undo-3JEYK5QY.js → undo-VLRBQNPN.js} +1 -1
  180. package/dist/m/plugins/upgrade-NNTJBSK2.js +1 -0
  181. package/dist/m/plugins/{upload-TTCQRIM5.js → upload-ZKKJV76X.js} +1 -1
  182. package/dist/m/plugins/visitor-drafts-RTZNONHT.js +20 -0
  183. package/dist/m/plugins/{visitor-drafts-owner-Z5B2OQBR.js → visitor-drafts-owner-LHUHFU3L.js} +1 -1
  184. package/dist/m/plugins/{visitor-menu-4LQMKLPP.js → visitor-menu-FY4KM2SW.js} +1 -1
  185. package/dist/m/plugins/wire-M2NR354P.js +1 -0
  186. package/dist/m/{reader-core-POFQCKRV.js → reader-core-T2S3JC4E.js} +2 -2
  187. package/dist/m/sync/live-sync-Z64YREWQ.js +1 -0
  188. package/dist/m/ui/index-MGTWOW2C.js +1 -0
  189. package/dist/m/vendor/{sap-core.vendor-OA5SKL7Q.js → sap-core.vendor-QAEPMETX.js} +1 -1
  190. package/dist/offline-manifest.json +1250 -1082
  191. package/dist/server/core.cjs +132 -109
  192. package/dist/server/page-compaction-worker.cjs +5 -5
  193. package/dist/server/rooms.mjs +3 -1
  194. package/docs/guide.md +89 -44
  195. package/entries/clay-data.js +1 -1
  196. package/entries/sap.js +1 -1
  197. package/package.json +5 -3
  198. package/src/blockeditor/themes/content.css +70 -0
  199. package/src/blockeditor/themes/light-1.css +431 -0
  200. package/src/blockeditor/themes/light-1.source.css +270 -0
  201. package/src/blockeditor/themes/light-2.css +211 -0
  202. package/src/blockeditor/themes/light-3.css +130 -0
  203. package/src/blockeditor/themes/light-4.css +299 -0
  204. package/src/core/conflict-notice.js +28 -0
  205. package/src/core/draft-mode.js +6 -0
  206. package/src/core/host-meta.js +6 -6
  207. package/src/core/is-edit-mode.js +9 -3
  208. package/src/core/mode-support.js +3 -0
  209. package/src/core/mode-switch.js +4 -4
  210. package/src/core/mode-transition.js +3 -1
  211. package/src/core/page-format-wire.js +1 -1
  212. package/src/core/page-format.js +8 -8
  213. package/src/core/save-accepted.js +6 -7
  214. package/src/core/save-core.js +52 -23
  215. package/src/core/save-failure-notice.js +37 -0
  216. package/src/core/save-feedback.js +6 -0
  217. package/src/core/save-replace.js +1 -1
  218. package/src/core/save-size.js +2 -2
  219. package/src/core/save.js +78 -15
  220. package/src/core/site-edits.js +166 -0
  221. package/src/core/unsaved-warning.js +2 -2
  222. package/src/core/upgrade-run.js +4 -4
  223. package/src/lib/ai-comment.js +23 -0
  224. package/src/lib/effect.js +8 -0
  225. package/src/lib/idb-error-code.js +20 -0
  226. package/src/live/fast-lane.js +10 -10
  227. package/src/live/local-lane.js +10 -10
  228. package/src/live/page-compaction.js +8 -8
  229. package/src/live/server-lane.js +1 -1
  230. package/src/loader-logic.js +48 -18
  231. package/src/loader.js +11 -6
  232. package/src/page/adopt-boot.js +1 -1
  233. package/src/page/adopt.js +2 -2
  234. package/src/page/ai-area.js +182 -0
  235. package/src/page/ai-preview.js +80 -0
  236. package/src/page/ai-surface.js +257 -0
  237. package/src/page/ai-tool.js +308 -145
  238. package/src/page/announce.js +2 -2
  239. package/src/page/awareness.js +18 -18
  240. package/src/page/blocks.js +35 -34
  241. package/src/page/blocksel.js +2 -2
  242. package/src/page/board-drag.js +11 -11
  243. package/src/page/board-face.js +1 -1
  244. package/src/page/board-panel.js +26 -26
  245. package/src/page/board-style.js +127 -127
  246. package/src/page/board-view.js +48 -48
  247. package/src/page/chart.js +29 -29
  248. package/src/page/checkpoint-proof.js +19 -19
  249. package/src/page/chrome.js +74 -65
  250. package/src/page/clipboard-shape.js +1 -1
  251. package/src/page/csv-import.js +4 -4
  252. package/src/page/drag.js +5 -5
  253. package/src/page/editor.js +301 -296
  254. package/src/page/export-html.js +8 -8
  255. package/src/page/features/checklist.js +36 -36
  256. package/src/page/features/export-html.js +19 -19
  257. package/src/page/features/export-markdown.js +10 -10
  258. package/src/page/features/import-markdown.js +13 -13
  259. package/src/page/features/media.js +50 -50
  260. package/src/page/features/table.js +17 -17
  261. package/src/page/features/title-cover.js +17 -17
  262. package/src/page/features/title-icon.js +7 -7
  263. package/src/page/features/toc.js +1 -1
  264. package/src/page/features/tool.js +42 -18
  265. package/src/page/format-command.js +4 -4
  266. package/src/page/format-gate.js +6 -6
  267. package/src/page/format-host.js +6 -6
  268. package/src/page/format-level.js +3 -3
  269. package/src/page/format-native-commands.js +2 -2
  270. package/src/page/highlight-slot.js +1 -1
  271. package/src/page/highlight.js +4 -4
  272. package/src/page/history-intent.js +2 -2
  273. package/src/page/image-actions.js +4 -4
  274. package/src/page/link.js +10 -10
  275. package/src/page/media.js +3 -3
  276. package/src/page/mention-picker.js +7 -7
  277. package/src/page/merge.js +1 -1
  278. package/src/page/placeholder.js +3 -3
  279. package/src/page/projection.js +11 -11
  280. package/src/page/reader-patch.js +2 -2
  281. package/src/page/recover.js +26 -26
  282. package/src/page/recovery-ui.js +28 -28
  283. package/src/page/rich/chart.js +1 -1
  284. package/src/page/rich/page-tool.js +21 -6
  285. package/src/page/rich/tool-runtime.js +3 -2
  286. package/src/page/save-projection.js +2 -2
  287. package/src/page/save-states.js +9 -9
  288. package/src/page/schema.js +9 -9
  289. package/src/page/table-style.js +21 -21
  290. package/src/page/toc-link.js +1 -1
  291. package/src/page/tool-capability.js +8 -3
  292. package/src/page/tool-transport.js +52 -0
  293. package/src/page/tool-views.js +4 -0
  294. package/src/page/tools.js +6 -1
  295. package/src/page/view.js +6 -6
  296. package/src/page/ybind/binding.js +1 -1
  297. package/src/page/ybind/conversion.js +1 -1
  298. package/src/page/ybind/layout.js +4 -4
  299. package/src/page/ybind/migrate.js +1 -1
  300. package/src/page/ybind/origins.js +2 -2
  301. package/src/page/ybind/provider.js +2 -2
  302. package/src/page/ybind/recovery-proof.js +3 -3
  303. package/src/page/ybind/recovery-replay.js +2 -2
  304. package/src/plugins/ai-edit/picker.js +235 -0
  305. package/src/plugins/ai-edit.js +220 -34
  306. package/src/plugins/indicator-chip.js +39 -34
  307. package/src/plugins/indicator.js +13 -4
  308. package/src/plugins/live.js +21 -13
  309. package/src/plugins/menu/actions.js +89 -17
  310. package/src/plugins/menu/seo.js +32 -6
  311. package/src/plugins/menu/shell-style.js +26 -7
  312. package/src/plugins/menu/shell.js +12 -7
  313. package/src/plugins/menu/variants.js +6 -10
  314. package/src/plugins/menu/visitor.js +44 -34
  315. package/src/plugins/menu.js +3 -2
  316. package/src/plugins/page-view.js +2 -2
  317. package/src/plugins/page.js +257 -98
  318. package/src/plugins/sortable.js +7 -0
  319. package/src/plugins/upgrade.js +2 -1
  320. package/src/plugins/visitor-drafts/commit.js +303 -0
  321. package/src/plugins/visitor-drafts/idb.js +221 -0
  322. package/src/plugins/visitor-drafts/intro-style.js +1 -1
  323. package/src/plugins/visitor-drafts/intro.js +8 -25
  324. package/src/plugins/visitor-drafts/prompt.js +30 -4
  325. package/src/plugins/visitor-drafts/session.js +345 -0
  326. package/src/plugins/visitor-drafts/store.js +351 -32
  327. package/src/plugins/visitor-drafts.js +158 -27
  328. package/src/server/checkpoint/index.js +8 -8
  329. package/src/server/rooms/index.js +2 -2
  330. package/src/server/rooms/live-data-rooms.js +35 -35
  331. package/src/server/rooms/live-page-history.js +2 -2
  332. package/src/server/rooms/page-admission.js +34 -6
  333. package/src/server/rooms/page-conversion.js +1 -1
  334. package/src/server/rooms/page-lineage.js +4 -4
  335. package/src/server/rooms/page-rebase.js +4 -4
  336. package/src/server/rooms/page-room-conformance.js +14 -14
  337. package/src/server/rooms/page-state.js +2 -2
  338. package/src/server/rooms/page-write-admission.js +7 -7
  339. package/src/server/rooms/page-write-guard.js +3 -3
  340. package/src/sync/data-guard-notice.js +265 -0
  341. package/src/sync/live-sync.js +54 -11
  342. package/src/sync/page-relay.js +4 -4
  343. package/src/sync/presence-store.js +1 -1
  344. package/src/sync/presence-target.js +3 -3
  345. package/src/sync/presence.js +1 -1
  346. package/src/sync/stream.js +54 -13
  347. package/src/sync/wire-profile.js +8 -3
  348. package/src/ui/bevel.js +1 -1
  349. package/src/ui/index.js +9 -10
  350. package/src/ui/skins/cms.js +1 -1
  351. package/src/ui/skins/quickcrop.js +1 -1
  352. package/src/ui/skins/richclay.js +2 -2
  353. package/src/ui/toast-lazy.js +12 -3
  354. package/src/ui/toast.js +9 -3
  355. package/src/vendor/hyper-html-api-data.vendor.js +1 -1
  356. package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
  357. package/src/vendor/hypercms.vendor.js +16 -16
  358. package/src/vendor/richclay.vendor.js +48 -20
  359. package/src/vendor/sap-core.vendor.js +1 -1
  360. package/tool-generation/context.md +44 -0
  361. package/tool-generation/system.md +23 -0
  362. package/dist/m/c-24PMUJIV.js +0 -2
  363. package/dist/m/c-2AYVYEI4.js +0 -1
  364. package/dist/m/c-2AZDZWCK.js +0 -1
  365. package/dist/m/c-2L6O5PDS.js +0 -6
  366. package/dist/m/c-2RYOGUQM.js +0 -2
  367. package/dist/m/c-2ZVOEU4M.js +0 -1
  368. package/dist/m/c-37NAONZA.js +0 -1
  369. package/dist/m/c-3GJ4SDE2.js +0 -1
  370. package/dist/m/c-3O7OBDCM.js +0 -1
  371. package/dist/m/c-5OJ7YF2N.js +0 -1
  372. package/dist/m/c-5WMXEKFH.js +0 -135
  373. package/dist/m/c-6RDOKLN7.js +0 -1
  374. package/dist/m/c-A4IP6MBC.js +0 -1
  375. package/dist/m/c-A6L3FMUS.js +0 -1
  376. package/dist/m/c-ATKAOH23.js +0 -1
  377. package/dist/m/c-B6O7AJYG.js +0 -32
  378. package/dist/m/c-BCGWJYXW.js +0 -1
  379. package/dist/m/c-BGKAT2FL.js +0 -7
  380. package/dist/m/c-BYTKL6UX.js +0 -1
  381. package/dist/m/c-DHBRA6DL.js +0 -1
  382. package/dist/m/c-DTMZ3ZHI.js +0 -1
  383. package/dist/m/c-E3ZXARWA.js +0 -1
  384. package/dist/m/c-EK63G3CG.js +0 -1
  385. package/dist/m/c-ELYIIYRS.js +0 -1
  386. package/dist/m/c-EXKHPOVC.js +0 -3
  387. package/dist/m/c-FCSZ3DC5.js +0 -20
  388. package/dist/m/c-FTWGYI5E.js +0 -1
  389. package/dist/m/c-G4PWUDD5.js +0 -1
  390. package/dist/m/c-GBKB5WDL.js +0 -2
  391. package/dist/m/c-GBTVCJXC.js +0 -1
  392. package/dist/m/c-GC2HICFJ.js +0 -1
  393. package/dist/m/c-GRWMD6O5.js +0 -1
  394. package/dist/m/c-HCNWJE4A.js +0 -4
  395. package/dist/m/c-HG2C77BM.js +0 -4
  396. package/dist/m/c-JGHEACGK.js +0 -1
  397. package/dist/m/c-JGLX6TBK.js +0 -1
  398. package/dist/m/c-JNRKHYWO.js +0 -1
  399. package/dist/m/c-KBS3UV6B.js +0 -1
  400. package/dist/m/c-KQ7E3PYY.js +0 -1
  401. package/dist/m/c-L3F5ZLIV.js +0 -1
  402. package/dist/m/c-L4KMT7FO.js +0 -6
  403. package/dist/m/c-L5VFATT6.js +0 -1
  404. package/dist/m/c-LCYPMULG.js +0 -1
  405. package/dist/m/c-LIGQYZ7M.js +0 -6
  406. package/dist/m/c-LKIWEPAV.js +0 -1
  407. package/dist/m/c-MPSKIU2I.js +0 -1
  408. package/dist/m/c-N7JPUPGC.js +0 -1
  409. package/dist/m/c-NK33MMYF.js +0 -1
  410. package/dist/m/c-NQLWOHLH.js +0 -10
  411. package/dist/m/c-NTHUTABN.js +0 -1
  412. package/dist/m/c-NWX3MFT4.js +0 -1
  413. package/dist/m/c-OKXI52N7.js +0 -1
  414. package/dist/m/c-OPONJ2UK.js +0 -128
  415. package/dist/m/c-OWQWOGYI.js +0 -1
  416. package/dist/m/c-P6Q2ZTFQ.js +0 -1
  417. package/dist/m/c-QEN6HZCA.js +0 -1
  418. package/dist/m/c-QIXT3Q7C.js +0 -28
  419. package/dist/m/c-QM5LXRDT.js +0 -9
  420. package/dist/m/c-QYYUVLVG.js +0 -1
  421. package/dist/m/c-RQRMPZXD.js +0 -1
  422. package/dist/m/c-SBCBXKOZ.js +0 -26
  423. package/dist/m/c-SKF5HL4I.js +0 -4
  424. package/dist/m/c-SRPC3VBE.js +0 -1
  425. package/dist/m/c-TANBH7FI.js +0 -1
  426. package/dist/m/c-THGQQDYY.js +0 -1
  427. package/dist/m/c-UD5JZTDL.js +0 -1
  428. package/dist/m/c-UDGEFWNU.js +0 -1
  429. package/dist/m/c-UGNV5MFB.js +0 -1
  430. package/dist/m/c-VIRFF5HG.js +0 -8
  431. package/dist/m/c-VJYEVRYK.js +0 -1
  432. package/dist/m/c-VQCEOGKH.js +0 -13
  433. package/dist/m/c-VYJ7O4RI.js +0 -34
  434. package/dist/m/c-W7IPVCAA.js +0 -1
  435. package/dist/m/c-WBGWGOM7.js +0 -1
  436. package/dist/m/c-WJ5DRBHT.js +0 -72
  437. package/dist/m/c-X5WC4PX5.js +0 -1
  438. package/dist/m/c-XCFQEWW6.js +0 -3
  439. package/dist/m/c-XGH4GS2T.js +0 -1
  440. package/dist/m/c-XLQ3BDMM.js +0 -1
  441. package/dist/m/c-ZQXNHZZT.js +0 -72
  442. package/dist/m/core/conflict-notice-42H4ASLA.js +0 -1
  443. package/dist/m/core/draft-mode-WSQAT67S.js +0 -1
  444. package/dist/m/core/save-ESPSQPLV.js +0 -1
  445. package/dist/m/core/save-core-6SQHOR6W.js +0 -1
  446. package/dist/m/loader-FBDE2UAB.js +0 -1
  447. package/dist/m/manifest-1D2F5CA5.js +0 -1
  448. package/dist/m/manifest-edit-F7CC5CFD.js +0 -1
  449. package/dist/m/page/editor-OSKOW6RS.js +0 -304
  450. package/dist/m/plugins/ai-edit-VV4QTINH.js +0 -6
  451. package/dist/m/plugins/indicator-WVPGMOZ7.js +0 -1
  452. package/dist/m/plugins/menu-Q4MFFQ6E.js +0 -1
  453. package/dist/m/plugins/page-OAWUJQEL.js +0 -2
  454. package/dist/m/plugins/page-view-DZ26ZDDQ.js +0 -1
  455. package/dist/m/plugins/richclay-PGOOJ4OK.js +0 -517
  456. package/dist/m/plugins/sortable-266HY6TR.js +0 -1
  457. package/dist/m/plugins/upgrade-BNZVFHMZ.js +0 -1
  458. package/dist/m/plugins/visitor-drafts-2AUYKAIJ.js +0 -20
  459. package/dist/m/plugins/wire-W2EV36KZ.js +0 -1
  460. package/dist/m/sync/live-sync-XGUPHI3I.js +0 -1
  461. package/dist/m/ui/index-VGYAKAKI.js +0 -1
  462. package/dist/page/themes/light-1.css +0 -431
  463. package/src/page/themes/content.css +0 -70
  464. package/src/page/themes/light-1.css +0 -431
  465. package/src/page/themes/light-1.source.css +0 -270
  466. package/src/page/themes/light-2.css +0 -211
  467. package/src/page/themes/light-3.css +0 -130
  468. package/src/page/themes/light-4.css +0 -299
  469. /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
  470. /package/dist/m/plugins/{quickcrop-WWF5I422.js.LEGAL.txt → quickcrop-X5MRIBAP.js.LEGAL.txt} +0 -0
  471. /package/dist/m/plugins/{richclay-PGOOJ4OK.js.LEGAL.txt → richclay-Y2NV44NA.js.LEGAL.txt} +0 -0
@@ -1 +1 @@
1
- import{b as l}from"../c-JAX2667S.js";import{f as i}from"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import{h as c}from"../c-ICMAOOGK.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};
1
+ import{b as l}from"../c-JAX2667S.js";import{f as i}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-HA6INT6J.js";import{h as c}from"../c-ICMAOOGK.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};
@@ -1 +1 @@
1
- import"../c-VHNSBD2M.js";function n(){let o=window.Sap;return!!(o&&!o.core||window.clay?.loaded?.sap)}var a=n()?null:import("../vendor/sap-core.vendor-OA5SKL7Q.js").then(()=>{});export{a as ready};
1
+ import"../c-VHNSBD2M.js";function n(){let o=window.Sap;return!!(o&&!o.core||window.clay?.loaded?.sap)}var a=n()?null:import("../vendor/sap-core.vendor-QAEPMETX.js").then(()=>{});export{a as ready};
@@ -0,0 +1 @@
1
+ import{a as c}from"../c-5KXDKC5G.js";import{a as s}from"../c-VKEDWYDF.js";import{k as a}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var u=["saving","saved","error","offline","retrying","blocked"],d=null,i=()=>d??=import("../c-NHXOBD6A.js"),o=(e,t)=>{i().then(r=>{n&&r.show(e,t)},()=>{})},f=new Set(["blocked","unavailable"]),p=e=>{if(!f.has(e))return o(e);i().then(t=>{n&&t.standDown()},()=>{})},n=null;function l(){if(c.chip=!0,n)return;n=new AbortController;let{signal:e}=n;for(let t of["beforeinput","keydown","pointerdown"])document.addEventListener(t,i,{signal:e,once:!0,capture:!0});for(let t of u)document.addEventListener("clay:save-"+t,r=>o(t,r.detail),{signal:e});document.addEventListener("clay:blockeditor-save-state",t=>p(t.detail?.state),{signal:e}),document.addEventListener("clay:save-status",t=>o(t.detail?.state),{signal:e})}function m(){n?.abort(),n=null,d?.then(e=>e.remove(),()=>{})}function v(){a()&&l()}function w(){return{id:"clay:indicator",order:700,prepare(e={}){return{enable(){e.initial!==!0&&l()},quiesce(){},resume(){},dispose(){m()}}}}}s(v);export{w as indicatorParticipant,w as modeParticipant};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w}from"../c-2L6O5PDS.js";import"../c-JKZJIUIP.js";import"../c-TCCA5BZN.js";import"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import"../c-2ZVOEU4M.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-GSRLXYWL.js";import"../c-X5LNHET5.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-LA2BW7UY.js";import"../c-XCFQEWW6.js";import"../c-ATKAOH23.js";import"../c-EK63G3CG.js";import"../c-NQJRVJ56.js";import"../c-XGH4GS2T.js";import"../c-IJUK2GPW.js";import"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as HOLD_MS,t as checkpointWithin,o as closeStore,k as confirmSaved,w as default,b as drainLiveWriter,q as fastLane,r as lanePending,h as live,f as liveTags,c as liveWriterParticipant,s as localLane,c as modeParticipant,p as openStores,d as pageLaneReady,e as pageWriterReady,m as receiveFrame,j as registerPageCheckpoints,v as requestCheckpoint,u as requestExitCheckpoint,l as sendingCapture,g as serializeLines,i as stageStore,n as storeOf};
1
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w}from"../c-7CM4GMTS.js";import"../c-JKZJIUIP.js";import"../c-TCCA5BZN.js";import"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import"../c-HTLYXCUH.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-6Q6RGFBF.js";import"../c-SKMIR5HQ.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import"../c-LA2BW7UY.js";import"../c-MFOSMAVM.js";import"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import"../c-6IJEVE6B.js";import"../c-QQFHEODI.js";import"../c-IJUK2GPW.js";import"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";export{a as HOLD_MS,t as checkpointWithin,o as closeStore,k as confirmSaved,w as default,b as drainLiveWriter,q as fastLane,r as lanePending,h as live,f as liveTags,c as liveWriterParticipant,s as localLane,c as modeParticipant,p as openStores,d as pageLaneReady,e as pageWriterReady,m as receiveFrame,j as registerPageCheckpoints,v as requestCheckpoint,u as requestExitCheckpoint,l as sendingCapture,g as serializeLines,i as stageStore,n as storeOf};
@@ -0,0 +1 @@
1
+ import{a as we,b as G}from"../c-QTEUO2K6.js";import{a as he,b as ae,c as be}from"../c-X6MOYATI.js";import{a as te,g as ne,h as oe,i as Ee,k as ke}from"../c-DIKR7H57.js";import{a as I}from"../c-AQLFEATB.js";import{a as W,b as D,c as _,d as ge,f as ve,g as V}from"../c-CUMXGHVD.js";import{b as pe,c as ye}from"../c-RVMWGXEJ.js";import"../c-QY7F6EN6.js";import{a as de,b as me}from"../c-RHMPKZZ7.js";import{d as fe}from"../c-PKCCHJ5X.js";import{a as ce}from"../c-VKEDWYDF.js";import{d as ue}from"../c-QQFHEODI.js";import{b as Q,c as ee,f as ie,g as le}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Ae=new Set(["top-left","top-right","bottom-left","bottom-right"]),Ue=4,xe="menu-corner";function _e(t,e,l,m){return`${e<m/2?"top":"bottom"}-${t<l/2?"left":"right"}`}function De(t,e){let[l,m]=t.split("-");if(e==="ArrowUp")l="top";else if(e==="ArrowDown")l="bottom";else if(e==="ArrowLeft")m="left";else if(e==="ArrowRight")m="right";else return null;return`${l}-${m}`}function Be(t){let e=null;try{e=t?t.get(xe):null}catch{}return Ae.has(e)?e:"top-right"}function He(t){let e=document.createElement("div");e.className="clay-menu-spots",e.setAttribute("clay","editor-ui"),e.setAttribute("aria-hidden","true");for(let l of Ae){let m=document.createElement("span");m.className="clay-menu-spot",m.dataset.to=l,e.append(m)}return t.append(e),e}function Se({dock:t,container:e=document.body,grip:l,storage:m,onMove:h,onDragStart:E}){function n(s,{remember:d=!0}={}){if(t.dataset.corner=s,d)try{m&&m.set(xe,s)}catch{}h&&h(s)}n(Be(m),{remember:!1}),l.addEventListener("keydown",s=>{let d=De(t.dataset.corner,s.key);d&&(s.preventDefault(),d!==t.dataset.corner&&n(d))});let o=null;l.addEventListener("pointerdown",s=>{if(s.button!==0||s.isPrimary===!1)return;let d=t.getBoundingClientRect();if(o={id:s.pointerId,x:s.clientX,y:s.clientY,dx:s.clientX-d.left,dy:s.clientY-d.top,w:d.width,h:d.height,moving:!1,spots:null,near:null},l.setPointerCapture)try{l.setPointerCapture(s.pointerId)}catch{}}),l.addEventListener("pointermove",s=>{if(!o||s.pointerId!==o.id)return;if(!o.moving){if(Math.hypot(s.clientX-o.x,s.clientY-o.y)<Ue)return;o.moving=!0,t.setAttribute("data-dragging",""),o.spots=He(e),o.spots.style.setProperty("color-scheme",getComputedStyle(t).colorScheme),E&&E()}let d=s.clientX-o.dx,$=s.clientY-o.dy;Object.assign(t.style,{left:`${d}px`,top:`${$}px`,right:"auto",bottom:"auto"}),o.near=_e(d+o.w/2,$+o.h/2,window.innerWidth,window.innerHeight);for(let A of o.spots.children)A.toggleAttribute("data-near",A.dataset.to===o.near)});let b=s=>d=>{if(!o||d.pointerId!==o.id)return;let{moving:$,near:A,spots:P}=o;if(o=null,!!$){P.remove(),t.removeAttribute("data-dragging");for(let N of["left","top","right","bottom"])t.style.removeProperty(N);s&&A?n(A):n(t.dataset.corner,{remember:!1})}};return l.addEventListener("pointerup",b(!0)),l.addEventListener("pointercancel",b(!1)),l.addEventListener("lostpointercapture",b(!1)),{setCorner:n}}var z="menu-resume",Ye=5e3,Fe=8e3,R=()=>window.clay||{},Ce=()=>R().storage&&R().storage.session,B=t=>{let e=R().editPlugins;return Array.isArray(e)&&e.includes(t)};function se(t,e=Ye){return new Promise(l=>{let m=Date.now(),h=()=>{let E=t();E||Date.now()-m>=e?l(E||null):setTimeout(h,50)};h()})}function Ie(t=Fe){let e=R().blockeditor;if(!e)return Promise.resolve(!0);let l=Date.now();return new Promise(m=>{let h=!1,E=b=>{h||(h=!0,clearTimeout(o),m(b))},n=()=>{if(!h){if(R().blockeditor?.ai)return E(!0);if(Date.now()-l>=t)return E(!1);setTimeout(n,50)}},o=setTimeout(()=>E(!1),t);Promise.resolve(e.ready).catch(()=>null).then(n,n)})}function Le({addItem:t,note:e,currentMode:l}){let m=new Map,h=null;async function E(a,i){if(l()==="edit")return i();let x=Ce();x&&x.set(z,a);let w;try{w=await R().setMode?.("edit")}catch(T){w={ok:!1,message:T&&T.message}}if(!(w&&w.ok!==!1&&w.reloading)){if(x&&x.remove(z),!w||w.ok===!1){let T=w?I(w):"Couldn't switch modes.";T&&e(T);return}return i()}}function n(a,i){return m.set(a,i),h===a&&(h=null,l()==="edit"&&i()),()=>E(a,i)}let o={canUndo:!1,canRedo:!1},b=!1,s=()=>B("blockeditor")&&R().blockeditor?.history?R().blockeditor.history:B("undo")?R().undo:null;function d(){if(!B("blockeditor")&&!B("undo"))return;let a=l()==="edit"&&s();!b&&a&&typeof a.canUndo=="boolean"&&(o={canUndo:a.canUndo,canRedo:!!a.canRedo}),t({id:"clay.undo",pair:[{id:"clay.undo.undo",label:"Undo",keys:G("\u2318Z","Ctrl+Z"),disabled:!(a&&o.canUndo),run:()=>s()?.undo()},{id:"clay.undo.redo",label:"Redo",keys:G("\u2318\u21E7Z","Ctrl+Shift+Z"),disabled:!(a&&o.canRedo),run:()=>s()?.redo()}]})}document.addEventListener("clay:undo-change",a=>{let i=a.detail||{};b=!0,o={canUndo:!!i.canUndo,canRedo:!!i.canRedo},d()}),document.addEventListener("clay:modechange",d),d(),B("ai-edit")&&(async()=>{let a=R().aiEdit||(l()==="edit"?await se(()=>R().aiEdit):null);if(a?.available){if(!await a.available())return}else if(!a&&B("blockeditor")){let i=await ue();if(!(Array.isArray(i.document?.helpers)&&i.document.helpers.some(w=>w&&w.name==="ai-edit"&&(w.state==="ready"||w.state==="unavailable"))))return}t({id:"clay.ai",label:"Ask AI to improve this page",keys:G("\u2318J","Ctrl+J"),run:n("ai",async()=>{let i=await se(()=>R().aiEdit);(i&&(B("blockeditor")||R().blockeditor)?await Ie():!!i)&&await i.pick()||e("Ask AI isn't available on this page right now.")})})})(),B("cms")&&R().cms?.hasRules?.(document)&&t({id:"clay.cms",label:"Open the CMS (Edit content)",run:n("cms",async()=>{let a=await se(()=>R().cms),i=null;try{i=a?await a.open():{ok:!1}}catch{i={ok:!1}}i&&i.ok===!1&&e("Couldn't open the CMS. Try again.")})});let $=/<script\b[^>]*>[\s\S]*?<\/script>\n?/gi,A=a=>{let i=a.slice(0,a.indexOf(">")+1);return/\bmerge="blockeditor(?:\.\d+)?"/.test(i)&&/\bclay="[^"]*\blive\b/.test(i)},P=a=>/<article\b[^>]*\bdata-blockeditor\b/.test(a)?a.replace($,i=>A(i)?"":i):a;t({id:"clay.download",label:"Download a copy",run:async()=>{let a=null;try{if(typeof R().getHTML=="function")a=R().getHTML();else{let i=await fetch(location.href,{cache:"no-store",credentials:"same-origin"});i.ok&&(a=await i.text())}}catch{}typeof a=="string"&&/^https?:$/.test(location.protocol)&&(a=P(a),a=a.replace(/(^|[^\w./:-])\/_\/uploads\//g,`$1${location.origin}/_/uploads/`)),(typeof a!="string"||!await me({html:a,name:`${de()}.html`}))&&e("Couldn't build the download. Try again.")}});async function N(a){let i=null;try{let x=await fetch(a,{method:"POST",credentials:"same-origin",headers:{"Document-URL":location.href}});if(i=await x.json().catch(()=>null),x.ok&&i?.ok!==!1){typeof i?.href=="string"&&window.open(i.href,"_blank","noopener");return}}catch{}e(typeof i?.message=="string"&&i.message?i.message:"Couldn't do that. Try again.")}let M=(a,i,x)=>{x?.href?t({id:a,label:i,href:x.href}):x?.post&&t({id:a,label:i,run:()=>N(x.post)})};import("../c-B7GOFGQR.js").then(({hostActions:a})=>a()).then(a=>{M("clay.code","Open the code editor",a.codeEditor),M("clay.duplicate","Duplicate as a new page",a.duplicate),M("clay.export","Export as zip",a.export),M("clay.reveal",we(),a.reveal),M("clay.versions","Version history\u2026",a.versions)}).catch(()=>{});let g=Ce(),q=g&&g.get(z);if(q){g.remove(z);let a=m.get(q);a&&l()==="edit"?a():a||(h=q)}return{inEditMode:E,resumable:n,refresh:d}}var Ke='<svg viewBox="0 0 256 256" aria-hidden="true" focusable="false"><path d="M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128 50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z"/></svg>',We=3,X=(t,e,l)=>`${t} ${t===1?e:l}`;function re(t){let e=document.createElement("span");e.className="clay-avatar",e.setAttribute("aria-hidden","true");let l=pe(t.id);return e.style.setProperty("color",l),e.style.setProperty("border-color",l),e.style.setProperty("background","var(--bevel-surface)"),e.textContent=ye(t.name),e}function Re({root:t,capsule:e,addItem:l,removeItem:m,closeMenu:h,note:E}){let n={supported:!1,people:[],anonymous:0},o=null,b=null,s=null,d=!1,$=()=>window.clay&&window.clay.people,A=()=>window.clay&&window.clay.me||null,P=()=>{try{return!!$()?.canRename?.()}catch{return!1}},N=()=>n.people.length+n.anonymous,M=()=>document.documentElement.hasAttribute("clay-menu-roster");function g({restore:y=!0}={}){o&&(o.remove(),o=null,d=!1,s?.setAttribute("aria-expanded","false"),y&&b&&b.isConnected&&b.focus(),b=null)}function q(){let y=A();if(!y||!y.name)return null;let f=document.createElement("div");f.className="clay-people-me";let S=document.createElement("span");S.className="clay-people-me-label",S.textContent="Your edits are signed as";let k=document.createElement("div");if(k.className="clay-people-me-row",f.append(S,k),d){let p=document.createElement("input");p.className="clay-people-input",p.type="text",p.value=y.name,p.setAttribute("aria-label","Your name"),p.maxLength=120;let v=document.createElement("button");v.type="button",v.className="clay-menu-btn clay-menu-btn-small clay-menu-btn-primary",v.textContent="Save";let L=()=>{try{$().rename(p.value)}catch(O){E(O&&O.code==="not-renamable"?"This name comes from your account, so it can't be changed here.":"Use a name of 1 to 120 characters that isn't an email address."),p.focus();return}d=!1,a(),o?.querySelector(".clay-people-me .clay-menu-btn")?.focus()};v.addEventListener("click",L),p.addEventListener("keydown",O=>{O.key==="Enter"&&(O.preventDefault(),L())}),k.append(p,v),queueMicrotask(()=>{p.isConnected&&(p.focus(),p.select())})}else{let p=document.createElement("span");if(p.className="clay-people-me-name",p.textContent=y.name,k.append(re(y),p),P()){let v=document.createElement("button");v.type="button",v.className="clay-menu-btn clay-menu-btn-small",v.textContent="Change",v.addEventListener("click",()=>{d=!0,a()}),k.append(v)}}return f}function a(){if(!o)return;let y=N();o.textContent="";let f=document.createElement("div");f.className="clay-people-head";let S=document.createElement("h3");S.className="clay-people-title",S.textContent="Who's here";let k=document.createElement("span");k.className="clay-people-sum",k.textContent=X(y,"person","people");let p=document.createElement("button");if(p.type="button",p.className="clay-people-close",p.setAttribute("aria-label","Close"),p.innerHTML=Ke,p.addEventListener("click",()=>g()),f.append(S,k,p),o.append(f),n.people.length){let L=document.createElement("ul");L.className="clay-people-list";for(let O of n.people){let u=document.createElement("li");u.className="clay-people-row";let r=document.createElement("span");r.className="clay-people-who";let c=document.createElement("strong");if(c.textContent=O.name,O.you){let C=document.createElement("span");C.textContent="(you)",c.append(C)}r.append(c),u.append(re(O),r),L.append(u)}o.append(L)}if(n.anonymous>0){let L=document.createElement("p");L.className="clay-people-anon",L.textContent=n.anonymous===1?"1 other person is here without a shared name.":`${n.anonymous} others are here without a shared name.`,o.append(L)}let v=q();v&&o.append(v)}function i(y){if(h(),o){g();return}b=y,o=document.createElement("div"),o.className="clay-people",o.setAttribute("role","dialog"),o.setAttribute("aria-label","Who's here"),o.addEventListener("keydown",f=>{f.key==="Escape"&&(f.preventDefault(),f.stopPropagation(),d?(d=!1,a(),o.querySelector(".clay-people-me .clay-menu-btn")?.focus()):g())}),a(),t.append(o),s?.setAttribute("aria-expanded",y===s?"true":"false"),o.querySelector(".clay-people-close").focus()}function x(){if(!(M()&&n.supported&&N()>1)){s?.remove(),s=null;return}s||(s=document.createElement("button"),s.type="button",s.className="clay-roster",s.setAttribute("aria-haspopup","dialog"),s.setAttribute("aria-expanded",o?"true":"false"),s.addEventListener("click",()=>i(s)),t.insertBefore(s,e));let f=n.people.slice(0,We),S=N()-f.length,k=document.createElement("span");k.className="clay-roster-faces";for(let v of f)k.append(re(v));s.textContent="",s.append(k),S>0&&s.append(X(S,"other","others"));let p=f.map(v=>v.name);s.setAttribute("aria-label",`Who's here: ${p.join(", ")}${S>0?`${p.length?" and ":""}${X(S,"other","others")}`:""}`)}let w=null;function T(){let y=N();if(n.supported&&(y>1||P())){let f=y>1?`Who's here (${X(y,"person","people")})`:"Who's here";f!==w&&(w=f,l({id:"clay.people",label:f,run:()=>i(e.querySelector(".clay-menu-goo"))}))}else w!==null&&m("clay.people"),w=null,g({restore:!1});if(x(),o&&!d){let f=t.getRootNode().activeElement,S=f&&o.contains(f)?f.classList[0]:null;a(),S&&o.querySelector(`.${S}`)?.focus()}}return document.addEventListener("click",y=>{o&&!y.composedPath().includes(t)&&g({restore:!1})}),document.addEventListener("clay:people",()=>{d||T()}),import("../c-APGHGDZM.js").then(({presence:y})=>{y.subscribe(f=>{n=f||n,T()})}).catch(()=>{}),{close:g}}var Z="variants-choose",je="Change the page look",Ge="Keep one page look",Ve='<svg viewBox="0 0 6 10" aria-hidden="true" focusable="false"><rect x="4" width="2" height="2"/><rect x="2" y="2" width="2" height="2"/><rect y="4" width="2" height="2"/><rect x="2" y="6" width="2" height="2"/><rect x="4" y="8" width="2" height="2"/></svg>',ze='<svg viewBox="0 0 6 10" aria-hidden="true" focusable="false"><rect width="2" height="2"/><rect x="2" y="2" width="2" height="2"/><rect x="4" y="4" width="2" height="2"/><rect x="2" y="6" width="2" height="2"/><rect y="8" width="2" height="2"/></svg>',U=()=>D().map(_),j=t=>{let e=D().find(l=>_(l)===t);return e?ge(e):`Variant ${t}`};function H(){let t=D(),e=t.find(l=>l.getAttribute("media")!==W);return e?_(e):t.length?_(t[0]):null}function Pe(t,e){let l=window.clay&&window.clay.undo;l&&typeof l.commit=="function"?l.commit(t,e):e(),!document.documentElement.hasAttribute("autosave")&&typeof window.clay?.save=="function"&&window.clay.save()}async function Xe(){let t=await import("../core/save-6HT2LABE.js");for(;!t.baselineSettled();)await new Promise(e=>document.addEventListener("clay:baseline-settled",e,{once:!0}))}function Ze(t){let e=t.map(j);return e.length<2?e.join(""):`${e.slice(0,-1).join(", ")} and ${e[e.length-1]}`}function Ne({root:t,capsule:e,addItem:l,removeItem:m,note:h,currentMode:E}){ve();let n=null,o=null,b=null,s=null,d=null,$=!!document.querySelector("[clay-menu-slot]")?.hasAttribute("clay-menu-looks"),A=()=>E()==="edit",P=()=>n??H(),N=()=>window.clay&&window.clay.storage&&window.clay.storage.session;function M(){let u=H();n!==null&&n===u&&(n=null),b?.remove(),b=null;for(let c of D()){if(!c.sheet)continue;let C=c.getAttribute("media")!==W;c.sheet.disabled=C&&(_(c)!==u||n!==null)}if(n===null)return;let r=D().find(c=>_(c)===n);if(!r)return n=null,M();b=document.createElement("style"),b.setAttribute("clay","editor-ui"),b.dataset.clayVariantPreview=n,b.textContent=r.textContent,r.after(b)}function g(){document.dispatchEvent(new CustomEvent("clay:variant-change",{detail:{active:H(),shown:P()}}))}function q(u){return A()?U().includes(u)?(o=n=null,Pe(je,()=>{V(u);for(let r of D())_(r)===u?r.removeAttribute("media"):r.getAttribute("media")!==W&&r.setAttribute("media",W)}),k(),{ok:!0}):{ok:!1,code:"unknown-variant"}:{ok:!1,code:"not-editing"}}function a(u){return u!==null&&!U().includes(u)?{ok:!1,code:"unknown-variant"}:(n=u,k(),{ok:!0})}function i(u){o=n=null,Pe(Ge,()=>{V(u);for(let r of D())_(r)===u?(r.removeAttribute("clay-variant"),r.removeAttribute("media"),r.sheet&&(r.sheet.disabled=!1)):r.remove()}),k()}function x(){if(!A())return Promise.resolve({ok:!1,code:"not-editing"});let u=H(),r=U().filter(C=>C!==u);if(!r.length)return Promise.resolve({ok:!1,code:"unknown-variant"});let c=`Keep ${j(u)} and delete ${Ze(r)}? The switcher goes away. Version history still has them.`;return import("../c-FYDKYW6E.js").then(C=>C.consent(c)).then(()=>(i(u),{ok:!0}),()=>({ok:!1,code:"cancelled"}))}async function w(){let u=n,r=window.clay;if(u===null||!r||typeof r.setMode!="function")return;N()?.set(Z,u);let c;try{c=await r.setMode("edit")}catch(C){c={ok:!1,message:C&&C.message}}if(!(c&&c.reloading)&&c&&c.ok===!1){N()?.remove(Z);let C=I(c);C&&h(C)}}async function T(){let u=N(),r=u?.get(Z);r!=null&&(u.remove(Z),!(!A()||!U().includes(r))&&(o=n=r,k(),await Xe(),!(o!==r||!L())&&(o=null,A()&&U().includes(r)&&q(r))))}function y(u){let r=U(),c=r[(r.indexOf(P())+u+r.length)%r.length];A()?q(c):a(c)}function f(){let u=document.createElement("div");u.className="clay-variants",u.setAttribute("role","group"),u.setAttribute("aria-label","Page look"),u.innerHTML=`<button type="button" class="clay-variants-step" data-step="-1" aria-label="Previous look">${Ve}</button><span class="clay-variants-name" aria-live="polite"></span><button type="button" class="clay-variants-step" data-step="1" aria-label="Next look">${ze}</button><button type="button" class="clay-menu-btn clay-menu-btn-small clay-menu-btn-primary clay-variants-use" hidden>Use this look</button><button type="button" class="clay-menu-btn clay-menu-btn-small clay-variants-keep" hidden>Keep</button>`;for(let r of u.querySelectorAll(".clay-variants-step"))r.addEventListener("click",()=>y(Number(r.dataset.step)));return u.querySelector(".clay-variants-use").addEventListener("click",w),u.querySelector(".clay-variants-keep").addEventListener("click",()=>x()),u}function S(){let u=U();if(d=p(),u.length<2){s?.remove(),s=null,m("clay.look"),m("clay.look.use");return}if(t.hasAttribute("data-embedded")){let J=P();$?l({id:"clay.look",section:"start",stepper:{label:"Theme:",value:j(J),prev:()=>y(-1),next:()=>y(1),prevLabel:"Previous theme",nextLabel:"Next theme"}}):m("clay.look"),!A()&&n!==null?l({id:"clay.look.use",section:"start",label:"Use this look",run:w}):m("clay.look.use");return}s||(s=f()),s.isConnected||t.insertBefore(s,t.querySelector(".clay-roster")??e);let r=P(),c=s.querySelector(".clay-variants-name");c.textContent=`${j(r)} `;let C=document.createElement("small");C.textContent=`(${u.indexOf(r)+1}/${u.length})`,c.append(C),s.querySelector(".clay-variants-use").hidden=A()||n===null,s.querySelector(".clay-variants-keep").hidden=!A()}function k(){M(),S(),g()}let p=()=>`${U().join(",")}|${H()}|${P()}`,v=null,L=()=>window.clay?.variants===v;document.addEventListener("clay:modechange",()=>{L()&&(A()?(n=o,T()):o=null,k())});let O=()=>{document.documentElement.hasAttribute("look")&&U().length>1&&V(H())};document.addEventListener("clay:sync-applied",()=>{L()&&(O(),k())}),document.addEventListener("clay:undo-change",()=>{!L()||p()===d||(O(),k())}),v=window.clay.variants={list:()=>{let u=H();return U().map(r=>({name:r,label:j(r),active:r===u}))},get active(){return H()},get shown(){return P()},preview:a,choose:q,keep:x},U().length>=2&&(A()&&T(),k())}var Je="[clay-menu-item]:not([cms-template])",$e=()=>window.clay?.mode==="edit"||window.clay?.mode==="draft";async function Qe(t){if(await window.clay?.ready,!$e()||!t.isConnected)return!1;let e=window.clay?.undo;return e&&typeof e.commit=="function"?e.commit("Remove this item",()=>t.remove()):t.remove(),window.clay?.save?.soon?.(),!0}function Te({addItem:t,removeItem:e,beforeOpen:l}){let m=new Set;function h(){let E=new Set;for(let n of document.querySelectorAll(Je)){let o=n.getAttribute("data-id")||n.id;if(!o){console.warn("[clay] A clay-menu-item needs a data-id or an id.",n);continue}let b=`dom.${o}`;E.add(b);let s=n.getAttribute("clay-menu-dismiss");t({id:b,label:n.textContent.trim(),href:n.getAttribute("href")||"",section:n.getAttribute("clay-menu-section")||void 0,quiet:n.hasAttribute("clay-menu-quiet"),run:n.hasAttribute("href")?null:()=>n.click(),dismiss:s&&$e()?{label:s,run:()=>Qe(n)}:void 0})}for(let n of m)E.has(n)||e(n);m.clear();for(let n of E)m.add(n)}l.push(h);for(let E of["clay:drafts-restored","clay:sync-applied","clay:modechange"])document.addEventListener(E,h);h()}var et=!0,tt=12,nt='<svg viewBox="0 0 6 12" aria-hidden="true" focusable="false"><rect width="2" height="2"/><rect x="4" width="2" height="2"/><rect y="5" width="2" height="2"/><rect x="4" y="5" width="2" height="2"/><rect y="10" width="2" height="2"/><rect x="4" y="10" width="2" height="2"/></svg>',ot=[["clay.undo","clay.cms","clay.ai","clay.code"],["seo","clay.share","clay.people"],["clay.duplicate","clay.download","clay.export","clay.reveal"],["clay.versions"],null,["clay.mode"],["upgrade"]],F=()=>window.clay&&typeof window.clay.mode=="string"?window.clay.mode:le;function at(){if(document.querySelector('clay-editor-ui[data-clay-ui="menu"]'))return;let t=ke({sections:ot,capsuleStart:`<button type="button" class="clay-menu-grip" aria-label="Move the menu. Drag it, or use the arrow keys to move it to another corner.">${nt}</button><button type="button" class="clay-menu-edit" part="edit" role="switch" aria-checked="false">`+Ee+'<span class="clay-menu-label">Edit</span></button><span class="clay-menu-divider" aria-hidden="true"></span>'}),{root:e,goo:l,slot:m,embedded:h,skin:E,addItem:n,removeItem:o,open:b,close:s,note:d,beforeOpen:$,focusedEl:A,mount:P}=t,N=h&&m.hasAttribute("no-edit-switch"),M=e.querySelector(".clay-menu-grip"),g=e.querySelector(".clay-menu-edit");h&&(M.hidden=!0,N&&(g.hidden=!0,e.querySelector(".clay-menu-divider").hidden=!0));let q=null,a=null;$.push(()=>{a?.close({restore:!1}),q?.refresh()});let i=!1,x=()=>{e.hidden=!ee&&F()!=="edit"};function w(){g.setAttribute("aria-checked",F()==="edit"?"true":"false"),N&&n({id:"clay.mode",label:"Edit mode",toggle:!0,checked:F()==="edit",run:()=>g.click()})}w(),document.addEventListener("clay:modechange",w),g.addEventListener("click",async()=>{if(i)return;let c=g.getAttribute("aria-checked"),C=A()===g,J=F()==="edit"?"view":"edit";i=!0,g.setAttribute("aria-busy","true"),g.disabled=!0;let Y;try{Y=await window.clay?.setMode?.(J)}catch(K){Y={ok:!1,message:K&&K.message}}if(!(Y&&Y.reloading))if(i=!1,g.removeAttribute("aria-busy"),g.disabled=!1,C&&g.isConnected&&!A()&&document.activeElement===document.body&&g.focus(),Y&&Y.ok===!1){g.setAttribute("aria-checked",c);let K=I(Y);K&&d(K)}else w()});let T=document,y=null,f=null;function S(c){e.dataset.corner.startsWith("top")?e.style.top=`${Math.round(c.getBoundingClientRect().bottom)+tt}px`:e.style.removeProperty("top")}let k=()=>{f?S(f):e.style.removeProperty("top")};function p(){if(!e.isConnected)return;let c=T.querySelector(".clay-intro");if(c!==f){if(y&&(y.disconnect(),y=null),f=c,!c){e.style.removeProperty("top");return}typeof ResizeObserver=="function"&&(y=new ResizeObserver(()=>S(c)),y.observe(c)),S(c)}}let v=document.createElement("style");v.id="clay-menu-vars",v.setAttribute("clay","editor-ui"),document.head.append(v);function L(){let c=e.getBoundingClientRect();v.textContent=`:root { --clay-menu-width: ${Math.ceil(c.width)}px; --clay-menu-height: ${Math.ceil(c.height)}px; }`}let u=P(h?[te,ae,E??ne,oe]:[te,ae,be,ne,oe]);h||(Se({dock:e,container:u.shadow,grip:M,storage:window.clay.storage&&window.clay.storage.local,onMove:k,onDragStart:()=>{s(),a?.close({restore:!1})}}),L(),typeof ResizeObserver=="function"&&new ResizeObserver(L).observe(e),new MutationObserver(p).observe(T.body,{childList:!0}),p()),E||fe(e,e.querySelector(".clay-menu"),he);let r=()=>import("../c-HDVH3MVC.js").then(c=>c.open({returnFocus:l}));if(q=Le({addItem:n,note:d,currentMode:F}),a=Re({root:e,capsule:e.querySelector(".clay-menu"),addItem:n,removeItem:o,closeMenu:s,note:d}),Ne({root:e,capsule:e.querySelector(".clay-menu"),addItem:n,removeItem:o,note:d,currentMode:F}),Te({addItem:n,removeItem:o,beforeOpen:$}),et){n({id:"seo",label:"SEO settings\u2026",run:r});let c=window.clay.storage&&window.clay.storage.session;c&&c.get("reopen-seo")===!0&&(c.remove("reopen-seo"),r().catch(()=>{}))}qe=x,F()!=="edit"&&import("../core/host-permission-X4BENZEU.js").then(c=>c.checkHostPermission()).catch(()=>{}),window.clay.menu={addItem:n,removeItem:o,open:b,close:s,note:d,embedded:h,button:l},document.dispatchEvent(new CustomEvent("clay:menu-ready"))}var Me=!1,qe=null,st=()=>(ee||ie)&&!Q;function Oe(){Me||!st()||(Me=!0,at())}Q||(ce(Oe),document.addEventListener("clay:capabilitychange",()=>{Oe(),qe?.()}));
@@ -0,0 +1,2 @@
1
+ import{a as jt}from"../c-VPXCXBDT.js";import{a as Tt,b as At,c as Et}from"../c-6RGEQNVV.js";import{e as ue}from"../c-Z6MROEQ4.js";import{a as St}from"../c-Q26XHBLQ.js";import{c as kt}from"../c-FSQXFG5T.js";import"../c-RETTCOWO.js";import{a as Ie,b as G,d as E}from"../c-WCG6AKA7.js";import{a as Oe,b as Pe}from"../c-RHMPKZZ7.js";import{a as Rt}from"../c-L4WQSC27.js";import{d as pt,e as gt,i as yt,j as De,n as _,o as ht,q as ie,r as mt,s as wt,t as Fe,u as vt,v as bt}from"../c-7CM4GMTS.js";import"../c-JKZJIUIP.js";import{a as ce}from"../c-TCCA5BZN.js";import{k as Le}from"../c-3LDGIBMN.js";import"../c-57XDY6HC.js";import"../c-LZJPNR2W.js";import{b as ft}from"../c-QTTJYJMA.js";import{a as lt}from"../c-NUHP2XDB.js";import{B as ut,F as dt,d as xe,e as ct,f as le,h as it,n as Ce,o as se}from"../c-HTLYXCUH.js";import"../c-4ASQPRQL.js";import"../c-GQ6F6IDK.js";import{a as st}from"../c-I2SCCUEW.js";import"../c-5VYOWDTI.js";import"../c-6Q6RGFBF.js";import"../c-SKMIR5HQ.js";import"../c-WYFDLITL.js";import"../c-UGHH4MB3.js";import{a as Y}from"../c-LA2BW7UY.js";import{d as ne}from"../c-MFOSMAVM.js";import{a as at}from"../c-LD6UVV5R.js";import"../c-PGSBXHUE.js";import{a as Re,c as nt,d as je}from"../c-6IJEVE6B.js";import{d as Ee}from"../c-QQFHEODI.js";import"../c-IJUK2GPW.js";import{b as x,k as ot}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.js";import{E as W}from"../c-PWJSJEJU.js";import"../c-XQXZAO7N.js";import"../c-S7LK4KUE.js";import"../c-VG5XIN4T.js";import"../c-2YYDMLNZ.js";import"../c-HA6INT6J.js";import"../c-ICMAOOGK.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var Tr=Object.freeze({"blockeditor-converting":"retrying","blockeditor-capacity":"retrying",busy:"retrying","rate-limited":"retrying",offline:"retrying",network:"retrying","network-error":"retrying",timeout:"retrying","save-history-pending":"retrying","blockeditor-condition-required":"blocked","blockeditor-conversion-refused":"blocked","blockeditor-conversion-required":"blocked","blockeditor-conversion-stale":"blocked","save-id-reused":"blocked","too-large":"blocked","unsupported-host":"blocked","save-history-refresh-required":"blocked","provenance-unsupported":"blocked","receipt-expired":"blocked","blockeditor-full":"blocked","compaction-failed":"blocked"}),Ot=({unavailable:e,pending:t,journaled:o,acknowledged:a,checkpointed:n}={})=>e?"unavailable":t>0?"pending":o>0?"journaled":a>0?"acknowledged":n?"checkpointed":null,de="Can't save here. Your edits are still in this tab.",fe="Still trying to save. Your edits are safe in this tab.";function U({ok:e=!1,code:t=null,offline:o=!1}={}){return e?"saved":o?"retrying":Tr[t]??"error"}function Pt(e){let t;try{t=new DOMParser().parseFromString(e,"text/html")}catch{return e}let o=[...t.querySelectorAll('script[type="application/json"][merge="blockeditor"][clay~="live"]')].filter(d=>!d.closest("template")&&!d.closest("noscript"));if(o.length!==1)return e;let a=o[0].outerHTML,n=e.indexOf(a);return n<0||e.indexOf(a,n+1)!==-1?e:e.slice(0,n)+e.slice(n+a.length)}async function pe(){let{forSave:e}=W({emitForSync:!1});return await Pe({html:Pt(e),name:`${Oe()}.html`})}async function He(e){return await Pe({html:Pt(e),name:`${Oe()}.html`})}async function It(){try{let{forSave:e}=W({emitForSync:!1}),o=new DOMParser().parseFromString(e,"text/html").querySelectorAll("article[data-blockeditor]");return o.length!==1?!1:(await navigator.clipboard.writeText(o[0].textContent),!0)}catch{return!1}}var xt="clay.page.author",_e="clay.page.author.owned.",Ct=()=>globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;function Lt(e=globalThis.localStorage){try{let t=[];for(let a=0;a<e.length;a++){let n=e.key(a);n&&n.startsWith(_e)&&t.push(n.slice(_e.length))}let o=e.getItem(xt);return(!o||!t.includes(o))&&(o=Ct(),e.setItem(_e+o,"1"),e.setItem(xt,o),t.push(o)),{token:o,owned:t.sort()}}catch{let t=Ct();return{token:t,owned:[t]}}}var P=Object.freeze({loading:"loading",joining:"joining",adopting:"adopting",ready:"ready",blocked:"blocked",error:"error"}),Ar=new Set([P.ready,P.blocked,P.error]),Dt=0,Ht=()=>globalThis.performance?.now?.()??Date.now();function _t({gen:e=0,isCurrent:t=()=>!0,onPhase:o=null}={}){return Dt+=1,{installId:Dt,gen:e,isCurrent:t,onPhase:typeof o=="function"?o:null,phase:P.loading,result:null,at:Ht(),controller:new AbortController,disposers:[],disposed:!1,steps:null,deferred:null}}function p(e){return!e.disposed&&!e.controller.signal.aborted&&e.isCurrent()!==!1}function Ne(e,t){return p(e)&&!!t?.view&&e.mounted===t.view}function N(e,t,o=null){if(Ar.has(e.phase)&&e.result)return e.result;e.phase=t,e.at=Ht(),e.result=Object.freeze({phase:t,reason:o??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 Me(e,t){let o=N(e,P.blocked,t);return e.editorReadyResolve?.(),o}function Nt(e,t){return N(e,P.error,t)}function C(e,t){return typeof t=="function"&&e.disposers.push(t),t}function qe(e){if(e.disposed)return;e.disposed=!0,e.mounted=null;try{e.controller.abort()}catch(o){console.error("clayjs: page boot abort failed",o)}let t=e.disposers.splice(0).reverse();for(let o of t)try{o()}catch(a){console.error("clayjs: a page boot disposer failed",a)}}function ge(e,t){let o=globalThis.performance;if(typeof o?.mark=="function")try{o.mark(e,{detail:{installId:t.installId}})}catch{try{o.mark(e)}catch{return}}}function Er(e,t){try{t.release?.(e)}catch(o){console.error("clayjs: page boot release failed",o)}}function X(e,t,o){return t.cancelled?null:(Er(e,o),Me(e,t.reason??"boot-incomplete"))}function Ft(e,t,o,a=null){return Promise.resolve(e).then(n=>n??{ok:!1,reason:o},n=>(console.error(`clayjs: page boot ${o}`,n),{ok:!1,reason:o})).then(n=>(n.ok&&a&&p(t)&&ge(a,t),n))}function Rr(e,t){return new Promise(o=>{let a=e.controller.signal,n=!1,d=k=>{n||(n=!0,o(k))};if(a.aborted)return d({cancelled:!0});a.addEventListener("abort",()=>d({cancelled:!0}),{once:!0});let g=new Array(t.length),b=t.length;t.forEach((k,A)=>{k.then(R=>{if(!n){if(!R.ok)return d({result:R,branch:k});g[A]=R,b-=1,b===0&&d({results:g})}})})})}async function Mt(e,t,{activate:o=!0}={}){ge("document:boot",e),N(e,P.loading);let a=t.readSource(e);if(!p(e))return null;if(!a.ok)return Me(e,a.reason);let n=a.source;N(e,P.joining);let d=await Rr(e,[Ft(t.loadEditorAssets(e,n),e,"editor-assets-failed","document:assets-ready"),Ft(t.prepareAuthority(e,n),e,"authority-failed","document:authority-ready")]);if(d.cancelled||!p(e))return null;if(!d.results){try{e.controller.abort()}catch(L){console.error("clayjs: page boot abort failed",L)}return X(e,d.result,t)}let[g,b]=d.results,k=t.mountAndAttach(e,n,g,b);if(!p(e))return null;if(!k.ok)return X(e,k,t);e.mounted=k.view??null,N(e,P.adopting);let A=await t.adoptSource(e,n,k);if(!p(e))return null;if(!A.ok)return X(e,A,t);if(!o){if(t.prepareInput){let L=await t.prepareInput(e,k);if(!p(e))return null;if(!L.ok)return X(e,L,t)}return e.deferred=k,{phase:e.phase,view:k.view,deferred:!0}}let R=await t.enableInput(e,k);return p(e)?R.ok?(ge("document:input-ready",e),N(e,P.ready)):X(e,R,t):null}function qt(e){let t=e.deferred;if(e.deferred=null,!t||!p(e))return e.result??null;let o=e.steps?.openInput?.(e,t);return o?.ok?(ge("document:input-ready",e),N(e,P.ready)):Me(e,o?.reason??"input-refused")}var z="article[data-blockeditor]",K='script[type="application/json"][merge="blockeditor"][clay~="live"]',Vt={state:"blocked",code:"unsupported-host",message:"This host does not support page editing"},Ue="Changes cannot be stored on this device. Download a copy to keep them.",jr=45e3,Or="Couldn't save",Pr="Offline, will retry",Xt="This page was changed outside the editor. Reload to see it.",Ir="That change is too large to share, so it was not saved. Reload the page to keep editing.",zt="Download your copy to add pictures and files.",Bt=(e,t)=>Promise.resolve({ok:!1,code:"draft",msg:zt}),xr=/^[ur][0-9a-z]+(-[0-9a-z]+){2}$/,Wt="This document is full, though your changes are still here to download. To edit again, reload this tab after another editor, or the owner in another browser, deletes content.",Cr="Some changes you made were replaced by a change made outside the editor.",Kt="The page was changed outside the editor; reload to see it.",Lr=150,Dr="Loading the editor\u2026",$e="the page session has not committed yet",Gt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function Be(e){return Gt(e)?e.v!==1||!Gt(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-blockeditor-format"):null:(console.warn("clayjs: page plugin: the page tag is not JSON, leaving the page as saved HTML"),"invalid-blockeditor-json")}var q=null,Ut=null;function M(){return Ut??=import("../c-OCYG4NBQ.js").then(e=>q=e),Ut}function Fr(e){let t=new Set;return e.forEach(o=>{let a=Et(o);a&&t.add(a)}),[...t]}function V(e){e.statusTimer&&(clearTimeout(e.statusTimer),e.statusTimer=null),e.statusNote?.remove(),e.statusNote=null}function Hr(e,t){V(e),e.statusTimer=setTimeout(()=>{if(e.statusTimer=null,!p(e))return;let o=t.ownerDocument.createElement("div");o.className="blockeditor-boot-status",o.setAttribute("clay","editor-ui"),o.setAttribute("sap-ignore",""),o.setAttribute("role","status"),lt(o,["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"]),o.textContent=Dr,t.prepend(o),e.statusNote=o},Lr)}var we=0,S=null,he=null,_r=8e3,Nr=8e3,Mr="AI tool making isn't available on this page right now.";function qr(e,t){return new Promise(o=>{let a=Date.now(),n=()=>{let d=e();d||Date.now()-a>=t?o(d||null):setTimeout(n,50)};n()})}function Vr(e,t=globalThis.location){let o=t?.hash?.slice(1);if(!o)return;let a;try{a=decodeURIComponent(o)}catch{return}let n=-1;e.state.doc.forEach((d,g)=>{n<0&&d.attrs.id===a&&(n=g)}),!(n<0)&&globalThis.requestAnimationFrame?.(()=>e.nodeDOM(n)?.scrollIntoView?.({block:"start"}))}function Q(e,t=null,o=""){document.dispatchEvent(new CustomEvent("clay:blockeditor-save-state",{detail:{state:e,code:t,message:o}}))}function Qt(){E(Or),E(Pr)}function Zt(e){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),e.retryShown=!1,E(fe)}function Br(e,t,o){Qt(),Q("retrying",t,o),!(e.retryTimer||e.retryShown)&&(e.retryTimer=setTimeout(()=>{e.retryTimer=null,e.retryShown=!0,G(fe,"warning")},jr))}function er(e,t=!1){e.retryTimer&&(clearTimeout(e.retryTimer),e.retryTimer=null),E(fe,{now:t}),E(de,{now:t}),E(Ue,{now:t})}function Je(e,t,o,a="blocked"){Zt(e),Qt(),Q(a,t,o),G(a==="unavailable"?Ue:de,"error",{detail:o,actions:[{label:"Download copy",onClick:pe},{label:"Copy text",onClick:It}]})}function Wr(e){Zt(e),E(de),E(Ue),Q("saved",null,"")}function Gr(e,t,o=!1){if(typeof e!="string"||!e)return!1;let a;try{a=new DOMParser().parseFromString(e,"text/html")}catch{return!1}let n=a.querySelectorAll(z);return o?n.length!==1&&!a.querySelector(K):n.length!==1||a.querySelector(K)?!1:n[0].getAttribute("data-rev")!==t}function Ur(e){if(!e.store||!q)return e.savedRev;try{return q.renderFromTags([JSON.stringify(e.store.value)]).rev}catch{return e.savedRev}}function tr(e){let t=e.view;t&&(t.setProps({editable:()=>!1}),t.setProps({dispatchTransaction:o=>t.updateState(t.state.apply(o))}));try{e.binding?.dispose()}catch(o){console.error("clayjs: page plugin binding failed to dispose",o)}e.savesHeld||(e.savesHeld=!0,Ce(Kt))}async function $r(e){if(!e.tabValue)return await pe();let{forSave:t}=W({emitForSync:!1}),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelectorAll(z);if(a.length!==1)return await pe();let n=q.renderFromTags([JSON.stringify(e.tabValue)]);return a[0].innerHTML=n.html,n.rev==null?a[0].removeAttribute("data-rev"):a[0].setAttribute("data-rev",n.rev),await He(`<!DOCTYPE html>
2
+ ${o.documentElement.outerHTML}`)}function Ye(e,t,{reload:o=!0}={}){if(e.replaced)return;e.replaced=!0,tr(e);let a={label:"Download your copy",onClick:()=>$r(e)};G(t,"warning",{actions:o?[{label:"Reload",onClick:()=>window.location.reload()},a]:[a]})}var We=e=>Ye(e,Xt),Jr=e=>Ye(e,Ir),Yr=(e,t)=>{Q("blocked",t,Wt),Ye(e,Wt,{reload:!1})};function ye(e,t,o,a){t==="saved"?Wr(e):t==="retrying"?Br(e,o,a):t==="blocked"&&Je(e,o,a)}function I(e,t,o){document.addEventListener(t,o),e.listeners.push([t,o])}function rr(e){let t=e?.binding,o=t?.bridge?.um;if(!t||!o)return null;let a=()=>{let d=e.view;return!!(d&&!d.isDestroyed&&ue(d.state))},n=()=>e.view?.focus?.();return{undo:()=>{t.undo()&&n()},redo:()=>{t.redo()&&n()},get canUndo(){return o.undoStack.length>0&&!a()},get canRedo(){return o.redoStack.length>0&&!a()}}}function $t(e){let t=rr(e);document.dispatchEvent(new CustomEvent("clay:undo-change",{detail:{canUndo:!!t?.canUndo,canRedo:!!t?.canRedo}}))}function Xr(e){let t=(a,n)=>{n!=="error"&&xe(a),ye(e,n,a.detail?.code??null,a.detail?.msg??"")};I(e,"clay:save-error",a=>{let n=a.detail?.code??null;if(n==="blockeditor-nothing-to-write")return xe(a);t(a,U({code:n}))}),I(e,"clay:save-offline",a=>{t(a,U({code:a.detail?.code??null,offline:!0}))}),I(e,"clay:save-conflict",a=>{let n=a.detail?.code??null;ye(e,U({code:n}),n,a.detail?.msg??"")});let o=a=>{zr(e,a)};I(e,"clay:save-conflict",o),I(e,"clay:save-error",o),I(e,"clay:save-saved",a=>{ye(e,U({ok:!0}),null,a.detail?.msg??""),e.savedRev=Ur(e),e.adoption?.saved(ut())}),I(e,"clay:live-notice",a=>{if(a.detail?.name!=="blockeditor"||a.detail?.code==="op-too-large")return;if(a.detail?.code==="unknown-store"){We(e);return}let n=a.detail?.code??null;ye(e,U({code:n}),n,a.detail?.message??"")})}async function or(){if(x)return null;let e=await fetch(new URL(globalThis.location.href).href,{cache:"no-store"});if(!e?.ok)return null;let t=await e.text(),o=new DOMParser().parseFromString(t,"text/html"),a=o.querySelector(z);if(!a)return null;let n=o.querySelector(K),d=e.headers?.get?.("etag")||null,g=o.documentElement.getAttribute("documentetag")||(d&&!/^W\//.test(d)?d:null);return{article:a,value:n?ce(n.textContent):null,etag:g}}async function zr(e,t){let o=e.staged;if(!o||e.staleRetry||e.replaced)return;let a=t?.detail?.code??null;if(!(a!=="blockeditor-lineage-stale"&&a!=="conflict")&&!(!e.store||!o.isPending())){e.staleRetry=!0;try{let n=await or();if(!n||!p(e))return;let d=await M();if(!p(e))return;let g=n.value??d.seedPageFromArticle(n.article.cloneNode(!0)),b=n.etag??t?.detail?.etag??null;b&&nt(b),e.store.rebase(g,{source:"state"}),await dt()}catch(n){console.warn("clayjs: page plugin could not offer the refused first write again",n)}}}function Xe(e){let t=e.article;if(!t)return;let o=e.bootHtml,a=e.bootRev;if(e.store&&q)try{let n=q.renderFromTags([JSON.stringify(e.store.value)]);o=n.html,a=n.rev}catch(n){console.error("clayjs: page plugin could not render the saved article",n)}t.innerHTML=o,a==null?t.removeAttribute("data-rev"):t.setAttribute("data-rev",a)}function ze(e){for(let[t,o]of e.listeners)document.removeEventListener(t,o);e.listeners=[];try{e.adoption?.dispose()}catch(t){console.error("clayjs: page plugin adoption failed to dispose",t)}e.adoption=null;try{e.recover?.destroy()}catch(t){console.error("clayjs: page plugin recover list failed to dispose",t)}if(e.recover=null,e.awareness?.dispose(),e.awareness=null,e.toolHost?.dispose(),e.toolHost=null,e.view&&St.delete(e.view),e.article){let t=e.article.querySelector(".blockeditor-shell");t&&t.remove()}try{e.binding?.dispose()}catch(t){console.error("clayjs: page plugin binding failed to dispose",t)}try{e.binding?.ydoc?.destroy()}catch(t){console.error("clayjs: page plugin document failed to destroy",t)}try{e.staged?.close()}catch(t){console.error("clayjs: page plugin staged store failed to close",t)}if(e.staged=null,e.pageStore){try{ht("blockeditor",e.pageStore)}catch(t){console.error("clayjs: page plugin store failed to close",t)}e.pageStore=null}e.binding=null,e.flush=null,e.releaseArticle?.(),e.releaseArticle=null}function Jt(e){let t=e.view;if(t&&!t.isDestroyed&&typeof t.destroy=="function")try{t.destroy()}catch(o){console.error("clayjs: page plugin view failed to destroy",o)}e.titleObserver?.dispose(),e.titleObserver=null,V(e),ze(e),Xe(e)}function Ge(){we+=1;let e=S;if(S=null,ne("Blockeditor-Write",null),De(null),!!e){qe(e),er(e),E(Xt);for(let t of e.notices?.values()??[])E(t);if(e.savesHeld&&(e.savesHeld=!1,se({replay:!1,reason:Kt})),e.titleObserver?.dispose(),e.titleObserver=null,V(e),e.sessionHeld&&se({replay:!1,reason:$e}),e.autosaveSuspended&&le(),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}ze(e),Xe(e)}}var Ve=null;function Ke(){return Ve||(Ve=Promise.all([import("../c-XMIDHEKF.js"),import("../c-5FXEKU4Y.js"),import("../c-KQKKIVLW.js")]).then(([e,t,o])=>({replay:e,proof:t,ui:o})).catch(e=>(console.warn("clayjs: page journal could not load",e),null))),Ve}async function Kr(e,t){let o=globalThis.window?.clay?.recovery??null;if(x||!o||!t)return null;let a=await Ke();if(!a)return null;try{return a.replay.openPageJournal({meta:e,service:o,base:a.replay.journalBase(t.value)})}catch(n){return console.warn("clayjs: page journal could not open",n),null}}async function Yt(e){let t=e.binding?.journal;if(!t||!e.store)return{replayed:[],review:[]};let o=await Ke();if(!o)return{replayed:[],review:[]};let a=await o.replay.replayInto({journal:t,state:e.store.value,into:e.binding.ydoc});return eo(e,o),a.replayed.length&&e.binding.provider.settle(),a.review.length&&(e.recoveryReview=a.review),Qr(e,o.ui)?.update({rows:o.replay.describeReview(a.review)}),a}function Qr(e,t){if(e.recoveryPanel)return e.recoveryPanel;let o=e.view,a=o?.dom.closest(".blockeditor-shell")??e.article;if(!a)return null;let n=t.createRecoveryReview({mount:a,getView:()=>e.view&&!e.view.isDestroyed?e.view:null,getJournal:()=>e.binding?.journal??null,isCurrent:()=>p(e)&&e.inputOpen&&!!e.view&&!e.view.isDestroyed}),d=n.watch(o?.dom??null);return C(e,()=>{d(),n.destroy()}),e.recoveryPanel=n,n}function Zr(e){De(async({capture:t,state:o,article:a,etag:n})=>{let d=e.binding?.journal;if(!d)return;let g=await Ke(),b=g?await d.context():null;if(!b)return;let{hostPageStateHref:k}=await import("../c-B7GOFGQR.js"),A=await g.proof.checkpointAccepted({channel:d.channel,records:d.records(),capture:t,accepted:b,article:a,state:o,etag:n,href:await k()});A.ok&&(d.retire(A.retired),e.pageStatus?.checkpoint(),await d.rebase?.(g.replay.journalBase(A.proof.state)))})}function eo(e,t){let o=e.binding?.journal;return!o||e.pageStatus?e.pageStatus??null:(e.pageStatus=t.replay.watchJournal({journal:o,store:e.store,reduce:Ot,onState:a=>Q(a),onUnavailable:a=>Je(e,a,"","unavailable")}),C(e,()=>e.pageStatus?.dispose()),e.pageStatus)}function ar(e,t){if(Be(t))return!1;if(Le(e.authoritative)===Le(t))return!0;try{return e.rebase(t,{source:"state"})}catch(o){return console.warn("clayjs: page plugin could not reconcile the open page store with the saved file",o),!1}}function to(e,t){let o=null,a=null,n=null,d=null,g=null,b=null,k=null,A=[],R=null,L=null,$=null,Z=null,ee=null,cr=new Promise(r=>{d=r});e.editorReadyResolve=d,C(e,()=>d?.()),C(e,()=>V(e));let te=null,be=null;e.loadFormatGate=()=>te?Promise.resolve(te):(be??=Promise.all([import("../c-D7NT5S4F.js"),import("../c-ND3Q2G2I.js")]).then(([{createFormatGate:r},{createFormatHost:l}])=>{let s=l();return te=r({host:s,supported:s.supported,installed:()=>g?.token??null,revision:()=>null,lane:{switchScope:(c,f)=>{let u=wt();return u?u.switchScope(c,{...f,covered:!!f?.covered||!mt()}):{status:"refused",code:"lane-unavailable"}}}}),te}).catch(r=>{throw be=null,r}),be);let Qe='script[type="application/json"][merge="blockeditor.tools"][clay~="live"]',ir=()=>$||($=(async()=>{if(!document.querySelector(Qe)){let c=document.createElement("script");c.setAttribute("type","application/json"),c.setAttribute("merge","blockeditor.tools"),c.setAttribute("clay","live"),c.textContent="{}",document.head.appendChild(c)}if(document.querySelector(Qe))try{R=window.clay.live("blockeditor.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:r},{tablesFromDoc:l}]=await Promise.all([import("../c-FQAQRXGK.js"),import("../c-YNIEIPBS.js")]);if(!p(e))return null;let s=r({store:R,mode:"edit",tables:()=>l(n?.state.doc??a.doc()).map(({id:c,cols:f,rows:u})=>({id:c,cols:f,rows:u}))});return e.toolHost=s,s})().catch(r=>{throw $=null,r}),$),re='script[type="application/json"][merge="blockeditor.settings"][clay~="live"]',Ze=["assignees","dates"],B=null,ke={assignees:!0,dates:!0},oe=r=>({assignees:r?.assignees!==!1,dates:r?.dates!==!1});function ur(){let r=document.querySelector(re);if(!r)return oe(null);let l=null;try{l=JSON.parse(r.textContent)}catch{l=null}return oe(l)}function ae(r){ke=oe(r);let l=e.view&&!e.view.isDestroyed?e.view.dom:null;if(l)for(let s of Ze)ke[s]?l.removeAttribute(`data-${s}`):l.setAttribute(`data-${s}`,"false")}let Se=()=>B||(B=(async()=>{if(!document.querySelector(re)){let l=document.createElement("script");l.setAttribute("type","application/json"),l.setAttribute("merge","blockeditor.settings"),l.setAttribute("clay","live"),l.textContent="{}",document.head.appendChild(l)}let r=null;try{r=window.clay.live("blockeditor.settings"),await r.ready}catch(l){return console.warn("clayjs: page plugin could not open the settings store",l),B=null,null}return p(e)?(ae(r.data),r.on("change",()=>ae(r.data)),r):null})(),B);e.settings={read:()=>({...ke}),set:async(r,l)=>{if(!Ze.includes(r))throw new TypeError(`clayjs: "${r}" is not a page setting`);let s=await Se();if(!s)throw new Error("clayjs: the page settings store could not be opened");let c={...oe(s.data),[r]:l!==!1};s.set([r],c[r]),ae(c)}};let J=new Map,dr=r=>{if(J.has(r))return;let l=`The ${r} controls could not load. Reload the page after saving.`;J.set(r,l),G(l,"warning",{actions:[{label:"Retry",onClick:()=>{b.ensure(r).then(()=>{let s=J.get(r);s&&(J.delete(r),E(s))},()=>{})}}]})};e.notices=J;let Te=async({target:r=null,remove:l=null}={})=>{if(Z&&n&&l&&Z.holdSlashRange(n,l),await b.ensure("tool").catch(()=>{}),!p(e)||!n)return;let s=l?Z.heldSlashRange(n.state):null,c=await(L??Promise.resolve(null));if(!c||!p(e))return;let f=r?c.reviseTool(r.toolId):c.newTool(s),u=window.clay?.aiEdit||await qr(()=>window.clay?.aiEdit,Nr);if(p(e)){if(!u?.openTarget){Ie(Mr,"warning");return}u.openTarget(f)}},Ae=()=>jt(o);function fr(r){let l=document.querySelectorAll(z),s=typeof r.context?.represented?.bytes=="string"?new DOMParser().parseFromString(r.context.represented.bytes,"text/html"):null,c=s?s.querySelectorAll(z):l,f=s?s.querySelectorAll(K):document.querySelectorAll(K);if(!c.length&&!f.length)return{ok:!1,reason:"no-blockeditor"};let u=c.length===1&&f.length===0;if(c.length!==1||!u&&f.length!==1)return console.warn(`clayjs: page plugin needs exactly one article[data-blockeditor] and one merge="blockeditor" live tag; found ${c.length} article(s) and ${f.length} tag(s), leaving the page as saved HTML`),{ok:!1,reason:"ambiguous-blockeditor"};let w=l[0];if(!w)return{ok:!1,reason:"no-blockeditor"};let m=c[0],v=f[0],i=null;if(!u){try{i=ce(v?.textContent)}catch{i=null}let j=Be(i);if(j)return{ok:!1,reason:j}}let h={article:m.cloneNode(!0),tags:i?[i]:null,element:w,blocks:null,seeded:u,seedValue:null};return h.ready=(async()=>{let j=await M();if(!p(r))return{ok:!1,cancelled:!0};if(u){try{let y=await Ee(),O=y?.extensions?.includes("blockeditor-recovery-v1")&&y.document?.blockeditorState?.href,D=r.context?.represented?r.context.represented.etag:je()??Re();if(O&&D){let{readPageState:F}=await import("../c-5FXEKU4Y.js"),H=await F({href:O,etag:D});if(!p(r))return{ok:!1,cancelled:!0};if(H.ok){if(H.etag!==D)return{ok:!1,reason:"etag-mismatch"};i=ce(H.tag),h.persisted=!0}else if(H.code!=="no-blockeditor-state")return{ok:!1,reason:H.code}}else if(O){let F=await or();if(!p(r))return{ok:!1,cancelled:!0};if(!F||!F.article.isEqualNode(h.article))return{ok:!1,reason:"stale-document"};i=F.value,h.persisted=i!==null}i=h.seedValue=i??j.seedPageFromArticle(h.article.cloneNode(!0))}catch(y){return console.warn("clayjs: page plugin could not rebuild the page it found, leaving the page as saved HTML",y),{ok:!1,reason:"invalid-blockeditor-source"}}let T=Be(i);if(T)return{ok:!1,reason:T};h.tags=[i]}try{h.blocks=j.blocksFromYValue(i)}catch(T){return console.warn("clayjs: page plugin: the page tag is not a valid Yjs page, leaving the page as saved HTML",T),{ok:!1,reason:"invalid-blockeditor-json"}}return{ok:!0}})(),Hr(r,w),{ok:!0,source:h}}async function pr(r,l){let s=M();s.catch(()=>null);let c=await l.ready;if(!c.ok)return c;if(!p(r))return{ok:!1,cancelled:!0};let f=await s,u=[...new Set(Object.values(l.blocks).map(m=>At(m.t)).filter(Boolean))];b=f.createFeatureLoader({load:m=>Tt[m].load(),install:async(m,v)=>{if(n||await cr,!p(r)||!n)return null;let i={view:n,upload:x?Bt:t.upload,board:a.board,undo:a.undo,redo:a.redo,revise:Ae()?h=>{Te({target:{toolId:h}})}:null};return m==="tool"&&(i.toolHost=await ir(),!p(r))?null:w.installPageFeature(i,m,v)},reportError:(m,v)=>{console.error("clayjs: an editor feature failed to load",m),dr(v)}});for(let m of u)b.prepare(m).catch(()=>null);let w=null;try{w=await import("../page/editor-KAZDJNND.js"),ee=w.setEditorActive,Z={holdSlashRange:f.holdSlashRange,heldSlashRange:f.heldSlashRange}}catch(m){return console.error("clayjs: page plugin could not load the editor",m),{ok:!1,reason:"editor-assets-failed"}}return p(r)?{ok:!0,editor:w.createPageEditor,refreshView:w.refreshMountedView,featureIds:u,code:f}:{ok:!1,cancelled:!0}}async function gr(r,l){let s=M();try{o=x?{spec:null,extensions:["blockeditor"],document:null}:await Ee()}catch{o=null}if(!p(r))return{ok:!1,cancelled:!0};if(!o||!Array.isArray(o.extensions)||!o.extensions.includes("blockeditor"))return Je(r,Vt.code,Vt.message),{ok:!1,reason:"missing-capability"};r.mergeTagless=!o.extensions.includes("live-data"),ne("Blockeditor-Write","v1");let c=null,f=null;if(l.seeded){if(c=await l.ready,!c.ok)return c;if(f=await s,!p(r))return{ok:!1,cancelled:!0}}let u,w=!0;try{if(l.seeded){let y=yt("blockeditor",{value:l.seedValue,represented:t.represented??{bytes:l.article.outerHTML,etag:je()??Re()},persisted:l.persisted});r.staged=y,u=y.handle}else{let y=_("blockeditor")===null;w=y,u=window.clay.live("blockeditor"),y&&(r.pageStore=_("blockeditor"))}}catch(y){return console.warn("clayjs: page plugin could not open the page store",y),{ok:!1,reason:"missing-blockeditor-store"}}try{await u.ready}catch(y){return console.warn("clayjs: page plugin could not join the page room",y),{ok:!1,reason:"admission-failed"}}if(!p(r))return{ok:!1,cancelled:!0};if(c??=await l.ready,!c.ok)return c;let m=_("blockeditor")?.handle?.status?.mode==="fast";if(!w&&!m&&!ar(_("blockeditor"),l.tags?.[0]))return{ok:!1,reason:"stale-store"};if(f??=await s,!p(r))return{ok:!1,cancelled:!0};let v=_("blockeditor");if(!v)return{ok:!1,reason:"missing-blockeditor-store"};r.store=v;let i=!1,h=null,j=async y=>{let O=await y();return i=O?.ok===!1,h?.changed(),O};g=Lt();let T=await Kr(o,v);return p(r)?(a=f.createYPageBinding({store:v,onStopped:y=>{r.tabValue=f.yValueOf(a.ydoc),y==="lineage"?(ie()?.abandon?.("blockeditor"),We(r)):y==="blockeditor-full"||y==="compaction-failed"?Yr(r,y):Jr(r)},authorToken:g.token,ownedTokens:g.owned,checkpointWithin:Fe,requestCheckpoint:bt,requestExitCheckpoint:y=>vt({name:v.name,...y}),journal:T,exitClosed:()=>!it(),registerUnsavedState:y=>(h=st({id:y.id,isPending:()=>i||y.isPending(),flush:O=>j(()=>y.flush(O))}),h)}),r.binding=a,T&&Zr(r),r.flush=y=>j(()=>a.flush(y)),Xr(r),{ok:!0,store:v,handle:u}):{ok:!1,cancelled:!0}}function yr(r,l){import("../c-ZGCO4J3H.js").then(async s=>{if(r.view!==l)return;let c=await s.installPageAwareness({binding:r.binding,view:l});if(c){if(r.view!==l||l.isDestroyed){c.dispose();return}r.awareness=c}}).catch(s=>console.error("clayjs: page plugin remote carets failed to load",s))}function hr(r,l,s){let c=l.element;r.context?.reader?.yieldArticle?.();try{r.releaseArticle=Rt(c,"editor")}catch(i){return console.error("clayjs: page plugin could not claim the article",i),{ok:!1,reason:"article-owned"}}r.source=l,r.article=c,r.bootHtml=l.article.innerHTML,r.bootRev=l.article.getAttribute("data-rev"),r.savedRev=r.bootRev,I(r,"clay:sync-applied",i=>{r.replaced||Gr(i.detail?.html,r.savedRev,r.mergeTagless)&&We(r)}),A=[...c.childNodes].filter(i=>i!==r.statusNote);let f=c.ownerDocument.createElement("div"),u=null;try{u=s.editor(f,{doc:a.doc(),dispatch:a.dispatch,history:!1,undo:a.undo,redo:a.redo,board:a.board,editable:!1,features:b,upload:x?Bt:t.upload,onAiTool:Ae()?(i,h)=>{Te({remove:h})}:null,mediaNote:x?zt:null,reviseTool:Ae()?i=>{Te({target:{toolId:i}})}:null,formatGate:r.loadFormatGate})}catch(i){return console.error("clayjs: page plugin could not mount the editor",i),f.replaceChildren(),r.releaseArticle?.(),r.releaseArticle=null,r.article=null,{ok:!1,reason:"mount-failed"}}n=u,r.view=u,L=import("../c-ZKKAF4UT.js").then(({createPageAi:i})=>!p(r)||r.view!==u?null:(r.pageAi=i({getView:()=>r.view,store:()=>R,acceptState:t.acceptState}),r.pageAi)).catch(i=>(console.warn("clayjs: page plugin could not load the AI surface",i),null)),ae(ur()),document.querySelector(re)?Se().catch(()=>null):I(r,"clay:sync-applied",()=>{!B&&document.querySelector(re)&&Se().catch(()=>null)});let w=u.dom.closest(".blockeditor-shell");w&&(w.inert=!0),s.featureIds.length&&w&&(w.style.visibility="hidden"),Y.pause();try{if(!s.featureIds.length)for(let i of A)i.remove();w&&c.appendChild(w)}finally{Y.resume()}s.refreshView?.(u),a.attach(u);let m=a.bridge?.um;if(m){let i=()=>$t(r);m.on("stack-item-added",i),m.on("stack-item-popped",i),m.on("stack-cleared",i),C(r,()=>{m.off("stack-item-added",i),m.off("stack-item-popped",i),m.off("stack-cleared",i)}),i()}let v=ue(u.state);return C(r,kt(u,{update:i=>{let h=ue(i.state);h!==v&&(v=h,$t(r))}})),yr(r,u),d(),k=Promise.allSettled(s.featureIds.map(i=>b.ensure(i))),Vr(u),r.recover=s.code.createRecoverList({binding:a,mount:u.dom.closest(".blockeditor-shell")??c,ownTokens:[g.token,...g.owned],onRestored:i=>s.code.focusBlock(u,i),onStale:()=>Ie("That change was updated. The list now shows the latest version.","warning")}),r.titleObserver=s.code.observeDocumentTitle(u),{ok:!0,view:u,featureIds:s.featureIds}}async function mr(r,l){try{let s=await M(),{HyperMorph:c}=await ft(),f=s.blocksFromYValue(r.store.authoritative),u=s.readBack(f,document),w=s.mergePageModels(l.baseItems,u,l.parsed,{doc:document,merge3:c.merge3,mergeJson:c.mergeJson});return s.canon(w.items)===s.canon(u)}catch{return!1}}async function wr(r,l){let s=await M();return await mr(r,l)?{ok:!0,outcome:"writer-adopts"}:new Promise(c=>{let f=null,u=null,w=!1,m=v=>{w||(w=!0,u&&clearTimeout(u),u=null,f?.(),f=null,c(v))};C(r,()=>m({ok:!1,cancelled:!0})),f=r.store.onRebase(v=>{v.source==="remote"&&m({ok:!0,outcome:"writer-adopts"})}),u=setTimeout(()=>{console.warn("page: gave up waiting for the writer's adoption; the hand edit was not adopted"),m({ok:!1,reason:"adoption-timeout"})},s.ADOPTION_TIMEOUT_MS)})}async function vr(r,l,s){let c=await M(),f=l.seeded?{kind:"untouched"}:c.classifyFile(l.article,l.tags),u=f.kind==="adopt",w=async()=>{let h=await pt();if(!h||!p(r))return;if(h.status.writer===null){let T=r.store.value.y,y=Object.keys(T),O=a.ydoc.clientID.toString(36),D=r.store.room?.compaction?.v===1?y.find(H=>xr.test(H))??`u${O}-claim-0`:y.length?y[0]:`claim-${O}`,F=Object.hasOwn(T,D)?T[D]:c.yValueOf(a.ydoc).y.seed;r.store.handle.set(["y",D],F),h.release("blockeditor")}let j;await Promise.race([gt(),new Promise(T=>{j=setTimeout(T,_r)})]),clearTimeout(j)},m=u?w():Promise.resolve(),v=c.installAdoption({view:s.view,source:l,ready:m,isAdopter:()=>{let h=ie();return!h||h.status.writer===null?!0:h.isWriter()},requestCheckpoint:()=>Fe(0),snapshot:()=>W({emitForSync:!1}).forSave,mergeTagless:r.mergeTagless,seeded:l.seeded,writerReady:w,adopted:h=>ie()?.adopted?.("blockeditor",h,r.store.mark),notice:h=>{h.copy&&G(Cr,"warning",{actions:[{label:"Download your copy",onClick:()=>He(h.copy)}]})}});r.adoption=v;let i=await v.idle();return i?(i.outcome==="writer-adopts"&&(i=await wr(r,f)),!i.ok&&p(r)?Jt(r):p(r)&&await Yt(r),i):(await Yt(r),{ok:!0,outcome:"unchanged"})}async function et(r,l){if(r.replaced)return{ok:!1,reason:"blockeditor-replaced"};if(await k,!p(r))return{ok:!1,cancelled:!0};let s=l.view.dom.closest(".blockeditor-shell");if(!Ne(r,l)||!s||!s.isConnected||l.view.isDestroyed)return{ok:!1,reason:"view-detached"};let c=new Set(l.featureIds??[]),f=Fr(l.view.state.doc).filter(u=>!c.has(u));return f.length&&(await Promise.allSettled(f.map(u=>b.ensure(u))),!p(r))?{ok:!1,cancelled:!0}:{ok:!0}}function tt(r,l){let s=l.view.dom.closest(".blockeditor-shell"),c=()=>{Y.pause();try{for(let f of A)f.remove();s&&(s.style.visibility="")}finally{Y.resume()}};return r.replaced?(c(),tr(r),{ok:!1,reason:"blockeditor-replaced"}):r.inputOpen?{ok:!0}:!Ne(r,l)||!s||!s.isConnected||l.view.isDestroyed?{ok:!1,reason:"view-detached"}:(c(),s.inert=!1,ee?.(l.view,!0),r.inputOpen=!0,V(r),{ok:!0})}function br(r){return r.inputOpen?(ee?.(r.view,!1,{quiesce:!0}),!0):!1}function kr(r){return r.inputOpen?(ee?.(r.view,!0),!0):!1}async function Sr(r,l){let s=await et(r,l);return s.ok?tt(r,l):s}let rt={readSource:fr,loadEditorAssets:pr,prepareAuthority:gr,mountAndAttach:hr,adoptSource:vr,prepareInput:et,openInput:tt,closeInput:br,resumeInput:kr,enableInput:Sr,release:r=>{r.view||Jt(r)}};return e.steps=rt,rt}async function ro(e,t={},{activate:o=!0}={}){return Mt(e,to(e,t),{activate:o})}function nr(e={},{activate:t=!0,context:o=null}={}){Ge(),he=null;let a=++we,n={..._t({gen:a,isCurrent:()=>a===we&&(o?.isCurrent?.()??!0),onPhase:g=>{(g.phase==="ready"||g.phase==="blocked"||g.phase==="error")&&V(n),e.onPhase?.(g)}}),article:null,view:null,binding:null,adoption:null,source:null,store:null,toolHost:null,pageAi: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:o,inputOpen:!1,sessionHeld:!1,autosaveSuspended:!1,staleRetry:!1};S=n;let d=ro(n,e,{activate:t}).catch(g=>(console.error("clayjs: page plugin failed to install",g),he=Nt(n,"boot-failed"),S===n&&Ge(),he));return{inst:n,boot:d}}function lr(e={}){return nr(e).boot}function oo(e){if(S===e&&(S=null,we+=1),ne("Blockeditor-Write",null),qe(e),er(e,!0),e.titleObserver?.dispose(),e.titleObserver=null,V(e),e.view&&!e.view.isDestroyed)try{e.view.destroy()}catch(t){console.error("clayjs: page plugin view failed to destroy",t)}e.view=null,ze(e),Xe(e)}function me(e){e.sessionHeld&&(e.sessionHeld=!1,se({replay:!1,reason:$e}))}function sr(e,{held:t=!0}={}){return{enable(){t&&(me(e),qt(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,ct())},resume(){me(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,le()),e.steps?.resumeInput?.(e)},dispose(){me(e),e.autosaveSuspended&&(e.autosaveSuspended=!1,le()),oo(e)}}}function ao(e=null,t={}){Ce($e);let{inst:o,boot:a}=nr(t,{activate:!1,context:e});o.sessionHeld=!0;let n=sr(o,{held:!0});ve.ready=a.then(()=>ve.status);let d=a.then(g=>{if(!g?.deferred)throw Object.assign(new Error("clayjs: the page session could not prepare"),{code:g?.reason??"load-failed"})});return d.catch(()=>{me(o);try{e?.reader?.reclaimArticle?.()}catch(g){console.error("clayjs: the reader could not take the article back",g)}}),{ready:d,...n}}function Fo(e={}){return{id:"clay:blockeditor",order:400,prepare(t={}){return t.initial===!0?S?sr(S,{held:!1}):{enable(){},quiesce(){},resume(){},dispose(){}}:ao(t,e)}}}var ve={ready:null,install:lr,get status(){return S?.result??he},flush(e={}){let t=S;return!t||!t.flush?Promise.resolve({ok:!1,code:"disposed"}):t.flush(e)},dispose:Ge,get view(){return S?.view??null},get ai(){return S?.pageAi??null},get history(){return S?rr(S):null},get settings(){return S?.settings??null}};at(e=>{let t=S?.binding;if(!t?.filePending())return;let o=q?.acceptedPageState(e);o&&t.acceptFile(o)});x&&(document.addEventListener("clay:drafts-blockeditor-external",e=>{let{live:t,adopted:o}=e.detail||{};if(!t||typeof t!="object")return;let a=!0;for(let[n,d]of Object.entries(t)){let g=_(n);if(g)try{(n==="blockeditor"?ar(g,d):g.rebase(d,{source:"state"}))===!1&&(a=!1)}catch(b){console.warn("clayjs: another tab's page could not join this one",b),a=!1}}a&&S?.binding?.provider?.settle?.(),a&&o?.()}),document.dispatchEvent(new CustomEvent("clay:drafts-blockeditor-listening")));ve.ready=ot()?lr():null;var Ho=ve;export{Wt as PAGE_FULL_MESSAGE,_r as WRITER_WAIT_MS,to as createSteps,Ho as default,Fo as modeParticipant,ve as page,Fo as pageParticipant,ao as preparePageSession};
@@ -0,0 +1 @@
1
+ import{a as ie}from"../c-L4WQSC27.js";import{b as be,c as me,d as ve,e as le,g as Se}from"../c-UOOIF2AL.js";import"../c-QQFHEODI.js";import"../c-EDE45NM7.js";import{a as ge}from"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.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 _=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 u=new URL(e||window.location.href,r);return u.protocol==="http:"||u.protocol==="https:"?u.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:_(e.etag),seq:Y(e.seq)})}function Ae({documentURL:e,servedEtag:r=null,represented:u=null,onSnapshot:f,onStatus:v}={}){if(typeof f!="function")throw new TypeError("createSavedStream: onSnapshot must be a function");let g=De(e),m=!!_(r),s=ze(u);if(g===null){let n={ready:null,get represented(){return s},adopt(){return n},start(){return n.ready=Promise.resolve(n),n},stop(){}};return n}let S=!0,q=s.seq??0,L=0,P=0,z=f,x=v,C=0,T=!1,E=null,A=null,t=null,a=!1,h=null,d=null,c=null,b=null,k=[],O=n=>!T&&n===C;function N(n,l={}){T||typeof x!="function"||x({state:n,...l})}function $(){k.length=0,b&&(!d||d.active)&&b.clear(),d&&(d.detach(),d=null),h=null,b=null,c=null}function se(n,l){if(b){b.update(n);return}k.push(n),!c&&(c=Promise.all([import("../c-APGHGDZM.js"),import("../c-T3P3AXEW.js")]).then(([i,w])=>{if(!O(l))return null;h=i.presence,b=w.presence,d=h.attachTransport({send:()=>Promise.resolve(!1)});for(let G of k.splice(0))b.update(G);return b}).catch(()=>(c=null,null)))}function K(){if($(),!E)return;let n=E;E=null,n.onopen=null,n.onerror=null,n.onmessage=null,n.close()}function F(){if(!A)return;let n=A;A=null,n.controller.abort()}function re(n){if(T)return!1;let l={bytes:n.bytes,etag:_(n.etag),seq:Y(n.seq)};if(typeof l.bytes!="string"||l.bytes==="")return N("recoverable",{reason:"invalid-bytes",seq:l.seq}),!1;if(l.bytes===s.bytes&&l.etag===s.etag&&l.seq===s.seq)return!0;let i=!1;try{i=z(Object.freeze(l))===!0}catch{i=!1}return i?(s=Object.freeze(l),N("applied",{seq:s.seq,etag:s.etag}),!0):(N("recoverable",{reason:"refused",seq:l.seq,etag:l.etag}),!1)}function H(n,l){if(l==="startup")return null;let i=Math.max(n.seq??0,q);return i>0?i:null}function ae(n,l){t=n,a=!0,N("recoverable",{reason:l,seq:n.seq??null})}function U(n){T||(t={kind:n.kind,seq:Y(n.seq)},a=!1,B())}function B(){if(T||A||a||!t)return;let n=C,l=t;t=null;let i=new AbortController;A={controller:i};let w=L,G=q,D=j=>{if(A&&A.controller===i&&(A=null),!(!O(n)||i.signal.aborted)){if(j==null){ae(l,"repair-failed");return}if(L!==w||q!==G){if(P+=1,P<=Re){t=t??{kind:l.kind,seq:H(l,l.kind)},B();return}V(j.text,{kind:l.kind,seq:H(l,l.kind)},j.etag),B();return}V(j.text,l,j.etag),B()}};fetch(g,{cache:"no-store",signal:i.signal}).then(j=>j.ok?j.text().then(W=>({text:W,etag:_(j.headers?.get?.("etag"))})):null).then(D).catch(()=>D(null))}function V(n,l,i){let G=Me(n)??(/^W\//.test(i??"")?null:_(i))??(n===s.bytes?s.etag:null),D=l.kind==="startup"?s.seq:l.seq??s.seq;re({bytes:n,etag:G,seq:D})&&(S=!1,P=0,a=!1,N("current",{seq:s.seq,etag:s.etag}))}function o(n,l){let i={bytes:s.bytes,etag:n??s.etag,seq:l??s.seq};i.etag===s.etag&&i.seq===s.seq||(s=Object.freeze(i),N("current",{seq:s.seq,etag:s.etag}))}function p(n,l,i){let w=_(l);if(!(i!==null&&s.seq!==null&&i<=s.seq)){if(!S&&w!==null&&s.etag!==null){if(w!==s.etag){U({kind:"unmatched",seq:i});return}S=!0}if(n===s.bytes){o(w,i);return}re({bytes:n,etag:w,seq:i})&&(S=!0)}}function y(n,l){let i=n.data;if(i&&i.kind==="external-change"){typeof i.html=="string"?p(i.html,i.etag,l):U({kind:"notice",seq:l});return}typeof n.msg=="string"&&n.msg.endsWith("changed on disk outside this tab")&&U({kind:"notice",seq:l})}function R(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{N("recoverable",{reason:"bad-json"});return}if(!i||typeof i!="object"||Array.isArray(i)){N("recoverable",{reason:"bad-frame"});return}let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.type==="notification"){y(i,w);return}if(i.error){N("recoverable",{reason:"server-error",seq:w});return}if(typeof i.html!="string"){_(i.etag)?U({kind:"notice",seq:w}):N("recoverable",{reason:"bad-frame",seq:w});return}p(i.html,i.etag,w)}function Q(n,l){if(!O(l))return;L++;let i;try{i=JSON.parse(n)}catch{return}if(!i||typeof i!="object")return;let w=Y(i.seq);if(w!==null&&w>q&&(q=w),i.resync===!0){U({kind:"resync",seq:w});return}i.startup===!0&&U({kind:"startup",seq:null})}function M(n){if(O(n)){if(N("open",{seq:s.seq,etag:s.etag}),a){a=!1,B();return}s.bytes===null&&!m&&U({kind:"startup",seq:null})}}let I={ready:null,get represented(){return s},adopt({onSnapshot:n,onStatus:l}={}){return typeof n=="function"&&(z=n),typeof l=="function"&&(x=l),I},start(){T=!1;let n=++C;return K(),F(),t=null,a=!1,L=0,P=0,q=s.seq??0,I.ready=Se().then(l=>{if(!O(n))return I;let i=Ce(),w=Ie(),G=l.profile.streamPath(g,we,i,w),D=new be(new URL(G,window.location.origin).href,{shared:l.sharedSync,sharedData:l.sharedData,documentURL:g,lane:we,clientId:w,startupCheck:m});return E=D,D.onopen=()=>M(n),D.onerror=()=>{O(n)&&N("reconnecting")},D.onmessage=j=>R(j.data,n),D.addEventListener("cursor",j=>Q(j.data,n)),D.addEventListener("presence",j=>{if(!O(n))return;let W;try{W=JSON.parse(j.data)}catch{return}W&&typeof W=="object"&&!Array.isArray(W)&&se(W,n)}),I}),I},stop(){T||(T=!0,C++,K(),F(),t=null,a=!1)}};return I}var Ue="article[data-blockeditor]",Ve='section[data-type="tool"][data-id]',Ne=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 Le(e){return ne(e)}function ne(e){let r=e.querySelector(':scope > script[type="application/json"][data-tool]'),u={};try{u=r?JSON.parse(r.textContent):{}}catch(f){return{rev:null,artifact:null,state:{},signature:null,invalid:!0,error:f}}return{rev:u.rev??null,artifact:u.artifact??null,state:u.state??{},signature:JSON.stringify(u.artifact??null),invalid:!1}}function ue(e){let r=new Map,u=new Set;for(let f of e.querySelectorAll(Ve)){let v=f.getAttribute("data-id");if(!u.has(v)){if(r.has(v)){r.delete(v),u.add(v);continue}r.set(v,ne(f))}}return r}function ce(e){let r=e.querySelector('script[type="application/json"][merge="blockeditor.tools"]');if(!r)return{};try{return JSON.parse(r.textContent)}catch{return{}}}function Je(e){let r=new Map,u=new Set,f=v=>{for(let g of v.children){let m=g.getAttribute("data-id");if(m){if(u.has(m))continue;if(r.has(m)){r.delete(m),u.add(m);continue}r.set(m,g)}Ne.has(g.tagName)&&f(g)}};return f(e),r}function xe(e){let r=new Set,u=f=>{for(let v of f.children){let g=v.getAttribute("data-id");g&&r.add(g),Ne.has(v.tagName)&&u(v)}};return u(e),r}function X(e,r=document){if(typeof e!="string"||e==="")return{ok:!1,reason:"bytes"};let u=(r.defaultView??globalThis).DOMParser;if(typeof u!="function")return{ok:!1,reason:"parser"};let f=new u().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 s=ue(g);return{ok:!0,article:g,source:f,rev:g.getAttribute("data-rev"),title:f.title||null,savedOpen:m,tools:s,toolState:s.size?ce(f):{}}}var fe=(e,r)=>{let u=ne(e),f=ne(r);return!u.invalid&&!f.invalid&&u.rev===f.rev&&u.signature===f.signature};function Te(e,{article:r,readerOpen:u=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 a=t.getAttribute("data-id");u.has(a)&&t.hasAttribute("open")!==u.get(a)&&t.toggleAttribute("open",u.get(a))}let g=Je(r),m=new Set,s=!1,S=t=>(s=!0,t.cloneNode(!0)),q=(t,a)=>{let h=xe(t);for(let d of a.children){if(m.has(d)||d.hasAttribute("data-id")||d.tagName!==t.tagName)continue;if(!h.size)return d;let c=xe(d);for(let b of h)if(c.has(b))return d}return null},L=(t,a)=>{for(let h of a.children)if(!(m.has(h)||h.hasAttribute("data-id"))&&h.tagName===t.tagName)return h;return null},P=(t,a,h=null)=>{for(let{name:d,value:c}of[...a.attributes])d===h||t.getAttribute(d)===c||(t.setAttribute(d,c),s=!0);for(let{name:d}of[...t.attributes])d===h||a.hasAttribute(d)||(t.removeAttribute(d),s=!0)},z=(t,a,h)=>{let d=b=>b&&b.nodeType===t.nodeType&&b.nodeValue===t.nodeValue&&!m.has(b),c=d(a.childNodes[h])?a.childNodes[h]:[...a.childNodes].find(d);return c?(m.add(c),c):t.cloneNode(!0)},x=(t,a)=>{let h=[],d=[...a.childNodes];for(let k=0;k<d.length;k++){let O=d[k];if(O.nodeType!==1){h.push(z(O,t,k));continue}let N=A(O,t);m.add(N),h.push(N)}let c=new Set(h),b=t.firstChild;for(let k of h){for(;b&&!c.has(b);)b=b.nextSibling;if(b===k){b=b.nextSibling;continue}t.insertBefore(k,b),s=!0}for(let k of[...t.childNodes])c.has(k)||(k.remove(),s=!0)},C=t=>{s=!0;let a=t.cloneNode(!1);return x(a,t),a},T=(t,a)=>{s=!0;let h=t.getAttribute("data-id"),d=u.has(h)?u.get(h):a.hasAttribute("open");P(t,a,"open"),t.hasAttribute("open")!==d&&t.toggleAttribute("open",d),x(t,a)},E=(t,a)=>{s=!0,P(t,a),x(t,a)};function A(t,a){let h=t.getAttribute("data-id");if(h){let c=g.get(h);return!c||m.has(c)||c===a||c.contains(a)?S(t):(m.add(c),ke(c)&&ke(t)?v(c,t)?c:S(t):c.tagName!==t.tagName?S(t):c.isEqualNode(t)?c:t.tagName==="DETAILS"?(T(c,t),c):t.tagName==="LI"?(E(c,t),c):qe.has(t.tagName)?(P(c,t),x(c,t),c):S(t))}if(qe.has(t.tagName)){let c=q(t,a);return c?(m.add(c),P(c,t),x(c,t),c):C(t)}let d=L(t,a);return d?(m.add(d),d.isEqualNode(t)?d:(s=!0,S(t))):S(t)}if(x(r,e.article),f){f.clear();for(let[t,a]of e.savedOpen)f.set(t,a)}for(let t of[...u.keys()])e.savedOpen.has(t)||u.delete(t);return{changed:s}}var je="article[data-blockeditor]",Be='section[data-type="tool"][data-id]',Ee='script[type="application/json"][merge="blockeditor"]',de=["live-at","live-by"];var Fe=(e,r)=>import("../c-2OJMOUPC.js").then(u=>u.followTocLink(e,r)),He=e=>{import("../c-STRI73GQ.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}),Ge=(e,r)=>{let u=e.source.querySelector(Ee),f=r.querySelector(Ee);if(!u)return f?(f.remove(),!0):!1;if(f){let g=de.map(s=>u.getAttribute(s));return f.textContent===u.textContent&&de.every((s,S)=>f.getAttribute(s)===g[S])?!1:(f.textContent!==u.textContent&&(f.textContent=u.textContent),de.forEach((s,S)=>{g[S]===null?f.removeAttribute(s):f.setAttribute(s,g[S])}),!0)}let v=r.querySelector(je);return v?.parentNode?(v.parentNode.insertBefore(r.importNode(u,!0),v),!0):!1};function We({doc:e,article:r,represented:u=null,feed:f=null,documentURL:v,servedEtag:g=null,stream:m=null,release:s=()=>{}}){let S=new Map,q=new Map,L=new Map,P={data:{}},z=[],x=null,C=null,T=0,E=!1,A=m,t=null,a=pe(u),h=null,d=s,c=!1,b=(o,p)=>{let y=e.defaultView??globalThis;e.dispatchEvent(new y.CustomEvent(o,{detail:p}))},k=()=>{for(let o of L.values())try{o.instance?.dispose?.()}catch{}L.clear()},O=()=>x?Promise.resolve(x):(C||(C=import("../c-FQAQRXGK.js").then(({createToolHost:o})=>E?null:(x=o({store:P,mode:"view"}),x)).catch(o=>(C=null,console.warn("clayjs: could not load the reader tool host",o),null))),C),N=o=>{for(let[p,y]of L){let R=o.get(p);if(!R||R.invalid||R.rev!==y.rev||R.signature!==y.signature){try{y.instance?.dispose?.()}catch{}L.delete(p)}}},$=(o,p)=>{let y=[];for(let[Q,M]of o)M.invalid?console.warn("clayjs: could not decode saved tools",M.error):y.push([Q,M]);if(!y.length)return;P.data=p??{};let R=++T;O().then(Q=>{if(!(E||!Q||R!==T))for(let[M,I]of y){if(L.has(M))continue;let n=[...r.querySelectorAll(Be)].find(l=>l.getAttribute("data-id")===M);if(n)try{let l=Q.mount(n,{id:M,artifact:I.artifact,rev:I.rev,seed:I.state??{}});L.set(M,{rev:I.rev,signature:I.signature,instance:l})}catch(l){console.warn(`clayjs: tool ${M} could not mount`,l)}}})},se=(o,p)=>{let y=L.get(o.getAttribute("data-id"));if(!y)return fe(o,p);let R=Le(p);return!R.invalid&&R.rev===y.rev&&R.signature===y.signature},K=o=>{o?.state==="current"&&(a=pe({bytes:a.bytes,etag:o.etag??null,seq:o.seq??null})),o?.state&&o.state!=="applied"&&b("clay:reader-status",o)},F=o=>{Te(o,{article:r,readerOpen:S,savedOpen:q,keepTool:se}),o.rev===null?r.removeAttribute("data-rev"):r.setAttribute("data-rev",o.rev),o.title&&(e.title=o.title),Ge(o,e)},re=o=>{console.warn("clayjs: the reader could not apply a saved file",o),A?.stop(),A=null,k();let p=a.bytes?X(a.bytes,e):null;if(p?.ok)try{F(p)}catch(y){console.warn("clayjs: the reader could not restore the previous file",y)}b("clay:reader-status",{state:"blocked"})};function H(o){if(E||c)return!1;let p=X(o.bytes,e);if(!p.ok||r.querySelector(".blockeditor-editor"))return!1;if(me(o.bytes))return A?.stop(),A=null,le(),b("clay:reader-status",{state:"blocked",reason:"upgraded"}),!1;N(p.tools);try{F(p)}catch(y){return re(y),!1}return a=pe(o),a.etag&&He(a.etag),$(p.tools,p.toolState),b("clay:reader-status",{state:"applied",etag:a.etag,seq:a.seq}),!0}let ae=()=>a.bytes===null?!1:(V.stop(),!0),U=o=>{let p=o.target;if(p.tagName!=="DETAILS"||!r.contains(p))return;let y=p.getAttribute("data-id");y&&(p.open===q.get(y)?S.delete(y):S.set(y,p.open))};e.addEventListener("toggle",U,!0),z.push(["toggle",U,!0]);let B=o=>{let p=o.target.closest?.('a[href^="#blockeditor-block-"], a[href^="#"]');!p||!r.contains(p)||!p.closest('nav[aria-label="Table of contents"]')||(o.preventDefault(),Fe(r,p.getAttribute("href")))};if(e.addEventListener("click",B),z.push(["click",B]),u){let o=X(u.bytes,e);if(!o.ok)throw new Error(`clayjs: the saved file is not a readable page (${o.reason})`);F(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 V={ready:null,get represented(){return a},yieldArticle(){return E||c?!1:(T++,k(),c=!0,d(),!0)},reclaimArticle(){if(E||!c)return!1;if(d=ie(r,"reader"),c=!1,a.bytes!==null){let o=X(a.bytes,e);o.ok&&(F(o),$(o.tools,o.toolState))}return!0},prepareHandoff(o={}){return h?Promise.resolve(h):E?Promise.reject(new Error("clayjs: the reader is stopped")):(h=import("../c-6LEYVQJK.js").then(({readerHandoff:p})=>p({stream:A,options:o,apply:H,retire:ae,yieldArticle:V.yieldArticle,reclaimArticle:V.reclaimArticle})),h)},stop(){if(E)return t;E=!0,h=null,T++,A?.stop(),A=null;for(let[o,p,y]of z)e.removeEventListener(o,p,y);z.length=0,k();try{x?.dispose()}catch{}return x=null,c||d(),c=!1,d=()=>!1,t=Object.freeze({...a}),t}};if(V.ready=Promise.resolve(V),f){let o=p=>{let y=p.detail;typeof y?.html=="string"&&(y.source&&y.source!=="disk"&&y.lane!=="saved"||H({bytes:y.html,etag:y.etag??null,seq:y.seq??null}))};f.addEventListener("clay:sync-applied",o),z.push(["clay:sync-applied",o])}else A?A.adopt({onSnapshot:H,onStatus:K}):(A=Ae({documentURL:v,servedEtag:g,represented:a.bytes?a:null,onSnapshot:H,onStatus:K}),A.start());return V}function oe({represented:e=null,documentURL:r,servedEtag:u=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(je);if(m.length!==1)throw new Error("clayjs: the reader needs exactly one article[data-blockeditor]");let s=m[0];if(s.querySelector(".blockeditor-editor"))throw new Error("clayjs: the reader will not start over a mounted editor");if(e){let q=X(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(s,"reader");try{return We({doc:g,article:s,represented:e,feed:v,documentURL:r,servedEtag:u,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-blockeditor]").length===1;function _e(){ee=e=>{if(ye)return;let r=e.detail;r?.state==="applied"?te?.(J):(r?.state==="blocked"||r?.state==="recoverable"||r?.state==="reconnecting")&&te?.(null)},document.addEventListener("clay:reader-status",ee)}function $e(){ee&&document.removeEventListener("clay:reader-status",ee),ee=null,te=null}function Qe(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 Xe(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 Ke({sync:e=!1,represented:r=null}={}){return Z||(ye=!1,Oe=e,_e(),he=e?Xe(r):Qe(r),Z=e?he:Promise.resolve(null),Z)}function ct(e={}){return Ye(),Ke(e)}function ft(e){return J?J.prepareHandoff(e):Promise.reject(new Error("clayjs: the reader has not started"))}function Ye(){ye=!0,Oe||te?.(null),$e(),J?.stop(),J=null,he=null,Z=null}export{he as acquired,ft as prepareHandoff,Z as ready,ct as restart,Ke as start,Ye as stop};
@@ -1 +1 @@
1
- import{a as I,c as V}from"../c-RVMWGXEJ.js";import{a as P,d as j}from"../c-XGH4GS2T.js";import{f as K,j as M}from"../c-3O7OBDCM.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-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-GC2HICFJ.js"),import("../c-PXLTUYZC.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
+ import{a as I,c as V}from"../c-RVMWGXEJ.js";import{a as P,d as j}from"../c-QQFHEODI.js";import{f as K,j as M}from"../c-EDE45NM7.js";import"../c-BPF2NSPV.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-U4NTUVDZ.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-EODTTNVA.js"),import("../c-TFLRT5JX.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 ot,b as rt,c as it}from"../c-G6COVIZB.js";import{a as nt}from"../c-5FKRZNJV.js";import{g as et}from"../c-IHUWUKIU.js";import"../c-4JZDZFF6.js";import"../c-EUGJVHDD.js";import"../c-PKCCHJ5X.js";import"../c-NUHP2XDB.js";import"../c-VHNSBD2M.js";var qt=":root{--qc-surface:#f7f2ea;--qc-surface-hover:#efe7d8;--qc-border:#cdbfa6;--qc-text:#2b241b;--qc-text-hover:#463c2e;--qc-on-dark:#efe7d8;--qc-overlay:rgba(43,36,27,.6);--qc-dim:rgba(0,0,0,.55);--qc-radius:8px;--qc-crop-line:#fff;--qc-font:ui-sans-serif,system-ui,sans-serif;}.qc-css-probe{position:absolute;}.qc-backdrop{position:fixed;inset:0;background:var(--qc-overlay);display:grid;place-items:center;z-index:1000;animation:qc-fade .15s ease;}@keyframes qc-fade{from{opacity:0}}.qc-modal{background:var(--qc-surface);border:1px solid var(--qc-border);border-radius:var(--qc-radius);padding:16px;max-width:92vw;font-family:var(--qc-font);}.qc-bar{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;}.qc-btn{font:inherit;font-family:var(--qc-font);font-size:.85rem;padding:.3rem .75rem;border:1px solid var(--qc-border);border-radius:6px;background:var(--qc-surface);color:var(--qc-text);cursor:pointer;}.qc-btn:hover{background:var(--qc-surface-hover);}.qc-btn-primary{background:var(--qc-text);border-color:var(--qc-text);color:var(--qc-on-dark);font-weight:600;}.qc-btn-primary:hover{background:var(--qc-text-hover);border-color:var(--qc-text-hover);}.qc-stage{position:relative;line-height:0;user-select:none;-webkit-user-select:none;touch-action:none;}.qc-stage img{display:block;max-width:100%;pointer-events:none;}.qc-dim{position:absolute;inset:0;background:var(--qc-dim);pointer-events:none;}.qc-box{position:absolute;cursor:move;outline:1px solid var(--qc-crop-line);background:linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 33.33%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 66.66%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 33.33% 0/1px 100% no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 66.66% 0/1px 100% no-repeat;background-blend-mode:overlay;}.qc-handle{position:absolute;box-sizing:border-box;width:28px;height:28px;border:7px solid transparent;background:var(--qc-crop-line);background-clip:padding-box;border-radius:9px;}.qc-nw{left:-14px;top:-14px;cursor:nwse-resize;}.qc-ne{right:-14px;top:-14px;cursor:nesw-resize;}.qc-sw{left:-14px;bottom:-14px;cursor:nesw-resize;}.qc-se{right:-14px;bottom:-14px;cursor:nwse-resize;}.qc-mount{line-height:0;}",gt=["image/jpeg","image/png","image/webp"];var _=!1;function L(t,n="",e=""){let r=document.createElement(t);return n&&(r.className=n),e&&(r.textContent=e),r}function D(t,n,e){t.style.setProperty(n,e,"important")}function vt(t){return String(t).replace(/[&<>"']/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[n])}function K(){if(document.querySelector("style[data-quickcrop]"))return;let t=L("div","qc-css-probe");t.style.display="none",document.body.append(t);let n=getComputedStyle(t).position==="absolute";if(t.remove(),n)return;let e=document.createElement("style");e.setAttribute("data-quickcrop",""),e.setAttribute("save-remove",""),e.setAttribute("snapshot-remove",""),e.textContent=qt,document.head.append(e)}var Y={open({content:t,confirmLabel:n,onConfirm:e,onCancel:r}){K();let i=L("div","qc-backdrop");i.setAttribute("save-remove",""),i.setAttribute("snapshot-remove","");let m=L("div","qc-modal"),u=L("div","qc-bar"),f=L("button","qc-btn qc-btn-primary",n);f.type="button",u.append(f),m.append(t,u),i.append(m),document.body.append(i);let E=q=>{q.key==="Escape"&&r()};return document.addEventListener("keydown",E),f.onclick=()=>e(),i.onclick=q=>{q.target===i&&r()},f.focus(),{close(){document.removeEventListener("keydown",E),i.remove()}}}};function at(t){return!!t&&typeof t=="object"&&typeof t.open=="function"&&typeof t.close=="function"&&typeof t.onYes=="function"&&"html"in t}var xt='<svg viewBox="0 0 134 134" xmlns="http://www.w3.org/2000/svg"><path class="micromodal__close-bg" d="M132 132.5 1 1.5h131v131Z"/><path d="M83 27l24 24M107 27L83 51" stroke="#fff" stroke-width="6"/></svg>';function ct(t){let n=()=>t.isShowing&&!!document.querySelector(".micromodal-parent");return{fit(){if(n())return null;let e=window.innerWidth>=640?128:80;return{width:Math.max(120,Math.min(550,window.innerWidth-32)-4-e),height:Math.max(120,window.innerHeight-220)}},open(e){if(n())return Y.open(e);let{content:r,confirmLabel:i,onConfirm:m,onCancel:u}=e;K();let f=!1,E=C=>{f||(f=!0,document.removeEventListener("keydown",q,!0),C())},q=C=>{C.key==="Escape"&&(C.stopPropagation(),u())};return t.html='<div class="qc-mount"></div>',t.yes=vt(i),t.no="",t.closeHtml=xt,t.disableFocus=!0,t.onOpen(()=>{document.querySelector(".micromodal__content .qc-mount")?.append(r),document.querySelector(".micromodal-parent .micromodal__yes")?.focus(),document.addEventListener("keydown",q,!0)}),t.onYes(()=>(E(m),!0)),t.onNo(()=>{E(u)}),t.open(),{close(){f||(f=!0,document.removeEventListener("keydown",q,!0),t.close())}}}}}function yt(t){if(t==="builtin")return Y;if(t&&typeof t=="object"){if(at(t))return ct(t);if(typeof t.open=="function")return t;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}if(t==="auto")return at(window.themodal)?ct(window.themodal):Y;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}function wt(t,n={}){let{aspect:e=null,type:r,quality:i=.92,maxWidth:m=null,maxHeight:u=null,minSize:f=40,labels:E={},modal:q="auto"}=n,{confirm:C="Crop"}=E;if(!(t instanceof Blob))return Promise.reject(new TypeError("quickcrop: expected a File or Blob"));if(_)return Promise.reject(new Error("quickcrop: already open"));let S;try{S=yt(q)}catch(R){return Promise.reject(R)}_=!0;let A=r||(gt.includes(t.type)?t.type:"image/png"),F=URL.createObjectURL(t),a=new Image;return new Promise((R,z)=>{a.onerror=()=>{URL.revokeObjectURL(F),_=!1,z(new Error("quickcrop: could not decode image"))};function h(){let U=S.fit?S.fit():null,mt=Math.max(1,Math.min(U?.width??window.innerWidth*.86,a.naturalWidth)),ut=Math.max(1,U?.height??window.innerHeight*.72),N=Math.min(mt/a.naturalWidth,ut/a.naturalHeight,1),M=Math.max(1,Math.round(a.naturalWidth*N)),g=Math.max(1,Math.round(a.naturalHeight*N)),$=Math.min(f,M,g);K();let v=L("div","qc-stage");D(a,"width",M+"px"),D(a,"height",g+"px");let Q=L("div","qc-dim"),B=L("div","qc-box");for(let o of["nw","ne","sw","se"])B.appendChild(L("div","qc-handle qc-"+o));v.append(a,Q,B);let c,p;e?(c=Math.min(M,g*e),p=c/e,p>g&&(p=g,c=p*e)):(c=M,p=g);let y=(M-c)/2,w=(g-p)/2;Z();function Z(){D(B,"left",y+"px"),D(B,"top",w+"px"),D(B,"width",c+"px"),D(B,"height",p+"px"),D(Q,"clip-path",`polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 0, ${y}px ${w}px, ${y}px ${w+p}px, ${y+c}px ${w+p}px, ${y+c}px ${w}px, ${y}px ${w}px)`)}let T=(o,b,d)=>Math.max(b,Math.min(d,o));v.addEventListener("pointerdown",o=>{let b=o.target.closest(".qc-handle"),d=o.target===B;if(!b&&!d)return;o.preventDefault(),v.setPointerCapture(o.pointerId);let s={px:o.clientX,py:o.clientY,x:y,y:w,w:c,h:p},l=b&&[...b.classList].find(W=>/^qc-(nw|ne|sw|se)$/.test(W))?.slice(3),x=W=>{if(!l)y=T(s.x+(W.clientX-s.px),0,M-c),w=T(s.y+(W.clientY-s.py),0,g-p);else{let O=l.includes("w")?s.x+s.w:s.x,H=l.includes("n")?s.y+s.h:s.y,P=l.includes("e"),X=l.includes("s"),G=v.getBoundingClientRect(),J=Math.abs(W.clientX-(G.left+O)),V=Math.abs(W.clientY-(G.top+H));if(e){let tt=Math.min(P?M-O:O,(X?g-H:H)*e),bt=Math.min(Math.max($,$*e),tt);c=T(Math.max(J,V*e),bt,tt),p=c/e}else c=T(J,$,P?M-O:O),p=T(V,$,X?g-H:H);y=P?O:O-c,w=X?H:H-p}Z()},k=()=>{v.removeEventListener("pointermove",x),v.removeEventListener("pointerup",k),v.removeEventListener("pointercancel",k)};v.addEventListener("pointermove",x),v.addEventListener("pointerup",k),v.addEventListener("pointercancel",k)});function ft(){let o=a.naturalWidth/M,b=a.naturalHeight/g,d=Math.round(c*o),s=Math.round(p*b),l=1;m&&d>m&&(l=m/d),u&&s*l>u&&(l=u/s),d*l*s*l>16777216&&(l=Math.sqrt(16777216/(d*s)));let x=document.createElement("canvas");x.width=Math.max(1,Math.round(d*l)),x.height=Math.max(1,Math.round(s*l));let k=x.getContext("2d");if(!k)throw new Error("quickcrop: crop too large for a canvas");return A==="image/jpeg"&&(k.fillStyle="#fff",k.fillRect(0,0,x.width,x.height)),k.imageSmoothingQuality="high",k.drawImage(a,y*o,w*b,c*o,p*b,0,0,x.width,x.height),x}let j=!1,I=()=>j?!1:(j=!0,ht.close(),URL.revokeObjectURL(F),_=!1,!0),ht=S.open({content:v,confirmLabel:C,onConfirm(){if(j)return;let o,b;try{o=ft(),b=o.toDataURL(A,i)}catch(d){I()&&z(d);return}I()&&o.toBlob(d=>{if(!d){z(new Error("quickcrop: image encoding failed"));return}R({blob:d,dataURL:b,width:o.width,height:o.height})},A,i)},onCancel(){I()&&R(null)}})}a.onload=()=>{try{h()}catch(U){URL.revokeObjectURL(F),_=!1,z(U)}},a.src=F})}var pt=wt;var st=[".qc-stage",".qc-backdrop"],dt=`@layer clay-skin{
1
+ import{a as ot,b as rt,c as it}from"../c-ESK4S67I.js";import{a as nt}from"../c-NFQFV7OP.js";import{g as et}from"../c-MR75YPRT.js";import"../c-4JZDZFF6.js";import"../c-5RZNFTWD.js";import"../c-PKCCHJ5X.js";import"../c-NUHP2XDB.js";import"../c-VHNSBD2M.js";var qt=":root{--qc-surface:#f7f2ea;--qc-surface-hover:#efe7d8;--qc-border:#cdbfa6;--qc-text:#2b241b;--qc-text-hover:#463c2e;--qc-on-dark:#efe7d8;--qc-overlay:rgba(43,36,27,.6);--qc-dim:rgba(0,0,0,.55);--qc-radius:8px;--qc-crop-line:#fff;--qc-font:ui-sans-serif,system-ui,sans-serif;}.qc-css-probe{position:absolute;}.qc-backdrop{position:fixed;inset:0;background:var(--qc-overlay);display:grid;place-items:center;z-index:1000;animation:qc-fade .15s ease;}@keyframes qc-fade{from{opacity:0}}.qc-modal{background:var(--qc-surface);border:1px solid var(--qc-border);border-radius:var(--qc-radius);padding:16px;max-width:92vw;font-family:var(--qc-font);}.qc-bar{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;}.qc-btn{font:inherit;font-family:var(--qc-font);font-size:.85rem;padding:.3rem .75rem;border:1px solid var(--qc-border);border-radius:6px;background:var(--qc-surface);color:var(--qc-text);cursor:pointer;}.qc-btn:hover{background:var(--qc-surface-hover);}.qc-btn-primary{background:var(--qc-text);border-color:var(--qc-text);color:var(--qc-on-dark);font-weight:600;}.qc-btn-primary:hover{background:var(--qc-text-hover);border-color:var(--qc-text-hover);}.qc-stage{position:relative;line-height:0;user-select:none;-webkit-user-select:none;touch-action:none;}.qc-stage img{display:block;max-width:100%;pointer-events:none;}.qc-dim{position:absolute;inset:0;background:var(--qc-dim);pointer-events:none;}.qc-box{position:absolute;cursor:move;outline:1px solid var(--qc-crop-line);background:linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 33.33%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 0 66.66%/100% 1px no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 33.33% 0/1px 100% no-repeat,linear-gradient(var(--qc-crop-line),var(--qc-crop-line)) 66.66% 0/1px 100% no-repeat;background-blend-mode:overlay;}.qc-handle{position:absolute;box-sizing:border-box;width:28px;height:28px;border:7px solid transparent;background:var(--qc-crop-line);background-clip:padding-box;border-radius:9px;}.qc-nw{left:-14px;top:-14px;cursor:nwse-resize;}.qc-ne{right:-14px;top:-14px;cursor:nesw-resize;}.qc-sw{left:-14px;bottom:-14px;cursor:nesw-resize;}.qc-se{right:-14px;bottom:-14px;cursor:nwse-resize;}.qc-mount{line-height:0;}",gt=["image/jpeg","image/png","image/webp"];var _=!1;function L(t,n="",e=""){let r=document.createElement(t);return n&&(r.className=n),e&&(r.textContent=e),r}function D(t,n,e){t.style.setProperty(n,e,"important")}function vt(t){return String(t).replace(/[&<>"']/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[n])}function K(){if(document.querySelector("style[data-quickcrop]"))return;let t=L("div","qc-css-probe");t.style.display="none",document.body.append(t);let n=getComputedStyle(t).position==="absolute";if(t.remove(),n)return;let e=document.createElement("style");e.setAttribute("data-quickcrop",""),e.setAttribute("save-remove",""),e.setAttribute("snapshot-remove",""),e.textContent=qt,document.head.append(e)}var Y={open({content:t,confirmLabel:n,onConfirm:e,onCancel:r}){K();let i=L("div","qc-backdrop");i.setAttribute("save-remove",""),i.setAttribute("snapshot-remove","");let m=L("div","qc-modal"),u=L("div","qc-bar"),f=L("button","qc-btn qc-btn-primary",n);f.type="button",u.append(f),m.append(t,u),i.append(m),document.body.append(i);let E=q=>{q.key==="Escape"&&r()};return document.addEventListener("keydown",E),f.onclick=()=>e(),i.onclick=q=>{q.target===i&&r()},f.focus(),{close(){document.removeEventListener("keydown",E),i.remove()}}}};function at(t){return!!t&&typeof t=="object"&&typeof t.open=="function"&&typeof t.close=="function"&&typeof t.onYes=="function"&&"html"in t}var xt='<svg viewBox="0 0 134 134" xmlns="http://www.w3.org/2000/svg"><path class="micromodal__close-bg" d="M132 132.5 1 1.5h131v131Z"/><path d="M83 27l24 24M107 27L83 51" stroke="#fff" stroke-width="6"/></svg>';function ct(t){let n=()=>t.isShowing&&!!document.querySelector(".micromodal-parent");return{fit(){if(n())return null;let e=window.innerWidth>=640?128:80;return{width:Math.max(120,Math.min(550,window.innerWidth-32)-4-e),height:Math.max(120,window.innerHeight-220)}},open(e){if(n())return Y.open(e);let{content:r,confirmLabel:i,onConfirm:m,onCancel:u}=e;K();let f=!1,E=C=>{f||(f=!0,document.removeEventListener("keydown",q,!0),C())},q=C=>{C.key==="Escape"&&(C.stopPropagation(),u())};return t.html='<div class="qc-mount"></div>',t.yes=vt(i),t.no="",t.closeHtml=xt,t.disableFocus=!0,t.onOpen(()=>{document.querySelector(".micromodal__content .qc-mount")?.append(r),document.querySelector(".micromodal-parent .micromodal__yes")?.focus(),document.addEventListener("keydown",q,!0)}),t.onYes(()=>(E(m),!0)),t.onNo(()=>{E(u)}),t.open(),{close(){f||(f=!0,document.removeEventListener("keydown",q,!0),t.close())}}}}}function yt(t){if(t==="builtin")return Y;if(t&&typeof t=="object"){if(at(t))return ct(t);if(typeof t.open=="function")return t;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}if(t==="auto")return at(window.themodal)?ct(window.themodal):Y;throw new TypeError('quickcrop: modal must be "auto", "builtin", a themodal instance, or an adapter with open()')}function wt(t,n={}){let{aspect:e=null,type:r,quality:i=.92,maxWidth:m=null,maxHeight:u=null,minSize:f=40,labels:E={},modal:q="auto"}=n,{confirm:C="Crop"}=E;if(!(t instanceof Blob))return Promise.reject(new TypeError("quickcrop: expected a File or Blob"));if(_)return Promise.reject(new Error("quickcrop: already open"));let S;try{S=yt(q)}catch(R){return Promise.reject(R)}_=!0;let A=r||(gt.includes(t.type)?t.type:"image/png"),F=URL.createObjectURL(t),a=new Image;return new Promise((R,z)=>{a.onerror=()=>{URL.revokeObjectURL(F),_=!1,z(new Error("quickcrop: could not decode image"))};function h(){let U=S.fit?S.fit():null,mt=Math.max(1,Math.min(U?.width??window.innerWidth*.86,a.naturalWidth)),ut=Math.max(1,U?.height??window.innerHeight*.72),N=Math.min(mt/a.naturalWidth,ut/a.naturalHeight,1),M=Math.max(1,Math.round(a.naturalWidth*N)),g=Math.max(1,Math.round(a.naturalHeight*N)),$=Math.min(f,M,g);K();let v=L("div","qc-stage");D(a,"width",M+"px"),D(a,"height",g+"px");let Q=L("div","qc-dim"),B=L("div","qc-box");for(let o of["nw","ne","sw","se"])B.appendChild(L("div","qc-handle qc-"+o));v.append(a,Q,B);let c,p;e?(c=Math.min(M,g*e),p=c/e,p>g&&(p=g,c=p*e)):(c=M,p=g);let y=(M-c)/2,w=(g-p)/2;Z();function Z(){D(B,"left",y+"px"),D(B,"top",w+"px"),D(B,"width",c+"px"),D(B,"height",p+"px"),D(Q,"clip-path",`polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 0, ${y}px ${w}px, ${y}px ${w+p}px, ${y+c}px ${w+p}px, ${y+c}px ${w}px, ${y}px ${w}px)`)}let T=(o,b,d)=>Math.max(b,Math.min(d,o));v.addEventListener("pointerdown",o=>{let b=o.target.closest(".qc-handle"),d=o.target===B;if(!b&&!d)return;o.preventDefault(),v.setPointerCapture(o.pointerId);let s={px:o.clientX,py:o.clientY,x:y,y:w,w:c,h:p},l=b&&[...b.classList].find(W=>/^qc-(nw|ne|sw|se)$/.test(W))?.slice(3),x=W=>{if(!l)y=T(s.x+(W.clientX-s.px),0,M-c),w=T(s.y+(W.clientY-s.py),0,g-p);else{let O=l.includes("w")?s.x+s.w:s.x,H=l.includes("n")?s.y+s.h:s.y,P=l.includes("e"),X=l.includes("s"),G=v.getBoundingClientRect(),J=Math.abs(W.clientX-(G.left+O)),V=Math.abs(W.clientY-(G.top+H));if(e){let tt=Math.min(P?M-O:O,(X?g-H:H)*e),bt=Math.min(Math.max($,$*e),tt);c=T(Math.max(J,V*e),bt,tt),p=c/e}else c=T(J,$,P?M-O:O),p=T(V,$,X?g-H:H);y=P?O:O-c,w=X?H:H-p}Z()},k=()=>{v.removeEventListener("pointermove",x),v.removeEventListener("pointerup",k),v.removeEventListener("pointercancel",k)};v.addEventListener("pointermove",x),v.addEventListener("pointerup",k),v.addEventListener("pointercancel",k)});function ft(){let o=a.naturalWidth/M,b=a.naturalHeight/g,d=Math.round(c*o),s=Math.round(p*b),l=1;m&&d>m&&(l=m/d),u&&s*l>u&&(l=u/s),d*l*s*l>16777216&&(l=Math.sqrt(16777216/(d*s)));let x=document.createElement("canvas");x.width=Math.max(1,Math.round(d*l)),x.height=Math.max(1,Math.round(s*l));let k=x.getContext("2d");if(!k)throw new Error("quickcrop: crop too large for a canvas");return A==="image/jpeg"&&(k.fillStyle="#fff",k.fillRect(0,0,x.width,x.height)),k.imageSmoothingQuality="high",k.drawImage(a,y*o,w*b,c*o,p*b,0,0,x.width,x.height),x}let j=!1,I=()=>j?!1:(j=!0,ht.close(),URL.revokeObjectURL(F),_=!1,!0),ht=S.open({content:v,confirmLabel:C,onConfirm(){if(j)return;let o,b;try{o=ft(),b=o.toDataURL(A,i)}catch(d){I()&&z(d);return}I()&&o.toBlob(d=>{if(!d){z(new Error("quickcrop: image encoding failed"));return}R({blob:d,dataURL:b,width:o.width,height:o.height})},A,i)},onCancel(){I()&&R(null)}})}a.onload=()=>{try{h()}catch(U){URL.revokeObjectURL(F),_=!1,z(U)}},a.src=F})}var pt=wt;var st=[".qc-stage",".qc-backdrop"],dt=`@layer clay-skin{
2
2
  :is(.qc-stage, .qc-backdrop),:is(.qc-stage, .qc-backdrop) *{--qc-surface:light-dark(#FFFCF6, #11131E) !important;--qc-text:light-dark(#2B241B, #ECEAF2) !important;--qc-border:light-dark(#D8C8AF, #353B52) !important;--qc-radius:0px !important;--qc-font:system-ui,-apple-system,"Segoe UI",sans-serif !important;--qc-surface-hover:light-dark(#F4ECDF, #1A1D2C) !important;--qc-text-hover:color-mix(in srgb, light-dark(#2B241B, #ECEAF2), light-dark(#FDF8F0, #0B0C13) 12%) !important;--qc-on-dark:light-dark(#FDF8F0, #0B0C13) !important;--qc-overlay:color-mix(in srgb, light-dark(#FDF8F0, #0B0C13) 70%, transparent) !important;--qc-dim:rgba(0,0,0,.55) !important;--qc-crop-line:#fff !important}
3
3
  .qc-stage{margin-inline:auto !important;inline-size:fit-content !important;background:light-dark(#F4ECDF, #1A1D2C) !important}
4
4
  .qc-stage img{display:block !important;max-inline-size:100% !important}
@@ -23,4 +23,4 @@ import{a as ot,b as rt,c as it}from"../c-G6COVIZB.js";import{a as nt}from"../c-5
23
23
  .qc-backdrop[hidden]{display:none !important}
24
24
  .qc-bar[hidden]{display:none !important}
25
25
  }`;var lt=844;nt("quickcrop",dt,{roots:st});function kt(t){return!!t&&typeof t=="object"&&typeof t.open=="function"&&typeof t.close=="function"&&typeof t.onYes=="function"&&"html"in t}var Et={fit(){let t=document.documentElement.clientWidth;return{width:Math.max(120,Math.min(lt,t-32)-2-44),height:Math.max(120,window.innerHeight-Math.min(96,window.innerHeight*.1)-200)}},open({content:t,confirmLabel:n,onConfirm:e,onCancel:r}){let{root:i,overlay:m,panel:u,heading:f,body:E,footer:q,close:C}=it({zIndex:"2147483001",width:`${lt}px`,closable:!0,titled:!0});f.textContent="Crop image",u.setAttribute("aria-label","Crop image"),E.append(t);let S=et(n,{variant:"primary",onClick:()=>e()});q.append(S),C.addEventListener("click",()=>r()),u.addEventListener("submit",h=>h.preventDefault());let A=!1;m.addEventListener("mousedown",h=>{A=h.target===m}),m.addEventListener("click",h=>{A&&h.target===m&&r(),A=!1});let F=h=>{if(h.key==="Tab"){h.stopPropagation(),rt(u,h);return}h.key==="Escape"&&(h.stopPropagation(),r())};document.addEventListener("keydown",F,!0);let a=document.body.style.overflow;document.body.style.overflow="hidden";let R=!1,z=()=>{R||(R=!0,document.removeEventListener("keydown",F,!0),document.body.style.overflow=a,i.remove())};return ot.set(i,()=>{z(),r()}),i.setAttribute("aria-hidden","false"),document.body.append(i),S.focus(),{close:z}}};function Mt(t,n={}){let e=n.modal??"auto",r=e==="auto"||kt(e);return pt(t,r?{...n,modal:Et}:n)}var Bt=Mt;export{Et as bevelCropAdapter,Bt as default,Mt as quickcrop};
26
- /*! For license information please see quickcrop-WWF5I422.js.LEGAL.txt */
26
+ /*! For license information please see quickcrop-X5MRIBAP.js.LEGAL.txt */