@panphora/clayjs 1.15.2 → 1.17.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 +84291 -57611
- 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-ZUE7PSCI.js +1 -0
- package/dist/m/attrs/save-freeze-MYNVXREN.js +1 -0
- package/dist/m/c-2AZDZWCK.js +1 -0
- package/dist/m/c-2SPVQSHC.js +1 -0
- package/dist/m/c-2YYDMLNZ.js +1 -0
- package/dist/m/c-336SGU5W.js +1 -0
- package/dist/m/c-33JJ6CBX.js +2 -0
- package/dist/m/c-3GJ4SDE2.js +1 -0
- package/dist/m/c-3H6BZDNJ.js +6 -0
- package/dist/m/c-3OWDMNJR.js +2 -0
- package/dist/m/c-3RUU4TPX.js +91 -0
- package/dist/m/c-3XIRD4NU.js +1 -0
- package/dist/m/c-46XYM55L.js +1 -0
- package/dist/m/c-4DFEJ2PO.js +3 -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-56QRZTZH.js +1 -0
- package/dist/m/c-5J4E7O4Y.js +4 -0
- package/dist/m/c-5LKDWQTL.js +19 -0
- package/dist/m/c-5QWQ7A5L.js +1 -0
- package/dist/m/c-5RJFTLSF.js +1 -0
- package/dist/m/c-5V3MOVJT.js +1 -0
- package/dist/m/c-5VYOWDTI.js +1 -0
- package/dist/m/c-5YIHJ3TJ.js +1 -0
- package/dist/m/c-6AZOGAPE.js +1 -0
- package/dist/m/c-6CRUUXOX.js +5 -0
- package/dist/m/c-6HMB24EV.js +1 -0
- package/dist/m/c-6KEVEQ7L.js +1 -0
- package/dist/m/c-6NC5I2TV.js +1 -0
- package/dist/m/c-74MGYWZF.js +1 -0
- package/dist/m/c-7DJDKPGL.js +1 -0
- package/dist/m/c-7OLLJPWP.js +1 -0
- package/dist/m/c-7SWMYKAI.js +1 -0
- package/dist/m/c-A3E3NIMC.js +1 -0
- package/dist/m/c-A7LS5UZW.js +1 -0
- package/dist/m/c-AMSNPOCX.js +1 -0
- package/dist/m/c-AQLFEATB.js +1 -0
- package/dist/m/c-B3JM5ZXC.js +1 -0
- package/dist/m/c-BBVGTQG7.js +1 -0
- package/dist/m/c-BPF2NSPV.js +1 -0
- package/dist/m/c-BQ6LOBEE.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-CJ3A7ZKE.js +1 -0
- package/dist/m/c-CQHPGKX2.js +1 -0
- package/dist/m/c-CYWLPPUS.js +1 -0
- package/dist/m/c-CZUSOB7V.js +1 -0
- package/dist/m/c-DCFSEJZG.js +1 -0
- package/dist/m/c-DCXOXBF3.js +1 -0
- package/dist/m/c-DFS4XZJV.js +2 -0
- package/dist/m/c-DNENWY4O.js +1 -0
- package/dist/m/c-DNZ5IFM6.js +1 -0
- package/dist/m/c-E4LIR5X5.js +1 -0
- package/dist/m/c-EJTGYSLN.js +1 -0
- package/dist/m/c-EVCQ3BKA.js +1 -0
- package/dist/m/c-EZU56NQV.js +34 -0
- package/dist/m/c-FDNHHZY5.js +1 -0
- package/dist/m/c-FILLTJA7.js +1 -0
- package/dist/m/c-FRLHSY7E.js +1 -0
- package/dist/m/c-FROJUZMV.js +1 -0
- package/dist/m/c-G2JPKCTP.js +1 -0
- package/dist/m/c-GB6TU7WV.js +1 -0
- package/dist/m/c-GFJJEBTU.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-GSFIGKOP.js +1 -0
- package/dist/m/c-GY422N3Q.js +1 -0
- package/dist/m/c-H4LG442Q.js +1 -0
- package/dist/m/c-HA6INT6J.js +1 -0
- package/dist/m/c-HAWFNBYG.js +1 -0
- package/dist/m/c-HDDEEL77.js +1 -0
- package/dist/m/c-HFKUVACH.js +1 -0
- package/dist/m/c-HHDFCNHV.js +1 -0
- package/dist/m/c-HPURYVZS.js +2 -0
- package/dist/m/c-I2ZATQCD.js +2 -0
- package/dist/m/c-IEM4NTCS.js +1 -0
- package/dist/m/c-IJUK2GPW.js +1 -0
- package/dist/m/c-IW6GGOU2.js +1 -0
- package/dist/m/c-JAX2667S.js +6 -0
- package/dist/m/c-JDCX26UP.js +25 -0
- package/dist/m/c-JRKY44DK.js +1 -0
- package/dist/m/c-JU3NK25H.js +1 -0
- package/dist/m/c-KAU6E43D.js +1 -0
- package/dist/m/c-KBS3UV6B.js +1 -0
- package/dist/m/c-KGVGROZT.js +1 -0
- package/dist/m/c-KI7M4AY3.js +1 -0
- package/dist/m/c-KIPQJX4B.js +1 -0
- package/dist/m/c-KQ6TYJAP.js +135 -0
- package/dist/m/c-KU3ZFADW.js +1 -0
- package/dist/m/c-L4WQSC27.js +1 -0
- package/dist/m/c-LFPHCXY3.js +1 -0
- package/dist/m/c-LRPUO2MX.js +1 -0
- package/dist/m/c-LWLBHLVC.js +3 -0
- package/dist/m/c-LZJPNR2W.js +1 -0
- package/dist/m/c-M2L47S2X.js +7 -0
- package/dist/m/c-MFP2ZWD4.js +1 -0
- package/dist/m/c-MKSQ4Y57.js +1 -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-NRPJEVJS.js +1 -0
- package/dist/m/c-NUFFJVVJ.js +1 -0
- package/dist/m/c-NUHP2XDB.js +1 -0
- package/dist/m/c-NUHSPT5P.js +1 -0
- package/dist/m/c-O72HVYSA.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-OW5QIGG3.js +1 -0
- package/dist/m/c-P7KNDG34.js +1 -0
- package/dist/m/c-PGRCK73F.js +1 -0
- package/dist/m/c-PQ5LK6QE.js +993 -0
- package/dist/m/c-PS5ARVWR.js +9 -0
- package/dist/m/c-PZ4XEPUP.js +2 -0
- package/dist/m/c-Q622NS2Y.js +1 -0
- package/dist/m/c-Q7NQD65V.js +1 -0
- package/dist/m/c-QH63LQOS.js +1 -0
- package/dist/m/c-QHIWXHRO.js +1 -0
- package/dist/m/c-QHWJ5ZIJ.js +1 -0
- package/dist/m/c-QICP2YR5.js +1 -0
- package/dist/m/c-QJ4OM3G6.js +1 -0
- package/dist/m/c-QNKREOL6.js +1 -0
- package/dist/m/c-R3L7ZJGB.js +2 -0
- package/dist/m/c-R7IWVINQ.js +1 -0
- package/dist/m/c-RM7J7BV2.js +1 -0
- package/dist/m/c-RSMOODDU.js +1 -0
- package/dist/m/c-RVMWGXEJ.js +1 -0
- package/dist/m/c-RYUXUUBX.js +1 -0
- package/dist/m/c-S4ZEH46B.js +9 -0
- package/dist/m/c-S7H2DRCB.js +1 -0
- package/dist/m/c-S7LK4KUE.js +1 -0
- package/dist/m/c-SDAXDM2D.js +1 -0
- package/dist/m/c-SGIA4IEQ.js +188 -0
- package/dist/m/c-SMBZG5X4.js +1 -0
- package/dist/m/c-SMGU7RT3.js +235 -0
- package/dist/m/c-SPIORRYS.js +1 -0
- package/dist/m/c-SWLRT66R.js +1 -0
- package/dist/m/c-SZGYW5HT.js +1 -0
- package/dist/m/c-TCCA5BZN.js +2 -0
- package/dist/m/c-TCJTVAFN.js +1 -0
- package/dist/m/c-TJ6WOJL3.js +67 -0
- package/dist/m/c-TQEMVJCS.js +1 -0
- package/dist/m/c-TRS6TM6O.js +1 -0
- package/dist/m/c-TYLXX4NF.js +21 -0
- package/dist/m/c-U62OB4BT.js +1 -0
- package/dist/m/c-U6YWUAR3.js +8 -0
- package/dist/m/c-UDCSU5G5.js +2 -0
- package/dist/m/c-UDUUJPFZ.js +1 -0
- package/dist/m/c-UGHH4MB3.js +1 -0
- package/dist/m/c-UL2YUY52.js +1 -0
- package/dist/m/c-VAK7SG37.js +1 -0
- package/dist/m/c-VDSS4K3Z.js +1 -0
- package/dist/m/c-VE6ZMYMC.js +1 -0
- package/dist/m/c-VG5XIN4T.js +1 -0
- package/dist/m/c-VHM5XQHK.js +1 -0
- package/dist/m/c-VHNSBD2M.js +1 -0
- package/dist/m/c-VI5RMSVY.js +1 -0
- package/dist/m/c-VKEDWYDF.js +1 -0
- package/dist/m/c-VRZN56XY.js +1 -0
- package/dist/m/c-W5MCHEGA.js +1 -0
- package/dist/m/c-WDC5GVKU.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-WWXIDH4O.js +28 -0
- package/dist/m/c-WYFDLITL.js +1 -0
- package/dist/m/c-XCNTK76U.js +1 -0
- package/dist/m/c-XMS6DPBR.js +1 -0
- package/dist/m/c-XN6MBKI6.js +67 -0
- package/dist/m/c-XPELB6E5.js +1 -0
- package/dist/m/c-XQXZAO7N.js +1 -0
- package/dist/m/c-Y5HBBIQ4.js +1 -0
- package/dist/m/c-ZE46QDIH.js +1 -0
- package/dist/m/c-ZUCOKOHT.js +1 -0
- package/dist/m/c-ZVPVXTJF.js +4 -0
- package/dist/m/c-ZVRKXKM7.js +1 -0
- package/dist/m/c-ZWIOJGMT.js +1 -0
- package/dist/m/core/admin-attrs-QHOKPJ7W.js +1 -0
- package/dist/m/core/autosave-HRYGUWV6.js +1 -0
- package/dist/m/core/conflict-notice-6MROJN2L.js +1 -0
- package/dist/m/core/draft-mode-WSQAT67S.js +1 -0
- package/dist/m/core/host-permission-FNXVEFNE.js +1 -0
- package/dist/m/core/is-edit-mode-KTWA3O5N.js +1 -0
- package/dist/m/core/persist-JFYRHMRJ.js +3 -0
- package/dist/m/core/recovery-FLTCC2OC.js +1 -0
- package/dist/m/core/save-HQZ4S667.js +1 -0
- package/dist/m/core/save-core-KGQWFUNH.js +1 -0
- package/dist/m/core/snapshot-EGQZNT45.js +1 -0
- package/dist/m/core/unsaved-warning-IDJLD66H.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-RN2JNGBV.js +1 -0
- package/dist/m/internals/index-PVXGPUDA.js +1 -0
- package/dist/m/lib/cache-bust-MUMFXZK6.js +1 -0
- package/dist/m/lib/region-policy-SB2AWVG5.js +1 -0
- package/dist/m/loader-S4I7GKXR.js +1 -0
- package/dist/m/manifest-4C419D67.js +1 -0
- package/dist/m/manifest-edit-B077F288.js +1 -0
- package/dist/m/manifest.json +3988 -0
- package/dist/m/options/options-EJMS3K24.js +1 -0
- package/dist/m/page/editor-NNJA4OKD.js +202 -0
- package/dist/m/plugins/ai-edit-QN4PMMNL.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-RM5IR6AO.js +1 -0
- package/dist/m/plugins/derive-UAAA4V4S.js +1 -0
- package/dist/m/plugins/indicator-URDBBOQO.js +1 -0
- package/dist/m/plugins/live-HFWD4OIH.js +1 -0
- package/dist/m/plugins/menu-3HIEQSI6.js +138 -0
- package/dist/m/plugins/message-LQ6EDH4V.js +1 -0
- package/dist/m/plugins/page-JOKB6XPR.js +2 -0
- package/dist/m/plugins/page-view-NXOJHNW6.js +1 -0
- package/dist/m/plugins/people-SGPJKANK.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-NRQDSWX6.js +517 -0
- package/dist/m/plugins/richclay-NRQDSWX6.js.LEGAL.txt +1 -0
- package/dist/m/plugins/sortable-GWT4PWDV.js +1 -0
- package/dist/m/plugins/source-4ZRSAIYM.js +1 -0
- package/dist/m/plugins/undo-VDA5P7FH.js +1 -0
- package/dist/m/plugins/unsent-HJFLQJ2O.js +1 -0
- package/dist/m/plugins/upgrade-W7FG5VFG.js +1 -0
- package/dist/m/plugins/upload-WLYKK6TL.js +1 -0
- package/dist/m/plugins/visitor-drafts-LIDY7NH6.js +21 -0
- package/dist/m/plugins/visitor-drafts-owner-ZXCKBZE7.js +1 -0
- package/dist/m/plugins/wire-4N6GYAF6.js +1 -0
- package/dist/m/reader-core-DXYCURFF.js +68 -0
- package/dist/m/route/route-KOCZSEGN.js +1 -0
- package/dist/m/sync/live-sync-J7VMYTKS.js +1 -0
- package/dist/m/ui/index-3JLVI27O.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 +4034 -0
- package/dist/page/themes/light-1.css +430 -0
- package/dist/server/core.cjs +23748 -22855
- 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/boot-phase.js +2 -1
- package/src/core/conflict-download.js +19 -23
- package/src/core/conflict-notice-ui.js +1173 -0
- package/src/core/conflict-notice.js +140 -697
- package/src/core/download.js +32 -0
- package/src/core/edit-mode.js +147 -14
- package/src/core/etag.js +30 -12
- package/src/core/host-meta.js +90 -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 +113 -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 +806 -119
- package/src/core/snapshot.js +159 -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 +140 -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 +113 -6
- 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 +3 -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/chart-tables.js +11 -0
- package/src/page/chart.js +6 -10
- package/src/page/checklist.js +1 -1
- package/src/page/checkpoint-proof.js +289 -0
- package/src/page/chrome.js +431 -63
- package/src/page/csv-import.js +17 -2
- package/src/page/document-title-dom.js +52 -0
- package/src/page/document-title-runtime.js +90 -0
- package/src/page/document-title.js +12 -0
- package/src/page/drag.js +48 -13
- package/src/page/drop.js +2 -1
- package/src/page/editor.js +399 -90
- package/src/page/emoji-data.js +162 -0
- package/src/page/feature-loader.js +72 -0
- package/src/page/features/board.js +21 -0
- package/src/page/features/chart.js +11 -0
- package/src/page/features/code.js +13 -0
- package/src/page/features/dates.js +180 -0
- package/src/page/features/emoji.js +187 -0
- package/src/page/features/media.js +290 -0
- package/src/page/features/mentions.js +188 -0
- package/src/page/features/registry.js +28 -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-command.js +9 -0
- package/src/page/format-gate.js +179 -0
- package/src/page/format-host.js +54 -0
- package/src/page/format-level.js +157 -0
- package/src/page/format-native-commands.js +142 -0
- package/src/page/format-native.js +42 -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 +45 -28
- package/src/page/items.js +67 -14
- package/src/page/link.js +1 -0
- package/src/page/markdown.js +112 -3
- package/src/page/media-views.js +3 -0
- package/src/page/media.js +33 -245
- package/src/page/mention-picker.js +99 -0
- package/src/page/merge.js +1 -1
- package/src/page/outline-cache.js +11 -0
- package/src/page/placeholder.js +27 -7
- package/src/page/projection.js +240 -51
- 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 +46 -4
- package/src/page/save-states.js +1 -1
- package/src/page/schema.js +47 -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/content.css +25 -1
- package/src/page/themes/light-1.css +163 -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-hooks.js +32 -0
- package/src/page/view.js +390 -107
- package/src/page/ybind/awareness.js +172 -0
- package/src/page/ybind/binding.js +40 -5
- 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 +26 -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 +97 -24
- package/src/page/ybind/recovery-proof.js +191 -0
- package/src/page/ybind/recovery-replay.js +488 -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 +319 -35
- 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 +1131 -270
- 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/intro.js +2 -1
- 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 +544 -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
package/dist/all.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/* all.js — clayjs satellite: All(selector) chainable querySelectorAll wrapper. 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("all.js: 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-4C419D67.js","edit":"manifest-edit-B077F288.js","preload":["dom/all-APS5ZSKP.js","c-VHNSBD2M.js","manifest-4C419D67.js"]})
|
|
74
|
+
|
|
75
|
+
clay.loaded.all = __clayChunks.runtime.then(function (R) {
|
|
76
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/dom/all.js");
|
|
77
|
+
var file = R.manifest.entries["dom/all.js"];
|
|
78
|
+
if (!file) throw new Error("clayjs: release " + R.manifest.version + " has no dom/all.js");
|
|
79
|
+
return import(R.dir + file);
|
|
80
|
+
})
|
|
81
|
+
.then(function (m) {
|
|
82
|
+
var All = m.default;
|
|
83
|
+
window.All = All; // interop carve-out (§2.3)
|
|
84
|
+
clay.All = All;
|
|
85
|
+
return All;
|
|
86
|
+
})
|
|
87
|
+
.catch(function (err) { console.error("all.js failed to load:", err); throw err; });
|
|
88
|
+
// Mark handled: see clay-ui.js.
|
|
89
|
+
clay.loaded.all.catch(function () {});
|
|
90
|
+
})();
|
package/dist/clay-dom.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/* clay-dom.js — clayjs satellite: Element prototype helpers (nearest, el, val, text, exec, cycle, show/hide). 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-dom: 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-4C419D67.js","edit":"manifest-edit-B077F288.js","preload":["dom/dom-helpers-L7OSR6S4.js","c-XQXZAO7N.js","c-WRBKEJD4.js","c-VHNSBD2M.js","manifest-4C419D67.js"]})
|
|
74
|
+
|
|
75
|
+
clay.loaded.dom = __clayChunks.runtime.then(function (R) {
|
|
76
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/dom/dom-helpers.js");
|
|
77
|
+
var file = R.manifest.entries["dom/dom-helpers.js"];
|
|
78
|
+
if (!file) throw new Error("clayjs: release " + R.manifest.version + " has no dom/dom-helpers.js");
|
|
79
|
+
return import(R.dir + file);
|
|
80
|
+
})
|
|
81
|
+
.catch(function (err) { console.error("clay-dom failed to load:", err); throw err; });
|
|
82
|
+
// Mark handled: see clay-ui.js.
|
|
83
|
+
clay.loaded.dom.catch(function () {});
|
|
84
|
+
})();
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/* clay-events.js — clayjs satellite: onclickaway, onclickchildren, onclone, onmutation, onpagemutation, onrender. 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-events: 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-4C419D67.js","edit":"manifest-edit-B077F288.js","preload":["events/index-RN2JNGBV.js","c-ZWIOJGMT.js","c-IJUK2GPW.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-WRBKEJD4.js","c-DCFSEJZG.js","c-VHNSBD2M.js","manifest-4C419D67.js"]})
|
|
74
|
+
|
|
75
|
+
// The mutation-backed attrs subscribe to a hub that observes document.body, so
|
|
76
|
+
// wait for DOM ready before importing (same gate as clay.js).
|
|
77
|
+
function domReady() {
|
|
78
|
+
return new Promise(function (r) {
|
|
79
|
+
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", r);
|
|
80
|
+
else r();
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// [onrender] sweeps the whole document the moment that import resolves, and those
|
|
85
|
+
// handlers routinely reach for clay-dom's element helpers (this.val, this.exec,
|
|
86
|
+
// this.nearest). The two satellites are independent dynamic imports with nothing
|
|
87
|
+
// ordering them, so on a cold load events can win and every handler throws
|
|
88
|
+
// "Cannot read properties of undefined". By DOM ready every satellite tag has run,
|
|
89
|
+
// so clay.loaded.dom is present exactly when clay-dom.js is on the page: wait for it
|
|
90
|
+
// then, proceed when it is absent. A clay-dom that failed to load must not take
|
|
91
|
+
// events down with it, so its rejection is swallowed here rather than chained.
|
|
92
|
+
clay.loaded.events = domReady()
|
|
93
|
+
.then(function () { return clay.loaded.dom && clay.loaded.dom.catch(function () {}); })
|
|
94
|
+
.then(function () { return __clayChunks.runtime.then(function (R) {
|
|
95
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/events/index.js");
|
|
96
|
+
var file = R.manifest.entries["events/index.js"];
|
|
97
|
+
if (!file) throw new Error("clayjs: release " + R.manifest.version + " has no events/index.js");
|
|
98
|
+
return import(R.dir + file);
|
|
99
|
+
}); })
|
|
100
|
+
.catch(function (err) { console.error("clay-events failed to load:", err); throw err; });
|
|
101
|
+
// Mark handled: see clay-ui.js.
|
|
102
|
+
clay.loaded.events.catch(function () {});
|
|
103
|
+
})();
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* clay-internals.js — clayjs satellite: clay.internals = the supported low-level surface (snapshot, region policy, save lane). 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-internals: 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-4C419D67.js","edit":"manifest-edit-B077F288.js","preload":["internals/index-PVXGPUDA.js","c-LWLBHLVC.js","c-SDAXDM2D.js","c-TQEMVJCS.js","c-DCXOXBF3.js","c-VRZN56XY.js","c-OW5QIGG3.js","c-BPF2NSPV.js","c-HA6INT6J.js","c-WRBKEJD4.js","c-P7KNDG34.js","c-CYWLPPUS.js","c-N7JPUPGC.js","c-IJUK2GPW.js","c-SPIORRYS.js","c-XQXZAO7N.js","c-S7LK4KUE.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-DCFSEJZG.js","c-VHNSBD2M.js","manifest-4C419D67.js"]})
|
|
74
|
+
|
|
75
|
+
// No DOM gate: nothing here touches document.body at import time, unlike clay-ui.
|
|
76
|
+
clay.loaded.internals = __clayChunks.runtime.then(function (R) {
|
|
77
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/internals/index.js");
|
|
78
|
+
var file = R.manifest.entries["internals/index.js"];
|
|
79
|
+
if (!file) throw new Error("clayjs: release " + R.manifest.version + " has no internals/index.js");
|
|
80
|
+
return import(R.dir + file);
|
|
81
|
+
})
|
|
82
|
+
.catch(function (err) { console.error("clay-internals failed to load:", err); throw err; });
|
|
83
|
+
// Mark handled: a blocked satellite must not emit an unhandled rejection.
|
|
84
|
+
clay.loaded.internals.catch(function () {});
|
|
85
|
+
})();
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* clay-options.js — clayjs satellite: option:/option-not:/show-when:/hide-when: visibility. 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-options: 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-4C419D67.js","edit":"manifest-edit-B077F288.js","preload":["options/options-EJMS3K24.js","c-7SWMYKAI.js","c-ZWIOJGMT.js","c-IJUK2GPW.js","c-VG5XIN4T.js","c-2YYDMLNZ.js","c-HA6INT6J.js","c-WRBKEJD4.js","c-DCFSEJZG.js","c-VHNSBD2M.js","manifest-4C419D67.js"]})
|
|
74
|
+
|
|
75
|
+
// Subscribes to the mutation hub (observes document.body); wait for DOM ready.
|
|
76
|
+
function domReady() {
|
|
77
|
+
return new Promise(function (r) {
|
|
78
|
+
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", r);
|
|
79
|
+
else r();
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
clay.loaded.options = domReady()
|
|
84
|
+
.then(function () { return __clayChunks.runtime.then(function (R) {
|
|
85
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/options/options.js");
|
|
86
|
+
var file = R.manifest.entries["options/options.js"];
|
|
87
|
+
if (!file) throw new Error("clayjs: release " + R.manifest.version + " has no options/options.js");
|
|
88
|
+
return import(R.dir + file);
|
|
89
|
+
}); })
|
|
90
|
+
.catch(function (err) { console.error("clay-options failed to load:", err); throw err; });
|
|
91
|
+
// Mark handled: see clay-ui.js.
|
|
92
|
+
clay.loaded.options.catch(function () {});
|
|
93
|
+
})();
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/* clay-router.js — clayjs satellite: URL-hash routing as tab-local attributes. 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-router: 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-4C419D67.js","edit":"manifest-edit-B077F288.js","preload":["route/route-KOCZSEGN.js","c-VHNSBD2M.js","manifest-4C419D67.js"]})
|
|
74
|
+
|
|
75
|
+
// Mirror the hash onto <html> now, before the module loads, so a saved
|
|
76
|
+
// show-when:route-* rule is right at first paint. The module re-applies.
|
|
77
|
+
try {
|
|
78
|
+
var raw = location.hash.slice(1);
|
|
79
|
+
if (raw.indexOf("=") !== -1) {
|
|
80
|
+
new URLSearchParams(raw).forEach(function (value, name) {
|
|
81
|
+
if (/^[a-z][a-z0-9-]*$/.test(name) && name !== "active" && value) {
|
|
82
|
+
document.documentElement.setAttribute("route-" + name, value);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
} catch (e) { /* the module applies it */ }
|
|
87
|
+
|
|
88
|
+
clay.loaded.router = __clayChunks.runtime.then(function (R) {
|
|
89
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/route/route.js");
|
|
90
|
+
var file = R.manifest.entries["route/route.js"];
|
|
91
|
+
if (!file) throw new Error("clayjs: release " + R.manifest.version + " has no route/route.js");
|
|
92
|
+
return import(R.dir + file);
|
|
93
|
+
})
|
|
94
|
+
.then(function (m) { return m.default; })
|
|
95
|
+
.catch(function (err) { console.error("clay-router failed to load:", err); throw err; });
|
|
96
|
+
// Mark handled: see clay-ui.js.
|
|
97
|
+
clay.loaded.router.catch(function () {});
|
|
98
|
+
})();
|
package/dist/clay-ui.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/* clay-ui.js — clayjs satellite: toasts, modals, ask/confirm/tell dialogs, auto clay:save-* feedback. 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-ui: 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-4C419D67.js","edit":"manifest-edit-B077F288.js","preload":["ui/index-3JLVI27O.js","c-AMSNPOCX.js","c-KIPQJX4B.js","c-QHWJ5ZIJ.js","c-4JZDZFF6.js","c-46XYM55L.js","c-LFPHCXY3.js","c-OIBUTDXI.js","c-VAK7SG37.js","c-NUHP2XDB.js","c-ZUCOKOHT.js","c-UL2YUY52.js","c-VKEDWYDF.js","c-2AZDZWCK.js","c-VHNSBD2M.js","manifest-4C419D67.js"]})
|
|
74
|
+
|
|
75
|
+
// Toasts and dialogs append to document.body, so `loaded.ui` must not resolve
|
|
76
|
+
// before the DOM is ready (same gate as clay-events).
|
|
77
|
+
function domReady() {
|
|
78
|
+
return new Promise(function (r) {
|
|
79
|
+
if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", r);
|
|
80
|
+
else r();
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
clay.loaded.ui = domReady()
|
|
85
|
+
.then(function () { return __clayChunks.runtime.then(function (R) {
|
|
86
|
+
if (!R.chunks) return import(__clayChunks.tree + "/src/ui/index.js");
|
|
87
|
+
var file = R.manifest.entries["ui/index.js"];
|
|
88
|
+
if (!file) throw new Error("clayjs: release " + R.manifest.version + " has no ui/index.js");
|
|
89
|
+
return import(R.dir + file);
|
|
90
|
+
}); })
|
|
91
|
+
.catch(function (err) { console.error("clay-ui failed to load:", err); throw err; });
|
|
92
|
+
// Mark handled: a blocked satellite must not emit an unhandled rejection.
|
|
93
|
+
// Consumers who await clay.loaded.ui still get the error.
|
|
94
|
+
clay.loaded.ui.catch(function () {});
|
|
95
|
+
})();
|