@panphora/clayjs 1.15.2 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,84 @@
|
|
|
1
|
+
/* clay-utils.js — clayjs satellite: clay.utils = { throttle, debounce, cookie, slugify, copyToClipboard }. https://clayjs.com */
|
|
2
|
+
(function () {
|
|
3
|
+
var clay = window.clay = window.clay || {};
|
|
4
|
+
clay.loaded = clay.loaded || {};
|
|
5
|
+
|
|
6
|
+
var script = document.currentScript;
|
|
7
|
+
if (!script || !script.src) {
|
|
8
|
+
console.error("clay-utils: could not determine my own URL (load me with a classic <script src=...>, not type=\"module\")");
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
var url = new URL(script.src, location.href);
|
|
12
|
+
// Query and fragment off first, then step out of the tarball's entries/ directory
|
|
13
|
+
// so package-path CDNs resolve src/. See clay.js for the full reason on both.
|
|
14
|
+
var path = url.href.split("#")[0].split("?")[0];
|
|
15
|
+
var base = path.slice(0, path.lastIndexOf("/"));
|
|
16
|
+
if (url.pathname.slice(0, url.pathname.lastIndexOf("/")).slice(-8) === "/entries") {
|
|
17
|
+
base = base.slice(0, -8);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
var __clayChunks = (function (M) {
|
|
21
|
+
var clay = window.clay = window.clay || {};
|
|
22
|
+
var dir = new URL(M.dir, base + "/").href;
|
|
23
|
+
var tree = base.slice(-5) === "/dist" ? base.slice(0, -5) : base;
|
|
24
|
+
var have = {};
|
|
25
|
+
document.head.querySelectorAll('link[rel="modulepreload"]').forEach(function (link) { have[link.href] = true; });
|
|
26
|
+
// Only an explicit ?editmode=true asks for the supplement, or the window.clayEditMode
|
|
27
|
+
// global a standalone page sets before this script; the owner cookie is not an edit
|
|
28
|
+
// request, because an owner who opens a document in view resolves to view.
|
|
29
|
+
function __clayLikelyEdit(search) {
|
|
30
|
+
var asked = new URLSearchParams(search).get("editmode");
|
|
31
|
+
if (asked) return asked === "true";
|
|
32
|
+
if (typeof clayEditMode !== "undefined") return Boolean(clayEditMode);
|
|
33
|
+
return typeof __hyperclayEditMode !== "undefined" && Boolean(__hyperclayEditMode);
|
|
34
|
+
}
|
|
35
|
+
var likelyEdit = __clayLikelyEdit(window.location.search);
|
|
36
|
+
// The supplement an edit page is about to import, preloaded like the manifest.
|
|
37
|
+
if (likelyEdit) M.preload.push(M.edit);
|
|
38
|
+
M.preload.forEach(function (file) {
|
|
39
|
+
var href = dir + file;
|
|
40
|
+
if (have[href]) return;
|
|
41
|
+
have[href] = true;
|
|
42
|
+
var link = document.createElement("link");
|
|
43
|
+
link.rel = "modulepreload";
|
|
44
|
+
link.href = href;
|
|
45
|
+
link.setAttribute("clay", "no-save");
|
|
46
|
+
document.head.appendChild(link);
|
|
47
|
+
});
|
|
48
|
+
if (!clay.__runtime) {
|
|
49
|
+
clay.__runtime = Promise.all([
|
|
50
|
+
import(dir + M.manifest),
|
|
51
|
+
likelyEdit ? import(dir + M.edit).catch(function () { return null; }) : null
|
|
52
|
+
]).then(function (r) {
|
|
53
|
+
var manifest = r[0].default;
|
|
54
|
+
manifest.base = dir;
|
|
55
|
+
var edit = r[1] ? r[1].default : null;
|
|
56
|
+
var hints = null;
|
|
57
|
+
// The cached hint fetch a resolved edit, draft or first entry uses. A failed one
|
|
58
|
+
// clears itself for retry and never selects another release.
|
|
59
|
+
function loadEditHints() {
|
|
60
|
+
if (!hints) {
|
|
61
|
+
hints = (edit ? Promise.resolve(edit) : import(dir + M.edit).then(function (m) { return m.default; }))
|
|
62
|
+
.catch(function (err) { hints = null; throw err; });
|
|
63
|
+
}
|
|
64
|
+
return hints;
|
|
65
|
+
}
|
|
66
|
+
return { chunks: true, dir: dir, manifest: manifest, edit: edit, loadEditHints: loadEditHints };
|
|
67
|
+
}, function (err) {
|
|
68
|
+
console.warn("clayjs: the bundled runtime did not load, loading the module tree instead:", err);
|
|
69
|
+
return { chunks: false, tree: tree };
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return { tree: tree, runtime: clay.__runtime };
|
|
73
|
+
})({"dir":"m/","manifest":"manifest-F22DEDAC.js","edit":"manifest-edit-C3C7376B.js","preload":["utils/index-4TJCVLT7.js","c-UL2YUY52.js","c-GQ6F6IDK.js","c-P7KNDG34.js","c-VHNSBD2M.js","manifest-F22DEDAC.js"]})
|
|
74
|
+
|
|
75
|
+
clay.loaded.utils = __clayChunks.runtime.then(function (R) {
|
|
76
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/utils/index.js");
|
|
77
|
+
var file = R.manifest.entries["utils/index.js"];
|
|
78
|
+
if (!file) throw new Error("clayjs: release " + R.manifest.version + " has no utils/index.js");
|
|
79
|
+
return import(R.dir + file);
|
|
80
|
+
})
|
|
81
|
+
.catch(function (err) { console.error("clay-utils failed to load:", err); throw err; });
|
|
82
|
+
// Mark handled: see clay-ui.js.
|
|
83
|
+
clay.loaded.utils.catch(function () {});
|
|
84
|
+
})();
|
package/dist/clay.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/* clayjs bootstrap. https://clayjs.com */
|
|
2
|
+
(function () {
|
|
3
|
+
// Suppress every vendored bundle's window auto-export; the loader assembles
|
|
4
|
+
// window.clay explicitly.
|
|
5
|
+
window.__hyperclayNoAutoExport = true;
|
|
6
|
+
|
|
7
|
+
// Merge into any window.clay a satellite already created; never replace it.
|
|
8
|
+
var clay = window.clay = window.clay || {};
|
|
9
|
+
// A second core tag is a no-op: the original boot's `ready` promise survives.
|
|
10
|
+
// A FAILED boot resets the sentinel so a corrected tag can retry; the retry
|
|
11
|
+
// resolves the ORIGINAL `ready` promise via the stashed resolver.
|
|
12
|
+
if (clay.__booted) return;
|
|
13
|
+
|
|
14
|
+
function mintReady() {
|
|
15
|
+
clay.ready = new Promise(function (res, rej) {
|
|
16
|
+
clay.__readyResolve = res;
|
|
17
|
+
clay.__readyReject = rej;
|
|
18
|
+
});
|
|
19
|
+
// Nobody may be awaiting a failed boot's promise, and an unhandled rejection
|
|
20
|
+
// in the console is noise on top of the error we already logged.
|
|
21
|
+
clay.ready.catch(function () {});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (!clay.ready) mintReady();
|
|
25
|
+
|
|
26
|
+
// clay.start runs app code once per page, after boot. A live-sync merge can
|
|
27
|
+
// re-insert an inline script and run it again; the repeat call is a no-op.
|
|
28
|
+
// It lives in the bootstrap so an inline script can call it before boot ends.
|
|
29
|
+
if (!clay.start) {
|
|
30
|
+
var started = Object.create(null);
|
|
31
|
+
clay.start = function (name, fn) {
|
|
32
|
+
if (typeof name === "function") { fn = name; name = ""; }
|
|
33
|
+
if (started[name]) return;
|
|
34
|
+
started[name] = true;
|
|
35
|
+
// A failed boot rejects the old promise after minting a new one, so a call
|
|
36
|
+
// made before the failure waits for the corrected tag's boot instead.
|
|
37
|
+
var wait = function () {
|
|
38
|
+
var ready = clay.ready;
|
|
39
|
+
return ready.then(fn, function (err) {
|
|
40
|
+
if (clay.ready === ready) throw err;
|
|
41
|
+
return wait();
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
return wait();
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
var script = document.currentScript;
|
|
49
|
+
if (!script || !script.src) {
|
|
50
|
+
console.error("clayjs: could not determine my own URL (load me with a classic <script src=...>, not type=\"module\")");
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
clay.__booted = true;
|
|
54
|
+
|
|
55
|
+
var url = new URL(script.src, location.href);
|
|
56
|
+
// The query and the fragment come off before the last slash is found. Leaving them
|
|
57
|
+
// on split the base inside them, so clay.js?next=/a/b imported ".../clay.js?next=/a/src/loader.js"
|
|
58
|
+
// and the library never booted.
|
|
59
|
+
var path = url.href.split("#")[0].split("?")[0];
|
|
60
|
+
var base = path.slice(0, path.lastIndexOf("/"));
|
|
61
|
+
// In the npm tarball the entry scripts sit in entries/ while src/ stays beside it
|
|
62
|
+
// at the package root, so a CDN that serves package paths literally (jsDelivr,
|
|
63
|
+
// unpkg) would look for src/ one directory too deep and load nothing. Stepping out
|
|
64
|
+
// of an "entries" segment makes those URLs resolve. clayjs.com never has the
|
|
65
|
+
// segment: build.js flattens entries/ into each version prefix, so this is a no-op
|
|
66
|
+
// there. The question is asked of the pathname, because asking it of the whole URL
|
|
67
|
+
// matched a host merely named "entries" and sent the import to another origin.
|
|
68
|
+
if (url.pathname.slice(0, url.pathname.lastIndexOf("/")).slice(-8) === "/entries") {
|
|
69
|
+
base = base.slice(0, -8);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
var __clayChunks = (function (M) {
|
|
73
|
+
var clay = window.clay = window.clay || {};
|
|
74
|
+
var dir = new URL(M.dir, base + "/").href;
|
|
75
|
+
var tree = base.slice(-5) === "/dist" ? base.slice(0, -5) : base;
|
|
76
|
+
var have = {};
|
|
77
|
+
document.head.querySelectorAll('link[rel="modulepreload"]').forEach(function (link) { have[link.href] = true; });
|
|
78
|
+
// Only an explicit ?editmode=true asks for the supplement, or the window.clayEditMode
|
|
79
|
+
// global a standalone page sets before this script; the owner cookie is not an edit
|
|
80
|
+
// request, because an owner who opens a document in view resolves to view.
|
|
81
|
+
function __clayLikelyEdit(search) {
|
|
82
|
+
var asked = new URLSearchParams(search).get("editmode");
|
|
83
|
+
if (asked) return asked === "true";
|
|
84
|
+
if (typeof clayEditMode !== "undefined") return Boolean(clayEditMode);
|
|
85
|
+
return typeof __hyperclayEditMode !== "undefined" && Boolean(__hyperclayEditMode);
|
|
86
|
+
}
|
|
87
|
+
var likelyEdit = __clayLikelyEdit(window.location.search);
|
|
88
|
+
// The supplement an edit page is about to import, preloaded like the manifest.
|
|
89
|
+
if (likelyEdit) M.preload.push(M.edit);
|
|
90
|
+
M.preload.forEach(function (file) {
|
|
91
|
+
var href = dir + file;
|
|
92
|
+
if (have[href]) return;
|
|
93
|
+
have[href] = true;
|
|
94
|
+
var link = document.createElement("link");
|
|
95
|
+
link.rel = "modulepreload";
|
|
96
|
+
link.href = href;
|
|
97
|
+
link.setAttribute("clay", "no-save");
|
|
98
|
+
document.head.appendChild(link);
|
|
99
|
+
});
|
|
100
|
+
if (!clay.__runtime) {
|
|
101
|
+
clay.__runtime = Promise.all([
|
|
102
|
+
import(dir + M.manifest),
|
|
103
|
+
likelyEdit ? import(dir + M.edit).catch(function () { return null; }) : null
|
|
104
|
+
]).then(function (r) {
|
|
105
|
+
var manifest = r[0].default;
|
|
106
|
+
manifest.base = dir;
|
|
107
|
+
var edit = r[1] ? r[1].default : null;
|
|
108
|
+
var hints = null;
|
|
109
|
+
// The cached hint fetch a resolved edit, draft or first entry uses. A failed one
|
|
110
|
+
// clears itself for retry and never selects another release.
|
|
111
|
+
function loadEditHints() {
|
|
112
|
+
if (!hints) {
|
|
113
|
+
hints = (edit ? Promise.resolve(edit) : import(dir + M.edit).then(function (m) { return m.default; }))
|
|
114
|
+
.catch(function (err) { hints = null; throw err; });
|
|
115
|
+
}
|
|
116
|
+
return hints;
|
|
117
|
+
}
|
|
118
|
+
return { chunks: true, dir: dir, manifest: manifest, edit: edit, loadEditHints: loadEditHints };
|
|
119
|
+
}, function (err) {
|
|
120
|
+
console.warn("clayjs: the bundled runtime did not load, loading the module tree instead:", err);
|
|
121
|
+
return { chunks: false, tree: tree };
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return { tree: tree, runtime: clay.__runtime };
|
|
125
|
+
})({"dir":"m/","manifest":"manifest-F22DEDAC.js","edit":"manifest-edit-C3C7376B.js","preload":["loader-HXX6YNH5.js","c-46XYM55L.js","c-OYTFP5QN.js","c-7SWMYKAI.js","c-UGHH4MB3.js","c-HT33EQRN.js","c-IJUK2GPW.js","c-GHBCCVG4.js","c-HA6INT6J.js","c-WRBKEJD4.js","c-DCFSEJZG.js","c-VHNSBD2M.js","c-FILLTJA7.js","c-VKEDWYDF.js","c-CYWLPPUS.js","manifest-F22DEDAC.js","core/draft-mode-WSQAT67S.js","c-N7JPUPGC.js","core/is-edit-mode-JXHDVGUL.js","c-7O6AFR65.js","c-P7KNDG34.js","lib/region-policy-SB2AWVG5.js"]})
|
|
126
|
+
__clayChunks.runtime.then(function (R) {
|
|
127
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/loader.js");
|
|
128
|
+
window.clay.__chunked = true;
|
|
129
|
+
return import(R.dir + R.manifest.entries["loader.js"]).then(function (m) {
|
|
130
|
+
return { boot: function (b, p, resolve) { return m.boot(b, p, resolve, R.manifest, R.edit, R.loadEditHints); } };
|
|
131
|
+
});
|
|
132
|
+
})
|
|
133
|
+
.then(function (m) { return m.boot(base, url.searchParams, clay.__readyResolve); })
|
|
134
|
+
.catch(function (err) {
|
|
135
|
+
clay.__booted = false;
|
|
136
|
+
console.error("clayjs failed to load:", err);
|
|
137
|
+
// Settle the promise so `await clay.ready` fails loudly instead of hanging
|
|
138
|
+
// forever with nothing to catch. Then mint a fresh one: a promise settles
|
|
139
|
+
// once, so without this the corrected retry tag would call __readyResolve on
|
|
140
|
+
// an already-rejected promise and every later await would keep throwing even
|
|
141
|
+
// though the retry succeeded.
|
|
142
|
+
var reject = clay.__readyReject;
|
|
143
|
+
mintReady();
|
|
144
|
+
if (reject) reject(err);
|
|
145
|
+
});
|
|
146
|
+
})();
|