@panphora/clayjs 1.16.0 → 1.18.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.
- package/dist/all.js +1 -1
- package/dist/clay-dom.js +1 -1
- package/dist/clay-events.js +1 -1
- package/dist/clay-internals.js +1 -1
- package/dist/clay-options.js +1 -1
- package/dist/clay-router.js +1 -1
- package/dist/clay-ui.js +1 -1
- package/dist/clay-utils.js +1 -1
- package/dist/clay.js +1 -1
- package/dist/clay.standalone.js +72519 -59839
- package/dist/m/attrs/refetch-on-save-ZUE7PSCI.js +1 -0
- package/dist/m/attrs/save-freeze-LWGF6XUN.js +1 -0
- package/dist/m/c-2GRUM77Q.js +30 -0
- package/dist/m/c-2KIEGNC4.js +1 -0
- package/dist/m/{c-5R4PTRG2.js → c-2KL3BD52.js} +1 -1
- package/dist/m/c-2YYDMLNZ.js +1 -0
- package/dist/m/c-2ZZBC45O.js +1 -0
- package/dist/m/c-372N6H3B.js +1 -0
- package/dist/m/{c-4WKFKEKF.js → c-3G2DGZUP.js} +1 -1
- package/dist/m/c-3LDGIBMN.js +1 -0
- package/dist/m/c-3O7OBDCM.js +1 -0
- package/dist/m/c-4ASQPRQL.js +1 -0
- package/dist/m/c-4TXNLX4K.js +6 -0
- package/dist/m/c-4YU3BR4D.js +6 -0
- package/dist/m/c-5734MF2P.js +1 -0
- package/dist/m/c-57XDY6HC.js +1 -0
- package/dist/m/{c-VFX45IZQ.js → c-5B4YBZXC.js} +1 -1
- package/dist/m/c-5ONTYIUI.js +1 -0
- package/dist/m/c-5OOVFCJM.js +1 -0
- package/dist/m/c-5T6NZHNM.js +1 -0
- package/dist/m/{c-YDH7Q3NY.js → c-5ZQV7KC4.js} +1 -1
- package/dist/m/{c-Z36J63PP.js → c-6DB2OLRJ.js} +1 -1
- package/dist/m/c-6DNRCPNM.js +1 -0
- package/dist/m/c-6UGWFMQC.js +2 -0
- package/dist/m/c-7K4SCQB7.js +1 -0
- package/dist/m/c-7MG5RU63.js +1 -0
- package/dist/m/c-7PRJCA3E.js +1 -0
- package/dist/m/c-A6L3FMUS.js +1 -0
- package/dist/m/c-AMU3BPPR.js +4 -0
- package/dist/m/c-AMYEFA2E.js +1 -0
- package/dist/m/c-AQYCG7QW.js +1 -0
- package/dist/m/c-ATKAOH23.js +1 -0
- package/dist/m/c-B3JM5ZXC.js +1 -0
- package/dist/m/c-B5CS55WR.js +1 -0
- package/dist/m/c-B5UJQT7W.js +1 -0
- package/dist/m/c-B7J4K2AE.js +3 -0
- package/dist/m/c-BHZYSHW4.js +1 -0
- package/dist/m/c-BIJALSRD.js +1 -0
- package/dist/m/c-BJ7YQ5QZ.js +1 -0
- package/dist/m/c-BPF2NSPV.js +1 -0
- package/dist/m/{c-KIPQJX4B.js → c-BRLCTNMC.js} +1 -1
- package/dist/m/c-BUAYFEV5.js +1 -0
- package/dist/m/c-C6IPRG34.js +1 -0
- package/dist/m/{c-2JL6E75N.js → c-CAS3NND4.js} +1 -1
- package/dist/m/{c-4DRMS4QG.js → c-CCQ25GFY.js} +1 -1
- package/dist/m/c-CJFDLD43.js +1 -0
- package/dist/m/c-COPTL5WB.js +1 -0
- package/dist/m/c-D3E4WJ4M.js +166 -0
- package/dist/m/c-D5IKEKXW.js +7 -0
- package/dist/m/c-DHBRA6DL.js +1 -0
- package/dist/m/c-DKLS74XB.js +72 -0
- package/dist/m/c-DVYGFTSK.js +3 -0
- package/dist/m/c-E3ZXARWA.js +1 -0
- package/dist/m/c-EK63G3CG.js +1 -0
- package/dist/m/c-ERQSNR6K.js +13 -0
- package/dist/m/c-EVYAISP3.js +1 -0
- package/dist/m/c-EXKHPOVC.js +3 -0
- package/dist/m/{c-7VGZ7RU5.js → c-FWKHM4E7.js} +1 -1
- package/dist/m/{c-4Q2XTQ2N.js → c-GBKB5WDL.js} +1 -1
- package/dist/m/c-GNDL3TKB.js +1 -0
- package/dist/m/c-GRWMD6O5.js +1 -0
- package/dist/m/c-GRXHHFPO.js +1 -0
- package/dist/m/{c-OYTFP5QN.js → c-GY422N3Q.js} +1 -1
- package/dist/m/c-HAWFNBYG.js +1 -0
- package/dist/m/c-HG2C77BM.js +4 -0
- package/dist/m/c-HHGJBU4D.js +1 -0
- package/dist/m/c-HMV6P4RX.js +1 -0
- package/dist/m/c-HMYWIHFG.js +1 -0
- package/dist/m/c-HT2DKBV2.js +1 -0
- package/dist/m/c-I2SCCUEW.js +1 -0
- package/dist/m/{c-HRDCD3WN.js → c-ICJYHABF.js} +2 -2
- package/dist/m/c-IMZCWYHR.js +7 -0
- package/dist/m/c-IVMD3FEM.js +1 -0
- package/dist/m/c-IVTRVENZ.js +1 -0
- package/dist/m/c-IW6GGOU2.js +1 -0
- package/dist/m/c-JKZJIUIP.js +1 -0
- package/dist/m/{c-NZMNXVF6.js → c-JNLX3RJB.js} +1 -1
- package/dist/m/c-JRKY44DK.js +1 -0
- package/dist/m/c-K3ADYNLU.js +1 -0
- package/dist/m/c-KBS3UV6B.js +1 -0
- package/dist/m/c-KGHVFRR3.js +1 -0
- package/dist/m/c-KJJPV77R.js +1 -0
- package/dist/m/{c-CZUSOB7V.js → c-KNPDOMDY.js} +1 -1
- package/dist/m/{c-5Y6TNX5W.js → c-KP64LT2A.js} +2 -2
- package/dist/m/c-KQ7E3PYY.js +1 -0
- package/dist/m/c-L3F5ZLIV.js +1 -0
- package/dist/m/{c-LR4CGEPT.js → c-L42OLXWM.js} +3 -2
- package/dist/m/c-L5VFATT6.js +1 -0
- package/dist/m/c-L7JL5TL3.js +3 -0
- package/dist/m/c-LKSL4AUJ.js +1 -0
- package/dist/m/c-M6FNQCTQ.js +1 -0
- package/dist/m/c-MCOOHCSG.js +1 -0
- package/dist/m/c-MHI3GYKF.js +1 -0
- package/dist/m/c-MWXFLW4J.js +1 -0
- package/dist/m/c-NEL7HQW3.js +1 -0
- package/dist/m/c-NQJRVJ56.js +1 -0
- package/dist/m/c-NWX3MFT4.js +1 -0
- package/dist/m/{c-HPURYVZS.js → c-OJYM642Q.js} +1 -1
- package/dist/m/c-OKXI52N7.js +1 -0
- package/dist/m/{c-MMUIUUZG.js → c-OPLUZR3A.js} +1 -1
- package/dist/m/{c-J7CA54IP.js → c-OTMKN2OO.js} +1 -1
- package/dist/m/{c-LTGMXXKO.js → c-OYRZ7XG2.js} +1 -1
- package/dist/m/c-P3OFYUMA.js +1 -0
- package/dist/m/c-PLN76GF3.js +6 -0
- package/dist/m/c-PLP4JKFC.js +1 -0
- package/dist/m/c-Q26MME6N.js +1 -0
- package/dist/m/{c-S7H2DRCB.js → c-Q3XOWZEV.js} +1 -1
- package/dist/m/{c-SWRJFCNN.js → c-QIKT6SKM.js} +1 -1
- package/dist/m/c-QIXT3Q7C.js +28 -0
- package/dist/m/c-QO4HNGCQ.js +1 -0
- package/dist/m/c-R27DWQKX.js +1 -0
- package/dist/m/{c-HVYXIS72.js → c-R2XUODVY.js} +1 -1
- package/dist/m/{c-QNKREOL6.js → c-R7LBFMF5.js} +1 -1
- package/dist/m/c-RND3G2S2.js +1 -0
- package/dist/m/c-S2U6NJU4.js +1 -0
- package/dist/m/c-SPZPGD3R.js +1 -0
- package/dist/m/c-SW4YEG2D.js +8 -0
- package/dist/m/c-SZGYW5HT.js +1 -0
- package/dist/m/c-T637T7SN.js +1 -0
- package/dist/m/c-TJAXGIRV.js +1 -0
- package/dist/m/{c-KKWLDOPM.js → c-TNEM3RNM.js} +1 -1
- package/dist/m/c-TTB5EK4S.js +32 -0
- package/dist/m/c-U7SHNWDH.js +1 -0
- package/dist/m/c-UDHIVLYH.js +20 -0
- package/dist/m/{c-BBVGTQG7.js → c-UGNV5MFB.js} +1 -1
- package/dist/m/{c-TQZ2JYHD.js → c-UORXLSD3.js} +1 -1
- package/dist/m/c-UPD33ZPE.js +1 -0
- package/dist/m/c-URSMSFCB.js +1 -0
- package/dist/m/c-UY4QX42B.js +1 -0
- package/dist/m/c-V44KWI2L.js +4 -0
- package/dist/m/c-VG5XIN4T.js +1 -0
- package/dist/m/c-VILENZTD.js +1 -0
- package/dist/m/{c-33HUYEDI.js → c-VJYEVRYK.js} +1 -1
- package/dist/m/c-VR2BJ4AN.js +1 -0
- package/dist/m/c-W4JCVLAB.js +1 -0
- package/dist/m/c-W6DQSHXI.js +135 -0
- package/dist/m/c-WBGWGOM7.js +1 -0
- package/dist/m/{c-4L3BTFRK.js → c-WCXLG3MV.js} +1 -1
- package/dist/m/c-WGW764WX.js +1 -0
- package/dist/m/c-WMRJKQ2V.js +5 -0
- package/dist/m/c-WNTYKCDG.js +1 -0
- package/dist/m/c-WQWIRWO3.js +72 -0
- package/dist/m/c-X5LNHET5.js +1 -0
- package/dist/m/c-X5TSXZYJ.js +2 -0
- package/dist/m/c-XGH4GS2T.js +1 -0
- package/dist/m/c-Y6F2FORL.js +1 -0
- package/dist/m/c-YBKHUAK7.js +10 -0
- package/dist/m/c-YBSS55KU.js +20 -0
- package/dist/m/c-YCLU4UNT.js +2 -0
- package/dist/m/c-YVZ2L7CE.js +1 -0
- package/dist/m/c-ZK4GIZH2.js +1 -0
- package/dist/m/c-ZRXJD4G6.js +1 -0
- package/dist/m/c-ZWBI4HYK.js +1 -0
- package/dist/m/{c-HT33EQRN.js → c-ZWIOJGMT.js} +1 -1
- package/dist/m/core/admin-attrs-YY7T5FGU.js +1 -0
- package/dist/m/core/autosave-S6OMNDCK.js +1 -0
- package/dist/m/core/conflict-notice-IWHMHH43.js +1 -0
- package/dist/m/core/host-permission-6EVJGNPL.js +1 -0
- package/dist/m/core/is-edit-mode-GCX6767E.js +1 -0
- package/dist/m/core/{persist-HKHA66IY.js → persist-UKXV5KLA.js} +1 -1
- package/dist/m/core/recovery-DRFZRJED.js +1 -0
- package/dist/m/core/save-LYY7K6U7.js +1 -0
- package/dist/m/core/save-core-MKRPSEEO.js +1 -0
- package/dist/m/core/snapshot-NU3YM6GR.js +1 -0
- package/dist/m/core/unsaved-warning-7QTKEN7Z.js +1 -0
- package/dist/m/events/index-RN2JNGBV.js +1 -0
- package/dist/m/internals/index-TGLQINN3.js +1 -0
- package/dist/m/lib/cache-bust-MUMFXZK6.js +1 -0
- package/dist/m/loader-3BBNZZGM.js +1 -0
- package/dist/m/manifest-F449FF98.js +1 -0
- package/dist/m/manifest-edit-4396A009.js +1 -0
- package/dist/m/manifest.json +2509 -1474
- package/dist/m/options/options-EJMS3K24.js +1 -0
- package/dist/m/page/editor-6LRB3GE4.js +304 -0
- package/dist/m/plugins/ai-edit-UTV7YO2I.js +6 -0
- package/dist/m/plugins/{cms-HP3LSTPN.js → cms-LRAOZHT7.js} +9 -9
- package/dist/m/plugins/demo-OYO5GCAO.js +1 -0
- package/dist/m/plugins/{derive-UAAA4V4S.js → derive-FRE5JJQE.js} +1 -1
- package/dist/m/plugins/indicator-4VDXWYTD.js +1 -0
- package/dist/m/plugins/live-AD4H6XSL.js +1 -0
- package/dist/m/plugins/menu-M5WW7DBF.js +1 -0
- package/dist/m/plugins/page-MD3T2ZX3.js +2 -0
- package/dist/m/plugins/page-view-PAWVZNFY.js +1 -0
- package/dist/m/plugins/people-JCHVPF7P.js +1 -0
- package/dist/m/plugins/quickcrop-BQ5YYFCH.js +26 -0
- package/dist/m/plugins/{richclay-RC3L2F6X.js → richclay-KLGETK77.js} +2 -2
- package/dist/m/plugins/sortable-4S6SQC3D.js +1 -0
- package/dist/m/plugins/source-TJXOIOYY.js +1 -0
- package/dist/m/plugins/undo-NLPGCJQY.js +1 -0
- package/dist/m/plugins/{unsent-HJFLQJ2O.js → unsent-OA4RGBUT.js} +1 -1
- package/dist/m/plugins/upgrade-HSUNDNJD.js +1 -0
- package/dist/m/plugins/upload-NHGJXZK2.js +1 -0
- package/dist/m/plugins/visitor-drafts-BW43DGY3.js +20 -0
- package/dist/m/plugins/visitor-drafts-owner-7ODQG7JX.js +1 -0
- package/dist/m/plugins/wire-VBWXEXU2.js +1 -0
- package/dist/m/reader-core-4W2KYEWQ.js +77 -0
- package/dist/m/route/route-62CHXL5B.js +1 -0
- package/dist/m/sync/live-sync-MO5DH33W.js +1 -0
- package/dist/m/ui/index-IVWN2QC4.js +1 -0
- package/dist/m/vendor/sap-core.vendor-RN4ZVY4X.js +6 -0
- package/dist/offline-manifest.json +1560 -889
- package/dist/page/themes/light-1.css +33 -8
- package/dist/server/core.cjs +1554 -311
- package/dist/server/offline-runtime.cjs +63 -63
- package/dist/server/offline-runtime.mjs +63 -63
- package/dist/server/page-compaction-worker.cjs +3710 -0
- package/dist/server/rooms.mjs +5 -0
- package/docs/guide.md +653 -101
- package/entries/sap.js +5 -5
- package/package.json +1 -1
- package/src/core/admin-contenteditable.js +5 -2
- package/src/core/admin-inputs.js +1 -0
- package/src/core/admin-onclick.js +2 -1
- package/src/core/boot-phase.js +2 -1
- package/src/core/conflict-download.js +3 -29
- package/src/core/conflict-notice-ui.js +4 -7
- package/src/core/download.js +32 -0
- package/src/core/host-meta.js +56 -0
- package/src/core/is-edit-mode.js +17 -1
- package/src/core/mode-key.js +125 -19
- package/src/core/mode-support.js +5 -0
- package/src/core/mode-transition.js +20 -6
- package/src/core/preserve-authored.js +4 -4
- package/src/core/recovery.js +121 -33
- package/src/core/save-accepted.js +33 -0
- package/src/core/save-core.js +111 -32
- package/src/core/save-job.js +108 -0
- package/src/core/save-prepare.js +53 -0
- package/src/core/save-size-notice.js +3 -1
- package/src/core/save-slices.js +15 -0
- package/src/core/save.js +557 -127
- package/src/core/serialize-steps.js +109 -0
- package/src/core/snapshot.js +209 -40
- package/src/core/source-map.js +83 -38
- package/src/core/stale-host-notice.js +1 -0
- package/src/core/upgrade-run.js +59 -8
- package/src/dom/active-element.js +5 -0
- package/src/lib/assets.js +1 -0
- package/src/lib/autosave-scheduler.js +3 -4
- package/src/lib/slice.js +65 -0
- package/src/lib/uimotion.js +774 -0
- package/src/lib/unsaved-state.js +2 -2
- package/src/live/fast-lane.js +10 -3
- package/src/live/local-lane.js +202 -11
- package/src/live/ops.js +16 -0
- package/src/live/page-compaction.js +162 -0
- package/src/live/server-lane.js +1 -0
- package/src/live/store.js +11 -3
- package/src/loader-logic.js +3 -1
- package/src/loader.js +14 -4
- package/src/page/adopt-boot.js +2 -1
- package/src/page/awareness.js +33 -2
- package/src/page/blocks.js +122 -27
- package/src/page/board-views.js +2 -16
- package/src/page/boot-pack.js +1 -1
- package/src/page/chart-tables.js +29 -0
- package/src/page/chart.js +411 -72
- package/src/page/checklist.js +10 -135
- package/src/page/checkpoint-proof.js +295 -0
- package/src/page/chrome.js +257 -40
- package/src/page/clipboard-shape.js +126 -0
- package/src/page/document-title-dom.js +12 -0
- package/src/page/document-title-runtime.js +15 -1
- package/src/page/document-title.js +4 -1
- package/src/page/drag.js +33 -3
- package/src/page/editor.js +207 -31
- package/src/page/emoji-data.js +162 -0
- package/src/page/export-assets.js +357 -0
- package/src/page/export-html.js +209 -0
- package/src/page/export-markdown.js +361 -0
- package/src/page/features/board.js +12 -3
- package/src/page/features/chart.js +11 -0
- package/src/page/features/checklist.js +428 -0
- package/src/page/features/dates.js +180 -0
- package/src/page/features/emoji.js +187 -0
- package/src/page/features/export-html.js +189 -0
- package/src/page/features/export-markdown.js +169 -0
- package/src/page/features/import-markdown.js +349 -0
- package/src/page/features/media.js +61 -5
- package/src/page/features/mentions.js +188 -0
- package/src/page/features/registry.js +24 -1
- package/src/page/features/table.js +375 -85
- package/src/page/features/title-cover.js +331 -0
- package/src/page/features/title-icon.js +213 -0
- package/src/page/features/toc.js +87 -0
- package/src/page/format-command.js +33 -0
- package/src/page/format-gate.js +68 -18
- package/src/page/format-host.js +71 -0
- package/src/page/format-native-commands.js +158 -0
- package/src/page/format-native.js +42 -0
- package/src/page/image-actions.js +64 -0
- package/src/page/import-markdown.js +262 -0
- package/src/page/inline.js +32 -8
- package/src/page/items.js +141 -11
- package/src/page/markdown.js +30 -2
- package/src/page/media.js +35 -119
- package/src/page/mention-picker.js +99 -0
- package/src/page/merge.js +1 -1
- package/src/page/placeholder.js +14 -1
- package/src/page/projection.js +156 -25
- package/src/page/recover.js +10 -12
- package/src/page/recovery-ui.js +464 -0
- package/src/page/rich/chart.js +63 -7
- package/src/page/save-projection.js +67 -0
- package/src/page/save-states.js +14 -4
- package/src/page/schema.js +52 -3
- package/src/page/table-paste.js +3 -1
- package/src/page/table-style.js +4 -4
- package/src/page/table.js +44 -2
- package/src/page/themes/content.css +25 -1
- package/src/page/themes/light-1.css +33 -8
- package/src/page/themes/light-1.source.css +8 -7
- package/src/page/toc-link.js +31 -0
- package/src/page/toc.js +5 -0
- package/src/page/view-hooks.js +58 -0
- package/src/page/view.js +13 -0
- package/src/page/ybind/binding.js +116 -6
- package/src/page/ybind/bridge.js +187 -20
- package/src/page/ybind/containment.js +162 -0
- package/src/page/ybind/doc.js +17 -9
- package/src/page/ybind/file-debt.js +63 -0
- package/src/page/ybind/layout.js +7 -2
- package/src/page/ybind/marks.js +2 -1
- package/src/page/ybind/moves.js +5 -4
- package/src/page/ybind/origins.js +106 -4
- package/src/page/ybind/parts.js +8 -1
- package/src/page/ybind/provider.js +125 -18
- package/src/page/ybind/recovery-proof.js +32 -9
- package/src/page/ybind/recovery-replay.js +905 -4
- package/src/page/ybind/recovery.js +174 -45
- package/src/page/ybind/table.js +67 -11
- package/src/page/ybind/walk-delta.js +258 -0
- package/src/page/ybind/walk.js +54 -29
- package/src/page/ybind/writer.js +1 -1
- package/src/plugins/ai-edit.js +13 -9
- package/src/plugins/indicator-chip.js +91 -0
- package/src/plugins/indicator.js +13 -80
- package/src/plugins/live.js +126 -15
- package/src/plugins/menu/actions.js +196 -0
- package/src/plugins/menu/people.js +279 -0
- package/src/plugins/menu/placement.js +121 -0
- package/src/plugins/menu/preferences.js +9 -0
- package/src/plugins/menu/seo.js +316 -397
- package/src/plugins/menu/style.js +171 -0
- package/src/plugins/menu/variants.js +296 -0
- package/src/plugins/menu.js +186 -183
- package/src/plugins/page-view.js +3 -2
- package/src/plugins/page.js +362 -43
- package/src/plugins/sortable.js +8 -1
- package/src/plugins/source.js +6 -0
- package/src/plugins/upgrade.js +51 -17
- package/src/plugins/upload-ui.js +12 -17
- package/src/plugins/visitor-drafts/bottom-ui.js +12 -4
- package/src/plugins/visitor-drafts/intro-style.js +7 -2
- package/src/plugins/visitor-drafts/intro.js +7 -4
- package/src/plugins/visitor-drafts/owner-chip.js +8 -12
- package/src/plugins/visitor-drafts/prompt.js +11 -9
- package/src/plugins/visitor-drafts/source.js +4 -3
- package/src/plugins/visitor-drafts/store.js +138 -9
- package/src/plugins/visitor-drafts/ui-memory.js +2 -2
- package/src/plugins/visitor-drafts-owner.js +4 -6
- package/src/plugins/visitor-drafts.js +5 -3
- package/src/recovery/store.js +1 -1
- package/src/route/route.js +4 -0
- package/src/server/checkpoint/index.js +2 -2
- package/src/server/rooms/index.js +5 -1
- package/src/server/rooms/live-data-rooms.js +302 -50
- package/src/server/rooms/page-compaction-worker.js +12 -0
- package/src/server/rooms/page-compactor.js +92 -0
- package/src/server/rooms/page-room-conformance.js +461 -0
- package/src/source/parse-steps.js +94 -0
- package/src/source/session.js +233 -57
- package/src/sync/editing-sender.js +12 -0
- package/src/sync/live-sync-edit.js +22 -2
- package/src/sync/live-sync.js +150 -23
- package/src/sync/page-relay.js +52 -0
- package/src/sync/presence-store.js +44 -4
- package/src/sync/presence.js +6 -3
- package/src/sync/saved-stream.js +28 -14
- package/src/ui/bevel-controls.js +1 -0
- package/src/ui/bevel-dialog.js +5 -2
- package/src/ui/editor-ui.js +77 -0
- package/src/ui/page-colour.js +281 -0
- package/src/ui/toast.js +16 -7
- package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
- package/src/vendor/hyper-undo.vendor.js +1 -1
- package/src/vendor/hypercms.vendor.js +9 -9
- package/src/vendor/parse5.vendor.js +2 -2
- package/src/vendor/sap-core.vendor.js +5 -5
- package/dist/m/attrs/refetch-on-save-NWPPXOCZ.js +0 -1
- package/dist/m/attrs/save-freeze-FUP4Q4X3.js +0 -1
- package/dist/m/c-2M73252O.js +0 -1
- package/dist/m/c-2SPVQSHC.js +0 -1
- package/dist/m/c-35NBGMZB.js +0 -1
- package/dist/m/c-3IQRECYS.js +0 -1
- package/dist/m/c-4B6H4G5V.js +0 -1
- package/dist/m/c-4FFHZM32.js +0 -1
- package/dist/m/c-4YSCRICO.js +0 -1
- package/dist/m/c-54RCDCBU.js +0 -1
- package/dist/m/c-5M4YEKCX.js +0 -4
- package/dist/m/c-5V3MOVJT.js +0 -1
- package/dist/m/c-66O32MV3.js +0 -28
- package/dist/m/c-6HMB24EV.js +0 -1
- package/dist/m/c-7O6AFR65.js +0 -1
- package/dist/m/c-ANQTJ3B5.js +0 -2
- package/dist/m/c-AYVOREBE.js +0 -1
- package/dist/m/c-B2ZXPOS3.js +0 -3
- package/dist/m/c-BMIZKMPV.js +0 -1
- package/dist/m/c-BTDI4Y23.js +0 -1
- package/dist/m/c-CJZSLMVQ.js +0 -1
- package/dist/m/c-DBE6ORSI.js +0 -1
- package/dist/m/c-EDHUR4MX.js +0 -1
- package/dist/m/c-EY6UOM54.js +0 -1
- package/dist/m/c-F3CKJTJS.js +0 -1
- package/dist/m/c-F7Y6FLPY.js +0 -1
- package/dist/m/c-FA4DZVTC.js +0 -1
- package/dist/m/c-G2BUZITR.js +0 -1
- package/dist/m/c-GB3JTV6E.js +0 -1
- package/dist/m/c-GBGWXTX4.js +0 -1
- package/dist/m/c-GHBCCVG4.js +0 -1
- package/dist/m/c-GJAEGGXY.js +0 -1
- package/dist/m/c-GOWBDM6J.js +0 -1
- package/dist/m/c-IB52R237.js +0 -1
- package/dist/m/c-IKWNE4R4.js +0 -1
- package/dist/m/c-IU3IYEU6.js +0 -1
- package/dist/m/c-IZ2EBRAJ.js +0 -1
- package/dist/m/c-KR4UW4KW.js +0 -1
- package/dist/m/c-KY3VJGUA.js +0 -8
- package/dist/m/c-LFPHCXY3.js +0 -1
- package/dist/m/c-LRPUO2MX.js +0 -1
- package/dist/m/c-LXENEBV7.js +0 -1
- package/dist/m/c-NMJRXKPC.js +0 -8
- package/dist/m/c-OIBUTDXI.js +0 -1
- package/dist/m/c-PPOSCAQD.js +0 -1
- package/dist/m/c-QIX5BJYN.js +0 -1
- package/dist/m/c-QQHEX6HA.js +0 -1
- package/dist/m/c-R7RMANJI.js +0 -9
- package/dist/m/c-RI4NT75Y.js +0 -1
- package/dist/m/c-RM7J7BV2.js +0 -1
- package/dist/m/c-RUJKSUQW.js +0 -1
- package/dist/m/c-SGCCC4FW.js +0 -25
- package/dist/m/c-T4VO4OCB.js +0 -1
- package/dist/m/c-TQEMVJCS.js +0 -1
- package/dist/m/c-TR6RMDQ7.js +0 -3
- package/dist/m/c-UKHTLWUW.js +0 -1
- package/dist/m/c-UNN7LWCT.js +0 -1
- package/dist/m/c-UXBMRDZB.js +0 -235
- package/dist/m/c-V7PZZRG7.js +0 -1
- package/dist/m/c-VL52ADDR.js +0 -1
- package/dist/m/c-WNYBLIOZ.js +0 -1
- package/dist/m/c-WWDBYXLK.js +0 -1
- package/dist/m/c-XNNW2CWK.js +0 -1
- package/dist/m/c-Y6USGTS5.js +0 -5
- package/dist/m/c-YG2NJYS6.js +0 -135
- package/dist/m/c-Z4VRC7GU.js +0 -7
- package/dist/m/c-Z6K52OLP.js +0 -19
- package/dist/m/c-ZDY2MDAA.js +0 -21
- package/dist/m/c-ZUCOKOHT.js +0 -1
- package/dist/m/core/admin-attrs-VGNLAUDK.js +0 -1
- package/dist/m/core/autosave-E4PEFPZ6.js +0 -1
- package/dist/m/core/conflict-notice-VQ6Y64PH.js +0 -1
- package/dist/m/core/host-permission-XN3K2IW3.js +0 -1
- package/dist/m/core/is-edit-mode-JXHDVGUL.js +0 -1
- package/dist/m/core/recovery-TBBSICE2.js +0 -1
- package/dist/m/core/save-WUCHTQBE.js +0 -1
- package/dist/m/core/save-core-FJVHT5M3.js +0 -1
- package/dist/m/core/snapshot-F3SWDZMM.js +0 -1
- package/dist/m/core/unsaved-warning-STKBHE6G.js +0 -1
- package/dist/m/events/index-23DPTUT4.js +0 -1
- package/dist/m/internals/index-WOVAP3RU.js +0 -1
- package/dist/m/lib/cache-bust-CGWT6ZJI.js +0 -1
- package/dist/m/loader-HXX6YNH5.js +0 -1
- package/dist/m/manifest-F22DEDAC.js +0 -1
- package/dist/m/manifest-edit-C3C7376B.js +0 -1
- package/dist/m/options/options-2LH76JQ3.js +0 -1
- package/dist/m/page/editor-XUTB2HB2.js +0 -189
- package/dist/m/plugins/ai-edit-ZQ4CGWIP.js +0 -6
- package/dist/m/plugins/demo-ZIBFAA3R.js +0 -1
- package/dist/m/plugins/indicator-PV4YW2ID.js +0 -1
- package/dist/m/plugins/live-NUTTXSBS.js +0 -1
- package/dist/m/plugins/menu-HCKO3DSP.js +0 -138
- package/dist/m/plugins/page-KSUH7G6J.js +0 -2
- package/dist/m/plugins/page-view-W73OW7WI.js +0 -1
- package/dist/m/plugins/people-AJJ32YCG.js +0 -1
- package/dist/m/plugins/quickcrop-QNY3PKLD.js +0 -26
- package/dist/m/plugins/sortable-YRMQX3ZU.js +0 -1
- package/dist/m/plugins/source-KHK5UUSK.js +0 -1
- package/dist/m/plugins/undo-OF2L3CXU.js +0 -1
- package/dist/m/plugins/upgrade-ZNYODP5Y.js +0 -1
- package/dist/m/plugins/upload-XSGNILUY.js +0 -1
- package/dist/m/plugins/visitor-drafts-XK5GW55Q.js +0 -21
- package/dist/m/plugins/visitor-drafts-owner-KSSH75EV.js +0 -1
- package/dist/m/plugins/wire-ZWVWKF76.js +0 -1
- package/dist/m/reader-core-ILWLXVMP.js +0 -68
- package/dist/m/route/route-KOCZSEGN.js +0 -1
- package/dist/m/sync/live-sync-4AUVXVJU.js +0 -1
- package/dist/m/ui/index-EVHKMKBL.js +0 -1
- package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +0 -6
- /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
- /package/dist/m/plugins/{quickcrop-QNY3PKLD.js.LEGAL.txt → quickcrop-BQ5YYFCH.js.LEGAL.txt} +0 -0
- /package/dist/m/plugins/{richclay-RC3L2F6X.js.LEGAL.txt → richclay-KLGETK77.js.LEGAL.txt} +0 -0
package/dist/m/c-R7RMANJI.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{a as Re}from"./c-TCCA5BZN.js";import{a as Q,b as Qe,c as et,d as tt,e as gt,f as mt,g as nt,h as wn,i as Be,j as yt,k as V,l as rt,m as Rt,n as ot,o as bn}from"./c-LRPUO2MX.js";import{b as Tt}from"./c-A7LS5UZW.js";import{d as qn}from"./c-5V3MOVJT.js";import{e as vn}from"./c-LZJPNR2W.js";import{E as Mt,J as yn,f as gn,q as mn}from"./c-CJZSLMVQ.js";import{a as Ot}from"./c-2SPVQSHC.js";import{e as cn,f as fn,g as dn,h as pn,i as hn}from"./c-B2ZXPOS3.js";import{a as Et}from"./c-TQEMVJCS.js";import{a as an,c as un}from"./c-3IQRECYS.js";import{e as ht,i as ln}from"./c-AYVOREBE.js";import{i as He}from"./c-7O6AFR65.js";import{i as sn}from"./c-35NBGMZB.js";var pr=/^[A-Za-z0-9_-]{1,64}$/,hr=/^[1-9]\d{0,15}$/;var $t=e=>hr.test(e)&&Number.isSafeInteger(Number(e));function Fe(...e){let t=new Map;for(let r of e)for(let[o,n]of r??[])t.has(o)||t.set(o,[]),t.get(o).push(...n.map(([i,a])=>[i,a]));return[...t].sort(([r],[o])=>r<o?-1:r>o?1:0).map(([r,o])=>{let n=[];for(let[i,a]of o.sort((d,m)=>d[0]-m[0])){let d=n[n.length-1];d&&i<=d[1]+1?d[1]=Math.max(d[1],a):n.push([i,a])}return[r,n]}).filter(([,r])=>r.length)}var Sn=e=>e.reduce((t,[,r])=>t+r.length,0),We=(e,t)=>!!e?.some(([r,o])=>r<=t&&t<=o),st=(e,t,r)=>We(e?.find(([o])=>o===t)?.[1],r),gr=([e,t])=>[[e,[[t,t]]]],vt=e=>e?.v===2?e.frames:e?[[e.client,[[1,e.n]]]]:[],kn=e=>e?.v===2?Fe(e.ancestors,gr(e.capture)):[];function An(e){if(!e)return[];let t=[],r=0;for(let o of e.split(";")){let n=o.split(":");if(n.length!==2||!pr.test(n[0])||!n[1])return null;let i=[];for(let a of n[1].split(",")){if(++r>256)return null;let d=a.split("-");if(d.length>2||!d.every($t))return null;let m=Number(d[0]),q=Number(d[1]??d[0]);if(q<m)return null;i.push([m,q])}t.push([n[0],i])}return Fe(t)}function xn(e){return Fe(e).map(([t,r])=>`${t}:${r.map(([o,n])=>o===n?String(o):`${o}-${n}`).join(",")}`).join(";")}function it(e){if(typeof e!="string"||e.length>32768)return null;if(!e.startsWith("v2|")){let a=/^([A-Za-z0-9_-]{1,64}):([1-9]\d{0,15})$/.exec(e);return a&&$t(a[2])?{client:a[1],n:Number(a[2])}:null}let t=e.split("|");if(t.length!==4)return null;let r=An(t[1]),o=An(t[2]),n=/^([A-Za-z0-9_-]{1,64}):([1-9]\d{0,15})$/.exec(t[3]);if(!r||!o||!n||!$t(n[2])||Sn(r)+Sn(o)+1>256)return null;let i=[n[1],Number(n[2])];return st(o,...i)?null:{v:2,frames:r,ancestors:o,capture:i}}function En(e){let t=`v2|${xn(e.frames)}|${xn(e.ancestors)}|${e.capture[0]}:${e.capture[1]}`;return it(t)?t:null}var mr=new Set(["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"]),yr=/^(0|[1-9]\d*)$/,Ne=e=>e!==null&&typeof e=="object",Ue=e=>Array.isArray(e)?"a list":"an object";function $e(e,t){let r=e;for(let o of t){if(!Ne(r))return;Array.isArray(r)?r=r[Number(o)]:r=Object.prototype.hasOwnProperty.call(r,o)?r[o]:void 0}return r}var wt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),vr=(e,t)=>V(e)===V(t);function On(e,t){let r=[];try{for(let o of t){let n=mt(e,o);n&&(r.push(n),e=n.root)}return r}catch{return Nt(r),null}}function Nt(e){let t;for(let r=e.length-1;r>=0;r--)t=nt(e[r]);return t}function wr(e,t,r){let o=[];for(let n of e){if(n.at===null||Array.isArray(n.at))return null;let i=o.find(a=>a.path.length===n.path.length&&Be(a.path,n.path));if(i){if(i.removed&&n.kind!=="remove")return null;n.kind==="remove"&&(i.removed=!0);continue}if(o.some(a=>Be(a.path,n.path)))return null;o.push({path:n.path,at:n.at,key:n.key,had:n.kind!=="add",old:n.old,removed:n.kind==="remove"})}for(let n of o){if(n.has=wt(n.at,n.key),n.had&&n.has&&n.removed||(n.into=$e(r,n.path.slice(0,-1)),!Ne(n.into)||Array.isArray(n.into)||wt(n.into,n.key)!==n.had))return null;let i=n.path.slice(0,-1);for(let a of t){let d=a.op.path;if(Be(n.path,d)||a.op.op==="del"&&d.length<=n.path.length&&Be(d.slice(0,-1),n.path)&&Array.isArray($e(r,d.slice(0,-1))))return null;if(!n.had&&n.has&&d.length>i.length&&Be(i,d)){let m=d[i.length];if(d.length===i.length+1&&a.op.op==="del"||!wt(n.at,String(m)))return null}}}return o}function br(e,t){if(t.op==="set"){let r=$e(e,t.path);if(Ne(r)&&Ne(t.value)&&Array.isArray(r)===Array.isArray(t.value)){yt(r,Q(t.value));return}}tt(e,t)}function It({name:e,value:t,ephemeral:r=!1}){if(!Ne(t))throw new TypeError(`clay.live("${e}"): the tag must hold a JSON object or list`);let o=Q(t),n=Q(t),i=!0,a=[],d=1,m=null,q="file",g=new Set,P=new Set,F=new Set,_=new Set,C=new Set,U=new WeakMap;function O(f,y){let v={source:f,ops:y};for(let k of[...g])try{k(v)}catch(L){console.error(`clay.live("${e}"): a change listener threw`,L)}}function B(){let f=Q(o),y=[];for(let v of a)try{et(f,v.op),f=tt(f,v.op),y.push(v)}catch{}a=y,yt(n,f),i=!0}function X(f){for(let y of[...F])try{y(f)}catch(v){console.error(`clay.live("${e}"): a rebase listener threw`,v)}}function T(f,{source:y="remote",confirmed:v=0,through:k,drop:L,dropIds:W,frame:ue=null,room:oe=null,cause:re=null}={}){if(!Ne(f)||Ue(f)!==Ue(n))return console.warn(`clay.live("${e}"): ignored an incoming value that is not ${Ue(n)}`),!1;let he=V(n),ge=o;if(o=Q(f),L)a=a.filter(te=>te.id<L[0]||te.id>L[1]);else if(W){let te=new Set(W);a=a.filter(we=>!te.has(we.id))}else a=k===void 0?a.slice(v):a.filter(te=>te.id>k);return B(),X({source:y,frame:ue,room:oe,cause:re,prev:ge,before:te=>$e(ge,te),next:o}),V(n)!==he&&O(y,null),!0}function ee(f){let y=Q(o);for(let v=f.length-1;v>=0;v--){let k=f[v];nt({...k,at:$e(y,k.path.slice(0,-1))})}return y}function w(f){for(let y of[...P])try{y(f)}catch(v){console.error(`clay.live("${e}"): a transport threw`,v)}O("local",f)}function J(f){let y=f.map(Qe);for(let v of y)if(v.path.length===0&&Ue(v.value)!==Ue(n))throw new TypeError(`clay.live("${e}"): the whole value must stay ${Ue(n)}`);y.length===1?et(n,y[0]):gt(Q(n),y);for(let v of y)br(n,v);a.push(...y.map(v=>({id:d++,op:v}))),m?m.push(...y):w(y)}function D(f,y){let v=U.get(f);v||U.set(f,v=new Map);let k=JSON.stringify(y),L=v.get(k);return L||(L=new Proxy(f,de(y)),v.set(k,L)),L}function de(f){return{get(y,v){if(Array.isArray(y)&&mr.has(v))return(...L)=>{let W=Q(y),ue=Array.prototype[v].apply(W,L);return J([{op:"set",path:f,value:W}]),ue===W?D(y,f):ue};let k=y[v];return typeof v=="symbol"||!Ne(k)||!Object.prototype.hasOwnProperty.call(y,v)?k:D(k,[...f,Array.isArray(y)?Number(v):v])},set(y,v,k){if(typeof v=="symbol")throw new TypeError(`clay.live("${e}"): symbol keys are not JSON`);if(Array.isArray(y)){if(v==="length"){let L=Q(y);return L.length=k,J([{op:"set",path:f,value:L}]),!0}if(!yr.test(v))throw new TypeError(`clay.live("${e}"): "${v}" is not a list index`);return J([{op:"set",path:[...f,Number(v)],value:k}]),!0}return J([{op:"set",path:[...f,v],value:k}]),!0},deleteProperty(y,v){if(typeof v=="symbol")return!0;if(Array.isArray(y))throw new TypeError(`clay.live("${e}"): remove a list item with splice`);return J([{op:"del",path:[...f,v]}]),!0},defineProperty(){throw new TypeError(`clay.live("${e}"): assign values instead of defining properties`)},setPrototypeOf(){return!1},preventExtensions(){return!1}}}let Y=D(n,[]),ae,pe=new Promise(f=>{ae=f}),z=Object.freeze({name:e,ephemeral:r,ready:pe,get data(){return Y},get status(){return{mode:q}},set(f,y){J([{op:"set",path:f,value:y}])},delete(f){J([{op:"del",path:f}])},add(f,y=1){J([{op:"add",path:f,n:y}])},update(f){if(typeof f!="function")throw new TypeError(`clay.live("${e}"): update() takes a function`);if(m)return f(Y);m=[];let y=a.length,v=d,k;try{if(k=f(Y),k&&typeof k.then=="function")throw new TypeError(`clay.live("${e}"): update() runs synchronously; do async work before calling it`)}catch(W){throw m=null,a.length=y,d=v,B(),W}let L=wn(m);return m=null,a.length=y,d=v,a.push(...L.map(W=>({id:d++,op:W}))),L.length&&w(L),k},on(f,y){if(f!=="change")throw new TypeError(`clay.live("${e}"): the only event is "change"`);if(typeof y!="function")throw new TypeError(`clay.live("${e}"): on() takes a function`);return g.add(y),()=>g.delete(y)},off(f,y){g.delete(y)},toJSON(){return Q(n)}});return ae(z),{handle:z,name:e,ephemeral:r,get value(){return n},get authoritative(){return o},get pending(){return a.map(f=>f.op)},pendingEntries(){return a.map(f=>({id:f.id,op:f.op}))},get mark(){return d-1},setMode(f){q=f},onLocal(f){return P.add(f),()=>P.delete(f)},confirm(f){let y=a.filter(v=>v.id<=f);if(y.length){try{o=gt(Q(o),y.map(v=>v.op))}catch{o=Q(n),i=!1}a=a.filter(v=>v.id>f);for(let v of[..._])try{v({through:f})}catch(k){console.error(`clay.live("${e}"): a confirmation listener threw`,k)}}},onConfirm(f){return _.add(f),()=>_.delete(f)},rebase:T,checkOps(f){let y;try{y=f.map(Qe)}catch{return null}let v=On(o,y);return v?(Nt(v),y):null},rebaseOps(f,{source:y="remote",confirmed:v=0,through:k,frame:L=null,room:W=null,cause:ue=null}={}){let oe=On(o,f);if(!oe)return!1;let re=k===void 0?a.slice(v):a.filter($=>$.id>k),he=a.length-re.length,ge=oe.some($=>$.at===null),te=i&&!ge&&he===f.length&&f.every(($,Z)=>vr($,a[Z].op)),we=i&&!te&&he===0?wr(oe,re,n):null;if(!te&&!we)return Nt(oe),T(gt(Q(o),f),{source:y,confirmed:v,through:k,frame:L,room:W,cause:ue});a=re;let Ce=!1;for(let $ of we??[]){let Z=$.into;if($.has){let je=$.at[$.key];(!$.had||V($.old)!==V(je))&&(Ce=!0);let s=$.had?Z[$.key]:void 0,p=Q(je),A=Ne(s)&&Ne(p)&&Array.isArray(s)===Array.isArray(p);Object.defineProperty(Z,$.key,{value:A?yt(s,p):p,enumerable:!0,writable:!0,configurable:!0})}else $.had&&(Ce=!0,delete Z[$.key])}let be=null,Oe=()=>be??=ee(oe),ce=oe.some($=>Array.isArray($.at)&&$.kind!=="put");return X({source:y,frame:L,room:W,cause:ue,get prev(){return Oe()},before:$=>{if(ce)return $e(Oe(),$);for(let Z of oe)if(Be(Z.path,$))return Z.path.length>$.length?$e(Oe(),$):$e(Z.old,$.slice(Z.path.length));return $e(o,$)},next:o}),Ce&&O(y,null),!0},onRebase(f){return F.add(f),()=>F.delete(f)},onDelivery(f){return C.add(f),()=>C.delete(f)},deliver(f){for(let y of[...C])try{y(f)}catch(v){console.error(`clay.live("${e}"): a delivery listener threw`,v)}}}}function Mn({needsSave:e,blocked:t,save:r,saveNow:o,now:n=()=>Date.now(),setTimer:i=setTimeout,clearTimer:a=clearTimeout}){let d=null,m=null,q=!1,g=!1,P=0;function F(O){let B=O&&!O.ok&&O.msgType==="skipped";return P=O?.ok||B?0:n()+8e3,B?1e3:8e3}function _(O){d=O,m!==null&&a(m),m=i(U,Math.max(0,O-n()))}function C(){m!==null&&a(m),m=null,d=null}async function U(){if(m=null,d=null,!e())return;if(t()){_(n()+1e3);return}q=!0;let O=null;try{O=await r()}catch{O=null}finally{q=!1}let B=F(O);e()&&_(n()+B)}return{changed(){d===null&&!q&&_(n()+8e3)},flush(){q||!e()||t()||(C(),q=!0,g=!0,Promise.resolve().then(o).catch(()=>null).then(O=>{q=!1,g=!1;let B=F(O);e()&&_(n()+B)}))},soon(){if(q)return;let O=Math.max(n(),P);(d===null||O<d)&&_(O)},within(O){if(q)return;let B=Math.max(n()+O,P);(d===null||B<d)&&_(B)},get flushing(){return g},get deadline(){return d}}}var qr=40,Tn=128,lt=500,Sr=1e4,Ar=63*1024,Rn=15*1024,xr=/^page(\.[0-9]+)?$/,kr=512,_t=8e3,Er=new Set([401,403]),Or=new Set([401,403,404]),Mr=new TextEncoder,bt=e=>Mr.encode(JSON.stringify(e)).length,$n=e=>e===0||e===408||e===429||e>=500,Nn=e=>e===429||e===503;function Pt({transport:e,entries:t,onEpoch:r=()=>{},onLeave:o=()=>{},onWriter:n=()=>{},onApplied:i=()=>{},onLanded:a=()=>{},onCheckpoint:d=()=>{},held:m=()=>!1,heldIds:q=()=>[],hold:g=()=>!0,taken:P=()=>{},onStop:F=()=>{},now:_=()=>Date.now(),setTimer:C=setTimeout,clearTimer:U=clearTimeout}){let O=null,B=!1,X=!1,T=null,ee=null,w=null,J=0,D=0,de=null,Y=new Set,ae=[],pe=!1,z=!1,f=!1,y=null,v=-1/0,k=0,L=null,W=null,ue=lt,oe=Ar,re=lt,he=0,ge,te=0,we=!1,Ce=0,be=!1,Oe=null,ce=new Map,Me=new Set,$=(l,c)=>t.get(l)?.store.deliver?.({code:null,n:null,seq:null,through:null,retryAfter:null,client:O,...c});function Z(l){let c=ce.get(l);return c||ce.set(l,c={n:0,unsent:[],awaiting:[],framed:0}),c}function je(l,c){!l.adopted||c.through<l.adopted.through||(c.adopted=l.adopted.rev,l.adopted=null)}function s(l,c){let u=t.get(l)?.store;return u?u.pendingEntries().filter(h=>h.id>c.framed):[]}function p(l,c){let u=t.get(l)?.store;if(!u)return;let h=new Set(u.pendingEntries().map(S=>S.id));c.awaiting=c.awaiting.filter(S=>S===y||!S.entries||S.entries.some(x=>h.has(x.id)))}let A=l=>l.refused===!0&&!l.uncertain;function M(l,c,u=!0){let h=t.get(l)?.store;for(let S of c.awaiting)S===y&&(S.undecided=!0);u&&(be=!0),c.out=!0,o(l,{epoch:T,seq:D}),c.unsent=[],h?.setMode("file"),i()}function b(){if(L!==null||f||z)return;let l=_(),c=Math.max(0,v+qr-l,k-l);L=C(()=>{L=null,se()},c)}function N(){for(let[l,c]of ce){if(!Y.has(l)||m(l))continue;let u=c.awaiting.find(h=>!h.sent);if(u)return{name:l,lane:c,frame:u}}for(let[l,c]of ce){if(!c.unsent.length||!Y.has(l)||m(l))continue;let u=bt({name:l,n:c.n+1,ops:[],epoch:T}),h=0;for(;h<c.unsent.length&&h<Tn;){let I=bt(c.unsent[h].op)+1;if(h&&u+I>oe)break;u+=I,h++}let S=c.unsent.splice(0,h),x={n:++c.n,ops:S.map(I=>I.op),entries:S,first:S[0].id,through:S[S.length-1].id,seq:null,sent:!1,receiptGeneration:ee,pageGeneration:w};return je(c,x),c.framed=Math.max(c.framed,x.through),c.awaiting.push(x),{name:l,lane:c,frame:x}}return null}async function se(){if(f||z||!B||!X||ge===null)return;let l=N();if(!l)return;let{name:c,lane:u,frame:h}=l;ce.delete(c),ce.set(c,u);let S=T;h.epoch=S,h.client=O,h.sentOn=he,h.sent=!0,$(c,{phase:"sent",n:h.n,first:h.first,through:h.through}),h.refused=!1,f=!0,y=h,v=_();let x;try{x=await e.send(O,{name:c,n:h.n,ops:h.ops,epoch:S,...ge!==void 0&&{conn:ge},...h.receiptGeneration!==null&&{receiptGeneration:h.receiptGeneration},...h.pageGeneration!==null&&xr.test(c)&&{pageGeneration:h.pageGeneration},...h.adopted&&{adopted:h.adopted}})}catch{x=null}f=!1,y=null,!z&&(h.undecided?xe(c,u,h,x||{status:0}):S===T&&u.awaiting.includes(h)&&De(c,u,h,x||{status:0}),b())}function xe(l,c,u,{status:h,body:S}){if(delete u.undecided,!c.awaiting.includes(u))return;if((S?.stale===!0||Nn(h)||h>=400&&h<500&&!$n(h))&&!u.uncertain){u.refused=!0,u.sent=!1,u.seq=null,u.epoch!==T&&(u.receiptGeneration=ee),u.epoch!==T&&(u.pageGeneration=w);return}if(!Y.has(l)){h>=200&&h<300&&Number.isInteger(S?.seq)&&!S?.stale?u.seq=S.seq:(u.uncertain=!0,u.uncertainSince??=u.sentOn);return}c.awaiting.splice(c.awaiting.indexOf(u),1);let I=t.get(l)?.store;I?.rebase(I.authoritative,{source:"state",through:u.through,cause:"decided"})}function Ve(){for(let[l,c]of ce){if(!Y.has(l))continue;let u;for(;c.awaiting.length&&c.awaiting[0].seq!==null&&c.awaiting[0].seq<=D;)u=c.awaiting.shift().through;if(u===void 0)continue;let h=t.get(l)?.store;h?.rebase(h.authoritative,{source:"state",through:u,cause:"settled"})}}function De(l,c,u,{status:h,body:S,retryAfter:x}){if(h>=200&&h<300){if(ue=lt,S?.stale){u.sent=!1,u.refused=!0,S.epoch!==T?ne():b();return}if(S?.epoch&&S.epoch!==T){ne();return}u.seq=Number.isInteger(S?.seq)?S.seq:null,$(l,{phase:"landed",n:u.n,seq:u.seq,through:u.through}),Ve();return}if($n(h)){if(u.sent=!1,$(l,{phase:"retry",code:S?.code??(h===0?"offline":h===429?"rate-limited":"server"),n:u.n,through:u.through,retryAfter:x??null}),Nn(h)?u.refused=!0:(u.uncertain=!0,u.uncertainSince??=u.sentOn),h===503&&S?.code==="not-connected"){ge=null,ne();return}if(h===503&&S?.code==="busy"){$(l,{phase:"left",code:"busy",n:u.n,through:u.through}),console.warn(`clay.live("${l}"): the room is full, so it stays at save speed for now`),Y.delete(l),M(l,c),C(ne,(x>0?x:60)*1e3);return}if(u.uncertain&&u.sentOn!==he){ne();return}k=_()+(x>0?x*1e3:ue),ue=Math.min(ue*2,_t);return}if(Er.has(h)){$(l,{phase:"refused",code:"revoked",n:u.n,through:u.through}),u.uncertain||(u.refused=!0),kt();return}let I=S?.error||S?.code||`status ${h}`;if(h===404){$(l,{phase:"left",code:"no-store",n:u.n,through:u.through}),console.warn(`clay.live("${l}"): the room has no such store, so it stays at save speed (${I})`),u.refused=!0,Y.delete(l),M(l,c,!1);return}if(c.awaiting.splice(c.awaiting.indexOf(u),1),h===413&&!S?.code&&u.entries?.length>1&&oe>Rn){oe=Rn,console.warn(`clay.live("${l}"): the host takes smaller updates, so they go in frames of ${oe} bytes`),c.unsent.unshift(...u.entries),u.adopted&&(c.adopted={rev:u.adopted,through:u.through}),c.framed=u.first-1;return}let G=t.get(l)?.store,me=S?.code??(h===413&&u.entries?.length===1?"too-large":"refused");$(l,{phase:"refused",code:me,n:u.n,from:u.first,through:u.through,...S?.code==="receipt-expired"&&{ops:u.ops}}),console.warn(`clay.live("${l}"): the host refused an update, so it was undone (${I})`),G?.rebase(G.authoritative,{source:"state",drop:u.first===void 0?void 0:[u.first,u.through],through:u.first===void 0?u.through:void 0,cause:"refused"}),S?.code==="receipt-expired"&&ne()}function pt(l){D=l.seq;let c=t.get(l.name)?.store;if(!c||Me.has(l.name))return;if(!Y.has(l.name)){be=!0;return}let u=c.checkOps(l.ops);if(!u){ne();return}let h,S=l.from===O;if(S){let x=Z(l.name),I=x.awaiting.findIndex(G=>G.n===l.n);I>=0&&(h=x.awaiting[I].through,$(l.name,{phase:"echoed",n:l.n,seq:l.seq,through:h}),x.awaiting.splice(0,I+1))}c.rebaseOps(u,{source:S?"state":"remote",through:h,frame:{seq:l.seq,from:l.from,n:l.n,ops:l.ops}}),t.get(l.name).last=l.seq,i(),l.checkpoint===!0&&d(),Ve()}function Xe(l){if(!(z||!l||!Number.isInteger(l.seq))){if(!X){ae.push(l),ae.length>kr&&ae.shift();return}if(l.epoch!==T){ae.push(l),ne();return}if(!(l.seq<=D)){if(l.seq!==D+1){ae.push(l),ne();return}pt(l)}}}function ke(l,c){let u=c.seen?c.seen[O]??0:null,h=[],S=[];for(let x of l)u!==null&&x.n<=u||We(c.saved,x.n)?S.push(...x.entries.map(I=>I.id)):x.sent&&x===y?(x.undecided=!0,h.push(x)):A(x)?h.push(x):S.push(...x.entries.map(I=>I.id));return{resend:h,dropIds:S}}function Ge(l,c,u,h){let S=q(l);if(!S.length)return!1;if(!h){let x=new Set;for(let I of c.awaiting)if(We(u.saved,I.n))for(let G of I.entries??[])x.add(G.id);if(S.every(I=>x.has(I)))return!1}return g(l,S)?!0:(p(l,c),!1)}function en(l,c=0){if(z||!l||typeof l.epoch!="string")return;if(te++,l.epoch===T&&Number.isInteger(l.seq)&&l.seq<D){tn();return}let u=l.epoch!==T;J=Number.isInteger(l.provenanceVersion)?l.provenanceVersion:0,ee=Number.isSafeInteger(l.receiptGeneration)?l.receiptGeneration:null;let h=w;w=typeof l.pageTransition?.id=="string"?l.pageTransition.id:null;let S=w!==h,x=!1;be=!1,T=l.epoch,D=Number.isInteger(l.seq)?l.seq:0,de=l.writer??null,"conn"in l&&(ge=l.conn);let I=l.stores||{};Y=new Set(Object.keys(I));for(let H of Me)Y.delete(H);let G=!1,me=!1;for(let[H,ye]of t){if(Me.has(H))continue;let K=I[H],j=Z(H);p(H,j);let fr=j.room;if(j.room=!!K,!K){j.out||(fr&&S&&$(H,{phase:"left",code:"no-store"}),M(H,j,!1)),j.after!==void 0&&c>=j.after&&(j.after=void 0,j.deferred=!1,P(H));continue}let nn=j.after!==void 0&&c<j.after;if(nn||Ge(H,j,K,u||j.stale===!0)){Y.delete(H),j.deferred=!0,u&&(j.stale=!0),nn&&(me=!0),G=!0;continue}let rn=u||j.stale===!0;j.deferred=!1,j.stale=!1,j.after=void 0;let dr=ye.store.handle.status.mode==="file";j.out=!1,ye.store.setMode("fast"),ye.last=Number.isInteger(K.last)?K.last:0,ye.landed=Number.isInteger(K.landed)?K.landed:0;let on=[];if(!rn&&ee!==null){let Te=K.seen?.[O];j.awaiting=j.awaiting.filter(ie=>We(K.saved,ie.n)||Te!==void 0&&ie.n<=Te||ie.seq!==null&&ie.seq<=D||(ie.receiptGeneration??0)===ee?!0:(on.push(...ie.entries.map(le=>le.id)),$(H,{phase:"refused",code:"receipt-expired",n:ie.n,from:ie.first,through:ie.through,ops:ie.ops}),console.warn(`clay.live("${H}"): the room retired an update receipt, so the update was not replayed. Check the saved value before restoring it.`),!1))}if(rn){let{resend:Te,dropIds:ie}=ke(j.awaiting,K);for(let qe of Te)qe.undecided||(qe.sent=!1,qe.seq=null,qe.receiptGeneration=ee,qe.pageGeneration=w);j.awaiting=Te,ye.store.rebase(K.value,{source:"state",dropIds:ie,room:{seq:D,fresh:!0,moves:l.moves?.[H]??null,floor:Number.isInteger(K.floor)?K.floor:null}}),j.unsent=s(H,j)}else{let Te=K.seen?K.seen[O]:void 0,ie=[],qe=[...on];for(let le of j.awaiting)We(K.saved,le.n)?qe.push(...le.entries.map(Ze=>Ze.id)):le===y?ie.push(le):le.seq!==null&&le.seq<=D||Te!==void 0&&le.n<=Te?qe.push(...le.entries.map(Ze=>Ze.id)):le.seq!==null?ie.push(le):!le.uncertain||Te!==void 0||le.uncertainSince===he?(le.sent=!1,ie.push(le)):qe.push(...le.entries.map(Ze=>Ze.id));j.awaiting=ie,ye.store.rebase(K.value,{source:"state",dropIds:qe,room:{seq:D,fresh:!1,moves:l.moves?.[H]??null,floor:Number.isInteger(K.floor)?K.floor:null}}),dr&&(j.unsent=s(H,j),x=!0)}P(H)}G&&(be=!0),(u||x)&&r(T),i(),n(),tn(),me&&ne()}function tn(){X=!0;let l=ae.filter(c=>c.epoch===T&&c.seq>D).sort((c,u)=>c.seq-u.seq);ae=[];for(let c of l)Xe(c);b()}async function ne(){if(z)return;if(pe){we=!0;return}pe=!0,we=!1,X=!1;let l={connection:he,stateCount:te,read:++Ce},c=null,u=typeof AbortController=="function"?new AbortController:null,h=new Promise(S=>{W=C(()=>{W=null,u?.abort(),S(null)},Sr)});try{c=await Promise.race([e.fetchState(O,T!==null&&D>0&&!be?{epoch:T,seq:D}:null,u?{signal:u.signal}:{}),h])}catch{}if(W!==null&&U(W),W=null,pe=!1,!z){if(l.connection!==he||we){B&&ne();return}if(l.stateCount!==te){if(X)return;c=null}if(c&&typeof c.epoch=="string"){re=lt,en(c,l.read);return}if(c&&Or.has(c.status)){kt();return}if(c&&c.status===503){let S=c.code==="busy";for(let[x,I]of t)I.store.handle.status.mode==="fast"&&($(x,{phase:"left",code:S?"busy":"unavailable"}),console.warn(`clay.live("${x}"): the host has no room for this document now, so it stays at save speed for now`),M(x,Z(x)));if(Y=new Set,!B)return;S||c.retryAfter>0?(re=lt,C(ne,(c.retryAfter>0?c.retryAfter:60)*1e3)):(C(ne,re),re=Math.min(re*2,_t));return}B&&(C(ne,re),re=Math.min(re*2,_t))}}function kt(){if(!z){z=!0,L!==null&&U(L),L=null,W!==null&&U(W),W=null,Oe?.();for(let[l,c]of t){let u=ce.get(l);u?.out||(u?M(l,u):(o(l,{epoch:T,seq:D}),c.store.setMode("file")))}F()}}let cr={open(l){O=l.clientId,B=!0,he++,ne()},close(){B=!1,he++,X=!1,ae=[]},frame:Xe,state(l){be&&l&&!("moves"in l)?ne():en(l)},writer(l){if(!(!l||l.epoch!==T)){if(de=l.writer??null,l.landed&&typeof l.landed=="object"){te++;for(let[c,u]of Object.entries(l.landed)){let h=t.get(c);h&&Number.isInteger(u)&&(h.landed=u,$(c,{phase:"checkpointed",seq:u}))}a()}n()}}};return{start(){!Oe&&!z&&(Oe=e.start(cr))},local(l,c,u){if(z||T===null||!Y.has(l))return;let h=Z(l),S=u-c.length+1;c.forEach((x,I)=>h.unsent.push({id:S+I,op:x})),b()},abandon(l){if(Me.has(l))return;Me.add(l),Y.delete(l);let c=Z(l);c.awaiting=c.awaiting.filter(u=>u===y),c.unsent=[],c.adopted=null},adopted(l,c,u){if(z||!Y.has(l))return;let h=Z(l),S=h.awaiting.find(x=>!x.sent&&x.through>=u);S?S.adopted=c:h.adopted={rev:c,through:u}},release(l,{read:c=!1}={}){if(z)return;let u=Z(l);if(u.deferred||c){u.after=Ce+1,T!==null&&B&&ne();return}T!==null&&Y.has(l)&&(p(l,u),u.unsent=s(l,u),b())},framed(l){return ce.get(l)?.n??0},pendingFrames(l,c,{reserve:u=!1}={}){let h=ce.get(l);if(u&&h&&O&&T===c?.epoch){let G=s(l,h);for(;G.length;){let me=bt({name:l,n:h.n+1,ops:[],epoch:T}),H=0;for(;H<G.length&&H<Tn;){let j=bt(G[H].op)+1;if(H&&me+j>oe)break;me+=j,H++}let ye=G.splice(0,H),K={n:++h.n,ops:ye.map(j=>j.op),entries:ye,first:ye[0].id,through:ye[ye.length-1].id,seq:null,sent:!1,refused:!0,epoch:T,client:O,receiptGeneration:ee,pageGeneration:w};je(h,K),h.awaiting.push(K),h.framed=K.through}h.unsent=[]}let S=new Set(t.get(l)?.store.pendingEntries().map(G=>G.id)??[]),x=[],I=!0;for(let G of h?.awaiting??[]){let me=G.entries.filter(H=>S.has(H.id));if(me.length){if(me.length!==G.entries.length||G.epoch!==c?.epoch||!G.client){I=!1;continue}x=Fe(x,[[G.client,[[G.n,G.n]]]])}}return{frames:x,complete:I}},captured(l,c,u){let h=ce.get(l);if(!h||!c||c.epoch!==T)return[];let S=vt(u),x=[];return h.awaiting=h.awaiting.filter(I=>{let G=I.epoch===c.epoch&&(st(S,I.client,I.n)||I.seq!==null&&I.seq<=c.seq);return G&&x.push(...I.entries.map(me=>me.id)),!G}),x},refresh(){T!==null&&B&&ne()},storeOpened(){T!==null&&B&&ne()},roomBound(l){return!z&&ce.get(l)?.room===!0},isWriter(){return de!==null&&de===O},get status(){return{connected:B,synced:X,epoch:T,seq:D,writer:de,clientId:O,stopped:z,provenanceVersion:J,receiptGeneration:ee}},stop:kt}}var Je=[0,1e4,3e4],Tr=6e3,Rr=2;async function $r(e){let t=globalThis.crypto&&globalThis.crypto.subtle;if(!t)return null;try{let r=new TextEncoder().encode(String(e)),o=await t.digest("SHA-256",r),n=new Uint8Array(o),i="";for(let a=0;a<n.length;a+=1)i+=n[a].toString(16).padStart(2,"0");return i}catch{return null}}function Nr(e){let t=[];for(let r of e||[]){let o=r&&r.saveId;if(typeof o=="string"&&o&&!t.includes(o)&&t.push(o),t.length>=Rr)break}return t}function Ir(e,t,r){return!!(e&&typeof e=="object"&&e.saveId===t&&e.requestHash===r&&e.status==="applied")}function In({query:e,digest:t=$r,now:r=()=>Date.now(),setTimer:o=setTimeout,clearTimer:n=clearTimeout}={}){function i({captureId:a,html:d,attempts:m,initialOutcome:q,startedAt:g,onApplied:P,onUnknown:F}){let _=g+45e3,C=Nr(m),U=new Set,O=new Set,B=d,X=null,T=!1;function ee(f,y){try{typeof f=="function"&&f(y)}catch(v){console.error("clayjs: save-history callback failed:",v)}}function w(){T=!0,B=null;for(let f of U)n(f);U.clear();for(let f of O)f.abort();O.clear()}function J(f,y){T||(w(),ee(P,{captureId:a,saveId:f,requestHash:y}))}function D(f){T||(w(),ee(F,{captureId:a,reason:f}))}function de(f,y){let v=null;return v=o(()=>{v!==null&&U.delete(v),f()},Math.max(0,y)),U.add(v),v}function Y(f){f!==null&&(n(f),U.delete(f))}async function ae(f){if(T)return;let y=_-r();if(y<=0)return;let v=new AbortController;O.add(v);let k=de(()=>v.abort(),Math.min(Tr,y)),L=null;try{L=await e({saveId:f,requestHash:X,signal:v.signal})}catch{L=null}finally{Y(k),O.delete(v)}T||Ir(L,f,X)&&J(f,X)}function pe(){if(!T&&!(r()>=_))for(let f of C)ae(f)}async function z(){let f=null;try{f=await t(B)}catch{f=null}if(B=null,T)return;if(typeof f!="string"||!f){D("unavailable");return}if(X=f,q&&typeof q=="object"&&q.status==="applied"&&q.requestHash===X&&C.includes(q.saveId)){J(q.saveId,X);return}let y=r()-g;if(y>=45e3){D("expired");return}let v=-1;for(let k=0;k<Je.length;k+=1)Je[k]<=y&&(v=k);if(v<0){for(let k=0;k<Je.length;k+=1)de(pe,g+Je[k]-r());return}pe();for(let k=v+1;k<Je.length;k+=1)de(pe,g+Je[k]-r())}return de(()=>D("expired"),_-r()),z(),{cancel(){w()}}}return{start:i}}var _r="/_/sync/data";function Pn(){return new URL(_r,window.location.origin)}async function Pr(e,t){let r=Pn();r.searchParams.set("client-id",e);try{let o=await fetch(r.href,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","Document-URL":window.location.href,[Et]:String(1)},body:JSON.stringify(t)}),n=null;try{n=await o.json()}catch{}let i=Number(o.headers?.get?.("Retry-After"))||0;return{status:o.status,body:n,retryAfter:i}}catch{return{status:0,body:null,retryAfter:0}}}async function Cr(e,t=null,{signal:r}={}){let o=Pn();e&&o.searchParams.set("client-id",e),t&&typeof t.epoch=="string"&&Number.isInteger(t.seq)&&o.searchParams.set("since",`${t.epoch}:${t.seq}`);try{let n=await fetch(o.href,{credentials:"same-origin",cache:"no-store",headers:{"Document-URL":window.location.href,[Et]:String(1)},signal:r});if(!n.ok){let a=null;try{a=await n.json()}catch{}return{status:n.status,code:a?.code??null,retryAfter:Number(n.headers?.get?.("Retry-After"))||0}}let i=await n.json();return i&&typeof i.epoch=="string"&&i.conn===null?null:i}catch{return null}}function Cn(){return{start(e){return vn({open(t){t.lane==="live"&&e.open(t)},close:()=>e.close(),event(t,r){t==="data"?e.frame(r):t==="data-state"?e.state(r):t==="data-writer"&&e.writer(r)}})},send:Pr,fetchState:Cr}}function Ln(e,t){return!t||!Number.isInteger(t.seq)?null:t.seq>=(e.last??0)?[]:t.seq<(e.floor??0)?null:e.log.filter(r=>r.seq>t.seq).map(r=>({seq:r.seq,ops:r.ops}))}var Lr=4,jr=2e3,Br=500,Fr=1024,Dr=256*1024;function jn(e,t){let r=[],o=()=>{for(let n=r.length-1;n>=0;n--)nt(r[n])};try{for(let n of t){let i=mt(e,n);i&&(r.push(i),e=i.root)}}catch(n){throw o(),n}return{value:e,undo:o}}var Gr=new TextEncoder,Bn="page-format:1";function Dn(){return typeof BroadcastChannel=="function"&&typeof navigator<"u"&&typeof navigator.locks?.request=="function"}function Fn(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}function Gn({seed:e,key:t="clay-live:"+window.location.pathname,channel:r=null,floor:o=0}){let n=Fn(),i=o>=1?1:0,a=i?`${t}:${Bn}`:t,d=null,m=null,q=null,g=null,P=!1,F=null,_=!1,C=null,U=0,O=0,B=new Map,X=new Map,T=new Set,ee=new Map,w={epoch:null,seq:0,sequencer:null,closedBy:null,stale:!1,seen:new Map,stores:new Map};function J(s){d?.post(s)}function D(s,p){for(p.bytes=Gr.encode(JSON.stringify(p.ops)).length,s.log.push(p),s.logBytes+=p.bytes;s.log.length>Fr||s.logBytes>Dr;){let A=s.log.shift();s.logBytes-=A.bytes,s.floor=A.seq}}function de(s){let p=w.stores.get(s.name);p&&(p.value=jn(p.value,s.ops).value,p.last=s.seq,p.ephemeral||D(p,{seq:s.seq,ops:s.ops})),w.seq=s.seq;let A=s.name+`
|
|
2
|
-
`+s.from;(w.seen.get(A)??0)<s.n&&w.seen.set(A,s.n)}function Y(s){let p={};for(let[A,M]of w.seen){let b=A.indexOf(`
|
|
3
|
-
`);A.slice(0,b)===s&&(p[A.slice(b+1)]=M)}return p}let ae=s=>s.behind||s.landed===null?-1:s.landed;function pe(s){let p={},A={};for(let[b,N]of w.stores)p[b]={value:Q(N.value),ephemeral:N.ephemeral,seen:Y(b),last:N.last,landed:ae(N)},A[b]={log:N.log,last:N.last,landed:N.landed,floor:N.floor,behind:N.behind,file:N.file,inFile:N.inFile};let M={epoch:g.epoch,seq:g.seq,writer:n,stores:p,mirror:{seen:[...w.seen],stores:A}};if(s!==void 0){let b=s&&s.epoch===w.epoch&&Number.isInteger(s.seq)?s.seq:0,N={};for(let[se,xe]of w.stores)N[se]=Ln(xe,{seq:b});M.moves=N}return M}function z(s,p){return s?.file?p.seq!=null&&s.file.seq!=null?p.seq<=s.file.seq:s.file.hash===rt(V(Re(p.text))):!1}function f(){for(let[s,p]of ee)try{z(w.stores.get(s),p)&&ee.delete(s)}catch{ee.delete(s)}}function y(s){if(g||!s||typeof s.epoch!="string"||!Number.isInteger(s.seq)||!s.mirror||T.has(s.epoch)||s.epoch===w.epoch&&s.seq<w.seq)return!1;w.epoch!==null&&s.epoch!==w.epoch&&T.add(w.epoch);let p=new Map;for(let[A,M]of Object.entries(s.stores||{})){let b=s.mirror.stores?.[A]||{},N=Array.isArray(b.log)?b.log:[];p.set(A,{value:Q(M.value),ephemeral:M.ephemeral===!0,log:N,logBytes:N.reduce((se,xe)=>se+(xe.bytes||0),0),last:Number.isInteger(b.last)?b.last:0,landed:Number.isInteger(b.landed)?b.landed:null,floor:Number.isInteger(b.floor)?b.floor:0,behind:b.behind===!0,file:b.file||null,inFile:Array.isArray(b.inFile)?[...b.inFile]:[]})}return w={epoch:s.epoch,seq:s.seq,sequencer:s.writer??null,closedBy:null,stale:!1,seen:new Map(s.mirror.seen||[]),stores:p},f(),O+=1,!0}function v(){let s=pe();J({type:"data-state",state:s}),q.state(s)}function k(){w.epoch!==null&&T.add(w.epoch),w.epoch=Fn(),w.seq=0;for(let s of w.stores.values())s.log=[],s.logBytes=0,s.last=0,s.landed=null,s.floor=0,s.behind=!0,s.file=null,s.inFile=[]}function L({fresh:s}){let p=w.epoch===null;p&&k();for(let[M,b]of e())w.stores.has(M)||w.stores.set(M,{value:Q(b.value),ephemeral:b.ephemeral,log:[],logBytes:0,last:0,landed:0,floor:0,behind:!1,file:null,inFile:[]});w.stale=!1,w.sequencer=n,w.closedBy=null;let A=new Map;for(let[M,b]of w.seen)A.set(M,{n:b,seq:0});g={epoch:w.epoch,seq:w.seq,lastN:A};for(let[M,b]of ee){let N=w.stores.get(M);if(!(!N||N.ephemeral)){try{if(z(N,b))continue}catch{continue}we(M,b)}}ee.clear(),s&&!p&&(k(),g.epoch=w.epoch,g.seq=0),O+=1,v()}function W(){k(),g.epoch=w.epoch,g.seq=0,O+=1,v()}function ue(){g&&(J({type:"closed",from:n,state:pe()}),g=null,F?.(),F=null)}function oe(s){return w.closedBy!==null&&(s===null||w.closedBy===s)?Promise.resolve(!0):new Promise(p=>{let A=setTimeout(()=>{C=null,p(!1)},Br);C={sequencer:s,resolve(M){clearTimeout(A),C=null,p(M)}}})}function re(){_||P||(_=!0,navigator.locks.request(a,async()=>{if(P)return;let s=await oe(w.sequencer);if(!P)return L({fresh:w.epoch===null||!s}),new Promise(p=>{F=p})}).catch(()=>{}).finally(()=>{_=!1}))}function he(s,p){if(!p||typeof p.name!="string"||!Number.isInteger(p.n)||p.n<1||!Array.isArray(p.ops)||!p.ops.length)return{status:400,body:{error:"bad-frame"},retryAfter:0};let A=w.stores.get(p.name);if(!A)return{status:404,body:{error:"unknown-store"},retryAfter:0};let M=p.name+`
|
|
4
|
-
`+s,b=g.lastN.get(M);if(b&&p.n<=b.n)return{status:200,body:{duplicate:!0,seq:b.seq,epoch:g.epoch},retryAfter:0};let N;try{N=p.ops.map(Qe),jn(A.value,N).undo()}catch(xe){return{status:422,body:{error:xe.message},retryAfter:0}}g.seq+=1,g.lastN.set(M,{n:p.n,seq:g.seq});let se={epoch:g.epoch,seq:g.seq,name:p.name,ops:N,from:s,n:p.n};return de(se),J({type:"data",data:se}),q.frame(Q(se)),{status:200,body:{seq:g.seq,epoch:g.epoch},retryAfter:0}}function ge(s){if(!g||!s.length)return;let p={};for(let A of s){let M=w.stores.get(A);M&&(p[A]=ae(M))}q.writer({epoch:g.epoch,writer:n,landed:p})}function te(s,p){let A=w.stores.get(s);return!A||A.ephemeral||!p||p.epoch!==w.epoch||!Number.isInteger(p.seq)||!A.behind&&A.landed!==null&&p.seq<=A.landed?!1:(A.landed=p.seq,A.behind=!1,!0)}function we(s,{text:p,at:A,seq:M}){let b=w.stores.get(s);if(!b||b.ephemeral)return null;let N;try{N=Q(Re(p))}catch{return null}if(N===null||typeof N!="object"||Array.isArray(N)!==Array.isArray(b.value))return null;let se={seq:M??null,hash:rt(V(N))},xe=!!A&&A.epoch===w.epoch&&A.seq<=g.seq,Ve=xe&&A.hash===se.hash,De=xe?A.seq:b.behind?null:b.landed;if(De===null||De<b.floor){let ke=!b.behind;return b.behind=!0,b.file=se,{changed:!1,moved:ke}}let pt=b.log.filter(ke=>ke.seq>De&&(Ve||!b.inFile.includes(ke.seq)));Ve&&(b.inFile=[]);for(let ke of pt)for(let Ge of ke.ops)try{et(N,Ge),N=tt(N,Ge)}catch{}let Xe=!1;if(V(N)!==V(b.value)){let ke=bn(b.value,N);b.value=N,g.seq+=1,w.seq=g.seq,b.last=g.seq,D(b,{seq:g.seq,ops:ke}),b.inFile=[...b.inFile.filter(Ge=>Ge>b.floor),g.seq],Xe=!0}return b.landed=pt.length?De:b.last,b.behind=!1,b.file=se,{changed:Xe,moved:!0}}function Ce(s){let p=!1,A=[];for(let[M,b]of s){let N=w.stores.get(M);if(!N||N.ephemeral)continue;if(!g){ee.set(M,b);continue}let se=we(M,b);se&&(se.changed?p=!0:se.moved&&A.push(M))}p?v():ge(A)}function be(s){return new Promise(p=>{let A=++U,M=setTimeout(()=>{B.delete(A),X.delete(A),p(null)},jr);s.type==="post"&&X.set(A,w.sequencer),B.set(A,b=>{clearTimeout(M),B.delete(A),X.delete(A),p(b)}),J({...s,from:n,rid:A})})}function Oe(s){if(!(!s||typeof s.name!="string"||typeof s.epoch!="string"||!Number.isInteger(s.seq))&&!(g||T.has(s.epoch))){if(s.epoch!==w.epoch)w.stale=!0;else if(!w.stale&&s.seq===w.seq+1)try{de(s)}catch{w.stale=!0}else s.seq>w.seq&&(w.stale=!0);q.frame(s)}}function ce(s,p){if(!(typeof s!="string"||!p)){y(p)&&(w.closedBy=s,q.state(p));for(let[A,M]of X)M===s&&B.get(A)?.(null);C&&(C.sequencer===null||C.sequencer===s)&&C.resolve(w.closedBy===s)}}function Me({data:s}){if(!(P||!s||s.v!==Lr)){if(g&&(s.type==="data"&&s.data?.epoch===g.epoch||(s.type==="data-state"||s.type==="closed")&&s.state?.epoch===g.epoch&&s.state.writer!==n)){W();return}if(!g&&s.type==="data-state"&&s.state?.epoch===w.epoch&&s.state.writer!==w.sequencer&&Number.isInteger(s.state.seq)&&s.state.seq<w.seq){J({type:"forked",epoch:w.epoch,to:s.state.writer});return}if(s.type==="forked"){g&&s.epoch===g.epoch&&s.to===n&&W();return}s.type==="data"?Oe(s.data):s.type==="data-state"?y(s.state)&&q.state(s.state):s.type==="closed"?ce(s.from,s.state):s.type==="landed"?typeof s.name=="string"&&te(s.name,s.at)&&ge([s.name]):s.type==="answer"?s.to===n&&B.get(s.rid)?.(s.result):g&&s.type==="post"?s.epoch===g.epoch&&J({type:"answer",to:s.from,rid:s.rid,result:he(s.from,s.frame)}):g&&s.type==="state-request"&&J({type:"answer",to:s.from,rid:s.rid,result:pe(s.since)})}}function $(){ue()}function Z(s){!s.persisted||P||g||_||(w.sequencer=null,w.closedBy=null,re(),q.close(),q.open({clientId:n,lane:"live"}))}function je(s,{covered:p=!1}={}){let A=s>=1?1:0,M={floor:i,scope:a};return A<=i?{status:"already",...M}:P||!d?{status:"refused",code:"lane-stopped",...M}:r?{status:"refused",code:"shared-channel",...M}:p?(ue(),m?.(),a=A?`${t}:${Bn}`:t,i=A,d=Tt(a),m=d.subscribe("durable",b=>Me({data:b})),w.sequencer=w.closedBy=null,_=!1,re(),q.close(),q.open({clientId:n,lane:"live"}),{status:"switched",floor:i,scope:a}):{status:"refused",code:"uncovered",...M}}return{clientId:n,get scope(){return a},get floor(){return i},switchScope:je,start(s){return q=s,d=r??Tt(a),m=d.subscribe("durable",p=>Me({data:p})),window.addEventListener("pagehide",$),window.addEventListener("pageshow",Z),re(),q.open({clientId:n,lane:"live"}),()=>{ue(),P=!0,C?.resolve(!1),window.removeEventListener("pagehide",$),window.removeEventListener("pageshow",Z);for(let p of B.values())p(null);m?.(),m=null,d=null}},async send(s,p){return g?he(n,p):await be({type:"post",frame:p,epoch:w.epoch})||{status:0,body:null,retryAfter:0}},async fetchState(s,p=null){if(g)return pe(p);let A=O,M=await be({type:"state-request",since:p});return g?pe(p):A!==O||!y(M)?null:M},fileFrame(s){P||Ce(s)},landed(s,p){P||!p||(te(s,p)&&ge([s]),J({type:"landed",name:s,at:{epoch:p.epoch,seq:p.seq}}))},get isSequencer(){return g!==null}}}var Wr=/^[A-Za-z0-9_.:-]{1,64}$/,R=new Map,Vn="save_"+[...crypto.getRandomValues(new Uint32Array(4))].map(e=>e.toString(16).padStart(8,"0")).join(""),Lt=0,Ur=0,Jr=45e3;function Gt(e){let t=ot(e.getAttribute("live-at"));if(!t||t.hash!==ho(e.textContent))return null;let r=e.getAttribute("live-by"),o=r===null?null:it(r);return r!==null&&!o?null:o&&o.v!==2?{disk:!0}:{epoch:t.epoch,seq:t.seq,frames:vt(o),ancestors:kn(o)}}function Yr(e,t){let r=e.leftAt;if(!r||r.disk)return null;let o=E?.pendingFrames(e.store.name,r,{reserve:t})??{frames:[],complete:!0};if(!o.complete)return null;let n=Fe(r.frames??[],o.frames),i=r.ancestors??[],a=V(e.store.value),d=JSON.stringify([r.epoch,r.seq,n,i,e.store.mark,a]);if(e.capture?.key===d)return e.capture.value;let m={v:2,frames:n,ancestors:i,capture:[Vn,Lt+1]},q=En(m),g=q?{at:Rt(r.epoch,r.seq,a),by:q}:null;return e.capture={key:d,value:g},g}var Le=new Map,Ie=null,Se=null,Ee=null,zr=In({query:e=>ln?.(e)??null}),Ae=new Map;function Xn(e){if(!e.captureOps.size)return;let t=new Set(e.store.pendingEntries().map(r=>r.id));for(let[r,o]of e.captureOps)o.ids=o.ids.filter(n=>t.has(n)),o.ids.length||e.captureOps.delete(r);[...e.captureOps.values()].some(r=>r.ended)||ft(e)}var Zn=(e,t)=>Ie===null||!fn()?!1:Le.get(Ie)?.get(e)?.key===t;function ut(e){let t=R.get(e);if(!t||!t.captureOps.size)return[];let r=new Set(t.store.pendingEntries().map(n=>n.id)),o=new Set;for(let[n,i]of t.captureOps)if(!(!i.ended&&!Zn(e,n)))for(let a of i.ids)r.has(a)&&o.add(a);return[...o]}function Ht(e){for(let[t,r]of e.captureOps)if(r.ended)return[t,r];return null}Ot({id:"live:held",isPending:()=>[...R.values()].some(e=>Ht(e))});var Hn=e=>[...e.captureOps].some(([t,r])=>!r.ended&&Zn(e.store.name,t));function Kr({op:e,path:t,n:r,value:o}){let n=t.length?t.join("."):"the whole value",i=e==="add"?`${n} + ${r}`:e==="del"?`${n} removed`:`${n} = ${JSON.stringify(o)}`;return i.length>60?`${i.slice(0,57)}...`:i}function Wt(e){clearTimeout(e.timer),e.timer=setTimeout(()=>{e.timer=null,ze(e)},Jr)}function ft(e){clearTimeout(e.timer),e.timer=null}function ze(e,{read:t=!0}={}){let r=e.store.name,o=ut(r);if(ft(e),e.withheld=!1,e.reading=!1,er(e),o.length){let n=e.store.pendingEntries().filter(m=>o.includes(m.id)).map(m=>m.op);e.store.handle.status.mode==="file"&&(e.leftAt=null),e.store.rebase(e.store.authoritative,{source:"state",dropIds:o});let i=n.slice(0,5).map(Kr).join("; "),a=n.length>5?` and ${n.length-5} more`:"",d=`A save of "${r}" ended without an answer, so ${n.length===1?"this edit was":"these edits were"} not sent again: ${i}${a}. Check the value, and redo ${n.length===1?"it":"any"} if missing.`;console.warn(`clay.live("${r}"): ${d}`,n),document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:r,code:"save-uncertain",ops:n,message:d}}))}t&&E?.release(r,{read:E.roomBound(r)})}function ct(e){Xn(e);let t=e.store.name;if(e.recovery&&!Zr(e)&&er(e),!(!e.withheld||e.reading||ut(t).length)){if(!E?.roomBound(t)){e.withheld=!1,ft(e);return}e.reading=!0,Wt(e),E.release(t,{read:!0})}}function Vr(e){let t=R.get(e);t&&(Ut(t),!(!t.withheld&&!t.reading)&&(t.withheld=!1,t.reading=!1,[...t.captureOps.values()].some(r=>r.ended)||ft(t)))}function Xr(){for(let e of R.values())if(e.recovery||e.historicalRefreshPending)return!0;return!1}function Zr(e){let t=new Set(e.store.pendingEntries().map(o=>o.id));return e.recovery.targets.find(({name:o})=>o===e.store.name)?.ids.some(o=>t.has(o))??!1}function Qr(e){if(!Ee||Ee.captureId!==e||typeof Ee.html!="string")return null;let t=[];for(let[r,o]of Ee.qualified)!R.get(r)||!o.length||t.push({name:r,ids:[...o],saved:Ee.saved.get(r)});return t.length?{captureId:e,html:Ee.html,targets:t}:null}function qt(){Ee&&(Ee.html=null)}function eo(e,t){Qn(e);let r=e.store.name;e.refreshTimer=setTimeout(()=>{if(e.refreshTimer=null,!e.historicalRefreshPending)return;let o=`The save of "${r}" that ended without an answer did happen, but the value the file holds now must load before newer edits can be saved.`;console.warn(`clay.live("${r}"): ${o}`),document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:r,code:"save-history-refresh-required",message:o}}))},Math.max(0,t-Date.now()))}function Ut(e){e.historicalRefreshPending&&(e.historicalRefreshPending=!1,Qn(e))}function Qn(e){e.refreshTimer!==null&&(clearTimeout(e.refreshTimer),e.refreshTimer=null)}function er(e){let t=e.recovery;t&&(e.recovery=null,!t.targets.some(r=>R.get(r.name)?.recovery===t)&&(Ae.delete(t.captureId),t.run?.cancel()))}function tr(e){if(e==null)return;let t=Ae.get(e);if(t){Ae.delete(e);for(let r of t.targets){let o=R.get(r.name);o&&o.recovery===t&&(o.recovery=null)}t.run?.cancel()}}function to(e,{result:t,attempts:r,startedAt:o}){let{captureId:n,html:i}=e,a={captureId:n,deadline:o+45e3,targets:e.targets,run:null};Ae.set(n,a);for(let d of e.targets){let m=R.get(d.name);ft(m),m.recovery=a}ht("save-history").then(d=>{if(Ae.get(n)===a){if(e.html=null,!d)return Wn(n);a.run=zr.start({captureId:n,html:i,attempts:r,initialOutcome:t?.saveOutcome??null,startedAt:o,onApplied:({saveId:m,requestHash:q})=>no(n,m,q),onUnknown:({reason:m})=>ro(n,m)})}},()=>{e.html=null,Wn(n)})}function no(e,t,r){let o=Ae.get(e);if(o){Ae.delete(e);for(let n of o.targets){let i=R.get(n.name);if(!i||i.recovery!==o)continue;i.recovery=null,i.historicalRefreshPending=!0;let a=new Set(i.store.pendingEntries().map(m=>m.id)),d=n.ids.filter(m=>a.has(m));if(i.store.rebase(JSON.parse(n.saved),{source:"state",dropIds:d}),!E){Ut(i);continue}E.release(i.store.name,{read:!0}),eo(i,o.deadline)}}}function Wn(e){let t=Ae.get(e);if(t){Ae.delete(e);for(let r of t.targets){let o=R.get(r.name);if(!(!o||o.recovery!==t)){if(o.recovery=null,!E?.roomBound(o.store.name)){ze(o,{read:!1});continue}o.withheld=!0,o.reading=!0,Wt(o),E.release(o.store.name,{read:!0})}}}}function ro(e,t){let r=Ae.get(e);if(r){Ae.delete(e);for(let o of r.targets){let n=R.get(o.name);!n||n.recovery!==r||(n.recovery=null,ze(n))}}}function oo(e,t,r){let o=e.captureOps.get(t),n=e.store.name;if(!o){e.store.handle.status.mode==="file"&&(e.leftAt=null);return}if(o.ended=!0,r?.has(n)){e.withheld=!0,e.reading=!0;return}if(!E?.roomBound(n)){ze(e,{read:!1});return}e.withheld=!0,e.reading=!0,Wt(e),E.release(n,{read:!0})}function jt(e){if(Array.isArray(e))return e.map(jt);if(e===null||typeof e!="object")return e;let t={};for(let r of Object.keys(e).sort())t[r]=jt(e[r]);return t}function Jt(e){try{return JSON.stringify(jt(Re(e)))}catch{return null}}var fe=null,dt=()=>!fe||fe.admitted;function so(){if(!He||!dt())return!1;for(let e of R.values())if(!e.store.ephemeral){if(e.store.handle.status.mode==="fast"){if(E?.isWriter()&&e.landed<e.last)return!0}else if(e.store.pending.length>0)return!0}return!1}var Bt=new Set;function nr(){for(let e of[...Bt])e()}var ve=Mn({needsSave:so,blocked:()=>!dt()||!yn()||mn()||gn()||Xr(),save:()=>Mt().finally(nr),saveNow:()=>cn(!0,()=>Mt())}),E=null,Ft=!1,Dt=0,St=null,Yt=!1,_e=null,zt=!1;function Kt(){return[...R.values()].filter(e=>!e.store.ephemeral)}function rr(){if(!fe||fe.admitted||!E||E.status.stopped)return!1;for(let e of Kt())if(e.store.handle.status.mode==="fast"&&e.store.pending.length>0)return!0;return!1}async function or({timeoutMs:e=5e3}={}){let t=Date.now()+e,r=()=>{for(let o of Kt())o.store.handle.status.mode==="fast"&&o.store.pending.length>0&&E?.release(o.store.name)};for(r();rr();){if(Date.now()>=t)return{ok:!1,code:"timeout"};await new Promise(o=>setTimeout(o,5)),r()}return{ok:!0}}Ot({id:"live:writer",isPending:rr,flush:or});function io(){for(let e of R.values()){e.framesSince=!1;let t=e.store.pendingEntries().map(r=>r.id);t.length&&e.store.rebase(e.store.authoritative,{source:"state",dropIds:t})}}function lo(){let e=E;E=null,Ft=!1,Dt++,St=null,_e=null,Yt=!1,At=null,Vt=null,at=null,Ye=null,e?.stop()}function ns(){return{id:"clay:live",order:200,prepare(e={}){if(e.initial===!0)return fe||(fe={admitted:!0}),Jn(fe,{adopted:!0});sr();let t={admitted:!1,wantsLane:!0};return fe=t,io(),xt(),Jn(t)}}}function Un(){for(let e of Kt())e.store.pending.length>0&&E?.release(e.store.name)}function Jn(e,{adopted:t=!1}={}){return{enable(){t||fe!==e||(e.admitted=!0,xt(),Un())},quiesce(){if(fe===e)return e.admitted=!1,or()},resume(){fe===e&&(e.admitted=!0,Un())},dispose(){fe===e&&(fe=null,lo())}}}var At=null,Vt=null,at=null,Ye=null;function sr(){At=new Promise(e=>{at=e}),Vt=new Promise(e=>{Ye=e})}function Xt(){return At||sr(),{laneReady:At,writerReady:Vt}}function rs(){return Xt().laneReady}function os(){return Xt().writerReady}function Yn(){for(let e of R.values())if(!e.store.ephemeral&&e.store.handle.status.mode==="fast"&&e.landed===-1){ve.soon();return}ve.changed()}function Ct(e,t){e.store.rebase(e.store.authoritative,{source:"state",through:t})}function Zt(e,t,r=null){if(e)for(let[o,n]of e){let i=R.get(o);!i||n.mode!=="file"||(t||n.maybeLanded?oo(i,n.key,r):(i.captureOps.delete(n.key),ct(i)),i.store.handle.status.mode==="fast"&&E?.release(o))}}function Ke(e){let t=Le.get(e);return Le.delete(e),Ie===e&&(Ie=null),Se===e&&(Se=null),t}function ir(e,t=null){let r=t??Ie??Se;r!==null&&Zt(Ke(r),e)}function ao(e,t){let r=e?.code,o=r==="page-converting"||r==="page-capacity";return r==="save-already-applied"||e?.hadTimeout===!0||t!==!1&&!o&&!(e?.status>=400&&e?.status<500)}function zn(e){return{transport:e,entries:R,onWriter:()=>{ve.changed(),E&&E.status.writer!==null&&Ye?.(E)},onApplied:Yn,onLanded:()=>{Yn(),nr()},onCheckpoint:()=>ve.soon(),onLeave:(t,r)=>{let o=R.get(t);o?.store.handle.status.mode==="fast"&&(o.leftAt={...r,frames:[],ancestors:[]})},held:t=>ut(t).length>0,heldIds:ut,hold:t=>{let r=R.get(t);return r?r.recovery?!0:Hn(r)?(r.withheld=!0,!0):(ze(r,{read:!1}),!1):!1},taken:Vr,onStop:()=>{for(let t of R.values())Ut(t),!t.recovery&&(Hn(t)||ze(t,{read:!1}))}}}function uo(){let e=new Map;for(let[t,r]of Pe(document,{warn:!1})){let o=R.get(t);if(o){e.set(t,{value:o.store.authoritative,ephemeral:o.store.ephemeral});continue}try{let n=Re(r.element.textContent);n!==null&&typeof n=="object"&&e.set(t,{value:n,ephemeral:r.ephemeral})}catch{}}return e}function xt(){if(Xt(),Ft||!(fe?fe.admitted||fe.wantsLane:He))return;Ft=!0;let e=++Dt;ht("live-data").then(async t=>{let r=t&&await ht("live-provenance");if(e===Dt){if(St=t,Yt=r,t)E=Pt(zn(Cn()));else if(Dn())_e=Gn({seed:uo,floor:document.querySelector('meta[name="clay-page-format"]')?.getAttribute("content")}),E=Pt(zn(_e));else{at?.(null),Ye?.(null);return}for(let o of Pe(document,{warn:!1}).keys())if(!R.has(o))try{ar(o)}catch{}for(let[o,n]of R)n.historicalRefreshPending&&E.release(o,{read:!0});E.start(),at?.(E),E.status.writer!==null&&Ye?.(E)}}).catch(()=>{at?.(null),Ye?.(null)})}function co(e){let t=(e||"").split(";")[0].trim().toLowerCase();return t==="application/json"||t.endsWith("+json")}function Pe(e=document,{warn:t=!0}={}){let r=new Map,o=new Set;for(let n of e.querySelectorAll('script[merge][clay~="live"]')){if(n.hasAttribute("src")||!co(n.getAttribute("type")))continue;let i=n.getAttribute("merge");if(Wr.test(i)){if(r.has(i)){o.add(i);continue}r.set(i,{name:i,ephemeral:n.getAttribute("clay").split(/\s+/).includes("ephemeral"),element:n})}}for(let n of o)t&&console.warn(`clay.live: more than one live tag is named "${n}", so none of them is live`),r.delete(n);return r}function Qt(e){return new DOMParser().parseFromString(e,"text/html")}function fo(e){let t=e.store.handle.status.mode==="fast",r=t?e.store.authoritative:e.store.value,o=t&&/^page(\.[0-9]+)?$/.test(e.store.name)?qn(r):r;return e.layout==="lines"?po(o):e.layout==="pretty"?JSON.stringify(o,null,2).replace(/</g,"\\u003c"):V(o)}var Kn=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function po(e){return Kn(e)?`{${Object.entries(e).map(([r,o])=>!Kn(o)||!Object.keys(o).length?`${V(r)}:${V(o)}`:`${V(r)}:{
|
|
5
|
-
${Object.entries(o).map(([n,i])=>`${V(n)}:${V(i)}`).join(`,
|
|
6
|
-
`)}
|
|
7
|
-
}`).join(`,
|
|
8
|
-
`)}}`:V(e)}function ho(e){try{return rt(V(Re(e)))}catch{return null}}function go(e,t,r,o){let n;try{n=Re(t)}catch{return}e.store.rebase(n,{source:r,...o?.length&&{dropIds:o}})&&(e.framesSince=!0)}function lr(e,t,{layout:r="line",leftAt:o=null,staged:n=null}={}){let i={store:t,layout:r,framesSince:!1,last:0,landed:0,leftAt:o,captureOps:new Map,withheld:!1,reading:!1,timer:null,recovery:null,historicalRefreshPending:!1,refreshTimer:null,staged:n};return R.set(e,i),t.onDelivery(a=>{a.code==="receipt-expired"&&document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:e,code:a.code,ops:a.ops,message:"The room retired an update receipt. Check the saved value before restoring this update."}})),a.phase==="refused"&&a.code==="too-large"&&!/^page(\.[0-9]+)?$/.test(e)&&document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:e,code:"op-too-large",message:"That change was too large to share, so it was undone."}})),a.phase==="left"&&a.code==="no-store"&&/^page(\.[0-9]+)?$/.test(e)&&document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:e,code:"unknown-store",message:`The room has no "${e}" store, so the page it holds is not the one this tab is editing.`}}))}),t.onRebase(a=>{ct(i),t.handle.status.mode==="file"&&["undone","refused","decided"].includes(a.cause)&&(i.leftAt=null)}),t.ephemeral||t.onLocal(()=>ve.changed()),t.onLocal(a=>{!i.staged&&dt()&&E?.local(e,a,t.mark)}),t.handle.on("change",()=>{!t.ephemeral&&t.handle.status.mode==="fast"&&ve.changed()}),n||(E?.storeOpened(e),xt()),i}function ar(e){let t=R.get(e);if(t)return t.store.handle;let r=Pe().get(e);if(!r)throw new Error(`clay.live: this page has no <script type="application/json" merge="${e}" clay="live"> tag`);let o=r.element.textContent,n;try{n=Re(o)}catch(m){throw new SyntaxError(`clay.live("${e}"): the tag's JSON does not parse: ${m.message}`)}let i=It({name:e,value:n,ephemeral:r.ephemeral}),a=r.element.getAttribute("live-format")==="lines"?"lines":o.includes(`
|
|
9
|
-
`)?"pretty":"line";return lr(e,i,{layout:a,leftAt:Gt(r.element)}).store.handle}function ss(e,{value:t,represented:r=null,signal:o=null}={}){let n=R.get(e);if(n&&!n.staged)throw new Error(`clay.live("${e}"): the store is open in a room`);let i=n??lr(e,It({name:e,value:t,ephemeral:!1}),{staged:{represented:r,signal:o}});return{handle:i.store.handle,isPending:()=>!!i.staged&&i.store.pending.length>0,flush:(a={})=>mo(i,a),dispose(){i.staged&&R.get(e)===i&&R.delete(e)},close(){R.get(e)===i&&R.delete(e)}}}async function mo(e,{timeoutMs:t=1e4}={}){let r=e.staged;if(!r||!e.store.pending.length)return{ok:!0};if(r.conflict)return{ok:!1,code:r.conflict};let o=r.represented?.etag||null,n=an();if(o&&n&&o!==n)return{ok:!1,code:"stale-document"};o&&!n&&un(o);let i=await qo({timeoutMs:t});return i.ok?{ok:!0}:{ok:!1,code:r.conflict??i.code??null}}function yo(e){e.staged&&(e.staged=null,e.tagless=!0,E?.storeOpened(e.store.name),xt())}sn((e,{forSave:t,requestRefresh:r})=>{if(!R.size)return;let o=Pe(e,{warn:!1});for(let n of R.values()){if(n.store.ephemeral)continue;let i=o.get(n.store.name);if(!i&&(n.staged||n.tagless)){let m=e.querySelector("article[data-page]");if(!m)continue;let q=m.ownerDocument.createElement("script");q.setAttribute("type","application/json"),q.setAttribute("merge",n.store.name),q.setAttribute("clay","live"),m.parentNode.insertBefore(q,m),i={name:n.store.name,ephemeral:!1,element:q}}if(!i)continue;if(t&&(n.recovery||n.historicalRefreshPending)){let m=n.historicalRefreshPending;m&&r&&E?.release(n.store.name,{read:!0});let q=m?"save-history-refresh-required":"save-history-pending",g=m?`clay.live("${n.store.name}"): the earlier save happened, but the current value must load before newer edits can be saved. Your edits are still in this tab.`:`clay.live("${n.store.name}"): a save ended without an answer, so the saved value must be checked before this one is sent. Your edits are still in this tab.`;throw console.warn(`clay.live("${n.store.name}"): ${g}`),m||document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:n.store.name,code:q,message:g}})),Object.assign(new Error(g),{code:q})}let a=t&&n.store.handle.status.mode==="file"?Ht(n)?.[1]:null;if(a){i.element.textContent=a.text;for(let[m,q]of[["live-at",a.at],["live-by",a.by]])q===null?i.element.removeAttribute(m):i.element.setAttribute(m,q);continue}let d=fo(n);if(i.element.textContent=d,n.store.handle.status.mode==="fast"&&E)i.element.setAttribute("live-at",Rt(E.status.epoch,E.status.seq,V(n.store.authoritative))),i.element.removeAttribute("live-by");else{let m=n.store.pending.length>0||n.leftAt&&!n.leftAt.disk,q=St===null&&n.leftAt&&!n.leftAt.disk;if(t&&m&&(q||St&&!Yt)){let P="This host must update its live data protocol before this save can be sent. Your edits are still in this tab.";throw console.warn(`clay.live("${n.store.name}"): ${P}`),document.dispatchEvent(new CustomEvent("clay:live-notice",{detail:{name:n.store.name,code:"provenance-unsupported",message:P}})),E?.refresh(),Object.assign(new Error(P),{code:"provenance-unsupported"})}let g=Yr(n,t);g?(i.element.setAttribute("live-at",g.at),i.element.setAttribute("live-by",g.by)):(i.element.removeAttribute("live-at"),i.element.removeAttribute("live-by"))}}});document.addEventListener("clay:snapshot-ready",e=>{if(e.detail?.forSave!==!0||!R.size)return;let t=e.detail.captureId??null,r=Pe(e.detail.documentElement,{warn:!1}),o=new Map;for(let n of R.values()){if(n.store.ephemeral)continue;let i=r.get(n.store.name);if(!i)continue;let a=n.store.handle.status.mode==="fast"&&E?"fast":"file",d=a==="fast"?{epoch:E.status.epoch,seq:E.status.seq}:null,m=a==="file"?Gt(i.element):null,q=it(i.element.getAttribute("live-by")),g=a==="file"?Ht(n):null,P=n.store.pendingEntries().map(O=>O.id),F=g?g[1].ids.filter(O=>P.includes(O)):a==="file"?P:[],_=a==="file"&&q?.v===2?q.capture:null,C=F.length?g?g[0]:_?JSON.stringify(_):`anonymous:${++Ur}`:null,U=g?g[1].mark:n.store.mark;o.set(n.store.name,{mode:a,mark:U,canonical:Jt(i.element.textContent),at:d,lineage:m,by:i.element.getAttribute("live-by"),key:C,maybeLanded:!!g,ids:F}),m&&!m.disk&&n.leftAt&&(n.leftAt={...n.leftAt,ancestors:m.ancestors}),_&&_[0]===Vn&&(Lt=Math.max(Lt,_[1])),C&&(n.captureOps.set(C,{capture:_,ids:F,ended:!1,mark:U,text:i.element.textContent,at:i.element.getAttribute("live-at"),by:i.element.getAttribute("live-by")}),Xn(n)),n.framesSince=!1,a==="fast"&&zt&&ve.flushing&&_e?.landed(n.store.name,d)}Se!==null&&Se!==Ie&&Zt(Ke(Se),!1),t!==null&&(Le.set(t,o),Se=t)});document.addEventListener("clay:save-conflict",e=>{ir(e.detail?.hadTimeout===!0,e.detail?.captureId)});for(let e of["clay:save-error","clay:save-offline"])document.addEventListener(e,t=>{let r=t.detail?.status,o=t.detail?.code,n=o==="page-converting"||o==="page-capacity";ir(o==="save-already-applied"||t.detail?.hadTimeout===!0||t.detail?.sent!==!1&&!n&&!(r>=400&&r<500),t.detail?.captureId)});function ur(e,t){if(!t||typeof e!="string")return;let r=Pe(Qt(e),{warn:!1});for(let[o,n]of t){let i=R.get(o);if(!i)continue;let a=r.get(o),d=i.store.handle.status.mode;if(!a||Jt(a.element.textContent)!==n.canonical){n.mode==="file"&&(E?.roomBound(o)&&Ct(i,n.mark),d==="fast"&&E?.release(o),ct(i));continue}if(n.mode==="fast"){n.at&&_e?.landed(o,n.at);continue}d==="fast"?(Ct(i,n.mark),_e?.fileFrame(new Map([[o,{text:a.element.textContent,at:ot(a.element.getAttribute("live-at")),seq:null}]])),E?.release(o),E?.refresh()):i.framesSince?(!i.leftAt||i.leftAt.disk||E?.roomBound(o))&&Ct(i,n.mark):(i.store.confirm(n.mark),i.leftAt=n.lineage&&a.element.getAttribute("live-by")===n.by?n.lineage:{disk:!0},yo(i)),ct(i)}}function vo(e,t,r){let o=Pe(Qt(r),{warn:!1}),n=new Map,i=new Map;for(let[a,d]of t){if(d.qualifiedIds=null,d.mode!=="file"||d.key===null)continue;let m=R.get(a);if(!m)continue;let q=o.get(a);if(!q||Jt(q.element.textContent)!==d.canonical)continue;let g=m.captureOps.get(d.key);if(!g||q.element.getAttribute("live-at")!==g.at||q.element.getAttribute("live-by")!==d.by)continue;let P=new Set(m.store.pendingEntries().map(C=>C.id)),F=new Set(g.ids),_=d.ids.filter(C=>P.has(C)&&F.has(C));_.length&&(d.qualifiedIds=_,n.set(a,_),i.set(a,d.canonical))}Ee={captureId:e,qualified:n,saved:i,html:r}}pn(({captureId:e,html:t})=>{if(e==null)return;let r=Le.get(e);r&&(Ie=e,Se===e&&(Se=null),vo(e,r,t))});hn(({captureId:e,result:t,attempts:r,sent:o})=>{if(e==null||t?.ok)return;let n=Le.get(e);if(!n)return;let i=[...n.keys()].map(m=>R.get(m)).find(m=>m?.staged);if(i&&t.code==="page-nothing-to-write"){i.store.confirm(i.store.mark),Ke(e),qt(),ct(i);return}i&&t.code==="page-lineage-stale"&&(i.staged.conflict="conflict"),Ke(e);let a=ao(t,o),d=a?Qr(e):null;qt(),Zt(n,a,d?new Set(d.targets.map(m=>m.name)):null),d&&to(d,{result:t,attempts:r,startedAt:Date.now()})});function wo(e,t){let r=t?.captureId;if(r==null)return;let o=Le.get(r);o&&(Ke(r),qt(),tr(r),ur(e,o))}dn(wo);function is(e){let t=Se??Ie,r=t===null?null:Ke(t);qt(),tr(t),ur(e,r)}function ls(){return Ee}function bo(e,t=null){if(typeof e!="string"||!e)return;let r=Pe(Qt(e),{warn:!1});if(!r.size)return;if(_e){let n=new Map;for(let[i,a]of r)a.ephemeral||n.set(i,{text:a.element.textContent,at:ot(a.element.getAttribute("live-at")),seq:Number.isInteger(t)?t:null});_e.fileFrame(n)}let o=Pe(document,{warn:!1});for(let[n,i]of r){let a=i.element.textContent,d=R.get(n),m=i.element.getAttribute("live-at"),q=i.element.getAttribute("live-by"),g=o.get(n)?.element;if(d&&!d.store.ephemeral&&d.store.handle.status.mode==="file"&&m!==null&&q===null&&(d.withheld||ut(n).length)){d.withheld=!0;continue}let P=[];if(d&&d.store.handle.status.mode==="file"){let F=Gt(i.element),_=F&&!F.disk&&(!E?.status.epoch||F.epoch===E.status.epoch);if(_?P=E?.captured(n,F,it(q))??[]:F?.disk&&(P=E?.captured(n,ot(m),null)??[]),F&&!F.disk)for(let[C,U]of d.captureOps)U.capture&&st(F.ancestors,...U.capture)&&(P.push(...U.ids),d.captureOps.delete(C));d.leftAt=_||F?.disk?F:null}if(g&&(!d||d.store.handle.status.mode==="file")&&(m===null?g.removeAttribute("live-at"):g.getAttribute("live-at")!==m&&g.setAttribute("live-at",m),q===null?g.removeAttribute("live-by"):g.getAttribute("live-by")!==q&&g.setAttribute("live-by",q)),d&&!d.store.ephemeral){if(d.staged)continue;d.store.handle.status.mode==="file"&&go(d,a,"remote",P);continue}g&&g.textContent!==a&&(g.textContent=a)}}document.addEventListener("clay:sync-applied",e=>bo(e.detail?.html,e.detail?.seq));document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&He&&dt()&&ve.flush()});window.addEventListener("pagehide",()=>{if(zt=!0,!He||!dt())return;let e=Se??Ie,t=ve.flushing&&e!==null?Le.get(e):null;if(t)for(let[r,o]of t)o.mode==="fast"&&o.at&&_e?.landed(r,o.at);ve.flush()});window.addEventListener("pageshow",()=>{zt=!1});function as(e){return R.get(e)?.store||null}function us(e,t){let r=R.get(e);r&&r.store===t&&!r.staged&&R.delete(e)}function cs(){return[...R.values()].map(e=>e.store)}function fs(){return E}function ds(e){ve.within(e)}function qo({timeoutMs:e=1e4}={}){let t=new Map;for(let[o,n]of R)n.store.ephemeral||t.set(o,n.store.handle.status.mode==="fast"?n.last??0:null);let r=()=>[...t].every(([o,n])=>{let i=R.get(o);return i?n===null||i.store.handle.status.mode!=="fast"?i.store.pending.length===0:(i.landed??0)>=n:!0});return r()?Promise.resolve({ok:!0}):new Promise(o=>{let n=d=>{clearTimeout(a),Bt.delete(i),o(d)},i=()=>{r()&&n({ok:!0})},a=setTimeout(()=>n({ok:!1,code:"timeout"}),e);Bt.add(i),He&&(!E||E.isWriter())&&ve.soon()})}var ps=ar;export{Jr as a,or as b,ns as c,rs as d,os as e,Pe as f,po as g,ar as h,ss as i,is as j,ls as k,bo as l,as as m,us as n,cs as o,fs as p,ds as q,qo as r,ps as s};
|
package/dist/m/c-RI4NT75Y.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as S}from"./c-YDH7Q3NY.js";import{a as ne,b as F,c as re,d as oe}from"./c-N326R2JD.js";import{a as H}from"./c-JAX2667S.js";import{b as le,c as ae}from"./c-KR4UW4KW.js";import"./c-Z36J63PP.js";import"./c-LZJPNR2W.js";import{b as ce,g as ie}from"./c-2M73252O.js";import{b as Z}from"./c-KKWLDOPM.js";import{b as se}from"./c-T4VO4OCB.js";import"./c-FILLTJA7.js";import"./c-QIX5BJYN.js";import"./c-VKEDWYDF.js";import{D as te}from"./c-CJZSLMVQ.js";import"./c-GQ6F6IDK.js";import"./c-2SPVQSHC.js";import"./c-5VYOWDTI.js";import{g as ee}from"./c-7VGZ7RU5.js";import"./c-4YSCRICO.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import{a as J}from"./c-HT33EQRN.js";import"./c-B2ZXPOS3.js";import"./c-TQEMVJCS.js";import"./c-3IQRECYS.js";import"./c-AYVOREBE.js";import{f as X}from"./c-IJUK2GPW.js";import"./c-7O6AFR65.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-35NBGMZB.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import{i as Q}from"./c-GHBCCVG4.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var T="This spot changed again. Review the latest edit or download your copy.",ue="\uFFFC",C="",M=new Set("A ABBR B BDI BDO CITE CODE DATA DEL DFN EM FONT I INS KBD MARK Q S SAMP SMALL SPAN STRIKE STRONG SUB SUP TIME TT U VAR".split(" ")),ge=new Set(["BR","WBR","IMG"]),L=new Set("ADDRESS ARTICLE ASIDE AUDIO BLOCKQUOTE BODY CANVAS CAPTION CENTER COL COLGROUP DD DETAILS DIALOG DIR DIV DL DT FIELDSET FIGCAPTION FIGURE FOOTER FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HEADER HGROUP HR HTML IFRAME LEGEND LI MAIN MATH MENU NAV NOSCRIPT OBJECT OL OPTGROUP OPTION P PRE SCRIPT SECTION SELECT STYLE SUMMARY SVG TABLE TBODY TD TEMPLATE TEXTAREA TFOOT TH THEAD TITLE TR UL VIDEO".split(" ")),ke=new Set("P H1 H2 H3 H4 H5 H6 DIV LI DD DT BLOCKQUOTE FIGCAPTION SUMMARY ADDRESS".split(" ")),we=new Set("P H1 H2 H3 H4 H5 H6 SUMMARY".split(" ")),Ne=/[\u001E]/,ve={subtree:!0,childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0},k=e=>!!e&&e.nodeType===1,W=e=>k(e)&&M.has(e.tagName),B=e=>e.matches(le),z=e=>e.matches(ae),y=e=>e.localName==="template"&&e.content?e.content:e,w=e=>Array.prototype.indexOf.call(e.parentNode.childNodes,e),x=e=>e.getAttribute("data-id")||e.getAttribute("id")||null;function Ce(e){return!e.firstChild||e.textContent===""&&!e.querySelector("br,img,wbr")}function ye(e){if(e.nodeType===3)return!0;if(!k(e))return!1;if(B(e)||ge.has(e.tagName))return!0;if(!M.has(e.tagName))return!L.has(e.tagName);if(z(e))return!1;for(let n of e.childNodes)if(!ye(n))return!1;return!0}function Y(e){if(!ke.has(e.tagName)||B(e)||z(e))return!1;for(let n of e.childNodes)if(n.nodeType===8||!ye(n))return!1;return!0}function xe(e,n=document){for(let t of n.querySelectorAll("template")){if(t.content===e)return t;let r=xe(e,t.content);if(r)return r}return null}function m(e,n){for(let t=e;t;t=t.nodeType===11?xe(t):t.parentNode)if(t===n)return!0;return!1}var h=e=>m(e,document);function Ae(e,n){let t=e;for(let r of n)if(t=r==="content"?t.content:t.childNodes[r],!t)return null;return t}function D(e,n=new Set){if(k(e)){let t=x(e);t&&n.add(t)}if(e.nodeType===1||e.nodeType===11)for(let t of y(e).childNodes)D(t,n);return n}function Re(e){let n=document.createElement("template");return n.innerHTML=e,n.content}var Ie=e=>[...e.querySelectorAll("*")].some(n=>L.has(n.tagName));function Se(e){let n=[];for(let t=e;t.childNodes.length===1&&k(t.firstChild);t=t.firstChild)n.push(t.firstChild);return n}function De(e,n){let t=e.lastIndexOf("content");if(t<0)return document;let r=$(e.slice(0,t),n);return r&&r.content?r.content:null}function $(e,n){let t=Ae(n.root,e);if(!k(t))return null;let r=x(t),o=r?De(e,n):null;if(!o)return null;let s=[...o.querySelectorAll(t.localName)].filter(i=>i.namespaceURI===t.namespaceURI&&x(i)===r);return s.length===1?s[0]:null}function Me(e){let n=x(e);if(!n)return null;let t=[...document.querySelectorAll(e.localName)].filter(r=>r.namespaceURI===e.namespaceURI&&x(r)===n);return t.length===1?t[0]:null}function b(e,n,t=e?e.nodeType:1){if(!e)return null;for(let o of e.live)if(o.nodeType===t&&h(o))return o;if(t!==1)return null;if(e.local.length)return $(e.local[0],n);let r=e.live.find(k);return r?Me(r):null}function Pe(e){let n=e.live.find(k),t=n?x(n):null;return!!t&&![...document.querySelectorAll(n.localName)].some(r=>x(r)===t)}function _(e){let n=y(e),t={root:e,container:n,text:"",nodes:[],atoms:[],blocks:[]},r=s=>{for(let i of s){if(i.nodeType===3){if(!i.data)continue;t.nodes.push({node:i,s:t.text.length,e:t.text.length+i.data.length}),t.text+=i.data;continue}if(!k(i)||B(i))continue;if(Y(i)){t.text.length&&t.text[t.text.length-1]!==C&&(t.text+=C);let l={el:i,from:t.text.length,to:-1};t.blocks.push(l),r(i.childNodes),t.text+=C,l.to=t.text.length;continue}let c=M.has(i.tagName)&&Ce(i);if(ge.has(i.tagName)||!M.has(i.tagName)||z(i)||c){t.atoms.push({i:t.text.length,el:i}),t.text+=ue;continue}r(i.childNodes)}};if(r(n.childNodes),t.atoms.length===1&&t.atoms[0].el.tagName==="BR"&&!t.blocks.length&&t.text.replace(ue,"").trim()===""){let s=t.atoms[0].i;t.text=t.text.slice(0,s)+t.text.slice(s+1),t.atoms=[];for(let i of t.nodes)i.s>s&&(i.s--,i.e--)}return t}function fe(e,n,t){for(let s of e.nodes)if(t==="start"?s.s<=n&&n<s.e:s.s<n&&n<=s.e)return[s.node,n-s.s];let r=t==="start"?n:n-1,o=e.atoms.find(s=>s.i===r);if(o)return[o.el.parentNode,w(o.el)+(t==="start"?0:1)];if(e.text[r]===C){let s=e.blocks.find(c=>c.to===r+1);if(s)return t==="start"?[s.el,s.el.childNodes.length]:[s.el.parentNode,w(s.el)+1];let i=e.blocks.find(c=>c.from===r+1);if(i)return t==="start"?[i.el,0]:[i.el.parentNode,w(i.el)]}for(let s of e.nodes)if(s.s===n||s.e===n)return[s.node,n-s.s];return[e.container,n===0?0:e.container.childNodes.length]}function j(e,n){let t=document.createRange();return t.setStart(e,n),t.setEnd(e,n),t}function K(e,n,t){if(n.nodeType===3){let i=e.nodes.find(c=>c.node===n);return i?i.s+t:null}if(n!==e.container&&!m(n,e.root))return null;let r=j(n,t),o=e.text.length,s=(i,c)=>{try{return r.comparePoint(i,c)>=0}catch{return!1}};for(let i of e.nodes)s(i.node,0)&&(o=Math.min(o,i.s));for(let i of e.atoms)s(i.el.parentNode,w(i.el))&&(o=Math.min(o,i.i));return o}function Le(e,n){let t=e.slice(n.bs,n.be),r=0;for(;r<t.length&&r<n.text.length&&t[r]===n.text[r];)r++;let o=0;for(;o<t.length-r&&o<n.text.length-r&&t[t.length-1-o]===n.text[n.text.length-1-o];)o++;return{bs:n.bs+r,be:n.be-o,text:n.text.slice(r,n.text.length-o)}}function G(e,n,t,r){if(e===n)return{s:t,e:r};let o=0,s=0,i=H.diff(e,n).map(c=>Le(e,c)).sort((c,l)=>c.bs-l.bs);for(let c of i){if(c.bs===c.be&&!c.text)continue;let l=c.text.length-(c.be-c.bs);if(c.be<=t)o+=l;else{if(c.bs>=r)continue;if(c.bs>=t&&c.be<=r){if(Ne.test(e.slice(c.bs,c.be)+c.text))return null;s+=l}else return null}}return{s:t+o,e:r+o+s}}function Be(e,n,t){let r=e.liveScope;if(r&&r.startContainer&&m(r.startContainer,n)&&m(r.endContainer,n)){let s=K(t,r.startContainer,r.startOffset);if(s!==null)return s}if(Y(n))return 0;let o=e.merged.text?t.text.indexOf(e.merged.text):-1;return o>=0&&t.text.indexOf(e.merged.text,o+1)<0?o:null}function Te(e,n){let t=e.commonAncestorContainer;for(t.nodeType===3&&(t=t.parentNode);t&&t!==n;t=t.parentNode)if(k(t)&&Y(t))return t;return n}var Oe=(e,n)=>e.tagName===n.tagName&&e.attributes.length===n.attributes.length&&[...e.attributes].every(t=>n.getAttribute(t.name)===t.value);function de(e,n){let t=[];for(let r=k(e)?e:e.parentNode;r&&r!==n&&W(r);r=r.parentNode)t.unshift(r);return t}function Ue(e,n,t){let[r,o]=e;if(r.nodeType===3){if(o!==0&&o!==r.data.length)return e;[r,o]=[r.parentNode,w(r)+(o===0?0:1)]}let s=!1;for(;r!==n&&W(r)&&(o===0||o===r.childNodes.length)&&!t.some(i=>Oe(i,r));)[r,o]=[r.parentNode,w(r)+(o===0?0:1)],s=!0;return s?[r,o]:e}function He(e,n,t){let r=de(n.startContainer,t),o=de(n.endContainer,t);return r.length!==o.length||r.some((s,i)=>s!==o[i])||r.length>e.wrappers.length||r.some((s,i)=>!Oe(s,e.wrappers[i]))?!1:(e.peel=r.length,!e.wrappers.slice(e.peel).some(s=>r.some(i=>i.tagName===s.tagName)))}function Fe(e,n,t,r){let o=e.childNodes.length===1&&k(e.firstChild)?e.firstChild:null;if(!o||!L.has(o.tagName))return;let s=document.createRange();s.setStart(...n),s.setEnd(...t);let i=Te(s,r);i===r||i.tagName!==o.tagName||i.namespaceURI!==o.namespaceURI||x(i)!==x(o)||o.replaceWith(...o.childNodes)}function Ge(e){if(!e.parsed)return e.fragment;let n=e.parsed.childNodes;return n.length?n.length===1&&n[0].nodeType===3?n[0].data:null:""}function Ve(e,n){let t=e.recovery.text,r=e.recovery.subject,o=b(r,n,r.nodeType);if(!o)return null;let s=o.nodeType===3&&o.parentNode?.localName==="textarea"?o.parentNode:o,i=t.local.text.slice(t.local.start,t.local.end);if(Ne.test(t.merged.text.slice(t.merged.start,t.merged.end))||i.includes(C))return null;let c={kind:"text",id:e.id,ticket:n.ticket,key:r.key,fragment:t.local.fragment,encoding:t.encoding,local:i,ids:new Set,range:document.createRange()};if(o.nodeType===8){let g=G(t.merged.text,o.data,t.merged.start,t.merged.end);return g?(c.range.setStart(o,g.s),c.range.setEnd(o,g.e),{...c,root:o,owner:o,scope:o,s:g.s,e:g.e,before:o.data,bs:g.s,be:g.e}):null}if(s.localName==="textarea"){if(c.encoding!=="plain")return null;let g=G(t.merged.text,s.value,t.merged.start,t.merged.end);return g?(c.range.selectNodeContents(s),{...c,root:s,field:s,scope:s,f:{text:s.value},s:g.s,e:g.e,before:s.value,bs:g.s,be:g.e}):null}let l=_(o),u=Be(t,o,l);if(u===null)return null;let d=G(t.merged.text,l.text.slice(u),t.merged.start,t.merged.end);if(!d)return null;let N=u+d.s,v=u+d.e,A=fe(l,N,"start"),a=N===v?A:fe(l,v,"end");if(c.parsed=c.encoding==="html"?Re(c.fragment):null,c.parsed&&Fe(c.parsed,A,a,o),c.parsed&&Ie(c.parsed)||(c.wrappers=c.parsed?Se(c.parsed):[],c.parsed&&D(c.parsed,c.ids),c.plain=Ge(c),N===v&&(A=a=Ue(A,o,c.wrappers)),c.range.setStart(...A),c.range.setEnd(...a),!He(c,c.range,o)))return null;let f=Te(c.range,o),p=f===o?l:_(f),E=K(p,...A),U=N===v?E:K(p,...a);return E===null||U===null||p.text.slice(E,U)!==l.text.slice(N,v)?null:{...c,root:o,f:l,s:N,e:v,scope:f,before:p.text,bs:E,be:U}}function qe(e){if(e.owner){let o=e.owner.data;e.owner.data=o.slice(0,e.s)+e.fragment+o.slice(e.e),e.check=()=>e.owner.data.slice(e.s,e.s+e.fragment.length)===e.fragment&&h(e.owner);return}if(e.field){let o=e.field,s=o.value.slice(0,e.s)+e.fragment+o.value.slice(e.e);o.textContent=s,o.value!==s&&(o.value=s,e.wroteProperty=!0),o.hasAttribute("data-value")&&o.setAttribute("data-value",s),e.check=()=>h(o)&&o.value===s&&o.textContent===s;return}let n=e.range,t=n.startContainer;if(e.plain!==null&&t.nodeType===3&&n.endContainer===t){let o=n.startOffset;t.replaceData(o,n.endOffset-o,e.plain),e.check=()=>h(t)&&t.data.slice(o,o+e.plain.length)===e.plain;return}n.deleteContents();let r=[];if(e.fragment)if(e.parsed){let o=document.importNode(e.parsed,!0),s=Se(o);for(let i=0;i<e.peel;i++)s[i].replaceWith(...s[i].childNodes);r=[...o.childNodes],n.insertNode(o)}else r=[document.createTextNode(e.fragment)],n.insertNode(r[0]);e.check=()=>r.every(h)&&(e.parsed||!r.length||r[0].data===e.fragment)}function _e(e,n){let t=b(e.recovery.subject,n,1);if(!t)return null;let r=e.recovery.attribute,o={kind:"attr",id:e.id,ticket:n.ticket,key:e.recovery.subject.key,el:t,ns:r.namespaceURI,name:r.qualifiedName,local:r.localName,value:e.local??null,ids:new Set};try{o.ns===null?document.createAttribute(o.name):document.createAttributeNS(o.ns,o.name)}catch{return null}return o}var je=new Set(["hidden","submit","image","reset","button","checkbox","radio","file"]);function Ke(e,n){let t=document.createElement("input");return t.type=e.type,t.value=n,t.value}function We(e){let n=e.el;return e.ns!==null||n.namespaceURI!=="http://www.w3.org/1999/xhtml"?null:n.localName==="input"&&e.name==="checked"&&(n.type==="checkbox"||n.type==="radio")?["checked",e.value!==null]:n.localName==="input"&&e.name==="value"&&!je.has(n.type)?["value",Ke(n,e.value??"")]:n.localName==="option"&&e.name==="selected"?["selected",e.value!==null]:null}function ze(e){e.ns===null?e.value===null?e.el.removeAttribute(e.name):e.el.setAttribute(e.name,e.value):e.value===null?e.el.removeAttributeNS(e.ns,e.local):e.el.setAttributeNS(e.ns,e.name,e.value);let n=We(e);n&&e.el[n[0]]!==n[1]&&(e.el[n[0]]=n[1],e.wroteProperty=!0);let t=()=>e.ns===null?e.el.getAttribute(e.name):e.el.getAttributeNS(e.ns,e.local);e.check=()=>h(e.el)&&t()===e.value&&(!n||e.el[n[0]]===n[1])}function Ye(e,n){let t=e.recovery.structure,r=e.recovery.subject,o=b(r,n,r.nodeType),s={id:e.id,ticket:n.ticket,key:r.key,apply:n,ids:new Set},i=c=>c?b(c.parent,n,1):null;if(t.localAction==="deleted")return o?{...s,kind:"remove",node:o}:Pe(r)?{...s,kind:"done",check:()=>!0}:null;if(t.localAction==="moved"){let c=i(t.localPlacement);return!o||!c||o===c||m(c,o)?null:{...s,kind:"move",node:o,parent:c,placement:t.localPlacement}}if(t.localAction==="reordered"){if(!o||!t.localOrder)return null;let c=y(o),l=t.localOrder.map(u=>b(u,n,u.nodeType)).filter(u=>u&&u.parentNode===c);return l.length<2?null:{...s,kind:"reorder",parent:o,order:l}}if(t.localAction==="inserted"){let c=i(t.localPlacement);if(!c||o&&o.parentNode!==y(c))return null;if(t.fragmentKind!=="element")return typeof t.localFragment!="string"?null:{...s,kind:"run",node:o,parent:c,placement:t.localPlacement,text:t.localFragment,nodeType:r.nodeType};let l=r.local.length?Ae(n.root,r.local[0]):null;if(!k(l))return null;let u=o?o.tagName===l.tagName&&o.namespaceURI===l.namespaceURI?"morph":"replace":"place";return{...s,kind:"realize",node:o,parent:c,placement:t.localPlacement,src:l,mode:u,ids:D(l)}}return null}function V(e,n,t,r){let o=y(n),s=l=>{for(let u of l){let d=b(u,r,u.nodeType);if(d&&d!==e&&d.parentNode===o)return d}return null},i=s(t.before);if(i)return o.insertBefore(e,i);let c=s(t.after);return c?o.insertBefore(e,c.nextSibling):t.before.length?o.insertBefore(e,o.firstChild):o.appendChild(e)}function $e(e){let n=document.importNode(e.src,!0),t=document.createDocumentFragment();return t.append(n),e.apply.domain==="save"&&(se(t),ce(t),ie(t),Z(t)),n}function Qe(e,n){let t=e.filter(r=>r.kind==="move");for(let r of t)n.append(r.node);for(let r of e){if(r.kind==="run"){r.node?r.node.data=r.text:r.node=V(r.nodeType===8?document.createComment(r.text):document.createTextNode(r.text),r.parent,r.placement,r.apply),r.check=()=>h(r.node)&&r.node.parentNode===y(r.parent)&&r.node.data===r.text;continue}if(r.kind!=="realize")continue;let o=$e(r);r.mode==="morph"?H.morphElement(r.node,o,{ignore:B,scripts:{execute:!1}}):r.mode==="replace"?(r.node.replaceWith(o),r.node=o):r.node=V(o,r.parent,r.placement,r.apply),r.check=()=>h(r.node)&&r.node.parentNode===y(r.parent)}for(let r of t)V(r.node,r.parent,r.placement,r.apply),r.check=()=>r.node.parentNode===y(r.parent)&&h(r.node);for(let r of e){if(r.kind!=="reorder")continue;let o=y(r.parent),s=r.order.filter(u=>u.parentNode===o),i=s.slice(),c=[...o.childNodes].map(u=>s.includes(u)?i.shift():u),l=null;for(let u=c.length-1;u>=0;u--){let d=c[u];s.includes(d)&&d.nextSibling!==l&&o.insertBefore(d,l),l=d}r.check=()=>{let u=[...o.childNodes].filter(d=>s.includes(d));return u.length===s.length&&u.every((d,N)=>d===s[N])}}for(let r of e)r.kind==="remove"&&(r.node.remove(),r.check=()=>!h(r.node))}function O(e){return e.kind==="move"||e.kind==="remove"?[e.node]:e.kind==="realize"||e.kind==="run"?e.node?[e.node]:[]:[]}function R(e){return e.kind==="text"?[e.scope]:e.kind==="move"||e.kind==="reorder"?[e.parent]:(e.kind==="realize"||e.kind==="run")&&!e.node?[e.parent]:[]}var be=e=>e.kind==="attr"?[e.el]:[...O(e),...R(e)];function Xe(e,n){try{let t=j(e.startContainer,e.startOffset),r=j(n.startContainer,n.startOffset);return e.collapsed&&n.collapsed?t.comparePoint(n.startContainer,n.startOffset)===0:t.comparePoint(n.endContainer,n.endOffset)>0&&r.comparePoint(e.endContainer,e.endOffset)>0}catch{return!1}}function Je(e,n){try{return e.comparePoint(n.startContainer,n.startOffset)===0&&e.comparePoint(n.endContainer,n.endOffset)===0}catch{return!1}}function Ze(e,n){try{return e.intersectsNode(n)&&!m(e.commonAncestorContainer,n)}catch{return!1}}function I(e,n){if(!e.ids.size&&!n.ids.size)return!1;let t=s=>{let i=new Set;for(let c of be(s))D(c,i);return i},r=e.ids.size?null:t(e),o=t(n);return[...e.ids].some(s=>n.ids.has(s)||o.has(s))||[...n.ids].some(s=>(r||t(e)).has(s))}function me(e,n){return n.kind==="text"?Ze(n.range,e.el):O(n).some(t=>m(e.el,t))||n.ids.has(x(e.el))}function pe(e,n){return n.kind==="reorder"?m(n.parent,e.scope)||I(e,n):O(n).some(t=>m(t,e.scope)||m(e.scope,t))||R(n).some(t=>m(t,e.scope))?!0:I(e,n)}function he(e,n){return O(n).some(t=>e.order.includes(t)||m(e.parent,t))||R(n).includes(e.parent)?!0:I(e,n)}function q(e,n){if(e.kind==="done"||n.kind==="done")return!1;if(e.kind==="text"&&n.kind==="text")return Xe(e.range,n.range);if(e.kind==="attr"&&n.kind==="attr")return e.el===n.el&&e.ns===n.ns&&e.local===n.local;if(e.kind==="attr")return me(e,n);if(n.kind==="attr")return me(n,e);if(e.kind==="text")return pe(e,n);if(n.kind==="text")return pe(n,e);if(e.kind==="reorder"&&n.kind==="reorder")return e.parent===n.parent||I(e,n);if(e.kind==="reorder")return he(e,n);if(n.kind==="reorder")return he(n,e);for(let t of O(e))for(let r of O(n))if(m(t,r)||m(r,t))return!0;for(let t of O(e))for(let r of R(n))if(m(r,t))return!0;for(let t of O(n))for(let r of R(e))if(m(r,t))return!0;return I(e,n)}function et(e,n){return e.kind==="done"?!1:e.kind==="attr"?m(e.el,n.node):be(e).some(t=>m(t,n.node)||m(n.node,t))?!0:e.ids.size?(n.ids||(n.ids=D(n.node)),[...e.ids].some(t=>n.ids.has(t))):!1}function tt(e,n){return e.kind==="text"&&n.kind==="text"&&!e.field&&e.root===n.root&&Je(e.range,n.range)}function nt(e,n){let t=oe(e);return t?t.nodes:[rt(e,n)]}function rt(e,n){let t=e.recovery,r=t.subject;for(let c of t.text?[t.text.liveSpan,t.text.liveScope]:[])if(c&&c.startContainer&&h(c.startContainer)&&h(c.endContainer))return st(ot(c));let o=r?b(r,n,r.nodeType):null;if(o)return o;let s=t.structure&&t.structure.localPlacement?b(t.structure.localPlacement.parent,n,1):null;if(s)return s;let i=r&&r.local.length?r.local[0]:[];for(let c=i.length-1;c>0;c--){if(i[c-1]==="content")continue;let l=$(i.slice(0,c),n);if(l)return l}return document.documentElement}function ot(e){let n=new Set;for(let r=e.startContainer;r;r=r.parentNode)n.add(r);let t=e.endContainer;for(;t&&!n.has(t);)t=t.parentNode;return t.nodeType===1||t.nodeType===11?t:t.parentNode}function st(e){for(let n=e;n;n=n.parentNode)if(k(n)&&ke.has(n.tagName))return n;return e}function ct(e,n){let t=e.recovery;return t.applied===!1||t.unavailable?null:t.structure?Ye(e,n):t.text?Ve(e,n):t.attribute?_e(e,n):null}var P=()=>`${re()}|${S.hasPendingApply()?1:0}|${S.list().map(e=>e.id).join(",")}`;function Ee(){let e={ids:new Map,nested:new Set},n=r=>{for(let o of["id","data-id"]){let s=r.getAttribute(o);s&&e.ids.set(`${o} ${s}`,(e.ids.get(`${o} ${s}`)||0)+1)}},t=(r,o)=>{for(let s of y(r).children)n(s),o&&L.has(s.tagName)&&e.nested.add(s),t(s,o||W(s)||we.has(s.tagName))};return n(document.documentElement),t(document.documentElement,!1),e}function it(e){let n=Ee();for(let[r,o]of n.ids)if(o>1&&(e.before.ids.get(r)||0)<=1)return!1;for(let r of n.nested)if(!e.before.nested.has(r))return!1;let t=new Map;for(let r of e.ops)r.kind==="text"&&t.set(r.scope,[...t.get(r.scope)||[],r]);for(let[r,o]of t){let s=o[0].before;for(let c of[...o].sort((l,u)=>u.bs-l.bs))s=s.slice(0,c.bs)+c.local+s.slice(c.be);if((o[0].owner?r.data:o[0].field?r.value:_(r).text)!==s)return!1}return!0}function lt(){let e=new Map,n=c=>{for(let l of c.querySelectorAll("*"))e.set(l,[...l.attributes].map(u=>[u,u.value])),l.localName==="template"&&l.content&&n(l.content)};n(document);let t=[];for(let c of document.querySelectorAll("input, textarea"))t.push([c,"value",c.value]);for(let c of document.querySelectorAll("input"))t.push([c,"checked",c.checked]);for(let c of document.querySelectorAll("option"))t.push([c,"selected",c.selected]);let r=document.activeElement,o=null;try{r&&typeof r.selectionStart=="number"&&(o=[r.selectionStart,r.selectionEnd,r.selectionDirection])}catch{}let s=document.getSelection(),i=s&&s.rangeCount?[s.anchorNode,s.anchorOffset,s.focusNode,s.focusOffset]:null;return{attrs:e,controls:t,active:r,caret:o,selection:i}}function at(e,n){let t=e.attributes;return t.length===n.length&&n.every(([r,o],s)=>t[s]===r&&r.value===o)}function ut(e,n){let t=new Set;for(let s=e.length-1;s>=0;s--){let i=e[s];if(i.type==="characterData")i.target.data=i.oldValue;else if(i.type==="attributes")t.add(i.target);else{for(let c of i.addedNodes)c.parentNode===i.target&&i.target.removeChild(c);for(let c of i.removedNodes)i.target.insertBefore(c,i.nextSibling)}}for(let s of t){let i=n.attrs.get(s);if(!(!i||at(s,i))){for(let c of[...s.attributes])s.removeAttributeNode(c);for(let[c,l]of i)c.value=l,s.setAttributeNode(c)}}for(let[s,i,c]of n.controls)if(s[i]!==c)try{s[i]=c}catch{}let r=document.getSelection();r&&n.selection?h(n.selection[0])&&h(n.selection[2])&&r.setBaseAndExtent(...n.selection):r&&r.rangeCount&&r.removeAllRanges();let o=n.active;if(o&&o!==document.activeElement&&o!==document.body&&h(o)&&o.focus&&o.focus({preventScroll:!0}),n.caret&&document.activeElement===o)try{o.setSelectionRange(...n.caret)}catch{}}function ft(e){let n=t=>{e.observe(t,ve);for(let r of t.querySelectorAll("template"))r.content&&n(r.content)};n(document)}function dt(e){let n=new Set;for(let t of e)if(t.type==="characterData"){if(n.has(t.target))return!1;n.add(t.target)}return!0}function mt(e){let n=P(),t=new Map,r=new Map,o=[],s=new Set;for(let a of e){if(s.has(a))continue;s.add(a);let f=S.get(a);f&&(f.claimedBy||f.kind==="apply-incomplete"||f.kind==="json"||!f.recovery?t.set(a,T):o.push(f))}if(S.hasPendingApply()){for(let a of o)t.set(a.id,T);return{ops:[],covered:r,blocked:t,revision:n,before:null}}let i=[],c=a=>{let f=S.recoveryOf(a.id),p=f?ct(a,f):null;if(!p&&f)for(let E of nt(a,f))i.push({ticket:f.ticket,node:E});return p},l=[];for(let a of o){let f=c(a);f?l.push(f):t.set(a.id,T)}let u=[];for(let a of S.list())if(!s.has(a.id)){if(a.kind==="apply-incomplete")i.push({ticket:a.ticket,node:document.documentElement});else if(a.recovery){let f=c(a);f&&u.push(f)}}l.sort((a,f)=>f.ticket-a.ticket);let d=[],N=[],v=a=>{t.set(a.id,T),N.push(a)};for(let a of l){if(i.some(p=>p.ticket>a.ticket&&et(a,p))||u.some(p=>p.ticket>a.ticket&&q(p,a))||N.some(p=>q(p,a))){v(a);continue}let f=d.find(p=>q(p,a));if(!f){d.push(a);continue}if(tt(f,a)){r.set(a.id,f.id);continue}v(a),f.ticket===a.ticket&&(d.splice(d.indexOf(f),1),v(f))}let A=ne(i.filter(a=>d.some(f=>a.ticket>f.ticket)).map(a=>a.node));return{ops:d,covered:r,blocked:t,revision:P(),protectedWitnesses:A,before:Ee()}}function pt(e){if(e.revision!==P()||!F(e.protectedWitnesses||[])){for(let c of e.ops)e.blocked.set(c.id,T);for(let c of e.covered.keys())e.blocked.set(c,T);return[]}let n=lt(),t=window.clay?.undo;t?.pause?.();let r=new MutationObserver(()=>{}),o=document.createDocumentFragment(),s=[],i=!1;try{ft(r),r.observe(o,ve);let c=e.ops.filter(l=>l.kind==="text").sort((l,u)=>l.root===u.root?u.s-l.s||u.e-l.e:0);for(let l of c)qe(l);for(let l of e.ops)l.kind==="attr"&&ze(l);Qe(e.ops.filter(l=>l.kind!=="text"&&l.kind!=="attr"),o),s=r.takeRecords(),i=e.ops.every(l=>l.check())&&it(e)&&e.revision===P()&&F(e.protectedWitnesses||[])}catch(c){console.error("[clay] Revert to mine failed while writing and was undone",c)}finally{s=s.concat(r.takeRecords()),r.disconnect()}if(i)return dt(s)&&!e.ops.some(c=>c.wroteProperty)?t?.commitCaptured?.("Revert to mine"):t?.discardCaptured?.(),t?.resume?.(),[...e.ops.map(c=>c.id),...e.covered.keys()];try{ut(s,n)}finally{J.dropQueued(),t?.discardCaptured?.(),t?.resume?.()}for(let c of e.ops)e.blocked.set(c.id,T);for(let c of e.covered.keys())e.blocked.set(c,T);return[]}async function wt(e){await Promise.resolve();let n=mt(e),t=pt(n);Q();let r=null;return t.length&&(ee(),S.acknowledge(t,{reason:"reverted"}),X(),await Promise.resolve(),r=await te()),{revertedIds:t,blockedIds:[...n.blocked.keys()],saveResult:r}}export{T as BLOCKED,pt as applyRevert,mt as prepareRevert,wt as revertConflicts};
|
package/dist/m/c-RM7J7BV2.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a,b}from"./c-KIPQJX4B.js";import"./c-QHWJ5ZIJ.js";import"./c-LFPHCXY3.js";import"./c-OIBUTDXI.js";import"./c-4JZDZFF6.js";import"./c-VAK7SG37.js";import"./c-46XYM55L.js";import"./c-NUHP2XDB.js";import"./c-VHNSBD2M.js";export{a as SURFACE_THEME,b as default};
|
package/dist/m/c-RUJKSUQW.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as L,c as M,d as _,f as N}from"./c-GB3JTV6E.js";import"./c-BWFVSBDF.js";import{a as D,b as x}from"./c-A7LS5UZW.js";import"./c-AYVOREBE.js";import"./c-7O6AFR65.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var m="This computer",C=64,O=64,R=/^[\x20-\x7e]{1,128}$/;function X(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}function B(e){return typeof e!="string"?m:e.trim().slice(0,O)||m}function v(e){let r=_(e===void 0?null:e);return r.ok?r.target:null}function j(e,r){let c=null,f=-1;for(let l of r)l.editing===null||l.n<=f||(c=l.editing,f=l.n);return e.editing!==null&&e.n>=f?e.editing:c}function Y({scope:e=null,key:r=null,store:c=N,channel:f=null,label:l=m}={}){let S=B(l),w=r??"clay-live:"+(e??(typeof window<"u"?window.location.pathname:"/")),P="local:"+(e??w),b=X(),i=new Map,d=null,u=0,p=null,I=null,s=null,g=null,a=!1;function h(n){p&&p.post({type:D,from:b,...n})}function y(){let n={id:b,you:!0,n:u,editing:d},t=[];for(let o of i.values())t.push({id:o.id,you:!1,n:o.n,editing:o.editing});let E=[n,...t].sort((o,A)=>o.id<A.id?-1:o.id>A.id?1:0);c.receive({people:[{id:P,name:S,you:!0,canEdit:!0,editing:j(n,t),sessions:E}],anonymous:0})}function T(n){if(!n||n.from===b||typeof n.from!="string"||!R.test(n.from))return;let t=i.get(n.from);if(n.op==="bye"){t&&i.delete(n.from),y();return}if(n.op!=="hello"&&n.op!=="update"&&n.op!=="beat"||!t&&i.size>=C)return;let E=n.op==="beat"?t?t.editing:null:v(n.editing),o=Number.isSafeInteger(n.n)&&n.n>=0?n.n:0;t&&o<t.n||(i.set(n.from,{id:n.from,n:o,editing:E,seenAt:Date.now()}),n.op==="hello"&&!t&&h({op:"hello",n:u,editing:d,label:S}),y())}function U(){if(!a)return;h({op:"beat",n:u});let n=Date.now(),t=!1;for(let[E,o]of i)n-o.seenAt<=M||(i.delete(E),t=!0);t&&y()}function k(n){let t=n&&typeof n=="object"&&"editing"in n?n.editing:null;return d=v(t),u+=1,h({op:"update",n:u,editing:d}),y(),!0}return{sessionId:b,start(){return a||(a=!0,p=f??x(w),I=p.subscribe("presence",T),s=c.attachTransport({send:k}),h({op:"hello",n:u,editing:d,label:S}),y(),g=setInterval(U,L)),s},stop(){a&&(a=!1,g!==null&&clearInterval(g),g=null,h({op:"bye"}),i.clear(),I?.(),I=null,p=null,s?.detach(),s=null)}}}export{m as LOCAL_LABEL,C as MAX_SESSIONS,Y as localPresence};
|
package/dist/m/c-SGCCC4FW.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import{$ as U,I as D,J as A,K as g,O as S,Q as q,R as L,S as H,T as M,U as X,V as z,W,X as v,Y as y,Z as m,_ as w,aa as N,ba as O,ea as V,fa as E,ha as j,ra as x}from"./c-KY3VJGUA.js";import"./c-Y6USGTS5.js";import"./c-EDHUR4MX.js";import"./c-54RCDCBU.js";import{A as T}from"./c-TR6RMDQ7.js";import{D as _,R as K,m as F}from"./c-66O32MV3.js";import"./c-4L3BTFRK.js";import"./c-5V3MOVJT.js";import"./c-VHNSBD2M.js";var G=`
|
|
2
|
-
.page-editor .page-table { position: relative; }
|
|
3
|
-
.page-table td { position: relative; }
|
|
4
|
-
.page-table th { position: relative; }
|
|
5
|
-
.page-table td.is-cell-selected { background: var(--page-block-selected); }
|
|
6
|
-
.page-editor.has-cell-rect .page-table td ::selection, .page-editor.has-cell-rect .page-table td::selection { background: transparent; }
|
|
7
|
-
.page-editor.has-cell-rect .page-table td { caret-color: transparent; }
|
|
8
|
-
.page-table table.is-sized { table-layout: fixed; min-width: 0; }
|
|
9
|
-
.page-table table.is-sized th, .page-table table.is-sized td { min-width: 0; overflow-wrap: anywhere; }
|
|
10
|
-
.page-table-resize { position: absolute; top: 0; bottom: 0; inset-inline-end: -4px; width: 8px; z-index: 2; cursor: col-resize; touch-action: none; }
|
|
11
|
-
.page-table-resize:hover, .page-table-resize:active, .page-table-resize:focus-visible { background: var(--page-accent); opacity: 0.4; }
|
|
12
|
-
.page-table-add-row, .page-table-add-col { position: absolute; z-index: 1; border: 0; padding: 0; background: var(--page-chrome-bg-rest); color: var(--page-chrome-ink-rest); font: inherit; line-height: 1; cursor: pointer; opacity: 0; transition: opacity 120ms; }
|
|
13
|
-
.page-table-add-row { left: 0; right: 0; top: 100%; height: 14px; border-radius: 0 0 6px 6px; }
|
|
14
|
-
.page-table-add-col { top: 0; bottom: 0; left: 100%; width: 14px; border-radius: 0 6px 6px 0; }
|
|
15
|
-
.page-table:hover > .page-table-add-row, .page-table:hover > .page-table-add-col, .page-table-add-row:focus-visible, .page-table-add-col:focus-visible { opacity: 1; }
|
|
16
|
-
.page-table-add-row:hover, .page-table-add-col:hover { background: var(--page-chrome-bg-moved); color: var(--page-ink-soft); }
|
|
17
|
-
.page-table-date { position: absolute; inset-inline-start: 0; top: 100%; z-index: 3; font: inherit; color: var(--page-pop-ink); background: var(--page-pop-bg); border: 1px solid var(--page-pop-line); border-radius: 6px; padding: 4px 6px; box-shadow: var(--page-pop-shadow); }
|
|
18
|
-
@media (max-width: 560px) {
|
|
19
|
-
.page-table-date { min-height: 44px; }
|
|
20
|
-
.page-table-resize { display: none; }
|
|
21
|
-
.page-table-add-row, .page-table-add-col { position: static; display: inline-block; width: 50%; height: 44px; border-radius: 0; opacity: 1; border-block-start: 1px solid var(--page-rule); }
|
|
22
|
-
.page-table-add-row::after { content: " Row"; }
|
|
23
|
-
.page-table-add-col::after { content: " Column"; }
|
|
24
|
-
}
|
|
25
|
-
`;var R=F.nodes,k=c=>_(c.attrs.cols),J=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing"],Q=c=>{let t=c.ownerDocument,e=t.defaultView.getComputedStyle(c),i=t.createElement("span");for(let o of J)i.style[o]=e[o];Object.assign(i.style,{position:"absolute",visibility:"hidden",whiteSpace:"pre",left:"-9999px",top:"0"}),i.textContent=c.textContent,t.body.append(i);let s=i.getBoundingClientRect().width;return i.remove(),Math.ceil(s)},Y=c=>Number.isFinite(c)&&c>0?Math.round(Math.min(y,Math.max(v,c))):null,P=(c,t,e)=>{let i=c.createElement("button");return i.type="button",i.textContent=t,i.setAttribute("aria-label",t),i.addEventListener("click",e),i},$=class{constructor(t,e,i){this.node=t,this.view=e,this.getPos=i,this.preview=null,this.focusCol=null;let s=e.dom.ownerDocument;this.dom=s.createElement("div"),this.dom.className="page-table",this.dom.dataset.id=t.attrs.id??"",this.dom.setAttribute("role","group"),this.dom.setAttribute("aria-label","Table");let o=s.createElement("div");o.className="page-table-scroll";let n=s.createElement("table");this.table=n,this.colgroup=s.createElement("colgroup"),this.header=s.createElement("thead"),this.header.contentEditable="false",this.contentDOM=s.createElement("tbody"),n.append(this.colgroup,this.header,this.contentDOM),o.append(n);let a=P(s,"+",()=>this.append("row"));a.className="page-table-add-row",a.setAttribute("aria-label","Add a row"),a.title="Add a row";let l=P(s,"+",()=>this.append("column"));l.className="page-table-add-col",l.setAttribute("aria-label","Add a column"),l.title="Add a column";for(let r of[a,l])r.contentEditable="false",r.addEventListener("mousedown",h=>h.preventDefault());this.dom.append(o,a,l),this.render()}append(t){let e=this.getPos();if(e==null)return;let i=t==="row"?[this.node.childCount-1,0]:[0,this.node.child(0).childCount-1];E(this.view,e,...i),(t==="row"?L(!0):M(!0))(this.view.state,this.view.dispatch),this.view.focus()}widths(){let t=k(this.node).some(i=>this.node.attrs.cols[i].width),e=k(this.node).map(i=>{let s=this.dom.ownerDocument.createElement("col");s.dataset.col=i;let o=this.node.attrs.cols[i].width;return t&&(s.style.width=`${o??m}px`),s});this.colgroup.replaceChildren(...e),this.table.classList.toggle("is-sized",t),this.table.style.width=t?`${k(this.node).reduce((i,s)=>i+(this.node.attrs.cols[s].width??m),0)}px`:""}resizer(t,e,i,s){let o=this.dom.ownerDocument,n=o.createElement("span");return n.className="page-table-resize",n.dataset.col=t,n.setAttribute("role","separator"),n.setAttribute("aria-orientation","vertical"),n.setAttribute("aria-label",`Resize column ${i.name||`Column ${s+1}`}`),n.setAttribute("aria-valuemin",String(v)),n.setAttribute("aria-valuemax",String(y)),n.setAttribute("aria-valuenow",String(this.widthOfColumn(t))),n.tabIndex=0,n.title="Drag or use the arrow keys to resize, double-click to fit",n.addEventListener("mousedown",a=>a.preventDefault()),n.addEventListener("focus",()=>{this.focusCol=t}),n.addEventListener("blur",()=>this.commitWidth(t)),n.addEventListener("keydown",a=>this.resizeKey(a,t)),n.addEventListener("keyup",a=>{["ArrowLeft","ArrowRight","Home","End"].includes(a.key)&&this.commitWidth(t)}),n.addEventListener("pointerdown",a=>{a.preventDefault();let l=a.clientX,r=this.node.attrs.cols[t].width??(e.getBoundingClientRect().width||m),h=this.dom.ownerDocument.defaultView.getComputedStyle?.(this.dom).direction==="rtl",b=r,u=d=>{b=Y(r+(h?l-d.clientX:d.clientX-l))??r;let f=[...this.colgroup.children].find(p=>p.dataset.col===t);f&&(this.table.classList.add("is-sized"),f.style.width=`${b}px`)},C=()=>{o.removeEventListener("pointermove",u),o.removeEventListener("pointerup",C),b!==r?this.command(w(t,b)):this.widths()};o.addEventListener("pointermove",u),o.addEventListener("pointerup",C)}),n.addEventListener("dblclick",a=>{a.preventDefault(),this.fit(t)}),n}widthOfColumn(t){return this.node.attrs.cols[t]?.width??m}handleFor(t){return[...this.header.querySelectorAll(".page-table-resize")].find(e=>e.dataset.col===t)??null}resizeKey(t,e){let i=t.shiftKey?50:10,s=this.preview?.col===e?this.preview.width:this.widthOfColumn(e),o;if(t.key==="ArrowLeft")o=s-i;else if(t.key==="ArrowRight")o=s+i;else if(t.key==="Home")o=v;else if(t.key==="End")o=y;else if(t.key==="Enter"){t.preventDefault(),this.commitWidth(e);return}else if(t.key==="Escape"){t.preventDefault(),this.cancelWidth(e);return}else return;t.preventDefault(),this.previewWidth(e,Math.min(y,Math.max(v,Math.round(o))))}previewWidth(t,e){let i=this.preview?.col===t?this.preview.base:this.widthOfColumn(t);this.preview={col:t,width:e,base:i};let s=[...this.colgroup.children].find(n=>n.dataset.col===t);s&&(this.table.classList.add("is-sized"),s.style.width=`${e}px`);let o=this.handleFor(t);o&&o.setAttribute("aria-valuenow",String(e))}cancelWidth(t){this.preview?.col===t&&(this.preview=null),this.widths(),this.handleFor(t)?.setAttribute("aria-valuenow",String(this.widthOfColumn(t)))}commitWidth(t){let e=this.preview;if(!e||e.col!==t)return!1;this.preview=null;let i=this.getPos(),s=i==null?null:this.view.state.doc.nodeAt(i),o=s?.type===R.table&&s.attrs.id===this.node.attrs.id?s.attrs.cols[t]:null;if(!o)return this.widths(),!1;if((o.width??m)===e.width)return this.widths(),!1;let n={...s.attrs.cols,[t]:{...o,width:e.width}};return this.view.dispatch(T(this.view.state.tr.setNodeMarkup(i,null,{...s.attrs,cols:n}))),!0}command(t){let e=this.getPos();if(e==null)return!1;E(this.view,e,0,0);let i=t(this.view.state,this.view.dispatch);return this.view.focus(),i}fit(t){let e=0;for(let s of this.contentDOM.querySelectorAll("td"))s.dataset.col===t&&(e=Math.max(e,Q(s.firstElementChild??s)));let i=[...this.header.querySelectorAll("th")].find(s=>s.dataset.col===t)?.querySelector("button");return e=Math.max(e,i?.scrollWidth??0),this.command(w(t,e+24))}render(t=null){let e=this.dom.ownerDocument,i=e.createElement("tr"),s=D(this.node);this.widths();for(let[o,n]of k(this.node).entries()){let a=this.node.attrs.cols[n],l=s[n],r=e.createElement("th");r.dataset.col=n,r.dataset.kind=l,this.node.attrs.sort?.col===n&&r.setAttribute("aria-sort",this.node.attrs.sort.dir==="asc"?"ascending":"descending");let h=P(e,a.name||`Column ${o+1}`,b=>{b.preventDefault();let u=d=>()=>{E(this.view,this.getPos(),0,o),d(this.view.state,this.view.dispatch),this.view.focus()},C=()=>{let d=e.createElement("input");d.type="text",d.value=a.name,d.setAttribute("aria-label","Column name");let f=p=>{p&&d.value.trim()?u(U(n,d.value))():d.isConnected&&(d.replaceWith(h),h.focus())};d.addEventListener("keydown",p=>{p.key==="Enter"&&(p.preventDefault(),f(!0)),p.key==="Escape"&&(p.preventDefault(),f(!1)),p.stopPropagation()}),h.replaceWith(d),d.focus(),d.select()};x(this.view,h,[{label:"Rename",run:C,focus:!1},{label:"Kind \u25B8",icon:A[l],hint:a.kind?g[l]:`Auto: ${g[l]}`,run:()=>x(this.view,h,[{label:"Auto",icon:a.kind?"":A[l],hint:a.kind?"":g[l],checked:!a.kind,run:u(N(n,"auto"))},...K.map(d=>({label:g[d],icon:A[d],checked:a.kind===d,run:u(N(n,d))}))]),focus:!1},{label:"Sort ascending",icon:"\u2191",run:u(O(n,"asc"))},{label:"Sort descending",icon:"\u2193",run:u(O(n,"desc"))},{label:"Width \u25B8",icon:"\u2194",hint:a.width?`${a.width}px`:"Auto",focus:!1,run:()=>x(this.view,h,[{label:"Wider",icon:"+",run:()=>this.command(w(n,(a.width??(r.getBoundingClientRect().width||m))+40))},{label:"Narrower",icon:"\u2212",run:()=>this.command(w(n,(a.width??(r.getBoundingClientRect().width||m))-40))},{label:"Fit to content",icon:"\u2194",run:()=>this.fit(n)},...a.width?[{label:"Reset width",icon:"\xD7",run:()=>this.command(w(n,null))}]:[]])},{label:"Chart this table",icon:"\u{1F4CA}",run:()=>j(this.view,this.getPos())},{label:"Insert column left",icon:"+",run:u(M(!1))},{label:"Insert column right",icon:"+",run:u(M(!0))},...o>0?[{label:"Move left",icon:"\u2190",run:u(W(-1))}]:[],...o<k(this.node).length-1?[{label:"Move right",icon:"\u2192",run:u(W(1))}]:[],{label:"Select column",icon:"\u25A6",run:()=>S(this.view,this.getPos(),"col",o)},{label:"Delete column",icon:"\xD7",run:u(X)}])});h.dataset.kind=l,r.append(h,this.resizer(n,r,a,o)),i.append(r)}this.header.replaceChildren(i),t&&this.handleFor(t)?.focus()}update(t){if(t.type!==R.table)return!1;let e=this.focusCol&&this.dom.contains(this.dom.ownerDocument.activeElement),i=this.preview;this.node=t,this.dom.dataset.id=t.attrs.id??"",this.preview=null,this.render(e?this.focusCol:null),i&&t.attrs.cols[i.col]&&(t.attrs.cols[i.col].width??m)===i.base&&this.previewWidth(i.col,i.width);let s=D(t);for(let o of this.contentDOM.querySelectorAll("td[data-col]"))o.dataset.kind=s[o.dataset.col]??"text";return!0}stopEvent(t){return!!t.target.closest?.("thead")}ignoreMutation(t){return!this.contentDOM.contains(t.target)}},B=class{constructor(t,e,i){this.node=t,this.view=e,this.getPos=i,this.date=null;let s=e.dom.ownerDocument;this.dom=s.createElement("td"),q.set(this.dom,this),this.dom.dataset.col=t.attrs.col,this.contentDOM=s.createElement("span"),this.dom.append(this.contentDOM);let o=s.createElement("button");o.type="button",o.className="page-table-row-menu",o.textContent="Row actions",o.setAttribute("aria-label","Row actions"),o.contentEditable="false",o.addEventListener("click",()=>{let n=this.view.state.doc.resolve(this.getPos()),a=n.before(1),l=n.index(1),r=b=>()=>{E(this.view,a,l,0),b(this.view.state,this.view.dispatch),this.view.focus()},h=n.node(1).childCount;x(this.view,o,[{label:"Insert above",icon:"+",run:r(L(!1))},{label:"Insert below",icon:"+",run:r(L(!0))},...l>0?[{label:"Move up",icon:"\u2191",run:r(z(-1))}]:[],...l<h-1?[{label:"Move down",icon:"\u2193",run:r(z(1))}]:[],{label:"Select row",icon:"\u25A6",run:()=>S(this.view,a,"row",l)},{label:"Delete row",icon:"\xD7",run:r(H)}])}),this.menu=o,this.dom.append(o),this.update(t)}update(t){if(t.type!==R.table_cell)return!1;this.node=t;let e=this.view.state.doc.resolve(this.getPos()),i=e.node(1);return this.dom.dataset.kind=D(i)[t.attrs.col]??"text",this.menu.hidden=e.index(2)!==0,this.dom.dataset.kind!=="date"&&this.closeDate(),!0}openDate(){if(this.date||this.dom.dataset.kind!=="date")return!1;let e=this.dom.ownerDocument.createElement("input");e.type="date",e.className="page-table-date",e.contentEditable="false",e.setAttribute("aria-label","Pick a date");let i=this.node.textContent.trim();/^\d{4}-\d{2}-\d{2}$/.test(i)&&(e.value=i),e.addEventListener("change",()=>{e.value&&V(this.view,this.getPos(),e.value),this.closeDate(),this.view.focus()}),e.addEventListener("keydown",s=>{s.key==="Escape"&&(s.preventDefault(),this.closeDate(),this.view.focus()),s.stopPropagation()}),e.addEventListener("blur",()=>this.closeDate()),this.date=e,this.dom.append(e);try{e.showPicker?.()}catch{}return!0}closeDate(){let t=this.date;this.date=null,t?.isConnected&&t.remove()}destroy(){this.closeDate()}stopEvent(t){return!!t.target.closest?.(".page-table-row-menu, .page-table-date")}ignoreMutation(t){return!this.contentDOM.contains(t.target)}};function ct(){return{id:"table",nodeViews:{table:(c,t,e)=>new $(c,t,e),table_cell:(c,t,e)=>new B(c,t,e)},css:G,dispose(){}}}export{B as TableCellView,$ as TableView,ct as createFeature};
|
package/dist/m/c-T4VO4OCB.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a,b as d,c,d as o}from"./c-QIX5BJYN.js";import{a as l}from"./c-VKEDWYDF.js";import{i}from"./c-7O6AFR65.js";import{k as u}from"./c-35NBGMZB.js";var n="[editmode\\:contenteditable]";function f(){u(t=>{t.querySelectorAll(n).forEach(o)})}function m(){i&&l(()=>{s()})}function s(t=document){t.querySelectorAll(n).forEach(e=>{a(e);let r=e.getAttribute("inert-contenteditable")??e.getAttribute("contenteditable")??d(e,"inert-contenteditable")??"true",b=r.toLowerCase();e.setAttribute("contenteditable",["","true","false","plaintext-only"].includes(b)?r:"true"),e.removeAttribute("inert-contenteditable")})}function h(){document.querySelectorAll(n).forEach(t=>{o(t),c(t)})}function y(){f(),m()}export{n as a,s as b,h as c,y as d};
|
package/dist/m/c-TQEMVJCS.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var o="X-Clay-Page-Format";export{o as a};
|
package/dist/m/c-TR6RMDQ7.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{C as at,D as it,E as z,Y as zt,Z as ct,_ as Vt,a as N,aa as Rt,b as O,ba as qt,ca as Kt,d as L,e as Y,f as Ct,g as J,j as C,k as Z,m as M,ma as _t,n as tt,p as Dt,u as $t,v as Lt,w as Pt,x as Bt,z as et}from"./c-66O32MV3.js";var de=n=>n==="left"||n==="right"?n:null,{Plugin:kt,PluginKey:ue,TextSelection:I,NodeSelection:Ht,Selection:ot}=O,E=M.nodes,A=n=>n.type===E.list_item,S=n=>n.type===E.toggle,b=n=>n.attrs.parent??null,xt="page-step",R="page-move",yt=n=>n&&(t=>n(Y.closeHistory(t).setMeta(xt,!0)));function y(n){let t=[],e=new Map,o=[];n.forEach((r,a)=>{let s=t.length,i=t[s-1],l=b(r),c=l!==null&&e.has(l)?e.get(l):-1,u=c;if(A(r)){for(i&&A(i.node)&&b(i.node)===l||(o=[]);o.length&&t[o[o.length-1]].node.attrs.indent>=r.attrs.indent;)o.pop();o.length&&(u=o[o.length-1]),o.push(s)}else o=[];let p=c>=0&&(t[c].hidden||!t[c].node.attrs.open);t.push({node:r,at:a,end:a+r.nodeSize,i:s,up:u,depth:c>=0?t[c].depth+1:0,hidden:p,subEnd:s}),S(r)&&r.attrs.id&&e.set(r.attrs.id,s)});for(let r=t.length-1;r>=0;r--){let a=t[r].up;a>=0&&t[r].subEnd>t[a].subEnd&&(t[a].subEnd=t[r].subEnd)}return t}var Vn=(n,t)=>({from:n[t].at,to:n[n[t].subEnd].end});function fe(n,t=null){let e=new Map;t?.forEach(c=>{c.attrs.id&&e.set(c.attrs.id,b(c))}),n.forEach(c=>{c.attrs.id&&e.set(c.attrs.id,b(c))});let o=[];n.forEach((c,u)=>o.push({node:c,at:u}));let r=new Array(o.length).fill(null);for(let c=o.length-2;c>=0;c--){let u=b(o[c+1].node);r[c]=u!==b(o[c].node)?u:r[c+1]}let a=[],s=[null],i=null,l=[];return o.forEach(({node:c,at:u},p)=>{let d=b(c),f=new Set;for(;d!==null&&!s.includes(d)&&!f.has(d);)f.add(d),d=e.has(d)?e.get(d):null;s.includes(d)||(d=null);let m=r[p];s.indexOf(m)>s.indexOf(d)&&(d=m);let h=s.slice(0,s.indexOf(d)+1),x=c.attrs.indent;if(A(c)){let g=Number.isInteger(x)&&x>0?x:0,T=i&&A(i.node)&&i.parent===d;for(T||(l=[]);l.length&&l[l.length-1].orig>g;)l.pop();let D=0;if(l.length){let w=l[l.length-1];D=w.shift,w.orig===g&&l.pop()}x=Math.max(0,Math.min(g-D,T?i.indent+1:0)),l.push({orig:g,shift:g-x})}else l=[];(d!==b(c)||A(c)&&x!==c.attrs.indent)&&a.push({at:u,attrs:{...c.attrs,parent:d,...A(c)?{indent:x}:{}}}),i={node:c,parent:d,indent:x},s=S(c)&&c.attrs.id?[...h,c.attrs.id]:h}),a}function Rn(){return new kt({appendTransaction(n,t,e){if(!n.some(a=>a.docChanged&&!a.getMeta(et)))return null;let o=fe(e.doc,t.doc);if(!o.length)return null;let r=e.tr;for(let a of o)r.setNodeMarkup(a.at,null,a.attrs);return r}})}function rt(n,t,e){let o=n.resolve(t.from).index(0),r=Math.min(n.resolve(t.to).index(0),e.length-1);return r>o&&t.to<=e[r].at&&r--,[Math.min(o,e.length-1),r]}var Xt=rt;function P(n,t,e){let o=t;for(;n[o].up>=0&&e>n[n[o].up].subEnd;)o=n[o].up;let r=n[o].up,a=n[o].subEnd;for(;a<e;)a=n[a+1].subEnd;return{lo:o,hi:a,up:r}}var pe=(n,t,e)=>{let o=n.resolve(Math.max(0,Math.min(t,n.content.size)));return o.depth===0?o.pos:e<0?o.before(1):o.after(1)},jt=n=>({id:n.node.attrs.id,at:n.at,node:n.node}),ft=(n,t)=>t.id?n.node.attrs.id===t.id:n.at===t.at&&n.node.type===t.node.type&&n.node.content.eq(t.node.content);function he(n,t,e){let o=[];for(let r=t;r<=e;r=n[r].subEnd+1)o.push(jt(n[r]));return{roots:o,members:n.slice(t,e+1).map(jt)}}function me(n,t){let e=t.roots.map(s=>n.findIndex(i=>ft(i,s))).filter(s=>s>=0);if(!e.length||e.some(s=>n[s].hidden))return null;let o=e[0],r=n[o].up,a=n[o].subEnd;for(let s of e.slice(1)){if(s!==a+1||n[s].up!==r)return null;a=n[s].subEnd}return n.slice(o,a+1).some(s=>!t.members.some(i=>ft(s,i)))?null:{lo:o,hi:a}}var ge=(n,t)=>{let e=o=>({...o,at:t.map(o.at,1)});return{roots:n.roots.map(e),members:n.members.map(e)}},k=class n extends ot{map(t,e){return this.getBookmark().map(e).resolve(t)}eq(t){return t instanceof n&&t.anchor===this.anchor&&t.head===this.head}toJSON(){return{type:"page-block",anchor:this.anchor,head:this.head}}static fromJSON(t,e){return new n(t.resolve(e.anchor),t.resolve(e.head))}getBookmark(){let{lo:t,hi:e}=this.span();return new pt(this.anchor,this.head,he(y(this.$from.doc),t,e))}span(t=this.$from.doc){return{lo:t.resolve(this.from).index(0),hi:t.resolve(this.to).index(0)-1}}};k.prototype.visible=!1;ot.jsonID("page-block",k);var pt=class n{constructor(t,e,o){this.anchor=t,this.head=e,this.span=o}map(t){let e=this.anchor<=this.head;return new n(t.map(this.anchor,e?1:-1),t.map(this.head,e?-1:1),ge(this.span,t))}resolve(t){let e=y(t),o=me(e,this.span);if(!o){let s=e.find(i=>ft(i,this.span.roots[0]));return ot.near(t.resolve(s?.at??pe(t,Math.min(this.anchor,this.head),-1)))}let r=e[o.lo].at,a=e[o.hi].end;return this.anchor<=this.head?new k(t.resolve(r),t.resolve(a)):new k(t.resolve(a),t.resolve(r))}},Qt=(n,t)=>{for(let e=t-1;e>=0;e--)if(n[e].up===n[t].up)return e;return-1};function G(n,t,e,o,r=()=>null){let a=r(n[t])||{},s="parent"in a?a.parent:b(n[t].node),i=null;for(let u=0;u<n.length&&n[u].end<=o;u++)u>=t&&u<=e||b(n[u].node)===s&&(i=n[u].node.attrs.id);let l=[],c={};for(let u=t;u<=e;u++){let p=n[u].node,d=r(n[u]);l.push(p.attrs.id),d&&"indent"in d&&d.indent!==p.attrs.indent&&(c[p.attrs.id]={indent:d.indent})}return{ids:l,afterId:i,parent:s,attrs:c}}function Yt(n,t,e,o,r,a=()=>null,s=n.selection){let i=t[e].at,l=t[o].end,c=l-i,u=[];for(let m=e;m<=o;m++){let h=t[m].node;u.push(h.type.create({...h.attrs,...a(t[m])||{},pos:null},h.content,h.marks))}let p=n.tr.delete(i,l),d=r>i?r-c:r;p.insert(d,u);let f=d-i;return s instanceof k?p.setSelection(new k(p.doc.resolve(s.anchor+f),p.doc.resolve(s.head+f))):s instanceof Ht?p.setSelection(Ht.create(p.doc,s.from+f)):p.setSelection(I.create(p.doc,s.anchor+f,s.head+f)),p.setMeta(R,G(t,e,o,r,a))}function ht(n,t,e){let o=n[e].node;if(S(o)){let a=o.attrs.id,s=b(o);return i=>b(i.node)===a?{parent:s}:null}let r=o.attrs.indent-n[t].node.attrs.indent;return a=>A(a.node)?{indent:a.node.attrs.indent+r}:null}var Ut=n=>(t,e)=>{e=yt(e);let o=y(t.doc);if(!o.length)return!1;let[r,a]=rt(t.doc,t.selection,o),{lo:s,hi:i,up:l}=P(o,r,a),c,u=()=>null;if(n<0){let p=Qt(o,s);if(p>=0)c=o[p].at;else if(l>=0)c=o[l].at,u=ht(o,s,l);else return!0}else{let p=i+1;if(p<o.length&&o[p].up===l)c=o[o[p].subEnd].end;else if(l>=0)c=o[o[l].subEnd].end,u=ht(o,s,l);else return!0}return e&&e(Yt(t,o,s,i,c,u).scrollIntoView()),!0},be=8,nt=(n,t)=>A(n.node)&&A(t.node)&&b(n.node)===b(t.node);function ke(n,t){t=yt(t);let e=y(n.doc);if(!e.length)return!1;let[o,r]=rt(n.doc,n.selection,e),a=e[o];if(A(a.node)&&o>0&&nt(e[o-1],a)){if(a.node.attrs.indent>e[o-1].node.attrs.indent)return!0;for(let i=o;i<=Math.max(r,a.subEnd);i++)if(e[i].node.attrs.indent>=be)return!0;if(t){let i=n.tr,l=r;for(let u=o;u<=l;u++)l=Math.max(l,e[u].subEnd);let c=o-1;for(let u=o;u<=l&&nt(e[u],a);u++)i.setNodeMarkup(e[u].at,null,{...e[u].node.attrs,indent:e[u].node.attrs.indent+1}),c=u;i.setMeta(R,G(e,o,c,e[o].at,u=>u.i>=o&&u.i<=c?{indent:u.node.attrs.indent+1}:null)),t(i)}return!0}let s=Qt(e,o);if(s<0||!S(e[s].node)||e[s].subEnd!==o-1)return!0;if(t){let{hi:i}=P(e,o,r),l=n.tr,c=b(a.node),u=e[s].node.attrs.id,p=[];for(let f=o;f<=i;f++)b(e[f].node)===c&&(l.setNodeMarkup(e[f].at,null,{...e[f].node.attrs,parent:u}),p.push(e[f].node.attrs.id));e[s].node.attrs.open||l.setNodeMarkup(e[s].at,null,{...e[s].node.attrs,open:!0});let d=G(e,o,i,e[o].at,f=>f.i>=o&&f.i<=i&&b(f.node)===c?{parent:u}:null);l.setMeta(R,{...d,ids:p,attrs:e[s].node.attrs.open?d.attrs:{...d.attrs,[u]:{open:!0}}}),t(l)}return!0}function At(n,t){t=yt(t);let e=y(n.doc);if(!e.length)return!1;let[o,r]=rt(n.doc,n.selection,e),a=e[o];if(A(a.node)&&a.node.attrs.indent>0){if(t){let{lo:u,hi:p}=P(e,o,r),d=n.tr,f=new Set;for(let m=o;m<=r;){let h=e[m];if(A(h.node)&&h.node.attrs.indent>0)for(let x=m;x<=h.subEnd;x++)A(e[x].node)&&(d.setNodeMarkup(e[x].at,null,{...e[x].node.attrs,indent:e[x].node.attrs.indent-1}),f.add(x));m=h.subEnd+1}d.setMeta(R,G(e,u,p,e[u].at,m=>f.has(m.i)?{indent:m.node.attrs.indent-1}:null)),t(d)}return!0}if(b(a.node)===null)return!0;let{lo:i,hi:l}=P(e,o,r),c=e[i].up;for(;c>=0&&!S(e[c].node);)c=e[c].up;if(c<0)return!0;if(t){let u=ht(e,i,c),p=e[c].subEnd;if(l===p){let d=n.tr;for(let f=i;f<=l;f++){let m=u(e[f]);m&&d.setNodeMarkup(e[f].at,null,{...e[f].node.attrs,...m})}d.setMeta(R,G(e,i,l,e[i].at,u)),t(d)}else t(Yt(n,e,i,l,e[p].end,u).scrollIntoView())}return!0}function Jt(n){let t=n.tr;return n.selection.empty||t.deleteSelection(),t}function xe(n,t){let{$from:e,$to:o,empty:r}=n.selection;if(e.depth!==1||!A(e.parent)||!e.sameParent(o))return!1;if(r&&e.parent.content.size===0){let m=e.parent;return m.attrs.indent>0?At(n,t):(t&&t(n.tr.setNodeMarkup(e.before(),E.paragraph,{id:m.attrs.id,pos:m.attrs.pos,parent:m.attrs.parent})),!0)}let a=Jt(n),s=a.selection.$from,i=s.parent,l=y(a.doc),c=s.index(0),u=s.parentOffset===0,p=s.parentOffset===i.content.size,d=l[c+1],f=p&&d&&nt(d,l[c])&&d.node.attrs.indent>i.attrs.indent;return u?(a.split(s.pos,1,[{type:E.list_item,attrs:i.attrs}]),a.setNodeMarkup(l[c].at,null,{...i.attrs,checked:!1})):a.split(s.pos,1,[{type:E.list_item,attrs:{...i.attrs,checked:!1,indent:i.attrs.indent+(f?1:0)}}]),t&&t(a.scrollIntoView()),!0}function ye(n,t){let{$from:e,$to:o}=n.selection;if(e.depth!==1||!S(e.parent)||!e.sameParent(o))return!1;let r=Jt(n),a=r.selection.$from,s=a.parent,i=y(r.doc),l=a.index(0),c=i[l],u=c.subEnd>l;if(s.content.size===0&&!u)return r.setNodeMarkup(c.at,E.paragraph,{id:s.attrs.id,pos:s.attrs.pos,parent:s.attrs.parent}),t&&t(r),!0;if(a.parentOffset===0&&s.content.size>0)return r.insert(c.at,E.paragraph.create({parent:b(s)})),t&&t(r.scrollIntoView()),!0;let p=s.content.cut(a.parentOffset);if(s.attrs.open)r.split(a.pos,1,[{type:E.paragraph,attrs:{parent:s.attrs.id}}]);else{let d=i[c.subEnd].end,f=r.steps.length;r.delete(a.pos,c.end-1);let m=r.mapping.slice(f).map(d);r.insert(m,E.toggle.create({parent:b(s),open:!1},p)),r.setSelection(I.create(r.doc,m+1))}return t&&t(r.scrollIntoView()),!0}function Ae(n,t){let{$from:e,empty:o}=n.selection;if(!o||e.depth!==1||e.parent.type!==E.paragraph||e.parent.content.size)return!1;let r=b(e.parent);if(r===null)return!1;let a=y(n.doc),s=e.index(0),i=a.findIndex(l=>l.node.attrs.id===r);if(i<0||a[i].subEnd!==s)return!1;if(t){let l=a[s].node.attrs.id,c=b(a[i].node),u=s>0?a[s-1].node:null,p=n.tr.setNodeMarkup(a[s].at,null,{...e.parent.attrs,parent:c});p.setMeta(R,{ids:[l],afterId:u?u.attrs.id:null,parent:b(u??a[s].node),attrs:{[l]:{parent:c}}}),t(p)}return!0}function Se(n,t){let{$from:e,empty:o}=n.selection;if(!o||e.depth!==1||!e.parent.isTextblock||e.parent.type.spec.code)return!1;let r=e.parent;if(A(r)||S(r)||b(r)===null||e.parentOffset!==r.content.size)return!1;if(t){let a=n.tr.split(e.pos,1,[{type:E.paragraph,attrs:{parent:b(r)}}]);t(a.scrollIntoView())}return!0}function we(n,t){let{$from:e,empty:o}=n.selection;if(!o||e.depth!==1||!A(e.parent)||e.parentOffset!==0)return!1;if(e.parent.attrs.indent>0)return At(n,t);let r=e.parent;return t&&t(n.tr.setNodeMarkup(e.before(),E.paragraph,{id:r.attrs.id,pos:r.attrs.pos,parent:r.attrs.parent})),!0}function Ee(n,t){let{$from:e,empty:o}=n.selection;if(!o||e.depth!==1||!S(e.parent)||e.parentOffset!==0)return!1;let r=e.parent;return t&&t(n.tr.setNodeMarkup(e.before(),E.paragraph,{id:r.attrs.id,pos:r.attrs.pos,parent:r.attrs.parent})),!0}function St(n,t){if(t<=0||!n[t-1].hidden)return-1;let e=t-1;for(;e>=0&&n[e].hidden;)e--;return e>=0&&S(n[e].node)&&n[e].subEnd>=t-1?e:-1}function wt(n,t,e,o){let r=n.tr,a=t[o],s=t[e].end-1;return r.delete(a.at,a.end),a.node.content.size&&r.insert(s,a.node.content),r.setSelection(I.create(r.doc,s))}function Me(n,t){let{$from:e,empty:o}=n.selection;if(!o||e.depth!==1||e.parentOffset!==0||!e.parent.isTextblock)return!1;let r=y(n.doc),a=e.index(0),s=St(r,a);return s<0?!1:(t&&t(wt(n,r,s,a).scrollIntoView()),!0)}function ve(n,t){let{$from:e,empty:o}=n.selection;if(!o||e.depth!==1||!S(e.parent)||e.parent.attrs.open||e.parentOffset!==e.parent.content.size)return!1;let r=y(n.doc),a=e.index(0),s=r[a].subEnd+1;return s===a+1?!1:(s>=r.length||!r[s].node.isTextblock||t&&t(wt(n,r,a,s).scrollIntoView()),!0)}function Te(n,t){let{$from:e,empty:o}=n.selection;if(!o||e.depth!==1)return!1;let r=e.parent,a=e.index(0);if(!r.isTextblock||r.type.spec.code||S(r)||!r.content.size||e.parentOffset!==r.content.size||a+1>=n.doc.childCount||!S(n.doc.child(a+1)))return!1;if(t&&r.type!==E.paragraph)t(n.tr.setSelection(I.create(n.doc,e.after()+1)).scrollIntoView());else if(t){let s=e.before(),i=n.tr.insert(e.after()+1,r.content).delete(s,e.after());t(i.setSelection(I.create(i.doc,s+1+r.content.size)).scrollIntoView())}return!0}var Zt=n=>(t,e)=>{let{$from:o,empty:r}=t.selection;if(!r||o.depth!==1||!o.parent.isTextblock)return!1;let a=o.parent,s=o.index(0);if(o.parentOffset!==(n<0?0:a.content.size))return!1;let i=y(t.doc),l=n<0?St(i,s):-1,c=l>=0?l:s+n;if(c<0||c>=i.length)return!1;let u=i[c].node;if(!u.isTextblock||!a.type.spec.code&&!u.type.spec.code)return!1;if(!e)return!0;let p=t.tr,d=i[s],f=i[c],m=n<0?f.end-1:f.at+1;return!a.content.size&&!a.type.spec.code?p.delete(d.at,d.end).setSelection(I.create(p.doc,p.mapping.map(m))):!u.content.size&&!u.type.spec.code?p.delete(f.at,f.end):p.setSelection(I.create(p.doc,m)),e(p.scrollIntoView()),!0},Ie=Zt(-1),Ne=Zt(1);function Oe(n,t){let{$from:e,empty:o}=n.selection;if(!o||e.depth!==1||e.parentOffset!==0||!e.parent.isTextblock)return!1;let r=e.parent;if(A(r)||S(r)||b(r)===null)return!1;let a=e.index(0);return n.doc.child(a-1).attrs.id!==b(r)?!1:(t&&t(wt(n,y(n.doc),a-1,a).scrollIntoView()),!0)}function te(n,t,e,o=y(n.doc)){let r=o[t];return n.tr.setNodeMarkup(r.at,null,{...r.node.attrs,open:e}).setMeta("addToHistory",!1)}function Ce(n,t){let{$from:e}=n.selection;return e.depth!==1||!S(e.parent)?!1:(t&&t(te(n,e.index(0),!e.parent.attrs.open)),!0)}function De(n){let t=[];for(let e of n)!S(e.node)||e.hidden||e.node.attrs.open||e.subEnd===e.i||t.push({line:e.at+1,sumEnd:e.end-1,from:e.end,to:n[e.subEnd].end});return t}var mt=(n,t)=>t>n.from&&t<n.to;function gt(n,t,e,o){if(o>0){let r=e.to;for(;;){let a=ot.findFrom(n.resolve(r),1,!0);if(!a)break;let s=t.find(i=>mt(i,a.head));if(!s)return a.head;r=s.to}}return e.sumEnd}function Ft(n,t,e,o=-1,r=!1){if(!e.length)return null;let{anchor:a,head:s}=t;if(!(t instanceof I)){let c=e.find(u=>t.from>=u.from&&t.from<u.to);return c?I.create(n,c.sumEnd):null}let i=e.find(c=>mt(c,s));i&&(s=gt(n,e,i,o));let l=e.find(c=>mt(c,a));if(l&&(a=l.sumEnd),!r&&a!==s){let c=Math.min(a,s),u=Math.max(a,s),p=e.find(d=>(c>d.line||c===d.sumEnd)&&c<d.from&&u>=d.to);if(p){let d=c===p.sumEnd?gt(n,e,p,1):p.line;a<s?a=d:s=d}}return a===t.anchor&&s===t.head?null:I.create(n,a,s)}var $e=n=>{let t="";for(;n>0;)n--,t=String.fromCharCode(97+n%26)+t,n=Math.floor(n/26);return t},Le=n=>[[1e3,"m"],[900,"cm"],[500,"d"],[400,"cd"],[100,"c"],[90,"xc"],[50,"l"],[40,"xl"],[10,"x"],[9,"ix"],[5,"v"],[4,"iv"],[1,"i"]].reduce((t,[e,o])=>{for(;n>=e;)t+=o,n-=e;return t},"");function Pe(n){let t=new Map,e=[];return n.forEach((o,r)=>{if(!A(o.node)){e=[];return}r>0&&!nt(n[r-1],o)&&(e=[]);let a=o.node.attrs.indent;if(e.length=a+1,o.node.attrs.kind!=="ordered"){e[a]=0;return}e[a]=(e[a]||0)+1;let s=e[a];t.set(r,`${a%3===0?s:a%3===1?$e(s):Le(s)}.`)}),t}var U=new ue("page-collapse"),Be=["id","parent","indent","kind","open"];function ze(n,t){if(n.childCount!==t.childCount)return!1;for(let e=0;e<n.childCount;e++){let o=n.child(e),r=t.child(e);if(o!==r){if(o.type!==r.type)return!1;for(let a of Be)if(o.attrs[a]!==r.attrs[a])return!1}}return!0}function Gt(n){let t=y(n);return{decos:Ve(n,t),ranges:De(t)}}function Ve(n,t=y(n)){let{Decoration:e,DecorationSet:o}=L,r=Pe(t),a=[];for(let s of t){let i={};s.hidden&&(i.class="page-hidden",i["aria-hidden"]="true"),s.depth&&(i.style=`--page-depth:${s.depth}`),r.has(s.i)&&(i["data-marker"]=r.get(s.i)),S(s.node)&&(i["aria-expanded"]=s.node.attrs.open?"true":"false"),Object.keys(i).length&&a.push(e.node(s.at,s.end,i)),S(s.node)&&!s.hidden&&a.push(e.widget(s.at+1,()=>Re(s.node),{side:-1,ignoreSelection:!0,key:`t:${s.node.attrs.id}:${s.node.attrs.open}`}))}return o.create(n,a)}function Re(n){let t=document.createElement("button");return t.type="button",t.className="page-toggle-button",t.contentEditable="false",t.setAttribute("aria-label",n.attrs.open?"Collapse":"Expand"),t.setAttribute("data-toggle",n.attrs.id||""),t}function qn(){let n=!1;return new kt({key:U,state:{init:(t,e)=>Gt(e.doc),apply(t,e,o,r){if(!t.docChanged)return e;if(!ze(o.doc,r.doc))return Gt(r.doc);let a=t.mapping;return{decos:e.decos.map(a,r.doc),ranges:e.ranges.map(s=>({line:a.map(s.line,-1),sumEnd:a.map(s.sumEnd),from:a.map(s.from),to:a.map(s.to,-1)}))}}},appendTransaction(t,e,o){if(!t.some(i=>i.docChanged||i.selectionSet))return null;let a=t.some(i=>i.selectionSet)&&o.selection.head>=e.selection.head?1:-1,s=Ft(o.doc,o.selection,U.getState(o).ranges,a,n);return s?o.tr.setSelection(s):null},props:{decorations:t=>U.getState(t).decos,handleDOMEvents:{mousedown:(t,e)=>{let o=e.target.closest?.(".page-toggle-button");if(o){e.preventDefault();let s=y(t.state.doc),i=s.findIndex(l=>l.node.attrs.id===o.dataset.toggle);return i>=0&&t.dispatch(te(t.state,i,!s[i].node.attrs.open,s)),!0}n=!0;let r=t.dom.ownerDocument.defaultView,a=()=>{n=!1,r.removeEventListener("mouseup",a,!0);let s=Ft(t.state.doc,t.state.selection,U.getState(t.state).ranges,1,!1);s&&t.dispatch(t.state.tr.setSelection(s))};return r.addEventListener("mouseup",a,!0),!1}},handleKeyDown(t,e){let o={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1}[e.key];if(!o||e.altKey||e.metaKey||e.ctrlKey)return!1;let{head:r}=t.state.selection,s=e.key==="ArrowDown"||e.key==="ArrowUp"?o>0?"down":"up":o>0?"forward":"backward";if(!t.endOfTextblock(s))return!1;let i=y(t.state.doc),{ranges:l}=U.getState(t.state),u=t.state.doc.resolve(r).index(0),p=null;if(o>0){let f=l.find(m=>m.from===i[u].end);f&&(p=gt(t.state.doc,l,f,1))}else{let f=St(i,u);f>=0&&(p=e.shiftKey?i[f].at+1:i[f].end-1)}if(p===null||p===r)return!1;let d=e.shiftKey?t.state.selection.anchor:p;return t.dispatch(t.state.tr.setSelection(I.create(t.state.doc,d,p)).scrollIntoView()),!0}}})}var Wt=/^([ \t]*)(?:([-*+•])|(\d+)[.)])[ \t]+(?:\[([ xX])\][ \t]+)?(.*)$/;function qe(n){let t=n.replace(/\r\n?/g,`
|
|
2
|
-
`).split(`
|
|
3
|
-
`);if(!t.some(r=>Wt.test(r)))return null;let e=[],o=[];for(let r of t){if(!r.trim())continue;let a=Wt.exec(r);if(!a){e.length=0,o.push(E.paragraph.create(null,r.trim()?M.text(r.trim()):null));continue}let s=a[1].replace(/\t/g," ").length;for(;e.length&&e[e.length-1]>s;)e.pop();(!e.length||e[e.length-1]<s)&&e.push(s);let i=Math.min(e.length-1,o.length&&A(o[o.length-1])?o[o.length-1].attrs.indent+1:0),l=a[4]!==void 0?"check":a[3]!==void 0?"ordered":"bullet";o.push(E.list_item.create({kind:l,indent:i,checked:a[4]==="x"||a[4]==="X"},a[5]?M.text(a[5]):null))}return new N.Slice(N.Fragment.from(o),0,0)}var lt=new Set(["UL","OL"]),dt=new Set(["P","DIV","H1","H2","H3","H4","H5","H6","PRE","BLOCKQUOTE","UL","OL","LI","DETAILS","SUMMARY","TABLE","HR","FIGURE"]);function Ke(n){let t=n.querySelector(":scope > input[type=checkbox], :scope > p > input[type=checkbox], :scope > label > input[type=checkbox]");if(t)return{check:!0,checked:t.checked||t.hasAttribute("checked")};if(n.getAttribute("role")==="checkbox"||n.hasAttribute("aria-checked"))return{check:!0,checked:n.getAttribute("aria-checked")==="true"};if(n.hasAttribute("data-checked"))return{check:!0,checked:n.getAttribute("data-checked")==="true"};let o=n.className||"";return/\b(checked|task-list-item|to-do)\b/.test(o)||n.closest?.("ul.to-do-list, ul.contains-task-list")?{check:!0,checked:/\bchecked\b/.test(o)||!!n.querySelector(".checkbox-on")}:{check:!1,checked:!1}}function _e(n){let t=(n.getAttribute("style")||"")+";"+(n.parentElement?.getAttribute("style")||""),e=/list-style-type\s*:\s*([a-z-]+)/i.exec(n.getAttribute("style")||"")?.[1];return e?/decimal|alpha|roman|latin|greek/.test(e)?"ordered":"bullet":n.parentElement?.tagName==="OL"?"ordered":"bullet"}function He(n,t=globalThis.document){let e=t.createElement("div");e.innerHTML=n;for(let d of e.querySelectorAll('b[style*="font-weight:normal"], b[style*="font-weight: normal"]'))d.replaceWith(...d.childNodes);let o=0,r=t.createElement("div"),a=d=>{let f=parseInt(d.getAttribute("aria-level"),10);if(f>0)return f-1;let m=-1;for(let h=d.parentElement;h&&h!==e;h=h.parentElement)lt.has(h.tagName)&&m++;return Math.max(0,m)},s=[];function i(d,f,m){let h=t.createElement("div"),{check:x,checked:g}=Ke(d);h.setAttribute("data-page-li",""),h.setAttribute("data-kind",x?"check":_e(d)),h.setAttribute("data-checked",g?"true":"false"),h.dataset.depth=String(a(d)),f&&h.setAttribute("data-page-parent",f);let T=!0,D=[];for(let w of[...d.childNodes]){if(w.nodeType===1&<.has(w.tagName)){D.push(w);continue}if(!(w.nodeType===1&&w.tagName==="INPUT")){if(w.nodeType===1&&dt.has(w.tagName)){T||h.appendChild(t.createElement("br"));for(let B of[...w.childNodes])B.nodeType===1&&B.tagName==="INPUT"||h.appendChild(B);T=!1;continue}h.appendChild(w),(w.nodeType!==3||w.textContent.trim())&&(T=!1)}}m.appendChild(h),s.push(h);for(let w of D)l(w,f,m)}function l(d,f,m){let h=null,x=g=>{h||(h=t.createElement("p"),f&&h.setAttribute("data-page-parent",f),m.appendChild(h)),h.appendChild(g)};for(let g of[...d.childNodes])if(!(g.nodeType===1&&(g.tagName==="META"||g.tagName==="STYLE"))){if(g.nodeType===1&&g.tagName==="BR"){h=null;continue}if(g.nodeType!==1){g.nodeType===3&&(h||g.textContent.trim())&&x(g);continue}if(!dt.has(g.tagName)&&g.tagName!=="ASIDE"){x(g);continue}if(h=null,lt.has(g.tagName)){l(g,f,m);continue}if(g.tagName==="LI"){i(g,f,m);continue}if(g.tagName==="DETAILS"){let T=`paste-${++o}`,D=g.querySelector(":scope > summary"),w=t.createElement("div");w.setAttribute("data-page-toggle",T),g.hasAttribute("open")&&w.setAttribute("data-open","true"),f&&w.setAttribute("data-page-parent",f),D&&w.append(...D.childNodes),m.appendChild(w);for(let B of[...g.childNodes])if(B!==D){let Ot=t.createElement("div");Ot.appendChild(B),l(Ot,T,m)}continue}if(g.tagName==="DIV"&&!g.hasAttribute("data-page-li")&&[...g.children].some(T=>dt.has(T.tagName))){l(g,f,m);continue}f&&g.setAttribute("data-page-parent",f),m.appendChild(g)}}l(e,null,r);let c=s.length?Math.min(...s.map(d=>+d.dataset.depth)):0,u=null;for(let d of s){let f=+d.dataset.depth-c,m=u&&d.previousElementSibling===u?+u.getAttribute("data-indent")+1:0;d.setAttribute("data-indent",String(Math.min(f,m))),d.removeAttribute("data-depth"),u=d}let p=d=>{if(d.nodeType!==1||d.tagName==="IMG")return[d.cloneNode(!0)];let f=[],m=d.cloneNode(!1);for(let h of d.childNodes)for(let x of p(h))x.nodeType===1&&x.tagName==="IMG"?(m.hasChildNodes()&&f.push(m),f.push(x),m=d.cloneNode(!1)):m.appendChild(x);return(m.hasChildNodes()||!f.length)&&f.push(m),f};for(let d of[...r.children]){if(!d.matches("p, h1, h2, h3, h4, h5, h6, aside, div[data-page-li], div.page-li")||!d.querySelector("img"))continue;let f=p(d),m=d.getAttribute("data-page-parent");if(m)for(let h of f)h.setAttribute("data-page-parent",m);d.replaceWith(...f)}return r.innerHTML}var ut=(n,t=0)=>n!==null&&n!==""&&Number.isInteger(+n)&&+n>=t?+n:null,v=n=>n.getAttribute("data-page-parent")||null,je=Dt([]).type,Ue=Object.create(M,{marks:{value:{...M.marks,[tt]:je}}}),ee=n=>{let t;try{t=_t(n)}catch{return null}return!t||typeof t.t!="string"||t.t==="opaque_block"||Object.hasOwn(Vt,t.t)?null:t},Fe=n=>{let t=ee(n);return t?{raw:t,parent:v(n)}:!1},Ge=n=>{let t=ee(n);if(!t||typeof t.c!="string"||!t.c)return N.Fragment.empty;let e=Pt(t.m,t.c.length);return N.Fragment.from(Bt(M,t.c,e,M.nodes.opaque_block))},We=n=>{try{return{entries:Rt(n.getAttribute(ct))}}catch{return!1}},Xe=new N.DOMParser(Ue,[{tag:`div[${zt}]`,node:"opaque_block",getAttrs:Fe,getContent:Ge},{tag:`span[${ct}]`,mark:tt,getAttrs:We},{tag:"div[data-page-li]",node:"list_item",getAttrs:n=>({kind:n.getAttribute("data-kind")||"bullet",indent:+n.getAttribute("data-indent")||0,checked:n.getAttribute("data-checked")==="true",parent:v(n)})},{tag:"div.page-li",node:"list_item",getAttrs:n=>({kind:n.getAttribute("data-kind")||"bullet",indent:+n.getAttribute("data-indent")||0,checked:n.getAttribute("data-checked")==="true",parent:v(n)})},{tag:"div[data-page-toggle]",node:"toggle",getAttrs:n=>({id:n.getAttribute("data-page-toggle"),open:n.getAttribute("data-open")==="true",parent:v(n)})},{tag:"div.page-toggle",node:"toggle",getAttrs:n=>({id:n.getAttribute("data-id"),open:n.getAttribute("data-open")==="true",parent:null})},{tag:"h1",node:"heading",getAttrs:n=>({level:1,parent:v(n)})},{tag:"h2",node:"heading",getAttrs:n=>({level:2,parent:v(n)})},{tag:"h3",node:"heading",getAttrs:n=>({level:3,parent:v(n)})},{tag:"h4",node:"heading",getAttrs:n=>({level:3,parent:v(n)})},{tag:"pre",node:"code_block",preserveWhitespace:"full",getAttrs:n=>({lang:n.getAttribute("data-lang")||"",parent:v(n)})},{tag:"hr",node:"divider",getAttrs:n=>({parent:v(n)})},{tag:"aside.page-callout",node:"callout",getAttrs:n=>({parent:v(n)})},{tag:'figure:not([data-type]), figure[data-type="image"]',node:"image",getAttrs:n=>{let t=n.querySelector("img"),e=Z(t?.getAttribute("src"));return e?{src:e,alt:t.getAttribute("alt")||"",caption:n.querySelector("figcaption")?.textContent||"",width:ut(n.getAttribute("data-width")??t.getAttribute("width"),1),align:de(n.getAttribute("data-align")),parent:v(n)}:!1}},{tag:"img[src]",node:"image",getAttrs:n=>{let t=Z(n.getAttribute("src"));return t?{src:t,alt:n.getAttribute("alt")||"",width:ut(n.getAttribute("width"),1),parent:v(n)}:!1}},{tag:'div.page-file, div[data-type="file"]',node:"file",getAttrs:n=>{let t=C(n.getAttribute("data-src"));return t?{src:t,name:n.getAttribute("data-name")||"file",size:ut(n.getAttribute("data-size")),mime:n.getAttribute("data-mime")||null,parent:v(n)}:!1}},{tag:"p",node:"paragraph",getAttrs:n=>({parent:v(n)})},{tag:"br",node:"hard_break"},{tag:"strong",mark:"strong"},{tag:"b",mark:"strong",getAttrs:n=>/font-weight\s*:\s*(normal|[1-5]00)\b/.test(n.getAttribute("style")||"")?!1:null},{tag:"span",mark:"strong",getAttrs:n=>/font-weight\s*:\s*(bold|[6-9]00)\b/.test(n.getAttribute("style")||"")?null:!1},{tag:"em",mark:"em"},{tag:"i",mark:"em"},{tag:"span",mark:"em",getAttrs:n=>/font-style\s*:\s*italic/.test(n.getAttribute("style")||"")?null:!1},{tag:"s",mark:"strike"},{tag:"del",mark:"strike"},{tag:"code",mark:"code"},{tag:"a[href]",mark:"link",getAttrs:n=>{let t=C(n.getAttribute("href"));return t?{href:t}:!1}}]);function Qe(n,t){let e=t.selection.$from,o=t.selection instanceof k,r=o?t.doc.child(t.selection.span().lo):e.depth>=1?e.node(1):null,a=r?b(r):null,s=r&&A(r)?r.attrs.indent:0,i=new Map;n.content.forEach(h=>{S(h)&&h.attrs.id&&i.set(h.attrs.id,z())});let l=[];n.content.forEach(h=>{if(!h.type.spec.group?.includes("block")){l.push(h);return}let x=b(h),g={...h.attrs,pos:null,id:S(h)?i.get(h.attrs.id)??null:null,parent:x!==null&&i.has(x)?i.get(x):a};A(h)&&(g.indent=h.attrs.indent+s),l.push(h.type.create(g,h.content,h.marks))});let c=!r||!(A(r)||S(r)),u=h=>h&&(A(h)||S(h)),p=c&&u(l[0])?0:n.openStart,d=l[l.length-1],f=new Set(i.values()),m=c&&(u(d)||d&&f.has(b(d)))?0:n.openEnd;return new N.Slice(N.Fragment.from(l),o?0:p,o?0:m)}var bt=class extends N.DOMSerializer{serializeFragment(t,e,o){let r=super.serializeFragment(t,e,o);if(!t.firstChild?.isBlock)return r;let a=[...r.childNodes];return t.forEach((s,i,l)=>{let c=a[l];!c||c.nodeType!==1||(b(s)!==null&&c.setAttribute("data-page-parent",b(s)),S(s)&&s.attrs.id&&c.setAttribute("data-page-toggle",s.attrs.id),s.type===E.image&&s.attrs.width&&c.setAttribute("data-width",String(s.attrs.width)))}),r}},ne=N.DOMSerializer.fromSchema(M),Ye=n=>{let{t,...e}=n.attrs.raw??{},{c:o,m:r}=$t(n.content);return o?{t,...e,c:o,...r.some(Boolean)?{m:Lt(r)}:{}}:{t,...e}},Je=n=>["div",{"data-type":"newer-format",...qt(Ye(n))},0],Ze=n=>["span",Kt(n.attrs.entries),0],tn={...ne.nodes,opaque_block:Je},en={...ne.marks,[tt]:Ze},nn=new bt(tn,en);function on(n,t,e){let{$from:o}=n.state.selection,r=o.depth>=1?o.node(1):null;if(!r||!S(r)||r.attrs.open||e.content.childCount<2)return!1;let a=n.state.tr.setNodeMarkup(o.before(1),null,{...r.attrs,open:!0}).replaceSelection(e);return n.dispatch(a.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Kn(){return new kt({props:{handlePaste:on,clipboardSerializer:nn,transformPastedHTML:n=>He(n),clipboardParser:Xe,clipboardTextParser:(n,t,e)=>e?null:qe(n),transformPasted:(n,t)=>Qe(n,t.state)}})}var F=J.chainCommands(we,Ee,Ie,Oe,Me),V=J.chainCommands(ve,Te,Ne),_n={Enter:J.chainCommands(xe,ye,Ae,Se),Backspace:F,"Shift-Backspace":F,"Mod-Backspace":F,"Alt-Backspace":F,"Ctrl-h":F,Delete:V,"Shift-Delete":V,"Mod-Delete":V,"Alt-Delete":V,"Ctrl-d":V,"Ctrl-Alt-Backspace":V,Tab:ke,"Shift-Tab":At,"Mod-Shift-ArrowUp":Ut(-1),"Mod-Shift-ArrowDown":Ut(1),"Mod-Enter":Ce};function Un(){return new O.Plugin({view(n){let t=n.dom.ownerDocument.createElement("div");return t.className="page-live",t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),n.dom.parentElement.appendChild(t),{destroy:()=>t.remove()}}})}function Et(n,t){let e=n.dom.parentElement?.querySelector(".page-live");e&&(e.textContent="",e.textContent=t)}var oe=new O.PluginKey("tableRect");var{Selection:rn,TextSelection:K,NodeSelection:sn,Plugin:an,PluginKey:cn}=O,W=M.nodes,_=n=>Y.closeHistory(n).setMeta(xt,!0);function X(n,t,e=t,o=y(n)){let{lo:r,hi:a}=P(o,Math.min(t,e),Math.max(t,e)),s=o[r].at,i=o[a].end;return t<=e?new k(n.resolve(s),n.resolve(i)):new k(n.resolve(i),n.resolve(s))}function ln(n,t=y(n.doc)){let[e,o]=Xt(n.doc,n.selection,t);return P(t,e,o)}var q=(n,t,e)=>{for(let o=t;o>=0&&o<n.length;o+=e)if(!n[o].hidden)return o;return-1};function dn(n,t){if(n.selection instanceof k)return!1;let e=Math.min(n.selection.$head.index(0),n.doc.childCount-1);return t&&t(n.tr.setSelection(X(n.doc,e))),!0}var re=n=>(t,e)=>{let o=t.selection;if(!(o instanceof k))return!1;let r=y(t.doc),{lo:a,hi:s}=o.span(t.doc),i=n<0?q(r,a-1,-1):q(r,s+1,1);return i<0||e&&e(t.tr.setSelection(X(t.doc,i)).scrollIntoView()),!0};function vt(n,t,e,o){if(o<0)return t;let r=t;for(;n[r].subEnd<e;)r=n[r].subEnd+1;return r}function un(n,t){for(let e=t-1;e>=0;e--)if(n[e].up===n[t].up)return e;return t}var se=n=>(t,e)=>{let o=t.selection;if(!(o instanceof k))return!1;let r=y(t.doc),{lo:a,hi:s}=o.span(t.doc),i=o.anchor<=o.head,l=i?a:vt(r,a,s,1),c=i?vt(r,a,s,1):a;return n>0?i||a===s||c===l?c=q(r,(i?s:c)+1,1):c=q(r,r[c].subEnd+1,1):!i||c===l?c=q(r,(i?c:a)-1,-1):c=un(r,c),c<0||e&&e(t.tr.setSelection(X(t.doc,l,c,r)).scrollIntoView()),!0};function st(n,t){let e=n.selection;if(!(e instanceof k))return!1;if(t){let o=n.tr.delete(e.from,e.to);o.doc.content.size===0&&o.insert(0,W.paragraph.create()),o.setSelection(rn.near(o.doc.resolve(Math.min(e.from,o.doc.content.size)),-1)),t(_(o).scrollIntoView())}return!0}function fn({columns:n={},cards:t={}}){let e=it(n),o=new Map(e.map(s=>[s,z("c")])),r=at(null,null,e.length),a={};for(let s of new Set([...e,...Object.values(t).map(i=>i.col)])){let i=it(Object.fromEntries(Object.entries(t).filter(([,c])=>c.col===s))),l=at(null,null,i.length);i.forEach((c,u)=>{a[z("k")]={...t[c],col:o.get(s)??s,pos:l[u]}})}return{columns:Object.fromEntries(e.map((s,i)=>[o.get(s),{...n[s],pos:r[i]}])),cards:a}}function pn(n,t){let e=y(n.doc);if(!e.length)return!1;let{lo:o,hi:r}=ln(n,e);if(t){let a=new Map;for(let p=o;p<=r;p++)e[p].node.type===W.toggle&&e[p].node.attrs.id&&a.set(e[p].node.attrs.id,z());let s=[];for(let p=o;p<=r;p++){let d=e[p].node,f=d.attrs.parent??null;s.push(d.type.create({...d.attrs,...d.type===W.board?fn(d.attrs):{},id:a.get(d.attrs.id)??null,pos:null,parent:a.get(f)??f},d.content,d.marks))}let i=e[r].end,l=i-e[o].at,c=n.tr.insert(i,s),u=n.selection;c.setSelection(u instanceof k?new k(c.doc.resolve(i),c.doc.resolve(i+l)):K.create(c.doc,u.anchor+l,u.head+l)),t(_(c).scrollIntoView())}return!0}var ie=(n,t,e,o)=>{for(let r=e;r<=o;r++)if(t[r].node.isTextblock)return t[r].end-1;return-1};function ae(n,t){let e=n.selection;if(!(e instanceof k))return!1;let o=y(n.doc),{lo:r,hi:a}=e.span(n.doc);if(t){let s=ie(n.doc,o,r,a);t(n.tr.setSelection(s>=0?K.create(n.doc,s):sn.create(n.doc,o[r].at)))}return!0}var hn=({$from:n,$to:t})=>{if(n.depth<2||t.depth<2)return null;let e=n.node(1);return e.type.name==="table"&&t.node(1)===e?{from:n.before(1),to:n.after(1)}:null};function mn(n,t){let e=n.selection,{$from:o,$to:r}=e,a=o.parent.isTextblock&&o.sameParent(r)&&!oe.getState(n),s=a&&o.parentOffset===0&&r.parentOffset===r.parent.content.size;if(a&&!s&&o.parent.content.size)return t&&t(n.tr.setSelection(K.create(n.doc,o.start(),o.end()))),!0;let i=hn(e);return i&&!(e instanceof k&&e.from===i.from&&e.to===i.to)?(t&&t(n.tr.setSelection(new k(n.doc.resolve(i.from),n.doc.resolve(i.to)))),!0):(t&&t(n.tr.setSelection(new k(n.doc.resolve(0),n.doc.resolve(n.doc.content.size)))),!0)}var gn=(n,t)=>{let e=n.state,o=e.selection;if(!(o instanceof k))return!1;let r=y(e.doc),{lo:a,hi:s}=o.span(e.doc),i=ie(e.doc,r,a,s),l=e.tr;if(i<0){let c=r[s].end;l.insert(c,W.paragraph.create({parent:r[a].node.attrs.parent??null})),l.setSelection(K.create(l.doc,c+1)),_(l)}else l.setSelection(K.create(l.doc,i));return l.insertText(t),n.dispatch(l.scrollIntoView()),!0},bn=(n,t,e)=>{let o=n.selection;if(!(o instanceof K)||!e?.endOfTextblock("down"))return!1;let{$anchor:r,$head:a}=o;if(r.depth!==1||r.parent.type!==W.toggle||r.parent.attrs.open||r.index(0)!==a.index(0))return!1;let s=y(n.doc),i=r.index(0),l=q(s,s[i].subEnd+1,1);return l<0?!1:(t&&t(n.tr.setSelection(X(n.doc,i,l,s)).scrollIntoView()),!0)},kn=n=>(t,e,o)=>t.selection instanceof k&&n(t,e,o),xn={Escape:(n,t)=>ae(n,t)||dn(n,t),Enter:kn(ae),ArrowUp:re(-1),ArrowDown:re(1),"Shift-ArrowUp":se(-1),"Shift-ArrowDown":(n,t,e)=>se(1)(n,t)||bn(n,t,e),Backspace:st,"Alt-Backspace":st,"Ctrl-h":st,Delete:st,"Mod-d":pn,"Mod-a":mn},Mt=new cn("page-blocksel"),yn=n=>{let t=n.selection,{lo:e,hi:o}=t.span(n.doc);return y(n.doc).filter(r=>r.i>=e&&r.i<=o&&!r.hidden).length};function eo(){let n=Ct.keymap(xn);return new an({key:Mt,state:{init:()=>0,apply:(t,e,o,r)=>t.getMeta(et)&&o.selection instanceof k&&!(r.selection instanceof k)?e+1:e},props:{handleKeyDown:(t,e)=>n.props.handleKeyDown(t,e),handleTextInput:(t,e,o,r)=>gn(t,r),decorations(t){let e=t.selection;if(!(e instanceof k))return null;let o=[];return t.doc.nodesBetween(e.from,e.to,(r,a)=>(o.push(L.Decoration.node(a,a+r.nodeSize,{class:"page-block-selected"})),!1)),L.DecorationSet.create(t.doc,o)},createSelectionBetween(t,e,o){let r=t.state.selection;return r instanceof k&&e.pos===r.anchor&&o.pos===r.head?r:null},handleDOMEvents:{mousedown(t,e){let o=t.state.selection;if(!e.shiftKey||!(o instanceof k)||e.button!==0)return!1;let r=t.posAtCoords({left:e.clientX,top:e.clientY});if(!r)return!1;let a=y(t.state.doc),s=Math.min(t.state.doc.resolve(r.inside>=0?r.inside:r.pos).index(0),a.length-1),{lo:i,hi:l}=o.span(t.state.doc),c=o.anchor<=o.head?i:vt(a,i,l,1);return e.preventDefault(),t.dispatch(t.state.tr.setSelection(X(t.state.doc,c,s,a))),!0}}},view:()=>({update(t,e){let o=t.state.selection,r=e.selection;if(o instanceof k&&!o.eq(r)){let a=yn(t.state);Et(t,`${a} ${a===1?"block":"blocks"} selected`)}else r instanceof k&&!(o instanceof k)&&Et(t,Mt.getState(t.state)!==Mt.getState(e)?"Block selection cleared because the document changed":"Selection cleared")}})})}var{Plugin:An,PluginKey:Sn,TextSelection:Q}=O,{Decoration:wn,DecorationSet:En}=L,j=M.marks.link,Mn=n=>/^(https?:\/\/|mailto:|tel:|www\.)\S+$/i.test(n.trim())&&C(n)!==null;function Tt(n,t){let e=n.resolve(t);if(!e.parent.inlineContent)return null;let o=j.isInSet((e.nodeAfter??e.nodeBefore)?.marks??[]);if(!o)return null;let r=[];e.parent.forEach((c,u)=>r.push({n:c,off:u}));let a=r.findIndex(({n:c,off:u})=>u<=e.parentOffset&&e.parentOffset<=u+c.nodeSize&&o.isInSet(c.marks));if(a<0)return null;let s=a,i=a;for(;s>0&&o.isInSet(r[s-1].n.marks);)s--;for(;i<r.length-1&&o.isInSet(r[i+1].n.marks);)i++;let l=e.start();return{from:l+r[s].off,to:l+r[i].off+r[i].n.nodeSize,href:o.attrs.href}}function ce(n,t,e,o){let r=n.tr.removeMark(t,e,j);return o&&r.addMark(t,e,j.create({href:o})),_(r)}var $=new Sn("page-link"),It=new WeakMap,le=n=>`<svg viewBox="0 0 16 16" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${n}</svg>`,vn=le('<path d="M9 3h4v4M13 3 7.5 8.5M11 9.5V13H3V5h3.5"/>'),Tn=le('<path d="M4 4l8 8M12 4l-8 8"/>');function H(n,t,e,o={}){let r=n.createElement(t);e&&(r.className=e);for(let[a,s]of Object.entries(o))r.setAttribute(a,s);return r}function In(n,t,e){let o=null;return n.doc.nodesBetween(t,e,r=>{let a=j.isInSet(r.marks);a&&(o=a.attrs.href)}),o}var Nt=class{constructor(t){this.view=t,this.shell=t.dom.parentElement,this.doc=t.dom.ownerDocument,this.mode=null,this.range=null;let e=this.doc;this.dom=H(e,"div","page-link",{role:"dialog","aria-label":"Link",hidden:""}),this.input=H(e,"input","page-link-input",{type:"url","aria-label":"Link address",placeholder:"Paste or type a link",autocomplete:"off",spellcheck:"false"}),this.url=H(e,"a","page-link-url",{target:"_blank",rel:"noopener noreferrer"}),this.open=H(e,"a","page-link-btn",{"data-act":"open",target:"_blank",rel:"noopener noreferrer","aria-label":"Open link in a new tab",title:"Open in a new tab"}),this.open.innerHTML=vn,this.edit=H(e,"button","page-link-btn",{type:"button","data-act":"edit"}),this.edit.textContent="Edit",this.remove=H(e,"button","page-link-btn",{type:"button","data-act":"remove","aria-label":"Remove link",title:"Remove link"}),this.remove.innerHTML=Tn,this.dom.append(this.input,this.url,this.open,this.edit,this.remove),this.shell.append(this.dom),It.set(t,this),this.dom.addEventListener("mousedown",o=>{o.target!==this.input&&o.preventDefault()}),this.edit.addEventListener("click",()=>this.openEdit()),this.remove.addEventListener("click",()=>this.apply("")),this.input.addEventListener("keydown",o=>{o.isComposing||o.keyCode===229||(o.key==="Enter"?(o.preventDefault(),this.apply(this.input.value)):o.key==="Escape"&&(o.preventDefault(),this.close()))}),this.onDocDown=o=>{this.mode==="edit"&&!this.dom.contains(o.target)&&this.close(!1)},this.doc.addEventListener("mousedown",this.onDocDown,!0)}openEdit(){let t=this.view.state,e=t.selection;if(!(e instanceof Q)||!e.$from.sameParent(e.$to)||!e.$from.parent.inlineContent||e.$from.parent.type.spec.code)return!1;let o=e.empty?Tt(t.doc,e.head):null;return this.range=o??{from:e.from,to:e.to,href:e.empty?null:In(t,e.from,e.to)},this.mode="edit",this.view.dispatch(t.tr.setMeta($,{from:this.range.from,to:this.range.to})),this.render(),this.input.value=this.range.href??"",this.input.removeAttribute("aria-invalid"),this.input.focus(),this.input.select(),!0}apply(t){let e=String(t).trim(),o=e?C(e):null;if(e&&!o){this.input.setAttribute("aria-invalid","true");return}let r=this.view.state,a=$.getState(r)??(this.mode==="view"?this.range:null);if(!a)return this.close();let s;if(a.from===a.to){if(!o)return this.close();s=r.tr.insert(a.from,M.text(e,[j.create({href:o})])),s.setSelection(Q.create(s.doc,a.from+e.length))}else s=ce(r,a.from,a.to,o),s.setSelection(Q.create(s.doc,a.to));this.view.dispatch(_(s).setMeta($,null)),this.close()}close(t=!0){this.mode=null,this.range=null,$.getState(this.view.state)&&this.view.dispatch(this.view.state.tr.setMeta($,null)),this.dom.hidden=!0,this.dom.dataset.mode="",t&&this.view.focus(),this.update(this.view)}render(){let t=this.mode==="edit",e=C(this.range?.href);this.dom.dataset.mode=this.mode??"",this.input.hidden=!t,this.url.hidden=t,this.edit.hidden=t,this.open.hidden=!e,this.remove.hidden=!this.range?.href,e?(this.open.href=e,this.url.href=e,this.url.textContent=e.replace(/^https?:\/\//,"")):(this.open.removeAttribute("href"),this.url.removeAttribute("href"),this.url.textContent=""),this.dom.hidden=!1,this.place()}place(){let t=this.range;if(!t)return;let e=this.shell.getBoundingClientRect(),o=this.view.coordsAtPos(t.from),r=this.view.coordsAtPos(t.to,-1);this.dom.style.setProperty("--page-pop-x",`${Math.min(o.left,r.left)-e.left}px`),this.dom.style.setProperty("--page-pop-y",`${Math.max(o.bottom,r.bottom)-e.top+6}px`)}update(t){if(this.view=t,this.mode==="edit"){let r=$.getState(t.state);if(r)return this.range={...this.range,...r},this.place();this.mode=null,this.range=null,this.dom.hidden=!0,this.dom.dataset.mode="";return}let e=t.state.selection,o=e instanceof Q&&e.empty&&t.hasFocus()?Tt(t.state.doc,e.head):null;if(!o||e.head===o.from||e.head===o.to){this.mode=null,this.range=null,this.dom.hidden=!0,this.dom.dataset.mode="";return}this.mode="view",this.range=o,this.render()}destroy(){this.doc.removeEventListener("mousedown",this.onDocDown,!0),this.dom.remove(),It.delete(this.view)}},Nn=n=>It.get(n)?.openEdit()??!1;function On(n,t){if(t.clipboardData?.files?.length)return!1;let e=t.clipboardData?.getData("text/plain")??"";if(!Mn(e))return!1;let o=n.state.selection;if(!(o instanceof Q)||!o.$from.sameParent(o.$to)||o.$from.parent.type.spec.code)return!1;let r=C(e),a=o.empty?n.state.tr.replaceSelectionWith(M.text(e.trim(),[j.create({href:r})]),!1):ce(n.state,o.from,o.to,r);return n.dispatch(a.scrollIntoView().setMeta("uiEvent","paste")),!0}function io(){return new An({key:$,state:{init:()=>null,apply(n,t){let e=n.getMeta($);if(e!==void 0)return e;if(!t||!n.docChanged)return t;let o=n.mapping.mapResult(t.from,1),r=n.mapping.mapResult(t.to,t.from===t.to?1:-1);return o.deletedAcross||r.deletedAcross||t.from!==t.to&&o.pos>=r.pos?null:{from:o.pos,to:r.pos}}},view:n=>new Nt(n),props:{decorations(n){let t=$.getState(n);return t&&t.from<t.to?En.create(n.doc,[wn.inline(t.from,t.to,{class:"page-link-pending"})]):null},handleKeyDown(n,t){return(t.metaKey||t.ctrlKey)&&!t.altKey&&!t.shiftKey&&t.key.toLowerCase()==="k"?(t.preventDefault(),Nn(n)||!0):!1},handlePaste:On,handleClick(n,t,e){if(!(e.metaKey||e.ctrlKey))return!1;let o=Tt(n.state.doc,t),r=C(o?.href);return r?(n.dom.ownerDocument.defaultView.open(r,"_blank","noopener,noreferrer"),!0):!1}}})}export{Nn as a,io as b,xt as c,R as d,y as e,Vn as f,fe as g,Rn as h,P as i,he as j,me as k,k as l,G as m,Yt as n,Ut as o,be as p,ke as q,At as r,qn as s,Xe as t,nn as u,Kn as v,_n as w,Un as x,Et as y,oe as z,_ as A,X as B,ln as C,st as D,pn as E,gn as F,eo as G};
|
package/dist/m/c-UKHTLWUW.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a,b,c,d,e,f}from"./c-YDH7Q3NY.js";import"./c-N326R2JD.js";import"./c-2SPVQSHC.js";import"./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";export{c as beginApply,d as completeApply,f as conflicts,e as failApply,a as loadEdit,b as registerContext};
|
package/dist/m/c-UNN7LWCT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{F as P,c as S,q as c,s as d,u as h,v as k}from"./c-CJZSLMVQ.js";import"./c-GQ6F6IDK.js";import{b as f,d as y}from"./c-2SPVQSHC.js";import"./c-5VYOWDTI.js";import"./c-7VGZ7RU5.js";import"./c-4YSCRICO.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import"./c-HT33EQRN.js";import{j as l,m as w,n as D,o as x}from"./c-B2ZXPOS3.js";import"./c-TQEMVJCS.js";import"./c-3IQRECYS.js";import"./c-AYVOREBE.js";import"./c-IJUK2GPW.js";import"./c-7O6AFR65.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-N7JPUPGC.js";import"./c-35NBGMZB.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-GHBCCVG4.js";import"./c-HA6INT6J.js";import"./c-DCFSEJZG.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var E=15e3,b=Symbol("the barrier deadline passed"),M=2,e=(n,t={})=>({ok:!1,code:n,...t});async function I(n,t){let s=null,u=new Promise(r=>{s=setTimeout(()=>r(b),Math.max(0,t-Date.now()))});try{return await Promise.race([Promise.resolve(n),u])}finally{clearTimeout(s)}}async function X({generation:n=d(),keepalive:t=!1,timeoutMs:s=E,operation:u=null}={}){let r=u?null:w("mode");if(!u&&!r)return e("busy");let i=Date.now()+s,p=h(n);try{for(let m=0;;m++){if(n!==d())return e("stale-document");if(Date.now()>=i)return e("timeout");let a=await I(y(),i);if(a===b)return e("timeout");if(!a.ok)return e("pending-input",{pending:a.pending});if(a.pending.length)return e("pending-input",{pending:a.pending});if(c())return e("conflict");if(l())return e("save-unknown");let o;try{o=await P({keepalive:t,timeoutMs:Math.max(0,i-Date.now()),permit:p})}catch(v){return v?.state==="conflict"?e("conflict"):v?.state==="blocked"?e("pending-input",{pending:f()}):l()?e("save-unknown"):Date.now()>=i?e("timeout"):e("save-failed")}if(o.state!=="clean"&&o.state!=="saved")return e("save-failed");if(c())return e("conflict");if(l())return e("save-unknown");let g=f();if(g.length)return e("pending-input",{pending:g});if(S()){if(m+1<M&&Date.now()<i)continue;return e("pending-input")}return{ok:!0,state:o.state,etag:o.etag??null}}}finally{k(p),r&&D(r)}}export{w as claimOperation,x as operationKind,D as releaseOperation,X as runSaveBarrier};
|