@panphora/clayjs 1.15.2 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. package/README.md +4 -5
  2. package/THIRD-PARTY-NOTICES.md +16 -0
  3. package/compat/highlight-11.9.0.min.js +1213 -0
  4. package/compat/highlight-LICENSE +29 -0
  5. package/compat/journal-assets.lock.json +22 -0
  6. package/compat/overtype-2.6.1.min.js +116 -0
  7. package/compat/overtype-LICENSE +21 -0
  8. package/dist/all.js +90 -0
  9. package/dist/clay-dom.js +84 -0
  10. package/dist/clay-events.js +103 -0
  11. package/dist/clay-internals.js +85 -0
  12. package/dist/clay-options.js +93 -0
  13. package/dist/clay-router.js +98 -0
  14. package/dist/clay-ui.js +95 -0
  15. package/dist/clay-utils.js +84 -0
  16. package/dist/clay.js +146 -0
  17. package/dist/clay.standalone.js +83090 -58706
  18. package/dist/m/attrs/add-from-T5LJXFFI.js +1 -0
  19. package/dist/m/attrs/onaftersave-OKSWEJQF.js +1 -0
  20. package/dist/m/attrs/refetch-on-save-NWPPXOCZ.js +1 -0
  21. package/dist/m/attrs/save-freeze-FUP4Q4X3.js +1 -0
  22. package/dist/m/c-2AZDZWCK.js +1 -0
  23. package/dist/m/c-2JL6E75N.js +1 -0
  24. package/dist/m/c-2M73252O.js +1 -0
  25. package/dist/m/c-2SPVQSHC.js +1 -0
  26. package/dist/m/c-33HUYEDI.js +1 -0
  27. package/dist/m/c-33JJ6CBX.js +2 -0
  28. package/dist/m/c-35NBGMZB.js +1 -0
  29. package/dist/m/c-3GJ4SDE2.js +1 -0
  30. package/dist/m/c-3IQRECYS.js +1 -0
  31. package/dist/m/c-3OWDMNJR.js +2 -0
  32. package/dist/m/c-46XYM55L.js +1 -0
  33. package/dist/m/c-4B6H4G5V.js +1 -0
  34. package/dist/m/c-4DRMS4QG.js +9 -0
  35. package/dist/m/c-4FFHZM32.js +1 -0
  36. package/dist/m/c-4JZDZFF6.js +1 -0
  37. package/dist/m/c-4L3BTFRK.js +1 -0
  38. package/dist/m/c-4Q2XTQ2N.js +2 -0
  39. package/dist/m/c-4WKFKEKF.js +1 -0
  40. package/dist/m/c-4YSCRICO.js +1 -0
  41. package/dist/m/c-54RCDCBU.js +1 -0
  42. package/dist/m/c-5M4YEKCX.js +4 -0
  43. package/dist/m/c-5R4PTRG2.js +1 -0
  44. package/dist/m/c-5V3MOVJT.js +1 -0
  45. package/dist/m/c-5VYOWDTI.js +1 -0
  46. package/dist/m/c-5Y6TNX5W.js +34 -0
  47. package/dist/m/c-5YIHJ3TJ.js +1 -0
  48. package/dist/m/c-66O32MV3.js +28 -0
  49. package/dist/m/c-6HMB24EV.js +1 -0
  50. package/dist/m/c-7DJDKPGL.js +1 -0
  51. package/dist/m/c-7O6AFR65.js +1 -0
  52. package/dist/m/c-7SWMYKAI.js +1 -0
  53. package/dist/m/c-7VGZ7RU5.js +1 -0
  54. package/dist/m/c-A7LS5UZW.js +1 -0
  55. package/dist/m/c-ANQTJ3B5.js +2 -0
  56. package/dist/m/c-AQLFEATB.js +1 -0
  57. package/dist/m/c-AYVOREBE.js +1 -0
  58. package/dist/m/c-B2ZXPOS3.js +3 -0
  59. package/dist/m/c-BBVGTQG7.js +1 -0
  60. package/dist/m/c-BMIZKMPV.js +1 -0
  61. package/dist/m/c-BTDI4Y23.js +1 -0
  62. package/dist/m/c-BWFVSBDF.js +1 -0
  63. package/dist/m/c-BYTKL6UX.js +1 -0
  64. package/dist/m/c-CFHW5AMY.js +6 -0
  65. package/dist/m/c-CJZSLMVQ.js +1 -0
  66. package/dist/m/c-CYWLPPUS.js +1 -0
  67. package/dist/m/c-CZUSOB7V.js +1 -0
  68. package/dist/m/c-DBE6ORSI.js +1 -0
  69. package/dist/m/c-DCFSEJZG.js +1 -0
  70. package/dist/m/c-DNZ5IFM6.js +1 -0
  71. package/dist/m/c-EDHUR4MX.js +1 -0
  72. package/dist/m/c-EJTGYSLN.js +1 -0
  73. package/dist/m/c-EY6UOM54.js +1 -0
  74. package/dist/m/c-F3CKJTJS.js +1 -0
  75. package/dist/m/c-F7Y6FLPY.js +1 -0
  76. package/dist/m/c-FA4DZVTC.js +1 -0
  77. package/dist/m/c-FILLTJA7.js +1 -0
  78. package/dist/m/c-G2BUZITR.js +1 -0
  79. package/dist/m/c-GB3JTV6E.js +1 -0
  80. package/dist/m/c-GBGWXTX4.js +1 -0
  81. package/dist/m/c-GHBCCVG4.js +1 -0
  82. package/dist/m/c-GJAEGGXY.js +1 -0
  83. package/dist/m/c-GOWBDM6J.js +1 -0
  84. package/dist/m/c-GQ6F6IDK.js +1 -0
  85. package/dist/m/c-H4LG442Q.js +1 -0
  86. package/dist/m/c-HA6INT6J.js +1 -0
  87. package/dist/m/c-HPURYVZS.js +2 -0
  88. package/dist/m/c-HRDCD3WN.js +67 -0
  89. package/dist/m/c-HT33EQRN.js +1 -0
  90. package/dist/m/c-HVYXIS72.js +1 -0
  91. package/dist/m/c-IB52R237.js +1 -0
  92. package/dist/m/c-IJUK2GPW.js +1 -0
  93. package/dist/m/c-IKWNE4R4.js +1 -0
  94. package/dist/m/c-IU3IYEU6.js +1 -0
  95. package/dist/m/c-IZ2EBRAJ.js +1 -0
  96. package/dist/m/c-J7CA54IP.js +1 -0
  97. package/dist/m/c-JAX2667S.js +6 -0
  98. package/dist/m/c-KI7M4AY3.js +1 -0
  99. package/dist/m/c-KIPQJX4B.js +1 -0
  100. package/dist/m/c-KKWLDOPM.js +1 -0
  101. package/dist/m/c-KR4UW4KW.js +1 -0
  102. package/dist/m/c-KY3VJGUA.js +8 -0
  103. package/dist/m/c-L4WQSC27.js +1 -0
  104. package/dist/m/c-LFPHCXY3.js +1 -0
  105. package/dist/m/c-LR4CGEPT.js +91 -0
  106. package/dist/m/c-LRPUO2MX.js +1 -0
  107. package/dist/m/c-LTGMXXKO.js +1 -0
  108. package/dist/m/c-LXENEBV7.js +1 -0
  109. package/dist/m/c-LZJPNR2W.js +1 -0
  110. package/dist/m/c-MMUIUUZG.js +2 -0
  111. package/dist/m/c-MTQHWQC3.js +1 -0
  112. package/dist/m/c-N326R2JD.js +1 -0
  113. package/dist/m/c-N7JPUPGC.js +1 -0
  114. package/dist/m/c-NMJRXKPC.js +8 -0
  115. package/dist/m/c-NRPJEVJS.js +1 -0
  116. package/dist/m/c-NUHP2XDB.js +1 -0
  117. package/dist/m/c-NZMNXVF6.js +1 -0
  118. package/dist/m/c-OCSZ4QGN.js +1 -0
  119. package/dist/m/c-OIBUTDXI.js +1 -0
  120. package/dist/m/c-OIDRZKAF.js +1 -0
  121. package/dist/m/c-OYTFP5QN.js +1 -0
  122. package/dist/m/c-P7KNDG34.js +1 -0
  123. package/dist/m/c-PPOSCAQD.js +1 -0
  124. package/dist/m/c-PQ5LK6QE.js +993 -0
  125. package/dist/m/c-PZ4XEPUP.js +2 -0
  126. package/dist/m/c-QHIWXHRO.js +1 -0
  127. package/dist/m/c-QHWJ5ZIJ.js +1 -0
  128. package/dist/m/c-QIX5BJYN.js +1 -0
  129. package/dist/m/c-QNKREOL6.js +1 -0
  130. package/dist/m/c-QQHEX6HA.js +1 -0
  131. package/dist/m/c-R7RMANJI.js +9 -0
  132. package/dist/m/c-RI4NT75Y.js +1 -0
  133. package/dist/m/c-RM7J7BV2.js +1 -0
  134. package/dist/m/c-RUJKSUQW.js +1 -0
  135. package/dist/m/c-RVMWGXEJ.js +1 -0
  136. package/dist/m/c-S7H2DRCB.js +1 -0
  137. package/dist/m/c-S7LK4KUE.js +1 -0
  138. package/dist/m/c-SGCCC4FW.js +25 -0
  139. package/dist/m/c-SGIA4IEQ.js +188 -0
  140. package/dist/m/c-SWRJFCNN.js +1 -0
  141. package/dist/m/c-T4VO4OCB.js +1 -0
  142. package/dist/m/c-TCCA5BZN.js +2 -0
  143. package/dist/m/c-TQEMVJCS.js +1 -0
  144. package/dist/m/c-TQZ2JYHD.js +1 -0
  145. package/dist/m/c-TR6RMDQ7.js +3 -0
  146. package/dist/m/c-TRS6TM6O.js +1 -0
  147. package/dist/m/c-UGHH4MB3.js +1 -0
  148. package/dist/m/c-UKHTLWUW.js +1 -0
  149. package/dist/m/c-UL2YUY52.js +1 -0
  150. package/dist/m/c-UNN7LWCT.js +1 -0
  151. package/dist/m/c-UXBMRDZB.js +235 -0
  152. package/dist/m/c-V7PZZRG7.js +1 -0
  153. package/dist/m/c-VAK7SG37.js +1 -0
  154. package/dist/m/c-VDSS4K3Z.js +1 -0
  155. package/dist/m/c-VFX45IZQ.js +1 -0
  156. package/dist/m/c-VHNSBD2M.js +1 -0
  157. package/dist/m/c-VKEDWYDF.js +1 -0
  158. package/dist/m/c-VL52ADDR.js +1 -0
  159. package/dist/m/c-WN5AY3OZ.js +1 -0
  160. package/dist/m/c-WNYBLIOZ.js +1 -0
  161. package/dist/m/c-WRBKEJD4.js +1 -0
  162. package/dist/m/c-WWDBYXLK.js +1 -0
  163. package/dist/m/c-WYFDLITL.js +1 -0
  164. package/dist/m/c-XN6MBKI6.js +67 -0
  165. package/dist/m/c-XNNW2CWK.js +1 -0
  166. package/dist/m/c-XPELB6E5.js +1 -0
  167. package/dist/m/c-XQXZAO7N.js +1 -0
  168. package/dist/m/c-Y6USGTS5.js +5 -0
  169. package/dist/m/c-YDH7Q3NY.js +1 -0
  170. package/dist/m/c-YG2NJYS6.js +135 -0
  171. package/dist/m/c-Z36J63PP.js +1 -0
  172. package/dist/m/c-Z4VRC7GU.js +7 -0
  173. package/dist/m/c-Z6K52OLP.js +19 -0
  174. package/dist/m/c-ZDY2MDAA.js +21 -0
  175. package/dist/m/c-ZE46QDIH.js +1 -0
  176. package/dist/m/c-ZUCOKOHT.js +1 -0
  177. package/dist/m/core/admin-attrs-VGNLAUDK.js +1 -0
  178. package/dist/m/core/autosave-E4PEFPZ6.js +1 -0
  179. package/dist/m/core/conflict-notice-VQ6Y64PH.js +1 -0
  180. package/dist/m/core/draft-mode-WSQAT67S.js +1 -0
  181. package/dist/m/core/host-permission-XN3K2IW3.js +1 -0
  182. package/dist/m/core/is-edit-mode-JXHDVGUL.js +1 -0
  183. package/dist/m/core/persist-HKHA66IY.js +3 -0
  184. package/dist/m/core/recovery-TBBSICE2.js +1 -0
  185. package/dist/m/core/save-WUCHTQBE.js +1 -0
  186. package/dist/m/core/save-core-FJVHT5M3.js +1 -0
  187. package/dist/m/core/snapshot-F3SWDZMM.js +1 -0
  188. package/dist/m/core/unsaved-warning-STKBHE6G.js +1 -0
  189. package/dist/m/dom/all-APS5ZSKP.js +1 -0
  190. package/dist/m/dom/dom-helpers-L7OSR6S4.js +1 -0
  191. package/dist/m/events/index-23DPTUT4.js +1 -0
  192. package/dist/m/internals/index-WOVAP3RU.js +1 -0
  193. package/dist/m/lib/cache-bust-CGWT6ZJI.js +1 -0
  194. package/dist/m/lib/region-policy-SB2AWVG5.js +1 -0
  195. package/dist/m/loader-HXX6YNH5.js +1 -0
  196. package/dist/m/manifest-F22DEDAC.js +1 -0
  197. package/dist/m/manifest-edit-C3C7376B.js +1 -0
  198. package/dist/m/manifest.json +3491 -0
  199. package/dist/m/options/options-2LH76JQ3.js +1 -0
  200. package/dist/m/page/editor-XUTB2HB2.js +189 -0
  201. package/dist/m/plugins/ai-edit-ZQ4CGWIP.js +6 -0
  202. package/dist/m/plugins/bind-text-NX46N5UV.js +1 -0
  203. package/dist/m/plugins/cms-HP3LSTPN.js +2293 -0
  204. package/dist/m/plugins/demo-ZIBFAA3R.js +1 -0
  205. package/dist/m/plugins/derive-UAAA4V4S.js +1 -0
  206. package/dist/m/plugins/indicator-PV4YW2ID.js +1 -0
  207. package/dist/m/plugins/live-NUTTXSBS.js +1 -0
  208. package/dist/m/plugins/menu-HCKO3DSP.js +138 -0
  209. package/dist/m/plugins/message-LQ6EDH4V.js +1 -0
  210. package/dist/m/plugins/page-KSUH7G6J.js +2 -0
  211. package/dist/m/plugins/page-view-W73OW7WI.js +1 -0
  212. package/dist/m/plugins/people-AJJ32YCG.js +1 -0
  213. package/dist/m/plugins/quickcrop-QNY3PKLD.js +26 -0
  214. package/dist/m/plugins/quickcrop-QNY3PKLD.js.LEGAL.txt +7 -0
  215. package/dist/m/plugins/richclay-RC3L2F6X.js +517 -0
  216. package/dist/m/plugins/richclay-RC3L2F6X.js.LEGAL.txt +1 -0
  217. package/dist/m/plugins/sortable-YRMQX3ZU.js +1 -0
  218. package/dist/m/plugins/source-KHK5UUSK.js +1 -0
  219. package/dist/m/plugins/undo-OF2L3CXU.js +1 -0
  220. package/dist/m/plugins/unsent-HJFLQJ2O.js +1 -0
  221. package/dist/m/plugins/upgrade-ZNYODP5Y.js +1 -0
  222. package/dist/m/plugins/upload-XSGNILUY.js +1 -0
  223. package/dist/m/plugins/visitor-drafts-XK5GW55Q.js +21 -0
  224. package/dist/m/plugins/visitor-drafts-owner-KSSH75EV.js +1 -0
  225. package/dist/m/plugins/wire-ZWVWKF76.js +1 -0
  226. package/dist/m/reader-core-ILWLXVMP.js +68 -0
  227. package/dist/m/route/route-KOCZSEGN.js +1 -0
  228. package/dist/m/sync/live-sync-4AUVXVJU.js +1 -0
  229. package/dist/m/ui/index-EVHKMKBL.js +1 -0
  230. package/dist/m/utils/index-4TJCVLT7.js +1 -0
  231. package/dist/m/vendor/Sortable.vendor-A755ITLN.js +3 -0
  232. package/dist/m/vendor/Sortable.vendor-A755ITLN.js.LEGAL.txt +1 -0
  233. package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +6 -0
  234. package/dist/offline-manifest.json +3800 -0
  235. package/dist/page/themes/light-1.css +406 -0
  236. package/dist/server/core.cjs +23662 -22860
  237. package/dist/server/offline-runtime.cjs +4954 -0
  238. package/dist/server/offline-runtime.mjs +4923 -0
  239. package/dist/server/rooms.mjs +9 -0
  240. package/docs/guide.md +1078 -669
  241. package/entries/all.js +2 -0
  242. package/entries/clay-data.js +1 -1
  243. package/entries/clay-dom.js +2 -0
  244. package/entries/clay-events.js +2 -0
  245. package/entries/clay-internals.js +2 -0
  246. package/entries/clay-options.js +2 -0
  247. package/entries/clay-router.js +2 -0
  248. package/entries/clay-ui.js +2 -0
  249. package/entries/clay-utils.js +2 -0
  250. package/entries/clay.js +2 -0
  251. package/entries/sap.js +6 -6
  252. package/fonts/ibm-plex-mono-LICENSE +93 -0
  253. package/fonts/ibm-plex-mono-latin-300-normal.woff2 +0 -0
  254. package/fonts/ibm-plex-mono-latin-400-italic.woff2 +0 -0
  255. package/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  256. package/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  257. package/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  258. package/fonts/ibm-plex-sans-LICENSE +93 -0
  259. package/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
  260. package/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
  261. package/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
  262. package/fonts/ibm-plex.css +71 -0
  263. package/fonts/inter-LICENSE +93 -0
  264. package/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  265. package/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
  266. package/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
  267. package/fonts/inter-greek-wght-normal.woff2 +0 -0
  268. package/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  269. package/fonts/inter-latin-wght-normal.woff2 +0 -0
  270. package/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
  271. package/fonts/inter.css +62 -0
  272. package/fonts/newsreader-LICENSE +93 -0
  273. package/fonts/newsreader-latin-ext-opsz-normal.woff2 +0 -0
  274. package/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
  275. package/fonts/newsreader-vietnamese-opsz-normal.woff2 +0 -0
  276. package/fonts/newsreader.css +26 -0
  277. package/fonts/work-sans-LICENSE +93 -0
  278. package/fonts/work-sans-latin-wght-normal.woff2 +0 -0
  279. package/fonts/work-sans.css +8 -0
  280. package/package.json +20 -3
  281. package/packed-contract.json +1 -0
  282. package/src/attrs/add-from.js +27 -4
  283. package/src/attrs/save-freeze.js +7 -52
  284. package/src/core/admin-attrs.js +119 -12
  285. package/src/core/admin-contenteditable.js +12 -10
  286. package/src/core/admin-inputs.js +14 -15
  287. package/src/core/admin-onclick.js +2 -0
  288. package/src/core/autosave.js +74 -21
  289. package/src/core/conflict-download.js +22 -0
  290. package/src/core/conflict-notice-ui.js +1173 -0
  291. package/src/core/conflict-notice.js +140 -697
  292. package/src/core/edit-mode.js +147 -14
  293. package/src/core/etag.js +30 -12
  294. package/src/core/host-meta.js +72 -8
  295. package/src/core/host-permission.js +29 -0
  296. package/src/core/is-edit-mode.js +145 -12
  297. package/src/core/mode-key.js +125 -0
  298. package/src/core/mode-lifecycle.js +544 -0
  299. package/src/core/mode-receipt.js +30 -0
  300. package/src/core/mode-refusal.js +13 -0
  301. package/src/core/mode-resources.js +52 -0
  302. package/src/core/mode-support.js +82 -0
  303. package/src/core/mode-switch.js +259 -0
  304. package/src/core/mode-transition.js +112 -0
  305. package/src/core/page-data-write.js +305 -0
  306. package/src/core/page-data.js +26 -227
  307. package/src/core/page-format-wire.js +4 -0
  308. package/src/core/page-format.js +58 -0
  309. package/src/core/persist.js +37 -9
  310. package/src/core/preserve-authored.js +114 -0
  311. package/src/core/recovery.js +772 -0
  312. package/src/core/runtime-url.js +105 -0
  313. package/src/core/save-core.js +109 -12
  314. package/src/core/save-replace.js +72 -0
  315. package/src/core/save-size-notice.js +134 -0
  316. package/src/core/save-size.js +140 -0
  317. package/src/core/save.js +805 -118
  318. package/src/core/snapshot.js +121 -11
  319. package/src/core/source-map.js +157 -9
  320. package/src/core/unsaved-warning.js +14 -4
  321. package/src/core/upgrade-run.js +408 -0
  322. package/src/core/version.js +18 -0
  323. package/src/lib/assets.js +30 -0
  324. package/src/lib/autosave-debug-gate.js +50 -0
  325. package/src/lib/autosave-scheduler.js +141 -0
  326. package/src/lib/boot-imports.js +8 -0
  327. package/src/lib/derived.js +3 -1
  328. package/src/lib/dirty-gate.js +15 -0
  329. package/src/lib/doc-storage.js +33 -0
  330. package/src/lib/effect.js +9 -4
  331. package/src/lib/mutation.js +4 -2
  332. package/src/lib/offline-runtime.js +226 -0
  333. package/src/lib/preload.js +48 -0
  334. package/src/lib/root-attrs.js +1 -1
  335. package/src/lib/trash.js +18 -0
  336. package/src/lib/undo/capture-move.js +152 -0
  337. package/src/live/local-channel.js +61 -0
  338. package/src/live/local-lane.js +60 -9
  339. package/src/live/server-lane.js +6 -3
  340. package/src/loader-logic.js +76 -15
  341. package/src/loader.js +218 -30
  342. package/src/page/adopt-boot.js +76 -22
  343. package/src/page/adopt.js +25 -4
  344. package/src/page/awareness.js +230 -0
  345. package/src/page/blocks.js +79 -5
  346. package/src/page/blocksel.js +20 -4
  347. package/src/page/board-face.js +13 -0
  348. package/src/page/board-panel.js +5 -17
  349. package/src/page/board-style.js +2 -13
  350. package/src/page/board-view.js +1 -11
  351. package/src/page/board-views.js +17 -0
  352. package/src/page/board.js +2 -2
  353. package/src/page/boot-pack.js +26 -0
  354. package/src/page/boot.js +237 -0
  355. package/src/page/checklist.js +1 -1
  356. package/src/page/chrome.js +411 -61
  357. package/src/page/csv-import.js +17 -2
  358. package/src/page/document-title-dom.js +40 -0
  359. package/src/page/document-title-runtime.js +76 -0
  360. package/src/page/document-title.js +9 -0
  361. package/src/page/drag.js +48 -13
  362. package/src/page/drop.js +2 -1
  363. package/src/page/editor.js +330 -86
  364. package/src/page/feature-loader.js +72 -0
  365. package/src/page/features/board.js +12 -0
  366. package/src/page/features/code.js +13 -0
  367. package/src/page/features/media.js +290 -0
  368. package/src/page/features/registry.js +23 -0
  369. package/src/page/features/table.js +383 -0
  370. package/src/page/{tool-view.js → features/tool.js} +33 -2
  371. package/src/page/format-codec.js +215 -0
  372. package/src/page/format-gate.js +179 -0
  373. package/src/page/format-level.js +157 -0
  374. package/src/page/highlight-slot.js +23 -0
  375. package/src/page/highlight.js +30 -16
  376. package/src/page/history-intent.js +78 -0
  377. package/src/page/inline.js +18 -25
  378. package/src/page/items.js +52 -11
  379. package/src/page/link.js +1 -0
  380. package/src/page/markdown.js +86 -1
  381. package/src/page/media-views.js +3 -0
  382. package/src/page/media.js +33 -245
  383. package/src/page/outline-cache.js +11 -0
  384. package/src/page/placeholder.js +27 -7
  385. package/src/page/projection.js +196 -50
  386. package/src/page/reader-patch.js +306 -0
  387. package/src/page/recover.js +1 -1
  388. package/src/page/rich/page-tool.js +1 -4
  389. package/src/page/runtime-owner.js +27 -0
  390. package/src/page/save-projection.js +7 -4
  391. package/src/page/schema.js +14 -0
  392. package/src/page/table-rect-key.js +3 -0
  393. package/src/page/table-select.js +4 -3
  394. package/src/page/table-style.js +1 -1
  395. package/src/page/table-views.js +3 -0
  396. package/src/page/table.js +8 -293
  397. package/src/page/themes/light-1.css +139 -2
  398. package/src/page/themes/light-1.source.css +269 -0
  399. package/src/page/tool-capability.js +3 -0
  400. package/src/page/tool-views.js +3 -0
  401. package/src/page/view.js +390 -107
  402. package/src/page/ybind/awareness.js +172 -0
  403. package/src/page/ybind/binding.js +9 -1
  404. package/src/page/ybind/bridge.js +50 -47
  405. package/src/page/ybind/decode.js +52 -19
  406. package/src/page/ybind/doc.js +27 -2
  407. package/src/page/ybind/group.js +12 -3
  408. package/src/page/ybind/index.js +2 -0
  409. package/src/page/ybind/lineage.js +71 -0
  410. package/src/page/ybind/marks.js +25 -1
  411. package/src/page/ybind/migrate.js +48 -13
  412. package/src/page/ybind/moves.js +32 -21
  413. package/src/page/ybind/positions.js +50 -0
  414. package/src/page/ybind/provider.js +84 -22
  415. package/src/page/ybind/recovery-proof.js +191 -0
  416. package/src/page/ybind/recovery-replay.js +130 -0
  417. package/src/page/ybind/tokens.js +15 -6
  418. package/src/page/ybind/walk.js +10 -3
  419. package/src/page/ybind/writer.js +48 -4
  420. package/src/plugins/ai-edit.js +167 -32
  421. package/src/plugins/bind-text.js +218 -0
  422. package/src/plugins/cms.js +93 -0
  423. package/src/plugins/indicator.js +57 -5
  424. package/src/plugins/live.js +282 -34
  425. package/src/plugins/menu/claygoo.svg.js +1 -0
  426. package/src/plugins/menu/seo-head.js +323 -0
  427. package/src/plugins/menu/seo.js +849 -0
  428. package/src/plugins/menu.js +425 -0
  429. package/src/plugins/page-view.js +131 -0
  430. package/src/plugins/page.js +1022 -275
  431. package/src/plugins/people.js +158 -31
  432. package/src/plugins/richclay.js +119 -9
  433. package/src/plugins/sortable.js +370 -60
  434. package/src/plugins/source.js +189 -366
  435. package/src/plugins/undo.js +289 -19
  436. package/src/plugins/unsent.js +132 -0
  437. package/src/plugins/upgrade-run.js +1 -0
  438. package/src/plugins/upgrade.js +210 -0
  439. package/src/plugins/upload-task.js +571 -0
  440. package/src/plugins/upload-ui.js +265 -0
  441. package/src/plugins/upload.js +34 -153
  442. package/src/plugins/visitor-drafts/inert.js +32 -0
  443. package/src/plugins/visitor-drafts/owner-chip.js +3 -0
  444. package/src/plugins/visitor-drafts/prompt.js +2 -2
  445. package/src/plugins/visitor-drafts-owner.js +85 -0
  446. package/src/plugins/visitor-drafts.js +31 -42
  447. package/src/plugins/wire.js +82 -1
  448. package/src/reader-core.js +26 -0
  449. package/src/recovery/conflicts.js +287 -0
  450. package/src/recovery/identity.js +154 -0
  451. package/src/recovery/store.js +792 -0
  452. package/src/recovery/undo.js +257 -0
  453. package/src/server/checkpoint/index.js +68 -4
  454. package/src/server/offline-runtime/index.js +214 -0
  455. package/src/server/rooms/index.js +2 -1
  456. package/src/server/rooms/live-data-rooms.js +2 -2
  457. package/src/server/rooms/page-admission.js +33 -0
  458. package/src/server/rooms/page-lineage.js +56 -0
  459. package/src/server/rooms/page-rebase.js +11 -5
  460. package/src/server/rooms/page-state.js +2 -0
  461. package/src/server/rooms/page-write-admission.js +9 -3
  462. package/src/source/session.js +705 -0
  463. package/src/sync/conflict-revert.js +5 -4
  464. package/src/sync/conflicts-edit.js +119 -0
  465. package/src/sync/conflicts-facade.js +49 -0
  466. package/src/sync/conflicts.js +99 -1
  467. package/src/sync/editing-marker.js +37 -6
  468. package/src/sync/editing-sender.js +8 -1
  469. package/src/sync/live-sync-edit.js +63 -0
  470. package/src/sync/live-sync.js +364 -119
  471. package/src/sync/local-presence.js +187 -0
  472. package/src/sync/merge-declarations.js +10 -0
  473. package/src/sync/merge-engine.js +12 -0
  474. package/src/sync/presence-store.js +412 -0
  475. package/src/sync/presence-target.js +243 -0
  476. package/src/sync/presence.js +72 -41
  477. package/src/sync/saved-handoff.js +200 -0
  478. package/src/sync/saved-stream.js +535 -0
  479. package/src/sync/version-guard.js +92 -0
  480. package/src/sync/wire-profile.js +81 -0
  481. package/src/ui/bevel-controls.js +2 -8
  482. package/src/ui/page-scheme.js +7 -0
  483. package/src/ui/skins/cms.js +1 -1
  484. package/src/ui/theme-config.js +150 -0
  485. package/src/ui/theme.js +6 -138
  486. package/src/ui/toast-lazy.js +11 -0
  487. package/src/vendor/LICENSES-optional.md +253 -0
  488. package/src/vendor/highlight.vendor.js +3 -0
  489. package/src/vendor/hljs-bash.vendor.js +2 -0
  490. package/src/vendor/hljs-css.vendor.js +2 -0
  491. package/src/vendor/hljs-javascript.vendor.js +2 -0
  492. package/src/vendor/hljs-json.vendor.js +2 -0
  493. package/src/vendor/hljs-python.vendor.js +2 -0
  494. package/src/vendor/hljs-xml.vendor.js +2 -0
  495. package/src/vendor/hyper-html-api-data.vendor.js +1 -1
  496. package/src/vendor/hyper-html-api-upgrade.vendor.js +5 -0
  497. package/src/vendor/hyper-morph-identity.vendor.js +2 -0
  498. package/src/vendor/hyper-morph-json.vendor.js +3 -0
  499. package/src/vendor/hyper-morph.vendor.js +6 -6
  500. package/src/vendor/hyper-undo.vendor.js +1 -1
  501. package/src/vendor/hypercms.vendor.js +169 -84
  502. package/src/vendor/marked.vendor.js +68 -0
  503. package/src/vendor/overtype.vendor.js +994 -0
  504. package/src/vendor/richclay.vendor.js +17 -17
  505. package/src/vendor/sap-core.vendor.js +5 -5
  506. package/src/vendor/sap-ownership.vendor.js +11 -7
@@ -0,0 +1,517 @@
1
+ import{a as bo}from"../c-HPURYVZS.js";import"../c-OIBUTDXI.js";import"../c-4JZDZFF6.js";import"../c-VAK7SG37.js";import"../c-NUHP2XDB.js";import{n as yo}from"../c-7O6AFR65.js";import"../c-P7KNDG34.js";import"../c-CYWLPPUS.js";import"../c-N7JPUPGC.js";import"../c-HA6INT6J.js";import"../c-WRBKEJD4.js";import"../c-VHNSBD2M.js";var vo=[".richclay-toolbar",".richclay-float",".richclay-dialog"],xo=`@layer clay-skin{
2
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog),:is(.richclay-toolbar, .richclay-float, .richclay-dialog) *{--richclay-surface:light-dark(#FFFCF6, #11131E) !important;--richclay-surface-alt:light-dark(#F4ECDF, #1A1D2C) !important;--richclay-text:light-dark(#2B241B, #ECEAF2) !important;--richclay-muted:light-dark(#6B5942, #8A90AB) !important;--richclay-border:light-dark(#D8C8AF, #353B52) !important;--richclay-accent:light-dark(#8F6310, #D9A445) !important;--richclay-accent-ink:light-dark(#FDF8F0, #0B0C13) !important;--richclay-focus:light-dark(#8F6310, #D9A445) !important;--richclay-danger:light-dark(#A83A2C, #FF5566) !important;--richclay-radius:0px !important;--richclay-control-size:32px !important;--richclay-shadow:0 1px 2px rgba(0,0,0,.12),0 10px 28px -12px rgba(0,0,0,.35) !important}
3
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog){font-family:system-ui,-apple-system,"Segoe UI",sans-serif !important}
4
+ :where(.richclay-float, .richclay-dialog):is(.richclay-toolbar, .richclay-float, .richclay-dialog){color:light-dark(#2B241B, #ECEAF2) !important;background:light-dark(#FFFCF6, #11131E) !important;border:1px solid light-dark(#D8C8AF, #353B52) !important}
5
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-toolbar{gap:3px !important;margin:0 !important;padding:8px !important;border:1px solid light-dark(#D8C8AF, #353B52) !important;border-radius:0 !important;background:light-dark(#F4ECDF, #1A1D2C) !important;color:light-dark(#2B241B, #ECEAF2) !important}
6
+ .richclay-toolbar:is(.richclay-toolbar, .richclay-float, .richclay-dialog){gap:3px !important;padding:8px !important;border:1px solid light-dark(#D8C8AF, #353B52) !important;border-radius:0 !important;background:light-dark(#F4ECDF, #1A1D2C) !important;color:light-dark(#2B241B, #ECEAF2) !important}
7
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-button{min-width:32px !important;height:32px !important;padding:0 7px !important;gap:6px !important;border:2px solid !important;border-color:light-dark(#FFF9ED, #3C4260) light-dark(#D6C3A5, #1B2033) light-dark(#D6C3A5, #1B2033) light-dark(#FFF9ED, #3C4260) !important;border-radius:0 !important;background:light-dark(#F1E7D4, #22273E) !important;font:14px system-ui,-apple-system,"Segoe UI",sans-serif !important;cursor:pointer !important}
8
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-button:is([aria-pressed="true"], [aria-expanded="true"]){background:light-dark(#E3D0B3, #28304D) !important;border-color:light-dark(#B89F7B, #1F2339) light-dark(#F0E1C9, #4D587A) light-dark(#F0E1C9, #4D587A) light-dark(#B89F7B, #1F2339) !important;box-shadow:none !important;color:light-dark(#2B241B, #ECEAF2) !important}
9
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-button[aria-pressed="true"] > svg{translate:1px 1px !important}
10
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-button:disabled{opacity:.45 !important;cursor:not-allowed !important}
11
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-button:hover:not([aria-pressed="true"], [aria-expanded="true"], :disabled){border-color:light-dark(#FFF9ED, #3C4260) light-dark(#D6C3A5, #1B2033) light-dark(#D6C3A5, #1B2033) light-dark(#FFF9ED, #3C4260) !important;background:color-mix(in srgb, light-dark(#F1E7D4, #22273E), light-dark(#FFF9ED, #3C4260) 45%) !important}
12
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-separator{align-self:center !important;height:22px !important;margin:0 5px !important;background:light-dark(#D8C8AF, #353B52) !important}
13
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-menu{inset-block-start:38px !important;min-width:210px !important;padding:5px !important;border-radius:0 !important;box-shadow:0 1px 2px rgba(0,0,0,.12),0 10px 28px -12px rgba(0,0,0,.35) !important}
14
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-menu-item{padding:8px 10px !important;border:0 !important;border-radius:0 !important;font:14px system-ui,-apple-system,"Segoe UI",sans-serif !important}
15
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-menu-item[aria-checked="true"]{background:light-dark(#F4ECDF, #1A1D2C) !important;box-shadow:inset 2px 0 light-dark(#8F6310, #D9A445) !important}
16
+ .richclay-dialog:is(.richclay-toolbar, .richclay-float, .richclay-dialog){width:min(100%, 360px) !important;padding:14px 16px 12px !important;border:1px solid light-dark(#D8C8AF, #353B52) !important;border-radius:0 !important;background:light-dark(#FFFCF6, #11131E) !important;color:light-dark(#2B241B, #ECEAF2) !important;box-shadow:0 1px 2px rgba(0,0,0,.12),0 10px 28px -12px rgba(0,0,0,.35) !important}
17
+ .richclay-dialog:is(.richclay-toolbar, .richclay-float, .richclay-dialog)::before{content:"" !important;position:absolute !important;left:calc(var(--richclay-dialog-arrow, 28px) - 6px) !important;top:-7px !important;width:12px !important;height:12px !important;background:light-dark(#FFFCF6, #11131E) !important;border-top:1px solid light-dark(#D8C8AF, #353B52) !important;border-left:1px solid light-dark(#D8C8AF, #353B52) !important;transform:rotate(45deg) !important}
18
+ .richclay-dialog:is(.richclay-toolbar, .richclay-float, .richclay-dialog)[data-richclay-side="above"]::before{top:auto !important;bottom:-7px !important;border:0 !important;border-right:1px solid light-dark(#D8C8AF, #353B52) !important;border-bottom:1px solid light-dark(#D8C8AF, #353B52) !important}
19
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-dialog-title{margin-bottom:2px !important;font:500 10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace !important;text-transform:uppercase !important;letter-spacing:.12em !important}
20
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-field{gap:5px !important}
21
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-field > span{color:light-dark(#4A4033, #C9CDE0) !important;font-size:12px !important}
22
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-input{min-height:30px !important;padding:4px 8px !important;border:2px solid !important;border-color:light-dark(#B89F7B, #1F2339) light-dark(#F0E1C9, #4D587A) light-dark(#F0E1C9, #4D587A) light-dark(#B89F7B, #1F2339) !important;border-radius:0 !important;background:light-dark(#F4ECDF, #1A1D2C) !important;color:light-dark(#2B241B, #ECEAF2) !important;font:13px system-ui,-apple-system,"Segoe UI",sans-serif !important}
23
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-dialog-actions{margin-top:4px !important;padding-top:12px !important;border-top:1px solid light-dark(#E8DCC6, #262B42) !important;flex-wrap:wrap !important}
24
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) :is(.richclay-primary, .richclay-secondary){min-height:30px !important;padding:4px 10px !important;border:2px solid !important;border-color:light-dark(#FFF9ED, #3C4260) light-dark(#D6C3A5, #1B2033) light-dark(#D6C3A5, #1B2033) light-dark(#FFF9ED, #3C4260) !important;border-radius:0 !important;background:light-dark(#F1E7D4, #22273E) !important;color:light-dark(#2B241B, #ECEAF2) !important;font:13px system-ui,-apple-system,"Segoe UI",sans-serif !important}
25
+ :is(.richclay-toolbar, .richclay-float, .richclay-dialog) .richclay-primary{background:light-dark(#2B241B, #ECEAF2) !important;color:light-dark(#FDF8F0, #0B0C13) !important;border-color:color-mix(in srgb, light-dark(#2B241B, #ECEAF2), white 24%) color-mix(in srgb, light-dark(#2B241B, #ECEAF2), black 32%) color-mix(in srgb, light-dark(#2B241B, #ECEAF2), black 32%) color-mix(in srgb, light-dark(#2B241B, #ECEAF2), white 24%) !important}
26
+ .richclay-float:is(.richclay-toolbar, .richclay-float, .richclay-dialog){border-radius:0 !important;box-shadow:0 1px 2px rgba(0,0,0,.12),0 10px 28px -12px rgba(0,0,0,.35) !important}
27
+ .richclay-float:is(.richclay-toolbar, .richclay-float, .richclay-dialog) > .richclay-toolbar{padding:5px !important}
28
+ .richclay-toolbar{align-items:center !important;background:var(--richclay-surface-alt) !important;border:1px solid var(--richclay-border) !important;border-radius:var(--richclay-radius) !important;color:var(--richclay-text) !important;display:flex !important;flex-wrap:wrap !important;gap:2px !important;margin-block:0 6px !important;padding:4px !important}
29
+ .richclay-toolbar:has(+ .richclay-editor){margin-block-end:0 !important;border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important}
30
+ .richclay-button{align-items:center !important;appearance:none !important;background:transparent !important;border:1px solid transparent !important;border-radius:5px !important;color:currentColor !important;display:inline-flex !important;height:var(--richclay-control-size) !important;justify-content:center !important;margin:0 !important;min-width:var(--richclay-control-size) !important;padding:0 !important;position:relative !important}
31
+ .richclay-button:hover,.richclay-button[aria-expanded="true"],.richclay-menu-item:hover{background:var(--richclay-surface) !important;border-color:var(--richclay-border) !important}
32
+ .richclay-button.is-active,.richclay-button[aria-pressed="true"],.richclay-menu-item.is-active{background:rgb(0 0 0 / 0.13) !important;border-color:rgb(0 0 0 / 0.22) !important;color:var(--richclay-text) !important;box-shadow:inset 0 1px 3px rgb(0 0 0 / 0.26) !important}
33
+ .richclay-button:focus-visible,.richclay-menu-item:focus-visible,.richclay-input:focus-visible,.richclay-primary:focus-visible,.richclay-secondary:focus-visible{outline:3px solid var(--richclay-focus) !important;outline-offset:2px !important}
34
+ .richclay-button:disabled{color:var(--richclay-muted) !important;cursor:not-allowed !important;opacity:0.55 !important}
35
+ .richclay-separator{align-self:stretch !important;background:var(--richclay-border) !important;display:inline-block !important;margin:5px 4px !important;width:1px !important}
36
+ .richclay-menu-wrap{display:inline-flex !important;position:relative !important}
37
+ .richclay-menu{background:var(--richclay-surface) !important;border:1px solid var(--richclay-border) !important;border-radius:var(--richclay-radius) !important;box-shadow:var(--richclay-shadow) !important;color:var(--richclay-text) !important;display:grid !important;gap:2px !important;inset-block-start:calc(100% + 4px) !important;inset-inline-start:0 !important;min-width:160px !important;padding:4px !important;position:absolute !important;z-index:1000 !important}
38
+ .richclay-menu[hidden]{display:none !important}
39
+ .richclay-menu-item{align-items:center !important;appearance:none !important;background:transparent !important;border:1px solid transparent !important;border-radius:4px !important;color:inherit !important;display:flex !important;font:inherit !important;gap:8px !important;min-height:32px !important;padding:5px 9px !important;text-align:start !important}
40
+ .richclay-float{left:0 !important;position:fixed !important;top:0 !important;will-change:transform !important;z-index:99999 !important}
41
+ .richclay-float .richclay-toolbar{box-shadow:var(--richclay-shadow) !important;margin-block:0 !important}
42
+ .richclay-float-rail .richclay-toolbar{--richclay-control-size:28px !important;flex-direction:column !important;flex-wrap:nowrap !important}
43
+ .richclay-float-rail .richclay-toolbar svg{height:15px !important;width:15px !important}
44
+ .richclay-float-rail .richclay-separator{align-self:stretch !important;height:1px !important;margin:4px 5px !important;width:auto !important}
45
+ .richclay-float-rail .richclay-menu{inset-block-start:0 !important;inset-inline-start:calc(100% + 4px) !important}
46
+ .richclay-dialog{background:var(--richclay-surface) !important;border:1px solid var(--richclay-border) !important;border-radius:var(--richclay-radius) !important;box-shadow:var(--richclay-shadow) !important;color:var(--richclay-text) !important;display:grid !important;gap:10px !important;box-sizing:border-box !important;width:min(420px, calc(100vw - 16px)) !important;z-index:99999 !important;padding:12px !important}
47
+ .richclay-dialog-title{font-weight:650 !important}
48
+ .richclay-field{display:grid !important;gap:4px !important}
49
+ .richclay-field span{color:var(--richclay-muted) !important;font-size:0.875rem !important}
50
+ .richclay-input{background:var(--richclay-surface) !important;border:1px solid var(--richclay-border) !important;border-radius:4px !important;color:var(--richclay-text) !important;font:inherit !important;min-height:36px !important;padding:6px 8px !important}
51
+ .richclay-dialog-actions{display:flex !important;gap:8px !important;justify-content:flex-end !important}
52
+ .richclay-dialog-actions [data-richclay-remove-link]{margin-inline-end:auto !important}
53
+ .richclay-primary,.richclay-secondary{appearance:none !important;border:1px solid var(--richclay-border) !important;border-radius:4px !important;font:inherit !important;min-height:34px !important;padding:5px 10px !important}
54
+ .richclay-primary{background:var(--richclay-accent) !important;border-color:var(--richclay-accent) !important;color:var(--richclay-accent-ink) !important}
55
+ .richclay-secondary{background:var(--richclay-surface-alt) !important;color:var(--richclay-text) !important}
56
+ .richclay-sr-only{border:0 !important;clip:rect(0 0 0 0) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important}
57
+ @media (forced-colors: active){
58
+ .richclay-toolbar,.richclay-menu,.richclay-input{border-color:CanvasText !important}
59
+ .richclay-dialog{border-color:CanvasText !important}
60
+ .richclay-button.is-active,.richclay-button[aria-pressed="true"],.richclay-menu-item.is-active,.richclay-primary{background:Highlight !important;color:HighlightText !important}
61
+ .richclay-button:focus-visible,.richclay-menu-item:focus-visible,.richclay-input:focus-visible{outline-color:Highlight !important}
62
+ }
63
+ .richclay-toolbar[hidden]{display:none !important}
64
+ .richclay-button[hidden]{display:none !important}
65
+ .richclay-separator[hidden]{display:none !important}
66
+ .richclay-menu-wrap[hidden]{display:none !important}
67
+ .richclay-menu[hidden]{display:none !important}
68
+ .richclay-menu-item[hidden]{display:none !important}
69
+ .richclay-dialog[hidden]{display:none !important}
70
+ .richclay-field[hidden]{display:none !important}
71
+ .richclay-dialog-actions[hidden]{display:none !important}
72
+ }`;var Qe=(()=>{var v=Object.defineProperty,st=Object.getOwnPropertyDescriptor,at=Object.getOwnPropertyNames,Je=Object.prototype.hasOwnProperty,Ao=(t,e)=>{for(var i in e)v(t,i,{get:e[i],enumerable:!0})},Eo=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of at(e))!Je.call(t,n)&&n!==i&&v(t,n,{get:()=>e[n],enumerable:!(r=st(e,n))||r.enumerable});return t},_o=t=>Eo(v({},"__esModule",{value:!0}),t),hr={};Ao(hr,{RichClay:()=>Ki,default:()=>bs,stopAutoWatch:()=>ys});var To=()=>!0,et=class{constructor(t,e,i){this.root=t,this.currentNode=t,this.nodeType=e,this.filter=i||To}isAcceptableNode(t){let e=t.nodeType;return!!((e===Node.ELEMENT_NODE?1:e===Node.TEXT_NODE?4:0)&this.nodeType)&&this.filter(t)}nextNode(){let t=this.root,e=this.currentNode,i;for(;;){for(i=e.firstChild;!i&&e&&e!==t;)i=e.nextSibling,i||(e=e.parentNode);if(!i)return null;if(this.isAcceptableNode(i))return this.currentNode=i,i;e=i}}previousNode(){let t=this.root,e=this.currentNode,i;for(;;){if(e===t)return null;if(i=e.previousSibling,i)for(;e=i.lastChild;)i=e;else i=e.parentNode;if(!i)return null;if(this.isAcceptableNode(i))return this.currentNode=i,i;e=i}}previousPONode(){let t=this.root,e=this.currentNode,i;for(;;){for(i=e.lastChild;!i&&e&&e!==t;)i=e.previousSibling,i||(e=e.parentNode);if(!i)return null;if(this.isAcceptableNode(i))return this.currentNode=i,i;e=i}}},Mt=navigator.userAgent,ti=/Mac OS X/.test(Mt),ur=/Windows NT/.test(Mt),pr=/iP(?:ad|hone|od)/.test(Mt)||ti&&!!navigator.maxTouchPoints,tc=/Android/.test(Mt),ko=/Gecko\//.test(Mt),Te=/Edge\//.test(Mt),No=!Te&&/WebKit\//.test(Mt),Y=ti||pr?"Meta-":"Ctrl-",ke=No,Lo="onbeforeinput"in document&&"inputType"in new InputEvent("input"),ct=/[^ \t\r\n\u200B]/,Do=/^(?:#text|A(?:BBR|CRONYM)?|B(?:R|D[IO])?|C(?:ITE|ODE)|D(?:ATA|EL|FN)|EM|FONT|HR|I(?:FRAME|MG|NPUT|NS)?|KBD|Q|R(?:P|T|UBY)|S(?:AMP|MALL|PAN|TR(?:IKE|ONG)|U[BP])?|TIME|U|VAR|WBR)$/,Oo=new Set(["BR","HR","IFRAME","IMG","INPUT"]),Ro=0,ei=1,fr=2,mr=3,Ne=new WeakMap,gr=()=>{Ne=new WeakMap},At=t=>Oo.has(t.nodeName),ii=t=>{switch(t.nodeType){case 8:case 3:return ei;case 1:case 11:if(Ne.has(t))return Ne.get(t);break;default:return Ro}let e;return Array.from(t.childNodes).every(T)?Do.test(t.nodeName)?e=ei:e=fr:e=mr,Ne.set(t,e),e},T=t=>ii(t)===ei,Et=t=>ii(t)===fr,Gt=t=>ii(t)===mr,C=(t,e,i)=>{let r=document.createElement(t);if(e instanceof Array&&(i=e,e=null),e)for(let n in e){let o=e[n];o!==void 0&&r.setAttribute(n,o)}return i&&i.forEach(n=>r.appendChild(n)),r},yr=(t,e)=>At(t)||t.nodeType!==e.nodeType||t.nodeName!==e.nodeName?!1:t instanceof HTMLElement&&e instanceof HTMLElement?t.nodeName!=="A"&&t.className===e.className&&t.style.cssText===e.style.cssText:!0,ri=(t,e,i)=>{if(t.nodeName!==e)return!1;for(let r in i)if(!("getAttribute"in t)||t.getAttribute(r)!==i[r])return!1;return!0},k=(t,e,i,r)=>{for(;t&&t!==e;){if(ri(t,i,r))return t;t=t.parentNode}return null},ni=(t,e)=>{let i=t.childNodes;for(;e&&t instanceof Element;)t=i[e-1],i=t.childNodes,e=i.length;return t},br=(t,e)=>{let i=t;if(i instanceof Element){let r=i.childNodes;if(e<r.length)i=r[e];else{for(;i&&!i.nextSibling;)i=i.parentNode;i&&(i=i.nextSibling)}}return i},ot=t=>t instanceof Element||t instanceof DocumentFragment?t.childNodes.length:t instanceof CharacterData?t.length:0,L=t=>{let e=document.createDocumentFragment(),i=t.firstChild;for(;i;)e.appendChild(i),i=t.firstChild;return e},z=t=>{let e=t.parentNode;return e&&e.removeChild(t),t},G=(t,e)=>{let i=t.parentNode;i&&i.replaceChild(e,t)},Io=t=>t instanceof Element?t.nodeName==="BR":ct.test(t.data),Le=(t,e)=>{let i=t.parentNode;for(;T(i);)i=i.parentNode;let r=new et(i,5,Io);return r.currentNode=t,!!r.nextNode()||e&&!r.previousNode()},De=(t,e)=>{let i=new et(t,4),r,n;for(;r=i.nextNode();)for(;(n=r.data.indexOf("\u200B"))>-1&&(!e||r.parentNode!==e);)if(r.length===1){let o=r,a=o.parentNode;for(;a&&(a.removeChild(o),i.currentNode=a,!(!T(a)||ot(a)));)o=a,a=o.parentNode;break}else r.deleteData(n,1)},Mo=0,Bo=1,Fo=2,Po=3,_t=(t,e,i)=>{let r=document.createRange();if(r.selectNode(e),i){let n=t.compareBoundaryPoints(Po,r)>-1,o=t.compareBoundaryPoints(Bo,r)<1;return!n&&!o}else{let n=t.compareBoundaryPoints(Mo,r)<1,o=t.compareBoundaryPoints(Fo,r)>-1;return n&&o}},Z=t=>{let{startContainer:e,startOffset:i,endContainer:r,endOffset:n}=t;for(;!(e instanceof Text);){let o=e.childNodes[i];if(!o||At(o)){if(i&&(o=e.childNodes[i-1],o instanceof Text)){let a=o,l;for(;!a.length&&(l=a.previousSibling)&&l instanceof Text;)a.remove(),a=l;e=a,i=a.data.length}break}e=o,i=0}if(n)for(;!(r instanceof Text);){let o=r.childNodes[n-1];if(!o||At(o)){if(o&&o.nodeName==="BR"&&!Le(o,!1)){n-=1;continue}break}r=o,n=ot(r)}else for(;!(r instanceof Text);){let o=r.firstChild;if(!o||At(o))break;r=o}t.setStart(e,i),t.setEnd(r,n)},Bt=(t,e,i,r)=>{let n=t.startContainer,o=t.startOffset,a=t.endContainer,l=t.endOffset,c;for(e||(e=t.commonAncestorContainer),i||(i=e);!o&&n!==e&&n!==r;)c=n.parentNode,o=Array.from(c.childNodes).indexOf(n),n=c;for(;!(a===i||a===r||(a.nodeType!==3&&a.childNodes[l]&&a.childNodes[l].nodeName==="BR"&&!Le(a.childNodes[l],!1)&&(l+=1),l!==ot(a)));)c=a.parentNode,l=Array.from(c.childNodes).indexOf(a)+1,a=c;t.setStart(n,o),t.setEnd(a,l)},vr=(t,e,i)=>{let r=k(t.endContainer,i,e);if(r&&(r=r.parentNode)){let n=t.cloneRange();Bt(n,r,r,i),n.endContainer===r&&(t.setStart(n.endContainer,n.endOffset),t.setEnd(n.endContainer,n.endOffset))}return t},q=t=>{let e=null;if(t instanceof Text)return t;if(T(t)){let i=t.firstChild;if(ke)for(;i&&i instanceof Text&&!i.data;)t.removeChild(i),i=t.firstChild;i||(ke?e=document.createTextNode("\u200B"):e=document.createTextNode(""))}else if((t instanceof Element||t instanceof DocumentFragment)&&!t.querySelector("BR")&&!ct.test(t.textContent||"")){e=C("BR");let i=t,r;for(;(r=i.lastElementChild)&&!T(r);)i=r;t=i,t instanceof HTMLElement&&t.contentEditable==="true"&&(t=C("DIV"),i.appendChild(t))}if(e)try{t.appendChild(e)}catch{}return t},dt=(t,e)=>{let i=null;return/^(?:TABLE|TBODY|TR|TH|TD|P)/.test(t.nodeName)||(Array.from(t.childNodes).forEach(r=>{let n=r.nodeName==="BR";!n&&T(r)?(i||(i=C("DIV")),i.appendChild(r)):(n||i)&&(i||(i=C("DIV")),q(i),n?t.replaceChild(i,r):t.insertBefore(i,r),i=null),Gt(r)&&dt(r,e)}),i&&t.appendChild(q(i))),t},lt=(t,e,i,r)=>{if(!i.contains(t))throw new Error("split: stopNode does not contain node");if(t instanceof Text&&t!==i){if(typeof e!="number")throw new Error("Offset must be a number to split text node!");if(!t.parentNode)throw new Error("Cannot split text node with no parent!");return lt(t.parentNode,t.splitText(e),i,r)}let n=typeof e=="number"?e<t.childNodes.length?t.childNodes[e]:null:e,o=t.parentNode;if(!o||t===i||!(t instanceof Element))return n;let a=t.cloneNode(!1);for(;n;){let l=n.nextSibling;a.appendChild(n),n=l}return t instanceof HTMLOListElement&&k(t,r,"BLOCKQUOTE")&&(a.start=(+t.start||1)+t.childNodes.length-1),q(t),q(a),o.insertBefore(a,t.nextSibling),lt(o,a,i,r)},xr=(t,e)=>{let i=t.childNodes,r=i.length,n=[];for(;r--;){let o=i[r],a=r?i[r-1]:null;if(a&&T(o)&&yr(o,a))e.startContainer===o&&(e.startContainer=a,e.startOffset+=ot(a)),e.endContainer===o&&(e.endContainer=a,e.endOffset+=ot(a)),e.startContainer===t&&(e.startOffset>r?e.startOffset-=1:e.startOffset===r&&(e.startContainer=a,e.startOffset=ot(a))),e.endContainer===t&&(e.endOffset>r?e.endOffset-=1:e.endOffset===r&&(e.endContainer=a,e.endOffset=ot(a))),z(o),o instanceof Text?a.appendData(o.data):n.push(L(o));else if(o instanceof Element){let l;for(;l=n.pop();)o.appendChild(l);xr(o,e)}}},Zt=(t,e)=>{let i=t instanceof Text?t.parentNode:t;if(i instanceof Element){let r={startContainer:e.startContainer,startOffset:e.startOffset,endContainer:e.endContainer,endOffset:e.endOffset};xr(i,r),e.setStart(r.startContainer,r.startOffset),e.setEnd(r.endContainer,r.endOffset)}},le=(t,e,i,r)=>{let n=e,o,a;for(;(o=n.parentNode)&&o!==r&&o instanceof Element&&o.childNodes.length===1;)n=o;z(n),a=t.childNodes.length;let l=t.lastChild;l&&l.nodeName==="BR"&&(t.removeChild(l),a-=1),t.appendChild(L(e)),i.setStart(t,a),i.collapse(!0),Zt(t,i)},yt=(t,e)=>{let i=t.previousSibling,r=t.firstChild,n=t.nodeName==="LI";if(!(n&&(!r||!/^[OU]L$/.test(r.nodeName)))){if(i&&yr(i,t)){if(!Gt(i))if(n){let a=C("DIV");a.appendChild(L(i)),i.appendChild(a)}else return;z(t);let o=!Gt(t);i.appendChild(L(t)),o&&dt(i,e),r&&yt(r,e)}else if(n){let o=C("DIV");t.insertBefore(o,r),q(o)}}},Cr={"font-weight":{regexp:/^bold|^700/i,replace(){return C("B")}},"font-style":{regexp:/^italic/i,replace(){return C("I")}},"font-family":{regexp:ct,replace(t,e){let i=C("SPAN",{class:t.fontFamily});return i.style.fontFamily=e,i}},"font-size":{regexp:ct,replace(t,e){let i=C("SPAN",{class:t.fontSize});return i.style.fontSize=e,i}},"text-decoration":{regexp:/^underline/i,replace(){return C("U")}}},Ho=(t,e,i)=>{let r=t.style,n,o;for(let a in Cr){let l=Cr[a],c=r.getPropertyValue(a);if(c&&l.regexp.test(c)){let d=l.replace(i.classNames,c);if(d.nodeName===t.nodeName&&d.className===t.className)continue;o||(o=d),n&&n.appendChild(d),n=d,t.style.removeProperty(a)}}return o&&n&&(n.appendChild(L(t)),t.style.cssText?t.appendChild(o):G(t,o)),n||t},Oe=t=>(e,i)=>{let r=C(t),n=e.attributes;for(let o=0,a=n.length;o<a;o+=1){let l=n[o];r.setAttribute(l.name,l.value)}return i.replaceChild(r,e),r.appendChild(L(e)),r},Uo={1:"10",2:"13",3:"16",4:"18",5:"24",6:"32",7:"48"},zo={STRONG:Oe("B"),EM:Oe("I"),INS:Oe("U"),STRIKE:Oe("S"),SPAN:Ho,FONT:(t,e,i)=>{let r=t,n=r.face,o=r.size,a=r.color,l=i.classNames,c,d,u,h,m;return n&&(c=C("SPAN",{class:l.fontFamily}),c.style.fontFamily=n,m=c,h=c),o&&(d=C("SPAN",{class:l.fontSize}),d.style.fontSize=Uo[o]+"px",m||(m=d),h&&h.appendChild(d),h=d),a&&/^#?([\dA-F]{3}){1,2}$/i.test(a)&&(a.charAt(0)!=="#"&&(a="#"+a),u=C("SPAN",{class:l.color}),u.style.color=a,m||(m=u),h&&h.appendChild(u),h=u),(!m||!h)&&(m=h=C("SPAN")),e.replaceChild(m,r),h.appendChild(L(r)),h},TT:(t,e,i)=>{let r=C("SPAN",{class:i.classNames.fontFamily,style:'font-family:menlo,consolas,"courier new",monospace'});return e.replaceChild(r,t),r.appendChild(L(t)),r}},qo=/^(?:A(?:DDRESS|RTICLE|SIDE|UDIO)|BLOCKQUOTE|CAPTION|D(?:[DLT]|IV)|F(?:IGURE|IGCAPTION|OOTER)|H[1-6]|HEADER|L(?:ABEL|EGEND|I)|O(?:L|UTPUT)|P(?:RE)?|SECTION|T(?:ABLE|BODY|D|FOOT|H|HEAD|R)|COL(?:GROUP)?|UL)$/,Wo=/^(?:HEAD|META|STYLE)/,oi=(t,e,i)=>{let r=t.childNodes,n=t;for(;T(n);)n=n.parentNode;let o=new et(n,5);for(let a=0,l=r.length;a<l;a+=1){let c=r[a],d=c.nodeName,u=zo[d];if(c instanceof HTMLElement){let h=c.childNodes.length;if(u)c=u(c,t,e);else if(Wo.test(d)){t.removeChild(c),a-=1,l-=1;continue}else if(!qo.test(d)&&!T(c)){a-=1,l+=h-1,t.replaceChild(L(c),c);continue}h&&oi(c,e,i||d==="PRE")}else{if(c instanceof Text){let h=c.data,m=!ct.test(h.charAt(0)),y=!ct.test(h.charAt(h.length-1));if(i||!m&&!y)continue;if(m){o.currentNode=c;let g;for(;(g=o.previousPONode())&&!(g.nodeName==="IMG"||g instanceof Text&&ct.test(g.data));)if(!T(g)){g=null;break}h=h.replace(/^[ \t\r\n]+/g,g?" ":"")}if(y){o.currentNode=c;let g;for(;(g=o.nextNode())&&!(g.nodeName==="IMG"||g instanceof Text&&ct.test(g.data));)if(!T(g)){g=null;break}h=h.replace(/[ \t\r\n]+$/g,g?" ":"")}if(h){c.data=h;continue}}t.removeChild(c),a-=1,l-=1}}return t},ai=t=>{let e=t.childNodes,i=e.length;for(;i--;){let r=e[i];r instanceof Element&&!At(r)?(ai(r),T(r)&&!r.firstChild&&t.removeChild(r)):r instanceof Text&&!r.data&&t.removeChild(r)}},li=(t,e,i)=>{let r=t.querySelectorAll("BR"),n=[],o=r.length;for(let a=0;a<o;a+=1)n[a]=Le(r[a],i);for(;o--;){let a=r[o],l=a.parentNode;l&&(n[o]?T(l)||dt(l,e):z(a))}},Sr=t=>t.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&quot;"),Re=(t,e)=>{let i=new et(e,1,Et);return i.currentNode=t,i},Ft=(t,e)=>{let i=Re(t,e).previousNode();return i!==e?i:null},bt=(t,e)=>{let i=Re(t,e).nextNode();return i!==e?i:null},si=t=>!t.textContent&&!t.querySelector("IMG"),it=(t,e)=>{let i=t.startContainer,r;if(T(i))r=Ft(i,e);else if(i!==e&&i instanceof HTMLElement&&Et(i))r=i;else{let n=ni(i,t.startOffset);r=bt(n,e)}return r&&_t(t,r,!0)?r:null},Pt=(t,e)=>{let i=t.endContainer,r;if(T(i))r=Ft(i,e);else if(i!==e&&i instanceof HTMLElement&&Et(i))r=i;else{let n=br(i,t.endOffset);if(!n||!e.contains(n)){n=e;let o;for(;o=n.lastChild;)n=o}r=Ft(n,e)}return r&&_t(t,r,!0)?r:null},wr=t=>t instanceof Text?ct.test(t.data):t.nodeName==="IMG",se=(t,e)=>{let i=t.startContainer,r=t.startOffset,n;if(i instanceof Text){let l=i.data;for(let c=r;c>0;c-=1)if(l.charAt(c-1)!=="\u200B")return!1;n=i}else if(n=br(i,r),n&&!e.contains(n)&&(n=null),!n&&(n=ni(i,r),n instanceof Text&&n.length))return!1;let o=it(t,e);if(!o)return!1;let a=new et(o,5,wr);return a.currentNode=n,!a.previousNode()},ce=(t,e)=>{let i=t.endContainer,r=t.endOffset,n;if(i instanceof Text){let l=i.data,c=l.length;for(let d=r;d<c;d+=1)if(l.charAt(d)!=="\u200B")return!1;n=i}else n=ni(i,r);let o=Pt(t,e);if(!o)return!1;let a=new et(o,5,wr);return a.currentNode=n,!a.nextNode()},Ar=(t,e)=>{let i=it(t,e),r=Pt(t,e),n;i&&r&&(n=i.parentNode,t.setStart(n,Array.from(n.childNodes).indexOf(i)),n=r.parentNode,t.setEnd(n,Array.from(n.childNodes).indexOf(r)+1))};function Ht(t,e,i,r){let n=document.createRange();return n.setStart(t,e),i&&typeof r=="number"?n.setEnd(i,r):n.setEnd(t,e),n}var vt=(t,e)=>{let{startContainer:i,startOffset:r,endContainer:n,endOffset:o}=t,a;if(i instanceof Text){let c=i.parentNode;if(a=c.childNodes,r===i.length)r=Array.from(a).indexOf(i)+1,t.collapsed&&(n=c,o=r);else{if(r){let d=i.splitText(r);n===i?(o-=r,n=d):n===c&&(o+=1),i=d}r=Array.from(a).indexOf(i)}i=c}else a=i.childNodes;let l=a.length;r===l?i.appendChild(e):i.insertBefore(e,a[r]),i===n&&(o+=a.length-l),t.setStart(i,r),t.setEnd(n,o)},Er=(t,e,i)=>{let r=document.createDocumentFragment();if(t.collapsed)return r;e||(e=t.commonAncestorContainer),e instanceof Text&&(e=e.parentNode);let n=t.startContainer,o=t.startOffset,a=lt(t.endContainer,t.endOffset,e,i),l=0,c=lt(n,o,e,i);for(;c&&c!==a;){let d=c.nextSibling;r.appendChild(c),c=d}return c=a&&a.previousSibling,c&&c instanceof Text&&a instanceof Text&&(l=c.length,c.appendData(a.data),z(a),a=c),t.setStart(n,o),a?t.setEnd(a,l):t.setEnd(e,e.childNodes.length),q(e),r},_r=(t,e,i)=>{t.currentNode=i;let r;for(;r=t[e]();){if(r instanceof Text||At(r))return r;if(!T(r))return null}return null},Ut=(t,e)=>{let i=it(t,e),r=Pt(t,e),n=i!==r;i&&r&&(Z(t),Bt(t,i,r,e));let o=Er(t,null,e);Z(t),n&&(r=Pt(t,e),i&&r&&i!==r&&le(i,r,t,e)),i&&q(i);let a=e.firstChild;(!a||a.nodeName==="BR")&&(q(e),e.firstChild&&t.selectNodeContents(e.firstChild)),t.collapse(!0);let l=t.startContainer,c=t.startOffset,d=new et(e,5),u=l,h=c;(!(u instanceof Text)||h===u.data.length)&&(u=_r(d,"nextNode",u),h=0);let m=l,y=c-1;(!(m instanceof Text)||y===-1)&&(m=_r(d,"previousPONode",u||(l instanceof Text?l:l.childNodes[c]||l)),m instanceof Text&&(y=m.data.length));let g=null,x=0;return u instanceof Text&&u.data.charAt(h)===" "&&se(t,e)?(g=u,x=h):m instanceof Text&&m.data.charAt(y)===" "&&(u instanceof Text&&u.data.charAt(h)===" "||ce(t,e))&&(g=m,x=y),g&&g.replaceData(x,1,"\xA0"),t.setStart(l,c),t.collapse(!0),o},Ko=(t,e,i)=>{let r=e.firstChild&&T(e.firstChild),n;for(dt(e,i),n=e;n=bt(n,i);)q(n);t.collapsed||Ut(t,i),Z(t),t.collapse(!1);let o=k(t.endContainer,i,"BLOCKQUOTE")||i,a=it(t,i),l=null,c=bt(e,e),d=!r&&!!a&&si(a);if(a&&c&&!d&&!k(c,e,"PRE")&&!k(c,e,"TABLE")){Bt(t,a,a,i),t.collapse(!0);let u=t.endContainer,h=t.endOffset;if(li(a,i,!1),T(u)){let m=lt(u,h,Ft(u,i)||i,i);u=m.parentNode,h=Array.from(u.childNodes).indexOf(m)}if(h!==ot(u))for(l=document.createDocumentFragment();n=u.childNodes[h];)l.appendChild(n);le(u,c,t,i),u===i?t.setEnd(i,ot(i)):(h=Array.from(u.parentNode.childNodes).indexOf(u)+1,u=u.parentNode,t.setEnd(u,h))}if(ot(e)){d&&a&&(t.setEndBefore(a),t.collapse(!1),z(a)),o.contains(t.endContainer)||(i.contains(t.endContainer)||(t.setEnd(i,ot(i)),t.collapse(!1)),o=k(t.endContainer,i,"BLOCKQUOTE")||i),Bt(t,o,o,i);let u=lt(t.endContainer,t.endOffset,o,i),h=u?u.previousSibling:o.lastChild;o.insertBefore(e,u),u?t.setEndBefore(u):t.setEnd(o,ot(o)),a=Pt(t,i),Z(t);let m=t.endContainer,y=t.endOffset;u&&Gt(u)&&yt(u,i),u=h&&h.nextSibling,u&&Gt(u)&&yt(u,i),t.setEnd(m,y)}if(l&&a){let u=t.cloneRange();q(l),le(a,l,u,i),t.setEnd(u.endContainer,u.endOffset)}Z(t)},Tr=t=>{if(t.collapsed)return"";let e=t.startContainer,i=t.endContainer,r=new et(t.commonAncestorContainer,5,c=>_t(t,c,!0));r.currentNode=e;let n=e,o="",a=!1,l;for((!(n instanceof Element)&&!(n instanceof Text)||!r.filter(n))&&(n=r.nextNode());n;)n instanceof Text?(l=n.data,l&&/\S/.test(l)&&(n===i&&(l=l.slice(0,t.endOffset)),n===e&&(l=l.slice(t.startOffset)),o+=l,a=!0)):(n.nodeName==="BR"||a&&!T(n))&&(o+=`
73
+ `,a=!1),n=r.nextNode();return o=o.replace(/ /g," "),o},ci=Array.prototype.indexOf,kr=(t,e,i,r,n)=>{let o=n?"":Tr(t),a=it(t,e),l=Pt(t,e),c=t.commonAncestorContainer,d=e;a===l&&a?.contains(c)&&(d=a);let u;for(i?(u=Ut(t,e),c.isConnected||(c=t.commonAncestorContainer)):u=t.cloneContents(),c instanceof Text&&(c=c.parentNode);c&&c!==d;){let m=c.cloneNode(!1);m.appendChild(u),u=m,c=c.parentNode}let h;if(u.childNodes.length===1&&u.childNodes[0]instanceof Text)o=u.childNodes[0].data.replace(/ /g," "),h=void 0;else{let m=C("DIV");m.appendChild(u),h=m.innerHTML,r&&(h=r(h))}return n&&h!==void 0&&(o=n(h)),o===h&&(h=void 0),ur&&(o=o.replace(/\r?\n/g,`\r
74
+ `)),h&&(h="<!-- squire -->"+h),[o,h]},Nr=(t,e,i,r,n,o,a)=>{let l=t.clipboardData;if(Te||!l)return!1;let[c,d]=kr(e,i,r,n,o);return t.preventDefault(),!a&&d&&l.setData("text/html",d),l.setData("text/plain",c),!0},$o=function(t){let e=this.getSelection(),i=this._root;if(e.collapsed){t.preventDefault();return}this.saveUndoState(e),Nr(t,e,i,!0,this._config.willCutCopy,this._config.toPlainText,!1)||setTimeout(()=>{try{this._ensureBottomLine()}catch(r){this._config.didError(r)}},0),this.setSelection(e)},jo=function(t){Nr(t,this.getSelection(),this._root,!1,this._config.willCutCopy,this._config.toPlainText,!1)},Lr=function(t){this._isShiftDown=t.shiftKey},Vo=function(t){let e=t.clipboardData,i=e?.items,r=this._isShiftDown,n=!1,o=!1,a=null,l=null;if(i){let A=i.length;for(;A--;){let N=i[A],B=N.type;B==="text/html"?l=N:B==="text/plain"||B==="text/uri-list"?a=N:B==="text/rtf"?n=!0:/^image\/.*/.test(B)&&(o=!0)}if(o&&!(n&&l)&&!a){t.preventDefault(),this.fireEvent("pasteImage",{clipboardData:e});return}if(!Te){t.preventDefault(),l&&(!r||!a)?l.getAsString(N=>{this.insertHTML(N,!0)}):a&&a.getAsString(N=>{let B=this.getSelection();if(!B.collapsed&&ct.test(B.toString())){let X=this.linkRegExp.exec(N);if(X&&X[0].length===N.length){let J=X[1]?/^(?:ht|f)tps?:/i.test(X[1])?X[1]:"http://"+X[1]:"mailto:"+X[0];this.makeLink(J);return}}this.insertPlainText(N,!0)});return}}let c=e?.types;if(!Te&&c&&(ci.call(c,"text/html")>-1||!ko&&ci.call(c,"text/plain")>-1&&ci.call(c,"text/rtf")<0)){t.preventDefault();let A;!r&&(A=e.getData("text/html"))?this.insertHTML(A,!0):((A=e.getData("text/plain"))||(A=e.getData("text/uri-list")))&&this.insertPlainText(A,!0);return}let d=document.body,u=this.getSelection(),h=u.startContainer,m=u.startOffset,y=u.endContainer,g=u.endOffset,x=C("DIV",{contenteditable:"true",style:"position:fixed; overflow:hidden; top:0; right:100%; width:1px; height:1px;"});d.appendChild(x),u.selectNodeContents(x),this.setSelection(u),setTimeout(()=>{try{let A="",N=x,B;for(;x=N;)N=x.nextSibling,z(x),B=x.firstChild,B&&B===x.lastChild&&B instanceof HTMLDivElement&&(x=B),A+=x.innerHTML;this.setSelection(Ht(h,m,y,g)),A&&this.insertHTML(A,!0)}catch(A){this._config.didError(A)}},0)},Go=function(){let t=this.getSelection();t&&!t.collapsed&&this._root.contains(t.commonAncestorContainer)?this._dragRange=t.cloneRange():this._dragRange=null},Zo=function(){this._dragRange=null},Yo=(t,e,i)=>{let r=null,n=document;if(n.caretPositionFromPoint){let o=n.caretPositionFromPoint(t,e);o&&(r=document.createRange(),r.setStart(o.offsetNode,o.offset),r.collapse(!0))}else n.caretRangeFromPoint&&(r=n.caretRangeFromPoint(t,e));return r&&!i.contains(r.commonAncestorContainer)?null:r},Qo=(t,e)=>t.compareBoundaryPoints(Range.START_TO_START,e)>=0&&t.compareBoundaryPoints(Range.END_TO_END,e)<=0,Xo=function(t){let e=t.dataTransfer;if(!e)return;let i=e.types,r=!1,n=!1;for(let u=0,h=i.length;u<h;u+=1)switch(i[u]){case"text/plain":r=!0;break;case"text/html":n=!0;break}if(!r&&!n)return;t.preventDefault();let o=this._root,a=Yo(t.clientX,t.clientY,o),l=this._dragRange;if(this._dragRange=null,!a)return;let c,d;if(l){if(Qo(a,l))return;this._recordUndoState(l,this._isInUndoState);let u=document.createComment("");a.insertNode(u),this._getRangeAndRemoveBookmark(l),[c,d]=kr(l,o,e.dropEffect!=="copy",this._config.willCutCopy,this._config.toPlainText),u.replaceWith(C("INPUT",{id:this.startSelectionId,type:"hidden"}),C("INPUT",{id:this.endSelectionId,type:"hidden"})),this._getRangeAndRemoveBookmark(a),gr()}else this.saveUndoState(a),n?d=e.getData("text/html"):c=e.getData("text/plain");this.setSelection(a),d!==void 0?this.insertHTML(d,!0):c!==void 0&&this.insertPlainText(c,!0)},Dr=(t,e,i)=>{e.preventDefault(),t.splitBlock(e.shiftKey,i)},de=(t,e)=>{try{e||(e=t.getSelection());let i=e.startContainer;i instanceof Text&&(i=i.parentNode);let r=i;for(;r!==t._root&&T(r)&&(!r.textContent||r.textContent==="\u200B");)i=r,r=i.parentNode;i!==r&&(e.setStart(r,Array.from(r.childNodes).indexOf(i)),e.collapse(!0),r.removeChild(i),Et(r)||(r=Ft(r,t._root)||t._root),q(r),Z(e)),i===t._root&&(i=i.firstChild)&&i.nodeName==="BR"&&z(i),t._ensureBottomLine(),t.setSelection(e),t._updatePath(e,!0)}catch(i){t._config.didError(i)}},Or=(t,e)=>{let i;for(;(i=t.parentNode)&&!(i===e||i.isContentEditable);)t=i;z(t)},Rr=(t,e,i)=>{if(k(e,t._root,"A"))return;let r=e.data||"",n=Math.max(r.lastIndexOf(" ",i-1),r.lastIndexOf("\xA0",i-1))+1,o=r.slice(n,i),a=t.linkRegExp.exec(o);if(a){let l=t.getSelection();t._docWasChanged(),t._recordUndoState(l),t._getRangeAndRemoveBookmark(l);let c=n+a.index,d=c+a[0].length,u=l.startContainer===e,h=l.startOffset-d;c&&(e=e.splitText(c));let m=t._config.tagAttributes.a,y=C("A",Object.assign({href:a[1]?/^(?:ht|f)tps?:/i.test(a[1])?a[1]:"http://"+a[1]:"mailto:"+a[0]},m));y.textContent=r.slice(c,d),e.parentNode.insertBefore(y,e),e.data=r.slice(d),u&&(l.setStart(e,h),l.setEnd(e,h)),t.setSelection(l)}},Jo=(t,e,i)=>{let r=t._root;if(t._removeZWS(),t.saveUndoState(i),!i.collapsed)e.preventDefault(),Ut(i,r),de(t,i);else if(se(i,r)){e.preventDefault();let n=it(i,r);if(!n)return;let o=n;dt(o.parentNode,r);let a=Ft(o,r);if(a){if(!a.isContentEditable){Or(a,r);return}for(le(a,o,i,r),o=a.parentNode;o!==r&&!o.nextSibling;)o=o.parentNode;o!==r&&(o=o.nextSibling)&&yt(o,r),t.setSelection(i)}else if(o){if(k(o,r,"UL")||k(o,r,"OL")){t.decreaseListLevel(i);return}else if(k(o,r,"BLOCKQUOTE")){t.removeQuote(i);return}t.setSelection(i),t._updatePath(i,!0)}}else{Z(i);let n=i.startContainer,o=i.startOffset,a=n.parentNode;n instanceof Text&&a instanceof HTMLAnchorElement&&o&&a.href.includes(n.data)?(n.deleteData(o-1,1),t.setSelection(i),t.removeLink(),e.preventDefault()):(t.setSelection(i),setTimeout(()=>{de(t)},0))}},ta=(t,e,i)=>{let r=t._root,n,o,a,l,c,d;if(t._removeZWS(),t.saveUndoState(i),!i.collapsed)e.preventDefault(),Ut(i,r),de(t,i);else if(ce(i,r)){if(e.preventDefault(),n=it(i,r),!n)return;if(dt(n.parentNode,r),o=bt(n,r),o){if(!o.isContentEditable){Or(o,r);return}for(le(n,o,i,r),o=n.parentNode;o!==r&&!o.nextSibling;)o=o.parentNode;o!==r&&(o=o.nextSibling)&&yt(o,r),t.setSelection(i),t._updatePath(i,!0)}}else{if(a=i.cloneRange(),Bt(i,r,r,r),l=i.endContainer,c=i.endOffset,l instanceof Element&&(d=l.childNodes[c],d&&d.nodeName==="IMG")){e.preventDefault(),z(d),Z(i),de(t,i);return}t.setSelection(a),setTimeout(()=>{de(t)},0)}},ea=(t,e,i)=>{let r=t._root;if(t._removeZWS(),i.collapsed&&se(i,r)){let n=it(i,r),o;for(;o=n.parentNode;){if(o.nodeName==="UL"||o.nodeName==="OL"){e.preventDefault(),t.increaseListLevel(i);break}n=o}}},ia=(t,e,i)=>{let r=t._root;if(t._removeZWS(),i.collapsed&&se(i,r)){let n=i.startContainer;(k(n,r,"UL")||k(n,r,"OL"))&&(e.preventDefault(),t.decreaseListLevel(i))}},ra=(t,e,i)=>{let r,n=t._root;if(t._recordUndoState(i),t._getRangeAndRemoveBookmark(i),!i.collapsed)Ut(i,n),t._ensureBottomLine(),t.setSelection(i),t._updatePath(i,!0);else if(ce(i,n)){let o=it(i,n);if(o&&o.nodeName!=="PRE"){let a=o.textContent?.trimEnd().replace("\u200B","");if(a==="*"||a==="1."){e.preventDefault(),t.insertPlainText(" ",!1),t._docWasChanged(),t.saveUndoState(i);let l=new et(o,4),c;for(;c=l.nextNode();)z(c);a==="*"?t.makeUnorderedList():t.makeOrderedList();return}}}if(r=i.endContainer,i.endOffset===ot(r))do if(r.nodeName==="A"){i.setStartAfter(r);break}while(!r.nextSibling&&(r=r.parentNode)&&r!==n);if(t._config.addLinks){let o=i.cloneRange();Z(o);let a=o.startContainer,l=o.startOffset;setTimeout(()=>{Rr(t,a,l)},0)}t.setSelection(i)},na=function(t){if(t.defaultPrevented||t.isComposing)return;let e=t.key,i="",r=t.code;/^Digit\d$/.test(r)&&(e=r.slice(-1)),e!=="Backspace"&&e!=="Delete"&&(t.altKey&&(i+="Alt-"),t.ctrlKey&&(i+="Ctrl-"),t.metaKey&&(i+="Meta-"),t.shiftKey&&(i+="Shift-")),ur&&t.shiftKey&&e==="Delete"&&(i+="Shift-"),e=i+e;let n=this.getSelection(),o=this._keyHandlers[e];o?o(this,t,n):!n.collapsed&&!t.ctrlKey&&!t.metaKey&&e.length===1&&(this.saveUndoState(n),Ut(n,this._root),this._ensureBottomLine(),this.setSelection(n),this._updatePath(n,!0))},P={Backspace:Jo,Delete:ta,Tab:ea,"Shift-Tab":ia," ":ra,ArrowLeft(t){t._removeZWS()},ArrowRight(t,e,i){t._removeZWS();let r=t.getRoot();if(ce(i,r)){Z(i);let n=i.endContainer;do if(n.nodeName==="CODE"){let o=n.nextSibling;if(!(o instanceof Text)||o.length===0){let a=document.createTextNode("\xA0");n.parentNode.insertBefore(a,o),o=a}i.setStart(o,1),t.setSelection(i),e.preventDefault();break}while(!n.nextSibling&&(n=n.parentNode)&&n!==r)}}};Lo||(P.Enter=Dr,P["Shift-Enter"]=Dr),!ti&&!pr&&(P.PageUp=t=>{t.moveCursorToStart()},P.PageDown=t=>{t.moveCursorToEnd()});var Yt=(t,e)=>(e=e||null,(i,r)=>{r.preventDefault();let n=i.getSelection();i.hasFormat(t,null,n)?i.changeFormat(null,{tag:t},n):i.changeFormat({tag:t},e,n)});P[Y+"b"]=Yt("B"),P[Y+"i"]=Yt("I"),P[Y+"u"]=Yt("U"),P[Y+"Shift-7"]=Yt("S"),P[Y+"Shift-5"]=Yt("SUB",{tag:"SUP"}),P[Y+"Shift-6"]=Yt("SUP",{tag:"SUB"}),P[Y+"Shift-8"]=(t,e)=>{e.preventDefault();let i=t.getPath();/(?:^|>)UL/.test(i)?t.removeList():t.makeUnorderedList()},P[Y+"Shift-9"]=(t,e)=>{e.preventDefault();let i=t.getPath();/(?:^|>)OL/.test(i)?t.removeList():t.makeOrderedList()},P[Y+"["]=(t,e)=>{e.preventDefault();let i=t.getPath();/(?:^|>)BLOCKQUOTE/.test(i)||!/(?:^|>)[OU]L/.test(i)?t.decreaseQuoteLevel():t.decreaseListLevel()},P[Y+"]"]=(t,e)=>{e.preventDefault();let i=t.getPath();/(?:^|>)BLOCKQUOTE/.test(i)||!/(?:^|>)[OU]L/.test(i)?t.increaseQuoteLevel():t.increaseListLevel()},P[Y+"d"]=(t,e)=>{e.preventDefault(),t.toggleCode()},P[Y+"z"]=(t,e)=>{e.preventDefault(),t.undo()},P[Y+"y"]=P[Y+"Shift-z"]=P[Y+"Shift-Z"]=(t,e)=>{e.preventDefault(),t.redo()};var di=8,Ir=40,hi=1200,oa=[{pos:"nw",cursor:"nwse-resize"},{pos:"n",cursor:"ns-resize"},{pos:"ne",cursor:"nesw-resize"},{pos:"e",cursor:"ew-resize"},{pos:"se",cursor:"nwse-resize"},{pos:"s",cursor:"ns-resize"},{pos:"sw",cursor:"nesw-resize"},{pos:"w",cursor:"ew-resize"}],aa={ArrowUp:(t,e,i)=>{let r=it(e,i);if(r){let n=Ft(r,i);n&&(e.selectNodeContents(n),e.collapse(!1),t.setSelection(e).focus())}},ArrowDown:(t,e,i)=>{let r=it(e,i);if(r){let n=bt(r,i);n&&(e.selectNodeContents(n),e.collapse(!0),t.setSelection(e).focus())}},Delete:(t,e)=>{t.replaceWithBlankLine(e)},Backspace:(t,e)=>{t.replaceWithBlankLine(e)}},la=class{constructor(t,e){this._currentImage=null,this._resizeContainer=null,this._handles=null,this._currentHandle=null,this._startX=0,this._startY=0,this._startWidth=0,this._startHeight=0,this._maxWidth=hi,this._originalRatio=1,this._editor=e,this._root=t,document.addEventListener("click",this),e.addEventListener("drop",this)}destroy(){this._deselectImage(),this._editor.removeEventListener("drop",this),document.removeEventListener("click",this)}handleEvent(t){switch(t.type){case"click":this._onClick(t);break;case"pointerdown":this._onPointerDown(t);break;case"pointermove":this._onPointerMove(t);break;case"pointercancel":case"pointerup":this._onPointerUp(t);break;case"keydown":this._onKeyDown(t);break;case"drop":this._deselectImage();break}}_onClick(t){let e=t.target;e.nodeName==="IMG"&&this._root.contains(e)?(t.stopPropagation(),this._selectImage(e)):this._currentImage&&this._handles&&!this._handles.some(i=>i.element===e)&&this._deselectImage()}_deselectImage(){this._currentImage&&(document.removeEventListener("keydown",this,!0),this._currentHandle&&this._onPointerUp({preventDefault(){},target:this._currentHandle.element}),this._handles&&this._handles.forEach(({element:t})=>t.removeEventListener("pointerdown",this)),this._resizeContainer&&this._resizeContainer.remove(),this._currentImage.removeAttribute("tabindex"),this._handles=null,this._resizeContainer=null,this._currentImage=null)}_selectImage(t){if(this._currentImage===t)return;this._deselectImage(),this._root.blur();let e=oa.map(({pos:n,cursor:o})=>{let a=di/2,l="";switch(n){case"nw":l=`left: -${a}px; top: -${a}px;`;break;case"n":l=`left: calc(50% - ${a}px); top: -${a}px;`;break;case"ne":l=`right: -${a}px; top: -${a}px;`;break;case"e":l=`right: -${a}px; top: calc(50% - ${a}px);`;break;case"se":l=`right: -${a}px; bottom: -${a}px;`;break;case"s":l=`left: calc(50% - ${a}px); bottom: -${a}px;`;break;case"sw":l=`left: -${a}px; bottom: -${a}px;`;break;case"w":l=`left: -${a}px; top: calc(50% - ${a}px);`;break}let c=C("div",{class:`squire-resize-handle squire-resize-handle-${n}`,style:`
75
+ position: absolute;
76
+ width: ${di}px;
77
+ height: ${di}px;
78
+ background: #0067b9;
79
+ border: 1px solid #fff;
80
+ cursor: ${o};
81
+ pointer-events: auto;
82
+ touch-action: none;
83
+ box-shadow: 0 1px 3px rgba(0,0,0,0.3);
84
+ ${l}
85
+ `});return c.addEventListener("pointerdown",this),{element:c,cursor:o,position:n}}),i=C("div",{class:"squire-image-resize-container","editor-ui":"",style:"position: absolute; pointer-events: none; z-index: 1000;"},e.map(n=>n.element));this._currentImage=t,this._resizeContainer=i,this._handles=e,this._root.appendChild(this._resizeContainer);let r=t.naturalWidth;this._originalRatio=r/t.naturalHeight,this._maxWidth=Math.min(r*2,t.parentElement?t.parentElement.offsetWidth:hi,hi),this._positionResizeContainer(),t.tabIndex=-1,t.focus(),document.addEventListener("keydown",this,!0)}_positionResizeContainer(){let t=this._resizeContainer,e=this._root,i=this._currentImage;if(!t||!i)return;let r=e.getBoundingClientRect(),n=i.getBoundingClientRect(),o=n.top-r.top+e.scrollTop,a=n.left-r.left+e.scrollLeft,l=n.width,c=n.height;t.style.top=o+"px",t.style.left=a+"px",t.style.width=l+"px",t.style.height=c+"px"}_onPointerDown(t){if(this._currentHandle||!this._handles)return;let e=t.target,i=this._handles.find(o=>o.element===e)||null;if(!i)return;let r=this._currentImage;if(!r)return;t.preventDefault(),t.stopPropagation(),e.addEventListener("pointermove",this),e.addEventListener("pointerup",this),e.addEventListener("pointercancel",this),e.setPointerCapture(t.pointerId),this._currentHandle=i,this._startX=t.clientX,this._startY=t.clientY;let n=getComputedStyle(r);this._startWidth=parseFloat(n.width),this._startHeight=parseFloat(n.height),document.body.style.cursor=i.cursor}_onPointerMove(t){t.preventDefault();let e=this._currentHandle,i=this._currentImage;if(!e||!i)return;let r=t.clientX-this._startX,n=t.clientY-this._startY,o=this._maxWidth,a=this._originalRatio,l=this._startWidth,c=this._startHeight;switch(e.position){case"sw":case"nw":case"w":l-=2*r;break;case"se":case"ne":case"e":l+=2*r;break;case"n":c-=n,l=c*a;break;case"s":c+=n,l=c*a;break}l<Ir?l=Ir:l>o&&(l=o);let d=i.style;d.width=l+"px",d.height="auto",this._positionResizeContainer()}_onPointerUp(t){t.preventDefault();let e=t.target;e&&(e.removeEventListener("pointermove",this),e.removeEventListener("pointerup",this),e.removeEventListener("pointercancel",this)),this._currentHandle=null,document.body.style.cursor=""}_onKeyDown(t){t.preventDefault(),t.stopPropagation();let e=aa[t.key];if(!e)return;let i=this._currentImage;if(!i)return;let r=this._editor,n=this._root;this._deselectImage();let o=r.getSelection();o.selectNode(i),e(r,o,n)}},sa=class{constructor(t,e){this.customEvents=new Set(["pathChange","select","input","pasteImage","undoStateChange"]),this.startSelectionId="squire-selection-start",this.endSelectionId="squire-selection-end",this.linkRegExp=/\b(?:((?:(?:ht|f)tps?:\/\/|www\d{0,3}[.]|[a-z0-9][a-z0-9.\-]*[.][a-z]{2,}\/)(?:[^\s()<>]+|\([^\s()<>]+\))+(?:[^\s?&`!()\[\]{};:'".,<>«»“”‘’]|\([^\s()<>]+\)))|([\w\-.%+]+@(?:[\w\-]+\.)+[a-z]{2,}\b(?:[?][^&?\s]+=[^\s?&`!()\[\]{};:'".,<>«»“”‘’]+(?:&[^&?\s]+=[^\s?&`!()\[\]{};:'".,<>«»“”‘’]+)*)?))/i,this.tagAfterSplit={DT:"DD",DD:"DT",LI:"LI",PRE:"PRE"},this._root=t,this._config=this._makeConfig(e),this._isFocused=!1,this._lastSelection=Ht(t,0),this._willRestoreSelection=!1,this._mayHaveZWS=!1,this._lastAnchorNode=null,this._lastFocusNode=null,this._path="",this._events=new Map,this._undoIndex=-1,this._undoStack=[],this._undoStackLength=0,this._isInUndoState=!1,this._ignoreChange=!1,this._ignoreAllChanges=!1,this.addEventListener("selectionchange",this._updatePathOnEvent),this.addEventListener("blur",this._enableRestoreSelection),this.addEventListener("mousedown",this._disableRestoreSelection),this.addEventListener("touchstart",this._disableRestoreSelection),this.addEventListener("focus",this._restoreSelection),this.addEventListener("blur",this._removeZWS),this._isShiftDown=!1,this.addEventListener("cut",$o),this.addEventListener("copy",jo),this.addEventListener("paste",Vo),this._dragRange=null,this.addEventListener("dragstart",Go),this.addEventListener("dragend",Zo),this.addEventListener("drop",Xo),this.addEventListener("keydown",Lr),this.addEventListener("keyup",Lr),this.addEventListener("keydown",na),this._keyHandlers=Object.create(P);let i=new MutationObserver(r=>this._onMutations(r));i.observe(t,{childList:!0,attributes:!0,attributeOldValue:!0,characterData:!0,subtree:!0}),this._mutation=i,t.setAttribute("contenteditable","true"),this.addEventListener("beforeinput",this._beforeInput),this._imageResizer=new la(t,this),this.setHTML("")}destroy(){this._events.forEach((t,e)=>{this.removeEventListener(e)}),this._mutation.disconnect(),this._imageResizer.destroy(),this._undoIndex=-1,this._undoStack=[],this._undoStackLength=0}_makeConfig(t){let e={blockTag:"DIV",blockAttributes:null,tagAttributes:{},classNames:{color:"color",fontFamily:"font",fontSize:"size",highlight:"highlight"},undo:{documentSizeThreshold:-1,undoLimit:-1},addLinks:!0,willCutCopy:null,toPlainText:null,sanitizeToDOMFragment:i=>{let r=DOMPurify.sanitize(i,{ALLOW_UNKNOWN_PROTOCOLS:!0,WHOLE_DOCUMENT:!1,RETURN_DOM:!0,RETURN_DOM_FRAGMENT:!0,FORCE_BODY:!1});return r?document.importNode(r,!0):document.createDocumentFragment()},didError:i=>console.log(i)};return t&&(Object.assign(e,t),e.blockTag=e.blockTag.toUpperCase()),e}setKeyHandler(t,e){return this._keyHandlers[t]=e,this}_beforeInput(t){switch(t.inputType){case"insertLineBreak":t.preventDefault(),this.splitBlock(!0);break;case"insertParagraph":t.preventDefault(),this.splitBlock(!1);break;case"insertOrderedList":t.preventDefault(),this.makeOrderedList();break;case"insertUnoderedList":t.preventDefault(),this.makeUnorderedList();break;case"historyUndo":t.preventDefault(),this.undo();break;case"historyRedo":t.preventDefault(),this.redo();break;case"formatBold":t.preventDefault(),this.bold();break;case"formatItalic":t.preventDefault(),this.italic();break;case"formatUnderline":t.preventDefault(),this.underline();break;case"formatStrikeThrough":t.preventDefault(),this.strikethrough();break;case"formatSuperscript":t.preventDefault(),this.superscript();break;case"formatSubscript":t.preventDefault(),this.subscript();break;case"formatJustifyFull":case"formatJustifyCenter":case"formatJustifyRight":case"formatJustifyLeft":{t.preventDefault();let e=t.inputType.slice(13).toLowerCase();e==="full"&&(e="justify"),this.setTextAlignment(e);break}case"formatRemove":t.preventDefault(),this.removeAllFormatting();break;case"formatSetBlockTextDirection":{t.preventDefault();let e=t.data;e==="null"&&(e=null),this.setTextDirection(e);break}case"formatBackColor":t.preventDefault(),this.setHighlightColor(t.data);break;case"formatFontColor":t.preventDefault(),this.setTextColor(t.data);break;case"formatFontName":t.preventDefault(),this.setFontFace(t.data);break}}handleEvent(t){this.fireEvent(t.type,t)}fireEvent(t,e){let i=this._events.get(t);if(/^(?:focus|blur)/.test(t)){let r=this._root===document.activeElement;if(t==="focus"){if(!r||this._isFocused)return this;this._isFocused=!0}else{if(r||!this._isFocused)return this;this._isFocused=!1}}if(i){let r=e instanceof Event?e:new CustomEvent(t,{detail:e});i=i.slice();for(let n of i)try{"handleEvent"in n?n.handleEvent(r):n.call(this,r)}catch(o){this._config.didError(o)}}return this}addEventListener(t,e){let i=this._events.get(t),r=this._root;return i||(i=[],this._events.set(t,i),this.customEvents.has(t)||(t==="selectionchange"&&(r=document),r.addEventListener(t,this,!0))),i.push(e),this}removeEventListener(t,e){let i=this._events.get(t),r=this._root;if(i){if(e){let n=i.length;for(;n--;)i[n]===e&&i.splice(n,1)}else i.length=0;i.length||(this._events.delete(t),this.customEvents.has(t)||(t==="selectionchange"&&(r=document),r.removeEventListener(t,this,!0)))}return this}focus(){return this._root.focus({preventScroll:!0}),this}blur(){return this._root.blur(),this}_enableRestoreSelection(){this._willRestoreSelection=!0}_disableRestoreSelection(){this._willRestoreSelection=!1}_restoreSelection(){this._willRestoreSelection&&this.setSelection(this._lastSelection)}_removeZWS(){this._mayHaveZWS&&(De(this._root),this._mayHaveZWS=!1)}_saveRangeToBookmark(t){let e=C("INPUT",{id:this.startSelectionId,type:"hidden"}),i=C("INPUT",{id:this.endSelectionId,type:"hidden"}),r;vt(t,e),t.collapse(!1),vt(t,i),e.compareDocumentPosition(i)&Node.DOCUMENT_POSITION_PRECEDING&&(e.id=this.endSelectionId,i.id=this.startSelectionId,r=e,e=i,i=r),t.setStartAfter(e),t.setEndBefore(i)}_getRangeAndRemoveBookmark(t){let e=this._root,i=e.querySelectorAll("#"+this.startSelectionId),r=e.querySelectorAll("#"+this.endSelectionId),n=i[0],o=r[0];if(n&&o&&n.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_FOLLOWING){let a=n.parentNode,l=o.parentNode,c=Array.from(a.childNodes).indexOf(n),d=Array.from(l.childNodes).indexOf(o);a===l&&(d-=1),n.remove(),o.remove(),t||(t=document.createRange()),t.setStart(a,c),t.setEnd(l,d),Zt(a,t),a!==l&&Zt(l,t),t.collapsed&&(a=t.startContainer,a instanceof Text&&(l=a.childNodes[t.startOffset],(!l||!(l instanceof Text))&&(l=a.childNodes[t.startOffset-1]),l&&l instanceof Text&&(t.setStart(l,0),t.collapse(!0))))}for(let a=0;a<i.length;a+=1)i[a].remove();for(let a=0;a<r.length;a+=1)r[a].remove();return t||null}getSelection(){let t=window.getSelection(),e=this._root,i=null;if(this._isFocused&&t&&t.rangeCount){i=t.getRangeAt(0).cloneRange();let r=i.startContainer,n=i.endContainer;r&&At(r)&&i.setStartBefore(r),n&&At(n)&&i.setEndBefore(n)}return i&&e.contains(i.commonAncestorContainer)?this._lastSelection=i:(i=this._lastSelection,document.contains(i.commonAncestorContainer)||(i=null)),i||(i=Ht(e.firstElementChild||e,0)),i}setSelection(t){if(this._lastSelection=t,!this._isFocused)this._enableRestoreSelection();else{let e=window.getSelection();e&&("setBaseAndExtent"in Selection.prototype?e.setBaseAndExtent(t.startContainer,t.startOffset,t.endContainer,t.endOffset):(e.removeAllRanges(),e.addRange(t)))}return this}_moveCursorTo(t){let e=this._root,i=Ht(e,t?0:e.childNodes.length);return Z(i),this.setSelection(i),this}moveCursorToStart(){return this._moveCursorTo(!0)}moveCursorToEnd(){return this._moveCursorTo(!1)}getCursorPosition(){let t=this.getSelection(),e=t.getBoundingClientRect();if(e&&!e.top){this._ignoreChange=!0;let i=C("SPAN");i.textContent="\u200B",vt(t,i),e=i.getBoundingClientRect();let r=i.parentNode;r.removeChild(i),Zt(r,t)}return e}getPath(){return this._path}_updatePathOnEvent(){this._isFocused&&this._updatePath(this.getSelection())}_updatePath(t,e){let i=t.startContainer,r=t.endContainer,n;(e||i!==this._lastAnchorNode||r!==this._lastFocusNode)&&(this._lastAnchorNode=i,this._lastFocusNode=r,n=i&&r?i===r?this._getPath(r):"(selection)":"",(this._path!==n||i!==r)&&(this._path=n,this.fireEvent("pathChange",{path:n}))),this.fireEvent(t.collapsed?"cursor":"select",{range:t})}_getPath(t){let e=this._root,i=this._config,r="";if(t&&t!==e){let n=t.parentNode;if(r=n?this._getPath(n):"",t instanceof HTMLElement){let o=t.id,a=t.classList,l=Array.from(a).sort(),c=t.dir,d=i.classNames;r+=(r?">":"")+t.nodeName,o&&(r+="#"+o),l.length&&(r+=".",r+=l.join(".")),c&&(r+="[dir="+c+"]"),a.contains(d.highlight)&&(r+="[backgroundColor="+t.style.backgroundColor.replace(/ /g,"")+"]"),a.contains(d.color)&&(r+="[color="+t.style.color.replace(/ /g,"")+"]"),a.contains(d.fontFamily)&&(r+="[fontFamily="+t.style.fontFamily.replace(/ /g,"")+"]"),a.contains(d.fontSize)&&(r+="[fontSize="+t.style.fontSize+"]")}}return r}modifyDocument(t){let e=this._mutation;return e&&((()=>{let i=e.takeRecords();i.length&&this._onMutations(i)})(),e.disconnect()),this._ignoreAllChanges=!0,t(),this._ignoreAllChanges=!1,e&&(e.observe(this._root,{childList:!0,attributes:!0,attributeOldValue:!0,characterData:!0,subtree:!0}),this._ignoreChange=!1),this}_onMutations(t){let e=this._config.onMutations;return e?e(t,this):this._docWasChanged()}_docWasChanged(){if(gr(),this._mayHaveZWS=!0,!this._ignoreAllChanges){if(this._ignoreChange){this._ignoreChange=!1;return}this._isInUndoState&&(this._isInUndoState=!1,this.fireEvent("undoStateChange",{canUndo:!0,canRedo:!1})),this.fireEvent("input")}}_recordUndoState(t,e){let i=this._isInUndoState;if(!i||e){let r=this._undoIndex+1,n=this._undoStack,o=this._config.undo,a=o.documentSizeThreshold,l=o.undoLimit;if(r<this._undoStackLength&&(n.length=this._undoStackLength=r),t&&this._saveRangeToBookmark(t),i)return this;let c=this._getRawHTML();e&&(r-=1),a>-1&&c.length*2>a&&l>-1&&r>l&&(n.splice(0,r-l),r=l,this._undoStackLength=l),n[r]=c,this._undoIndex=r,this._undoStackLength+=1,this._isInUndoState=!0}return this}saveUndoState(t){let e=!1;return t||(t=this.getSelection(),e=!0),this._recordUndoState(t,this._isInUndoState),this._getRangeAndRemoveBookmark(t),e&&this.setSelection(t),this}undo(){if(this._undoIndex!==0||!this._isInUndoState){this._recordUndoState(this.getSelection(),!1),this._undoIndex-=1,this._setRawHTML(this._undoStack[this._undoIndex]);let t=this._getRangeAndRemoveBookmark();t&&this.setSelection(t),this._isInUndoState=!0,this.fireEvent("undoStateChange",{canUndo:this._undoIndex!==0,canRedo:!0}),this.fireEvent("input")}return this.focus()}redo(){let t=this._undoIndex,e=this._undoStackLength;if(t+1<e&&this._isInUndoState){this._undoIndex+=1,this._setRawHTML(this._undoStack[this._undoIndex]);let i=this._getRangeAndRemoveBookmark();i&&this.setSelection(i),this.fireEvent("undoStateChange",{canUndo:!0,canRedo:t+2<e}),this.fireEvent("input")}return this.focus()}getRoot(){return this._root}_getRawHTML(){let t=this._config.serializeRoot;return t?t(this._root,this):this._root.innerHTML}_setRawHTML(t){let e=this._root;this._config.replaceRoot?this._config.replaceRoot(e,t,this):e.innerHTML=t;let i=e,r=i.firstChild;if(!r||r.nodeName==="BR"){let n=this.createDefaultBlock();r?i.replaceChild(n,r):i.appendChild(n)}else for(;i=bt(i,e);)q(i);return this._ignoreChange=!0,this}getHTML(t){if(this._config.serializeRoot)return this._config.serializeRoot(this._root,this,t?this.getSelection():null).replace(/\u200B/g,"");let e,i="";return this.modifyDocument(()=>{t&&(e=this.getSelection(),this._saveRangeToBookmark(e)),i=this._getRawHTML().replace(/\u200B/g,""),t&&this._getRangeAndRemoveBookmark(e)}),i}setHTML(t){let e=this._config.sanitizeToDOMFragment(t,this),i=this._root;oi(e,this._config),li(e,i,!1),dt(e,i);let r=e,n=r.firstChild;if(!n||n.nodeName==="BR"){let a=this.createDefaultBlock();n?r.replaceChild(a,n):r.appendChild(a)}else for(;r=bt(r,i);)q(r);for(this._ignoreChange=!0;n=i.lastChild;)i.removeChild(n);i.appendChild(e),this._undoIndex=-1,this._undoStack.length=0,this._undoStackLength=0,this._isInUndoState=!1;let o=this._getRangeAndRemoveBookmark()||Ht(i.firstElementChild||i,0);return this.saveUndoState(o),this.setSelection(o),this._updatePath(o,!0),this}insertHTML(t,e){let i=this._config,r=i.sanitizeToDOMFragment(t,this),n=this.getSelection();this.saveUndoState(n);try{let o=this._root;i.addLinks&&this.addDetectedLinks(r,r),oi(r,this._config),li(r,o,!1),ai(r),r.normalize();let a=r;for(;a=bt(a,r);)q(a);let l=!0;if(e){let c=new CustomEvent("willPaste",{cancelable:!0,detail:{html:t,fragment:r}});this.fireEvent("willPaste",c),r=c.detail.fragment,l=!c.defaultPrevented}l&&(Ko(n,r,o),n.collapse(!1),vr(n,"A",o),this._ensureBottomLine()),this.setSelection(n),this._updatePath(n,!0),e&&this.focus()}catch(o){this._config.didError(o)}return this}insertElement(t,e){if(e||(e=this.getSelection()),e.collapse(!0),T(t))vt(e,t),e.setStartAfter(t);else{let i=this._root,r=it(e,i),n=r||i,o=null;for(;n!==i&&!n.nextSibling;)n=n.parentNode;if(n!==i){let l=n.parentNode;o=lt(l,n.nextSibling,i,i)}r&&si(r)&&z(r),i.insertBefore(t,o);let a=this.createDefaultBlock();i.insertBefore(a,o),e.setStart(a,0),e.setEnd(a,0),Z(e)}return this.focus(),this.setSelection(e),this._updatePath(e),this}insertImage(t,e){let i=C("IMG",Object.assign({src:t},e));return this.insertElement(i),i}insertPlainText(t,e){let i=this.getSelection();if(i.collapsed&&k(i.startContainer,this._root,"PRE")){let d=i.startContainer,u=i.startOffset,h;if(!d||!(d instanceof Text)){let y=document.createTextNode("");d.insertBefore(y,d.childNodes[u]),h=y,u=0}else h=d;let m=!0;if(e){let y=new CustomEvent("willPaste",{cancelable:!0,detail:{text:t}});this.fireEvent("willPaste",y),t=y.detail.text,m=!y.defaultPrevented}return m&&(this.saveUndoState(i),h.insertData(u,t),i.setStart(h,u+t.length),i.collapse(!0)),this.setSelection(i),this}let r=t.split(`
86
+ `),n=this._config,o=n.blockTag,a=n.blockAttributes,l="</"+o+">",c="<"+o;for(let d in a)c+=" "+d+'="'+Sr(a[d])+'"';c+=">";for(let d=0,u=r.length;d<u;d+=1){let h=r[d];h=Sr(h).replace(/ (?=(?: |$))/g,"&nbsp;"),d&&(h=c+(h||"<BR>")+l),r[d]=h}return this.insertHTML(r.join(""),e)}getSelectedText(t){return Tr(t||this.getSelection())}getFontInfo(t){let e={color:void 0,backgroundColor:void 0,fontFamily:void 0,fontSize:void 0};t||(t=this.getSelection()),Z(t);let i=0,r=t.commonAncestorContainer;if(t.collapsed||r instanceof Text)for(r instanceof Text&&(r=r.parentNode);i<4&&r;){let n=r.style;if(n){let o=n.color;!e.color&&o&&(e.color=o,i+=1);let a=n.backgroundColor;!e.backgroundColor&&a&&(e.backgroundColor=a,i+=1);let l=n.fontFamily;!e.fontFamily&&l&&(e.fontFamily=l,i+=1);let c=n.fontSize;!e.fontSize&&c&&(e.fontSize=c,i+=1)}r=r.parentNode}return e}hasFormat(t,e,i){t=t.toUpperCase(),e||(e={}),i||(i=this.getSelection()),!i.collapsed&&i.startContainer instanceof Text&&i.startOffset===i.startContainer.length&&i.startContainer.nextSibling&&i.setStartBefore(i.startContainer.nextSibling),!i.collapsed&&i.endContainer instanceof Text&&i.endOffset===0&&i.endContainer.previousSibling&&i.setEndAfter(i.endContainer.previousSibling);let r=this._root,n=i.commonAncestorContainer;if(k(n,r,t,e))return!0;if(n instanceof Text)return!1;let o=new et(n,4,c=>_t(i,c,!0)),a=!1,l;for(;l=o.nextNode();){if(!k(l,r,t,e))return!1;a=!0}return a}changeFormat(t,e,i,r){return i||(i=this.getSelection()),this.saveUndoState(i),e&&(i=this._removeFormat(e.tag.toUpperCase(),e.attributes||{},i,r)),t&&(i=this._addFormat(t.tag.toUpperCase(),t.attributes||{},i)),this.setSelection(i),this._updatePath(i,!0),this.focus()}_addFormat(t,e,i){let r=this._root;if(i.collapsed){let n=q(C(t,e));vt(i,n);let o=n.firstChild||n,a=o instanceof Text?o.length:0;i.setStart(o,a),i.collapse(!0);let l=n;for(;T(l);)l=l.parentNode;De(l,n)}else{let n=new et(i.commonAncestorContainer,5,d=>(d instanceof Text||d.nodeName==="BR"||d.nodeName==="IMG")&&_t(i,d,!0)),{startContainer:o,startOffset:a,endContainer:l,endOffset:c}=i;if(n.currentNode=o,!(o instanceof Element)&&!(o instanceof Text)||!n.filter(o)){let d=n.nextNode();if(!d)return i;o=d,a=0}do{let d=n.currentNode;if(!k(d,r,t,e)){d===l&&d.length>c&&d.splitText(c),d===o&&a&&(d=d.splitText(a),l===o?(l=d,c-=a):l===o.parentNode&&(c+=1),o=d,a=0);let u=C(t,e);G(d,u),u.appendChild(d)}}while(n.nextNode());i=Ht(o,a,l,c)}return i}_removeFormat(t,e,i,r){this._saveRangeToBookmark(i);let n;i.collapsed&&(ke?n=document.createTextNode("\u200B"):n=document.createTextNode(""),vt(i,n));let o=i.commonAncestorContainer;for(;o!==this._root&&T(o);)o=o.parentNode;let a=i.startContainer,l=i.startOffset,c=i.endContainer,d=i.endOffset,u=[],h=(y,g)=>{if(_t(i,y,!1))return;let x,A;if(!_t(i,y,!0)){!(y instanceof HTMLInputElement)&&(!(y instanceof Text)||y.data)&&u.push([g,y]);return}if(y instanceof Text)y===c&&d!==y.length&&u.push([g,y.splitText(d)]),y===a&&l&&(y.splitText(l),u.push([g,y]));else for(x=y.firstChild;x;x=A)A=x.nextSibling,h(x,g)},m=Array.from(o.getElementsByTagName(t)).filter(y=>_t(i,y,!0)&&ri(y,t,e));if(r||m.forEach(y=>{h(y,y)}),u.forEach(([y,g])=>{y=y.cloneNode(!1),G(g,y),y.appendChild(g)}),m.forEach(y=>{G(y,L(y))}),ke&&n){n=n.parentNode;let y=n;for(;y&&T(y);)y=y.parentNode;y&&De(y,n)}return this._getRangeAndRemoveBookmark(i),n&&i.collapse(!1),Zt(o,i),i}bold(){return this.changeFormat({tag:"B"})}removeBold(){return this.changeFormat(null,{tag:"B"})}italic(){return this.changeFormat({tag:"I"})}removeItalic(){return this.changeFormat(null,{tag:"I"})}underline(){return this.changeFormat({tag:"U"})}removeUnderline(){return this.changeFormat(null,{tag:"U"})}strikethrough(){return this.changeFormat({tag:"S"})}removeStrikethrough(){return this.changeFormat(null,{tag:"S"})}subscript(){return this.changeFormat({tag:"SUB"},{tag:"SUP"})}removeSubscript(){return this.changeFormat(null,{tag:"SUB"})}superscript(){return this.changeFormat({tag:"SUP"},{tag:"SUB"})}removeSuperscript(){return this.changeFormat(null,{tag:"SUP"})}makeLink(t,e){let i=this.getSelection();if(i.collapsed){let r=t.indexOf(":")+1;if(r)for(;t[r]==="/";)r+=1;vt(i,document.createTextNode(t.slice(r)))}return e=Object.assign({href:t},this._config.tagAttributes.a,e),this.changeFormat({tag:"A",attributes:e},{tag:"A"},i)}removeLink(){return this.changeFormat(null,{tag:"A"},this.getSelection(),!0)}addDetectedLinks(t,e){let i=new et(t,4,a=>!k(a,e||this._root,"A")),r=this.linkRegExp,n=this._config.tagAttributes.a,o;for(;o=i.nextNode();){let a=o.parentNode,l=o.data,c;for(;c=r.exec(l);){let d=c.index,u=d+c[0].length;d&&a.insertBefore(document.createTextNode(l.slice(0,d)),o);let h=C("A",Object.assign({href:c[1]?/^(?:ht|f)tps?:/i.test(c[1])?c[1]:"http://"+c[1]:"mailto:"+c[0]},n));h.textContent=l.slice(d,u),a.insertBefore(h,o),o.data=l=l.slice(u)}}return this}setFontFace(t){let e=this._config.classNames.fontFamily;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"font-family: "+t+", sans-serif;"}}:null,{tag:"SPAN",attributes:{class:e}})}setFontSize(t){let e=this._config.classNames.fontSize;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"font-size: "+(typeof t=="number"?t+"px":t)}}:null,{tag:"SPAN",attributes:{class:e}})}setTextColor(t){let e=this._config.classNames.color;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"color:"+t}}:null,{tag:"SPAN",attributes:{class:e}})}setHighlightColor(t){let e=this._config.classNames.highlight;return this.changeFormat(t?{tag:"SPAN",attributes:{class:e,style:"background-color:"+t}}:null,{tag:"SPAN",attributes:{class:e}})}_ensureBottomLine(){let t=this._root,e=t.lastElementChild,i=null;for(;e&&(e.matches("[editor-ui],[clay~=editor-ui]")||e.closest("[editor-ui],[clay~=editor-ui]"));)i=e,e=e.previousElementSibling;(!e||e.nodeName!==this._config.blockTag||!Et(e))&&t.insertBefore(this.createDefaultBlock(),i)}createDefaultBlock(t){let e=this._config;return q(C(e.blockTag,e.blockAttributes,t))}splitBlock(t,e){e||(e=this.getSelection());let i=this._root,r,n,o,a;if(this._recordUndoState(e),this._removeZWS(),this._getRangeAndRemoveBookmark(e),e.collapsed||Ut(e,i),this._config.addLinks){Z(e);let h=e.startContainer,m=e.startOffset;setTimeout(()=>{Rr(this,h,m)},0)}if(r=it(e,i),r&&(n=k(r,i,"PRE"))){Z(e),o=e.startContainer;let h=e.startOffset;return o instanceof Text||(o=document.createTextNode(""),n.insertBefore(o,n.firstChild),h=0),!t&&o instanceof Text&&(o.data.charAt(h-1)===`
87
+ `||se(e,i))&&(o.data.charAt(h)===`
88
+ `||ce(e,i))?(o.deleteData(h&&h-1,h?2:1),a=lt(o,h&&h-1,i,i),o=a.previousSibling,o.textContent||z(o),o=this.createDefaultBlock(),a.parentNode.insertBefore(o,a),a.textContent||z(a),e.setStart(o,0)):(o.insertData(h,`
89
+ `),o.nextSibling||n.appendChild(C("BR")),o.length===h+1?e.setStartAfter(o):e.setStart(o,h+1)),e.collapse(!0),this.setSelection(e),this._updatePath(e,!0),this._docWasChanged(),this}if(!r||t||/^T[HD]$/.test(r.nodeName))return vr(e,"A",i),vt(e,C("BR")),e.collapse(!1),this.setSelection(e),this._updatePath(e,!0),this;if((n=k(r,i,"LI"))&&(r=n),si(r)){if(k(r,i,"UL")||k(r,i,"OL"))return this.decreaseListLevel(e),this;if(k(r,i,"BLOCKQUOTE"))return this.replaceWithBlankLine(e),this}o=e.startContainer;let l=e.startOffset,c=this.tagAfterSplit[r.nodeName];a=lt(o,l,r.parentNode,this._root);let d=this._config,u=null;for(c||(c=d.blockTag,u=d.blockAttributes),ri(a,c,u)||(r=C(c,u),a.dir&&(r.dir=a.dir),G(a,r),r.appendChild(L(a)),a=r),De(r),ai(r),q(r);a instanceof Element;){let h=a.firstChild,m;if(a.nodeName==="A"&&(!a.textContent||a.textContent==="\u200B")){h=document.createTextNode(""),G(a,h),a=h;break}for(;h&&h instanceof Text&&!h.data&&(m=h.nextSibling,!(!m||m.nodeName==="BR"));)z(h),h=m;if(!h||h.nodeName==="BR"||h instanceof Text)break;a=h}return e=Ht(a,0),this.setSelection(e),this._updatePath(e,!0),this}forEachBlock(t,e,i){i||(i=this.getSelection()),e&&this.saveUndoState(i);let r=this._root,n=it(i,r),o=Pt(i,r);if(n&&o)do if(t(n)||n===o)break;while(n=bt(n,r));return e&&(this.setSelection(i),this._updatePath(i,!0)),this}modifyBlocks(t,e){e||(e=this.getSelection()),this._recordUndoState(e,this._isInUndoState);let i=this._root;Ar(e,i),Bt(e,i,i,i);let r=Er(e,i,i);if(!e.collapsed){let n=e.endContainer;if(n===i)e.collapse(!1);else{for(;n.parentNode!==i;)n=n.parentNode;e.setStartBefore(n),e.collapse(!0)}}return vt(e,t.call(this,r)),e.endOffset<e.endContainer.childNodes.length&&yt(e.endContainer.childNodes[e.endOffset],i),yt(e.startContainer.childNodes[e.startOffset],i),this._getRangeAndRemoveBookmark(e),this.setSelection(e),this._updatePath(e,!0),this}setTextAlignment(t){return this.forEachBlock(e=>{let i=e.className.split(/\s+/).filter(r=>!!r&&!/^align/.test(r)).join(" ");t?(e.className=i+" align-"+t,e.style.textAlign=t):(e.className=i,e.style.textAlign="")},!0),this.focus()}setTextDirection(t){return this.forEachBlock(e=>{t?e.dir=t:e.removeAttribute("dir")},!0),this.focus()}_getListSelection(t,e){let i=t.commonAncestorContainer,r=t.startContainer,n=t.endContainer;for(;i&&i!==e&&!/^[OU]L$/.test(i.nodeName);)i=i.parentNode;if(!i||i===e)return null;for(r===i&&(r=r.childNodes[t.startOffset]),n===i&&(n=n.childNodes[t.endOffset]);r&&r.parentNode!==i;)r=r.parentNode;for(;n&&n.parentNode!==i;)n=n.parentNode;return[i,r,n]}increaseListLevel(t){t||(t=this.getSelection());let e=this._root,i=this._getListSelection(t,e);if(!i)return this.focus();let[r,n,o]=i;if(!n||n===r.firstChild)return this.focus();this._recordUndoState(t,this._isInUndoState);let a=r.nodeName,l=n.previousSibling,c,d;l.nodeName!==a&&(c=this._config.tagAttributes[a.toLowerCase()],l=C(a,c),r.insertBefore(l,n));do d=n===o?null:n.nextSibling,l.appendChild(n);while(n=d);return d=l.nextSibling,d&&yt(d,e),this._getRangeAndRemoveBookmark(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}decreaseListLevel(t){t||(t=this.getSelection());let e=this._root,i=this._getListSelection(t,e);if(!i)return this.focus();let[r,n,o]=i;n||(n=r.firstChild),o||(o=r.lastChild),this._recordUndoState(t,this._isInUndoState);let a,l=null;if(n){let c=r.parentNode;if(l=o.nextSibling?lt(r,o.nextSibling,c,e):r.nextSibling,c!==e&&c.nodeName==="LI"){for(c=c.parentNode;l;)a=l.nextSibling,o.appendChild(l),l=a;l=r.parentNode.nextSibling}let d=!/^[OU]L$/.test(c.nodeName);do a=n===o?null:n.nextSibling,r.removeChild(n),d&&n.nodeName==="LI"&&(n=this.createDefaultBlock([L(n)])),c.insertBefore(n,l);while(n=a)}return r.firstChild||z(r),l&&yt(l,e),this._getRangeAndRemoveBookmark(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}_makeList(t,e){let i=Re(t,this._root),r=this._config.tagAttributes,n=r[e.toLowerCase()],o=r.li,a;for(;a=i.nextNode();)if(a.parentNode instanceof HTMLLIElement&&(a=a.parentNode,i.currentNode=a.lastChild),a instanceof HTMLLIElement){a=a.parentNode;let l=a.nodeName;l!==e&&/^[OU]L$/.test(l)&&G(a,C(e,n,[L(a)]))}else{let l=C("LI",o);a.dir&&(l.dir=a.dir);let c=a.previousSibling;c&&c.nodeName===e?(c.appendChild(l),z(a)):G(a,C(e,n,[l])),l.appendChild(L(a)),i.currentNode=l}return t}makeUnorderedList(){return this.modifyBlocks(t=>this._makeList(t,"UL")),this.focus()}makeOrderedList(){return this.modifyBlocks(t=>this._makeList(t,"OL")),this.focus()}removeList(){return this.modifyBlocks(t=>{let e=t.querySelectorAll("UL, OL"),i=t.querySelectorAll("LI"),r=this._root;for(let n=0,o=e.length;n<o;n+=1){let a=e[n],l=L(a);dt(l,r),G(a,l)}for(let n=0,o=i.length;n<o;n+=1){let a=i[n];Et(a)?G(a,this.createDefaultBlock([L(a)])):(dt(a,r),G(a,L(a)))}return t}),this.focus()}increaseQuoteLevel(t){return this.modifyBlocks(e=>C("BLOCKQUOTE",this._config.tagAttributes.blockquote,[e]),t),this.focus()}decreaseQuoteLevel(t){return this.modifyBlocks(e=>(Array.from(e.querySelectorAll("blockquote")).filter(i=>!k(i.parentNode,e,"BLOCKQUOTE")).forEach(i=>{G(i,L(i))}),e),t),this.focus()}removeQuote(t){return this.modifyBlocks(e=>(Array.from(e.querySelectorAll("blockquote")).forEach(i=>{G(i,L(i))}),e),t),this.focus()}replaceWithBlankLine(t){return this.modifyBlocks(()=>this.createDefaultBlock([C("INPUT",{id:this.startSelectionId,type:"hidden"}),C("INPUT",{id:this.endSelectionId,type:"hidden"})]),t),this.focus()}code(){let t=this.getSelection();return t.collapsed||Gt(t.commonAncestorContainer)?(this.modifyBlocks(e=>{let i=this._root,r=document.createDocumentFragment(),n=Re(e,i),o;for(;o=n.nextNode();){let l=o.querySelectorAll("BR"),c=[],d=l.length;for(let u=0;u<d;u+=1)c[u]=Le(l[u],!1);for(;d--;){let u=l[d];c[d]?G(u,document.createTextNode(`
90
+ `)):z(u)}for(l=o.querySelectorAll("CODE"),d=l.length;d--;)G(l[d],L(l[d]));r.childNodes.length&&r.appendChild(document.createTextNode(`
91
+ `)),r.appendChild(L(o))}let a=new et(r,4);for(;o=a.nextNode();)o.data=o.data.replace(/ /g," ");return r.normalize(),q(C("PRE",this._config.tagAttributes.pre,[r]))},t),this.focus()):this.changeFormat({tag:"CODE",attributes:this._config.tagAttributes.code},null,t),this}removeCode(){let t=this.getSelection(),e=t.commonAncestorContainer;return k(e,this._root,"PRE")?(this.modifyBlocks(i=>{let r=this._root,n=i.querySelectorAll("PRE"),o=n.length;for(;o--;){let a=n[o],l=new et(a,4),c;for(;c=l.nextNode();){let d=c.data;d=d.replace(/ (?= )/g,"\xA0");let u=document.createDocumentFragment(),h;for(;(h=d.indexOf(`
92
+ `))>-1;)u.appendChild(document.createTextNode(d.slice(0,h))),u.appendChild(C("BR")),d=d.slice(h+1);c.parentNode.insertBefore(u,c),c.data=d}dt(a,r),G(a,L(a))}return i},t),this.focus()):this.changeFormat(null,{tag:"CODE"},t),this}toggleCode(){return this.hasFormat("PRE")||this.hasFormat("CODE")?this.removeCode():this.code(),this}_removeFormatting(t,e){for(let i=t.firstChild,r;i;i=r){if(r=i.nextSibling,T(i)){if(i instanceof Text||i.nodeName==="BR"||i.nodeName==="IMG"){e.appendChild(i);continue}}else if(Et(i)){e.appendChild(this.createDefaultBlock([this._removeFormatting(i,document.createDocumentFragment())]));continue}this._removeFormatting(i,e)}return e}removeAllFormatting(t){if(t||(t=this.getSelection()),t.collapsed)return this.focus();let e=this._root,i=t.commonAncestorContainer;for(;i&&i!==e&&!Et(i);)i=i.parentNode;if(i||(Ar(t,e),i=e),i instanceof Text)return this.focus();this.saveUndoState(t),Bt(t,i,i,e);let r=t.startContainer,n=t.startOffset,o=t.endContainer,a=t.endOffset,l=document.createDocumentFragment(),c=document.createDocumentFragment(),d=lt(o,a,i,e),u=lt(r,n,i,e),h;for(;u!==d;)h=u.nextSibling,l.appendChild(u),u=h;if(this._removeFormatting(l,c),c.normalize(),u=c.firstChild,h=c.lastChild,u){i.insertBefore(c,d);let m=Array.from(i.childNodes);n=m.indexOf(u),a=h?m.indexOf(h)+1:0}else d&&(n=Array.from(i.childNodes).indexOf(d),a=n);return t.setStart(i,n),t.setEnd(i,a),Zt(i,t),Z(t),this.setSelection(t),this._updatePath(t,!0),this.focus()}},ca=sa;function Mr(t,e){(e==null||e>t.length)&&(e=t.length);for(var i=0,r=Array(e);i<e;i++)r[i]=t[i];return r}function da(t){if(Array.isArray(t))return t}function ha(t,e){var i=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(i!=null){var r,n,o,a,l=[],c=!0,d=!1;try{if(o=(i=i.call(t)).next,e!==0)for(;!(c=(r=o.call(i)).done)&&(l.push(r.value),l.length!==e);c=!0);}catch(u){d=!0,n=u}finally{try{if(!c&&i.return!=null&&(a=i.return(),Object(a)!==a))return}finally{if(d)throw n}}return l}}function ua(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
93
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pa(t,e){return da(t)||ha(t,e)||fa(t,e)||ua()}function fa(t,e){if(t){if(typeof t=="string")return Mr(t,e);var i={}.toString.call(t).slice(8,-1);return i==="Object"&&t.constructor&&(i=t.constructor.name),i==="Map"||i==="Set"?Array.from(t):i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Mr(t,e):void 0}}var Br=Object.entries,Fr=Object.setPrototypeOf,ma=Object.isFrozen,ga=Object.getPrototypeOf,ya=Object.getOwnPropertyDescriptor,$=Object.freeze,j=Object.seal,Qt=Object.create,Pr=typeof Reflect<"u"&&Reflect,ui=Pr.apply,pi=Pr.construct;$||($=function(t){return t}),j||(j=function(t){return t}),ui||(ui=function(t,e){for(var i=arguments.length,r=new Array(i>2?i-2:0),n=2;n<i;n++)r[n-2]=arguments[n];return t.apply(e,r)}),pi||(pi=function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),r=1;r<e;r++)i[r-1]=arguments[r];return new t(...i)});var he=H(Array.prototype.forEach),ba=H(Array.prototype.lastIndexOf),Hr=H(Array.prototype.pop),Xt=H(Array.prototype.push),va=H(Array.prototype.splice),Tt=Array.isArray,ue=H(String.prototype.toLowerCase),fi=H(String.prototype.toString),Ur=H(String.prototype.match),pe=H(String.prototype.replace),zr=H(String.prototype.indexOf),xa=H(String.prototype.trim),Ca=H(Number.prototype.toString),Sa=H(Boolean.prototype.toString),qr=typeof BigInt>"u"?null:H(BigInt.prototype.toString),Wr=typeof Symbol>"u"?null:H(Symbol.prototype.toString),W=H(Object.prototype.hasOwnProperty),fe=H(Object.prototype.toString),V=H(RegExp.prototype.test),zt=wa(TypeError);function H(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];return ui(t,e,r)}}function wa(t){return function(){for(var e=arguments.length,i=new Array(e),r=0;r<e;r++)i[r]=arguments[r];return pi(t,i)}}function w(t,e){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ue;if(Fr&&Fr(t,null),!Tt(e))return t;let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){let o=i(n);o!==n&&(ma(e)||(e[r]=o),n=o)}t[n]=!0}return t}function Aa(t){for(let e=0;e<t.length;e++)W(t,e)||(t[e]=null);return t}function Q(t){let e=Qt(null);for(let r of Br(t)){var i=pa(r,2);let n=i[0],o=i[1];W(t,n)&&(Tt(o)?e[n]=Aa(o):o&&typeof o=="object"&&o.constructor===Object?e[n]=Q(o):e[n]=o)}return e}function Ea(t){switch(typeof t){case"string":return t;case"number":return Ca(t);case"boolean":return Sa(t);case"bigint":return qr?qr(t):"0";case"symbol":return Wr?Wr(t):"Symbol()";case"undefined":return fe(t);case"function":case"object":{if(t===null)return fe(t);let e=t,i=ht(e,"toString");if(typeof i=="function"){let r=i(e);return typeof r=="string"?r:fe(r)}return fe(t)}default:return fe(t)}}function ht(t,e){for(;t!==null;){let r=ya(t,e);if(r){if(r.get)return H(r.get);if(typeof r.value=="function")return H(r.value)}t=ga(t)}function i(){return null}return i}function _a(t){try{return V(t,""),!0}catch{return!1}}var Kr=$(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),mi=$(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),gi=$(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Ta=$(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),yi=$(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),ka=$(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),$r=$(["#text"]),jr=$(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),bi=$(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Vr=$(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Ie=$(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Na=j(/{{[\w\W]*|^[\w\W]*}}/g),La=j(/<%[\w\W]*|^[\w\W]*%>/g),Da=j(/\${[\w\W]*/g),Oa=j(/^data-[\-\w.\u00B7-\uFFFF]+$/),Ra=j(/^aria-[\-\w]+$/),Gr=j(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ia=j(/^(?:\w+script|data):/i),Ma=j(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ba=j(/^html$/i),Fa=j(/^[a-z][.\w]*(-[.\w]+)+$/i),Zr=j(/<[/\w!]/g),Pa=j(/<[/\w]/g),Ha=j(/<\/no(script|embed|frames)/i),Ua=j(/\/>/i),ut={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},za=function(){return typeof window>"u"?null:window},qa=function(t,e){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null,r="data-tt-policy-suffix";e&&e.hasAttribute(r)&&(i=e.getAttribute(r));let n="dompurify"+(i?"#"+i:"");try{return t.createPolicy(n,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+n+" could not be created."),null}},Yr=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},kt=function(t,e,i,r){return W(t,e)&&Tt(t[e])?w(r.base?Q(r.base):{},t[e],r.transform):i};function Qr(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:za(),e=s=>Qr(s);if(e.version="3.4.11",e.removed=[],!t||!t.document||t.document.nodeType!==ut.document||!t.Element)return e.isSupported=!1,e;let i=t.document,r=i,n=r.currentScript;t.DocumentFragment;let o=t.HTMLTemplateElement,a=t.Node,l=t.Element,c=t.NodeFilter;t.NamedNodeMap===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;let u=t.DOMParser,h=t.trustedTypes,m=l.prototype,y=ht(m,"cloneNode"),g=ht(m,"remove"),x=ht(m,"nextSibling"),A=ht(m,"childNodes"),N=ht(m,"parentNode"),B=ht(m,"shadowRoot"),X=ht(m,"attributes"),J=a&&a.prototype?ht(a.prototype,"nodeType"):null,Lt=a&&a.prototype?ht(a.prototype,"nodeName"):null;if(typeof o=="function"){let s=i.createElement("template");s.content&&s.content.ownerDocument&&(i=s.content.ownerDocument)}let rt,qt="",Vi,zn=!1,Se=0,qn=function(){if(Se>0)throw zt('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},ee=function(s){qn(),Se++;try{return rt.createHTML(s)}finally{Se--}},vs=function(s){qn(),Se++;try{return rt.createScriptURL(s)}finally{Se--}},xs=function(){return zn||(Vi=qa(h,n),zn=!0),Vi},We=i,Gi=We.implementation,Wn=We.createNodeIterator,Cs=We.createDocumentFragment,Ss=We.getElementsByTagName,ws=r.importNode,F=Yr();e.isSupported=typeof Br=="function"&&typeof N=="function"&&Gi&&Gi.createHTMLDocument!==void 0;let As=Na,Es=La,_s=Da,Ts=Oa,ks=Ra,Ns=Ia,Kn=Ma,Ls=Fa,$n=Gr,O=null,jn=w({},[...Kr,...mi,...gi,...yi,...$r]),R=null,Vn=w({},[...jr,...bi,...Vr,...Ie]),I=Object.seal(Qt(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),we=null,Gn=null,Dt=Object.seal(Qt(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Zn=!0,Zi=!0,Yn=!1,Qn=!0,Ot=!1,Ae=!0,Wt=!1,Yi=!1,Qi=null,Xi=null,Ji=!1,ie=!1,Ke=!1,$e=!1,Xn=!0,Jn=!1,to="user-content-",tr=!0,er=!1,re={},ft=null,ir=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),eo=null,io=w({},["audio","video","img","source","image","track"]),rr=null,ro=w({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),je="http://www.w3.org/1998/Math/MathML",Ve="http://www.w3.org/2000/svg",mt="http://www.w3.org/1999/xhtml",ne=mt,nr=!1,or=null,Ds=w({},[je,Ve,mt],fi),no=$(["mi","mo","mn","ms","mtext"]),ar=w({},no),oo=$(["annotation-xml"]),lr=w({},oo),Os=w({},["title","style","font","a","script"]),Ee=null,Rs=["application/xhtml+xml","text/html"],Is="text/html",M=null,oe=null,Ms=i.createElement("form"),ao=function(s){return s instanceof RegExp||s instanceof Function},sr=function(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(oe&&oe===s)return;(!s||typeof s!="object")&&(s={}),s=Q(s),Ee=Rs.indexOf(s.PARSER_MEDIA_TYPE)===-1?Is:s.PARSER_MEDIA_TYPE,M=Ee==="application/xhtml+xml"?fi:ue,O=kt(s,"ALLOWED_TAGS",jn,{transform:M}),R=kt(s,"ALLOWED_ATTR",Vn,{transform:M}),or=kt(s,"ALLOWED_NAMESPACES",Ds,{transform:fi}),rr=kt(s,"ADD_URI_SAFE_ATTR",ro,{transform:M,base:ro}),eo=kt(s,"ADD_DATA_URI_TAGS",io,{transform:M,base:io}),ft=kt(s,"FORBID_CONTENTS",ir,{transform:M}),we=kt(s,"FORBID_TAGS",Q({}),{transform:M}),Gn=kt(s,"FORBID_ATTR",Q({}),{transform:M}),re=W(s,"USE_PROFILES")?s.USE_PROFILES&&typeof s.USE_PROFILES=="object"?Q(s.USE_PROFILES):s.USE_PROFILES:!1,Zn=s.ALLOW_ARIA_ATTR!==!1,Zi=s.ALLOW_DATA_ATTR!==!1,Yn=s.ALLOW_UNKNOWN_PROTOCOLS||!1,Qn=s.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ot=s.SAFE_FOR_TEMPLATES||!1,Ae=s.SAFE_FOR_XML!==!1,Wt=s.WHOLE_DOCUMENT||!1,ie=s.RETURN_DOM||!1,Ke=s.RETURN_DOM_FRAGMENT||!1,$e=s.RETURN_TRUSTED_TYPE||!1,Ji=s.FORCE_BODY||!1,Xn=s.SANITIZE_DOM!==!1,Jn=s.SANITIZE_NAMED_PROPS||!1,tr=s.KEEP_CONTENT!==!1,er=s.IN_PLACE||!1,$n=_a(s.ALLOWED_URI_REGEXP)?s.ALLOWED_URI_REGEXP:Gr,ne=typeof s.NAMESPACE=="string"?s.NAMESPACE:mt,ar=W(s,"MATHML_TEXT_INTEGRATION_POINTS")&&s.MATHML_TEXT_INTEGRATION_POINTS&&typeof s.MATHML_TEXT_INTEGRATION_POINTS=="object"?Q(s.MATHML_TEXT_INTEGRATION_POINTS):w({},no),lr=W(s,"HTML_INTEGRATION_POINTS")&&s.HTML_INTEGRATION_POINTS&&typeof s.HTML_INTEGRATION_POINTS=="object"?Q(s.HTML_INTEGRATION_POINTS):w({},oo);let p=W(s,"CUSTOM_ELEMENT_HANDLING")&&s.CUSTOM_ELEMENT_HANDLING&&typeof s.CUSTOM_ELEMENT_HANDLING=="object"?Q(s.CUSTOM_ELEMENT_HANDLING):Qt(null);if(I=Qt(null),W(p,"tagNameCheck")&&ao(p.tagNameCheck)&&(I.tagNameCheck=p.tagNameCheck),W(p,"attributeNameCheck")&&ao(p.attributeNameCheck)&&(I.attributeNameCheck=p.attributeNameCheck),W(p,"allowCustomizedBuiltInElements")&&typeof p.allowCustomizedBuiltInElements=="boolean"&&(I.allowCustomizedBuiltInElements=p.allowCustomizedBuiltInElements),j(I),Ot&&(Zi=!1),Ke&&(ie=!0),re&&(O=w({},$r),R=Qt(null),re.html===!0&&(w(O,Kr),w(R,jr)),re.svg===!0&&(w(O,mi),w(R,bi),w(R,Ie)),re.svgFilters===!0&&(w(O,gi),w(R,bi),w(R,Ie)),re.mathMl===!0&&(w(O,yi),w(R,Vr),w(R,Ie))),Dt.tagCheck=null,Dt.attributeCheck=null,W(s,"ADD_TAGS")&&(typeof s.ADD_TAGS=="function"?Dt.tagCheck=s.ADD_TAGS:Tt(s.ADD_TAGS)&&(O===jn&&(O=Q(O)),w(O,s.ADD_TAGS,M))),W(s,"ADD_ATTR")&&(typeof s.ADD_ATTR=="function"?Dt.attributeCheck=s.ADD_ATTR:Tt(s.ADD_ATTR)&&(R===Vn&&(R=Q(R)),w(R,s.ADD_ATTR,M))),W(s,"ADD_URI_SAFE_ATTR")&&Tt(s.ADD_URI_SAFE_ATTR)&&w(rr,s.ADD_URI_SAFE_ATTR,M),W(s,"FORBID_CONTENTS")&&Tt(s.FORBID_CONTENTS)&&(ft===ir&&(ft=Q(ft)),w(ft,s.FORBID_CONTENTS,M)),W(s,"ADD_FORBID_CONTENTS")&&Tt(s.ADD_FORBID_CONTENTS)&&(ft===ir&&(ft=Q(ft)),w(ft,s.ADD_FORBID_CONTENTS,M)),tr&&(O["#text"]=!0),Wt&&w(O,["html","head","body"]),O.table&&(w(O,["tbody"]),delete we.tbody),s.TRUSTED_TYPES_POLICY){if(typeof s.TRUSTED_TYPES_POLICY.createHTML!="function")throw zt('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof s.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw zt('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let f=rt;rt=s.TRUSTED_TYPES_POLICY;try{qt=ee("")}catch(b){throw rt=f,b}}else s.TRUSTED_TYPES_POLICY===null?(rt=void 0,qt=""):(rt===void 0&&(rt=xs()),rt&&typeof qt=="string"&&(qt=ee("")));$&&$(s),oe=s},lo=w({},[...mi,...gi,...Ta]),so=w({},[...yi,...ka]),Bs=function(s,p,f){return p.namespaceURI===mt?s==="svg":p.namespaceURI===je?s==="svg"&&(f==="annotation-xml"||ar[f]):!!lo[s]},Fs=function(s,p,f){return p.namespaceURI===mt?s==="math":p.namespaceURI===Ve?s==="math"&&lr[f]:!!so[s]},Ps=function(s,p,f){return p.namespaceURI===Ve&&!lr[f]||p.namespaceURI===je&&!ar[f]?!1:!so[s]&&(Os[s]||!lo[s])},Hs=function(s){let p=N(s);(!p||!p.tagName)&&(p={namespaceURI:ne,tagName:"template"});let f=ue(s.tagName),b=ue(p.tagName);return or[s.namespaceURI]?s.namespaceURI===Ve?Bs(f,p,b):s.namespaceURI===je?Fs(f,p,b):s.namespaceURI===mt?Ps(f,p,b):!!(Ee==="application/xhtml+xml"&&or[s.namespaceURI]):!1},Kt=function(s){Xt(e.removed,{element:s});try{N(s).removeChild(s)}catch{if(g(s),!N(s))throw zt("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},co=function(s){let p=A(s);if(p){let b=[];he(p,S=>{Xt(b,S)}),he(b,S=>{try{g(S)}catch{}})}let f=X(s);if(f)for(let b=f.length-1;b>=0;--b){let S=f[b],E=S&&S.name;if(typeof E=="string")try{s.removeAttribute(E)}catch{}}},$t=function(s,p){try{Xt(e.removed,{attribute:p.getAttributeNode(s),from:p})}catch{Xt(e.removed,{attribute:null,from:p})}if(p.removeAttribute(s),s==="is")if(ie||Ke)try{Kt(p)}catch{}else try{p.setAttribute(s,"")}catch{}},Us=function(s){let p=X(s);if(p)for(let f=p.length-1;f>=0;--f){let b=p[f],S=b&&b.name;if(!(typeof S!="string"||R[M(S)]))try{s.removeAttribute(S)}catch{}}},zs=function(s){let p=[s];for(;p.length>0;){let f=p.pop();(J?J(f):f.nodeType)===ut.element&&Us(f);let b=A(f);if(b)for(let S=b.length-1;S>=0;--S)p.push(b[S])}},ho=function(s){let p=null,f=null;if(Ji)s="<remove></remove>"+s;else{let E=Ur(s,/^[\r\n\t ]+/);f=E&&E[0]}Ee==="application/xhtml+xml"&&ne===mt&&(s='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+s+"</body></html>");let b=rt?ee(s):s;if(ne===mt)try{p=new u().parseFromString(b,Ee)}catch{}if(!p||!p.documentElement){p=Gi.createDocument(ne,"template",null);try{p.documentElement.innerHTML=nr?qt:b}catch{}}let S=p.body||p.documentElement;return s&&f&&S.insertBefore(i.createTextNode(f),S.childNodes[0]||null),ne===mt?Ss.call(p,Wt?"html":"body")[0]:Wt?p.documentElement:S},uo=function(s){return Wn.call(s.ownerDocument||s,s,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Ge=function(s){return s=pe(s,As," "),s=pe(s,Es," "),s=pe(s,_s," "),s},cr=function(s){var p;s.normalize();let f=Wn.call(s.ownerDocument||s,s,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),b=f.nextNode();for(;b;)b.data=Ge(b.data),b=f.nextNode();let S=(p=s.querySelectorAll)===null||p===void 0?void 0:p.call(s,"template");S&&he(S,E=>{ae(E.content)&&cr(E.content)})},Ze=function(s){let p=Lt?Lt(s):null;return typeof p!="string"||M(p)!=="form"?!1:typeof s.nodeName!="string"||typeof s.textContent!="string"||typeof s.removeChild!="function"||s.attributes!==X(s)||typeof s.removeAttribute!="function"||typeof s.setAttribute!="function"||typeof s.namespaceURI!="string"||typeof s.insertBefore!="function"||typeof s.hasChildNodes!="function"||s.nodeType!==J(s)||s.childNodes!==A(s)},ae=function(s){if(!J||typeof s!="object"||s===null)return!1;try{return J(s)===ut.documentFragment}catch{return!1}},_e=function(s){if(!J||typeof s!="object"||s===null)return!1;try{return typeof J(s)=="number"}catch{return!1}};function wt(s,p,f){s.length!==0&&he(s,b=>{b.call(e,p,f,oe)})}let qs=function(s,p){return!!(Ae&&s.hasChildNodes()&&!_e(s.firstElementChild)&&V(Zr,s.textContent)&&V(Zr,s.innerHTML)||Ae&&s.namespaceURI===mt&&p==="style"&&_e(s.firstElementChild)||s.nodeType===ut.processingInstruction||Ae&&s.nodeType===ut.comment&&V(Pa,s.data))},Ws=function(s,p){if(!we[p]&&mo(p)&&(I.tagNameCheck instanceof RegExp&&V(I.tagNameCheck,p)||I.tagNameCheck instanceof Function&&I.tagNameCheck(p)))return!1;if(tr&&!ft[p]){let f=N(s),b=A(s);if(b&&f){let S=b.length;for(let E=S-1;E>=0;--E){let _=er?b[E]:y(b[E],!0);f.insertBefore(_,x(s))}}}return Kt(s),!0},po=function(s){if(wt(F.beforeSanitizeElements,s,null),Ze(s))return Kt(s),!0;let p=M(Lt?Lt(s):s.nodeName);if(wt(F.uponSanitizeElement,s,{tagName:p,allowedTags:O}),qs(s,p))return Kt(s),!0;if(we[p]||!(Dt.tagCheck instanceof Function&&Dt.tagCheck(p))&&!O[p])return Ws(s,p);if((J?J(s):s.nodeType)===ut.element&&!Hs(s)||(p==="noscript"||p==="noembed"||p==="noframes")&&V(Ha,s.innerHTML))return Kt(s),!0;if(Ot&&s.nodeType===ut.text){let f=Ge(s.textContent);s.textContent!==f&&(Xt(e.removed,{element:s.cloneNode()}),s.textContent=f)}return wt(F.afterSanitizeElements,s,null),!1},fo=function(s,p,f){if(Gn[p]||Xn&&(p==="id"||p==="name")&&(f in i||f in Ms))return!1;let b=R[p]||Dt.attributeCheck instanceof Function&&Dt.attributeCheck(p,s);if(!(Zi&&V(Ts,p))&&!(Zn&&V(ks,p))){if(b){if(!rr[p]&&!V($n,pe(f,Kn,""))&&!((p==="src"||p==="xlink:href"||p==="href")&&s!=="script"&&zr(f,"data:")===0&&eo[s])&&!(Yn&&!V(Ns,pe(f,Kn,"")))&&f)return!1}else if(!(mo(s)&&(I.tagNameCheck instanceof RegExp&&V(I.tagNameCheck,s)||I.tagNameCheck instanceof Function&&I.tagNameCheck(s))&&(I.attributeNameCheck instanceof RegExp&&V(I.attributeNameCheck,p)||I.attributeNameCheck instanceof Function&&I.attributeNameCheck(p,s))||p==="is"&&I.allowCustomizedBuiltInElements&&(I.tagNameCheck instanceof RegExp&&V(I.tagNameCheck,f)||I.tagNameCheck instanceof Function&&I.tagNameCheck(f))))return!1}return!0},Ks=w({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),mo=function(s){return!Ks[ue(s)]&&V(Ls,s)},$s=function(s,p,f,b){if(rt&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!f)switch(h.getAttributeType(s,p)){case"TrustedHTML":return ee(b);case"TrustedScriptURL":return vs(b)}return b},js=function(s,p,f,b){try{f?s.setAttributeNS(f,p,b):s.setAttribute(p,b),Ze(s)?Kt(s):Hr(e.removed)}catch{$t(p,s)}},go=function(s){wt(F.beforeSanitizeAttributes,s,null);let p=s.attributes;if(!p||Ze(s))return;let f={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:R,forceKeepAttr:void 0},b=p.length,S=M(s.nodeName);for(;b--;){let E=p[b],_=E.name,jt=E.namespaceURI,Rt=E.value,nt=M(_),It=Rt,tt=_==="value"?It:xa(It);if(f.attrName=nt,f.attrValue=tt,f.keepAttr=!0,f.forceKeepAttr=void 0,wt(F.uponSanitizeAttribute,s,f),tt=f.attrValue,Jn&&(nt==="id"||nt==="name")&&zr(tt,to)!==0&&($t(_,s),tt=to+tt),Ae&&V(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,tt)){$t(_,s);continue}if(nt==="attributename"&&Ur(tt,"href")){$t(_,s);continue}if(!f.forceKeepAttr){if(!f.keepAttr){$t(_,s);continue}if(!Qn&&V(Ua,tt)){$t(_,s);continue}if(Ot&&(tt=Ge(tt)),!fo(S,nt,tt)){$t(_,s);continue}tt=$s(S,nt,jt,tt),tt!==It&&js(s,_,jt,tt)}}wt(F.afterSanitizeAttributes,s,null)},Ye=function(s){let p=null,f=uo(s);for(wt(F.beforeSanitizeShadowDOM,s,null);p=f.nextNode();)if(wt(F.uponSanitizeShadowNode,p,null),po(p),go(p),ae(p.content)&&Ye(p.content),(J?J(p):p.nodeType)===ut.element){let b=B(p);ae(b)&&(dr(b),Ye(b))}wt(F.afterSanitizeShadowDOM,s,null)},dr=function(s){let p=[{node:s,shadow:null}];for(;p.length>0;){let f=p.pop();if(f.shadow){Ye(f.shadow);continue}let b=f.node,S=(J?J(b):b.nodeType)===ut.element,E=A(b);if(E)for(let _=E.length-1;_>=0;--_)p.push({node:E[_],shadow:null});if(S){let _=Lt?Lt(b):null;if(typeof _=="string"&&M(_)==="template"){let jt=b.content;ae(jt)&&p.push({node:jt,shadow:null})}}if(S){let _=B(b);ae(_)&&p.push({node:null,shadow:_},{node:_,shadow:null})}}};return e.sanitize=function(s){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},f=null,b=null,S=null,E=null;if(nr=!s,nr&&(s="<!-->"),typeof s!="string"&&!_e(s)&&(s=Ea(s),typeof s!="string"))throw zt("dirty is not a string, aborting");if(!e.isSupported)return s;Yi?(O=Qi,R=Xi):sr(p),(F.uponSanitizeElement.length>0||F.uponSanitizeAttribute.length>0)&&(O=Q(O)),F.uponSanitizeAttribute.length>0&&(R=Q(R)),e.removed=[];let _=er&&typeof s!="string"&&_e(s);if(_){let nt=Lt?Lt(s):s.nodeName;if(typeof nt=="string"){let It=M(nt);if(!O[It]||we[It])throw zt("root node is forbidden and cannot be sanitized in-place")}if(Ze(s))throw zt("root node is clobbered and cannot be sanitized in-place");try{dr(s)}catch(It){throw co(s),It}}else if(_e(s))f=ho("<!---->"),b=f.ownerDocument.importNode(s,!0),b.nodeType===ut.element&&b.nodeName==="BODY"||b.nodeName==="HTML"?f=b:f.appendChild(b),dr(b);else{if(!ie&&!Ot&&!Wt&&s.indexOf("<")===-1)return rt&&$e?ee(s):s;if(f=ho(s),!f)return ie?null:$e?qt:""}f&&Ji&&Kt(f.firstChild);let jt=uo(_?s:f);try{for(;S=jt.nextNode();)po(S),go(S),ae(S.content)&&Ye(S.content)}catch(nt){throw _&&co(s),nt}if(_)return he(e.removed,nt=>{nt.element&&zs(nt.element)}),Ot&&cr(s),s;if(ie){if(Ot&&cr(f),Ke)for(E=Cs.call(f.ownerDocument);f.firstChild;)E.appendChild(f.firstChild);else E=f;return(R.shadowroot||R.shadowrootmode)&&(E=ws.call(r,E,!0)),E}let Rt=Wt?f.outerHTML:f.innerHTML;return Wt&&O["!doctype"]&&f.ownerDocument&&f.ownerDocument.doctype&&f.ownerDocument.doctype.name&&V(Ba,f.ownerDocument.doctype.name)&&(Rt="<!DOCTYPE "+f.ownerDocument.doctype.name+`>
94
+ `+Rt),Ot&&(Rt=Ge(Rt)),rt&&$e?ee(Rt):Rt},e.setConfig=function(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};sr(s),Yi=!0,Qi=O,Xi=R},e.clearConfig=function(){oe=null,Yi=!1,Qi=null,Xi=null,rt=Vi,qt=""},e.isValidAttribute=function(s,p,f){oe||sr({});let b=M(s),S=M(p);return fo(b,S,f)},e.addHook=function(s,p){typeof p=="function"&&W(F,s)&&Xt(F[s],p)},e.removeHook=function(s,p){if(W(F,s)){if(p!==void 0){let f=ba(F[s],p);return f===-1?void 0:va(F[s],f,1)[0]}return Hr(F[s])}},e.removeHooks=function(s){W(F,s)&&(F[s]=[])},e.removeAllHooks=function(){F=Yr()},e}var Wa=Qr(),U=(t,e="0 0 18 18")=>`<svg viewBox="${e}" width="18" height="18" aria-hidden="true" focusable="false">${t}</svg>`,D={bold:U('<path fill="currentColor" d="M178.48,115.7A44,44,0,0,0,148,40H80a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8h80a48,48,0,0,0,18.48-92.3ZM88,56h60a28,28,0,0,1,0,56H88Zm72,136H88V128h72a32,32,0,0,1,0,64Z"/>',"0 0 256 256"),italic:U('<path fill="currentColor" d="M200,56a8,8,0,0,1-8,8H157.77L115.1,192H144a8,8,0,0,1,0,16H64a8,8,0,0,1,0-16H98.23L140.9,64H112a8,8,0,0,1,0-16h80A8,8,0,0,1,200,56Z"/>',"0 0 256 256"),underline:U('<path fill="currentColor" d="M200,224a8,8,0,0,1-8,8H64a8,8,0,0,1,0-16H192A8,8,0,0,1,200,224Zm-72-24a64.07,64.07,0,0,0,64-64V56a8,8,0,0,0-16,0v80a48,48,0,0,1-96,0V56a8,8,0,0,0-16,0v80A64.07,64.07,0,0,0,128,200Z"/>',"0 0 256 256"),strike:U('<path fill="currentColor" d="M224,128a8,8,0,0,1-8,8H175.93c9.19,7.11,16.07,17.2,16.07,32,0,13.34-7,25.7-19.75,34.79C160.33,211.31,144.61,216,128,216s-32.33-4.69-44.25-13.21C71,193.7,64,181.34,64,168a8,8,0,0,1,16,0c0,17.35,22,32,48,32s48-14.65,48-32c0-14.85-10.54-23.58-38.77-32H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM76.33,104a8,8,0,0,0,7.61-10.49A17.3,17.3,0,0,1,83.11,88c0-18.24,19.3-32,44.89-32,18.84,0,34.16,7.42,41,19.85a8,8,0,0,0,14-7.7C173.33,50.52,152.77,40,128,40,93.29,40,67.11,60.63,67.11,88a33.73,33.73,0,0,0,1.62,10.49A8,8,0,0,0,76.33,104Z"/>',"0 0 256 256"),link:U('<path fill="currentColor" d="M240,88.23a54.43,54.43,0,0,1-16,37L189.25,160a54.27,54.27,0,0,1-38.63,16h-.05A54.63,54.63,0,0,1,96,119.84a8,8,0,0,1,16,.45A38.62,38.62,0,0,0,150.58,160h0a38.39,38.39,0,0,0,27.31-11.31l34.75-34.75a38.63,38.63,0,0,0-54.63-54.63l-11,11A8,8,0,0,1,135.7,59l11-11A54.65,54.65,0,0,1,224,48,54.86,54.86,0,0,1,240,88.23ZM109,185.66l-11,11A38.41,38.41,0,0,1,70.6,208h0a38.63,38.63,0,0,1-27.29-65.94L78,107.31A38.63,38.63,0,0,1,144,135.71a8,8,0,0,0,16,.45A54.86,54.86,0,0,0,144,96a54.65,54.65,0,0,0-77.27,0L32,130.75A54.62,54.62,0,0,0,70.56,224h0a54.28,54.28,0,0,0,38.64-16l11-11A8,8,0,0,0,109,185.66Z"/>',"0 0 256 256"),unlink:U('<path fill="currentColor" d="M198.63,57.37a32,32,0,0,0-45.19-.06L141.79,69.52a8,8,0,0,1-11.58-11l11.72-12.29a1.59,1.59,0,0,1,.13-.13,48,48,0,0,1,67.88,67.88,1.59,1.59,0,0,1-.13.13l-12.29,11.72a8,8,0,0,1-11-11.58l12.21-11.65A32,32,0,0,0,198.63,57.37ZM114.21,186.48l-11.65,12.21a32,32,0,0,1-45.25-45.25l12.21-11.65a8,8,0,0,0-11-11.58L46.19,141.93a1.59,1.59,0,0,0-.13.13,48,48,0,0,0,67.88,67.88,1.59,1.59,0,0,0,.13-.13l11.72-12.29a8,8,0,1,0-11.58-11ZM216,152H192a8,8,0,0,0,0,16h24a8,8,0,0,0,0-16ZM40,104H64a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16Zm120,80a8,8,0,0,0-8,8v24a8,8,0,0,0,16,0V192A8,8,0,0,0,160,184ZM96,72a8,8,0,0,0,8-8V40a8,8,0,0,0-16,0V64A8,8,0,0,0,96,72Z"/>',"0 0 256 256"),ul:U('<path fill="currentColor" d="M80,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H88A8,8,0,0,1,80,64Zm136,56H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Zm0,64H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM44,52A12,12,0,1,0,56,64,12,12,0,0,0,44,52Zm0,64a12,12,0,1,0,12,12A12,12,0,0,0,44,116Zm0,64a12,12,0,1,0,12,12A12,12,0,0,0,44,180Z"/>',"0 0 256 256"),ol:U('<path fill="currentColor" d="M224,128a8,8,0,0,1-8,8H104a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM104,72H216a8,8,0,0,0,0-16H104a8,8,0,0,0,0,16ZM216,184H104a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM43.58,55.16,48,52.94V104a8,8,0,0,0,16,0V40a8,8,0,0,0-11.58-7.16l-16,8a8,8,0,0,0,7.16,14.32ZM79.77,156.72a23.73,23.73,0,0,0-9.6-15.95,24.86,24.86,0,0,0-34.11,4.7,23.63,23.63,0,0,0-3.57,6.46,8,8,0,1,0,15,5.47,7.84,7.84,0,0,1,1.18-2.13,8.76,8.76,0,0,1,12-1.59A7.91,7.91,0,0,1,63.93,159a7.64,7.64,0,0,1-1.57,5.78,1,1,0,0,0-.08.11L33.59,203.21A8,8,0,0,0,40,216H72a8,8,0,0,0,0-16H56l19.08-25.53A23.47,23.47,0,0,0,79.77,156.72Z"/>',"0 0 256 256"),quote:U('<path fill="currentColor" d="M100,56H40A16,16,0,0,0,24,72v64a16,16,0,0,0,16,16h60v8a32,32,0,0,1-32,32,8,8,0,0,0,0,16,48.05,48.05,0,0,0,48-48V72A16,16,0,0,0,100,56Zm0,80H40V72h60ZM216,56H156a16,16,0,0,0-16,16v64a16,16,0,0,0,16,16h60v8a32,32,0,0,1-32,32,8,8,0,0,0,0,16,48.05,48.05,0,0,0,48-48V72A16,16,0,0,0,216,56Zm0,80H156V72h60Z"/>',"0 0 256 256"),undo:U('<path fill="currentColor" d="M224,128a96,96,0,0,1-94.71,96H128A95.38,95.38,0,0,1,62.1,197.8a8,8,0,0,1,11-11.63A80,80,0,1,0,71.43,71.39a3.07,3.07,0,0,1-.26.25L44.59,96H72a8,8,0,0,1,0,16H24a8,8,0,0,1-8-8V56a8,8,0,0,1,16,0V85.8L60.25,60A96,96,0,0,1,224,128Z"/>',"0 0 256 256"),redo:U('<path fill="currentColor" d="M240,56v48a8,8,0,0,1-8,8H184a8,8,0,0,1,0-16H211.4L184.81,71.64l-.25-.24a80,80,0,1,0-1.67,114.78,8,8,0,0,1,11,11.63A95.44,95.44,0,0,1,128,224h-1.32A96,96,0,1,1,195.75,60L224,85.8V56a8,8,0,1,1,16,0Z"/>',"0 0 256 256"),clear:U('<path fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter" d="M3 3l18 18M5 5v3M9 5h10v3M12 5v3M12 12v7M8 19h8"/>',"0 0 24 24"),code:U('<path fill="currentColor" d="M69.12,94.15,28.5,128l40.62,33.85a8,8,0,1,1-10.24,12.29l-48-40a8,8,0,0,1,0-12.29l48-40a8,8,0,0,1,10.24,12.3Zm176,27.7-48-40a8,8,0,1,0-10.24,12.3L227.5,128l-40.62,33.85a8,8,0,1,0,10.24,12.29l48-40a8,8,0,0,0,0-12.29ZM162.73,32.48a8,8,0,0,0-10.25,4.79l-64,176a8,8,0,0,0,4.79,10.26A8.14,8.14,0,0,0,96,224a8,8,0,0,0,7.52-5.27l64-176A8,8,0,0,0,162.73,32.48Z"/>',"0 0 256 256"),indent:U('<path fill="currentColor" d="M224,128a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM112,72H216a8,8,0,0,0,0-16H112a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM34.34,141.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0,0-11.32l-40-40A8,8,0,0,0,34.34,61.66L68.69,96,34.34,130.34A8,8,0,0,0,34.34,141.66Z"/>',"0 0 256 256"),outdent:U('<path fill="currentColor" d="M224,128a8,8,0,0,1-8,8H112a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM112,72H216a8,8,0,0,0,0-16H112a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM72,144a8,8,0,0,0,5.66-13.66L43.31,96,77.66,61.66A8,8,0,0,0,66.34,50.34l-40,40a8,8,0,0,0,0,11.32l40,40A8,8,0,0,0,72,144Z"/>',"0 0 256 256"),blocks:U('<path fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter" d="M19 4h-9a4.5 4.5 0 0 0 0 9h3M13 4v16M17 4v16"/>',"0 0 24 24"),h1:U('<path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M3.5 5.5v12M12 5.5v12M3.5 11.5H12M17 12l3-2v10"/>',"0 0 24 24"),h2:U('<path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M3.5 5.5v12M12 5.5v12M3.5 11.5H12M16 12.5c0-3.5 6-3.5 6 0 0 2-2.5 3.5-6 7.5h6"/>',"0 0 24 24"),h3:U('<path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M3.5 5.5v12M12 5.5v12M3.5 11.5H12M16 11c1.5-1.5 6-1.5 6 1.5 0 1.5-1.5 2.5-3 2.5h-1M19 15c1.5 0 3 1 3 2.5 0 3-4.5 3-6 1.5"/>',"0 0 24 24")},xt=t=>t.blocksStayOut(),Ka=t=>!!t.element.closest("a"),Me={minimal:["bold","italic","link","unorderedList"],inline:["bold","italic","underline","strikethrough","code","link","undo","redo","clearFormatting"],standard:["blockMenu","bold","italic","underline","strikethrough","code","link","unorderedList","orderedList","quote","outdent","indent","undo","redo","clearFormatting"]};function $a(){return new Map(Va.map(t=>[t.id,t]))}function me(t=globalThis){let e=t?.navigator;return e?/Mac|iPhone|iPad|iPod/.test(e.platform||e.userAgent||""):!1}function ja(t,e=globalThis){return t?t.replace("Mod",me(e)?"Cmd":"Ctrl"):""}var Va=[Nt("bold","Bold",D.bold,"Mod+B","inline",t=>t.toggleFormat("B","bold","removeBold")),Nt("italic","Italic",D.italic,"Mod+I","inline",t=>t.toggleFormat("I","italic","removeItalic")),Nt("underline","Underline",D.underline,"Mod+U","inline",t=>t.toggleFormat("U","underline","removeUnderline")),Nt("strikethrough","Strikethrough",D.strike,"Mod+Shift+7","inline",t=>t.toggleFormat("S","strikethrough","removeStrikethrough")),Nt("code","Code",D.code,null,"inline",t=>t.toggleCode(),t=>t.selectionHasFormat("CODE")||t.selectionHasFormat("PRE")),{id:"link",label:"Link",ariaLabel:"Insert or edit link",icon:D.link,group:"links",shortcut:"Mod+K",mutates:!1,isDisabled:Ka,run:t=>t.openLinkDialog(),isActive:t=>!!t.currentLinkElement()},{id:"unlink",label:"Remove link",ariaLabel:"Remove link",icon:D.unlink,group:"links",run:t=>t.squire.removeLink()},Nt("unorderedList","Bulleted list",D.ul,"Mod+Shift+8","lists",t=>t.toggleList("UL"),t=>t.pathHas("UL"),xt),Nt("orderedList","Numbered list",D.ol,"Mod+Shift+9","lists",t=>t.toggleList("OL"),t=>t.pathHas("OL"),xt),Nt("quote","Quote",D.quote,null,"blocks",t=>t.pathHas("BLOCKQUOTE")?t.squire.decreaseQuoteLevel():t.squire.increaseQuoteLevel(),t=>t.pathHas("BLOCKQUOTE"),xt),{id:"outdent",label:"Outdent",ariaLabel:"Decrease indent",icon:D.outdent,group:"blocks",shortcut:"Mod+[",isDisabled:xt,run:t=>t.outdent()},{id:"indent",label:"Indent",ariaLabel:"Increase indent",icon:D.indent,group:"blocks",shortcut:"Mod+]",isDisabled:xt,run:t=>t.indent()},{id:"undo",label:"Undo",ariaLabel:"Undo",icon:D.undo,group:"history",shortcut:"Mod+Z",mutates:!1,run:t=>t.squire.undo()},{id:"redo",label:"Redo",ariaLabel:"Redo",icon:D.redo,group:"history",shortcut:"Mod+Shift+Z",mutates:!1,run:t=>t.squire.redo()},{id:"clearFormatting",label:"Clear formatting",ariaLabel:"Clear formatting",icon:D.clear,group:"cleanup",run:t=>t.squire.removeAllFormatting()},{id:"blockMenu",type:"menu",label:"Block style",ariaLabel:"Choose block style",icon:D.blocks,group:"blocks",isDisabled:xt,options:[Be("Paragraph","P",D.blocks),Be("Heading 1","H1",D.h1),Be("Heading 2","H2",D.h2),Be("Heading 3","H3",D.h3),{label:"Quote",icon:D.quote,value:"BLOCKQUOTE",isDisabled:xt,run:t=>t.squire.increaseQuoteLevel(),isActive:t=>t.pathHas("BLOCKQUOTE")},{label:"Code block",icon:D.code,value:"PRE",isDisabled:xt,run:t=>t.setBlockType("PRE"),isActive:t=>t.pathHas("PRE")}]}];function Nt(t,e,i,r,n,o,a=c=>c.selectionHasFormat(Ga(t)),l){return{id:t,label:e,ariaLabel:e,icon:i,group:n,shortcut:r,isDisabled:l,run:o,isActive:a}}function Ga(t){return{bold:"B",italic:"I",underline:"U",strikethrough:"S"}[t]}function Be(t,e,i){return{label:t,icon:i,value:e,isDisabled:xt,run:r=>r.setBlockType(e),isActive:r=>r.pathHas(e)}}var vi=/^(?:#text|A(?:BBR|CRONYM)?|B(?:R|D[IO])?|C(?:ITE|ODE)|D(?:ATA|EL|FN)|EM|FONT|HR|I(?:FRAME|MG|NPUT|NS)?|KBD|Q|R(?:P|T|UBY)|S(?:AMP|MALL|PAN|TR(?:IKE|ONG)|U[BP])?|TIME|U|VAR|WBR)$/,Fe=/[^ \t\r\n]/,Za=new Set(["BR","HR","IFRAME","IMG","INPUT","WBR"]),xi=t=>t?.nodeType===1&&t.matches('[editor-ui],[clay~="editor-ui"]'),ge=new Set(["svg","math"]);function Pe(t){let e=t.nodeType;return e===3||e===8?!0:e!==1?!1:ge.has(t.nodeName)?!0:vi.test(t.nodeName)?Array.from(t.childNodes).every(Pe):!1}function ye(t){return Array.from(t.childNodes).some(e=>!Pe(e))}var Ci=t=>t?.nodeType===1&&!ge.has(t.nodeName)&&!vi.test(t.nodeName);function Si(t,e){let i=Array.from(t.childNodes),r=0;return i.forEach((n,o)=>{if(!(n.nodeType!==1||ge.has(n.nodeName))&&(r+=Si(n,e),!!Ci(n))){for(Ci(i[o-1])&&t.insertBefore(e(),n);n.firstChild;)t.insertBefore(n.firstChild,n);n.remove(),r+=1}}),r}var wi=new Set(["TABLE","THEAD","TBODY","TFOOT","TR","COLGROUP"]);function Ai(t){return!!t.closest?.("p")||wi.has(t.nodeName)}var Ya=new Set(["P","H1","H2","H3","H4","H5","H6","PRE","LABEL","LEGEND","LI","TD","TH","DT","DD","FIGCAPTION","SUMMARY","CAPTION"]);function Qa(t){return Ya.has(t.nodeName)||Ei(t)}var Xr=new Set(["AREA","BASE","BR","COL","EMBED","HR","IMG","INPUT","LINK","META","PARAM","SOURCE","TRACK","WBR"]),Xa=new Set(["SCRIPT","STYLE","TEXTAREA","TITLE","IFRAME","NOSCRIPT","XMP"]),Jr="http://www.w3.org/1999/xhtml";function Ja(t){return wi.has(t.nodeName)||Xr.has(t.nodeName)||Xa.has(t.nodeName)||t.nodeName==="TEMPLATE"||!!t.namespaceURI&&t.namespaceURI!==Jr}function tl(t){return wi.has(t.nodeName)?"a table element cannot be an editable region. Move the editable attribute to a <td>, a <th>, or an element inside one.":t.namespaceURI&&t.namespaceURI!==Jr?"an SVG or MathML element cannot be an editable region: an edit puts an HTML block inside it, and the next page load moves that text out of the graphic entirely. Put a <foreignObject> in the SVG and mark an HTML element inside it instead.":Xr.has(t.nodeName)?"this element cannot contain anything, so there is nothing to edit. Move the editable attribute to an element that holds text.":t.nodeName==="TEMPLATE"?"a <template> keeps its content out of the document, so edits to it are never saved.":"this element treats its content as plain text, so any edit would be saved as visible markup rather than formatting."}function Ei(t){return t.nodeType===1&&!ge.has(t.nodeName)&&vi.test(t.nodeName)}function tn(t){return Array.from(t.querySelectorAll("*")).some(Ci)}function el(t,e={}){let{blockTag:i="DIV",wrapBareRoot:r=!1,onBareRootWrapped:n,blocksAllowed:o=!Ai(t)}=e;return rn(t),o&&ol(t,i,r,n),t}var il=t=>Pe(t)&&t.nodeType!==8&&!xi(t),rl=t=>t.nodeType!==8&&!xi(t)&&!(t.nodeType===3&&!Fe.test(t.nodeValue));function nl(t,{wrapBareRoot:e=!1,blocksAllowed:i=!Ai(t)}={}){return i?ye(t)?Array.from(t.childNodes).some(il)||en(t):e:!1}function en(t){return Array.from(t.children).some(e=>ye(e)?!_i(e)&&Array.from(e.childNodes).some(i=>i.nodeType===3&&!Fe.test(i.nodeValue))||en(e):!1)}function rn(t){ye(t)&&(_i(t)||Array.from(t.childNodes).forEach(e=>{e.nodeType===3&&!Fe.test(e.nodeValue)&&e.remove()}),Array.from(t.children).forEach(rn))}function ol(t,e,i,r){if(!ye(t)){if(!i)return;let a=t.ownerDocument.createElement(e);if(!Array.from(t.childNodes).some(rl)){a.appendChild(t.ownerDocument.createElement("BR")),t.appendChild(a);return}for(;t.firstChild;)a.appendChild(t.firstChild);t.appendChild(a),r?.(t,a);return}let n=[],o=()=>{let a=n;if(n=[],!a.some(c=>c.nodeType!==8))return;let l=t.ownerDocument.createElement(e);t.insertBefore(l,a[0]),a.forEach(c=>l.appendChild(c))};Array.from(t.childNodes).forEach(a=>{xi(a)?o():Pe(a)?n.push(a):o()}),o()}function _i(t){return t.nodeName==="PRE"}function al(t,e){return{start:nn(t,e.startContainer,e.startOffset),end:nn(t,e.endContainer,e.endOffset),collapsed:e.collapsed}}function ll(t,e,i){an(e,"setStart",t,i.start),i.collapsed?e.collapse(!0):an(e,"setEnd",t,i.end)}function nn(t,e,i){if(!t.contains(e))return{scope:t,after:[],before:[]};if(e.nodeType===3){if(!sl(e))return{container:e,offset:i};let r=e.parentNode;return on(r,Array.from(r.childNodes).indexOf(e))}return{container:e,offset:i,childCount:e.childNodes.length,...on(e,i)}}function on(t,e){let i=Array.from(t.childNodes),r=Math.max(0,e);return{scope:t,after:i.slice(r),before:i.slice(0,r).reverse()}}function an(t,e,i,r){let{container:n,childCount:o}=r;if(n&&i.contains(n)&&(o===void 0||o===n.childNodes.length)){t[e](n,Math.min(r.offset,Ti(n)));return}let a=r.after?.find(d=>i.contains(d));if(a){t[e](He(a,!0),0);return}let l=r.before?.find(d=>i.contains(d));if(l){let d=He(l,!1);t[e](d,Ti(d));return}let c=r.scope&&i.contains(r.scope)?r.scope:i;t[e](c,0)}function sl(t){return t.nodeType===3&&!Fe.test(t.nodeValue)&&!!t.parentNode&&t.parentNode.nodeType===1&&ye(t.parentNode)&&!_i(t.parentNode)}var be=t=>t.nodeType===1||t.nodeType===3;function He(t,e=!0){let i=t;for(;i.nodeType===1&&!ge.has(i.nodeName);){let r=Array.from(i.childNodes).filter(be),n=e?r[0]:r[r.length-1];if(!n||Za.has(n.nodeName))break;i=n}return i}function Ti(t){return t.nodeType===3?t.nodeValue.length:t.childNodes.length}var pt="[data-richclay], [richclay], [editable], [clay-editable]",cl="[data-richclay], [richclay], [clay-editable]",dl=["editable","clay-editable"],ki=':is([editable~="single-line"], [clay-editable~="single-line"])';function ln(t){return!t||typeof t.matches!="function"?!1:t.tagName.includes("-")?t.matches(cl):!0}var hl="[data-richclay-toolbar], [data-richclay-menu], [data-richclay-dialog], [data-richclay-live], [data-richclay-float]",ul=["richclay-editor","richclay-inline","richclay-active","richclay-empty","richclay-focused"],Ni=new WeakSet,sn=new WeakSet,cn=["clay:ready","hyperclay:ready"];function dn(t){return[t.clay?.ready,t.hyperclay?.ready].find(e=>e&&typeof e.then=="function")||null}function hn(t){return typeof t.clay?.isEditMode=="boolean"?t.clay.isEditMode:typeof t.hyperclay?.isEditMode=="boolean"?t.hyperclay.isEditMode:null}function pl(t){let e=t.hyperclayModules,i=t.__hyperclayNoAutoExport===!1&&e&&typeof e=="object"&&typeof e.nodeType!="number";return hn(t)!==null||!!dn(t)||!!i}function fl(t){return t.clay?.addDocumentTransform||t.hyperclay?.beforeSave||null}function ml(t){return t.clay?.onSnapshot||t.hyperclay?.onSnapshot||null}var gl={boxSizing:"border-box",minWidth:"100%",overflow:"auto",width:"0"};function Li(t={},e=window){return t.hyperclay===!1?!1:t.hyperclay===!0?!0:!!(pl(e)||_l(e))}function un(t=window){let e=gn(t);if(e!==null)return e;if(typeof t.__hyperclayEditMode=="boolean")return t.__hyperclayEditMode;let i=hn(t);return i!==null?i:Tl(t)}function yl(t={},e=window){return t.readOnly?!1:Li(t,e)?un(e):!0}function bl(t){let e=dl.find(n=>t.hasAttribute(n));if(!e)return null;let i=new Set((t.getAttribute(e)||"").trim().split(/\s+/).filter(Boolean)),r={inline:!0,singleLine:i.has("single-line"),toolbarOnSelect:i.has("toolbar-on-select")};return i.has("no-toolbar")&&(r.toolbar=!1),r}function pn(t=window){if(Ni.has(t))return;let e=ml(t)||fl(t);if(typeof e!="function"){vl(t);return}e(i=>fn(i)),Ni.add(t)}function vl(t){if(sn.has(t))return;let e=t.document,i=dn(t);if(!e&&!i)return;sn.add(t);let r=()=>{pn(t),Ni.has(t)&&n()},n=()=>{e&&cn.forEach(o=>e.removeEventListener(o,r))};e&&cn.forEach(o=>e.addEventListener(o,r)),i&&i.then(r,()=>{})}function fn(t){t.querySelectorAll?.(hl).forEach(e=>e.remove()),t.querySelectorAll?.(pt).forEach(e=>{if(e.getAttribute("data-richclay-active")==="true"){if(Oi(e,"save"),wl(e)){let i=e.ownerDocument,r=!!e.matches?.(ki);Si(e,()=>r?i.createTextNode(" "):i.createElement("br")),e.querySelectorAll(e.localName).forEach(n=>{for(;n.firstChild;)n.parentNode.insertBefore(n.firstChild,n);n.remove()})}e.matches?.(ki)&&El(e),e.querySelectorAll("#squire-selection-start, #squire-selection-end").forEach(i=>{i.remove()}),e.querySelectorAll(".squire-image-resize-container").forEach(i=>i.remove()),Al(e),(e.matches?.("pre")?[e,...e.querySelectorAll("pre")]:Array.from(e.querySelectorAll("pre"))).filter(i=>i.hasAttribute("data-richclay-pre")).forEach(i=>{Object.entries(gl).forEach(([r,n])=>{i.style[r]||(i.style[r]=n)}),i.removeAttribute("data-richclay-pre")})}}),t.querySelectorAll?.("#squire-selection-start, #squire-selection-end").forEach(e=>e.remove())}var xl="p, td, th, li, dl, dt, dd, table, blockquote, div, section, article, aside, main, header, footer, figure, figcaption",Di="data-richclay-measure";function Cl(t){let e=t.ownerDocument,i=t.closest(xl)||t;t.setAttribute(Di,"");let r=e.createElement("div");try{r.innerHTML=i.outerHTML}finally{t.removeAttribute(Di)}let n=r.querySelector(`[${Di}]`);return!n||n.textContent!==t.textContent}var Sl=t=>!!t.querySelector(t.localName),wl=t=>!!t.matches?.(ki)||(tn(t)||Sl(t))&&Cl(t);function Oi(t,e){let i=t.getAttribute("data-richclay-runtime-contenteditable");t.hasAttribute("contenteditable")&&(i==="true"?t.removeAttribute("contenteditable"):i?e==="destroy"?t.setAttribute("contenteditable",i):(t.setAttribute("inert-contenteditable",i),t.removeAttribute("contenteditable")):e==="save"&&(t.setAttribute("inert-contenteditable",t.getAttribute("contenteditable")),t.removeAttribute("contenteditable"))),ul.forEach(r=>t.classList.remove(r)),t.getAttribute("class")===""&&t.removeAttribute("class"),Ri(t,"role","data-richclay-runtime-role"),Ri(t,"aria-multiline","data-richclay-runtime-aria-multiline"),Ri(t,"no-undo","data-richclay-runtime-no-undo"),t.getAttribute("data-richclay-runtime-display")==="true"&&(t.style.removeProperty("display"),t.getAttribute("style")===""&&t.removeAttribute("style")),kl(t),t.removeAttribute("data-richclay-active"),t.removeAttribute("data-richclay-placeholder"),t.removeAttribute("data-richclay-pre"),t.removeAttribute("data-richclay-runtime-role"),t.removeAttribute("data-richclay-runtime-aria-multiline"),t.removeAttribute("data-richclay-runtime-no-undo"),t.removeAttribute("data-richclay-runtime-describedby"),t.removeAttribute("data-richclay-runtime-contenteditable"),t.removeAttribute("data-richclay-runtime-display"),t.getAttribute("data-richclay-runtime-marker")==="true"&&t.removeAttribute("data-richclay"),t.removeAttribute("data-richclay-runtime-marker")}function Al(t){let e=[t];for(;e.length;)e.pop().childNodes.forEach(i=>{i.nodeType===3?i.nodeValue.includes("\u200B")&&(i.nodeValue=i.nodeValue.split("\u200B").join("")):i.nodeType===1&&e.push(i)});t.querySelectorAll("b, i, u, s, em, strong, code, sub, sup, span").forEach(i=>{i.children.length===0&&(i.textContent||"")===""&&i.attributes.length===0&&i.remove()})}function El(t){let e=Array.from(t.childNodes).filter(r=>r.nodeType!==3||(r.nodeValue||"").trim()!=="");if(e.length!==1)return;let i=e[0];if(!(i.nodeType!==1||i.nodeName!=="P"||i.attributes.length>0)){for(;i.firstChild;)t.insertBefore(i.firstChild,i);i.remove()}}function mn(t){if(!t.hasAttribute("inert-contenteditable"))return null;let e=t.getAttribute("inert-contenteditable");return["false","plaintext-only"].includes(e)||(e="true"),t.setAttribute("contenteditable",e),t.removeAttribute("inert-contenteditable"),e==="true"&&t.setAttribute("data-richclay-runtime-contenteditable","true"),e}function Jt(t){return t.setAttribute("snapshot-remove",""),t.setAttribute("no-watch",""),t}function gn(t){try{let e=new URLSearchParams(t.location?.search||"");if(e.get("editmode")==="true")return!0;if(e.get("editmode")==="false")return!1}catch{return null}return null}function _l(t){return gn(t)!==null||typeof t.__hyperclayEditMode=="boolean"}function Tl(t){let e=(t.document?.cookie||"").match(/(?:^|;\s*)isAdminOfCurrentResource=([^;]*)/);return!!(e&&e[1]!=="")}function Ri(t,e,i){t.hasAttribute(i)&&t.removeAttribute(e)}function kl(t){let e=t.getAttribute("data-richclay-runtime-describedby");if(!e)return;let i=(t.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean).filter(r=>r!==e);i.length?t.setAttribute("aria-describedby",i.join(" ")):t.removeAttribute("aria-describedby")}var Nl=0;function Ll(t=document){let e=t.createElement("div");return e.id=`richclay-live-${++Nl}`,e.className="richclay-sr-only",e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),e.setAttribute("data-richclay-live",""),Jt(e),t.body.appendChild(e),e}function ve(t,e){!t||!e||(t.textContent="",t.ownerDocument.defaultView.setTimeout(()=>{t.textContent=e},20))}function yn(t){t.preventDefault()}function bn(t){try{return t?.cloneRange?.()||null}catch{return null}}function xe(t){try{return bn(t?.getSelection?.())}catch{return null}}function Ii(t,e){if(!t||!e)return!1;try{return t.setSelection(e),!0}catch{return!1}}function Mi(t,e,i,r){t.hasAttribute(e)||t.setAttribute(r,"true"),t.setAttribute(e,i)}function Dl(t,e){let i=new Set((t.getAttribute("aria-describedby")||"").split(/\s+/).filter(Boolean));i.add(e.id),t.setAttribute("aria-describedby",Array.from(i).join(" ")),t.setAttribute("data-richclay-runtime-describedby",e.id)}var Ol=0,vn=class{constructor(t,e,i={}){this.editor=t,this.controls=e,this.options=i,this.id=++Ol,this.items=[],this.menus=new Map,this.activeIndex=0,this.root=this.createRoot(),this.onRootKeydown=r=>this.handleRootKeydown(r),this.onRootClick=r=>this.handleRootClick(r),this.onRootPointerDown=r=>this.handleRootPointerDown(r),this.onDocumentPointerDown=r=>this.handleDocumentPointerDown(r),this.render(),this.root.addEventListener("keydown",this.onRootKeydown),this.root.addEventListener("click",this.onRootClick),this.root.addEventListener("mousedown",this.onRootPointerDown),this.root.ownerDocument.addEventListener("mousedown",this.onDocumentPointerDown)}destroy(){this.closeMenus(),this.root.removeEventListener("keydown",this.onRootKeydown),this.root.removeEventListener("click",this.onRootClick),this.root.removeEventListener("mousedown",this.onRootPointerDown),this.root.ownerDocument.removeEventListener("mousedown",this.onDocumentPointerDown),this.root.remove()}update(){this.items.forEach(t=>{let{def:e,button:i}=t;if(typeof e.isActive=="function"){let r=!!e.isActive(this.editor);i.setAttribute("aria-pressed",r?"true":"false"),i.classList.toggle("is-active",r)}typeof e.isDisabled=="function"&&(i.disabled=!!e.isDisabled(this.editor))}),this.ensureSingleTabStop()}focusFirst(){this.activeIndex=0,this.ensureSingleTabStop(),this.items[0]?.button.focus()}createRoot(){let t=this.editor.element.ownerDocument,e=t.createElement("div");e.className="richclay-toolbar",e.setAttribute("role","toolbar"),e.setAttribute("aria-label",this.options.ariaLabel||"Rich text formatting"),e.setAttribute("data-richclay-toolbar",""),Jt(e);let i=Rl(this.options.toolbarContainer,t);return i?i.appendChild(e):this.editor.element.insertAdjacentElement("beforebegin",e),e}render(){this.root.textContent="",this.items=[],this.menus.clear();let t=null;this.visibleControls().forEach((e,i)=>{if(e.type==="separator"){this.root.appendChild(Cn(this.root.ownerDocument)),t=null;return}t&&e.group&&e.group!==t&&this.root.appendChild(Cn(this.root.ownerDocument)),t=e.group||t,e.type==="menu"?this.renderMenu(e,i):this.renderButton(e,i)}),this.ensureSingleTabStop(),this.update()}visibleControls(){let t=this.controls.filter(i=>i.type==="separator"||!i.isDisabled?.(this.editor)),e=[];for(t.forEach(i=>{let r=e[e.length-1];i.type==="separator"&&(!r||r.type==="separator")||e.push(i)});e[e.length-1]?.type==="separator";)e.pop();return e}renderButton(t,e){let i=xn(this.root.ownerDocument,t);i.dataset.richclayControl=t.id,i.dataset.richclayIndex=String(e),typeof t.isActive=="function"&&i.setAttribute("aria-pressed","false"),this.root.appendChild(i),this.items.push({def:t,button:i,type:"button"})}renderMenu(t,e){let i=this.root.ownerDocument,r=xn(i,t),n=`richclay-menu-${this.id}-${t.id}`;r.dataset.richclayControl=t.id,r.dataset.richclayIndex=String(e),r.setAttribute("aria-haspopup","menu"),r.setAttribute("aria-expanded","false"),r.setAttribute("aria-controls",n);let o=i.createElement("div");o.id=n,o.className="richclay-menu",o.hidden=!0,o.setAttribute("role","menu"),o.setAttribute("data-richclay-menu",""),Jt(o),t.options.forEach((l,c)=>{let d=i.createElement("button");d.type="button",d.className="richclay-menu-item",d.setAttribute("role","menuitemradio"),d.setAttribute("tabindex","-1"),d.dataset.richclayMenuItem=t.id,d.dataset.richclayOptionIndex=String(c),d.innerHTML=l.icon||"",d.appendChild(i.createTextNode(l.label)),d.addEventListener("mousedown",yn),d.addEventListener("click",u=>{u.preventDefault(),this.chooseMenuItem(t,l,r)}),d.addEventListener("keydown",u=>this.handleMenuKeydown(u,t,r)),o.appendChild(d)});let a=i.createElement("span");a.className="richclay-menu-wrap",a.append(r,o),this.root.appendChild(a),this.items.push({def:t,button:r,type:"menu",menu:o}),this.menus.set(t.id,{def:t,button:r,menu:o})}handleRootPointerDown(t){let e=t.target.closest?.("[data-richclay-control]");!e||!this.root.contains(e)||(yn(t),this.editor.saveSelection())}handleRootClick(t){let e=t.target.closest?.("[data-richclay-control]");if(!e||!this.root.contains(e))return;t.preventDefault();let i=this.items.find(r=>r.button===e);if(!(!i||e.disabled)){if(this.activeIndex=this.items.indexOf(i),this.ensureSingleTabStop(),i.type==="menu"){this.toggleMenu(i.def.id);return}this.closeMenus(),this.editor.runControl(i.def)}}handleRootKeydown(t){let e=t.key,i={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1};if(e in i){t.preventDefault(),this.moveFocus(i[e]);return}if(e==="Home"){t.preventDefault(),this.setFocusIndex(0);return}if(e==="End"){t.preventDefault(),this.setFocusIndex(this.items.length-1);return}let r=this.items[this.activeIndex];if(r&&((e==="Enter"||e===" ")&&r.type==="menu"&&(t.preventDefault(),this.openMenu(r.def.id,"first")),e==="Escape")){let n=Array.from(this.menus.values()).some(o=>!o.menu.hidden);this.closeMenus(),n?r.button.focus():this.editor.focus()}}handleMenuKeydown(t,e,i){t.stopPropagation();let r=this.menus.get(e.id)?.menu,n=Array.from(r.querySelectorAll(".richclay-menu-item")),o=n.indexOf(t.currentTarget),a=o;if(t.key==="ArrowDown"&&(a=(o+1)%n.length),t.key==="ArrowUp"&&(a=(o-1+n.length)%n.length),t.key==="Home"&&(a=0),t.key==="End"&&(a=n.length-1),a!==o){t.preventDefault(),n[a].focus();return}if(t.key==="Escape"){t.preventDefault(),this.closeMenus(),i.focus();return}if(t.key==="Enter"||t.key===" "){t.preventDefault();let l=e.options[o];this.chooseMenuItem(e,l,i)}}handleDocumentPointerDown(t){this.root.contains(t.target)||this.closeMenus()}chooseMenuItem(t,e,i){this.closeMenus(),this.editor.runControl({...e,id:`${t.id}:${e.value}`,ariaLabel:e.label}),i.focus()}toggleMenu(t){let e=this.menus.get(t);e&&(e.menu.hidden?this.openMenu(t,"first"):this.closeMenus())}openMenu(t,e="first"){this.closeMenus(t);let i=this.menus.get(t);if(!i)return;i.menu.hidden=!1,i.button.setAttribute("aria-expanded","true"),this.updateMenuState(i);let r=Array.from(i.menu.querySelectorAll(".richclay-menu-item")),n=r.find(o=>o.getAttribute("aria-checked")==="true");(e==="active"&&n||r[0])?.focus()}closeMenus(t=null){this.menus.forEach((e,i)=>{i!==t&&(e.menu.hidden=!0,e.button.setAttribute("aria-expanded","false"))})}updateMenuState(t){Array.from(t.menu.querySelectorAll(".richclay-menu-item")).forEach((e,i)=>{let r=!!t.def.options[i].isActive?.(this.editor);e.setAttribute("aria-checked",r?"true":"false"),e.classList.toggle("is-active",r)})}moveFocus(t){if(!this.items.length)return;let e=this.activeIndex;do e=(e+t+this.items.length)%this.items.length;while(this.items[e].button.disabled&&e!==this.activeIndex);this.setFocusIndex(e)}setFocusIndex(t){this.activeIndex=Math.max(0,Math.min(t,this.items.length-1)),this.ensureSingleTabStop(),this.items[this.activeIndex]?.button.focus()}ensureSingleTabStop(){let t=this.items.filter(e=>!e.button.disabled);t.length&&(t.includes(this.items[this.activeIndex])||(this.activeIndex=this.items.indexOf(t[0])),this.items.forEach((e,i)=>{e.button.tabIndex=i===this.activeIndex?0:-1}))}};function xn(t,e){let i=t.createElement("button");i.type="button",i.className="richclay-button";let r=ja(e.shortcut,t.defaultView),n=r?`${e.ariaLabel||e.label} (${r})`:e.ariaLabel||e.label;return i.setAttribute("aria-label",n),i.title=n,i.innerHTML=`${e.icon||""}<span class="richclay-sr-only">${e.label}</span>`,i}function Cn(t){let e=t.createElement("span");return e.className="richclay-separator",e.setAttribute("role","separator"),e.setAttribute("aria-orientation","vertical"),e}function Rl(t,e){return t?typeof t=="string"?e.querySelector(t):t:null}var Sn=16,Il=[16,8,0],K=8,Ml=4;function Bl({anchor:t,bar:e,rail:i,viewport:r,current:n=null}){let o=m=>n===m?Ml:0;if(t.bottom<=0||t.top>=r.height||t.right<=0||t.left>=r.width)return{mode:"hidden",x:0,y:0};let a=m=>Math.max(K,Math.min(t.left,r.width-m-K)),l=t.top-Sn-e.height;if(l>=K-o("above"))return{mode:"above",x:a(e.width),y:l};let c=t.bottom+Sn;if(c+e.height<=r.height-K+o("below"))return{mode:"below",x:a(e.width),y:c};let d=r.width-t.right-K,u=t.left-K,h=d>=u?[["rail-right",d],["rail-left",u]]:[["rail-left",u],["rail-right",d]];for(let[m,y]of h)for(let g of Il){if(i.width+g>y+o(m))continue;let x=m==="rail-right"?Math.min(t.right+g,r.width-i.width-K):Math.max(t.left-g-i.width,K),A=Math.min(t.bottom,r.height-K)-i.height,N=Math.max(K,Math.min(Math.max(t.top,K),A));return{mode:m,x,y:N,gap:g}}return{mode:"pinned",x:a(e.width),y:K}}var Fl=10,Pl=28;function Hl({anchor:t,box:e,viewport:i,gap:r=Fl}){let n=i.height-K-t.bottom-r,o=t.top-r-K,a=n>=e.height||n>=o?"below":"above",l=a==="below"?t.bottom+r:t.top-r-e.height,c=Math.max(K,Math.min(l,i.height-K-e.height)),d=(t.left+t.right)/2,u=Math.max(K,Math.min(d-Pl,i.width-K-e.width)),h=Math.max(14,Math.min(d-u,e.width-14));return{side:a,x:u,y:c,arrow:h}}function Ct(t,e,i){t.style.setProperty(e,i,"important")}var Ul=class{constructor(t,e){this.editor=t,this.mode=null,this.hidden=!1,this.frame=0,this.bar={width:0,height:0},this.rail={width:0,height:0};let i=t.element.ownerDocument;this.doc=i,this.win=i.defaultView||globalThis,this.root=i.createElement("div"),this.root.className="richclay-float",this.root.setAttribute("data-richclay-float",""),this.root.setAttribute("save-remove",""),Jt(this.root),i.body.appendChild(this.root),this.toolbar=new vn(t,e,{toolbarContainer:this.root}),this.onScroll=()=>this.schedule(),this.onResize=()=>{this.measure(),this.schedule()},i.addEventListener("scroll",this.onScroll,{capture:!0,passive:!0}),this.win.addEventListener("resize",this.onResize,{passive:!0}),this.win.visualViewport?.addEventListener("resize",this.onResize,{passive:!0}),this.win.visualViewport?.addEventListener("scroll",this.onScroll,{passive:!0}),this.resizeObserver=typeof this.win.ResizeObserver=="function"?new this.win.ResizeObserver(()=>this.schedule()):null,this.resizeObserver?.observe(t.element),this.measure(),this.reposition()}measure(){let t=this.root.classList.contains("richclay-float-rail");Ct(this.root,"visibility","hidden"),this.root.classList.remove("richclay-float-rail"),this.bar={width:this.root.offsetWidth||0,height:this.root.offsetHeight||0},this.root.classList.add("richclay-float-rail"),this.rail={width:this.root.offsetWidth||0,height:this.root.offsetHeight||0},this.root.classList.toggle("richclay-float-rail",t),this.root.style.removeProperty("visibility")}schedule(){if(!this.win.requestAnimationFrame){this.reposition();return}this.frame||(this.frame=this.win.requestAnimationFrame(()=>{this.frame=0,this.reposition()}))}setVisible(t){this.hidden=!t,this.reposition()}reposition(){if(this.hidden){Ct(this.root,"display","none");return}let t=this.editor.element.getBoundingClientRect(),e={width:this.win.visualViewport?.width??this.win.innerWidth,height:this.win.visualViewport?.height??this.win.innerHeight},i=Bl({anchor:t,bar:this.bar,rail:this.rail,viewport:e,current:this.mode});if(this.mode=i.mode,i.mode==="hidden"){Ct(this.root,"display","none");return}this.root.style.removeProperty("display"),this.root.classList.toggle("richclay-float-rail",i.mode==="rail-left"||i.mode==="rail-right"),this.root.classList.toggle("richclay-float-pinned",i.mode==="pinned"),Ct(this.root,"transform",`translate(${Math.round(i.x)}px, ${Math.round(i.y)}px)`)}destroy(){this.frame&&this.win.cancelAnimationFrame?.(this.frame),this.frame=0,this.doc.removeEventListener("scroll",this.onScroll,{capture:!0}),this.win.removeEventListener("resize",this.onResize),this.win.visualViewport?.removeEventListener("resize",this.onResize),this.win.visualViewport?.removeEventListener("scroll",this.onScroll),this.resizeObserver?.disconnect(),this.toolbar.destroy(),this.root.remove()}},zl={ALLOWED_TAGS:["a","b","blockquote","br","code","div","em","h1","h2","h3","h4","h5","h6","i","li","ol","p","pre","s","span","strong","sub","sup","u","ul"],ALLOWED_ATTR:["aria-label","href","rel","target","title"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!0,ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,FORBID_TAGS:["script","style","iframe","object","embed","form","input"],FORBID_ATTR:["style","srcset","onerror","onclick","onload"]};function ql(t={},e=document){let i=Ue(e);return{sanitizeHTML(r){return wn(r,t,e,i)},sanitizeElement(r){return An(r,t,i)},sanitizeToDOMFragment(r,n){let o=n?.getRoot?.().ownerDocument||e;return Wl(r,t,o,i)}}}function wn(t,e={},i=document,r=Ue(i)){let n=i.createElement("template");return n.innerHTML=r.sanitize(String(t||""),Bi(e)),Fi(n.content),n.innerHTML}function An(t,e={},i=Ue(t.ownerDocument)){let r=t.ownerDocument.createElement("div");for(;t.firstChild;)r.appendChild(t.firstChild);for(i.sanitize(r,{...Bi(e),IN_PLACE:!0}),Fi(r);r.firstChild;)t.appendChild(r.firstChild);return t}function Wl(t,e={},i=document,r=Ue(i)){let n=r.sanitize(String(t||""),{...Bi(e),RETURN_DOM_FRAGMENT:!0}),o=n?.ownerDocument===i?n:i.importNode(n,!0);return Fi(o),o||i.createDocumentFragment()}function Bi(t){return{...zl,...t}}var Kl=new Set(["http","https","mailto","tel"]),$l=new RegExp("[\\u0000-\\u0020\\u007F-\\u009F]","g");function jl(t){let e=(String(t??"").replace($l,"").match(/^([a-z][a-z0-9+.\-]*):/i)||[])[1];return!e||Kl.has(e.toLowerCase())}function Vl(t){let e=String(t??"").trim();return!e||!jl(e)?"":/^(?:https?:|mailto:|tel:)/i.test(e)?e:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?`mailto:${e}`:/^(?:[#?]|\/|\.{1,2}\/)/.test(e)?e:`https://${e}`}function Ue(t){let e=globalThis.DOMPurify;if(e?.sanitize)return e;if(typeof e=="function")return e(t.defaultView||globalThis);throw new Error("RichClay requires DOMPurify. Load vendor/purify.min.js before richclay.js or provide globalThis.DOMPurify.")}function Fi(t){t.querySelectorAll?.("a[href]").forEach(e=>{let i=e.getAttribute("href")||"";if(/^\s*javascript:/i.test(i)&&e.removeAttribute("href"),e.getAttribute("target")==="_blank"){let r=new Set((e.getAttribute("rel")||"").split(/\s+/).filter(Boolean));r.add("noopener"),r.add("noreferrer"),e.setAttribute("rel",Array.from(r).join(" "))}})}var En={ADD_TAGS:["img"],ADD_ATTR:["class","id","src","alt","width","height"]};function Gl(t={}){return{...t,ADD_TAGS:[...new Set([...En.ADD_TAGS,...t.ADD_TAGS||[]])],ADD_ATTR:[...new Set([...En.ADD_ATTR,...t.ADD_ATTR||[]])],ALLOW_DATA_ATTR:t.ALLOW_DATA_ATTR??!0}}var _n="p, div, h1, h2, h3, h4, h5, h6, blockquote, pre, ul, ol, li, figure, figcaption, table, thead, tbody, tr, td, th";function Zl(t){let e=t.ownerDocument||document;t.querySelectorAll?.("br").forEach(r=>r.replaceWith(e.createTextNode(" ")));let i=t.querySelector?.(_n);for(;i;){let r=i.parentNode;for(r.insertBefore(e.createTextNode(" "),i);i.firstChild;)r.insertBefore(i.firstChild,i);r.insertBefore(e.createTextNode(" "),i),i.remove(),i=t.querySelector(_n)}return Yl(t,e),t}function Yl(t,e){t.normalize?.();let i=e.createTreeWalker(t,4),r=[];for(;i.nextNode();)r.push(i.currentNode);r.forEach(a=>{a.nodeValue=a.nodeValue.replace(/\s+/g," ")});let n=t.firstChild;n?.nodeType===3&&(n.nodeValue=n.nodeValue.replace(/^\s+/,""));let o=t.lastChild;o?.nodeType===3&&(o.nodeValue=o.nodeValue.replace(/\s+$/,""))}var Tn="richclay-styles",Pi=new WeakSet,Hi="";function Ql(t){Hi=t||""}function Xl(t=document){if(!t||Pi.has(t))return;if(t.getElementById(Tn)){Pi.add(t);return}if(!Hi)return;let e=t.createElement("style");e.id=Tn,e.setAttribute("save-remove",""),e.setAttribute("save-ignore",""),e.textContent=Hi,(t.head||t.documentElement).appendChild(e),Pi.add(t)}var Ui=Object.freeze({data:Object.freeze({tokens:["no-data"],bundles:["editor-ui"]}),save:Object.freeze({tokens:["no-save"],bundles:["editor-ui"]}),snapshot:Object.freeze({tokens:["no-snapshot"],bundles:["editor-ui"]}),watch:Object.freeze({tokens:["no-watch"],bundles:["editor-ui"]}),undo:Object.freeze({tokens:["no-undo"],bundles:["editor-ui"]}),history:Object.freeze({tokens:[],bundles:["editor-ui"]})}),Jl=Object.freeze({"editor-ui":Object.freeze(["no-data","no-save","no-snapshot","no-watch","no-undo"])}),ec=Object.freeze(["no-save","no-snapshot","no-trigger-autosave","no-dirty","no-watch","no-undo","no-data","freeze","editor-ui","live"]);function ze(t,e){if(!t||t.nodeType!==1)return!1;let i=t.getAttribute?.("clay");return!!(i&&i.split(/\s+/).includes(e)||t.hasAttribute?.(e))}function kn(t,e){if(ze(t,e))return!0;for(let[i,r]of Object.entries(Jl))if(r.includes(e)&&ze(t,i))return!0;return!1}function zi(t){let e=Ui[t];if(!e)throw new Error(`Unknown region capability: ${t}`);return[...e.tokens,...e.bundles].flatMap(i=>[`[clay~="${i}"]`,`[${i}]`]).join(", ")}function qi(t,e){let i=t&&t.nodeType===1?t:t?.parentElement;for(;i&&i.nodeType===1;){let r=Ui[e];if(!r)throw new Error(`Unknown region capability: ${e}`);if(r.tokens.some(n=>kn(i,n))||r.bundles.some(n=>ze(i,n)))return i;i=i.parentElement}return null}function ts(t,e){return!!qi(t,e)}var es=/:(?:focus(?:-within|-visible)?|hover|active|visited|defined)\b/i;function is(t,e){if(!/^(INPUT|TEXTAREA|SELECT|OPTION)$/.test(t.tagName||""))return;let i=(t.getAttribute?.("type")||"").toLowerCase();"value"in t&&"value"in e&&t.tagName!=="OPTION"&&i!=="checkbox"&&i!=="radio"&&i!=="file"&&(e.value=t.value),t.tagName==="INPUT"&&(i==="checkbox"||i==="radio")&&(e.checked=t.checked),t.tagName==="OPTION"&&(e.selected=t.selected),"indeterminate"in t&&"indeterminate"in e&&(e.indeterminate=t.indeterminate)}function Nn(t,e,i,r){if(r)return!!t.closest?.(e);let n=t;for(;n?.nodeType===1;){if(n.matches(e))return!0;if(n===i)break;n=n.parentElement}return!1}function Ln(t,e,i,r,n,o){return(o?ts(t,e):Nn(t,i,n,!1))||!!(r&&(o&&t!==n?t.matches(r):Nn(t,r,n,o)))}function rs(t,e){let i=Ui[e];return i.tokens.some(r=>kn(t,r))||i.bundles.some(r=>ze(t,r))}var ns=new Set(["INPUT","TEXTAREA","SELECT","OPTION"]);function Dn(t,e,i,r){if(t.nodeType===1&&r(t)){i.dropped.push(e);return}i.cloneToLive.set(e,t),i.liveToClone.set(t,e);let n=t,o=e;if(t.nodeType===1){if(ns.has(t.tagName)&&i.controls.push(t,e),t.tagName==="TEMPLATE"){for(;e.firstChild;)e.removeChild(e.firstChild);n=t.content,o=e.content,i.cloneToLive.set(o,n),i.liveToClone.set(n,o)}}else if(t.nodeType!==11)return;let a=o.firstChild;for(let l=n.firstChild;l&&a;l=l.nextSibling)Dn(l,a,i,r),a=a.nextSibling}function On(t,{capability:e="data",exclude:i=null,inherit:r=!0,provenance:n=null}={}){if(!t)throw new TypeError("createContentView requires a DOM context");let o=t.nodeType===9?t:t.ownerDocument;if(!o?.implementation?.createHTMLDocument)throw new TypeError("createContentView requires an HTML DOM implementation");let a=o.implementation.createHTMLDocument(""),l=n||new WeakMap,c=new WeakMap,d=t.nodeType===9?t.documentElement:t;i&&a.documentElement.matches(i);let u=zi(e),h=r?g=>rs(g,e)||!!(i&&g.matches(i)):g=>Ln(g,e,u,i,d,!1),m=null;if(d.nodeType!==1||!Ln(d,e,u,i,d,r)){m=a.importNode(d,!0);let g={cloneToLive:l,liveToClone:c,dropped:[],controls:[]};Dn(d,m,g,h);for(let x of g.dropped)x.remove();for(let x=0;x<g.controls.length;x+=2)is(g.controls[x],g.controls[x+1])}t.nodeType===9&&m&&(a.replaceChild(m,a.documentElement),c.set(t,a),l.set(a,t));let y=g=>{if(es.test(g))throw new Error(`Filtered content queries do not support stateful selector: ${g}`)};return{root:m,document:a,capability:e,selector:zi(e),cloneToLive:l,liveToClone:c,original(g){return l.get(g)||null},cloneOf(g){return c.get(g)||null},query(g,x=m){return y(g),Array.from(x.querySelectorAll(g),A=>l.get(A)||A)},text(g=m){return(g===m?m:c.get(g))?.textContent||""},html(g=m){return(g===m?m:c.get(g))?.innerHTML??""},clone(g=m){let x=g===m?m:c.get(g);return x?a.importNode(x,!0):null}}}var os=zi("history");function Rn(t,e){let i=e.createElement("template");i.innerHTML=String(t||"");for(let r of i.content.querySelectorAll(os))r.remove();return i.innerHTML}function In(t,e){return Rn(t,e)}function as(t,e){let i=e.createElement("template");i.innerHTML=In(t,e);let r=new Set(["ADDRESS","ARTICLE","ASIDE","BLOCKQUOTE","DIV","DL","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","H1","H2","H3","H4","H5","H6","HEADER","HR","LI","MAIN","NAV","OL","P","PRE","SECTION","TABLE","UL"]),n="",o=a=>{if(a.nodeType===3)n+=a.data;else if(a.nodeType===1&&a.tagName==="BR")n+=`
95
+ `;else{let l=a.nodeType===1&&r.has(a.tagName);l&&n&&!n.endsWith(`
96
+ `)&&(n+=`
97
+ `);for(let c of a.childNodes||[])o(c);l&&n&&!n.endsWith(`
98
+ `)&&(n+=`
99
+ `)}};return o(i.content),n.replace(/\n{3,}/g,`
100
+
101
+ `).replace(/^\n|\n$/g,"")}function ls(t,e,i=null){let r=On(t,{capability:"history",inherit:!1}),n=r.root,o=(l,c)=>{for(;l&&!r.cloneOf(l);){let h=l.parentNode;if(!h)return{container:n,offset:0};c=Array.from(h.childNodes).indexOf(l),l=h}let d=r.cloneOf(l)||n;if(l?.nodeType===3)return{container:d,offset:Math.min(c,d.length)};let u=Array.from(l?.childNodes||[]).slice(0,c).filter(h=>r.cloneOf(h)).length;return{container:d,offset:Math.min(u,d.childNodes.length)}},a=(l,c,d)=>{let u=o(c,d),h=n.ownerDocument.createElement("input");h.id=l,h.type="hidden";let m=n.ownerDocument.createRange();m.setStart(u.container,u.offset),m.collapse(!0),m.insertNode(h)};if(i)a(e.endSelectionId,i.endContainer,i.endOffset),a(e.startSelectionId,i.startContainer,i.startOffset);else for(let l of[e.startSelectionId,e.endSelectionId]){if(n.querySelector(`#${l}`))continue;let c=t.querySelector(`#${l}`);c&&a(l,c.parentNode,Array.from(c.parentNode.childNodes).indexOf(c))}return n.innerHTML}var St=new WeakMap,Mn=new WeakMap,qe=new WeakMap,Wi=$a(),Bn=Symbol("richclay-keep-focus"),Fn=["cut","paste","drop"],ss=["Alt","Ctrl","Meta","Shift"],Pn=0;function cs(t){return typeof t.clay?.mode=="string"}var ds={toolbar:"standard",toolbarContainer:null,sanitize:{},placeholder:"",readOnly:!1,hyperclay:"auto",onChange:null,Squire:null,inline:!1,singleLine:!1,toolbarOnSelect:!1},Ki=class Vt{static presets=Me;static selector=pt;constructor(e,i={}){if(!e)throw new Error("RichClay requires an element.");let r=St.get(e);if(r)return r;this.element=e,this.unsupported=$i(e)||ps(e);let n={...bl(e),...i};this.options={...ds,...n},this.options.singleLine&&!("toolbar"in n)&&(this.options.toolbar="inline"),this._blockTag=this.options.inline?"DIV":"P",this.registry=new Map(Wi),this.toolbar=null,this.float=null,this._onToolbarKey=null,this._onFloatFocusOut=null,this._onDocPointerDown=null,this.liveRegion=null,this.description=null,this.dialog=null,this.dialogCleanup=null,this.savedSelection=null,this.path="",this.active=!1,this._squire=null,this._squireListeners=[],this._onBeforeInput=null,this._onRootBeforeInput=null,this._onRootKeydown=null,this._onRootTransfer=null,this._shortcutKeys=[],this._appleDeleteKeys=new Set,this._authoredPres=new WeakSet,this._warnedInlineBlock=!1,this._onFocus=()=>{this.element.classList.add("richclay-focused"),this.options.inline&&this.ensureFloatingToolbar()},this._onBlur=o=>{this.element.classList.remove("richclay-focused"),this.options.inline&&this.scheduleFloatTeardown(o)},this._onLinkActivation=o=>{if(!this.active||this.options.readOnly)return;let a=o.target?.nodeType===1?o.target:o.target?.parentElement,l=a?.closest("a[href]");if(!l)return;let c=qi(a,"history");c&&c!==this.element&&this.element.contains(c)&&c.contains(l)||o.preventDefault()},this.ensureMarker(),this.hyperclay=Li(this.options,this.window),this.hyperclay&&pn(this.window),St.set(e,this),this.sanitizeConfig=this.options.inline?Gl(this.options.sanitize):this.options.sanitize,this.sanitizer=ql(this.sanitizeConfig,this.element.ownerDocument),this.options.inline||An(this.element,this.sanitizeConfig),yl(this.options,this.window)&&this.activate()}get squire(){return this._squire}get window(){return this.element.ownerDocument.defaultView||window}static init(e=pt,i={}){let r=e===pt?ln:()=>!0;return hs(e).filter(r).filter(n=>!$i(n)).map(n=>new Vt(n,i))}static autoInit(e=typeof window<"u"?window:void 0){if(!e||!e.document)return()=>{};let i=Mn.get(e);if(i)return i;let r=!1,n=null,o=()=>{r||cs(e)||Li({},e)&&un(e)&&(Vt.init(),n=Vt.watch(e))},a=()=>{r=!0,n?.()};return Mn.set(e,a),e.document.readyState==="loading"?e.document.addEventListener("DOMContentLoaded",o,{once:!0}):o(),a}static watch(e=typeof window<"u"?window:void 0,i={}){if(!e||!e.document)return()=>{};let r=qe.get(e);if(r)return r;let n=d=>{Ce(d)&&!St.has(d)&&!$i(d)&&new Vt(d,i)},o=d=>St.get(d)?.destroy(),a=new e.MutationObserver(d=>{d.forEach(u=>{if(u.type==="attributes"){let h=u.target;Ce(h)?n(h):o(h);return}u.addedNodes.forEach(h=>{h.nodeType===1&&(h.matches?.(pt)&&n(h),h.querySelectorAll?.(pt).forEach(n))}),u.removedNodes.forEach(h=>{if(h.nodeType!==1)return;let m=y=>{y.isConnected||St.get(y)?.destroy()};h.matches?.(pt)&&m(h),h.querySelectorAll?.(pt).forEach(m)})})}),l=!1,c=()=>{l||(l=!0,a.disconnect(),qe.get(e)===c&&qe.delete(e))};return a.observe(e.document.documentElement||e.document,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["editable","clay-editable","data-richclay","richclay"]}),qe.set(e,c),c}static registerButton(e){return ji(e),Wi.set(e.id,e),Vt}static unregisterButton(e){return Wi.delete(e),Vt}static stripFromClone(e){fn(e)}static stripElement(e){if(!e||typeof e.getAttribute!="function")return;let i=St.get(e);if(i){i.destroy();return}Oi(e,"destroy")}registerButton(e){return ji(e),this.registry.set(e.id,e),this.active&&this.renderToolbar(),this}unregisterButton(e){return this.registry.delete(e),this.active&&this.renderToolbar(),this}activate(){if(this.unsupported||this.active)return;this.active=!0,this.applyInlineBox(),Xl(this.element.ownerDocument),mn(this.element);let e=this.options.inline?Array.from(this.element.childNodes):null,i=this.options.inline?null:this.element.innerHTML,r=this.options.Squire||this.window.Squire||globalThis.Squire;if(!r)throw new Error("RichClay requires Squire. Load vendor/squire.js before richclay.js.");if(this.setupEditorAttributes(),this.liveRegion=Ll(this.element.ownerDocument),this._squire=new r(this.element,{blockTag:this._blockTag,serializeRoot:ls,willCutCopy:n=>In(n,this.element.ownerDocument),toPlainText:n=>as(n,this.element.ownerDocument),replaceRoot:(n,o,a)=>{let l=this.window.clay?.morph||this.window.hyperclay?.morph;if(typeof l!="function"){if(n.querySelector('[editor-ui], [clay~="editor-ui"]'))throw new Error("RichClay requires a retention-aware morph host to replay history containing editor-ui.");n.innerHTML=o;return}l(n,o,{morphStyle:"innerHTML",restoreFocus:!1,scripts:{handle:!1,merge:!1},policy:"history"}),a._ensureBottomLine(),a._mutation?.takeRecords()},onMutations:(n,o)=>{let a=(d,u)=>{let h=qi(d,u);return!!h&&h!==this.element&&this.element.contains(h)},l=!1,c=!1;for(let d of n){if(a(d.target,"history"))continue;let u=d.type==="childList"?[...d.addedNodes,...d.removedNodes]:[d.target];for(let h of u)a(h,"history")||(a(d.target,"undo")||a(h,"undo")?c=!0:l=!0)}if(l){let d=o._ignoreChange;o._docWasChanged(),c&&d&&o.fireEvent("input")}else c?(o._mayHaveZWS=!0,o.fireEvent("input")):o._ignoreChange=!1},sanitizeToDOMFragment:(n,o)=>{let a=this.sanitizer.sanitizeToDOMFragment(Rn(n,this.element.ownerDocument),o);return this.options.singleLine?Zl(a):a},didError:n=>{console.error("RichClay/Squire error",n)}}),this.options.inline?(this.element.replaceChildren(...e),this.resetSquireUndoBaseline()):this._squire.setHTML(i),this.bindSquire(),this.options.singleLine&&this.installSingleLineGuards(),this.options.inline&&!this.options.singleLine&&this.installRootGuards(),this.installAppleDeleteKeys(),this.blocksStayOut()&&(this._squire._ensureBottomLine=()=>{}),this.maskSquireCodeShortcut(),this.maskSquireBlockShortcuts(),this.installShortcuts(),this.options.inline&&(this._onToolbarKey=n=>{n.altKey&&n.key==="F10"&&(n.preventDefault(),this.ensureFloatingToolbar(),this.float?.toolbar.focusFirst())},this.element.addEventListener("keydown",this._onToolbarKey)),this.blocksStayOut()){let n=o=>{let a=o.detail?.fragment;if(!a)return;let l=this.element.ownerDocument;Si(a,()=>this.options.singleLine?l.createTextNode(" "):l.createElement("br"))};this._squire.addEventListener("willPaste",n),this._squireListeners.push(["willPaste",n])}this.renderToolbar(),this.updatePlaceholder(),this.warnOnBlockInInlineRegion(),this.element.querySelectorAll("pre").forEach(n=>this._authoredPres.add(n))}reattach(){return this.unsupported||!this.active||this.element.getAttribute("contenteditable")==="true"&&this.element.getAttribute("data-richclay-active")==="true"&&Ce(this.element)?!1:(this.ensureMarker(),this.applyInlineBox(),mn(this.element),this.setupEditorAttributes(),!0)}applyInlineBox(){Ei(this.element)&&!this.element.style.display&&(this.element.style.display="inline-block",this.element.setAttribute("data-richclay-runtime-display","true"))}getHTML(){return this._squire?this._squire.getHTML():this.element.innerHTML}setHTML(e){return this._squire?this._squire.setHTML(String(e||"")):this.element.innerHTML=wn(e,this.sanitizeConfig,this.element.ownerDocument),this.updatePlaceholder(),this.toolbar?.update(),this.options.onChange?.(this.getHTML()),this}focus(){return this._squire?this._squire.focus():this.element.focus(),this}destroy(){this.closeLinkDialog(),this.teardownFloatingToolbar(),this.toolbar?.destroy(),this.toolbar=null,this._onToolbarKey&&(this.element.removeEventListener("keydown",this._onToolbarKey),this._onToolbarKey=null),this.liveRegion?.remove(),this.liveRegion=null,this.description?.remove(),this.description=null,this._shortcutKeys.forEach(i=>this._squire?.setKeyHandler?.(i,null)),this._squireListeners.forEach(([i,r])=>{this._squire?.removeEventListener?.(i,r)}),this._squireListeners=[],this._shortcutKeys=[],this._onBeforeInput&&(this.element.ownerDocument.removeEventListener("beforeinput",this._onBeforeInput,!0),this._onBeforeInput=null);let e=this.element.ownerDocument;this._onRootBeforeInput&&(e.removeEventListener("beforeinput",this._onRootBeforeInput,!0),this._onRootBeforeInput=null),this._onRootKeydown&&(e.removeEventListener("keydown",this._onRootKeydown,!0),this._onRootKeydown=null),this._onRootTransfer&&(Fn.forEach(i=>e.removeEventListener(i,this._onRootTransfer,!0)),this._onRootTransfer=null),this._squire?.destroy?.(),this._squire=null,this.cleanupEditorAttributes(),St.delete(this.element)}saveSelection(){return this.savedSelection=xe(this._squire)||this.savedSelection,this.savedSelection}restoreSelection(){return Ii(this._squire,this.savedSelection)}installRootGuards(){let e=this.element.ownerDocument,i=r=>this.element.contains(r.target);this._onRootBeforeInput=r=>{!i(r)||r.isComposing||/^history/.test(r.inputType||"")||this.ensureRootIsEditable()},this._onRootKeydown=r=>{!i(r)||r.defaultPrevented||r.isComposing||this.isEditingKey(r)&&this.ensureRootIsEditable()},this._onRootTransfer=r=>{i(r)&&this.ensureRootIsEditable()},e.addEventListener("beforeinput",this._onRootBeforeInput,!0),e.addEventListener("keydown",this._onRootKeydown,!0),Fn.forEach(r=>{e.addEventListener(r,this._onRootTransfer,!0)})}ensureRootIsEditable(){if(!this._squire||this.options.singleLine)return;let e=this.options.inline,i=!this.blocksStayOut();if(!nl(this.element,{wrapBareRoot:e,blocksAllowed:i}))return;let r=xe(this._squire),n=r?al(this.element,r):null,o=()=>{el(this.element,{blockTag:this._blockTag,wrapBareRoot:e,blocksAllowed:i,onBareRootWrapped:(a,l)=>{console.warn(`richclay: wrapped this region's loose text in a <div> so multi-line editing works. Wrap the content in your own block element to keep the markup you wrote, or use editable="single-line" if it is meant to be one line.`,a,l)}})};typeof this._squire.modifyDocument=="function"?this._squire.modifyDocument(o):o(),n&&(ll(this.element,r,n),Ii(this._squire,r),this.savedSelection=bn(r))}isEditingKey(e){return["Backspace","Delete","Enter"].includes(e.key)?!0:e.key==="Tab"?this.caretIsInList():e.key.length!==1?!1:!e.ctrlKey&&!e.metaKey&&!e.altKey?!0:e.ctrlKey&&!e.metaKey&&!e.altKey&&this._appleDeleteKeys.has(e.key.toLowerCase())}caretIsInList(){let e=this._squire?.getSelection()?.startContainer;if(!e)return!1;let i=e.nodeType===1?e:e.parentElement;return!!(i&&this.element.contains(i)&&i.closest("ul, ol"))}runControl(e){if(!this._squire||typeof e.run!="function"||e.isDisabled?.(this))return;this.restoreSelection(),e.mutates!==!1&&this.ensureRootIsEditable();let i=e.run(this);this.element.querySelectorAll("pre:not([data-richclay-pre])").forEach(r=>{this._authoredPres.has(r)||r.setAttribute("data-richclay-pre","")}),e.mutates!==!1&&(this.ensureRootIsEditable(),this.anchorSelectionInBlock()),this.saveSelection(),this.toolbar?.update(),this.updatePlaceholder(),this.announceControl(e),i!==Bn&&this.focus(),this.warnOnBlockInInlineRegion()}anchorSelectionInBlock(){let e=xe(this._squire);if(!e?.collapsed||e.startContainer!==this.element)return;let i=Array.from(this.element.childNodes),r=e.startOffset>=i.length,n=r?i.filter(be).pop():i.slice(e.startOffset).find(be)||i.slice(0,e.startOffset).filter(be).pop();if(!n)return;let o=He(n,!r);e.setStart(o,r?Ti(o):0),e.collapse(!0),Ii(this._squire,e)}selectionHasFormat(e){if(!e||!this._squire?.hasFormat)return!1;try{return this._squire.hasFormat(e)}catch{return!1}}pathHas(e){let i=xe(this._squire);if(!i)return!1;let r=e.toLowerCase(),n=Hn(this.element,i.startContainer,i.startOffset,!0,r);return!!n&&n===Hn(this.element,i.endContainer,i.endOffset,!1,r)}blocksStayOut(){return this.options.singleLine||Ai(this.element)||Qa(this.element)}warnOnBlockInInlineRegion(){if(this._warnedInlineBlock||!Ei(this.element)||!tn(this.element))return;this._warnedInlineBlock=!0;let e=this.element.nodeName.toLowerCase();console.warn(`richclay: a block element inside <${e} editable> is not valid HTML. It stays where it is and saves correctly, but a validator will flag it. Put the editable attribute on a block element if you want blocks here.`,this.element)}toggleFormat(e,i,r){return this.selectionHasFormat(e)?this._squire[r]():this._squire[i]()}toggleList(e){return this.pathHas(e)?this._squire.removeList():e==="UL"?this._squire.makeUnorderedList():this._squire.makeOrderedList()}indent(){return this.pathHas("UL")||this.pathHas("OL")?this._squire.increaseListLevel():this._squire.increaseQuoteLevel()}outdent(){return this.pathHas("UL")||this.pathHas("OL")?this._squire.decreaseListLevel():this._squire.decreaseQuoteLevel()}setBlockType(e){let i=e.toUpperCase();return i==="BLOCKQUOTE"?this._squire.increaseQuoteLevel():this._squire.modifyBlocks(r=>{let n=this.element.ownerDocument,o=n.createDocumentFragment();return Array.from(r.childNodes).forEach(a=>{if(a.nodeType!==1){o.appendChild(a);return}if(a.nodeName===i){o.appendChild(a);return}let l=n.createElement(i);for(;a.firstChild;)l.appendChild(a.firstChild);o.appendChild(l)}),o})}openLinkDialog(){this.saveSelection(),this.closeLinkDialog();let e=this.element.ownerDocument,i=this.currentLinkElement(),r=i?.getAttribute("href")||"",n=e.createElement("form"),o=`richclay-link-label-${++Pn}`;n.className="richclay-dialog",n.setAttribute("role","dialog"),n.setAttribute("aria-modal","true"),n.setAttribute("aria-labelledby",o),n.setAttribute("data-richclay-dialog",""),Jt(n),n.setAttribute("save-remove",""),n.innerHTML=`
102
+ <div class="richclay-dialog-title" id="${o}">${i?"Edit link":"Insert link"}</div>
103
+ <label class="richclay-field">
104
+ <span>URL</span>
105
+ <input class="richclay-input" name="url" type="text" inputmode="url" autocomplete="url" placeholder="https://example.com">
106
+ </label>
107
+ <div class="richclay-dialog-actions">
108
+ ${i?'<button type="button" class="richclay-secondary" data-richclay-remove-link>Remove link</button>':""}
109
+ <button type="button" class="richclay-secondary" data-richclay-cancel>Cancel</button>
110
+ <button type="submit" class="richclay-primary">Apply</button>
111
+ </div>
112
+ `;let a=()=>{this.closeLinkDialog(),this.toolbar?.update(),this.focus()},l=()=>{this.restoreSelection();let x=this.currentLinkElement();x&&(this.selectElement(x),this._squire.removeLink(),ve(this.liveRegion,"Link removed")),a()};n.addEventListener("submit",x=>{x.preventDefault();let A=new FormData(n),N=String(A.get("url")||"").trim();if(!N&&i){l();return}let B=Vl(N);if(!B){ve(this.liveRegion,"Enter a valid URL");return}this.restoreSelection();let X=this.currentLinkElement();X?(this.selectElement(X),this._squire.saveUndoState(),X.setAttribute("href",B)):this._squire.makeLink(B),ve(this.liveRegion,"Link applied"),a()}),n.querySelector("[data-richclay-remove-link]")?.addEventListener("click",l),n.querySelector("[data-richclay-cancel]").addEventListener("click",a),n.addEventListener("keydown",x=>{x.key==="Escape"?(x.preventDefault(),a()):x.key==="Tab"&&ms(x,n)});let c=this.element.closest("dialog")||e.body,d=typeof n.showPopover=="function";d&&n.setAttribute("popover","manual"),Ct(n,"position","fixed"),Ct(n,"inset","0px auto auto 0px"),Ct(n,"margin","0"),Ct(n,"overflow","visible"),c.appendChild(n),d&&n.showPopover(),this.dialog=n;let u=e.defaultView||globalThis,h=()=>this.positionLinkDialog(),m=x=>{n.contains(x.target)||this.closeLinkDialog()},y=typeof u.ResizeObserver=="function"?new u.ResizeObserver(h):null;y?.observe(n),e.addEventListener("scroll",h,{capture:!0,passive:!0}),u.addEventListener("resize",h,{passive:!0}),u.visualViewport?.addEventListener("resize",h,{passive:!0}),u.visualViewport?.addEventListener("scroll",h,{passive:!0}),e.addEventListener("pointerdown",m,!0),this.dialogCleanup=()=>{y?.disconnect(),e.removeEventListener("scroll",h,{capture:!0}),u.removeEventListener("resize",h),u.visualViewport?.removeEventListener("resize",h),u.visualViewport?.removeEventListener("scroll",h),e.removeEventListener("pointerdown",m,!0)},this.positionLinkDialog();let g=n.querySelector("input");return g.value=r,g.focus(),g.select(),Bn}currentLinkElement(){let e=xe(this._squire);if(!e||!this.element.contains(e.commonAncestorContainer))return null;if(e.collapsed){let i=e.startContainer,r=(i.nodeType===1?i:i.parentElement)?.closest("a[href]");return r&&r!==this.element&&this.element.contains(r)?r:null}for(let i of this.element.querySelectorAll("a[href]")){let r=i.ownerDocument.createRange(),n=i,o=i;for(;n.firstChild;)n=n.firstChild;for(;o.lastChild;)o=o.lastChild;if(r.setStart(n,0),r.setEnd(o,o.nodeType===3?o.length:o.childNodes.length),e.compareBoundaryPoints(e.END_TO_START,r)<0&&e.compareBoundaryPoints(e.START_TO_END,r)>0)return i}return null}currentLinkHref(){let e=this.currentLinkElement();return e&&e.getAttribute("href")||""}selectElement(e){let i=e.ownerDocument.createRange();return i.selectNode(e),this._squire.setSelection(i),this.saveSelection(),i}linkAnchorRect(){let e=this.savedSelection;if(typeof e?.getClientRects=="function"){let i=[...e.getClientRects()].filter(r=>r.width||r.height);if(i.length)return e.collapsed?i[0]:e.getBoundingClientRect()}return(this.toolbar?.items.find(i=>i.def.id==="link")?.button||this.toolbar?.root||this.element).getBoundingClientRect()}positionLinkDialog(){let e=this.dialog;if(!e)return;let i=e.ownerDocument.defaultView||globalThis,r=Hl({anchor:this.linkAnchorRect(),box:{width:e.offsetWidth||0,height:e.offsetHeight||0},viewport:{width:i.visualViewport?.width??i.innerWidth,height:i.visualViewport?.height??i.innerHeight}});e.setAttribute("data-richclay-side",r.side),e.style.setProperty("--richclay-dialog-arrow",`${Math.round(r.arrow)}px`),Ct(e,"transform",`translate(${Math.round(r.x)}px, ${Math.round(r.y)}px)`)}closeLinkDialog(){this.dialogCleanup?.(),this.dialogCleanup=null,this.dialog?.remove(),this.dialog=null}ensureMarker(){Ce(this.element)||(this.element.setAttribute("data-richclay-runtime-marker","true"),this.element.setAttribute("data-richclay",""))}setupEditorAttributes(){if(this.element.classList.add(this.options.inline?"richclay-inline":"richclay-editor","richclay-active"),this.element.setAttribute("data-richclay-active","true"),!this.element.hasAttribute("data-richclay-runtime-contenteditable")){let e=this.element.getAttribute("contenteditable");e===null?this.element.setAttribute("data-richclay-runtime-contenteditable","true"):e!=="true"&&e!==""&&this.element.setAttribute("data-richclay-runtime-contenteditable",e)}this.element.setAttribute("contenteditable","true"),this.element.hasAttribute("role")||Mi(this.element,"role","textbox","data-richclay-runtime-role"),this.element.hasAttribute("aria-multiline")||Mi(this.element,"aria-multiline",this.options.singleLine?"false":"true","data-richclay-runtime-aria-multiline"),this.element.hasAttribute("no-undo")||Mi(this.element,"no-undo","","data-richclay-runtime-no-undo"),this.options.placeholder&&(this.element.setAttribute("data-richclay-placeholder",this.options.placeholder),this.description||(this.description=this.element.ownerDocument.createElement("div"),this.description.id=`richclay-placeholder-${++Pn}`,this.description.className="richclay-sr-only",this.description.textContent=this.options.placeholder,this.description.setAttribute("data-richclay-live",""),Jt(this.description)),this.description.isConnected||this.element.insertAdjacentElement("afterend",this.description),Dl(this.element,this.description)),this.element.addEventListener("focus",this._onFocus),this.element.addEventListener("blur",this._onBlur),this.element.addEventListener("click",this._onLinkActivation,!0),this.element.addEventListener("auxclick",this._onLinkActivation,!0)}cleanupEditorAttributes(){Oi(this.element,"destroy"),this.element.removeEventListener("focus",this._onFocus),this.element.removeEventListener("blur",this._onBlur),this.element.removeEventListener("click",this._onLinkActivation,!0),this.element.removeEventListener("auxclick",this._onLinkActivation,!0)}bindSquire(){let e=()=>{this.saveSelection(),this.updatePlaceholder(),this.options.onChange?.(this.getHTML()),this.toolbar?.update()},i=n=>{this.path=n.detail?.path||this._squire.getPath?.()||"",this.saveSelection(),this.toolbar?.update()},r=()=>{this.saveSelection(),this.toolbar?.update(),this.options.toolbarOnSelect&&this.updateFloatVisibility()};[["input",e],["pathChange",i],["select",r],["cursor",r],["undoStateChange",()=>this.toolbar?.update()]].forEach(([n,o])=>{this._squire.addEventListener(n,o),this._squireListeners.push([n,o])})}renderToolbar(){if(!this.active||this.options.readOnly)return;if(this.options.inline){this.float&&(this.teardownFloatingToolbar(),this.ensureFloatingToolbar());return}this.toolbar?.destroy(),this.toolbar=null;let e=this.resolveToolbarControls(this.options.toolbar);e.length&&(this.toolbar=new vn(this,e,{toolbarContainer:this.options.toolbarContainer}))}ensureFloatingToolbar(){if(this.float||!this.active||this.options.readOnly)return;let e=this.resolveToolbarControls(this.options.toolbar);e.length&&(this.float=new Ul(this,e),this._onFloatFocusOut=i=>this.scheduleFloatTeardown(i),this.float.root.addEventListener("focusout",this._onFloatFocusOut),this._onDocPointerDown=i=>{if(this.ownsFocusTarget(i.target))return;let r=this.element.ownerDocument;r.activeElement&&this.ownsFocusTarget(r.activeElement)&&r.activeElement.blur?.(),this.teardownFloatingToolbar()},this.element.ownerDocument.addEventListener("pointerdown",this._onDocPointerDown,!0),this.toolbar=this.float.toolbar,this.toolbar.update(),this.options.toolbarOnSelect&&this.updateFloatVisibility())}teardownFloatingToolbar(){this.float&&(this._onFloatFocusOut&&(this.float.root.removeEventListener("focusout",this._onFloatFocusOut),this._onFloatFocusOut=null),this._onDocPointerDown&&(this.element.ownerDocument.removeEventListener("pointerdown",this._onDocPointerDown,!0),this._onDocPointerDown=null),this.float.destroy(),this.float=null,this.toolbar=null)}scheduleFloatTeardown(e){let i=e?.relatedTarget;if(i&&this.ownsFocusTarget(i))return;let r=this.element.ownerDocument;(r.defaultView||globalThis).setTimeout(()=>{let n=r.activeElement;n&&this.ownsFocusTarget(n)||this.teardownFloatingToolbar()},0)}ownsFocusTarget(e){return e===this.element||this.element.contains(e)||!!this.float?.root.contains(e)||!!this.dialog?.contains(e)}updateFloatVisibility(){if(!this.float)return;let e=this.savedSelection;this.float.setVisible(!!(e&&!e.collapsed))}resolveToolbarControls(e){return e===!1||e===null||e==="none"?[]:(Array.isArray(e)?e:Me[e]||Me.standard).map(i=>{if(typeof i=="string"){let r=this.registry.get(i);if(!r)throw new Error(`Unknown RichClay toolbar control: ${i}`);return r}return i?.type==="separator"||ji(i),i})}installShortcuts(){let e=new Set,i=[...this.registry.values()].filter(r=>!this.options.singleLine||Me.inline.includes(r.id));[...this.resolveToolbarControls(this.options.toolbar),...i].forEach(r=>{if(r.type==="menu"||r.type==="separator"||!r.shortcut||!r.id||e.has(r.id))return;if(r.isDisabled?.(this)){let o=Un(r.shortcut,this.window);this._squire.setKeyHandler(o,null),this._shortcutKeys.push(o);return}e.add(r.id);let n=Un(r.shortcut,this.window);this._squire.setKeyHandler(n,(o,a)=>{a.preventDefault(),this.runControl(r)}),this._shortcutKeys.push(n)})}maskSquireCodeShortcut(){let e=`${me(this.window)?"Meta":"Ctrl"}-d`;this._squire.setKeyHandler(e,null),this._shortcutKeys.push(e)}maskSquireBlockShortcuts(){if(!this.blocksStayOut())return;let e=me(this.window)?"Meta":"Ctrl";[`${e}-]`,`${e}-[`,`${e}-Shift-8`,`${e}-Shift-9`].forEach(i=>{this._squire.setKeyHandler(i,null),this._shortcutKeys.push(i)})}toggleCode(){return this.blocksStayOut()?this.selectionHasFormat("CODE")?this._squire.changeFormat(null,{tag:"CODE"}):this._squire.changeFormat({tag:"CODE"},null):this._squire.toggleCode()}installAppleDeleteKeys(){if(!me(this.window))return;let e=this._squire._keyHandlers;e&&[["Ctrl-d","Delete"],["Ctrl-h","Backspace"]].forEach(([i,r])=>{typeof e[r]=="function"&&(this._squire.setKeyHandler(i,e[r]),this._shortcutKeys.push(i),this._appleDeleteKeys.add(i.slice(5)))})}installSingleLineGuards(){["Enter","Shift-Enter"].forEach(e=>{this._squire.setKeyHandler(e,(i,r)=>r.preventDefault()),this._shortcutKeys.push(e)}),this._onBeforeInput=e=>{this.element.contains(e.target)&&(e.inputType==="insertParagraph"||e.inputType==="insertLineBreak")&&(e.preventDefault(),e.stopPropagation())},this.element.ownerDocument.addEventListener("beforeinput",this._onBeforeInput,!0)}resetSquireUndoBaseline(){let e=this._squire;!e||!Array.isArray(e._undoStack)||typeof e.saveUndoState!="function"||(e._undoStack.length=0,e._undoStackLength=0,e._undoIndex=-1,e._isInUndoState=!1,e.saveUndoState())}updatePlaceholder(){let e=On(this.element,{capability:"history",inherit:!1}),i=e.text().replace(/\u200B/g,"").trim(),r=e.root.querySelector("img, video, audio, iframe, table"),n=!i&&!r;this.element.classList.toggle("richclay-empty",n)}announceControl(e){if(!this.liveRegion)return;let i=e.ariaLabel||e.label;i&&(typeof e.isActive=="function"?ve(this.liveRegion,`${i} ${e.isActive(this)?"on":"off"}`):ve(this.liveRegion,`${i} applied`))}};function hs(t){return typeof t=="string"?Array.from(document.querySelectorAll(t)):t?.nodeType===1?[t]:Array.from(t||[])}function Hn(t,e,i,r,n){let o=e;if(o===t){let l=Array.from(t.childNodes).filter(be);if(!l.length)return null;let c=Math.min(r?i:Math.max(i-1,0),l.length-1);o=He(l[c],r)}let a=(o?.nodeType===1?o:o?.parentElement)?.closest?.(n);return a&&t.contains(a)&&a!==t?a:null}function us(t){let e=t.parentElement;for(;e;){if(St.has(e)||Ce(e))return e;e=e.parentElement}return null}function Ce(t){return!!t.matches?.(pt)&&ln(t)}function $i(t){let e=us(t),i=Array.from(t.querySelectorAll?.(pt)||[]).find(n=>St.has(n)),r=e||i;return r?(console.warn("richclay: nested editable regions are not supported, so this one was skipped. Remove the editable attribute from either it or the other region.",t,r),!0):!1}function ps(t){return Ja(t)?(console.warn(`richclay: ${tl(t)} This region was skipped.`,t),!0):!1}function ji(t){if(!t||!t.id)throw new Error("RichClay button definitions require an id.");if(t.type!=="menu"&&typeof t.run!="function")throw new Error(`RichClay button "${t.id}" requires a run(editor) function.`)}function Un(t,e){let i=t.split("+"),r=i[i.length-1],n=new Set(i.slice(0,-1).map(fs));n.delete("Mod")&&n.add(me(e)?"Meta":"Ctrl");let o=r.length===1?n.has("Shift")?r.toUpperCase():r.toLowerCase():r,a=ss.filter(l=>n.has(l)).join("-");return`${a?`${a}-`:""}${o}`}function fs(t){return t==="Cmd"?"Meta":t}function ms(t,e){let i=e.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(!i.length)return;let r=i[0],n=i[i.length-1],o=e.ownerDocument.activeElement;t.shiftKey&&o===r?(t.preventDefault(),n.focus()):!t.shiftKey&&o===n&&(t.preventDefault(),r.focus())}var gs=`:root {
113
+ --richclay-surface: #ffffff;
114
+ --richclay-surface-alt: #f6f7f9;
115
+ --richclay-text: #0b0e14;
116
+ --richclay-muted: #667085;
117
+ --richclay-border: #c9ced8;
118
+ --richclay-accent: #0f766e;
119
+ --richclay-accent-ink: #ffffff;
120
+ --richclay-focus: #2563eb;
121
+ --richclay-danger: #b42318;
122
+ --richclay-radius: 6px;
123
+ --richclay-control-size: 34px;
124
+ --richclay-shadow: 0 10px 24px rgb(15 23 42 / 0.16);
125
+ --richclay-dialog-arrow: 28px;
126
+ }
127
+
128
+ @media (prefers-color-scheme: dark) {
129
+ :root {
130
+ --richclay-surface: #16181d;
131
+ --richclay-surface-alt: #22252c;
132
+ --richclay-text: #ffffff;
133
+ --richclay-muted: #a3aab8;
134
+ --richclay-border: #4a5260;
135
+ --richclay-accent: #2dd4bf;
136
+ --richclay-accent-ink: #05201d;
137
+ --richclay-focus: #93c5fd;
138
+ --richclay-shadow: 0 12px 28px rgb(0 0 0 / 0.35);
139
+ }
140
+ }
141
+
142
+ .richclay-toolbar {
143
+ align-items: center;
144
+ background: var(--richclay-surface-alt);
145
+ border: 1px solid var(--richclay-border);
146
+ border-radius: var(--richclay-radius);
147
+ color: var(--richclay-text);
148
+ display: flex;
149
+ flex-wrap: wrap;
150
+ gap: 2px;
151
+ margin-block: 0 6px;
152
+ padding: 4px;
153
+ }
154
+
155
+ /* Seamless card: in the default layout the toolbar sits directly above the
156
+ editor. Fuse them into a single bordered card with one divider \u2014 the
157
+ toolbar's bottom border \u2014 instead of two stacked, separated boxes. */
158
+ .richclay-toolbar:has(+ .richclay-editor) {
159
+ margin-block-end: 0;
160
+ border-bottom-left-radius: 0;
161
+ border-bottom-right-radius: 0;
162
+ }
163
+
164
+ .richclay-toolbar + .richclay-editor {
165
+ border-top: 0;
166
+ border-top-left-radius: 0;
167
+ border-top-right-radius: 0;
168
+ }
169
+
170
+ /* In a fused card, draw the focus ring inside the body so it never crosses
171
+ the toolbar divider. */
172
+ .richclay-toolbar + .richclay-editor:focus-visible {
173
+ outline-offset: -3px;
174
+ }
175
+
176
+ .richclay-button {
177
+ align-items: center;
178
+ appearance: none;
179
+ background: transparent;
180
+ border: 1px solid transparent;
181
+ border-radius: 5px;
182
+ color: currentColor;
183
+ display: inline-flex;
184
+ height: var(--richclay-control-size);
185
+ justify-content: center;
186
+ margin: 0;
187
+ min-width: var(--richclay-control-size);
188
+ padding: 0;
189
+ position: relative;
190
+ }
191
+
192
+ .richclay-button:hover,
193
+ .richclay-button[aria-expanded="true"],
194
+ .richclay-menu-item:hover {
195
+ background: var(--richclay-surface);
196
+ border-color: var(--richclay-border);
197
+ }
198
+
199
+ .richclay-button.is-active,
200
+ .richclay-button[aria-pressed="true"],
201
+ .richclay-menu-item.is-active {
202
+ background: rgb(0 0 0 / 0.13);
203
+ border-color: rgb(0 0 0 / 0.22);
204
+ color: var(--richclay-text);
205
+ box-shadow: inset 0 1px 3px rgb(0 0 0 / 0.26);
206
+ }
207
+
208
+ .richclay-button:focus-visible,
209
+ .richclay-menu-item:focus-visible,
210
+ .richclay-editor:focus-visible,
211
+ .richclay-input:focus-visible,
212
+ .richclay-primary:focus-visible,
213
+ .richclay-secondary:focus-visible {
214
+ outline: 3px solid var(--richclay-focus);
215
+ outline-offset: 2px;
216
+ }
217
+
218
+ .richclay-button:disabled {
219
+ color: var(--richclay-muted);
220
+ cursor: not-allowed;
221
+ opacity: 0.55;
222
+ }
223
+
224
+ .richclay-separator {
225
+ align-self: stretch;
226
+ background: var(--richclay-border);
227
+ display: inline-block;
228
+ margin: 5px 4px;
229
+ width: 1px;
230
+ }
231
+
232
+ .richclay-menu-wrap {
233
+ display: inline-flex;
234
+ position: relative;
235
+ }
236
+
237
+ .richclay-menu {
238
+ background: var(--richclay-surface);
239
+ border: 1px solid var(--richclay-border);
240
+ border-radius: var(--richclay-radius);
241
+ box-shadow: var(--richclay-shadow);
242
+ color: var(--richclay-text);
243
+ display: grid;
244
+ gap: 2px;
245
+ inset-block-start: calc(100% + 4px);
246
+ inset-inline-start: 0;
247
+ min-width: 160px;
248
+ padding: 4px;
249
+ position: absolute;
250
+ z-index: 1000;
251
+ }
252
+
253
+ .richclay-menu[hidden] {
254
+ display: none;
255
+ }
256
+
257
+ .richclay-menu-item {
258
+ align-items: center;
259
+ appearance: none;
260
+ background: transparent;
261
+ border: 1px solid transparent;
262
+ border-radius: 4px;
263
+ color: inherit;
264
+ display: flex;
265
+ font: inherit;
266
+ gap: 8px;
267
+ min-height: 32px;
268
+ padding: 5px 9px;
269
+ text-align: start;
270
+ }
271
+
272
+ .richclay-editor {
273
+ background: var(--richclay-surface);
274
+ border: 1px solid var(--richclay-border);
275
+ border-radius: var(--richclay-radius);
276
+ color: var(--richclay-text);
277
+ min-height: 9rem;
278
+ /* Break a long unbreakable string (e.g. a bare URL) in prose rather than let
279
+ it widen the editor. \`anywhere\` also lowers min-content, so the editor can't
280
+ grow even as a flex/grid item. Inert on the code <pre> (white-space: pre). */
281
+ overflow-wrap: anywhere;
282
+ padding: 12px;
283
+ position: relative;
284
+ }
285
+
286
+ .richclay-editor.richclay-empty::before {
287
+ color: var(--richclay-muted);
288
+ content: attr(data-richclay-placeholder);
289
+ inset-block-start: 12px;
290
+ inset-inline-start: 12px;
291
+ pointer-events: none;
292
+ position: absolute;
293
+ }
294
+
295
+ .richclay-editor p,
296
+ .richclay-editor h1,
297
+ .richclay-editor h2,
298
+ .richclay-editor h3,
299
+ .richclay-editor h4,
300
+ .richclay-editor h5,
301
+ .richclay-editor h6,
302
+ .richclay-editor blockquote,
303
+ .richclay-editor pre,
304
+ .richclay-editor ul,
305
+ .richclay-editor ol {
306
+ margin-block: 0 0.75em;
307
+ }
308
+
309
+ .richclay-editor > :last-child {
310
+ margin-block-end: 0;
311
+ }
312
+
313
+ /* Inline editors ([editable]) inherit the page's own styling. richclay adds
314
+ only a caret, a discoverability outline, and empty-state affordances. */
315
+ .richclay-inline {
316
+ caret-color: currentColor;
317
+ }
318
+
319
+ .richclay-inline:hover {
320
+ outline: 1px dashed var(--richclay-border);
321
+ outline-offset: 2px;
322
+ }
323
+
324
+ .richclay-inline.richclay-focused,
325
+ .richclay-inline:focus-visible {
326
+ outline: 2px dashed var(--richclay-focus);
327
+ outline-offset: 2px;
328
+ }
329
+
330
+ .richclay-inline.richclay-empty {
331
+ min-height: 1em;
332
+ min-width: 1ch;
333
+ }
334
+
335
+ .richclay-inline.richclay-empty::before {
336
+ color: var(--richclay-muted);
337
+ content: attr(data-richclay-placeholder);
338
+ pointer-events: none;
339
+ }
340
+
341
+ /* Floating toolbar shell for inline editors. Fixed-position and body-mounted:
342
+ fixed elements never create scrollbars, and body mounting avoids transformed
343
+ ancestors silently turning fixed into ancestor-relative. */
344
+ .richclay-float {
345
+ left: 0;
346
+ position: fixed;
347
+ top: 0;
348
+ will-change: transform;
349
+ z-index: 99999;
350
+ }
351
+
352
+ .richclay-float .richclay-toolbar {
353
+ box-shadow: var(--richclay-shadow);
354
+ margin-block: 0;
355
+ }
356
+
357
+ /* Compact vertical rail for narrow margins. */
358
+ .richclay-float-rail .richclay-toolbar {
359
+ --richclay-control-size: 28px;
360
+ flex-direction: column;
361
+ flex-wrap: nowrap;
362
+ }
363
+
364
+ .richclay-float-rail .richclay-toolbar svg {
365
+ height: 15px;
366
+ width: 15px;
367
+ }
368
+
369
+ .richclay-float-rail .richclay-separator {
370
+ align-self: stretch;
371
+ height: 1px;
372
+ margin: 4px 5px;
373
+ width: auto;
374
+ }
375
+
376
+ .richclay-float-rail .richclay-menu {
377
+ inset-block-start: 0;
378
+ inset-inline-start: calc(100% + 4px);
379
+ }
380
+
381
+ .richclay-editor blockquote {
382
+ border-inline-start: 3px solid var(--richclay-border);
383
+ color: var(--richclay-muted);
384
+ margin-inline: 0;
385
+ padding-inline-start: 12px;
386
+ }
387
+
388
+ /* Code blocks scroll horizontally inside the editor instead of widening it.
389
+ \`width: 0; min-width: 100%\` zeroes the pre's intrinsic-width contribution so a
390
+ long unbreakable line can't push an intrinsically-sized ancestor (flex/grid
391
+ item, inline-block, table cell) wider, while still filling the editor and
392
+ scrolling its own overflow. box-sizing keeps padding inside that 100%.
393
+ Containment applies to inline editors too: \`white-space: pre\` never wraps, so
394
+ without it one code block runs off the side of the page. Only the decoration
395
+ below stays card-scoped, since inline mode keeps the page's own typography. */
396
+ .richclay-editor pre,
397
+ .richclay-inline pre {
398
+ box-sizing: border-box;
399
+ min-width: 100%;
400
+ overflow: auto;
401
+ width: 0;
402
+ }
403
+
404
+ .richclay-editor pre {
405
+ background: var(--richclay-surface-alt);
406
+ border-radius: 4px;
407
+ padding: 10px;
408
+ }
409
+
410
+ .richclay-dialog {
411
+ background: var(--richclay-surface);
412
+ border: 1px solid var(--richclay-border);
413
+ border-radius: var(--richclay-radius);
414
+ box-shadow: var(--richclay-shadow);
415
+ color: var(--richclay-text);
416
+ display: grid;
417
+ gap: 10px;
418
+ box-sizing: border-box;
419
+ width: min(420px, calc(100vw - 16px));
420
+ z-index: 99999;
421
+ padding: 12px;
422
+ }
423
+
424
+ .richclay-dialog-title {
425
+ font-weight: 650;
426
+ }
427
+
428
+ .richclay-field {
429
+ display: grid;
430
+ gap: 4px;
431
+ }
432
+
433
+ .richclay-field span {
434
+ color: var(--richclay-muted);
435
+ font-size: 0.875rem;
436
+ }
437
+
438
+ .richclay-input {
439
+ background: var(--richclay-surface);
440
+ border: 1px solid var(--richclay-border);
441
+ border-radius: 4px;
442
+ color: var(--richclay-text);
443
+ font: inherit;
444
+ min-height: 36px;
445
+ padding: 6px 8px;
446
+ }
447
+
448
+ .richclay-dialog-actions {
449
+ display: flex;
450
+ gap: 8px;
451
+ justify-content: flex-end;
452
+ }
453
+
454
+ .richclay-dialog-actions [data-richclay-remove-link] {
455
+ margin-inline-end: auto;
456
+ }
457
+
458
+ .richclay-primary,
459
+ .richclay-secondary {
460
+ appearance: none;
461
+ border: 1px solid var(--richclay-border);
462
+ border-radius: 4px;
463
+ font: inherit;
464
+ min-height: 34px;
465
+ padding: 5px 10px;
466
+ }
467
+
468
+ .richclay-primary {
469
+ background: var(--richclay-accent);
470
+ border-color: var(--richclay-accent);
471
+ color: var(--richclay-accent-ink);
472
+ }
473
+
474
+ .richclay-secondary {
475
+ background: var(--richclay-surface-alt);
476
+ color: var(--richclay-text);
477
+ }
478
+
479
+ .richclay-sr-only {
480
+ border: 0;
481
+ clip: rect(0 0 0 0);
482
+ clip-path: inset(50%);
483
+ height: 1px;
484
+ margin: -1px;
485
+ overflow: hidden;
486
+ padding: 0;
487
+ position: absolute;
488
+ white-space: nowrap;
489
+ width: 1px;
490
+ }
491
+
492
+ @media (forced-colors: active) {
493
+ .richclay-toolbar,
494
+ .richclay-editor,
495
+ .richclay-menu,
496
+ .richclay-dialog,
497
+ .richclay-input {
498
+ border-color: CanvasText;
499
+ }
500
+
501
+ .richclay-button.is-active,
502
+ .richclay-button[aria-pressed="true"],
503
+ .richclay-menu-item.is-active,
504
+ .richclay-primary {
505
+ background: Highlight;
506
+ color: HighlightText;
507
+ }
508
+
509
+ .richclay-button:focus-visible,
510
+ .richclay-menu-item:focus-visible,
511
+ .richclay-editor:focus-visible,
512
+ .richclay-input:focus-visible {
513
+ outline-color: Highlight;
514
+ }
515
+ }
516
+ `,te=typeof globalThis<"u"?globalThis:self;te&&!te.Squire&&(te.Squire=ca),te&&!te.DOMPurify&&(te.DOMPurify=Wa),Ql(gs);var ys=Ki.autoInit(),bs=Ki;return _o(hr)})();window.__hyperclayNoAutoExport||(window.hyperclay=window.hyperclay||{},window.hyperclay.RichClay=Qe.default,window.RichClay=window.RichClay||Qe.default,window.h=window.hyperclay);var gt=Qe.default,rc=Qe.default;bo("richclay",xo,{roots:vo});var Xe=null,Co=(v,st)=>Object.assign(new Error(`clay:richclay: ${v}`),{code:st}),Vs=v=>v?v.signal?.aborted?!0:typeof v.isCurrent=="function"&&!v.isCurrent():!1,Gs=v=>({root:v,win:v.ownerDocument?.defaultView||window,admitted:!1,stopWatch:null,subscriber:null}),wo=v=>[...v.root.querySelectorAll(gt.selector)];function So(v){for(let st of gt.init(wo(v)))st.reattach()}function Zs(v){let st=()=>So(v);return{enable(){if(v.admitted)return;v.admitted=!0,So(v),v.stopWatch=gt.watch(v.win);let at=v.root.ownerDocument||document;v.subscriber={target:at,type:"clay:sync-applied",handler:st},at.addEventListener(v.subscriber.type,st)},quiesce(){v.admitted=!1,v.stopWatch&&(v.stopWatch(),v.stopWatch=null)},resume(){v.admitted||(v.admitted=!0,v.stopWatch=gt.watch(v.win))},dispose(){v.admitted=!1,v.stopWatch&&(v.stopWatch(),v.stopWatch=null);let at=v.subscriber;v.subscriber=null,at&&at.target.removeEventListener(at.type,at.handler);for(let Je of wo(v))gt.stripElement(Je);Xe===v&&(Xe=null)}}}function Ys(v=document){return{id:"clay:richclay",order:310,async prepare(st={}){if(st.initial===!0)return Qs();if(typeof gt.watch!="function"||typeof gt.stripElement!="function")throw Co("this vendor build has no watchable lifecycle","unsupported-plugin");if(Vs(st))throw Co("prepared for a stale generation","stale-document");let at=gt.autoInit?.();return typeof at=="function"&&at(),Zs(Xe||(Xe=Gs(v)))}}}async function Qs(){let v=await Js;return{enable(){},quiesce:()=>v?.quiesce(),resume:()=>v?.resume(),dispose:()=>v?.dispose()}}async function Xs(){if(!yo())return null;let v=await Ys().prepare();return v.enable(),v}var Js=Xs();var fc=gt;export{gt as RichClay,fc as default,Xs as init,Ys as modeParticipant,Js as ready,Ys as richclayParticipant};
517
+ /*! For license information please see richclay-RC3L2F6X.js.LEGAL.txt */