@panphora/clayjs 1.15.1 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/THIRD-PARTY-NOTICES.md +16 -0
- package/compat/highlight-11.9.0.min.js +1213 -0
- package/compat/highlight-LICENSE +29 -0
- package/compat/journal-assets.lock.json +22 -0
- package/compat/overtype-2.6.1.min.js +116 -0
- package/compat/overtype-LICENSE +21 -0
- package/dist/all.js +90 -0
- package/dist/clay-dom.js +84 -0
- package/dist/clay-events.js +103 -0
- package/dist/clay-internals.js +85 -0
- package/dist/clay-options.js +93 -0
- package/dist/clay-router.js +98 -0
- package/dist/clay-ui.js +95 -0
- package/dist/clay-utils.js +84 -0
- package/dist/clay.js +146 -0
- package/dist/clay.standalone.js +83090 -58706
- package/dist/m/attrs/add-from-T5LJXFFI.js +1 -0
- package/dist/m/attrs/onaftersave-OKSWEJQF.js +1 -0
- package/dist/m/attrs/refetch-on-save-NWPPXOCZ.js +1 -0
- package/dist/m/attrs/save-freeze-FUP4Q4X3.js +1 -0
- package/dist/m/c-2AZDZWCK.js +1 -0
- package/dist/m/c-2JL6E75N.js +1 -0
- package/dist/m/c-2M73252O.js +1 -0
- package/dist/m/c-2SPVQSHC.js +1 -0
- package/dist/m/c-33HUYEDI.js +1 -0
- package/dist/m/c-33JJ6CBX.js +2 -0
- package/dist/m/c-35NBGMZB.js +1 -0
- package/dist/m/c-3GJ4SDE2.js +1 -0
- package/dist/m/c-3IQRECYS.js +1 -0
- package/dist/m/c-3OWDMNJR.js +2 -0
- package/dist/m/c-46XYM55L.js +1 -0
- package/dist/m/c-4B6H4G5V.js +1 -0
- package/dist/m/c-4DRMS4QG.js +9 -0
- package/dist/m/c-4FFHZM32.js +1 -0
- package/dist/m/c-4JZDZFF6.js +1 -0
- package/dist/m/c-4L3BTFRK.js +1 -0
- package/dist/m/c-4Q2XTQ2N.js +2 -0
- package/dist/m/c-4WKFKEKF.js +1 -0
- package/dist/m/c-4YSCRICO.js +1 -0
- package/dist/m/c-54RCDCBU.js +1 -0
- package/dist/m/c-5M4YEKCX.js +4 -0
- package/dist/m/c-5R4PTRG2.js +1 -0
- package/dist/m/c-5V3MOVJT.js +1 -0
- package/dist/m/c-5VYOWDTI.js +1 -0
- package/dist/m/c-5Y6TNX5W.js +34 -0
- package/dist/m/c-5YIHJ3TJ.js +1 -0
- package/dist/m/c-66O32MV3.js +28 -0
- package/dist/m/c-6HMB24EV.js +1 -0
- package/dist/m/c-7DJDKPGL.js +1 -0
- package/dist/m/c-7O6AFR65.js +1 -0
- package/dist/m/c-7SWMYKAI.js +1 -0
- package/dist/m/c-7VGZ7RU5.js +1 -0
- package/dist/m/c-A7LS5UZW.js +1 -0
- package/dist/m/c-ANQTJ3B5.js +2 -0
- package/dist/m/c-AQLFEATB.js +1 -0
- package/dist/m/c-AYVOREBE.js +1 -0
- package/dist/m/c-B2ZXPOS3.js +3 -0
- package/dist/m/c-BBVGTQG7.js +1 -0
- package/dist/m/c-BMIZKMPV.js +1 -0
- package/dist/m/c-BTDI4Y23.js +1 -0
- package/dist/m/c-BWFVSBDF.js +1 -0
- package/dist/m/c-BYTKL6UX.js +1 -0
- package/dist/m/c-CFHW5AMY.js +6 -0
- package/dist/m/c-CJZSLMVQ.js +1 -0
- package/dist/m/c-CYWLPPUS.js +1 -0
- package/dist/m/c-CZUSOB7V.js +1 -0
- package/dist/m/c-DBE6ORSI.js +1 -0
- package/dist/m/c-DCFSEJZG.js +1 -0
- package/dist/m/c-DNZ5IFM6.js +1 -0
- package/dist/m/c-EDHUR4MX.js +1 -0
- package/dist/m/c-EJTGYSLN.js +1 -0
- package/dist/m/c-EY6UOM54.js +1 -0
- package/dist/m/c-F3CKJTJS.js +1 -0
- package/dist/m/c-F7Y6FLPY.js +1 -0
- package/dist/m/c-FA4DZVTC.js +1 -0
- package/dist/m/c-FILLTJA7.js +1 -0
- package/dist/m/c-G2BUZITR.js +1 -0
- package/dist/m/c-GB3JTV6E.js +1 -0
- package/dist/m/c-GBGWXTX4.js +1 -0
- package/dist/m/c-GHBCCVG4.js +1 -0
- package/dist/m/c-GJAEGGXY.js +1 -0
- package/dist/m/c-GOWBDM6J.js +1 -0
- package/dist/m/c-GQ6F6IDK.js +1 -0
- package/dist/m/c-H4LG442Q.js +1 -0
- package/dist/m/c-HA6INT6J.js +1 -0
- package/dist/m/c-HPURYVZS.js +2 -0
- package/dist/m/c-HRDCD3WN.js +67 -0
- package/dist/m/c-HT33EQRN.js +1 -0
- package/dist/m/c-HVYXIS72.js +1 -0
- package/dist/m/c-IB52R237.js +1 -0
- package/dist/m/c-IJUK2GPW.js +1 -0
- package/dist/m/c-IKWNE4R4.js +1 -0
- package/dist/m/c-IU3IYEU6.js +1 -0
- package/dist/m/c-IZ2EBRAJ.js +1 -0
- package/dist/m/c-J7CA54IP.js +1 -0
- package/dist/m/c-JAX2667S.js +6 -0
- package/dist/m/c-KI7M4AY3.js +1 -0
- package/dist/m/c-KIPQJX4B.js +1 -0
- package/dist/m/c-KKWLDOPM.js +1 -0
- package/dist/m/c-KR4UW4KW.js +1 -0
- package/dist/m/c-KY3VJGUA.js +8 -0
- package/dist/m/c-L4WQSC27.js +1 -0
- package/dist/m/c-LFPHCXY3.js +1 -0
- package/dist/m/c-LR4CGEPT.js +91 -0
- package/dist/m/c-LRPUO2MX.js +1 -0
- package/dist/m/c-LTGMXXKO.js +1 -0
- package/dist/m/c-LXENEBV7.js +1 -0
- package/dist/m/c-LZJPNR2W.js +1 -0
- package/dist/m/c-MMUIUUZG.js +2 -0
- package/dist/m/c-MTQHWQC3.js +1 -0
- package/dist/m/c-N326R2JD.js +1 -0
- package/dist/m/c-N7JPUPGC.js +1 -0
- package/dist/m/c-NMJRXKPC.js +8 -0
- package/dist/m/c-NRPJEVJS.js +1 -0
- package/dist/m/c-NUHP2XDB.js +1 -0
- package/dist/m/c-NZMNXVF6.js +1 -0
- package/dist/m/c-OCSZ4QGN.js +1 -0
- package/dist/m/c-OIBUTDXI.js +1 -0
- package/dist/m/c-OIDRZKAF.js +1 -0
- package/dist/m/c-OYTFP5QN.js +1 -0
- package/dist/m/c-P7KNDG34.js +1 -0
- package/dist/m/c-PPOSCAQD.js +1 -0
- package/dist/m/c-PQ5LK6QE.js +993 -0
- package/dist/m/c-PZ4XEPUP.js +2 -0
- package/dist/m/c-QHIWXHRO.js +1 -0
- package/dist/m/c-QHWJ5ZIJ.js +1 -0
- package/dist/m/c-QIX5BJYN.js +1 -0
- package/dist/m/c-QNKREOL6.js +1 -0
- package/dist/m/c-QQHEX6HA.js +1 -0
- package/dist/m/c-R7RMANJI.js +9 -0
- package/dist/m/c-RI4NT75Y.js +1 -0
- package/dist/m/c-RM7J7BV2.js +1 -0
- package/dist/m/c-RUJKSUQW.js +1 -0
- package/dist/m/c-RVMWGXEJ.js +1 -0
- package/dist/m/c-S7H2DRCB.js +1 -0
- package/dist/m/c-S7LK4KUE.js +1 -0
- package/dist/m/c-SGCCC4FW.js +25 -0
- package/dist/m/c-SGIA4IEQ.js +188 -0
- package/dist/m/c-SWRJFCNN.js +1 -0
- package/dist/m/c-T4VO4OCB.js +1 -0
- package/dist/m/c-TCCA5BZN.js +2 -0
- package/dist/m/c-TQEMVJCS.js +1 -0
- package/dist/m/c-TQZ2JYHD.js +1 -0
- package/dist/m/c-TR6RMDQ7.js +3 -0
- package/dist/m/c-TRS6TM6O.js +1 -0
- package/dist/m/c-UGHH4MB3.js +1 -0
- package/dist/m/c-UKHTLWUW.js +1 -0
- package/dist/m/c-UL2YUY52.js +1 -0
- package/dist/m/c-UNN7LWCT.js +1 -0
- package/dist/m/c-UXBMRDZB.js +235 -0
- package/dist/m/c-V7PZZRG7.js +1 -0
- package/dist/m/c-VAK7SG37.js +1 -0
- package/dist/m/c-VDSS4K3Z.js +1 -0
- package/dist/m/c-VFX45IZQ.js +1 -0
- package/dist/m/c-VHNSBD2M.js +1 -0
- package/dist/m/c-VKEDWYDF.js +1 -0
- package/dist/m/c-VL52ADDR.js +1 -0
- package/dist/m/c-WN5AY3OZ.js +1 -0
- package/dist/m/c-WNYBLIOZ.js +1 -0
- package/dist/m/c-WRBKEJD4.js +1 -0
- package/dist/m/c-WWDBYXLK.js +1 -0
- package/dist/m/c-WYFDLITL.js +1 -0
- package/dist/m/c-XN6MBKI6.js +67 -0
- package/dist/m/c-XNNW2CWK.js +1 -0
- package/dist/m/c-XPELB6E5.js +1 -0
- package/dist/m/c-XQXZAO7N.js +1 -0
- package/dist/m/c-Y6USGTS5.js +5 -0
- package/dist/m/c-YDH7Q3NY.js +1 -0
- package/dist/m/c-YG2NJYS6.js +135 -0
- package/dist/m/c-Z36J63PP.js +1 -0
- package/dist/m/c-Z4VRC7GU.js +7 -0
- package/dist/m/c-Z6K52OLP.js +19 -0
- package/dist/m/c-ZDY2MDAA.js +21 -0
- package/dist/m/c-ZE46QDIH.js +1 -0
- package/dist/m/c-ZUCOKOHT.js +1 -0
- package/dist/m/core/admin-attrs-VGNLAUDK.js +1 -0
- package/dist/m/core/autosave-E4PEFPZ6.js +1 -0
- package/dist/m/core/conflict-notice-VQ6Y64PH.js +1 -0
- package/dist/m/core/draft-mode-WSQAT67S.js +1 -0
- package/dist/m/core/host-permission-XN3K2IW3.js +1 -0
- package/dist/m/core/is-edit-mode-JXHDVGUL.js +1 -0
- package/dist/m/core/persist-HKHA66IY.js +3 -0
- package/dist/m/core/recovery-TBBSICE2.js +1 -0
- package/dist/m/core/save-WUCHTQBE.js +1 -0
- package/dist/m/core/save-core-FJVHT5M3.js +1 -0
- package/dist/m/core/snapshot-F3SWDZMM.js +1 -0
- package/dist/m/core/unsaved-warning-STKBHE6G.js +1 -0
- package/dist/m/dom/all-APS5ZSKP.js +1 -0
- package/dist/m/dom/dom-helpers-L7OSR6S4.js +1 -0
- package/dist/m/events/index-23DPTUT4.js +1 -0
- package/dist/m/internals/index-WOVAP3RU.js +1 -0
- package/dist/m/lib/cache-bust-CGWT6ZJI.js +1 -0
- package/dist/m/lib/region-policy-SB2AWVG5.js +1 -0
- package/dist/m/loader-HXX6YNH5.js +1 -0
- package/dist/m/manifest-F22DEDAC.js +1 -0
- package/dist/m/manifest-edit-C3C7376B.js +1 -0
- package/dist/m/manifest.json +3491 -0
- package/dist/m/options/options-2LH76JQ3.js +1 -0
- package/dist/m/page/editor-XUTB2HB2.js +189 -0
- package/dist/m/plugins/ai-edit-ZQ4CGWIP.js +6 -0
- package/dist/m/plugins/bind-text-NX46N5UV.js +1 -0
- package/dist/m/plugins/cms-HP3LSTPN.js +2293 -0
- package/dist/m/plugins/demo-ZIBFAA3R.js +1 -0
- package/dist/m/plugins/derive-UAAA4V4S.js +1 -0
- package/dist/m/plugins/indicator-PV4YW2ID.js +1 -0
- package/dist/m/plugins/live-NUTTXSBS.js +1 -0
- package/dist/m/plugins/menu-HCKO3DSP.js +138 -0
- package/dist/m/plugins/message-LQ6EDH4V.js +1 -0
- package/dist/m/plugins/page-KSUH7G6J.js +2 -0
- package/dist/m/plugins/page-view-W73OW7WI.js +1 -0
- package/dist/m/plugins/people-AJJ32YCG.js +1 -0
- package/dist/m/plugins/quickcrop-QNY3PKLD.js +26 -0
- package/dist/m/plugins/quickcrop-QNY3PKLD.js.LEGAL.txt +7 -0
- package/dist/m/plugins/richclay-RC3L2F6X.js +517 -0
- package/dist/m/plugins/richclay-RC3L2F6X.js.LEGAL.txt +1 -0
- package/dist/m/plugins/sortable-YRMQX3ZU.js +1 -0
- package/dist/m/plugins/source-KHK5UUSK.js +1 -0
- package/dist/m/plugins/undo-OF2L3CXU.js +1 -0
- package/dist/m/plugins/unsent-HJFLQJ2O.js +1 -0
- package/dist/m/plugins/upgrade-ZNYODP5Y.js +1 -0
- package/dist/m/plugins/upload-XSGNILUY.js +1 -0
- package/dist/m/plugins/visitor-drafts-XK5GW55Q.js +21 -0
- package/dist/m/plugins/visitor-drafts-owner-KSSH75EV.js +1 -0
- package/dist/m/plugins/wire-ZWVWKF76.js +1 -0
- package/dist/m/reader-core-ILWLXVMP.js +68 -0
- package/dist/m/route/route-KOCZSEGN.js +1 -0
- package/dist/m/sync/live-sync-4AUVXVJU.js +1 -0
- package/dist/m/ui/index-EVHKMKBL.js +1 -0
- package/dist/m/utils/index-4TJCVLT7.js +1 -0
- package/dist/m/vendor/Sortable.vendor-A755ITLN.js +3 -0
- package/dist/m/vendor/Sortable.vendor-A755ITLN.js.LEGAL.txt +1 -0
- package/dist/m/vendor/sap-core.vendor-A7BMUYZT.js +6 -0
- package/dist/offline-manifest.json +3800 -0
- package/dist/page/themes/light-1.css +406 -0
- package/dist/server/core.cjs +23662 -22860
- package/dist/server/offline-runtime.cjs +4954 -0
- package/dist/server/offline-runtime.mjs +4923 -0
- package/dist/server/rooms.mjs +9 -0
- package/docs/guide.md +1078 -669
- package/entries/all.js +2 -0
- package/entries/clay-data.js +1 -1
- package/entries/clay-dom.js +2 -0
- package/entries/clay-events.js +2 -0
- package/entries/clay-internals.js +2 -0
- package/entries/clay-options.js +2 -0
- package/entries/clay-router.js +2 -0
- package/entries/clay-ui.js +2 -0
- package/entries/clay-utils.js +2 -0
- package/entries/clay.js +2 -0
- package/entries/sap.js +6 -6
- package/fonts/ibm-plex-mono-LICENSE +93 -0
- package/fonts/ibm-plex-mono-latin-300-normal.woff2 +0 -0
- package/fonts/ibm-plex-mono-latin-400-italic.woff2 +0 -0
- package/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
- package/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
- package/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
- package/fonts/ibm-plex-sans-LICENSE +93 -0
- package/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
- package/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
- package/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
- package/fonts/ibm-plex.css +71 -0
- package/fonts/inter-LICENSE +93 -0
- package/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
- package/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
- package/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
- package/fonts/inter-greek-wght-normal.woff2 +0 -0
- package/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
- package/fonts/inter-latin-wght-normal.woff2 +0 -0
- package/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
- package/fonts/inter.css +62 -0
- package/fonts/newsreader-LICENSE +93 -0
- package/fonts/newsreader-latin-ext-opsz-normal.woff2 +0 -0
- package/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
- package/fonts/newsreader-vietnamese-opsz-normal.woff2 +0 -0
- package/fonts/newsreader.css +26 -0
- package/fonts/work-sans-LICENSE +93 -0
- package/fonts/work-sans-latin-wght-normal.woff2 +0 -0
- package/fonts/work-sans.css +8 -0
- package/package.json +20 -3
- package/packed-contract.json +1 -0
- package/src/attrs/add-from.js +27 -4
- package/src/attrs/save-freeze.js +7 -52
- package/src/core/admin-attrs.js +119 -12
- package/src/core/admin-contenteditable.js +12 -10
- package/src/core/admin-inputs.js +14 -15
- package/src/core/admin-onclick.js +2 -0
- package/src/core/autosave.js +74 -21
- package/src/core/conflict-download.js +22 -0
- package/src/core/conflict-notice-ui.js +1173 -0
- package/src/core/conflict-notice.js +140 -697
- package/src/core/edit-mode.js +147 -14
- package/src/core/etag.js +30 -12
- package/src/core/host-meta.js +72 -8
- package/src/core/host-permission.js +29 -0
- package/src/core/is-edit-mode.js +145 -12
- package/src/core/mode-key.js +125 -0
- package/src/core/mode-lifecycle.js +544 -0
- package/src/core/mode-receipt.js +30 -0
- package/src/core/mode-refusal.js +13 -0
- package/src/core/mode-resources.js +52 -0
- package/src/core/mode-support.js +82 -0
- package/src/core/mode-switch.js +259 -0
- package/src/core/mode-transition.js +112 -0
- package/src/core/page-data-write.js +305 -0
- package/src/core/page-data.js +26 -227
- package/src/core/page-format-wire.js +4 -0
- package/src/core/page-format.js +58 -0
- package/src/core/persist.js +37 -9
- package/src/core/preserve-authored.js +114 -0
- package/src/core/recovery.js +772 -0
- package/src/core/runtime-url.js +105 -0
- package/src/core/save-core.js +109 -12
- package/src/core/save-replace.js +72 -0
- package/src/core/save-size-notice.js +134 -0
- package/src/core/save-size.js +140 -0
- package/src/core/save.js +805 -118
- package/src/core/snapshot.js +121 -11
- package/src/core/source-map.js +157 -9
- package/src/core/unsaved-warning.js +14 -4
- package/src/core/upgrade-run.js +408 -0
- package/src/core/version.js +18 -0
- package/src/lib/assets.js +30 -0
- package/src/lib/autosave-debug-gate.js +50 -0
- package/src/lib/autosave-scheduler.js +141 -0
- package/src/lib/boot-imports.js +8 -0
- package/src/lib/derived.js +3 -1
- package/src/lib/dirty-gate.js +15 -0
- package/src/lib/doc-storage.js +33 -0
- package/src/lib/effect.js +9 -4
- package/src/lib/mutation.js +4 -2
- package/src/lib/offline-runtime.js +226 -0
- package/src/lib/preload.js +48 -0
- package/src/lib/root-attrs.js +1 -1
- package/src/lib/trash.js +18 -0
- package/src/lib/undo/capture-move.js +152 -0
- package/src/live/local-channel.js +61 -0
- package/src/live/local-lane.js +60 -9
- package/src/live/server-lane.js +6 -3
- package/src/loader-logic.js +76 -15
- package/src/loader.js +218 -30
- package/src/page/adopt-boot.js +76 -22
- package/src/page/adopt.js +25 -4
- package/src/page/awareness.js +230 -0
- package/src/page/blocks.js +79 -5
- package/src/page/blocksel.js +20 -4
- package/src/page/board-face.js +13 -0
- package/src/page/board-panel.js +5 -17
- package/src/page/board-style.js +2 -13
- package/src/page/board-view.js +1 -11
- package/src/page/board-views.js +17 -0
- package/src/page/board.js +2 -2
- package/src/page/boot-pack.js +26 -0
- package/src/page/boot.js +237 -0
- package/src/page/checklist.js +1 -1
- package/src/page/chrome.js +411 -61
- package/src/page/csv-import.js +17 -2
- package/src/page/document-title-dom.js +40 -0
- package/src/page/document-title-runtime.js +76 -0
- package/src/page/document-title.js +9 -0
- package/src/page/drag.js +48 -13
- package/src/page/drop.js +2 -1
- package/src/page/editor.js +330 -86
- package/src/page/feature-loader.js +72 -0
- package/src/page/features/board.js +12 -0
- package/src/page/features/code.js +13 -0
- package/src/page/features/media.js +290 -0
- package/src/page/features/registry.js +23 -0
- package/src/page/features/table.js +383 -0
- package/src/page/{tool-view.js → features/tool.js} +33 -2
- package/src/page/format-codec.js +215 -0
- package/src/page/format-gate.js +179 -0
- package/src/page/format-level.js +157 -0
- package/src/page/highlight-slot.js +23 -0
- package/src/page/highlight.js +30 -16
- package/src/page/history-intent.js +78 -0
- package/src/page/inline.js +18 -25
- package/src/page/items.js +52 -11
- package/src/page/link.js +1 -0
- package/src/page/markdown.js +86 -1
- package/src/page/media-views.js +3 -0
- package/src/page/media.js +33 -245
- package/src/page/outline-cache.js +11 -0
- package/src/page/placeholder.js +27 -7
- package/src/page/projection.js +196 -50
- package/src/page/reader-patch.js +306 -0
- package/src/page/recover.js +1 -1
- package/src/page/rich/page-tool.js +1 -4
- package/src/page/runtime-owner.js +27 -0
- package/src/page/save-projection.js +7 -4
- package/src/page/schema.js +14 -0
- package/src/page/table-rect-key.js +3 -0
- package/src/page/table-select.js +4 -3
- package/src/page/table-style.js +1 -1
- package/src/page/table-views.js +3 -0
- package/src/page/table.js +8 -293
- package/src/page/themes/light-1.css +139 -2
- package/src/page/themes/light-1.source.css +269 -0
- package/src/page/tool-capability.js +3 -0
- package/src/page/tool-views.js +3 -0
- package/src/page/view.js +390 -107
- package/src/page/ybind/awareness.js +172 -0
- package/src/page/ybind/binding.js +9 -1
- package/src/page/ybind/bridge.js +50 -47
- package/src/page/ybind/decode.js +52 -19
- package/src/page/ybind/doc.js +27 -2
- package/src/page/ybind/group.js +12 -3
- package/src/page/ybind/index.js +2 -0
- package/src/page/ybind/lineage.js +71 -0
- package/src/page/ybind/marks.js +25 -1
- package/src/page/ybind/migrate.js +48 -13
- package/src/page/ybind/moves.js +32 -21
- package/src/page/ybind/positions.js +50 -0
- package/src/page/ybind/provider.js +84 -22
- package/src/page/ybind/recovery-proof.js +191 -0
- package/src/page/ybind/recovery-replay.js +130 -0
- package/src/page/ybind/tokens.js +15 -6
- package/src/page/ybind/walk.js +10 -3
- package/src/page/ybind/writer.js +48 -4
- package/src/plugins/ai-edit.js +167 -32
- package/src/plugins/bind-text.js +218 -0
- package/src/plugins/cms.js +93 -0
- package/src/plugins/indicator.js +57 -5
- package/src/plugins/live.js +282 -34
- package/src/plugins/menu/claygoo.svg.js +1 -0
- package/src/plugins/menu/seo-head.js +323 -0
- package/src/plugins/menu/seo.js +849 -0
- package/src/plugins/menu.js +425 -0
- package/src/plugins/page-view.js +131 -0
- package/src/plugins/page.js +1022 -275
- package/src/plugins/people.js +158 -31
- package/src/plugins/richclay.js +119 -9
- package/src/plugins/sortable.js +370 -60
- package/src/plugins/source.js +189 -366
- package/src/plugins/undo.js +289 -19
- package/src/plugins/unsent.js +132 -0
- package/src/plugins/upgrade-run.js +1 -0
- package/src/plugins/upgrade.js +210 -0
- package/src/plugins/upload-task.js +571 -0
- package/src/plugins/upload-ui.js +265 -0
- package/src/plugins/upload.js +34 -153
- package/src/plugins/visitor-drafts/inert.js +32 -0
- package/src/plugins/visitor-drafts/owner-chip.js +3 -0
- package/src/plugins/visitor-drafts/prompt.js +2 -2
- package/src/plugins/visitor-drafts-owner.js +85 -0
- package/src/plugins/visitor-drafts.js +31 -42
- package/src/plugins/wire.js +82 -1
- package/src/reader-core.js +26 -0
- package/src/recovery/conflicts.js +287 -0
- package/src/recovery/identity.js +154 -0
- package/src/recovery/store.js +792 -0
- package/src/recovery/undo.js +257 -0
- package/src/server/checkpoint/index.js +68 -4
- package/src/server/offline-runtime/index.js +214 -0
- package/src/server/rooms/index.js +2 -1
- package/src/server/rooms/live-data-rooms.js +2 -2
- package/src/server/rooms/page-admission.js +33 -0
- package/src/server/rooms/page-lineage.js +56 -0
- package/src/server/rooms/page-rebase.js +11 -5
- package/src/server/rooms/page-state.js +2 -0
- package/src/server/rooms/page-write-admission.js +9 -3
- package/src/source/session.js +705 -0
- package/src/sync/conflict-revert.js +5 -4
- package/src/sync/conflicts-edit.js +119 -0
- package/src/sync/conflicts-facade.js +49 -0
- package/src/sync/conflicts.js +99 -1
- package/src/sync/editing-marker.js +37 -6
- package/src/sync/editing-sender.js +8 -1
- package/src/sync/live-sync-edit.js +63 -0
- package/src/sync/live-sync.js +364 -119
- package/src/sync/local-presence.js +187 -0
- package/src/sync/merge-declarations.js +10 -0
- package/src/sync/merge-engine.js +12 -0
- package/src/sync/presence-store.js +412 -0
- package/src/sync/presence-target.js +243 -0
- package/src/sync/presence.js +72 -41
- package/src/sync/saved-handoff.js +200 -0
- package/src/sync/saved-stream.js +535 -0
- package/src/sync/version-guard.js +92 -0
- package/src/sync/wire-profile.js +81 -0
- package/src/ui/bevel-controls.js +2 -8
- package/src/ui/page-scheme.js +7 -0
- package/src/ui/skins/cms.js +1 -1
- package/src/ui/theme-config.js +150 -0
- package/src/ui/theme.js +6 -138
- package/src/ui/toast-lazy.js +11 -0
- package/src/vendor/LICENSES-optional.md +253 -0
- package/src/vendor/highlight.vendor.js +3 -0
- package/src/vendor/hljs-bash.vendor.js +2 -0
- package/src/vendor/hljs-css.vendor.js +2 -0
- package/src/vendor/hljs-javascript.vendor.js +2 -0
- package/src/vendor/hljs-json.vendor.js +2 -0
- package/src/vendor/hljs-python.vendor.js +2 -0
- package/src/vendor/hljs-xml.vendor.js +2 -0
- package/src/vendor/hyper-html-api-data.vendor.js +1 -1
- package/src/vendor/hyper-html-api-upgrade.vendor.js +5 -0
- package/src/vendor/hyper-morph-identity.vendor.js +2 -0
- package/src/vendor/hyper-morph-json.vendor.js +3 -0
- package/src/vendor/hyper-morph.vendor.js +6 -6
- package/src/vendor/hyper-undo.vendor.js +1 -1
- package/src/vendor/hypercms.vendor.js +169 -84
- package/src/vendor/marked.vendor.js +68 -0
- package/src/vendor/overtype.vendor.js +994 -0
- package/src/vendor/richclay.vendor.js +17 -17
- package/src/vendor/sap-core.vendor.js +5 -5
- package/src/vendor/sap-ownership.vendor.js +11 -7
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import"./c-VHNSBD2M.js";var p=`.hcp {
|
|
2
|
+
--hcp-ground: #FDF8F0;
|
|
3
|
+
--hcp-surface: #FFFCF6;
|
|
4
|
+
--hcp-sunk: #F4ECDF;
|
|
5
|
+
--hcp-ink: #2B241B;
|
|
6
|
+
--hcp-ink-2: #4A4033;
|
|
7
|
+
--hcp-muted: #6B5942;
|
|
8
|
+
--hcp-line: #E8DCC6;
|
|
9
|
+
--hcp-line-2: #D8C8AF;
|
|
10
|
+
--hcp-brass: #8F6310;
|
|
11
|
+
--hcp-brass-soft: #F0E4CC;
|
|
12
|
+
--hcp-face: #F1E7D4;
|
|
13
|
+
--hcp-edge-hi: #FFF9ED;
|
|
14
|
+
--hcp-edge-lo: #D6C3A5;
|
|
15
|
+
--hcp-shadow: 0 1px 2px rgba(23, 28, 36, .06), 0 14px 34px -14px rgba(43, 36, 27, .32);
|
|
16
|
+
--hcp-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
17
|
+
--hcp-serif: Newsreader, Georgia, "Times New Roman", serif;
|
|
18
|
+
--hcp-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
|
|
19
|
+
--hcp-lift: 0px;
|
|
20
|
+
color-scheme: light;
|
|
21
|
+
}
|
|
22
|
+
@media (prefers-color-scheme: dark) {
|
|
23
|
+
.hcp:not([data-hcp-theme="light"]) {
|
|
24
|
+
--hcp-ground: #0B0C13; --hcp-surface: #11131E; --hcp-sunk: #1A1D2C;
|
|
25
|
+
--hcp-ink: #ECEAF2; --hcp-ink-2: #C9CDE0; --hcp-muted: #8A90AB;
|
|
26
|
+
--hcp-line: #262B42; --hcp-line-2: #353B52;
|
|
27
|
+
--hcp-brass: #D9A445; --hcp-brass-soft: #3A2F17;
|
|
28
|
+
--hcp-face: #22273E; --hcp-edge-hi: #3C4260; --hcp-edge-lo: #1B2033;
|
|
29
|
+
--hcp-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 16px 38px -14px rgba(0, 0, 0, .7);
|
|
30
|
+
color-scheme: dark;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
.hcp[data-hcp-theme="dark"] {
|
|
34
|
+
--hcp-ground: #0B0C13; --hcp-surface: #11131E; --hcp-sunk: #1A1D2C;
|
|
35
|
+
--hcp-ink: #ECEAF2; --hcp-ink-2: #C9CDE0; --hcp-muted: #8A90AB;
|
|
36
|
+
--hcp-line: #262B42; --hcp-line-2: #353B52;
|
|
37
|
+
--hcp-brass: #D9A445; --hcp-brass-soft: #3A2F17;
|
|
38
|
+
--hcp-face: #22273E; --hcp-edge-hi: #3C4260; --hcp-edge-lo: #1B2033;
|
|
39
|
+
--hcp-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 16px 38px -14px rgba(0, 0, 0, .7);
|
|
40
|
+
color-scheme: dark;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.hcp, .hcp * , .hcp *::before, .hcp *::after {
|
|
44
|
+
box-sizing: border-box; margin: 0; padding: 0; border: 0;
|
|
45
|
+
font: inherit; letter-spacing: normal; text-transform: none; text-shadow: none;
|
|
46
|
+
line-height: inherit; color: inherit; background: none; float: none; max-width: none;
|
|
47
|
+
}
|
|
48
|
+
.hcp {
|
|
49
|
+
position: fixed; right: 16px; bottom: calc(16px + var(--hcp-lift)); z-index: 2147482000;
|
|
50
|
+
display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
|
|
51
|
+
font-family: var(--hcp-sans); font-size: 14px; font-weight: 400; line-height: 1.5;
|
|
52
|
+
color: var(--hcp-ink); text-align: left;
|
|
53
|
+
-webkit-font-smoothing: antialiased;
|
|
54
|
+
transition: bottom .25s ease, opacity .2s ease;
|
|
55
|
+
pointer-events: none;
|
|
56
|
+
}
|
|
57
|
+
.hcp[hidden], .hcp[data-hcp-state="dismissed"], .hcp[data-hcp-state="off"] { display: none; }
|
|
58
|
+
.hcp[data-hcp-typing] { opacity: 0; visibility: hidden; }
|
|
59
|
+
.hcp > * { pointer-events: auto; }
|
|
60
|
+
.hcp svg {
|
|
61
|
+
display: block; flex: none; width: 16px; height: 16px; line-height: 1;
|
|
62
|
+
fill: none; stroke: none; stroke-width: 0; stroke-linecap: butt; stroke-linejoin: miter;
|
|
63
|
+
}
|
|
64
|
+
.hcp .hcp-x svg, .hcp .hcp-actions .hcp-btn svg, .hcp-tab svg, .hcp-file svg { fill: currentColor; }
|
|
65
|
+
.hcp .hcp-file svg { width: 20px; height: 20px; }
|
|
66
|
+
.hcp .hcp-tab svg { width: 16px; height: 18px; }
|
|
67
|
+
.hcp .hcp-dock .hcp-x svg { width: 12px; height: 12px; }
|
|
68
|
+
.hcp button, .hcp a { border-radius: 0; line-height: 1.5; }
|
|
69
|
+
|
|
70
|
+
.hcp-btn {
|
|
71
|
+
display: inline-flex; align-items: center; justify-content: center; gap: 7px;
|
|
72
|
+
height: 34px; min-height: 0; padding: 0 14px;
|
|
73
|
+
font-family: var(--hcp-sans); font-size: 14px; font-weight: 500; line-height: 1.5;
|
|
74
|
+
white-space: nowrap; text-decoration: none; cursor: pointer; user-select: none;
|
|
75
|
+
color: var(--hcp-ink); background: var(--hcp-face);
|
|
76
|
+
border: 2px solid; border-radius: 0;
|
|
77
|
+
border-color: var(--hcp-edge-hi) var(--hcp-edge-lo) var(--hcp-edge-lo) var(--hcp-edge-hi);
|
|
78
|
+
outline: none;
|
|
79
|
+
}
|
|
80
|
+
.hcp .hcp-btn:hover { background: color-mix(in srgb, var(--hcp-face), var(--hcp-edge-hi) 45%); color: var(--hcp-ink); }
|
|
81
|
+
.hcp-btn:active { border-color: var(--hcp-edge-lo) var(--hcp-edge-hi) var(--hcp-edge-hi) var(--hcp-edge-lo); }
|
|
82
|
+
.hcp-btn:active > span { translate: 1px 1px; }
|
|
83
|
+
.hcp-btn > span { display: inline-flex; align-items: center; gap: 7px; }
|
|
84
|
+
.hcp-btn:focus-visible, .hcp-x:focus-visible, .hcp-quiet:focus-visible { outline: 2px solid var(--hcp-brass); outline-offset: 2px; }
|
|
85
|
+
.hcp-btn--primary {
|
|
86
|
+
--hcp-face: var(--hcp-ink);
|
|
87
|
+
--hcp-edge-hi: color-mix(in srgb, var(--hcp-ink), white 24%);
|
|
88
|
+
--hcp-edge-lo: color-mix(in srgb, var(--hcp-ink), black 32%);
|
|
89
|
+
color: var(--hcp-ground);
|
|
90
|
+
}
|
|
91
|
+
.hcp .hcp-btn--primary:hover { background: color-mix(in srgb, var(--hcp-ink), var(--hcp-ground) 12%); color: var(--hcp-ground); }
|
|
92
|
+
|
|
93
|
+
.hcp-dock { display: flex; align-items: stretch; box-shadow: 0 6px 16px -8px rgba(43, 36, 27, .45); }
|
|
94
|
+
.hcp:not([data-hcp-arrived]) .hcp-dock { animation: hcp-arrive 2.4s cubic-bezier(.16, 1, .3, 1) 3s both; }
|
|
95
|
+
@keyframes hcp-arrive { from { transform: translateX(calc(100% + 48px)); } to { transform: none; } }
|
|
96
|
+
.hcp-tab { font-size: 13.5px; padding: 0 12px 0 10px; }
|
|
97
|
+
.hcp-tab svg { color: var(--hcp-brass); }
|
|
98
|
+
.hcp-dock .hcp-x {
|
|
99
|
+
width: 26px; height: 34px; min-height: 0; border-radius: 0; display: inline-flex; align-items: center; justify-content: center;
|
|
100
|
+
background: var(--hcp-face); color: var(--hcp-muted); cursor: pointer;
|
|
101
|
+
border: 2px solid; border-left: 0;
|
|
102
|
+
border-color: var(--hcp-edge-hi) var(--hcp-edge-lo) var(--hcp-edge-lo) var(--hcp-edge-hi);
|
|
103
|
+
}
|
|
104
|
+
.hcp .hcp-dock .hcp-x:hover { color: var(--hcp-ink); background: var(--hcp-face); }
|
|
105
|
+
.hcp-tab__label { display: inline; }
|
|
106
|
+
.hcp-tab__mini { display: none; }
|
|
107
|
+
.hcp[data-hcp-state="mini"] .hcp-tab__mini { display: inline; }
|
|
108
|
+
.hcp[data-hcp-state="mini"] .hcp-tab__label,
|
|
109
|
+
.hcp[data-hcp-state="mini"] .hcp-dock .hcp-x { display: none; }
|
|
110
|
+
.hcp[data-hcp-state="card"] .hcp-dock { display: none; }
|
|
111
|
+
|
|
112
|
+
.hcp-card {
|
|
113
|
+
display: none; position: relative;
|
|
114
|
+
width: min(360px, calc(100vw - 32px)); max-height: calc(100dvh - 32px - var(--hcp-lift)); overflow: auto;
|
|
115
|
+
background: var(--hcp-surface); border: 1px solid var(--hcp-line-2); border-top: 3px solid var(--hcp-brass);
|
|
116
|
+
box-shadow: var(--hcp-shadow);
|
|
117
|
+
padding: 18px 20px 16px;
|
|
118
|
+
}
|
|
119
|
+
.hcp[data-hcp-state="card"] .hcp-card { display: block; animation: hcp-rise .32s cubic-bezier(.2, .8, .3, 1) both; }
|
|
120
|
+
@keyframes hcp-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
|
|
121
|
+
|
|
122
|
+
.hcp-card .hcp-x {
|
|
123
|
+
position: absolute; top: 12px; right: 12px; width: 24px; height: 24px; min-height: 0;
|
|
124
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
125
|
+
border: 1px solid var(--hcp-line-2); border-radius: 3px; background: var(--hcp-surface);
|
|
126
|
+
color: var(--hcp-muted); cursor: pointer;
|
|
127
|
+
}
|
|
128
|
+
.hcp .hcp-card .hcp-x:hover { color: var(--hcp-ink); border-color: var(--hcp-muted); background: var(--hcp-surface); }
|
|
129
|
+
.hcp .hcp-card .hcp-x svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; }
|
|
130
|
+
.hcp-kicker {
|
|
131
|
+
display: flex; align-items: center; gap: 8px;
|
|
132
|
+
font-family: var(--hcp-mono); font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
|
|
133
|
+
color: var(--hcp-brass); margin-bottom: 8px;
|
|
134
|
+
}
|
|
135
|
+
.hcp-title {
|
|
136
|
+
font-family: var(--hcp-serif); font-size: 23px; font-weight: 500; line-height: 1.18;
|
|
137
|
+
color: var(--hcp-ink); padding-right: 26px; margin-bottom: 10px;
|
|
138
|
+
font-variation-settings: "opsz" 36;
|
|
139
|
+
}
|
|
140
|
+
.hcp-title [data-hcp-for] { display: none; }
|
|
141
|
+
.hcp[data-hcp-reason="use"] .hcp-title [data-hcp-for="use"],
|
|
142
|
+
.hcp[data-hcp-reason="open"] .hcp-title [data-hcp-for="open"],
|
|
143
|
+
.hcp[data-hcp-reason="return"] .hcp-title [data-hcp-for="return"],
|
|
144
|
+
.hcp[data-hcp-reason="error"] .hcp-title [data-hcp-for="error"] { display: inline; }
|
|
145
|
+
.hcp-body [data-hcp-for] { display: none; }
|
|
146
|
+
.hcp[data-hcp-reason="use"] .hcp-body [data-hcp-for="use"], .hcp[data-hcp-reason="open"] .hcp-body [data-hcp-for="open"], .hcp[data-hcp-reason="return"] .hcp-body [data-hcp-for="return"], .hcp[data-hcp-reason="error"] .hcp-body [data-hcp-for="error"] { display: inline; }
|
|
147
|
+
.hcp-body { font-size: 14px; line-height: 1.55; color: var(--hcp-ink-2); }
|
|
148
|
+
.hcp-file {
|
|
149
|
+
display: flex; align-items: center; gap: 10px; margin: 12px 0 14px;
|
|
150
|
+
padding: 9px 11px; background: var(--hcp-sunk); border: 1px solid var(--hcp-line);
|
|
151
|
+
}
|
|
152
|
+
.hcp-file svg { color: var(--hcp-brass); }
|
|
153
|
+
.hcp-file b { display: block; font-family: var(--hcp-sans); font-size: 14px; font-weight: 600; color: var(--hcp-ink); overflow-wrap: anywhere; }
|
|
154
|
+
.hcp-file small { display: block; font-size: 12px; color: var(--hcp-muted); line-height: 1.4; }
|
|
155
|
+
.hcp-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
|
|
156
|
+
.hcp-actions .hcp-btn--primary { flex: 1 1 auto; }
|
|
157
|
+
.hcp-foot { margin-top: 12px; display: flex; justify-content: flex-end; }
|
|
158
|
+
.hcp-quiet {
|
|
159
|
+
min-height: 0; border-radius: 0;
|
|
160
|
+
font-size: 12px; color: var(--hcp-muted); cursor: pointer;
|
|
161
|
+
text-decoration: underline; text-underline-offset: 2px; text-decoration-color: var(--hcp-line-2);
|
|
162
|
+
white-space: nowrap;
|
|
163
|
+
}
|
|
164
|
+
.hcp .hcp-quiet:hover { color: var(--hcp-ink); background: none; }
|
|
165
|
+
|
|
166
|
+
@media (max-width: 480px) {
|
|
167
|
+
.hcp { right: 12px; bottom: calc(12px + var(--hcp-lift)); }
|
|
168
|
+
.hcp-card { width: calc(100vw - 24px); padding: 16px 16px 14px; max-height: min(70dvh, calc(100dvh - 24px - var(--hcp-lift))); }
|
|
169
|
+
.hcp-title { font-size: 21px; }
|
|
170
|
+
}
|
|
171
|
+
@media (pointer: coarse) {
|
|
172
|
+
.hcp-btn, .hcp-dock .hcp-x, .hcp-card .hcp-x { min-height: 44px; }
|
|
173
|
+
.hcp-card .hcp-x { width: 44px; height: 44px; top: 6px; right: 6px; }
|
|
174
|
+
.hcp-quiet { display: inline-flex; align-items: center; min-height: 44px; }
|
|
175
|
+
}
|
|
176
|
+
@media (prefers-reduced-motion: reduce) {
|
|
177
|
+
.hcp { transition: none; }
|
|
178
|
+
.hcp[data-hcp-state="card"] .hcp-card { animation: none; }
|
|
179
|
+
.hcp:not([data-hcp-arrived]) .hcp-dock { animation: hcp-arrive-fade .4s ease 3s both; }
|
|
180
|
+
@keyframes hcp-arrive-fade { from { opacity: 0; } to { opacity: 1; } }
|
|
181
|
+
.hcp-btn:active > span { translate: none; }
|
|
182
|
+
}
|
|
183
|
+
@media (forced-colors: active) {
|
|
184
|
+
.hcp-btn, .hcp-dock .hcp-x { border: 1px solid ButtonText; }
|
|
185
|
+
.hcp-card { border: 1px solid CanvasText; }
|
|
186
|
+
}
|
|
187
|
+
@media print { .hcp { display: none; } }
|
|
188
|
+
`;export{p as PROMPT_CSS};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as T,F as O,Q as d,R as g,T as _}from"./c-Y6USGTS5.js";import{H as z}from"./c-66O32MV3.js";var b=(t,n)=>{let e=new Map,r=[];for(let o of n??[]){let s=e.get(o.id)??[];s.push(o.implicit),e.set(o.id,s)}let c=new Map;return t.forEach(o=>{let s=o.attrs.id,i=c.get(s)??0;r.push(e.get(s)?.[i]??!1),c.set(s,i+1)}),r},A=t=>t.attrs.raw??null,j=t=>{let n=A(t);if(n){let r={...n};return delete r.t,delete r.pos,r}let e={};for(let r of T(t.type))e[r]=t.attrs[r];return t.type.name==="table"&&(e.rows=z(t).rows),e},y=t=>A(t)?.t??t.type.name;function K(t,n=new Map,e=null){let r=[],c=b(t,e);return t.forEach((o,s,i)=>{let a=c[i]&&!n.has(o.attrs.id),f=e?e[i]?.brk??null:null;a||r.push({k:"b",id:c[i]&&n.has(o.attrs.id)?n.get(o.attrs.id):o.attrs.id,t:y(o),attrs:j(o),brk:f}),o.isTextblock&&o.content.forEach(l=>{if(l.isText){let u=y(o)==="code_block"?[]:l.marks,m=g(u),p=d(u);for(let h=0;h<l.text.length;h++)r.push({k:"c",ch:l.text[h],mk:m,ma:p})}else l.type.name==="hard_break"&&r.push({k:"h"})})}),r}function w(t,n=new Map,e=null){let r=new Int32Array(t.content.size+1),c=0,o=b(t,e);return t.forEach((s,i,a)=>{let l=o[a]&&!n.has(s.attrs.id)?0:1;if(s.isTextblock){let u=s.content.size;r[i]=c;for(let m=0;m<=u;m++)r[i+1+m]=c+l+m;r[i+2+u]=c+l+u,c+=l+u}else r[i]=c,r[i+s.nodeSize]=c+l,c+=l}),r}function P(t,n,e){let r=t.resolve(n),c=t.resolve(e);if(r.depth!==1||c.depth!==1||r.index(0)!==c.index(0)||!r.parent.isTextblock)throw new RangeError("token range must stay inside one text block");let o=r.index(0),s=0,i=0,a=null;t.forEach((p,h,x)=>{x<o?s+=p.isTextblock?p.content.size+1:1:x===o&&(a=p,i=h)});let f=n-i-1,l=e-i-1,u=[],m=0;return a.content.forEach(p=>{let h=Math.max(0,f-m),x=Math.min(p.nodeSize,l-m);if(h<x)if(p.isText){let M=y(a)==="code_block"?[]:p.marks,I=g(M),S=d(M);for(let k=h;k<x;k++)u.push({k:"c",ch:p.text[k],mk:I,ma:S})}else p.type.name==="hard_break"&&u.push({k:"h"});m+=p.nodeSize}),{start:s+1+f,end:s+1+l,tokens:u}}var q=(t,n)=>t.k===n.k&&(t.k==="b"?t.id===n.id&&t.t===n.t&&O(t.attrs,n.attrs):t.k==="h"||t.ch===n.ch&&t.mk===n.mk),C=(t,n)=>{let e=n;for(let r of t)r.at<=n&&(e+=r.len);return e},E=(t,n)=>{let e=n;for(let r of t)r.at<n&&(e+=r.len);return e},N=(t,n,e)=>_({tokens:t,holes:n},e);var D=(t,n,e,r)=>E(n,w(t,new Map,r)[e]);function G(t,n,e,r,c=null){let o=0,s=e;for(;o<s;){let f=o+s+1>>1;E(n,f)<=r?o=f:s=f-1}let i=w(t,new Map,c),a=-1;for(let f=0;f<i.length;f++)if(!(i[f]<o)){if(i[f]>o)break;if(a<0&&(a=f),t.resolve(f).parent.inlineContent)return f}return a<0?t.content.size:a}var H=(t,n)=>{let e=t.resolve(n);return e.depth!==3||e.parent.type.name!=="table_cell"?null:{table:e.node(1).attrs.id,row:e.node(2).attrs.id,col:e.parent.attrs.col,offset:e.parentOffset}},R=(t,n)=>{let e=null;return t.forEach((r,c)=>{e!==null||r.type.name!=="table"||r.attrs.id!==n.table||r.forEach((o,s)=>{e!==null||o.attrs.id!==n.row||o.forEach((i,a)=>{e===null&&i.attrs.col===n.col&&(e={from:c+2+s+a,to:c+2+s+a+i.nodeSize,block:n.table,row:n.row,col:n.col})})})}),e},L=(t,n)=>{let e=R(t,n);if(!e)return null;let r=t.nodeAt(e.from);return e.from+1+Math.min(n.offset??0,r?r.content.size:0)};export{K as a,w as b,P as c,q as d,C as e,E as f,N as g,D as h,G as i,H as j,R as k,L as l};
|
|
@@ -0,0 +1 @@
|
|
|
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};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function a(t,l){for(;;){for(;l<t.length&&/\s/.test(t[l]);)l++;if(t[l]==="/"&&t[l+1]==="/"){for(;l<t.length&&t[l]!==`
|
|
2
|
+
`;)l++;continue}if(t[l]==="/"&&t[l+1]==="*"){let e=t.indexOf("*/",l+2);if(e===-1)return t.length;l=e+2;continue}return l}}function o(t){return t.replace(/\\'/g,"'").replace(/(\\*)"/g,(l,e)=>e.length%2===0?e+'\\"':l)}var c=/^-?(0|[1-9]\d*)(\.\d+)?([eE][+-]?\d+)?$/,h=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function O(t){try{return JSON.parse(t)}catch{return JSON.parse(p(t))}}function p(t){let l="",e=0,s=(i,r)=>{throw new Error(`Invalid relaxed JSON: ${i} at position ${r}`)};for(;e<t.length&&(e=a(t,e),!(e>=t.length));){let i=t[e];if("{}[]:".includes(i)){l+=i,e++;continue}if(i===","){let n=a(t,e+1);if(t[n]==="}"||t[n]==="]"){e++;continue}l+=i,e++;continue}if(i==='"'||i==="'"){let n=e+1;for(;n<t.length&&t[n]!==i;)t[n]==="\\"&&n++,n++;n>=t.length&&s("unterminated string",e);let f=t.slice(e+1,n);i==="'"&&(f=o(f)),l+='"'+f+'"',e=n+1;continue}let r=e;for(;r<t.length&&/[A-Za-z0-9_$.+\-]/.test(t[r]);)r++;r===e&&s("unexpected character "+JSON.stringify(i),e);let u=t.slice(e,r);if(u==="true"||u==="false"||u==="null"||c.test(u)){l+=u,e=r;continue}if(h.test(u)){if(t[a(t,r)]===":"){l+='"'+u+'"',e=r;continue}s("unquoted value "+JSON.stringify(u),e)}s("invalid token "+JSON.stringify(u),e)}return l}export{O as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o="X-Clay-Page-Format";export{o as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as $}from"./c-HVYXIS72.js";import{a as k,b as B,c as L}from"./c-4Q2XTQ2N.js";import{A as M}from"./c-TR6RMDQ7.js";import{B as P,E as R,b as O,m as q}from"./c-66O32MV3.js";import"./c-3GJ4SDE2.js";import{a as N}from"./c-LRPUO2MX.js";import"./c-VHNSBD2M.js";var K=16384,G=p=>new TextEncoder().encode(JSON.stringify(p)).length,I=class extends Error{constructor(s,n=s){super(n),this.name="ToolRequestError",this.code=s}};function V(p){let s=N(p);for(Array.isArray(s.tables)||(s.tables=[]),Array.isArray(s.outline)||(s.outline=[]);G(s)>K;){let n=[...s.tables].reverse().find(i=>Array.isArray(i.rows)&&i.rows.length);if(n)n.rows.pop();else if(s.outline.length)s.outline.pop();else break}if(G(s)>K)throw new I("context-too-large");return s}function J({transport:p,newId:s}){let n=null,i=a=>{!a||a.discarded||a.done||(a.discarded=!0,n===a&&(n=null),p.cancel(a.requestId),a.resolve({requestId:a.requestId,code:"discarded",message:"Candidate discarded"}))};return{request(a,r,t=null){let m=V(r);n&&i(n);let c=s(),l={requestId:c,discarded:!1,done:!1};l.promise=new Promise(o=>{l.resolve=o}),n=l;let y={protocol:"page-tool/1",requestId:c,prompt:a,context:m,target:t};l.request=y;let v=o=>{if(!(l.discarded||l.done||o?.requestId!==c))if(l.done=!0,n===l&&(n=null),o?.artifact!==void 0){let d=k(o.artifact),C=B(o.state),w=d.ok?C.ok?null:C:d;l.resolve(w?{requestId:c,code:w.code,message:w.code}:o)}else l.resolve(typeof o?.code=="string"?o:{requestId:c,code:"invalid-result",message:"invalid-result"})};try{Promise.resolve(p.request(y)).then(v,o=>v({requestId:c,code:"transport-error",message:String(o?.message??o)}))}catch(o){v({requestId:c,code:"transport-error",message:String(o?.message??o)})}return l},discard:i,async wait(a,{signal:r}={}){if(r?.aborted)throw new DOMException("Aborted","AbortError");let t,m=await(r?Promise.race([a.promise,new Promise((c,l)=>{t=()=>l(new DOMException("Aborted","AbortError")),r.addEventListener("abort",t,{once:!0})})]).finally(()=>r.removeEventListener("abort",t)):a.promise);if(m?.code)throw new I(m.code,m.message);return m}}}var{Selection:X}=O;function W(p,s){let n=null;return p.forEach((i,a,r)=>{i.attrs.id===s&&(n={node:i,at:a,index:r})}),n}function j(p,s,n){let i=p.state,a=W(i.doc,n?.hostId)??(()=>{let w=Math.min(i.selection.$head.index(0),i.doc.childCount-1),f=0;for(let g=0;g<w;g++)f+=i.doc.child(g).nodeSize;return{node:i.doc.child(w),at:f,index:w}})(),{node:r,at:t,index:m}=a,c=i.doc.maybeChild(m+1),l=r.isTextblock&&(r.content.size===0||n?.hostId===r.attrs.id&&r.textContent===n.slashText),y=l?r.attrs.pos:P(r.attrs.pos,c?.attrs.pos??null),v=q.nodes.tool.create({id:s.id,pos:y,parent:r.attrs.parent??null,artifact:s.artifact,rev:s.rev,state:s.state}),o=l?t:t+r.nodeSize,d=i.tr;if(!l&&n?.hostId===r.attrs.id&&n.slashText&&n.slashOffset>=0){let w=t+1+n.slashOffset,f=w+n.slashText.length;f<=t+r.nodeSize-1&&i.doc.textBetween(w,f)===n.slashText&&d.delete(w,f)}let C=d.mapping.map(o);d.replaceWith(C,l?d.mapping.map(t+r.nodeSize):C,v),d.setSelection(X.near(d.doc.resolve(Math.min(C+v.nodeSize,d.doc.content.size)))),p.dispatch(M(d).scrollIntoView())}function ie({getView:p,store:s,transport:n,acceptState:i=()=>globalThis.clay?.save?.flush?.(),newId:a=R}){let r=n?J({transport:n,newId:()=>a("request")}):null,t=null,m=0,c=()=>{m++,t&&(r?.discard(t.pending),t.preview?.dispose(),t.previewHost?.dispose(),t.element.remove(),t=null)};return{open:({target:y=null,remove:v=null}={})=>{c();let o=p();if(!o)return;let d=o.state.selection,w={hostId:o.state.doc.child(Math.min(d.$head.index(0),o.state.doc.childCount-1))?.attrs.id,slashText:v?o.state.doc.textBetween(v.from,v.to):null,slashOffset:v&&d.$head.depth?v.from-d.$head.before(1)-1:null},f=o.dom.ownerDocument,g=f.createElement("section");g.className="page-ai-panel",g.contentEditable="false",g.setAttribute("role","dialog"),g.setAttribute("aria-label",y?"Revise tool":"Make a tool with AI");let E=f.createElement("textarea");E.setAttribute("aria-label","Describe the tool"),E.placeholder=y?"What should change?":"Describe the tool you want";let A=f.createElement("p");A.className="page-ai-status";let S=f.createElement("div");S.className="page-ai-preview";let T=f.createElement("div");T.className="page-ai-actions",g.append(E,A,S,T),o.dom.parentElement.append(g),t={element:g,input:E,status:A,previewRoot:S,actions:T,target:y,bookmark:w,candidate:null,pending:null,preview:null,previewHost:null,kept:!1,busy:!1};let x=(e,u)=>{let h=f.createElement("button");h.type="button",h.textContent=e,h.addEventListener("click",u),T.append(h)},z=()=>{t&&(t.preview?.dispose(),t.previewHost?.dispose(),t.preview=null,t.previewHost=null,t.previewRoot.replaceChildren(),t.input.hidden=!1,t.actions.replaceChildren(),x("Generate",D),x("Cancel",c),t.input.focus())},_=()=>{let e=t;e.input.hidden=!0,e.status.textContent="",e.previewHost=L({mode:"view"}),e.preview=e.previewHost.mount(e.previewRoot,{id:"preview",rev:"preview",artifact:e.candidate.artifact,seed:e.candidate.state}),e.actions.replaceChildren(),x("Keep",H),x("Revise",z),x("Discard",c)},D=async()=>{let e=t;if(!e||e.busy||!e.input.value.trim())return;if(!r){e.status.textContent="Tool generation is unavailable";return}e.busy=!0,e.status.textContent="Making your tool\u2026",e.actions.replaceChildren(),x("Cancel",c);let u=++m,h=r.request(e.input.value.trim(),$(o.state.doc,f.title),e.target);e.pending=h;try{let b=await r.wait(h);if(t!==e||u!==m)return;e.candidate={artifact:b.artifact,state:b.state,id:null,rev:null},_()}catch(b){if(t!==e||u!==m)return;e.status.textContent=b.message,e.actions.replaceChildren(),x("Generate",D),x("Cancel",c)}finally{e.busy=!1}},H=async()=>{let e=t;if(!e?.candidate||e.busy||e.kept)return;e.busy=!0;let u=e.candidate;u.id??=e.target?.toolId??a("b"),u.rev??=a("rev");try{if(!s)throw new Error("This document can't save tool state");await s.set([u.id,u.rev],u.state);let h=await i();if(h?.ok!==!0&&!["saved","clean"].includes(h?.state))throw new Error(h?.msg??h?.message??"Tool state was not saved");if(t!==e||e.kept)return;if(e.target){let b=W(o.state.doc,e.target.toolId);if(b?.node.type!==q.nodes.tool||b.node.attrs.rev!==e.target.rev){e.status.textContent="This tool changed while you were revising. Keep as a new tool, or discard.",e.target=null,u.id=null,u.rev=null,e.actions.replaceChildren(),x("Keep as new tool",H),x("Discard",c);return}o.dispatch(M(o.state.tr.setNodeMarkup(b.at,null,{...b.node.attrs,artifact:u.artifact,rev:u.rev})))}else j(o,u,e.bookmark);e.kept=!0,c()}catch(h){t===e&&(e.status.textContent=h.message)}finally{e.busy=!1}};return z(),g},dispose:c}}export{ie as createAiTool};
|
|
@@ -0,0 +1,3 @@
|
|
|
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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as a}from"./c-CYWLPPUS.js";var w="clay.conflicts",v=1,b="conflict",p="conflicts",C=["kind","id","label","field"];function A(){return(globalThis.window?.clay??globalThis.clay)?.recovery??null}var f=null;function y(){let t=A();if(!t||typeof t.register!="function")return null;if(f?.service===t)return f.channel;try{f={service:t,channel:t.register({channel:w,version:v})}}catch{return null}return f.channel}function j(){let t=a.local.get(p);return Number.isFinite(t?.count)&&t.count>0?t.count:0}function m(t){t>0?a.local.set(p,{count:t,at:Date.now()}):a.local.remove(p)}var u=Symbol("dropped");function O(t){if(!t||typeof t!="object")return!1;let e=Object.getPrototypeOf(t);return e===Object.prototype||e===null}function d(t,e,o){let n=typeof t;if(t===null||n==="string"||n==="number"||n==="boolean")return t;if(n==="undefined")return u;if(n!=="object")return e.push(o),u;if(Array.isArray(t))return t.map((r,i)=>{let s=d(r,e,`${o}[${i}]`);return s===u?null:s});if(!O(t))return e.push(o),u;let c={};for(let[r,i]of Object.entries(t)){let s=d(i,e,o?`${o}.${r}`:r);s!==u&&(c[r]=s)}return c}function g(t,e=[],o=""){let n=d(t,e,o);return n===u?null:n}function S(t){if(!t||typeof t!="object")return null;let e={};for(let o of C){let n=t[o];typeof n=="string"?n&&(e[o]=n):typeof n=="number"&&Number.isFinite(n)&&(e[o]=String(n))}return Object.keys(e).length?e:null}function E({apply:t={},root:e=null,conflicts:o=[]}={}){let n=[];for(let r of o){let i=[],s=g(r,i,"");!s||typeof s!="object"||!s.id||(i.length&&(s.dropped=i),n.push(s))}if(!n.length)return[];let c={apply:g(t,[],"")??{},root:typeof e=="string"?e:null,savedAt:Date.now(),conflicts:n};try{let r=y();if(!r)return[];let i=r.stage({key:String(t.id??""),kind:b,payload:c});return r.flush().catch(()=>{}),m(j()+n.length),[{id:i.id,revision:i.revision}]}catch(r){return console.error("clayjs: the conflict could not be stored for a later reload; it is still here",r),[]}}var l=t=>typeof t=="string"?t:t==null?"":String(t);function N(t){if(!t||typeof t!="object")return null;let e=l(t.id);if(!e)return null;let o=S(t.context);return{id:e,kind:l(t.kind),key:l(t.key),name:l(t.name),sentence:l(t.sentence),yours:l(t.yours),now:l(t.now),context:o,dropped:Array.isArray(t.dropped)?t.dropped.map(l):[]}}function x(t){let e=t?.payload;if(!e||typeof e!="object")return null;let o=Array.isArray(e.conflicts)?e.conflicts.map(N).filter(Boolean):[];if(!o.length)return null;let n=e.apply&&typeof e.apply=="object"?e.apply:{};return{id:t.id,revision:t.revision,supported:t.supported!==!1,savedAt:Number.isFinite(e.savedAt)?e.savedAt:null,apply:n,root:typeof e.root=="string"?e.root:null,conflicts:o}}async function h(){let t=y();if(!t)return{ok:!0,records:[]};let e;try{e=await t.list()}catch{return{ok:!1,code:"error",records:[]}}if(!e.ok)return{ok:!1,code:e.code,records:[]};let o=e.records.map(x).filter(Boolean);return m(o.reduce((n,c)=>n+c.conflicts.length,0)),{ok:!0,records:o,status:e.status}}async function F(t){let e=new Set((Array.isArray(t)?t:[t]).filter(r=>r!=null).map(String));if(!e.size)return{ok:!0,removed:0};let o=y();if(!o)return{ok:!0,removed:0};let n=await h();if(!n.ok)return{ok:!1,code:n.code};let c=0;for(let r of n.records){let i=r.conflicts.filter(k=>!e.has(k.id));if(i.length===r.conflicts.length)continue;if(c+=r.conflicts.length-i.length,!i.length){await o.dismiss(r.id,{revision:r.revision});continue}o.stage({key:String(r.id),kind:b,payload:{apply:r.apply,root:r.root,savedAt:r.savedAt,conflicts:i}}),(await o.flush()).ok&&await o.dismiss(r.id,{revision:r.revision})}return await h(),globalThis.document?.dispatchEvent(new CustomEvent("clay:conflict-store-changed")),{ok:!0,removed:c}}export{w as a,v as b,b as c,j as d,g as e,S as f,E as g,h,F as i};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o=()=>{};function e(t){o=t}function n(t){o(t)}export{e as a,n as b};
|
|
@@ -0,0 +1 @@
|
|
|
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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function c(t){let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),e.setSelectionRange(0,99999);try{let o=document.execCommand("copy");console.log(o?"Copied to clipboard":"Copy failed")}catch(o){console.error("Unable to copy:",o)}document.body.removeChild(e)}var l=c;export{l as a};
|
|
@@ -0,0 +1 @@
|
|
|
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};
|