@panphora/clayjs 1.23.0 → 1.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.js +1 -1
- package/dist/blockeditor/themes/light-1.css +431 -0
- package/dist/clay-dom.js +1 -1
- package/dist/clay-events.js +1 -1
- package/dist/clay-internals.js +1 -1
- package/dist/clay-options.js +1 -1
- package/dist/clay-router.js +1 -1
- package/dist/clay-ui.js +1 -1
- package/dist/clay-utils.js +1 -1
- package/dist/clay.js +1 -1
- package/dist/clay.standalone.js +30285 -26613
- package/dist/m/c-277QP5ET.js +1 -0
- package/dist/m/c-2BLVA6IN.js +5 -0
- package/dist/m/c-2OJMOUPC.js +1 -0
- package/dist/m/c-2PVGJFI5.js +1 -0
- package/dist/m/{c-AYVGD6A6.js → c-3UW5EJ77.js} +1 -1
- package/dist/m/{c-T5NK2TVY.js → c-42ZNV7LI.js} +1 -1
- package/dist/m/{c-3TLG3OLG.js → c-46LJAZZJ.js} +1 -1
- package/dist/m/c-47IBJGPQ.js +1 -0
- package/dist/m/c-5FXEKU4Y.js +1 -0
- package/dist/m/c-5KXDKC5G.js +1 -0
- package/dist/m/{c-EUGJVHDD.js → c-5RZNFTWD.js} +1 -1
- package/dist/m/c-65LJU2H2.js +72 -0
- package/dist/m/{c-NQJRVJ56.js → c-6IJEVE6B.js} +1 -1
- package/dist/m/{c-NW54NHKE.js → c-6LEYVQJK.js} +1 -1
- package/dist/m/{c-GSRLXYWL.js → c-6Q6RGFBF.js} +1 -1
- package/dist/m/c-6RGEQNVV.js +1 -0
- package/dist/m/c-7CM4GMTS.js +6 -0
- package/dist/m/c-7NCWENHV.js +1 -0
- package/dist/m/c-7V6MGMX2.js +1 -0
- package/dist/m/{c-LKSL4AUJ.js → c-7WZSUTYP.js} +1 -1
- package/dist/m/c-A4L7APIU.js +1 -0
- package/dist/m/c-APGHGDZM.js +1 -0
- package/dist/m/c-AT7GLQGV.js +34 -0
- package/dist/m/{c-ZRXJD4G6.js → c-B7GOFGQR.js} +1 -1
- package/dist/m/{c-KDXIJEEF.js → c-BGN7RCTJ.js} +1 -1
- package/dist/m/c-BKM46LUJ.js +1 -0
- package/dist/m/c-BOMQIQ3V.js +1 -0
- package/dist/m/{c-62HZW5DH.js → c-C5AKJVRH.js} +1 -1
- package/dist/m/{c-BXYSDKAN.js → c-CJ7QYEWI.js} +1 -1
- package/dist/m/c-CTGRDT6E.js +1 -0
- package/dist/m/c-CV4T65JE.js +6 -0
- package/dist/m/c-CVSWLX3X.js +1 -0
- package/dist/m/c-CZHTXGJS.js +1 -0
- package/dist/m/c-D7NT5S4F.js +1 -0
- package/dist/m/c-DD26VXAP.js +1 -0
- package/dist/m/{c-ANNFZFLN.js → c-DDS23EY6.js} +1 -1
- package/dist/m/{c-ALDVFPWL.js → c-DFKBGSN2.js} +1 -1
- package/dist/m/c-DIKR7H57.js +147 -0
- package/dist/m/c-DXPOFLEJ.js +1 -0
- package/dist/m/c-EDE45NM7.js +1 -0
- package/dist/m/c-EILLN2H2.js +1 -0
- package/dist/m/c-EODTTNVA.js +1 -0
- package/dist/m/{c-G6COVIZB.js → c-ESK4S67I.js} +1 -1
- package/dist/m/c-FDWR3FL7.js +1 -0
- package/dist/m/{c-WQZTI5P2.js → c-FEC6LGFF.js} +1 -1
- package/dist/m/c-FLEIU6CG.js +1 -0
- package/dist/m/c-FQAQRXGK.js +1 -0
- package/dist/m/{c-W4JCVLAB.js → c-FSQXFG5T.js} +1 -1
- package/dist/m/c-FVPNX2GO.js +135 -0
- package/dist/m/c-FYDKYW6E.js +1 -0
- package/dist/m/c-GNI7WHKF.js +32 -0
- package/dist/m/c-GO635CRU.js +3 -0
- package/dist/m/c-H3FNLBHN.js +2 -0
- package/dist/m/c-HDVH3MVC.js +72 -0
- package/dist/m/c-HIX5H5L7.js +1 -0
- package/dist/m/c-HKSLOVU4.js +1 -0
- package/dist/m/{c-SGRIYOAJ.js → c-HL6BLJNA.js} +1 -1
- package/dist/m/c-HTLYXCUH.js +1 -0
- package/dist/m/{c-QIR5CAKM.js → c-IUL7PU4P.js} +1 -1
- package/dist/m/c-IXO7EI2Q.js +1 -0
- package/dist/m/{c-W5E5P2TZ.js → c-JQF2EUCG.js} +1 -1
- package/dist/m/{c-NEL7HQW3.js → c-JWDCQL6J.js} +1 -1
- package/dist/m/c-KQKKIVLW.js +20 -0
- package/dist/m/c-LATNQ6Q5.js +1 -0
- package/dist/m/c-LD6UVV5R.js +1 -0
- package/dist/m/c-LS7IVQVW.js +1 -0
- package/dist/m/{c-JCOQVZYS.js → c-LSVN3OLG.js} +1 -1
- package/dist/m/{c-JDZDF2QM.js → c-LTSPHVAK.js} +1 -1
- package/dist/m/c-MFOSMAVM.js +3 -0
- package/dist/m/c-MJ7GVE46.js +1 -0
- package/dist/m/c-MP6S4AZU.js +6 -0
- package/dist/m/c-MQKSKQHG.js +2 -0
- package/dist/m/{c-UHUNXWKN.js → c-MQYEDF3Q.js} +1 -1
- package/dist/m/{c-IHUWUKIU.js → c-MR75YPRT.js} +1 -1
- package/dist/m/c-ND3Q2G2I.js +1 -0
- package/dist/m/c-NEQRFC4O.js +1 -0
- package/dist/m/{c-5FKRZNJV.js → c-NFQFV7OP.js} +1 -1
- package/dist/m/c-NHXOBD6A.js +1 -0
- package/dist/m/{c-QIKT6SKM.js → c-NICICT4P.js} +1 -1
- package/dist/m/c-NQAPWM7O.js +1 -0
- package/dist/m/{c-QUGCKMWF.js → c-NVU3DORS.js} +1 -1
- package/dist/m/{c-LWIDDWAR.js → c-OCYG4NBQ.js} +22 -22
- package/dist/m/c-OH2FPYSY.js +19 -0
- package/dist/m/c-OYHI67B6.js +1 -0
- package/dist/m/{c-R2XUODVY.js → c-OYW5MFPZ.js} +1 -1
- package/dist/m/{c-5B4YBZXC.js → c-P2HKMJAW.js} +1 -1
- package/dist/m/{c-TSBVMWAH.js → c-PCNJETUA.js} +1 -1
- package/dist/m/c-PDBNCJCT.js +1 -0
- package/dist/m/c-PGSBXHUE.js +1 -0
- package/dist/m/{c-5TIZ2I64.js → c-PYG2NGWU.js} +1 -1
- package/dist/m/c-Q26XHBLQ.js +1 -0
- package/dist/m/c-Q6BG3ZLO.js +1 -0
- package/dist/m/c-QENKN7QI.js +1 -0
- package/dist/m/c-QQFHEODI.js +1 -0
- package/dist/m/c-QTEUO2K6.js +1 -0
- package/dist/m/c-R23UHMXG.js +1 -0
- package/dist/m/c-RETTCOWO.js +10 -0
- package/dist/m/c-SE3SIY7Y.js +7 -0
- package/dist/m/{c-XX75FFNL.js → c-SGGGCIVD.js} +1 -1
- package/dist/m/c-SGH3UTF3.js +1 -0
- package/dist/m/c-SIM7Z3U7.js +1 -0
- package/dist/m/{c-X5LNHET5.js → c-SKMIR5HQ.js} +1 -1
- package/dist/m/{c-R27DWQKX.js → c-STRI73GQ.js} +1 -1
- package/dist/m/c-SUXHUL7U.js +1 -0
- package/dist/m/c-SXGEWPFC.js +10 -0
- package/dist/m/c-SXNSSHPP.js +1 -0
- package/dist/m/c-T3P3AXEW.js +1 -0
- package/dist/m/{c-PXLTUYZC.js → c-TFLRT5JX.js} +1 -1
- package/dist/m/{c-YCLU4UNT.js → c-TGIMBAWE.js} +1 -1
- package/dist/m/c-TGSHHFO6.js +1 -0
- package/dist/m/c-U4NTUVDZ.js +1 -0
- package/dist/m/c-UOOIF2AL.js +1 -0
- package/dist/m/{c-6TYGD5AB.js → c-UOUUI265.js} +1 -1
- package/dist/m/c-V2U3F4QX.js +1 -0
- package/dist/m/c-V2V5FKXX.js +1 -0
- package/dist/m/c-VBXRXTVS.js +26 -0
- package/dist/m/c-VHSMPITY.js +1 -0
- package/dist/m/c-VPXCXBDT.js +1 -0
- package/dist/m/c-WCG6AKA7.js +1 -0
- package/dist/m/c-WNOLMHI2.js +1 -0
- package/dist/m/{c-CRPIDGXC.js → c-X6MOYATI.js} +1 -1
- package/dist/m/{c-FQGHR32O.js → c-X75G43SZ.js} +1 -1
- package/dist/m/c-XB6EAIAR.js +13 -0
- package/dist/m/c-XMIDHEKF.js +1 -0
- package/dist/m/c-XUZMRQ7O.js +4 -0
- package/dist/m/{c-2Z22FCFK.js → c-XW5TIYYB.js} +1 -1
- package/dist/m/c-YDW4VCHP.js +1 -0
- package/dist/m/{c-QGAPG7OM.js → c-YLHTD3KX.js} +1 -1
- package/dist/m/c-YNIEIPBS.js +1 -0
- package/dist/m/c-Z4G2UK6T.js +4 -0
- package/dist/m/c-Z6MROEQ4.js +1 -0
- package/dist/m/c-ZFO5RW6G.js +2 -0
- package/dist/m/c-ZGCO4J3H.js +8 -0
- package/dist/m/c-ZKKAF4UT.js +3 -0
- package/dist/m/c-ZRGEN6QQ.js +4 -0
- package/dist/m/core/{admin-attrs-U7IJNYBG.js → admin-attrs-ONRWVXPK.js} +1 -1
- package/dist/m/core/{autosave-F5YQCKVL.js → autosave-TBKAAAFB.js} +1 -1
- package/dist/m/core/conflict-notice-FOEE6I7E.js +1 -0
- package/dist/m/core/draft-mode-4MCL3LYI.js +1 -0
- package/dist/m/core/{host-permission-6EVJGNPL.js → host-permission-X4BENZEU.js} +1 -1
- package/dist/m/core/{is-edit-mode-GCX6767E.js → is-edit-mode-FFHCQ5DR.js} +1 -1
- package/dist/m/core/{persist-CJXIL7D4.js → persist-6ILUR34S.js} +1 -1
- package/dist/m/core/{recovery-DRFZRJED.js → recovery-APWADU4K.js} +1 -1
- package/dist/m/core/save-6HT2LABE.js +1 -0
- package/dist/m/core/save-core-EVMNZQ4V.js +1 -0
- package/dist/m/core/site-edits-G4BOZMV4.js +1 -0
- package/dist/m/core/{unsaved-warning-HNQVTA2D.js → unsaved-warning-ITZDIZ2I.js} +1 -1
- package/dist/m/internals/{index-NRPNDTSA.js → index-HS3CQDFW.js} +1 -1
- package/dist/m/loader-GLLVDUZA.js +1 -0
- package/dist/m/manifest-50FF1C45.js +1 -0
- package/dist/m/manifest-edit-BE1A621D.js +1 -0
- package/dist/m/manifest.json +2072 -1811
- package/dist/m/page/editor-KAZDJNND.js +307 -0
- package/dist/m/plugins/ai-edit-LABECCSN.js +6 -0
- package/dist/m/plugins/{cms-H7DTMUQX.js → cms-T2HLI7JG.js} +16 -16
- package/dist/m/plugins/{demo-42BSYQ7T.js → demo-T7B4RIKL.js} +1 -1
- package/dist/m/plugins/{derive-QVI3LI3A.js → derive-6LPJOCAV.js} +1 -1
- package/dist/m/plugins/indicator-J4ABFARX.js +1 -0
- package/dist/m/plugins/{live-DCUBKXY4.js → live-PGBIEMGB.js} +1 -1
- package/dist/m/plugins/menu-YZL3X2AJ.js +1 -0
- package/dist/m/plugins/page-WOCNX2IN.js +2 -0
- package/dist/m/plugins/page-view-SJODOOGE.js +1 -0
- package/dist/m/plugins/{people-5XRNRP5U.js → people-C4TCWFOQ.js} +1 -1
- package/dist/m/plugins/{quickcrop-WWF5I422.js → quickcrop-X5MRIBAP.js} +2 -2
- package/dist/m/plugins/richclay-Y2NV44NA.js +549 -0
- package/dist/m/plugins/sortable-XCHQG65Z.js +1 -0
- package/dist/m/plugins/{source-6BKMK4PO.js → source-YK7MO23W.js} +1 -1
- package/dist/m/plugins/{undo-3JEYK5QY.js → undo-VLRBQNPN.js} +1 -1
- package/dist/m/plugins/upgrade-NNTJBSK2.js +1 -0
- package/dist/m/plugins/{upload-TTCQRIM5.js → upload-ZKKJV76X.js} +1 -1
- package/dist/m/plugins/visitor-drafts-RTZNONHT.js +20 -0
- package/dist/m/plugins/{visitor-drafts-owner-Z5B2OQBR.js → visitor-drafts-owner-LHUHFU3L.js} +1 -1
- package/dist/m/plugins/{visitor-menu-4LQMKLPP.js → visitor-menu-FY4KM2SW.js} +1 -1
- package/dist/m/plugins/wire-M2NR354P.js +1 -0
- package/dist/m/{reader-core-POFQCKRV.js → reader-core-T2S3JC4E.js} +2 -2
- package/dist/m/sync/live-sync-Z64YREWQ.js +1 -0
- package/dist/m/ui/index-MGTWOW2C.js +1 -0
- package/dist/m/vendor/{sap-core.vendor-OA5SKL7Q.js → sap-core.vendor-QAEPMETX.js} +1 -1
- package/dist/offline-manifest.json +1250 -1082
- package/dist/server/core.cjs +132 -109
- package/dist/server/page-compaction-worker.cjs +5 -5
- package/dist/server/rooms.mjs +3 -1
- package/docs/guide.md +89 -44
- package/entries/clay-data.js +1 -1
- package/entries/sap.js +1 -1
- package/package.json +5 -3
- package/src/blockeditor/themes/content.css +70 -0
- package/src/blockeditor/themes/light-1.css +431 -0
- package/src/blockeditor/themes/light-1.source.css +270 -0
- package/src/blockeditor/themes/light-2.css +211 -0
- package/src/blockeditor/themes/light-3.css +130 -0
- package/src/blockeditor/themes/light-4.css +299 -0
- package/src/core/conflict-notice.js +28 -0
- package/src/core/draft-mode.js +6 -0
- package/src/core/host-meta.js +6 -6
- package/src/core/is-edit-mode.js +9 -3
- package/src/core/mode-support.js +3 -0
- package/src/core/mode-switch.js +4 -4
- package/src/core/mode-transition.js +3 -1
- package/src/core/page-format-wire.js +1 -1
- package/src/core/page-format.js +8 -8
- package/src/core/save-accepted.js +6 -7
- package/src/core/save-core.js +52 -23
- package/src/core/save-failure-notice.js +37 -0
- package/src/core/save-feedback.js +6 -0
- package/src/core/save-replace.js +1 -1
- package/src/core/save-size.js +2 -2
- package/src/core/save.js +78 -15
- package/src/core/site-edits.js +166 -0
- package/src/core/unsaved-warning.js +2 -2
- package/src/core/upgrade-run.js +4 -4
- package/src/lib/ai-comment.js +23 -0
- package/src/lib/effect.js +8 -0
- package/src/lib/idb-error-code.js +20 -0
- package/src/live/fast-lane.js +10 -10
- package/src/live/local-lane.js +10 -10
- package/src/live/page-compaction.js +8 -8
- package/src/live/server-lane.js +1 -1
- package/src/loader-logic.js +48 -18
- package/src/loader.js +11 -6
- package/src/page/adopt-boot.js +1 -1
- package/src/page/adopt.js +2 -2
- package/src/page/ai-area.js +182 -0
- package/src/page/ai-preview.js +80 -0
- package/src/page/ai-surface.js +257 -0
- package/src/page/ai-tool.js +308 -145
- package/src/page/announce.js +2 -2
- package/src/page/awareness.js +18 -18
- package/src/page/blocks.js +35 -34
- package/src/page/blocksel.js +2 -2
- package/src/page/board-drag.js +11 -11
- package/src/page/board-face.js +1 -1
- package/src/page/board-panel.js +26 -26
- package/src/page/board-style.js +127 -127
- package/src/page/board-view.js +48 -48
- package/src/page/chart.js +29 -29
- package/src/page/checkpoint-proof.js +19 -19
- package/src/page/chrome.js +74 -65
- package/src/page/clipboard-shape.js +1 -1
- package/src/page/csv-import.js +4 -4
- package/src/page/drag.js +5 -5
- package/src/page/editor.js +301 -296
- package/src/page/export-html.js +8 -8
- package/src/page/features/checklist.js +36 -36
- package/src/page/features/export-html.js +19 -19
- package/src/page/features/export-markdown.js +10 -10
- package/src/page/features/import-markdown.js +13 -13
- package/src/page/features/media.js +50 -50
- package/src/page/features/table.js +17 -17
- package/src/page/features/title-cover.js +17 -17
- package/src/page/features/title-icon.js +7 -7
- package/src/page/features/toc.js +1 -1
- package/src/page/features/tool.js +42 -18
- package/src/page/format-command.js +4 -4
- package/src/page/format-gate.js +6 -6
- package/src/page/format-host.js +6 -6
- package/src/page/format-level.js +3 -3
- package/src/page/format-native-commands.js +2 -2
- package/src/page/highlight-slot.js +1 -1
- package/src/page/highlight.js +4 -4
- package/src/page/history-intent.js +2 -2
- package/src/page/image-actions.js +4 -4
- package/src/page/link.js +10 -10
- package/src/page/media.js +3 -3
- package/src/page/mention-picker.js +7 -7
- package/src/page/merge.js +1 -1
- package/src/page/placeholder.js +3 -3
- package/src/page/projection.js +11 -11
- package/src/page/reader-patch.js +2 -2
- package/src/page/recover.js +26 -26
- package/src/page/recovery-ui.js +28 -28
- package/src/page/rich/chart.js +1 -1
- package/src/page/rich/page-tool.js +21 -6
- package/src/page/rich/tool-runtime.js +3 -2
- package/src/page/save-projection.js +2 -2
- package/src/page/save-states.js +9 -9
- package/src/page/schema.js +9 -9
- package/src/page/table-style.js +21 -21
- package/src/page/toc-link.js +1 -1
- package/src/page/tool-capability.js +8 -3
- package/src/page/tool-transport.js +52 -0
- package/src/page/tool-views.js +4 -0
- package/src/page/tools.js +6 -1
- package/src/page/view.js +6 -6
- package/src/page/ybind/binding.js +1 -1
- package/src/page/ybind/conversion.js +1 -1
- package/src/page/ybind/layout.js +4 -4
- package/src/page/ybind/migrate.js +1 -1
- package/src/page/ybind/origins.js +2 -2
- package/src/page/ybind/provider.js +2 -2
- package/src/page/ybind/recovery-proof.js +3 -3
- package/src/page/ybind/recovery-replay.js +2 -2
- package/src/plugins/ai-edit/picker.js +235 -0
- package/src/plugins/ai-edit.js +220 -34
- package/src/plugins/indicator-chip.js +39 -34
- package/src/plugins/indicator.js +13 -4
- package/src/plugins/live.js +21 -13
- package/src/plugins/menu/actions.js +89 -17
- package/src/plugins/menu/seo.js +32 -6
- package/src/plugins/menu/shell-style.js +26 -7
- package/src/plugins/menu/shell.js +12 -7
- package/src/plugins/menu/variants.js +6 -10
- package/src/plugins/menu/visitor.js +44 -34
- package/src/plugins/menu.js +3 -2
- package/src/plugins/page-view.js +2 -2
- package/src/plugins/page.js +257 -98
- package/src/plugins/sortable.js +7 -0
- package/src/plugins/upgrade.js +2 -1
- package/src/plugins/visitor-drafts/commit.js +303 -0
- package/src/plugins/visitor-drafts/idb.js +221 -0
- package/src/plugins/visitor-drafts/intro-style.js +1 -1
- package/src/plugins/visitor-drafts/intro.js +8 -25
- package/src/plugins/visitor-drafts/prompt.js +30 -4
- package/src/plugins/visitor-drafts/session.js +345 -0
- package/src/plugins/visitor-drafts/store.js +351 -32
- package/src/plugins/visitor-drafts.js +158 -27
- package/src/server/checkpoint/index.js +8 -8
- package/src/server/rooms/index.js +2 -2
- package/src/server/rooms/live-data-rooms.js +35 -35
- package/src/server/rooms/live-page-history.js +2 -2
- package/src/server/rooms/page-admission.js +34 -6
- package/src/server/rooms/page-conversion.js +1 -1
- package/src/server/rooms/page-lineage.js +4 -4
- package/src/server/rooms/page-rebase.js +4 -4
- package/src/server/rooms/page-room-conformance.js +14 -14
- package/src/server/rooms/page-state.js +2 -2
- package/src/server/rooms/page-write-admission.js +7 -7
- package/src/server/rooms/page-write-guard.js +3 -3
- package/src/sync/data-guard-notice.js +265 -0
- package/src/sync/live-sync.js +54 -11
- package/src/sync/page-relay.js +4 -4
- package/src/sync/presence-store.js +1 -1
- package/src/sync/presence-target.js +3 -3
- package/src/sync/presence.js +1 -1
- package/src/sync/stream.js +54 -13
- package/src/sync/wire-profile.js +8 -3
- package/src/ui/bevel.js +1 -1
- package/src/ui/index.js +9 -10
- package/src/ui/skins/cms.js +1 -1
- package/src/ui/skins/quickcrop.js +1 -1
- package/src/ui/skins/richclay.js +2 -2
- package/src/ui/toast-lazy.js +12 -3
- package/src/ui/toast.js +9 -3
- package/src/vendor/hyper-html-api-data.vendor.js +1 -1
- package/src/vendor/hyper-html-api-upgrade.vendor.js +2 -2
- package/src/vendor/hypercms.vendor.js +16 -16
- package/src/vendor/richclay.vendor.js +48 -20
- package/src/vendor/sap-core.vendor.js +1 -1
- package/tool-generation/context.md +44 -0
- package/tool-generation/system.md +23 -0
- package/dist/m/c-24PMUJIV.js +0 -2
- package/dist/m/c-2AYVYEI4.js +0 -1
- package/dist/m/c-2AZDZWCK.js +0 -1
- package/dist/m/c-2L6O5PDS.js +0 -6
- package/dist/m/c-2RYOGUQM.js +0 -2
- package/dist/m/c-2ZVOEU4M.js +0 -1
- package/dist/m/c-37NAONZA.js +0 -1
- package/dist/m/c-3GJ4SDE2.js +0 -1
- package/dist/m/c-3O7OBDCM.js +0 -1
- package/dist/m/c-5OJ7YF2N.js +0 -1
- package/dist/m/c-5WMXEKFH.js +0 -135
- package/dist/m/c-6RDOKLN7.js +0 -1
- package/dist/m/c-A4IP6MBC.js +0 -1
- package/dist/m/c-A6L3FMUS.js +0 -1
- package/dist/m/c-ATKAOH23.js +0 -1
- package/dist/m/c-B6O7AJYG.js +0 -32
- package/dist/m/c-BCGWJYXW.js +0 -1
- package/dist/m/c-BGKAT2FL.js +0 -7
- package/dist/m/c-BYTKL6UX.js +0 -1
- package/dist/m/c-DHBRA6DL.js +0 -1
- package/dist/m/c-DTMZ3ZHI.js +0 -1
- package/dist/m/c-E3ZXARWA.js +0 -1
- package/dist/m/c-EK63G3CG.js +0 -1
- package/dist/m/c-ELYIIYRS.js +0 -1
- package/dist/m/c-EXKHPOVC.js +0 -3
- package/dist/m/c-FCSZ3DC5.js +0 -20
- package/dist/m/c-FTWGYI5E.js +0 -1
- package/dist/m/c-G4PWUDD5.js +0 -1
- package/dist/m/c-GBKB5WDL.js +0 -2
- package/dist/m/c-GBTVCJXC.js +0 -1
- package/dist/m/c-GC2HICFJ.js +0 -1
- package/dist/m/c-GRWMD6O5.js +0 -1
- package/dist/m/c-HCNWJE4A.js +0 -4
- package/dist/m/c-HG2C77BM.js +0 -4
- package/dist/m/c-JGHEACGK.js +0 -1
- package/dist/m/c-JGLX6TBK.js +0 -1
- package/dist/m/c-JNRKHYWO.js +0 -1
- package/dist/m/c-KBS3UV6B.js +0 -1
- package/dist/m/c-KQ7E3PYY.js +0 -1
- package/dist/m/c-L3F5ZLIV.js +0 -1
- package/dist/m/c-L4KMT7FO.js +0 -6
- package/dist/m/c-L5VFATT6.js +0 -1
- package/dist/m/c-LCYPMULG.js +0 -1
- package/dist/m/c-LIGQYZ7M.js +0 -6
- package/dist/m/c-LKIWEPAV.js +0 -1
- package/dist/m/c-MPSKIU2I.js +0 -1
- package/dist/m/c-N7JPUPGC.js +0 -1
- package/dist/m/c-NK33MMYF.js +0 -1
- package/dist/m/c-NQLWOHLH.js +0 -10
- package/dist/m/c-NTHUTABN.js +0 -1
- package/dist/m/c-NWX3MFT4.js +0 -1
- package/dist/m/c-OKXI52N7.js +0 -1
- package/dist/m/c-OPONJ2UK.js +0 -128
- package/dist/m/c-OWQWOGYI.js +0 -1
- package/dist/m/c-P6Q2ZTFQ.js +0 -1
- package/dist/m/c-QEN6HZCA.js +0 -1
- package/dist/m/c-QIXT3Q7C.js +0 -28
- package/dist/m/c-QM5LXRDT.js +0 -9
- package/dist/m/c-QYYUVLVG.js +0 -1
- package/dist/m/c-RQRMPZXD.js +0 -1
- package/dist/m/c-SBCBXKOZ.js +0 -26
- package/dist/m/c-SKF5HL4I.js +0 -4
- package/dist/m/c-SRPC3VBE.js +0 -1
- package/dist/m/c-TANBH7FI.js +0 -1
- package/dist/m/c-THGQQDYY.js +0 -1
- package/dist/m/c-UD5JZTDL.js +0 -1
- package/dist/m/c-UDGEFWNU.js +0 -1
- package/dist/m/c-UGNV5MFB.js +0 -1
- package/dist/m/c-VIRFF5HG.js +0 -8
- package/dist/m/c-VJYEVRYK.js +0 -1
- package/dist/m/c-VQCEOGKH.js +0 -13
- package/dist/m/c-VYJ7O4RI.js +0 -34
- package/dist/m/c-W7IPVCAA.js +0 -1
- package/dist/m/c-WBGWGOM7.js +0 -1
- package/dist/m/c-WJ5DRBHT.js +0 -72
- package/dist/m/c-X5WC4PX5.js +0 -1
- package/dist/m/c-XCFQEWW6.js +0 -3
- package/dist/m/c-XGH4GS2T.js +0 -1
- package/dist/m/c-XLQ3BDMM.js +0 -1
- package/dist/m/c-ZQXNHZZT.js +0 -72
- package/dist/m/core/conflict-notice-42H4ASLA.js +0 -1
- package/dist/m/core/draft-mode-WSQAT67S.js +0 -1
- package/dist/m/core/save-ESPSQPLV.js +0 -1
- package/dist/m/core/save-core-6SQHOR6W.js +0 -1
- package/dist/m/loader-FBDE2UAB.js +0 -1
- package/dist/m/manifest-1D2F5CA5.js +0 -1
- package/dist/m/manifest-edit-F7CC5CFD.js +0 -1
- package/dist/m/page/editor-OSKOW6RS.js +0 -304
- package/dist/m/plugins/ai-edit-VV4QTINH.js +0 -6
- package/dist/m/plugins/indicator-WVPGMOZ7.js +0 -1
- package/dist/m/plugins/menu-Q4MFFQ6E.js +0 -1
- package/dist/m/plugins/page-OAWUJQEL.js +0 -2
- package/dist/m/plugins/page-view-DZ26ZDDQ.js +0 -1
- package/dist/m/plugins/richclay-PGOOJ4OK.js +0 -517
- package/dist/m/plugins/sortable-266HY6TR.js +0 -1
- package/dist/m/plugins/upgrade-BNZVFHMZ.js +0 -1
- package/dist/m/plugins/visitor-drafts-2AUYKAIJ.js +0 -20
- package/dist/m/plugins/wire-W2EV36KZ.js +0 -1
- package/dist/m/sync/live-sync-XGUPHI3I.js +0 -1
- package/dist/m/ui/index-VGYAKAKI.js +0 -1
- package/dist/page/themes/light-1.css +0 -431
- package/src/page/themes/content.css +0 -70
- package/src/page/themes/light-1.css +0 -431
- package/src/page/themes/light-1.source.css +0 -270
- package/src/page/themes/light-2.css +0 -211
- package/src/page/themes/light-3.css +0 -130
- package/src/page/themes/light-4.css +0 -299
- /package/dist/m/{c-FILLTJA7.js → c-QTTJYJMA.js} +0 -0
- /package/dist/m/plugins/{quickcrop-WWF5I422.js.LEGAL.txt → quickcrop-X5MRIBAP.js.LEGAL.txt} +0 -0
- /package/dist/m/plugins/{richclay-PGOOJ4OK.js.LEGAL.txt → richclay-Y2NV44NA.js.LEGAL.txt} +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import{b as Ge}from"./c-HAWFNBYG.js";import{a as Xe,d as ce}from"./c-X6MOYATI.js";import{j as Je}from"./c-DIKR7H57.js";import{a as Ye}from"./c-AQLFEATB.js";import{a as Qe}from"./c-AQYCG7QW.js";import{b as qe}from"./c-QY7F6EN6.js";import{b as Ve,d as We}from"./c-WCG6AKA7.js";import{c as Ke}from"./c-PKCCHJ5X.js";import{a as $e}from"./c-I2SCCUEW.js";import{d as je}from"./c-QQFHEODI.js";import"./c-EDE45NM7.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-U4NTUVDZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var At=/^[a-z][a-z0-9+.-]*:/i,Lt=["noindex","nofollow"],St=["ogTitle","ogDescription","ogImage","ogImageAlt","siteName"],m=e=>e==null?"":String(e),I=e=>m(e).trim()!=="",T=e=>e.head||e.querySelector("head"),O=(e,t,n)=>Array.from(T(e).querySelectorAll("meta")).filter(i=>m(i.getAttribute(t)).trim().toLowerCase()===n),de=(e,t)=>Array.from(T(e).querySelectorAll("link")).filter(n=>m(n.getAttribute("rel")).trim().toLowerCase().split(/\s+/).includes(t)),pe=e=>Array.from(T(e).querySelectorAll("title")),fe=e=>O(e,"name","robots"),w=e=>e.remove();function G(e,t,n){let i=e.createElement("meta");return i.setAttribute(t,n),T(e).appendChild(i),i}function Ct(e,t){let n=e.createElement("link");return n.setAttribute("rel",t),T(e).appendChild(n),n}function ue(e,t,n,i){(O(e,t,n)[0]||G(e,t,n)).setAttribute("content",i)}function C(e,t,{trim:n=!1}={}){let i=c=>O(c,e,t);return{find:i,read(c){let d=i(c)[0];return d?m(d.getAttribute("content")):""},write(c,d){let f=i(c),p=m(d);if(!I(p)){f.forEach(w);return}(f[0]||G(c,e,t)).setAttribute("content",n?p.trim():p),f.slice(1).forEach(w)}}}var et=e=>m(e.getAttribute("content")).split(",").map(t=>t.trim()).filter(Boolean);function It(e,t){let n=fe(e),i=(n[0]?et(n[0]):[]).filter(p=>!Lt.includes(p.toLowerCase())),c=[];t.index===!1&&c.push("noindex"),t.follow===!1&&c.push("nofollow");let d=c.concat(i);if(!d.length){n.forEach(w);return}(n[0]||G(e,"name","robots")).setAttribute("content",d.join(", ")),n.slice(1).forEach(w)}function Ze(e){let t=e==="noindex"?"index":"follow",n=t==="index"?"follow":"index";return{find:fe,read(i){let c=fe(i)[0];return c?!et(c).some(d=>d.toLowerCase()===e):!0},write(i,c){let d={index:!0,follow:!0};d[t]=!!c,d[n]=x[n].read(i),It(i,d)}}}var Ot={find:pe,read(e){let t=pe(e)[0];return t?m(t.textContent):""},write(e,t){let n=pe(e),i=m(t);if(!I(i)){n.forEach(w);return}let c=n[0]||e.createElement("title");n.length||T(e).appendChild(c),c.textContent=i,n.slice(1).forEach(w)}},Ut={find(e){let t=e.documentElement;return t&&t.hasAttribute("lang")?[t]:[]},read(e){let t=e.documentElement;return t&&t.hasAttribute("lang")?m(t.getAttribute("lang")):""},write(e,t){let n=e.documentElement;if(!n)return;let i=m(t);if(!I(i)){n.removeAttribute("lang");return}n.setAttribute("lang",i.trim())}},zt={find:e=>de(e,"canonical"),read(e){let t=de(e,"canonical")[0];return t?m(t.getAttribute("href")):""},write(e,t){let n=de(e,"canonical"),i=m(t);if(!I(i)){n.forEach(w);return}(n[0]||Ct(e,"canonical")).setAttribute("href",i.trim()),n.slice(1).forEach(w)}},Y="clay-seo-title-mode",Tt={find:e=>O(e,"name",Y),read(e){return O(e,"name",Y).some(n=>m(n.getAttribute("content")).trim().toLowerCase()==="custom")?"custom":"derived"},write(e,t){let n=O(e,"name",Y);if(m(t).trim().toLowerCase()!=="custom"){n.forEach(w);return}(n[0]||G(e,"name",Y)).setAttribute("content","custom"),n.slice(1).forEach(w)}},x={title:Ot,description:C("name","description"),lang:Ut,canonical:zt,index:Ze("noindex"),follow:Ze("nofollow"),ogTitle:C("property","og:title"),ogDescription:C("property","og:description"),ogImage:C("property","og:image",{trim:!0}),ogImageAlt:C("property","og:image:alt"),siteName:C("property","og:site_name"),twitterSite:C("name","twitter:site"),titleMode:Tt},tt=Object.fromEntries(Object.keys(x).map(e=>[e,{read:x[e].read,write:x[e].write}]));function ot(e){let t=e.hostname.toLowerCase();return t==="localhost"||t.endsWith(".localhost")||t==="127.0.0.1"}function me(e){try{return new URL(e)}catch{return null}}function ge(e){return e.protocol==="http:"||e.protocol==="https:"}function nt(e){let t=e.location&&e.location.href||e.URL||e.baseURI||"",n=me(t);return!n||!ge(n)||ot(n)?"":n.origin+n.pathname}function it(e){let t=m(e).trim();if(!t)return"";let n=me(t);return!n||!ge(n)?"Enter a full http: or https: address.":ot(n)?"A localhost address cannot be a canonical URL.":""}function Mt(e,t){let n=m(e).trim();if(!n)return"";if(At.test(n)){let i=me(n);return!i||!ge(i)?"Use an http: or https: image address.":""}if(t)try{new URL(n,t)}catch{return"Use an http: or https: image address."}return""}function rt(e,t){let n=("canonical"in t?m(t.canonical).trim():x.canonical.read(e)).trim();return n&&!it(n)?n:""}function Rt(e,t){let n=St.some(d=>d in t&&I(t[d])),i="canonical"in t&&I(t.canonical);if(!n&&!i&&!("ogImage"in t))return;if(n||i){O(e,"property","og:type").length||ue(e,"property","og:type","website");let d=rt(e,t)||nt(e);d&&ue(e,"property","og:url",d)}let c="ogImage"in t?t.ogImage:x.ogImage.read(e);ue(e,"name","twitter:card",I(c)?"summary_large_image":"summary")}function B(e){let t={},n={};for(let i of Object.keys(x)){let c=x[i];t[i]=c.read(e),n[i]=c.find(e).length>0}return{values:t,present:n}}function X(e,t){let n=t||{},i=Object.keys(x).filter(p=>p in n),c={};if(i.includes("canonical")){let p=it(n.canonical);p&&(c.canonical=p)}if(i.includes("ogImage")){let p=rt(e,n)||nt(e),b=Mt(n.ogImage,p);b&&(c.ogImage=b)}if(Object.keys(c).length)return{normalized:[],errors:c};let d=[],f=new Set;for(let p of i){let b=x[p].find;b(e).length>1&&!f.has(b)&&(f.add(b),d.push(p))}for(let p of i)x[p].write(e,n[p]);return Rt(e,n),{normalized:d,errors:{}}}var at="reopen-seo",Ht="SEO and social sharing",Pt="SEO settings",lt="SEO settings applied",mt=/^[a-z][a-z0-9+.-]*:/i,Nt="This site is hidden from search engines in your account settings, so this page stays hidden whatever you choose here.",Bt="Uploaded images are public to anyone with the link.",Dt="Paste the address of an image on the web.",_t={title:{label:"Title",kind:"text",full:!0,count:60},description:{label:"Description",kind:"textarea",full:!0,count:160},ogTitle:{label:"Preview title",note:"Open Graph",kind:"text"},ogDescription:{label:"Preview description",note:"Open Graph",kind:"textarea",short:!0},ogImage:{label:"Preview image",note:"Open Graph",kind:"text",full:!0},canonical:{label:"Canonical URL",kind:"text"},lang:{label:"Language",kind:"text"},ogImageAlt:{label:"Image alt text",kind:"text"},siteName:{label:"Site name",kind:"text"},twitterSite:{label:"Social handle",kind:"text",placeholder:"@yourname"},index:{label:"Show in search results",kind:"checkbox"},follow:{label:"Let search engines follow links",kind:"checkbox"}},Ft=["title","description","ogTitle","ogDescription","ogImage"],jt=["canonical","lang","ogImageAlt","siteName","twitterSite"],Kt=["index","follow"],st=`.clay-seo { box-sizing: border-box; width: 100%; border-bottom: 1px solid var(--bevel-line-3); background: var(--bevel-surface); box-shadow: var(--clay-sheet-shadow); font-size: 13px; line-height: 1.45; container-type: inline-size; animation: clay-seo-in .2s ease-out; position: relative; z-index: 2147482001; grid-column: 1 / -1; flex: 0 0 100%; max-height: 85vh; max-height: 85dvh; overflow-y: auto; overscroll-behavior: contain; }
|
|
2
|
+
@keyframes clay-seo-in { from { margin-top: -40px; opacity: 0; } to { margin-top: 0; opacity: 1; } }
|
|
3
|
+
.clay-seo-inner { max-width: 1120px; margin: 0 auto; padding: 14px 20px 18px; }
|
|
4
|
+
.clay-seo-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid var(--bevel-line-2); }
|
|
5
|
+
.clay-seo-heading { margin: 0; font: 500 19px/1.15 var(--bevel-font-serif); letter-spacing: -.01em; }
|
|
6
|
+
.clay-seo-actions { display: flex; gap: 8px; }
|
|
7
|
+
.clay-seo-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .9fr); gap: 22px; align-items: start; }
|
|
8
|
+
.clay-seo-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
|
|
9
|
+
.clay-seo-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
|
|
10
|
+
.clay-seo-field.is-full { grid-column: 1 / -1; }
|
|
11
|
+
.clay-seo-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 12.5px; font-weight: 500; color: var(--bevel-ink-2); }
|
|
12
|
+
.clay-seo-label-row label span { font-weight: 400; color: var(--bevel-muted); }
|
|
13
|
+
.clay-seo-field:has([aria-invalid="true"]) .clay-seo-label-row { color: var(--bevel-ox); }
|
|
14
|
+
.clay-seo-aside { display: inline-flex; align-items: baseline; gap: 10px; }
|
|
15
|
+
.clay-seo-count { font: 500 11px/1 var(--bevel-font-mono); color: var(--bevel-muted); font-variant-numeric: tabular-nums; }
|
|
16
|
+
.clay-seo-count[data-over] { color: var(--bevel-ox); }
|
|
17
|
+
.clay-seo-derived { padding: 0; border: 0; background: none; color: var(--bevel-brass); font: 500 12px/1.3 var(--bevel-font-sans); text-decoration: underline; text-decoration-color: var(--bevel-line-3); text-underline-offset: 2px; cursor: pointer; }
|
|
18
|
+
.clay-seo-input { box-sizing: border-box; width: 100%; min-height: 32px; padding: 6px 9px; border: 1px solid var(--bevel-line-2); background: var(--bevel-ground); color: var(--bevel-ink); font: 400 13px/1.45 var(--bevel-font-sans); }
|
|
19
|
+
textarea.clay-seo-input { min-height: 52px; resize: none; overflow: hidden; }
|
|
20
|
+
textarea.clay-seo-input.is-short { min-height: 32px; }
|
|
21
|
+
.clay-seo-input::placeholder { color: var(--bevel-faint); opacity: 1; }
|
|
22
|
+
.clay-seo-input:hover { border-color: var(--bevel-faint); }
|
|
23
|
+
.clay-seo-input:focus-visible { outline: 2px solid var(--bevel-brass); outline-offset: 1px; border-color: var(--bevel-brass); }
|
|
24
|
+
.clay-seo-input[aria-invalid="true"] { border-color: var(--bevel-ox); background: color-mix(in srgb, var(--bevel-ox-soft) 40%, var(--bevel-ground)); }
|
|
25
|
+
.clay-seo-error { margin: 0; font-size: 12px; font-weight: 500; color: var(--bevel-ox); }
|
|
26
|
+
.clay-seo-upload { display: flex; gap: 8px; }
|
|
27
|
+
.clay-seo-upload .clay-seo-input { flex: 1; min-width: 0; }
|
|
28
|
+
.clay-seo-note { margin: 0; font-size: 12px; color: var(--bevel-muted); }
|
|
29
|
+
.clay-seo-more { grid-column: 1 / -1; border: 1px solid var(--bevel-line-2); background: var(--bevel-surface); }
|
|
30
|
+
.clay-seo-more > summary { position: relative; display: flex; align-items: center; gap: 9px; padding: 6px 10px 6px 8px; list-style: none; font-size: 12.5px; font-weight: 500; cursor: pointer; user-select: none; }
|
|
31
|
+
.clay-seo-more > summary::-webkit-details-marker { display: none; }
|
|
32
|
+
.clay-seo-more > summary::before { content: ""; box-sizing: border-box; width: 20px; height: 20px; border: 2px solid; border-color: var(--bevel-edge-hi) var(--bevel-edge-lo) var(--bevel-edge-lo) var(--bevel-edge-hi); background: var(--bevel-face); }
|
|
33
|
+
.clay-seo-more > summary::after { content: ""; position: absolute; left: 15px; top: 50%; width: 5px; height: 5px; border-right: 1.5px solid var(--bevel-ink); border-bottom: 1.5px solid var(--bevel-ink); transform: translateY(-50%) rotate(-45deg); }
|
|
34
|
+
.clay-seo-more[open] > summary { border-bottom: 1px solid var(--bevel-line); }
|
|
35
|
+
.clay-seo-more[open] > summary::before { background: var(--bevel-face-in); border-color: var(--bevel-edge-in) var(--bevel-edge-in-hi) var(--bevel-edge-in-hi) var(--bevel-edge-in); }
|
|
36
|
+
.clay-seo-more[open] > summary::after { transform: translate(1px, -65%) rotate(45deg); }
|
|
37
|
+
.clay-seo-more-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; padding: 10px; background: var(--bevel-sunk); }
|
|
38
|
+
.clay-seo-checks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 18px; }
|
|
39
|
+
.clay-seo-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
|
|
40
|
+
.clay-seo-check input { appearance: none; -webkit-appearance: none; position: relative; box-sizing: border-box; flex: none; width: 16px; height: 16px; margin: 0; border: 2px solid; border-color: var(--bevel-edge-hi) var(--bevel-edge-lo) var(--bevel-edge-lo) var(--bevel-edge-hi); background: var(--bevel-face); cursor: pointer; }
|
|
41
|
+
.clay-seo-check input:checked { background: var(--bevel-face-in); border-color: var(--bevel-edge-in) var(--bevel-edge-in-hi) var(--bevel-edge-in-hi) var(--bevel-edge-in); }
|
|
42
|
+
.clay-seo-check input:checked::after { content: ""; position: absolute; left: 3px; top: 0; width: 4px; height: 8px; border-right: 1.8px solid var(--bevel-ink); border-bottom: 1.8px solid var(--bevel-ink); transform: rotate(42deg); }
|
|
43
|
+
.clay-seo-check input:focus-visible { outline: 2px solid var(--bevel-brass); outline-offset: 2px; }
|
|
44
|
+
.clay-seo-preview { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
|
|
45
|
+
.clay-seo-preview-head { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; font-weight: 500; color: var(--bevel-ink-2); }
|
|
46
|
+
.clay-seo-preview-head span { font: 400 11px/1 var(--bevel-font-mono); color: var(--bevel-muted); }
|
|
47
|
+
.clay-og { border: 1px solid var(--bevel-line-2); background: var(--bevel-ground); overflow: hidden; }
|
|
48
|
+
.clay-og-image { position: relative; display: flex; align-items: flex-end; aspect-ratio: 1.91 / 1; max-height: 160px; width: 100%; padding: 10px 12px; box-sizing: border-box; overflow: hidden; background: var(--og-image, var(--bevel-brass-soft)); border-bottom: 1px solid var(--bevel-line-2); }
|
|
49
|
+
.clay-og-image[hidden] { display: none; }
|
|
50
|
+
.clay-og-image span { position: relative; font: 500 10.5px/1.3 var(--bevel-font-mono); padding: 2px 7px; border: 1px solid var(--bevel-line-2); background: var(--bevel-surface); color: var(--bevel-ink); }
|
|
51
|
+
.clay-og-body { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px 11px; }
|
|
52
|
+
.clay-og-host { font: 400 11px/1.3 var(--bevel-font-mono); color: var(--bevel-muted); }
|
|
53
|
+
.clay-og-title { font: 600 14px/1.3 var(--bevel-font-sans); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
54
|
+
.clay-og-desc { font-size: 12.5px; line-height: 1.4; color: var(--bevel-ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
55
|
+
.clay-seo-cardsize { margin: 0; font: 400 11px/1.3 var(--bevel-font-mono); color: var(--bevel-muted); }
|
|
56
|
+
|
|
57
|
+
@container (max-width: 680px) {
|
|
58
|
+
.clay-seo-inner { padding: 12px 14px 16px; }
|
|
59
|
+
.clay-seo-grid, .clay-seo-fields, .clay-seo-more-grid { grid-template-columns: 1fr; }
|
|
60
|
+
.clay-seo-input { font-size: 16px; min-height: 40px; }
|
|
61
|
+
textarea.clay-seo-input { min-height: 96px; }
|
|
62
|
+
textarea.clay-seo-input.is-short { min-height: 40px; }
|
|
63
|
+
.clay-seo-check { font-size: 15px; }
|
|
64
|
+
}
|
|
65
|
+
.clay-og-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
|
|
66
|
+
.clay-seo-check > .clay-seo-check { display: inline-block; }
|
|
67
|
+
.clay-seo-conflict { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; color: var(--bevel-muted); }
|
|
68
|
+
.clay-seo-conflict[hidden] { display: none; }
|
|
69
|
+
.clay-seo-conflict p { margin: 0; flex-basis: 100%; }
|
|
70
|
+
.clay-seo-title-mode { margin: 0; font-size: 12px; color: var(--bevel-muted); }
|
|
71
|
+
@media (pointer: coarse), (max-width: 680px) { .clay-seo .clay-menu-btn { min-height: 40px; } .clay-seo :is(input, textarea, select) { font-size: 16px; } }
|
|
72
|
+
@media (prefers-reduced-motion: reduce) { .clay-seo { animation: none; transition: none; } }`,$t='.clay-seo[part~="dock"] { --bevel-ground: var(--bevel-surface); }',v=e=>e==null?"":String(e);function l(e,t,n){let i=document.createElement(e);return t&&(i.className=t),n!=null&&(i.textContent=n),i}var he=e=>{try{return new URL(e)}catch{return null}},gt=e=>!!e&&(e.protocol==="http:"||e.protocol==="https:"),qt=e=>{let t=e.hostname.toLowerCase();return t==="localhost"||t.endsWith(".localhost")||t==="127.0.0.1"};function ct(e){let t=v(e).trim();if(!t)return"";let n=he(t);return!n||!gt(n)?"Enter a full http: or https: address.":qt(n)?"A localhost address cannot be a canonical URL.":""}function dt(e,t){let n=v(e).trim();if(!n)return"";if(mt.test(n)){let i=he(n);return!i||!gt(i)?"Use an http: or https: image address.":""}if(t)try{new URL(n,t)}catch{return"Use an http: or https: image address."}return""}function Vt(){try{let e=new URL(location.href);return e.origin+e.pathname}catch{return""}}function pt(){return document.querySelectorAll("article[data-blockeditor]").length===1}var ut="\uFFFC",ft=e=>[{t:"heading",level:1,parent:null,c:e}];function Wt(e){if(e&&!e.isDestroyed){let d=e.state.doc;for(let f=0;f<d.childCount;f++){let p=d.child(f);if(p.type.name!=="heading"||p.attrs.level!==1||(p.attrs.parent??null)!==null)continue;let b="";return p.forEach(k=>{b+=k.isText?k.text:k.type.name==="hard_break"?ut:""}),ft(b)}return[]}let t=document.querySelector("article[data-blockeditor]"),n=t&&[...t.children].find(d=>d.tagName==="H1");if(!n)return[];let i="",c=d=>{for(let f of d.childNodes)f.nodeType===3?i+=f.data:f.tagName==="BR"?i+=ut:c(f)};return c(n),ft(i)}function Yt(){let e=window.clay&&window.clay.blockeditor&&window.clay.blockeditor.view;return Ge(Wt(e))}function Gt(e){let t=he(v(e).trim());return t?t.hostname:""}function Xt(e,t){return typeof t=="boolean"?e==="index"?t?"Shown in search":"Hidden from search":e==="follow"?t?"Links followed":"Links not followed":t?"Yes":"No":v(t).trim()||"(empty)"}function ht(){!document.documentElement.hasAttribute("autosave")&&typeof window.clay?.save=="function"&&window.clay.save()}var Jt=e=>({...e});function Qt(e){Ve(lt,"success",{actions:[{label:"Undo",onClick:()=>{We(lt),X(document,Jt(e)),ht()}}]})}function uo({returnFocus:e}={}){if(document.querySelector('clay-editor-ui[data-clay-ui="seo"]'))return;let t=B(document).values,n=e??Qe(),i=new Map,c=new Map,d=new Map,f=new Set,p=!1,b=null,k=!1,J="",be=$e({id:"seo",isPending:()=>!p&&Object.keys(He()).length>0}),g=l("div","clay-seo");g.setAttribute("clay","editor-ui"),g.setAttribute("role","region"),g.setAttribute("aria-labelledby","clay-seo-heading");let M=l("button","clay-seo-derived","Use the first heading");M.type="button",M.hidden=!0;let U=l("button","clay-seo-upload-button clay-menu-btn","Upload image");U.type="button";let E=l("input","clay-seo-file");E.type="file",E.accept="image/*",E.hidden=!0,E.tabIndex=-1;let Q=l("p","clay-seo-note",Bt);Q.hidden=!0;let ye=l("p","clay-seo-note",Dt),ve=l("div","clay-seo-upload"),D=l("p","clay-seo-note");D.hidden=!0;let xe=l("p","clay-seo-cardsize clay-seo-note"),S=l("img");S.alt="";let _=l("div","clay-og-image");_.hidden=!0,_.append(S);let we=l("span","clay-og-host"),ke=l("span","clay-og-title"),Z=l("span","clay-og-desc"),Ee=l("div","clay-og-body");Ee.append(we,ke,Z);let Ae=l("div","clay-og");Ae.append(_,Ee);let Le=l("span"),Se=l("div","clay-seo-preview-head");Se.append("Link preview",Le);let Ce=l("div","clay-seo-preview");Ce.append(Se,Ae,xe);let F=l("div","clay-seo-fields"),Ie=new Map;function ee(o){let r=_t[o],a=`clay-seo-${o}`,s=l("div","clay-seo-field");r.full&&s.classList.add("is-full");let u=l(r.kind==="checkbox"?"input":r.kind==="textarea"?"textarea":"input",r.kind==="checkbox"?"clay-seo-check":"clay-seo-input");r.kind==="checkbox"?(u.type="checkbox",u.checked=t[o]!==!1):(r.kind!=="textarea"&&(u.type="text"),r.short&&(u.rows=1,u.classList.add("is-short")),u.value=v(t[o])),r.placeholder&&(u.placeholder=r.placeholder),u.id=a,u.dataset.key=o,window.clay&&window.clay.unsent&&u.setAttribute("unsent",`seo-${o}`),i.set(o,u);let y=l("p","clay-seo-error");y.hidden=!0,c.set(o,y);let h=l("div","clay-seo-conflict");h.hidden=!0;let z=l("p"),Fe=l("span","clay-seo-theirs");z.append("Changed elsewhere: ",Fe);let re=l("button","clay-menu-btn clay-menu-btn-small clay-seo-theirs-button","Use theirs");re.type="button";let ae=l("button","clay-menu-btn clay-menu-btn-small clay-seo-mine-button","Keep mine");if(ae.type="button",h.append(z,re,ae),d.set(o,{row:h,theirs:Fe}),re.addEventListener("click",()=>{let L=B(document).values[o];r.kind==="checkbox"?u.checked=L!==!1:u.value=v(L),f.add(o),h.hidden=!0,H()}),ae.addEventListener("click",()=>{f.add(o),h.hidden=!0}),r.kind==="checkbox"){let L=l("label","clay-seo-check");return L.append(u,r.label),s.append(L,y,h),s}let le=l("div","clay-seo-label-row"),W=l("label");if(W.htmlFor=a,W.append(r.label),r.note&&W.append(" ",l("span",null,`(${r.note})`)),le.append(W),r.count){let L=l("span","clay-seo-count");Ie.set(o,{el:L,max:r.count});let se=l("span","clay-seo-aside");o==="title"&&se.append(M),se.append(L),le.append(se)}return s.append(le),o==="ogImage"?(ve.append(u,U,E),s.append(ve,ye,Q)):s.append(u),s.append(y,h),s}for(let o of Ft)F.append(ee(o));let R=l("details","clay-seo-more");R.append(l("summary",null,"More search and social fields"));let te=l("div","clay-seo-more-grid");for(let o of jt)te.append(ee(o));let oe=l("div","clay-seo-checks");for(let o of Kt)oe.append(ee(o));oe.append(D),te.append(oe),R.append(te),F.append(R);let j=l("button","clay-seo-edit clay-menu-btn","Edit these settings");j.type="button";let K=l("button","clay-seo-cancel clay-menu-btn","Cancel");K.type="button";let ne=l("button","clay-seo-apply clay-menu-btn clay-menu-btn-primary","Done");ne.type="button";let Oe=l("div","clay-seo-actions");Oe.append(j,K,ne);let Ue=l("h2","clay-seo-heading",Ht);Ue.id="clay-seo-heading";let ze=l("div","clay-seo-bar");ze.append(Ue,Oe);let Te=l("div","clay-seo-grid");Te.append(F,Ce);let Me=l("div","clay-seo-inner");Me.append(ze,Te),g.append(Me);let A=o=>{let r=i.get(o);return r.type==="checkbox"?r.checked:r.value};function ie(){let o=v(A("canonical")).trim();return o&&!ct(o)?o:Vt()}function bt(){let o=v(A("ogImage")).trim();if(!o||dt(o,ie()))return"";if(mt.test(o))return o;try{return new URL(o,ie()||location.href).href}catch{return""}}function Re(){for(let o of i.values()){if(o.localName!=="textarea"||!o.isConnected)continue;let r=!o.value&&o.placeholder;r&&(o.value=o.placeholder),o.style.height="auto",o.style.height=`${o.scrollHeight+o.offsetHeight-o.clientHeight}px`,r&&(o.value="")}}function H(){let o=v(A("title")).trim(),r=v(A("description")).trim();i.get("ogTitle").placeholder=o,i.get("ogDescription").placeholder=r,Re();for(let[u,y]of Ie){let h=v(A(u)).trim().length;y.el.textContent=`${h} / ${y.max}`,h>y.max?y.el.dataset.over="":delete y.el.dataset.over}let a=bt();a?(S.src=a,S.hidden=!1):(S.removeAttribute("src"),S.hidden=!0),_.hidden=S.hidden,ke.textContent=v(A("ogTitle")).trim()||o||"Untitled page";let s=v(A("ogDescription")).trim()||r;Z.textContent=s,Z.hidden=!s,we.textContent=Gt(A("canonical"))||location.host||"",Le.textContent=a?"Large image card \xB7 1.91:1":"Summary card",xe.textContent=a?"Shared links show the large image.":"Add an image for the large card.",M.hidden=!(pt()&&tt.titleMode.read(document)==="custom")}function He(){let o={};for(let[r,a]of i){let s=a.type==="checkbox"?a.checked:a.value;s!==t[r]&&(o[r]=s)}return o}function yt(o){let r={};if("canonical"in o){let a=ct(o.canonical);a&&(r.canonical=a)}if("ogImage"in o){let a=dt(o.ogImage,ie());a&&(r.ogImage=a)}return r}function vt(o){let r=B(document).values,a={};for(let s of Object.keys(o))f.has(s)||r[s]!==t[s]&&r[s]!==o[s]&&(a[s]=r[s]);return a}function Pe(o){for(let r of Object.keys(o)){let a=i.get(r);if(a&&R.contains(a)){R.open=!0;return}}}function Ne(o){Pe(o);for(let[r,a]of c){let s=o[r]||"";a.textContent=s,a.hidden=!s,s?i.get(r)?.setAttribute("aria-invalid","true"):i.get(r)?.removeAttribute("aria-invalid")}}function xt(o){Pe(o);for(let[r,a]of d){let s=o[r],u=s!==void 0;a.row.hidden=!u,a.theirs.textContent=u?Xt(r,s):""}}function wt(){if(!(window.clay&&window.clay.mode==="edit")){P();return}let o=He(),a=pt()?J||("title"in o?"custom":""):"";for(let z of d.values())z.row.hidden=!0;if(Ne({}),!Object.keys(o).length&&!a){P();return}let s=yt(o);if(Object.keys(s).length){Ne(s);return}let u=vt(o);if(Object.keys(u).length){xt(u);return}let y=a?{...o,titleMode:a}:o,h=window.clay&&window.clay.undo;if(h&&typeof h.commit=="function")h.commit(Pt,()=>X(document,y));else{let z=B(document).values;X(document,y),Qt(z)}P(),ht()}function kt(){let o=!!(window.clay&&window.clay.mode==="edit");U.hidden=!k||!o,ye.hidden=k||!o,Q.hidden=!k||!o||!/(^|\.)hyperclay\.com$/i.test(location.hostname)}function $(){let o=!!(window.clay&&window.clay.mode==="edit");for(let r of i.values())r.type==="checkbox"?r.disabled=!o:r.readOnly=!o;j.hidden=o,K.hidden=!o,kt()}function Be(){p||($(),k||De())}function P(){p||(p=!0,be.dispose(),document.removeEventListener("clay:modechange",Be),q&&q.disconnect(),N.remove(),b?.remove(),n&&n.isConnected&&typeof n.focus=="function"&&n.focus())}async function Et(){let o;try{o=await fetch(location.href,{method:"HEAD"})}catch{return}if(p||!g.isConnected)return;let r=o&&o.headers&&typeof o.headers.get=="function"?o.headers.get("x-robots-tag"):"";!r||!/noindex/i.test(r)||(D.textContent=Nt,D.hidden=!1)}async function De(){if(typeof(window.clay&&window.clay.upload)!="function")return;let r=null;try{r=await je()}catch{r=null}p||!g.isConnected||(k=!!(r&&Array.isArray(r.extensions)&&r.extensions.includes("upload")),$())}F.addEventListener("input",()=>{H(),be.changed()}),i.get("title").addEventListener("input",()=>{J=""}),M.addEventListener("click",()=>{J="derived",i.get("title").value=Yt(),H()}),U.addEventListener("click",()=>E.click()),E.addEventListener("change",async()=>{let o=E.files&&E.files[0];if(!o)return;let r=window.clay&&window.clay.upload;if(typeof r!="function")return;U.disabled=!0;let a;try{a=await r(o)}catch{a=null}if(U.disabled=!1,p||!g.isConnected)return;let s=a&&a.ok&&Array.isArray(a.uploads)?a.uploads[0]:null;!s||!s.url||(i.get("ogImage").value=s.url,H())}),ne.addEventListener("click",wt),K.addEventListener("click",P),j.addEventListener("click",async()=>{let o=window.clay;if(!o||typeof o.setMode!="function")return;let r=o.storage&&o.storage.session;r&&r.set(at,!0);let a;try{a=await o.setMode("edit")}catch{a=null}if(p||!!a&&a.ok!==!1&&!!a.reloading)return;r&&r.remove(at);let u=Ye(a);u&&(window.clay?.menu?.note||window.clay?.toast)?.(u,"error"),a&&a.ok!==!1&&$()});let N=document.createElement("style");N.id="clay-seo-vars",N.setAttribute("clay","editor-ui"),document.head.append(N);let q=null;function _e(){N.textContent=`:root { --clay-seo-height: ${Math.ceil(g.getBoundingClientRect().height)}px; }`}g.addEventListener("keydown",o=>{o.key==="Escape"&&(o.preventDefault(),P())}),document.addEventListener("clay:modechange",Be);let V=Je();V&&g.setAttribute("part","dock"),Ke(g,{x:0,y:0,width:innerWidth,height:Math.min(200,innerHeight)},Xe),V&&g.style.removeProperty("--bevel-surface"),b=qe({name:"seo",content:g,css:V?[ce,st,V,$t]:[ce,st],before:document.body.firstChild}),_e(),typeof ResizeObserver=="function"&&(q=new ResizeObserver(()=>{Re(),_e()}),q.observe(g)),H(),$(),i.get("title").focus(),Et(),De()}export{uo as open};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as A}from"./c-Q6BG3ZLO.js";import{j as b}from"./c-CV4T65JE.js";import"./c-GO635CRU.js";import"./c-V2V5FKXX.js";import"./c-DD26VXAP.js";import"./c-CTGRDT6E.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{C as x}from"./c-ZRGEN6QQ.js";import"./c-OH2FPYSY.js";import"./c-FSQXFG5T.js";import{b as h}from"./c-RETTCOWO.js";import"./c-WCG6AKA7.js";import"./c-57XDY6HC.js";import"./c-VHNSBD2M.js";function S(o){let s=String(o??""),n=typeof Intl<"u"&&typeof Intl.Segmenter=="function"?new Intl.Segmenter("en",{granularity:"grapheme"}):null;return n?[...n.segment(s)].map(a=>a.segment):[...s]}var I=o=>S(o).length===1&&!/^\s*$/.test(String(o??""));function L(o){let s=[];for(let[n,a]of Object.entries(o??{}))for(let u of Array.isArray(a)?a:[]){let[f,m,d=""]=u??[];typeof f!="string"||typeof m!="string"||s.push({id:`${n}:${m}`,char:f,name:`${f} ${m}`,keywords:`${m} ${d}`})}return s}var P=(o,s)=>{let n=String(s??"").trim().toLowerCase();return n?o.filter(a=>a.char===n||a.keywords.toLowerCase().includes(n)):o};function T(o=()=>import("./c-SZGYW5HT.js")){let s=null;return()=>(s??=Promise.resolve().then(()=>o()).then(n=>L(n.EMOJI)).catch(n=>{throw s=null,n}),s)}function w({view:o=null,load:s=()=>import("./c-SZGYW5HT.js")}={}){if(!o)return{run:()=>({ok:!1,code:"not-editing"}),dispose(){}};let n=o.dom.ownerDocument,a=T(s),u=null;function f(t){let e=o.state,r=e.selection;if(r.from!==t.from||r.to!==t.to||t.from<0||t.to>e.doc.content.size)return null;let c=e.doc.resolve(t.from),i=e.doc.resolve(t.to);return!c.parent.isTextblock||c.parent!==i.parent?null:{from:t.from,to:t.to}}function m(t){try{let e=o.dom.parentElement?.getBoundingClientRect?.()??{left:0,top:0},r=o.coordsAtPos(t.from);return{x:Math.max(8,r.left-e.left),y:r.bottom+6-e.top}}catch{return null}}function d(t){let e=t.picker.activeId();e?o.dom.setAttribute("aria-activedescendant",e):o.dom.getAttribute("aria-activedescendant")?.startsWith(t.picker.el.id)&&o.dom.removeAttribute("aria-activedescendant")}function l(){let t=u;if(t){u=null;for(let[e,r,c,i]of t.listen)e.removeEventListener(r,c,i);o.dom.getAttribute("aria-activedescendant")?.startsWith(`${t.picker.el.id}-`)&&o.dom.removeAttribute("aria-activedescendant"),t.picker.destroy()}}function j(t,e){let r=o.state.tr.insertText(e,t.from,t.to);return r.setSelection(h.TextSelection.create(r.doc,t.from+e.length)),o.dispatch(x(r)),o.focus(),{ok:!0,emoji:e}}function p(t){let e=u;if(!e)return{ok:!1,code:"not-editing"};let r=e.picker.personAt(t),c=f(e);return!r||c===null||!I(r.char)?(l(),r?c===null?{ok:!1,code:"stale-target"}:{ok:!1,code:"invalid-emoji"}:{ok:!1,code:"no-emoji"}):(l(),j(c,r.char))}function E(t){let e=u;if(!e||b(t,o))return;let r=()=>{t.preventDefault(),t.stopPropagation()};t.key==="ArrowDown"||t.key==="ArrowUp"?(r(),e.picker.move(t.key==="ArrowDown"?1:-1),d(e)):t.key==="Enter"?(r(),p(e.picker.index())):(t.key==="Escape"||t.key==="Tab")&&(r(),l())}async function $(t={}){l();let e={from:o.state.selection.from,to:o.state.selection.to,picker:null,listen:[]};e.picker=A({document:n,label:"Insert an emoji",empty:"No emoji found",onPick:i=>p(i)}),u=e;let r=(i,k,g,y)=>{i.addEventListener(k,g,y),e.listen.push([i,k,g,y])};r(n,"keydown",i=>E(i),!0),r(o.dom,"input",()=>l()),r(n,"mousedown",i=>{e.picker.el.contains(i.target)||l()},!0),(o.dom.parentElement??n.body).appendChild(e.picker.el);let c;try{c=await a()}catch(i){return l(),{ok:!1,code:"unavailable",error:i}}return u!==e?{ok:!1,code:"not-editing"}:f(e)===null?(l(),{ok:!1,code:"stale-target"}):(e.picker.show(P(c,t?.query),m(e)),d(e),{ok:!0,picker:!0})}return{async run(t){return $(t)},dispose(){l()}}}export{w as createFeature,L as emojiEntries,T as emojiLibrary,P as filterEmoji,S as graphemes,I as isEmojiText};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var Ze=Object.defineProperty,Ge=(e,t)=>{for(var r in t)Ze(e,r,{get:t[r],enumerable:!0})},Oe=["textContent","innerText","innerHTML","outerHTML","value","checked","selected","disabled","readOnly","type","tagName","nodeName","nodeType","nodeValue","childElementCount","id","className","classList","baseURI","offsetWidth","offsetHeight","clientWidth","clientHeight","scrollWidth","scrollHeight","dataset","currentSrc","duration","paused","title","documentURI","contentType"],Qe=new Set(Oe),Ye=new Set(["textContent","innerText","innerHTML","value","checked","selected","disabled","readOnly","type","id","className","title"]),Ne=new Set(["tagName","nodeName","nodeType","nodeValue","childElementCount","classList","baseURI","documentURI","contentType","offsetWidth","offsetHeight","clientWidth","clientHeight","scrollWidth","scrollHeight","currentSrc","duration","paused","dataset"]),ue=new Set(["checked","selected","disabled","readOnly","paused"]);function et(e,t){return t==null?ue.has(e)?!1:"":ue.has(e)?t==="false"?!1:!!t:t}var O={};Ge(O,{CodecRefused:()=>ot,EmptyListInsert:()=>M,MAX_RULE_DEPTH:()=>W,MaxRuleDepthExceeded:()=>Z,NoRulesTag:()=>nt,RuleTargetReadOnly:()=>Re,RulesParseError:()=>R,ShapeMismatch:()=>Se,UnknownCodec:()=>ke,UnknownRulesVersion:()=>$e,WriteNotRoundTripped:()=>rt,WriteRefused:()=>Ce,WriteRejected:()=>lt});var R=class extends Error{constructor(e,t){super(e),this.name="RulesParseError",this.cause=t}},$e=class extends Error{constructor(e){super(`unknown rules version: ${e}. Library supports "1" and "2".`),this.name="UnknownRulesVersion",this.version=e}},W=20,Z=class extends Error{constructor(e){super(`rule depth exceeded ${W} at path: ${e.join(".")}`),this.name="MaxRuleDepthExceeded",this.path=e}},Se=class extends Error{constructor(e){super(`shape mismatch: ${e.length} field(s) failed validation`),this.name="ShapeMismatch",this.mismatches=e}},M=class extends Error{constructor(e,t){super(t?`cannot add items to empty list at "${e.join(".")}" \u2014 ${t}`:`cannot add items to empty list at "${e.join(".")}" \u2014 no sibling to clone as template. Seed the list with a hidden item first.`),this.name="EmptyListInsert",this.path=e}},Re=class extends Error{constructor(e){super(`cannot write to read-only DOM property "${e}"`),this.name="RuleTargetReadOnly",this.target=e}},Ce=class extends Error{constructor(e){super(`write refused: ${e.length} write(s) broke the content-only policy`),this.name="WriteRefused",this.refusals=e}};function tt(e){return e.reduce((t,r)=>typeof r=="number"?`${t}[${r}]`:t?`${t}.${r}`:String(r),"")||"(root)"}var rt=class extends Error{constructor(e){super(`write did not round-trip at "${tt(e)}"`),this.name="WriteNotRoundTripped",this.path=e}},nt=class extends Error{constructor(e){super(`no <script data-rules-name~="${e}"> rules tag in this document`),this.name="NoRulesTag",this.token=e}},lt=class extends Error{constructor(e,t){super(`write rejected: ${e.length} unknown key(s), ${t.length} rule(s) with no matching element`),this.name="WriteRejected",this.unknownKeys=e,this.unmatched=t}},ke=class extends Error{constructor(e){super(`unknown codec "${e}": no codec by that name is given to this call`),this.name="UnknownCodec",this.code="unknown-codec",this.codec=e}},ot=class extends Error{constructor(e,t){super(t),this.name="CodecRefused",this.code=e}};function C(e){let t=0,r=null,l=-1;for(let n=0;n<e.length;n++){let o=e[n];o==="\\"?n++:r?o===r&&(r=null):o==='"'||o==="'"?r=o:o==="["||o==="("?t++:o==="]"||o===")"?t>0&&t--:o==="@"&&t===0&&(l=n)}return l}var ae="[*]";function $(e){let t=C(e),r=t===-1?e:e.slice(0,t),l=r.endsWith(ae),n={selector:l?r.slice(0,-ae.length):r,prop:t===-1?null:e.slice(t+1)||null};return l&&(n.all=!0),n}function je(e){let t=0,r=null,l=-1,n=!1;for(let o=0;o<e.length;o++){let a=e[o];a==="\\"?o++:r?a===r&&(r=null):a==='"'||a==="'"?r=a:a==="["||a==="("?t++:a==="]"||a===")"?t>0&&t--:t===0&&a===">"?l=o:t===0&&a===","&&(n=!0)}return n||l===-1||!it(e,l+1)?null:e.slice(0,l).trim()||null}function it(e,t){let r=t,l=e.replace(/\s+$/,"").length;for(;r<l&&/\s/.test(e[r]);)r++;let n=0,o=null;for(;r<l;r++){let a=e[r];if(a==="\\")r++;else if(o)a===o&&(o=null);else if(a==='"'||a==="'")o=a;else if(a==="["||a==="(")n++;else if(a==="]"||a===")")n>0&&n--;else if(n===0&&(a==="+"||a==="~"||/\s/.test(a)))return!1}return!0}var ut=/^codec\(([a-z][a-z0-9-]*)\)$/;function G(e){if(typeof e!="string")return null;let t=C(e);if(t===-1)return null;let r=ut.exec(e.slice(t+1));if(!r)return null;let{selector:l,all:n}=$(e);if(n)throw new R("A @codec(name) rule cannot use [*].");return{selector:l,name:r[1]}}var at=/^--[A-Za-z0-9_-]+$/;function Q(e){return typeof e=="string"&&at.test(e)}function Le(e){let t=[],r=[],l=null,n=0;for(let o=0;o<e.length;o++){let a=e[o];if(l){a==="\\"?o++:a===l&&(l=null);continue}if(a==="/"&&e[o+1]==="*"){let i=e.indexOf("*/",o+2);o=i===-1?e.length:i+1;continue}a==='"'||a==="'"?l=a:a==="("?r.push(")"):a==="["?r.push("]"):a==="{"?r.push("}"):(a===")"||a==="]"||a==="}")&&r[r.length-1]===a?r.pop():a===";"&&r.length===0&&(t.push(e.slice(n,o)),n=o+1)}return t.push(e.slice(n)),t}function st(e){let t="",r=null;for(let l=0;l<e.length;l++){let n=e[l];if(r){t+=n,n==="\\"&&l+1<e.length?t+=e[++l]:n===r&&(r=null);continue}if(n==="/"&&e[l+1]==="*"){let o=e.indexOf("*/",l+2);l=o===-1?e.length:o+1,t+=" ";continue}(n==='"'||n==="'")&&(r=n),t+=n}return t}function Me(e){e=st(e);let t=e.indexOf(":");if(t===-1)return null;let r=e.slice(0,t).trim(),l=e.slice(t+1).trim(),n=/!\s*important\s*$/i.exec(l);return n&&(l=l.slice(0,n.index).trim()),{name:r,value:l,important:!!n}}function Y(e,t){if(e==null)return null;let r=null;for(let l of Le(String(e))){let n=Me(l);!n||n.name!==t||(!r||n.important||!r.important)&&(r=n)}return r?r.value:null}function ct(e,t,r){let l=e==null?"":String(e),n=r==null||r==="",o=Le(l),a=o.map(Me),i=a.some(d=>d&&d.name===t&&d.important),u=[],s=!1;o.forEach((d,p)=>{let v=a[p];if(!v||v.name!==t){u.push(d);return}if(n||s)return;let f=/^\s*/.exec(d)[0];u.push(`${f}${t}: ${r}${i?" !important":""}`),s=!0});let c=u.join(";");if(!n&&!s){let d=c.trimEnd();c=d===""?`${t}: ${r}`:`${d}${d.endsWith(";")?" ":"; "}${t}: ${r}`}return c.trim()===""?null:c}function Ie(e,t,r,l){let n=e.attr(t,"style");if((Y(n,r)??"")===l)return;let o=ct(n,r,l);o==null?e.removeAttr(t,"style"):e.attr(t,"style",o)}var se=/^[a-z][a-z0-9-]*$/,ee=new Map;function ft(e,t){if(typeof e!="string"||!se.test(e))throw new Error(`hyper-html-api: invalid codec name ${JSON.stringify(e)} (must match ${se})`);if(!t||typeof t.read!="function"||typeof t.write!="function"||typeof t.same!="function")throw new Error(`hyper-html-api: codec "${e}" needs read, write and same functions`);ee.set(e,t)}function dt(e){return ee.get(e)??null}function pt(){return Object.fromEntries(ee)}var ht='The @codec(name) rule form needs a rules tag with data-rules-version="2".',mt="A @codec(name) rule must be the value of a top level key.";function We(e,t){let r=G(e);return r?{...r,codec:t.codecs[r.name]}:null}function te(e,t={}){let r=t.version??"1",l=t.codecs??{};n(e,0);function n(o,a){if(!(a>W)){if(typeof o=="string"){let i=G(o);if(!i)return;if(r!=="2")throw new R(ht);if(a!==1)throw new R(mt);if(!Object.prototype.hasOwnProperty.call(l,i.name))throw new ke(i.name);return}if(Array.isArray(o)){n(o[1],a+1);return}if(o&&typeof o=="object")for(let i of Object.values(o))n(i,a+1)}}}function q(e,t,r,l={}){if(Object.prototype.hasOwnProperty.call(l,"exclude")&&e.semanticExclude===!1)throw new Error("This adapter does not support semantic exclude queries; omit exclude or use the DOM adapter.");return te(r,l),_(e,t,r,{depth:0,path:[]},l)}function _(e,t,r,l,n){if(l.depth>W)throw new Z(l.path);if(typeof r=="string")return yt(e,t,r,l,n);if(Array.isArray(r)){let[o,a]=r,i=e.find(t,o,n);return De(n,l,i),i.map((u,s)=>_(e,u,a,{depth:l.depth+1,path:[...l.path,s]},n))}if(typeof r=="object"&&r!==null){let o={};for(let[a,i]of Object.entries(r))o[a]=_(e,t,i,{depth:l.depth+1,path:[...l.path,a]},n);return o}return null}function yt(e,t,r,l,n){if(r.endsWith("[]")){let c=r.slice(0,-2),d=e.find(t,c,n);return De(n,l,d),d.map(p=>e.text(p))}let o=We(r,n);if(o)return gt(e,t,o,n);if(r.startsWith("@"))return z(e,t,r.slice(1));let a=C(r);if(a!==-1){let{selector:c,all:d}=$(r),p=r.slice(a+1),v=c?e.find(t,c,n):[t];return d&&n.allMatches?v.map(f=>z(e,f,p)):v.length===0?null:z(e,v[0],p)}if(r===".")return e.text(t);let{selector:i,all:u}=$(r),s=e.find(t,i,n);return u&&n.allMatches?s.map(c=>e.text(c)):s.length===0?null:e.text(s[0])}function gt(e,t,{selector:r,codec:l},n){let o=r?e.find(t,r,n):[t];return o.length===0?null:l.read(e,o[0],{query:n.query,view:n.view,region:n.region})}function De(e,t,r){if(typeof e.onRowsRead=="function")try{e.onRowsRead(t.path.slice(),r)}catch(l){console.warn(`[hyper-html-api] onRowsRead threw at "${t.path.join(".")||"(root)"}"`,l)}}function z(e,t,r){if(Q(r))return Y(e.attr(t,"style"),r);if(Qe.has(r)){let n=e.prop(t,r);return n==null?null:String(n)}return e.attr(t,r)??null}function wt(e,t,r,l){let n=e.length,o=t.length,a=new Array(n).fill(-1);if(l){let h=new Set;for(let y=0;y<n;y++){let w=l[y];!(w>=0&&w<o)||h.has(w)||(a[y]=w,h.add(w))}}if(n===0||o===0)return a;let i=e.map(h=>ce(h,r)),u=t.map(h=>ce(h,r)),s=new Array(o).fill(!1);for(let h of a)h>=0&&(s[h]=!0);let c=new Map;u.forEach((h,y)=>{s[y]||c.set(h,c.has(h)?-1:y)});let d=new Map;i.forEach((h,y)=>{a[y]>=0||d.set(h,(d.get(h)||0)+1)}),i.forEach((h,y)=>{if(a[y]>=0||d.get(h)!==1)return;let w=c.get(h);w===void 0||w===-1||s[w]||(a[y]=w,s[w]=!0)});let p=[];for(let h=0;h<n;h++)a[h]<0&&p.push(h);let v=[];for(let h=0;h<o;h++)s[h]||v.push(h);if(p.length===0||v.length===0)return a;let f=n*o+1,m=vt(e,t,r),g=(h,y)=>m(h,y)*f+Math.abs(h-y);for(let[h,y]of At(p,v,g))a[h]=y;return a}var Pe=e=>typeof e=="object"&&e!==null;function ce(e,t){if(!Pe(t))return e==null?" null":String(e);let r=Object.keys(t);return JSON.stringify(r.map(l=>{let n=JSON.stringify(e?.[l]);return n===void 0?" undef":n}))}function vt(e,t,r){if(!Pe(r))return(i,u)=>e[i]===t[u]?0:1;let l=Object.keys(r),n=i=>l.map(u=>JSON.stringify(i?.[u])),o=e.map(n),a=t.map(n);return(i,u)=>{let s=o[i],c=a[u],d=0;for(let p=0;p<l.length;p++)s[p]!==c[p]&&d++;return d}}function At(e,t,r){return e.length<=t.length?fe(e,t,r,!1):fe(t,e,(l,n)=>r(n,l),!0)}function fe(e,t,r,l){let n=e.length,o=t.length,a=[];for(let d=0;d<=n;d++)a.push(new Float64Array(o+1).fill(1/0));let i=[];for(let d=0;d<=n;d++)i.push(new Uint8Array(o+1));for(let d=0;d<=o;d++)a[n][d]=0;for(let d=n-1;d>=0;d--)for(let p=o-1;p>=0;p--){let v=r(e[d],t[p])+a[d+1][p+1],f=a[d][p+1];v<=f?(a[d][p]=v,i[d][p]=1):a[d][p]=f}let u=[],s=0,c=0;for(;s<n&&c<o;)i[s][c]&&(u.push(l?[t[c],e[s]]:[e[s],t[c]]),s++),c++;return u}function qe(e,t,r,l,n,o,a,i={}){let u=e.find(t,r,i);if(n.length===0){u.forEach(A=>e.remove(A)),V(i,"onRowsApplied",o.path,[]);return}let s=n.length>u.length,c=u[0]||null;if(s&&!c&&(c=xt(e,t,r,i),!c))throw new M(o.path);let d=u.map(A=>Et(e,A,l,i)),p=null;if(s&&c){p=e.clone(c),i.templateAttr&&e.removeAttr(p,i.templateAttr);let A=e.stripIds(p);A>0&&console.warn(`[hyper-html-api] stripped ${A} id attribute(s) from cloned template at "${o.path.join(".")||"(root)"}"`)}let v=wt(n,d,l,bt(e,u,n,o,i)),f=u.length>0?e.parent(u[0]):St(e,t,r,c,o,i),m=u.length>0?Be(e,f,u[0]):0,g=kt(e,u),h=new Set,y=[],w=n.map((A,T)=>{let b=v[T];if(b>=0)return h.add(b),y.push(!1),u[b];y.push(!0);let x=e.clone(p);return e.stripIds(x),x});u.forEach((A,T)=>{h.has(T)||e.remove(A)}),g?Ct(e,f,m,w,y):jt(e,w,y,f,m),Tt(e,w,l,n,o,a,i),V(i,"onRowsApplied",o.path,w)}function V(e,t,r,l){if(typeof e[t]=="function")try{return e[t](r.slice(),l)}catch(n){console.warn(`[hyper-html-api] ${t} threw at "${r.join(".")||"(root)"}"`,n);return}}function bt(e,t,r,l,n){let o=V(n,"identifyRows",l.path,r);if(!Array.isArray(o))return null;let a=new Array(r.length).fill(-1),i=new Set,u=new Map(t.map((s,c)=>[e.identity(s),c]));for(let s=0;s<r.length;s++){if(!o[s])continue;let c=u.get(e.identity(o[s]));c===void 0||i.has(c)||(a[s]=c,i.add(c))}return a}function Tt(e,t,r,l,n,o,a){t.forEach((i,u)=>{if(r===null){let s=l[u],c=s==null?"":String(s);e.text(i)!==c&&e.text(i,c)}else{let s=o(e,i,r,l[u],{depth:n.depth+1,path:[...n.path,u]},a);s&&s!==i&&(t[u]=s)}})}function Et(e,t,r,l){return r===null?e.text(t):q(e,t,r,l.onRowsRead?{...l,onRowsRead:void 0}:l)}function Be(e,t,r){let l=e.children(t);for(let n=0;n<l.length;n++)if(e.sameNode(l[n],r))return n;return-1}function xt(e,t,r,l){if(!l.templateAttr)return null;let n=/^\s*:scope\s*>\s*/.test(r),o=new RegExp(":not\\(\\["+l.templateAttr.replace(/[.*+?^${}()|[\]\\-]/g,"\\$&")+"\\]\\)","g"),a=r.replace(/^\s*:scope\s*>\s*/,"").replace(o,""),i=n?Ot(a):0,u=je(a),s=t;for(;s;){let c=e.find(s,a,{includeRulesTag:!1,templateAttr:null});for(let d of c)if(e.attr(d,l.templateAttr)!=null&&!(n&&!$t(e,t,d,i))&&!(u&&!e.matches(e.parent(d),u)))return d;s=e.parent(s)}return null}function Ot(e){let t=0,r=null,l=1;for(let n=0;n<e.length;n++){let o=e[n];if(o==="\\")n++;else if(r)o===r&&(r=null);else if(o==='"'||o==="'")r=o;else if(o==="["||o==="(")t++;else if(o==="]"||o===")")t>0&&t--;else if(t===0&&o===">")l++;else{if(t===0&&(o==="+"||o==="~"))return null;if(t===0&&/\s/.test(o)){if(!Nt(e,n))return null;for(;n+1<e.length&&/\s/.test(e[n+1]);)n++}}}return l}function Nt(e,t){let r=t;for(;r<e.length&&/\s/.test(e[r]);)r++;let l=t>0?e[t-1]:"",n=r<e.length?e[r]:"";return de(l)||de(n)}function de(e){return e===">"||e==="+"||e==="~"}function $t(e,t,r,l){if(l===null)return!0;let n=r;for(let u=0;u<l;u++)if(n=e.parent(n),!n)return!1;let o=e.prop(t,"tagName");if(!o)return!0;let a=e.prop(n,"tagName");if(!a||String(a).toLowerCase()!==String(o).toLowerCase())return!1;let i=new Set(pe(e,n));return pe(e,t).every(u=>i.has(u))}function pe(e,t){let r=e.attr(t,"class");return r?String(r).split(/\s+/).filter(Boolean):[]}function St(e,t,r,l,n,o){let a=e.parent(l);if(a&&Rt(e,t,a)&&!me(e,a,o))return a;let i=je(r);if(!i)throw new M(n.path,`the list selector "${r}" names no container to hold the new rows \u2014 write it as "container > row" (for example "ol.comments > li") so the cloned row lands in the list`);let u=(i===":scope"?e.prop(t,"tagName")?[t]:[]:e.find(t,i,o)).filter(s=>!me(e,s,o));if(u.length===0)throw new M(n.path,`no container matching "${i}" inside this context to hold the new rows`);if(u.length>1)throw new M(n.path,`"${i}" matches ${u.length} containers inside this context, so the new rows have no single destination`);return u[0]}function Rt(e,t,r){let l=r;for(;l;){if(e.sameNode(l,t))return!0;l=e.parent(l)}return e.parent(t)?!1:e.find(t,"*",{includeRulesTag:!0,templateAttr:null}).some(n=>e.sameNode(n,r))}var he=["no-data","editor-ui"];function me(e,t,r){let l=t;for(;l;){if(r.templateAttr&&e.attr(l,r.templateAttr)!=null||he.some(o=>e.attr(l,o)!=null))return!0;let n=e.attr(l,"clay");if(n&&n.split(/\s+/).some(o=>he.includes(o)))return!0;l=e.parent(l)}return!1}function Ct(e,t,r,l,n){let o=e.children(t),a=o.map(u=>e.identity(u)),i=!1;l.forEach((u,s)=>{let c=e.identity(u),d=r+s;if(a[d]===c)return;if(!n[s]){let v=a.indexOf(c);v!==-1&&(a.splice(v,1),o.splice(v,1))}let p=Math.min(d,o.length);p<o.length?e.insertBefore(o[p],u):o.length?i?e.insertAfter(o[o.length-1],u):(e.insertAt(t,u,d),i=!0):e.insertAt(t,u,0),a.splice(p,0,c),o.splice(p,0,u)})}function kt(e,t){if(t.length<=1)return!0;let r=e.parent(t[0]);if(!r)return!1;let l=new Map(e.children(r).map((o,a)=>[e.identity(o),a])),n=[];for(let o of t){let a=l.get(e.identity(o));if(a===void 0)return!1;n.push(a)}return n.sort((o,a)=>o-a),n[n.length-1]-n[0]===n.length-1}function jt(e,t,r,l,n){let o=null,a=n;for(let i=0;i<t.length;i++){if(!r[i]){o=t[i];continue}let u=o?e.parent(o):l;if(!u)continue;let s=o?Be(e,u,o)+1:a++;e.insertAt(u,t[i],s),o=t[i]}}function B(e,t,r,l,n={}){if(Object.prototype.hasOwnProperty.call(n,"exclude")&&e.semanticExclude===!1)throw new Error("This adapter does not support semantic exclude queries; omit exclude or use the DOM adapter.");te(r,n);let o=[];if(F(r,l,[],o),o.length)throw new Se(o);H(e,t,r,l,{depth:0,path:[]},n)}function H(e,t,r,l,n,o={}){if(n.depth>W)throw new Z(n.path);if(l===void 0)return t;if(typeof r=="string")return Lt(e,t,r,l,n,o);if(Array.isArray(r)){let[a,i]=r;return qe(e,t,a,i,l,n,H,o),t}if(typeof r=="object"&&r!==null){for(let[a,i]of Object.entries(r)){let u=H(e,t,i,l==null?l:l[a],{depth:n.depth+1,path:[...n.path,a]},o);u&&u!==t&&(t=u)}return t}return t}function Lt(e,t,r,l,n,o){if(r.endsWith("[]")){let d=r.slice(0,-2);return qe(e,t,d,null,l,n,H,o),t}let a=We(r,o);if(a){let d=a.selector?e.find(t,a.selector,o):[t];return d.length&&a.codec.write(e,d[0],l,{query:o.query}),t}if(r.startsWith("@"))return ge(e,t,r.slice(1),l);let i=C(r);if(i!==-1){let{selector:d,all:p}=$(r),v=r.slice(i+1),f=d?e.find(t,d,o):[t];for(let m of p?f:f.slice(0,1))ge(e,m,v,l);return t}if(r===".")return ye(e,t,l),t;let{selector:u,all:s}=$(r),c=e.find(t,u,o);for(let d of s?c:c.slice(0,1))ye(e,d,l);return t}function ye(e,t,r){let l=r==null?"":String(r);e.text(t)!==l&&e.text(t,l)}function Mt(e,t,r,l){if(e.styleVar){e.styleVar(t,r,l);return}Ie(e,t,r,l)}function ge(e,t,r,l){if(Q(r))return Mt(e,t,r,l==null?"":String(l).trim()),t;if(Ne.has(r)){let n=e.prop(t,r);if(n===l||n!=null&&l!=null&&String(n)===String(l))return t;throw new Re(r)}if(r==="outerHTML"){let n=l==null?"":String(l);return e.replaceWith(t,n)}if(Ye.has(r)){let n=et(r,l);return e.prop(t,r)!==n&&e.prop(t,r,n),t}if(l==null)e.attr(t,r)!=null&&e.removeAttr(t,r);else{let n=String(l);e.attr(t,r)!==n&&e.attr(t,r,n)}return t}function F(e,t,r,l){if(t!==void 0){if(typeof e=="string"){if(G(e))return;if(e.endsWith("[]")){Array.isArray(t)?t.forEach((n,o)=>{typeof n=="object"&&n!==null&&l.push({path:j([...r,o]),expected:"scalar",got:k(n)})}):l.push({path:j(r),expected:"array",got:k(t)});return}t!==null&&typeof t=="object"&&l.push({path:j(r),expected:"scalar",got:k(t)});return}if(Array.isArray(e)){if(!Array.isArray(t)){l.push({path:j(r),expected:"array",got:k(t)});return}let n=e[1];t.forEach((o,a)=>F(n,o,[...r,a],l));return}if(typeof e=="object"&&e!==null){if(t===null||Array.isArray(t)||typeof t!="object"){l.push({path:j(r),expected:"object",got:k(t)});return}for(let[n,o]of Object.entries(e))F(o,t[n],[...r,n],l)}}}function k(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function j(e){return e.join(".")}function It(e){try{return JSON.parse(e)}catch(t){throw new R(`Invalid strict JSON: ${t.message}`,t)}}function He(e){try{return JSON.parse(e)}catch{}let t={BRACE_OPEN:"{",BRACE_CLOSE:"}",BRACKET_OPEN:"[",BRACKET_CLOSE:"]",COLON:":",COMMA:",",STRING:"STRING",SELECTOR:"SELECTOR",IDENTIFIER:"IDENTIFIER",NUMBER:"NUMBER",BOOLEAN:"BOOLEAN"};function r(n){let o=[],a=0;for(;a<n.length;){let i=n[a];if(/\s/.test(i)){a++;continue}if("{}".includes(i)){o.push({type:i,value:i}),a++;continue}if(i==="["){let d=!1,p=a+1;for(;p<n.length&&/\s/.test(n[p]);)p++;if(p<n.length&&/[a-zA-Z_]/.test(n[p])&&(d=!0),!d){o.push({type:i,value:i}),a++;continue}}if(i==="]"){o.push({type:i,value:i}),a++;continue}if(i===":"){o.push({type:t.COLON,value:i}),a++;continue}if(i===","){o.push({type:t.COMMA,value:i}),a++;continue}if(i==='"'||i==="'"){let d=i,p=a+1;for(;p<n.length&&n[p]!==d;)n[p]==="\\"&&p++,p++;o.push({type:t.STRING,value:n.substring(a+1,p),quoted:!0,sourceQuote:d}),a=p+1;continue}let u=a,s;for(;u<n.length&&!/[{},]/.test(n[u]);)if(n[u]===":"){let d=[":first",":last",":nth-child",":nth-of-type",":first-child",":last-child",":first-of-type",":last-of-type",":only-child",":only-of-type",":hover",":focus",":active",":visited",":disabled",":enabled",":checked",":empty",":root",":target",":not",":before",":after",":nth-last-child",":nth-last-of-type"],p=!1;for(let v of d){let f=v.substring(1);if(n.substring(u+1,u+1+f.length)===f){p=!0,u+=f.length;break}}if(!p)break}else if(n[u]==="["){for(u++;u<n.length&&n[u]!=="]";){if(n[u]==='"'||n[u]==="'"){let d=n[u];for(u++;u<n.length&&n[u]!==d;)n[u]==="\\"&&u++,u++}u++}u<n.length&&n[u]==="]"&&u++}else u++;s=n.substring(a,u);let c=t.IDENTIFIER;/^-?\d+(\.\d+)?$/.test(s)?c=t.NUMBER:s==="true"||s==="false"||s==="null"?c=t.BOOLEAN:/^[.#@\[]|[.#@\[]| /.test(s)&&(c=t.SELECTOR),o.push({type:c,value:s,quoted:!1}),a=u}return o}function l(n){let o="";for(let a=0;a<n.length;a++){let i=n[a];if("{}".includes(i.type)||"[]".includes(i.type)){o+=i.value;continue}if(i.type===t.COLON){o+=i.value;continue}if(i.type===t.COMMA){let u=n[a+1];if(u&&(u.type==="}"||u.type==="]"))continue;o+=i.value;continue}if(i.type===t.STRING&&i.quoted){let u=i.value;i.sourceQuote==="'"&&(u=u.replace(/\\'/g,"'"),u=u.replace(/(\\*)"/g,(s,c)=>c.length%2===0?c+'\\"':s)),o+=`"${u}"`;continue}if(i.type===t.NUMBER||i.type===t.BOOLEAN){o+=i.value;continue}if(i.type===t.SELECTOR||i.type===t.IDENTIFIER){o+=`"${i.value}"`;continue}o+=`"${i.value}"`}return o}try{let n=r(e),o=l(n);return JSON.parse(o)}catch(n){throw new R("Invalid extraction rules syntax: "+n.message,n)}}var Wt=["1","2"],we=/^[a-zA-Z0-9_-]+$/;function re(e,t,r){let l;if(r===void 0)l="script[data-rules-name]";else{if(typeof r!="string"||!we.test(r))throw new Error(`hyper-html-api: invalid rules token ${JSON.stringify(r)} (must match ${we})`);l=`script[data-rules-name~="${r}"]`}let n=e.find(t,l,{includeRulesTag:!0});if(n.length===0)return null;r!==void 0&&n.length>1&&console.warn(`hyper-html-api: ${n.length} rules tags match data-rules-name~="${r}"; using the first.`);let o=n[0],a=e.attr(o,"data-rules-version");if(!Wt.includes(a))throw new $e(a);return{rules:He(e.text(o)),tagNode:o,version:a}}var ne=Object.freeze({data:Object.freeze({tokens:["no-data"],bundles:["editor-ui"]}),save:Object.freeze({tokens:["no-save"],bundles:["editor-ui"]}),snapshot:Object.freeze({tokens:["no-snapshot"],bundles:["editor-ui"]}),watch:Object.freeze({tokens:["no-watch"],bundles:["editor-ui"]}),undo:Object.freeze({tokens:["no-undo"],bundles:["editor-ui"]}),history:Object.freeze({tokens:[],bundles:["editor-ui"]})}),Dt=Object.freeze({"editor-ui":Object.freeze(["no-data","no-save","no-snapshot","no-watch","no-undo"])}),Pt=Object.freeze(["no-save","no-snapshot","no-trigger-autosave","no-dirty","no-watch","no-undo","no-data","freeze","editor-ui","live"]);function U(e,t){if(!e||e.nodeType!==1)return!1;let r=e.getAttribute?.("clay");return!!(r&&r.split(/\s+/).includes(t)||e.hasAttribute?.(t))}function Ue(e,t){if(U(e,t))return!0;for(let[r,l]of Object.entries(Dt))if(l.includes(t)&&U(e,r))return!0;return!1}function J(e){let t=ne[e];if(!t)throw new Error(`Unknown region capability: ${e}`);return[...t.tokens,...t.bundles].flatMap(r=>[`[clay~="${r}"]`,`[${r}]`]).join(", ")}function qt(e,t){let r=e&&e.nodeType===1?e:e?.parentElement;for(;r&&r.nodeType===1;){let l=ne[t];if(!l)throw new Error(`Unknown region capability: ${t}`);if(l.tokens.some(n=>Ue(r,n))||l.bundles.some(n=>U(r,n)))return r;r=r.parentElement}return null}function Bt(e,t){return!!qt(e,t)}var le=Object.freeze({refusedRuleForms:["innerHTML","outerHTML"],refusedTargets:["script","style","template","noscript","iframe","object","embed","xmp","plaintext","noembed","noframes","meta","link","base","animate","set","animatemotion","animatetransform"],refusedAttributes:["style","srcdoc","is","http-equiv","sandbox","allow","nonce","integrity","charset","htmlclaytoken","htmlclayid","data-rules-name","data-rules-version","clay","contenteditable",...Pt],refusedAttributePrefixes:["on"],urlAttributes:["href","src","srcset","action","formaction","poster","cite","data","ping","background","longdesc","usemap","xlink:href","manifest","codebase","icon"],refusedSchemes:["javascript","vbscript","data"],customPropertyValues:Object.freeze({maxLength:200,refusedCharacters:[";","{","}","<",">","\\"],refusedFunctions:["url","src","image","image-set","-webkit-image-set","cross-fade","element","expression","paint"]})}),Ht=new Set(["textContent","innerText"]);function Ut(e){let t=String(e).replace(/^[\u0000- ]+|[\u0000- ]+$/g,"").replace(/[\t\n\r]/g,"").match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);return t?t[1].toLowerCase():null}var zt=/^[^\t\n\f\r "'>/=\u0000-\u001f\u007f]+$/;function _t(e,t,r=le){if(!zt.test(String(e)))return`attribute name ${JSON.stringify(String(e))} is not valid`;let l=String(e).toLowerCase();if(r.refusedAttributePrefixes.some(n=>l.startsWith(n)))return`attribute "${l}" can run script`;if(r.refusedAttributes.includes(l))return`attribute "${l}" is not content`;if(r.urlAttributes.includes(l)&&t!=null){let n=l==="srcset"?String(t).split(",").map(o=>o.trim().split(/\s+/)[0]).filter(Boolean):[String(t)];for(let o of n){let a=Ut(o);if(a&&r.refusedSchemes.includes(a))return`"${a}:" URLs are not allowed in "${l}"`}}return null}function oe(e,t){let r=e.prop(t,"tagName");return r?String(r).toLowerCase():""}function Vt(e,t){let r=oe(e,t)||"node",l=e.attr(t,"id");return l?`<${r}#${l}>`:`<${r}>`}function Ft(e,t,r){let l=t;for(;l;){let n=oe(e,l);if(n&&r.refusedTargets.includes(n))return n;l=e.parent(l)}return null}function ze(e,t){return e.find(t,"script[data-rules-name]",{includeRulesTag:!0,templateAttr:null}).length>0}function Jt(e,t){return oe(e,t)==="script"&&e.attr(t,"data-rules-name")!=null?!0:ze(e,t)}function Kt(e){if(/[\u0000-\u001f\u007f]/.test(e))return"control characters are not allowed in a custom property value";let t=[],r=null;for(let l=0;l<e.length;l++){let n=e[l];if(r){n===r&&(r=null);continue}if(n==='"'||n==="'")r=n;else{if(n==="/"&&e[l+1]==="*")return"comments are not allowed in a custom property value";if(n==="(")t.push(")");else if(n==="[")t.push("]");else if((n===")"||n==="]")&&t.pop()!==n)return`"${n}" does not close anything in this custom property value`}}return r?"a custom property value must close its quotes":t.length?"a custom property value must close its brackets":null}function Xt(e,t=le){let r=t.customPropertyValues,l=String(e);if(l.length>r.maxLength)return`custom property values are limited to ${r.maxLength} characters`;let n=r.refusedCharacters.find(u=>l.includes(u));if(n)return`${JSON.stringify(n)} is not allowed in a custom property value`;let o=Kt(l);if(o)return o;let a=l.toLowerCase(),i=r.refusedFunctions.find(u=>new RegExp(`(^|[^a-z0-9_-])${u.replace(/[-]/g,"\\-")}\\s*\\(`).test(a));return i?`"${i}()" is not allowed in a custom property value`:null}function ve(e,t=le){let r=[],l=(i,u)=>(r.push({target:Vt(e,i),reason:u}),!1),n=i=>{let u=Ft(e,i,t);return u?l(i,`inside <${u}>, which is not content`):!0},o=i=>n(i)?ze(e,i)?l(i,"a text write here would delete the data rules tag"):!0:!1,a=(i,u,s)=>{if(!n(i))return!1;let c=_t(u,s,t);return c?l(i,c):!0};return{...e,text(i,u){if(u===void 0)return e.text(i);o(i)&&e.text(i,u)},attr(i,u,s){if(s===void 0)return e.attr(i,u);a(i,u,s)&&e.attr(i,u,s)},removeAttr(i,u){a(i,u,null)&&e.removeAttr(i,u)},styleVar(i,u,s){if((Y(e.attr(i,"style"),u)??"")!==s&&n(i)){if(!Q(u))return l(i,`"${u}" is not a custom property`);if(s!==""){let c=Xt(s,t);if(c)return l(i,c)}Ie(e,i,u,s)}},prop(i,u,s){if(s===void 0)return e.prop(i,u);if(t.refusedRuleForms.includes(u))return l(i,`"@${u}" writes HTML, only text is allowed`);if(Ht.has(u)){o(i)&&e.prop(i,u,s);return}a(i,u==="className"?"class":u,s)&&e.prop(i,u,s)},remove(i){if(Jt(e,i)){l(i,"removing this would delete the data rules tag");return}e.remove(i)},replaceWith(i,u){return u===e.prop(i,"outerHTML")||l(i,'"@outerHTML" writes HTML, only text is allowed'),i},refusals:r,assertClean(){if(r.length)throw new Ce(r.slice())}}}function L(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Ae(e){return e.reduce((t,r)=>typeof r=="number"?`${t}[${r}]`:t?`${t}.${r}`:r,"")}function Zt(e,t,r,l,n={}){te(r,n);let o=[],a=[];function i(s,c,d){if(Array.isArray(s)){let[,p]=s;if(!Array.isArray(c)||!L(p))return;c.forEach((v,f)=>i(p,v,[...d,f]));return}if(!(!L(s)||!L(c)))for(let p of Object.keys(c))Object.prototype.hasOwnProperty.call(s,p)?i(s[p],c[p],[...d,p]):o.push(Ae([...d,p]))}function u(s,c,d,p){if(d!==void 0){if(typeof c=="string"){if(c.endsWith("[]")||c==="."||c.startsWith("@"))return;let{selector:v}=$(c);if(!v)return;e.find(s,v,n).length===0&&a.push({path:Ae(p),selector:v});return}if(!Array.isArray(c)&&L(c)&&L(d))for(let[v,f]of Object.entries(c))u(s,f,d[v],[...p,v])}}return i(r,l,[]),u(t,r,l,[]),{unknownKeys:o,unmatched:a}}function be(e,t,r){if(r&&typeof r=="object")return{rules:r,tagNode:null,version:"1"};if(typeof r=="string"){let l=t&&t.ownerDocument?t.ownerDocument:t;return re(e,l,r)}return null}var Gt=/:(?:focus(?:-within|-visible)?|hover|active|visited|defined)\b/i;function Qt(e,t){if(!/^(INPUT|TEXTAREA|SELECT|OPTION)$/.test(e.tagName||""))return;let r=(e.getAttribute?.("type")||"").toLowerCase();"value"in e&&"value"in t&&e.tagName!=="OPTION"&&r!=="checkbox"&&r!=="radio"&&r!=="file"&&(t.value=e.value),e.tagName==="INPUT"&&(r==="checkbox"||r==="radio")&&(t.checked=e.checked),e.tagName==="OPTION"&&(t.selected=e.selected),"indeterminate"in e&&"indeterminate"in t&&(t.indeterminate=e.indeterminate)}function Te(e,t,r,l){if(l)return!!e.closest?.(t);let n=e;for(;n?.nodeType===1;){if(n.matches(t))return!0;if(n===r)break;n=n.parentElement}return!1}function Ee(e,t,r,l,n,o){return(o?Bt(e,t):Te(e,r,n,!1))||!!(l&&(o&&e!==n?e.matches(l):Te(e,l,n,o)))}function Yt(e,t){let r=ne[t];return r.tokens.some(l=>Ue(e,l))||r.bundles.some(l=>U(e,l))}var er=new Set(["INPUT","TEXTAREA","SELECT","OPTION"]);function _e(e,t,r,l){if(e.nodeType===1&&l(e)){r.dropped.push(t);return}r.cloneToLive.set(t,e),r.liveToClone.set(e,t);let n=e,o=t;if(e.nodeType===1){if(er.has(e.tagName)&&r.controls.push(e,t),e.tagName==="TEMPLATE"){for(;t.firstChild;)t.removeChild(t.firstChild);n=e.content,o=t.content,r.cloneToLive.set(o,n),r.liveToClone.set(n,o)}}else if(e.nodeType!==11)return;let a=o.firstChild;for(let i=n.firstChild;i&&a;i=i.nextSibling)_e(i,a,r,l),a=a.nextSibling}function D(e,{capability:t="data",exclude:r=null,inherit:l=!0,provenance:n=null}={}){if(!e)throw new TypeError("createContentView requires a DOM context");let o=e.nodeType===9?e:e.ownerDocument;if(!o?.implementation?.createHTMLDocument)throw new TypeError("createContentView requires an HTML DOM implementation");let a=o.implementation.createHTMLDocument(""),i=n||new WeakMap,u=new WeakMap,s=e.nodeType===9?e.documentElement:e;r&&a.documentElement.matches(r);let c=J(t),d=l?f=>Yt(f,t)||!!(r&&f.matches(r)):f=>Ee(f,t,c,r,s,!1),p=null;if(s.nodeType!==1||!Ee(s,t,c,r,s,l)){p=a.importNode(s,!0);let f={cloneToLive:i,liveToClone:u,dropped:[],controls:[]};_e(s,p,f,d);for(let m of f.dropped)m.remove();for(let m=0;m<f.controls.length;m+=2)Qt(f.controls[m],f.controls[m+1])}e.nodeType===9&&p&&(a.replaceChild(p,a.documentElement),u.set(e,a),i.set(a,e));let v=f=>{if(Gt.test(f))throw new Error(`Filtered content queries do not support stateful selector: ${f}`)};return{root:p,document:a,capability:t,selector:J(t),cloneToLive:i,liveToClone:u,original(f){return i.get(f)||null},cloneOf(f){return u.get(f)||null},query(f,m=p){return v(f),Array.from(m.querySelectorAll(f),g=>i.get(g)||g)},text(f=p){return(f===p?p:u.get(f))?.textContent||""},html(f=p){return(f===p?p:u.get(f))?.innerHTML??""},clone(f=p){let m=f===p?p:u.get(f);return m?a.importNode(m,!0):null}}}function Ve(e){return e&&e.nodeType===1&&e.tagName==="SCRIPT"&&e.hasAttribute&&e.hasAttribute("data-rules-name")}function tr(e){return e?(e.nodeType===9||e.nodeType,e):null}function xe(e,t,r){!e||e.nodeType!==1||(t==="value"&&e.tagName==="INPUT"?e.value=r===null?"":r:t==="checked"&&e.tagName==="INPUT"?e.checked=r!==null:t==="selected"&&e.tagName==="OPTION"&&(e.selected=r!==null))}function Fe(e,t){e&&e.tagName==="TEXTAREA"&&(e.value=t)}function Je(e){if(!e||e.nodeType!==1)return;let t=[e,...e.querySelectorAll?e.querySelectorAll("textarea, input, option"):[]];for(let r of t)if(r.tagName==="TEXTAREA")r.value=r.defaultValue;else if(r.tagName==="INPUT"){let l=r.type;l!=="file"&&l!=="checkbox"&&l!=="radio"&&(r.value=r.defaultValue),r.checked=r.defaultChecked}else r.tagName==="OPTION"&&(r.selected=r.defaultSelected)}var E={semanticExclude:!0,find(e,t,r={}){let l=tr(e);if(!l||!l.querySelectorAll)return[];let n=Array.from(l.querySelectorAll(t));r.includeRulesTag||(n=n.filter(i=>!Ve(i)));let o=[];r.skip&&o.push(r.skip);let a=r.templateAttr===null?null:r.templateAttr||"cms-template";if(a&&o.push("["+a+"]"),o.length){let i=o.join(", ");n=n.filter(u=>!u.closest||!u.closest(i))}return n},parent(e){return e?e.parentElement:null},children(e){return e?Array.from(e.children):[]},matches(e,t){return!!(e&&e.matches)&&e.matches(t)},text(e,t){if(t===void 0)return(e.textContent||"").trim();e.textContent=t,Fe(e,t)},attr(e,t,r){if(r===void 0)return e.hasAttribute&&e.hasAttribute(t)?e.getAttribute(t):null;e.setAttribute(t,r),xe(e,t,r)},removeAttr(e,t){e&&e.removeAttribute&&e.removeAttribute(t),xe(e,t,null)},prop(e,t,r){if(r===void 0){let l=e?e[t]:void 0;return l!==void 0?l:null}e[t]=r},clone(e){let t=e.cloneNode(!0);return Je(t),t},insertAt(e,t,r){let l=e.children[r]||null;e.insertBefore(t,l)},insertBefore(e,t){e.parentNode.insertBefore(t,e)},insertAfter(e,t){e.parentNode.insertBefore(t,e.nextSibling)},identity(e){return e||null},remove(e){e&&e.parentNode&&e.parentNode.removeChild(e)},replaceWith(e,t){if(!e||!e.parentNode)throw new Error("dom.replaceWith: node has no parent");let r=e.ownerDocument.createElement("template");r.innerHTML=t;let l=r.content.firstElementChild;if(!l)throw new Error("dom.replaceWith: html did not parse to an element");return e.parentNode.replaceChild(l,e),l},stripIds(e){let t=0;return e.id&&(e.removeAttribute("id"),t++),(e.querySelectorAll?e.querySelectorAll("[id]"):[]).forEach(r=>{r.removeAttribute("id"),t++}),t},sameNode(e,t){return e===t}};function N(e,t={}){if(t.exclude===null)return E;let r=[J("data"),t.exclude].filter(Boolean).join(", "),l=e.nodeType===9?e:e.ownerDocument||e,n=e.nodeType===9?e.documentElement:e;if(!t._write&&!n?.matches?.(r)&&!n?.querySelector?.(r)&&!l?.querySelector?.(r))return E;let o=e.nodeType===9||!e.isConnected?e:e.ownerDocument,a=e.nodeType===9?e:e.ownerDocument,i=null,u=()=>i||(i=D(o,{capability:"data",exclude:t.exclude||null})),s=f=>{let m=u();return f===e?m.cloneOf(e):m.cloneOf(f)||f},c=f=>i?.original(f)||f,d=(f,m)=>{u().liveToClone.set(f,m),u().cloneToLive.set(m,f);let g=f.childNodes||[],h=m.childNodes||[];for(let y=0;y<Math.min(g.length,h.length);y++)d(g[y],h[y])},p=(f,m,g,h)=>{let y=Array.from(f.childNodes).filter(b=>i.cloneOf(b)),w=y[0];for(;w&&y.includes(w);)w=w.nextSibling;for(let b of y)b.remove();if(g==="innerHTML"){let b=a.createElement("template");b.innerHTML=h;for(let x of Array.from(b.content.childNodes))f.insertBefore(x,w||null)}else f.insertBefore(a.createTextNode(h),w||null),Fe(f,h);let A=D(f,{capability:"data",exclude:t.exclude||null});m.replaceChildren(...Array.from(A.root?.childNodes||[]));let T=b=>{let x=A.original(b);x&&(i.liveToClone.set(x,b),i.cloneToLive.set(b,x));for(let Xe of Array.from(b.childNodes||[]))T(Xe)};for(let b of Array.from(m.childNodes))T(b)},v={...E,find(f,m,g={}){let h=s(f);if(!h?.querySelectorAll)return[];let y=u().query(m,h);g.includeRulesTag||(y=y.filter(T=>!Ve(T)));let w=[];g.skip&&w.push(g.skip);let A=g.templateAttr===null?null:g.templateAttr||"cms-template";if(A&&w.push(`[${A}]`),w.length){let T=w.join(", ");y=y.filter(b=>!b.closest?.(T))}return y},parent(f){let m=s(f)?.parentElement;return m?c(m):null},children(f){return Array.from(s(f)?.children||[],c)},text(f,m){if(m===void 0){let y=c(f);return!y?.matches?.(r)&&!y?.querySelector?.(r)?E.text(y):(s(f)?.textContent||"").trim()}let g=c(f);if(!g?.matches?.(r)&&!g?.querySelector?.(r)&&!i){E.text(g,m);return}let h=u().cloneOf(g);h?p(g,h,"textContent",m):E.text(g,m)},attr(f,m,g){let h=c(f);if(g===void 0)return E.attr(h,m);E.attr(h,m,g);let y=i?.cloneOf(h);y&&(E.attr(y,m,g),D(h,{capability:"data",exclude:t.exclude||null}).root===null&&(y.remove(),i.liveToClone.delete(h),i.cloneToLive.delete(y)))},removeAttr(f,m){let g=c(f);E.removeAttr(g,m);let h=i?.cloneOf(g);h&&E.removeAttr(h,m)},prop(f,m,g){let h=c(f);if(g===void 0)return m==="innerHTML"||m==="outerHTML"||m==="textContent"||m==="innerText"?E.prop(s(h),m):E.prop(h,m);let y=m==="innerHTML"||m==="textContent"||m==="innerText",w=y?u().cloneOf(h):i?.cloneOf(h);w&&y?p(h,w,m,g):(E.prop(h,m,g),w&&E.prop(w,m,g))},clone(f){let m=s(f);if(m===f)return E.clone(f);let g=a.importNode(m,!0);return Je(g),g},insertAt(f,m,g){let h=c(f),y=v.children(h)[g]||(()=>{for(let T=h.children.length-1;T>=0;T--){let b=h.children[T];if(u().cloneOf(b))return b.nextElementSibling}return h.firstElementChild})(),w=c(m);h.insertBefore(w,y||null);let A=u().cloneOf(h);if(A){let T=u().cloneOf(w);T||(T=a.importNode(w,!0),d(w,T));let b=Array.from(A.children);A.insertBefore(T,b[g]||null)}},insertBefore(f,m){let g=c(f),h=c(m);g.parentNode.insertBefore(h,g);let y=u().cloneOf(g.parentNode);if(y){let w=u().cloneOf(h);w||(w=a.importNode(h,!0),d(h,w));let A=u().cloneOf(g);A?A.before(w):y.appendChild(w)}},insertAfter(f,m){let g=c(f),h=c(m);g.parentNode.insertBefore(h,g.nextSibling);let y=u().cloneOf(g.parentNode);if(y){let w=u().cloneOf(h);w||(w=a.importNode(h,!0),d(h,w));let A=u().cloneOf(g);A?A.after(w):y.appendChild(w)}},identity(f){return c(f)||null},remove(f){let m=c(f),g=u().cloneOf(m);E.remove(m),g&&E.remove(g)},replaceWith(f,m){let g=c(f),h=u().cloneOf(g),y=E.replaceWith(g,m);if(h){let w=D(y,{capability:"data",exclude:t.exclude||null});if(!w.root)h.remove();else{h.replaceWith(w.root);let A=T=>{let b=w.original(T);b&&(i.liveToClone.set(b,T),i.cloneToLive.set(T,b));for(let x of Array.from(T.childNodes||[]))A(x)};A(w.root)}}return y}};return v}var P=E,I=e=>({codecs:pt(),...e}),ie={extract:(e,t,r={})=>q(N(e,r),e,t,I(r)),apply:(e,t,r,l={})=>B(N(e,{...l,_write:!0}),e,t,r,I(l)),findRulesIn:(e,t)=>re(P,e,t),findRules:(e,t)=>be(P,e,t),bind:(e,t,r={})=>{let l=be(P,e,t);if(!l){let o=typeof t=="string"?`data-rules-name~="${t}"`:"the provided rules object";throw new Error(`hyper-html-api: could not resolve rules for ${o}`)}let n=I({version:l.version,...r});return{...l,get:()=>q(N(e,r),e,l.rules,n),set:o=>B(N(e,{...r,_write:!0}),e,l.rules,o,n)}},codecs:{register:ft,get:dt},parseStrict:It,parseRelaxed:He,ruleAttrIndex:C,splitRule:$,errors:O,DOM_PROPERTIES:Oe},K=e=>!!e&&typeof e.nodeType=="number";function Ke(e){let t=e&&e.ownerDocument?e.ownerDocument:e,r=re(P,t,"api");if(!r)throw new O.NoRulesTag("api");return{rules:r.rules,version:r.version}}function rr(e){if(e.nodeType===9)return e;let t=e.ownerDocument?.documentElement;if(t?.contains(e))return t;let r=e;for(;r.parentNode;)r=r.parentNode;return r}function nr(e){if(e.nodeType!==11||!e.host)return e.cloneNode(!0);let t=e.ownerDocument.createDocumentFragment();for(let r of e.childNodes)t.appendChild(r.cloneNode(!0));return t}function lr(e,t){let r=[];for(;t!==e;){let l=t.parentNode;r.push(Array.prototype.indexOf.call(l.childNodes,t)),t=l}return r.reverse()}function or(e,t){return t.reduce((r,l)=>r.childNodes[l],e)}function S(e,t){let r=e.querySelectorAll?Array.from(e.querySelectorAll(t)):[];return e.matches?.(t)&&r.unshift(e),r}function ir(e,t){let r=S(e,"option"),l=S(t,"option");r.forEach((u,s)=>l[s].selected=u.selected);let n=S(e,"input"),o=S(t,"input");n.forEach((u,s)=>{let c=u.type.toLowerCase();c!=="file"&&(o[s].value=u.value),(c==="checkbox"||c==="radio")&&(o[s].checked=u.checked)});let a=S(e,"textarea"),i=S(t,"textarea");a.forEach((u,s)=>i[s].value=u.value)}function X(e,t){if(t!==void 0){if(typeof e=="string"){if(e.endsWith("[]"))return;let r=e.startsWith("@")?0:C(e);if(r===-1)return;let l=e.slice(r+1);if(Ne.has(l))throw new O.RuleTargetReadOnly(l);return}if(Array.isArray(e)){if(!Array.isArray(t))return;t.forEach(r=>X(e[1],r));return}if(e&&typeof e=="object"&&t&&typeof t=="object"&&!Array.isArray(t))for(let[r,l]of Object.entries(e))X(l,t[r])}}function ur(e,t,r,l){let n=I({templateAttr:"cms-template",version:l}),o=rr(e),a=lr(o,e),i=nr(o);ir(o,i);let u=or(i,a),s=N(i,{...n,_write:!0}),c=Zt(s,u,t,r,n);if(c.unknownKeys.length||c.unmatched.length)throw new O.WriteRejected(c.unknownKeys,c.unmatched);let d=ve(s);B(d,u,t,r,n),d.assertClean(),X(t,r);let p=ve(N(o,{...n,_write:!0}));B(p,e,t,r,n),p.assertClean()}function ar(e){if(!(e instanceof Error))return e;let t=e instanceof O.UnknownCodec||e instanceof O.CodecRefused?e.code:e.name||"Error";try{e.code=t}catch{Object.defineProperty(e,"code",{value:t,configurable:!0,enumerable:!0})}return e instanceof O.WriteRefused?e.details=e.refusals:e instanceof O.WriteRejected?e.details={unknownKeys:e.unknownKeys,unmatched:e.unmatched}:e instanceof O.ShapeMismatch?e.details=e.mismatches:Array.isArray(e.path)?e.details={path:e.path}:typeof e.target=="string"?e.details={target:e.target}:e.token!==void 0?e.details={token:e.token}:e.version!==void 0?e.details={version:e.version}:e.details={},e}function sr(e,t){let r=K(e)?e:document,l=K(e)?t:e;if(l===void 0){let{rules:n,version:o}=Ke(r);return q(N(r),r,n,I({version:o}))}return ie.bind(r,l).get()}function cr(e,t,r){try{if(!K(e))throw new Error("hyper-html-api: applyData(root, data, source?) needs a DOM root as the first argument.");let{rules:l,version:n}=r===void 0?Ke(e):ie.bind(e,r);ur(e,l,t,n)}catch(l){throw ar(l)}return e}var fr={engine:ie,extractData:sr,applyData:cr},dr=fr;export{ie as a,sr as b,cr as c,dr as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as j}from"./c-
|
|
1
|
+
import{a as j}from"./c-MJ7GVE46.js";import{b as S,c as A,f as C,i as l,j as P,l as L,n as B}from"./c-EDE45NM7.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-U4NTUVDZ.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var y=0,x=[],b=[],d=null,I=!1,E=!1,v=null,M=null,$=15e3,u=()=>P().mode,p=(e,t)=>Object.assign(new Error(`clay.modeLifecycle: ${e}`),{code:t});function U(){document.dispatchEvent(new Event("clay:modechange"))}function h(e,t="idle",o={}){return l({phase:t,reason:e}),{ok:!1,mode:u(),code:e,...o}}function k(e){for(let t of[...e].reverse())try{t.dispose?.()}catch{}}function D(e){try{e?.reclaimArticle?.()}catch{}try{e?.resume?.()}catch{}}function O(e){document.documentElement.setAttribute("editmode",e?"true":"false")}function G(){try{let e=new URL(window.location.href);if(!e.searchParams.has("editmode"))return;e.searchParams.delete("editmode"),window.history.replaceState(window.history.state,"",`${e.pathname}${e.search}${e.hash}`)}catch(e){console.warn("clayjs: the URL could not be rewritten after the mode switch",e)}}var N=e=>[...e?.edit?.core??[],...e?.edit?.plugins??[],...e?.edit?.late??[]];function X(e){let t=[];for(let o of N(e)){let n=j(o);if(n!=="export"&&typeof n!="function")continue;let r=e.loaded?.[o];r&&t.push(typeof n=="function"?n(r):r.modeParticipant?.())}return t}async function _(e){let t=new Set(b.map(({id:n})=>n)),o=n=>{if(typeof n?.id!="string"||typeof n.prepare!="function")throw p("a participant needs an id and a prepare()","unsupported-plugin");t.has(n.id)||(t.add(n.id),b.push(n))};if(e)for(let n of X(e))o(await n);for(let n of B())o(await n);return[...b].sort((n,r)=>(n.order??0)-(r.order??0))}function z(e){let t=b.findIndex(o=>o.id===e);t!==-1&&b.splice(t,1)}L(z);function H(e,t){if(!e||e.bytes===null)return!1;let o=t??{};return typeof e.seq=="number"&&typeof o.seq=="number"&&e.seq!==o.seq?e.seq>o.seq:(e.etag??null)!==(o.etag??null)}async function V(e=null){let t=u(),o=C,n=new AbortController,r={generation:++y,destination:P().destination,signal:n.signal,represented:null,reader:null,initial:!1,isCurrent:()=>r.generation===y&&!n.signal.aborted};l({phase:"entering",generation:r.generation,reason:null}),e||(I=!0,E=!1,v=null);let s=[],c=[],f=null,i=null,w=!1,m=(async()=>{try{if(e){let a=await import("./c-FEC6LGFF.js");i=await a.prepareReader(e,r),c.push(...await a.importPlan(e,e.edit,{signal:n.signal})),await i?.reconcile(),r.represented=i?i.represented:null,r.reader=i,M=r.represented}f=e?.loaded?.["core/save.js"]??await import("./core/save-6HT2LABE.js");for(let a of await _(e)){w=!0;let g=await a.prepare(r);if(g){if(s.push(g),!r.isCurrent())throw p(`"${a.id}" prepared for a stale generation`,"stale-document");if(g.ready&&await g.ready,!r.isCurrent())throw p(`"${a.id}" became ready for a stale generation`,"stale-document")}}if(e||!o){let a=f.adoptEntryBaseline({represented:r.represented});if(a&&a.ok===!1)throw Object.assign(p("the page moved since the last session",a.code||"pending-input"),a);if(H(i?.held??i?.represented,r.represented))throw p("the reader holds a newer file than the session was built from","stale-document")}return!0}catch(a){throw k(s),a}})(),q=null,W=new Promise(a=>{q=setTimeout(()=>{n.abort(),a(!1)},$)}),T;try{T=await Promise.race([m,W])}catch(a){return clearTimeout(q),n.abort(),w?(D(i),h(a?.code||"load-failed","blocked",{message:a?.message})):(D(i),l({phase:"idle",reason:null}),null)}if(clearTimeout(q),!T)return m.catch(()=>{}),k(s.splice(0)),D(i),h("timeout");i?.commit(),l({mode:S?"draft":"edit",isEditMode:!0}),e&&G(),O(!0),f?.setSaveGeneration(r.generation);try{for(let a of s)a.enable()}catch(a){return l({mode:t,isEditMode:o}),O(!1),k(s),n.abort(),e&&(await import("./c-FEC6LGFF.js").catch(()=>null))?.startReader(e,M),h(a?.code||"load-failed","blocked",{message:a?.message})}x=s,l({phase:"idle",reason:null}),U();for(let a of c)e?.announce?.(a);return{ok:!0,mode:u(),changed:t!==u()}}async function J(e){if(!e)return[];let t=[];for(let r of N(e)){let s=j(r);if(s!=="export"&&typeof s!="function")continue;let c=e.loaded?.[r];if(!c)continue;let f=await(typeof s=="function"?s(c):c.modeParticipant?.());if(typeof f?.id!="string"||typeof f.prepare!="function")return null;t.push(f)}t.sort((r,s)=>(r.order??0)-(s.order??0));let o=[],n={generation:y,destination:P().destination,signal:void 0,represented:null,reader:null,initial:!0,isCurrent:()=>!0};for(let r of t){let s=null;try{s=await r.prepare(n)}catch{return null}s&&o.push(s)}return o}async function K(e){return(e?.loaded?.["core/save.js"]??await import("./core/save-6HT2LABE.js").catch(()=>null))?.acceptedReceipt?.(y)??null}var R=Symbol("the exit deadline passed");function Q(){let e=null,t=Date.now()+$;return{expired:new Promise(n=>{e=setTimeout(()=>n(R),$)}),remaining:()=>Math.max(0,t-Date.now()),clear:()=>clearTimeout(e)}}async function Y(e,t){if(!e)return;let n=(await import("./c-FEC6LGFF.js")).importPlan(e,e.view);n.catch(()=>{});let r=await Promise.race([n.then(()=>null,s=>s),t]);if(r&&r!==R)throw r}async function Z(e=null){let t=Q();try{return await ee(e,t)}finally{t.clear()}}async function ee(e,t){let o=I;l({phase:"leaving"});let n=await import("./c-LATNQ6Q5.js").catch(()=>null);if(!n)return h("load-failed");let r=x;if(o&&!E){v??=J(e);let i=await Promise.race([v,t.expired]);if(i===R)return h("timeout");if(!i)return v=null,l({phase:"idle",reason:null}),null;E=!0,r=[...i,...r],x=r}try{await Y(e,t.expired)}catch(i){return h(i?.code||"load-failed","idle",{message:i?.message})}let s=[],c=null;try{if(c=n.claimOperation("mode"),!c)throw p("another document operation is in progress","busy");for(let w of[...r].reverse()){s.push(w);let m=await Promise.race([Promise.resolve(w.quiesce?.()),t.expired]);if(m===R)throw p("the exit deadline passed while a lease quiesced","timeout");if(m&&m.ok===!1)throw Object.assign(p("a lease refused the exit",m.code||"pending-input"),m)}let i=await n.runSaveBarrier({operation:c,timeoutMs:t.remaining()});if(!i.ok)throw Object.assign(p("the exit barrier refused",i.code||"save-failed"),i)}catch(i){for(let w of[...s].reverse())try{w.resume?.()}catch{}return l({phase:"idle",reason:i?.code||"save-failed"}),{ok:!1,mode:u(),code:i?.code||"save-failed",state:i?.state,pending:i?.pending}}finally{c&&n.releaseOperation(c)}k(r),x=[],I=!1,E=!1,v=null;let f=await K(e)??M;return M=null,e&&(await import("./c-FEC6LGFF.js").catch(()=>null))?.startReader(e,f),y++,O(!1),l({mode:"view",isEditMode:!1,phase:"idle",generation:y,reason:null}),G(),U(),{ok:!0,mode:"view",changed:!0}}function F(e,t=null){if(e!=="edit"&&e!=="view")throw new TypeError(`clay.modeLifecycle: unknown mode "${e}"`);if(d)return d.target===e?d.promise:{ok:!1,mode:u(),code:"busy"};if(e===u())return{ok:!0,mode:u(),changed:!1};if(S||e==="edit"&&!A)return{ok:!1,mode:u(),code:"not-allowed"};let o=(e==="edit"?V(t):Z(t)).finally(()=>{d=null});return d={target:e,promise:o},o}async function re(e,t){let o=await import("./c-FEC6LGFF.js").catch(()=>null);return!o||!o.liveAllowed(t)?null:(d||e===u()||e==="edit"&&o.openResources(),F(e,t))}async function oe(){if(u()==="view")return{ok:!0,mode:"view",changed:!1};if(d)return d.promise;let e=V().finally(()=>{d=null});return d={target:"edit",promise:e},e}export{oe as activateInitial,z as forgetParticipant,F as requestMode,re as switchMode};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Qt}from"./c-4ASQPRQL.js";import{a as Ot}from"./c-GQ6F6IDK.js";import{c as F}from"./c-I2SCCUEW.js";import{b as We}from"./c-5VYOWDTI.js";import{a as Vt,d as $,e as Ge,f as R,h as N}from"./c-6Q6RGFBF.js";import{a as Ke,b as Yt,c as jt,d as zt}from"./c-SKMIR5HQ.js";import{a as $t}from"./c-UGHH4MB3.js";import{a as Lt}from"./c-LA2BW7UY.js";import{a as Rt,f as Ft,g as P,h as Ut,i as qt,j as Bt,m as Ht,u as Gt,w as Wt,x as Kt}from"./c-MFOSMAVM.js";import{b as Nt,h as He}from"./c-PGSBXHUE.js";import{a as qe,c as It,g as bt,h as Be}from"./c-6IJEVE6B.js";import{a as be,f as Re,h as Q}from"./c-IJUK2GPW.js";import{b as K,e as Pt,f as A}from"./c-EDE45NM7.js";import{i as Ct,k as Mt,m as xt}from"./c-U4NTUVDZ.js";import{E as Ue,h as Ne,r as Fe,u as kt,y as V,z as me}from"./c-PWJSJEJU.js";import{d as Dt}from"./c-VG5XIN4T.js";import{a as pe}from"./c-2YYDMLNZ.js";import{d as Et,e as wt,g as At,h as Tt}from"./c-HA6INT6J.js";import{k as _t}from"./c-ICMAOOGK.js";var An="clay:debug:autosave";function ve(){try{return localStorage.getItem(An)==="true"}catch{return!1}}function ge(){return import("./c-CFHW5AMY.js").catch(e=>(console.warn("[autosave-debug] Failed to load the debug logger:",e),null))}function he(e,t){ve()&&ge().then(n=>n?.logSaveCheck(e,t))}function re(e,t=""){ve()&&ge().then(n=>n?.logBaseline(e,t))}function Xt(e,t){ve()&&ge().then(n=>n?.logUnloadDiffSync(e,t))}function Jt(){ve()&&ge().then(e=>e?.preloadIfEnabled())}var U=Number.NEGATIVE_INFINITY;function Tn({firstDirtyAt:e=U,lastActivityAt:t=U,finishedAt:n=U,costMs:o=0}={}){let r=e??U,i=t??U,a=n??U,f=Math.min(3e4,Math.max(1200,4*o)),u=Math.max(i,a)+1500,m=Math.max(r+1e4,a+f);return Math.max(a+1200,Math.min(u,m))}function Zt({now:e=()=>Date.now(),setTimer:t=(r,i)=>setTimeout(r,i),clearTimer:n=r=>clearTimeout(r),run:o=()=>{}}={}){let r=null,i=null,a=U,f=0,u=null,m=null,c=!1,p=!1;function S(){return Tn({firstDirtyAt:r,lastActivityAt:i,finishedAt:a,costMs:f})}function y(){if(!c||p)return;let E=S();if(u!==null){if(m===E)return;n(u)}m=E,u=t(d,Math.max(0,E-e()))}function d(){if(u=null,m=null,!(!c||p)){if(e()<S()){y();return}g()}}function g(){c=!1,p=!0,r=null,i=null;let E;try{E=o()}catch{l();return}Promise.resolve(E).then(l,l)}function l(){p=!1,a=e(),c&&y()}function s({at:E=e()}={}){r===null&&(r=E),i=E,c=!0,y()}function v(){c=!0,y()}function M(E){E>0&&(f=Math.max(E,f*.8))}return{noteActivity:s,request:v,noteCost:M,dueAt:S,costEstimate:()=>f,pending:()=>c||p,running:()=>p}}Fe(e=>{for(let t of Tt)e.removeAttribute(t)});Fe(e=>{for(let t of[...Et,...wt,...At])e.removeAttribute(t)});var x=null;function w(e,t="",n="",o=null){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus",e);let r=new CustomEvent(`clay:save-${e}`,{detail:{msg:t,msgType:n,timestamp:Date.now(),...o||{}}});document.dispatchEvent(r),Mn(e,r.detail)}var an=Symbol.for("clay.saveFailureClaimed"),Br=e=>{e?.detail&&(e.detail[an]=!0)},Ee=null,un=()=>(Ee??=import("./c-BOMQIQ3V.js").catch(e=>{throw Ee=null,e}),Ee),Cn=()=>{un().then(e=>e.warm(),()=>{})};for(let e of["beforeinput","keydown","pointerdown"])document.addEventListener(e,Cn,{once:!0,capture:!0});function Mn(e,t){if(e==="saved"){Ee?.then(n=>n.clearFailures(),()=>{});return}e!=="error"&&e!=="offline"||t?.[an]||un().then(n=>n.reportFailure(e),n=>{console.error("clayjs: a save failed and the notice for it could not be downloaded",n)})}function ot(){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus","offline")}function xn(){x=setTimeout(()=>{w("saving")},500)}window.addEventListener("offline",()=>{ot()});window.addEventListener("online",()=>{document.documentElement.getAttribute("savestatus")==="offline"&&I().then(e=>{e.msgType==="skipped"&&document.documentElement.getAttribute("savestatus")==="offline"&&document.documentElement.setAttribute("savestatus","saved")})});var q=!1,k="",C="",ie=0,we=new Set,D=!1,L=!1,Ae=!1,B=0,je=!1;function Pn(){B++}function ln(){B!==0&&(B--,!(B>0)&&(fe&&(fe=!1,Z=setTimeout(mt,0)),je&&(je=!1,Oe())))}function _n(){return B>0}var Y=0,ne=!1,ae=!1,Te=!1;function de(e=null){return Y===0||dn(e)}function st(){return ne}function Dn(){if(ne)return!0;try{let e=V({flushUndo:!1});return St(e)?!1:e!==C}catch{return!0}}function Ln(){let e="idle",t=0;return{get phase(){return e},get open(){return e==="open"},changedWhileClosed(){return e==="quiesced"&&Ge()!==t},start(){e==="idle"&&(e="open")},quiesce(){e==="open"&&(e="quiesced",t=Ge(),Y++)},resume(){e==="quiesced"&&(e="open",Y--,!(Y>0)&&(zn(),on()))},stop(){if(e==="stopped")return;let n=e==="quiesced";(n||e==="open")&&Dn()&&(Te=!0),e="stopped",n&&(Y--,Y===0&&on())}}}var en=!1,oe=null,ze=null,Xe=!1;function Hr(e=b){if(!oe||oe.generation!==e)return null;let{bytes:t,etag:n}=oe;return{bytes:t,etag:n}}function Gr({represented:e}={}){let t=R(),{forComparison:n,forDirty:o}=me(),r=typeof e?.etag=="string"&&e.etag?e.etag:null;return!(Xe&&r!==null&&r!==ze)&&Te&&(n!==k||o!==C)?{ok:!1,code:"pending-input"}:(Te=!1,ue(n,o),W=n,ee=!1,vt=!0,ze=r,Xe=!0,N(t),document.documentElement.setAttribute("savestatus","saved"),document.dispatchEvent(new CustomEvent("clay:baseline-settled")),{ok:!0})}var it=Promise.resolve(!1),Ce=!1,kn=()=>(Ce=!0,bt().catch(()=>!1).then(e=>(Ce=!1,e)));function Wr(){return{id:"clay:save",order:10,prepare(e={}){let t=Ln();return e.initial===!0&&t.start(),{enable(){it=kn();let n=e.represented?.etag;typeof n=="string"&&n&&It(n),e.initial!==!0&&(On(),t.start())},quiesce:()=>t.quiesce(),resume:()=>t.resume(),dispose:()=>t.stop()}}}}function On(){en||(en=!0,Vt(),be(),En(),wn())}var O=0,Je=!1,Me=!1,at="Waiting for the AI edit to be kept or reverted",j=new Map;function Kr(e=at){O++,j.set(e,(j.get(e)||0)+1)}function Qr({replay:e=!0,reason:t=at}={}){let n=j.get(t)||0;if(n===0||(n===1?j.delete(t):j.set(t,n-1),O--,O>0))return;let o=Je,r=Me;Je=!1,Me=!1,e&&(o?I():r&&Oe())}function Vr(){return O>0}function ut(){return O===0?null:j.keys().next().value||at}function fn(e,t){if(O===0)return!1;Je=!0,Q();let n=h(ut());return e(n),t(n),n}var H=!1,se=null;function In(e){se=e??null,!H&&(H=!0,Pn())}function bn(){H&&(H=!1,se=null,ln())}function Ze(){return H}function $r(e){if(!H||se&&e!==se)return;H=!1,se=null,!We()&&$()||(document.documentElement.getAttribute("savestatus")==="conflict"&&document.documentElement.setAttribute("savestatus","saved"),document.dispatchEvent(new CustomEvent("clay:save-conflict-resolved",{detail:{timestamp:Date.now()}}))),document.dispatchEvent(new CustomEvent("clay:save-conflict-released",{detail:{etag:e??null}})),ln()}function h(e){return{ok:!1,msg:e,msgType:"skipped",code:null,etag:null}}function lt(e){return($()||F())&&(ne=!0),h(e)}function cn(){return{ok:!1,msg:"You are not allowed to save this document.",msgType:"forbidden",code:"forbidden",status:403,sent:!1,etag:null}}function ft(){return Pt()===!1}var ct=new Set,b=0;function Yr(){return b}function jr(e){typeof e=="number"&&(b=e)}function Rn(e=b){let t=Object.freeze({generation:e});return ct.add(t),t}function Nn(e){ct.delete(e)}function dn(e){return!!e&&ct.has(e)&&e.generation===b}function z(e,t){e!=null&&zt({captureId:e,ok:t.ok===!0,etag:t.etag??null})}function Fn(e,t,n,o,r,i=null,a=null,f=!1){if(z(a,e),e.ok)ne=!1,ue(t,n),xe=i,oe={bytes:i,etag:qe(),generation:b},ze=oe.etag,Xe=!0,Te=!1,q=!1,N(r),w("saved",e.msg||"Saved",e.msgType,{etag:e.etag??null,captureId:a}),re(o,`${k.length} chars`),bn();else if(e.msgType==="conflict"){if(f){x&&(clearTimeout(x),x=null),document.documentElement.setAttribute("savestatus","saved");return}In(e.conflictEtag),w("conflict",e.msg,e.msgType,{hadTimeout:e.hadTimeout===!0,changedBy:e.changedBy??null,afterTimeout:e.afterTimeout===!0,etag:e.conflictEtag??null,code:e.code??null,reason:e.reason??null,retryAfter:e.retryAfter??null,captureId:a})}else if(e.msgType!=="skipped"){let u={status:e.status??null,hadTimeout:e.hadTimeout===!0,code:e.code??null,reason:e.reason??null,retryAfter:e.retryAfter??null,captureId:a};navigator.onLine?w("error",e.msg,"",u):w("offline",e.msg,"",u)}}function pn(){if(!(!D&&!L)&&!Ht()){if(D){D=!1,L=!1,I();return}L=!1,nt.request()}}function zr(){return q}function Xr(e){q=e}function Jr(){return k}function dt(){return C}var xe=null;function Zr(){return xe}function ue(e,t){k=e,C=t,ie++}function eo(e){ue(e,e)}var G=()=>typeof performance<"u"&&performance.now?performance.now():Date.now();var Un=4,tn="Save cancelled: the page changed while it prepared",X=null,le=null,Qe=null,mn=!1;function vn(){return Qe||(Qe=import("./c-OG6GFSUX.js").then(e=>(le=e,e),e=>(mn=!0,console.info("clayjs: sliced save off ("+(e&&e.message?e.message:e)+"); saves prepare in one task"),null))),Qe}function qn(){try{return performance.getEntriesByType("navigation")[0]?.decodedBodySize||0}catch{return 0}}var Bn=()=>typeof xe=="string"?xe.length:qn();function Pe(){return mn||document.hidden||Bt()?!1:Bn()>=307200}function nn(e,t,n){return n?"morph":b!==t.generation||!A?"mode":de(e.permit)?ft()?"refused":ie!==t.baselines?"newer save":Math.max(He(),e.blockeditorFormatFloor)>t.floor?"floor":null:"session"}function Hn(e=150,t=2e3){return new Promise(n=>{let o=G(),r=null,i=()=>{document.removeEventListener("clay:sync-applied",a),n()},a=()=>{clearTimeout(r),r=setTimeout(i,Math.max(0,Math.min(e,t-(G()-o))))};document.addEventListener("clay:sync-applied",a),a()})}async function pt({explicit:e,forced:t=!1,forSave:n,forComparison:o,forDirty:r,captureId:i,gateToken:a,costMs:f,blockeditorFormatFloor:u=0,quietConflict:m=!1,laneHeld:c=!1,lane:p=null,capture:S,noteRecovery:y,release:d,callback:g}){if(y(),e&&!t){if(q=r!==C,he("savePage dirty check",!q),!q){Q(),N(a),d();let s=h("No changes to save");return z(i,s),typeof g=="function"&&g(s),{result:s,dispatched:!1}}}else if(!e){let s=!ee||o!==W,v=o!==k;if(he("throttled vs baseline",!s),he("throttled vs lastSave",!v),!(s&&v)){let M=!1;try{M=!v&&(!document.querySelector(_t)||$()&&r===C)}catch(yt){console.error("savePageThrottled: dirty domain check failed",yt)}M&&N(a),nt.noteCost(f),d();let E=h("No changes to save");return z(i,E),typeof g=="function"&&g(E),{result:E,dispatched:!1}}if(q=!0,!c&&P()){D=!0,d();let M=h("Save already in progress");return z(i,M),typeof g=="function"&&g(M),{result:M,dispatched:!1}}}xn();let l={forComparison:o,forDirty:r};return we.add(l),Ae=!0,new Promise(s=>{Gt(n,i,v=>{Ae=!1,we.delete(l);let M=G();Fn(v,l.forComparison,l.forDirty,t?"updated after force save":"updated after save",a,n,i,m),e||nt.noteCost(f+(G()-M)),typeof g=="function"&&g(v),s({result:v,dispatched:!0}),c||pn()},{capture:S,blockeditorFormatFloor:u,lane:p})})}async function Gn(e,t){let n={over:!1},o=()=>{n.over=!0};document.addEventListener("clay:sync-applied",o);try{for(let i=0;i<2;i++){let a=R(),f={generation:b,baselines:ie,floor:Math.max(He(),e.blockeditorFormatFloor)},u=le.beginSaveCapture({requestRefresh:!0,forRequest:!0,pageFormatMarker:f.floor?{name:Nt,content:String(f.floor)}:null});Yt(u.captureId);let m=null,c={get aborted(){let d=nn(e,f,n.over);return d&&(m=d),!!d}},p;try{p=await le.runPreparedSteps(u.steps(),{budgetMs:Un,signal:c})}catch(d){console.error(`${e.explicit?"savePage":"savePageThrottled"}: preparing the save failed`,d),u.drop();let g={msg:d&&d.message?d.message:"Save failed",msgType:"error",code:d?.code??null,etag:null};return w("error",g.msg,"",{sent:!1,code:g.code}),z(u.captureId,g),typeof e.callback=="function"&&e.callback(g),{result:g,dispatched:!1}}let S=p.aborted?m:nn(e,f,n.over);if(!S){let d=p.result;return await pt({explicit:e.explicit,forced:e.forced,forSave:d.forSave,forComparison:d.forComparison,forDirty:d.forDirty,captureId:d.captureId,gateToken:a,costMs:p.activeMs,blockeditorFormatFloor:e.blockeditorFormatFloor,quietConflict:e.quietConflict,laneHeld:!0,lane:t,capture:d,noteRecovery:()=>jt(d.captureId,d.forSave),release:()=>u.drop(),callback:e.callback})}u.drop();let y=h(tn);if(S==="session"&&(ae=!0),z(u.captureId,y),!(S==="floor"&&i===0)){if(S==="morph"&&e.explicit&&i===0){await Hn(),n.over=!1;continue}return typeof e.callback=="function"&&e.callback(y),{result:y,dispatched:!1}}}let r=h(tn);return typeof e.callback=="function"&&e.callback(r),{result:r,dispatched:!1}}finally{document.removeEventListener("clay:sync-applied",o),qt(t)}}function gn(e){let t=Ut();if(!t)return!1;let n=Gn(e,t).catch(o=>{console.error("save: preparing the save failed",o);let r={msg:o&&o.message?o.message:"Save failed",msgType:"error",code:o?.code??null,etag:null};return w("error",r.msg,"",{sent:!1,code:r.code}),typeof e.callback=="function"&&e.callback(r),{result:r,dispatched:!1}});return X=n,n.then(o=>{X===n&&(X=null),e.resolve(o.result),e.settleSoonQueued(o.result),(o.dispatched||D||L||Le.length)&&pn()}),!0}function ke(e,t=()=>{}){return Ce?it.then(()=>ke(e,t)):te?ce.then(()=>De(e,t)):De(e,t)}function _e(e,t){let n=!1,o=setTimeout(()=>{n=!0,w("saving")},500);return e.then(()=>(clearTimeout(o),t())).then(r=>(n&&!P()&&!$()&&document.documentElement.getAttribute("savestatus")==="saving"&&(document.documentElement.setAttribute("savestatus","saved"),document.dispatchEvent(new CustomEvent("clay:save-status",{detail:{state:"saved"}}))),r))}function De({kind:e,permit:t=null},n=()=>{}){let o=e==="explicit";return new Promise(r=>{if(!A&&!window.clay?.testMode){o&&Q();let s=h("Not in edit mode");return T().forEach(v=>v(s)),n(s),r(s)}if(!de(t)){ae=!0;let s=lt("Save session is quiesced");return o&&T().forEach(v=>v(s)),n(s),r(s)}if(ft()){o&&Q();let s=cn();return w("error",s.msg,"",{code:s.code,status:s.status,sent:!1}),T().forEach(v=>v(s)),n(s),r(s)}if(o){let s=fn(n,r);if(s){T().forEach(v=>v(s));return}if(P()){D=!0;let v=h("Save already in progress");return n(v),r(v)}}else{if(O>0){Me=!0;let s=h(ut());return n(s),r(s)}if(P()&&!ee&&Ae){L=!0;let s=h("Save already in progress");return n(s),r(s)}if(X){L=!0;let s=h("Save already in progress");return n(s),r(s)}if(!ee&&!$()){let s=h("No changes to save");return n(s),r(s)}}let i=window.clay?.source?.ensureForSave?.();if(i)return r(_e(i,()=>De({kind:e,permit:t},n)));if(Pe()&&!le){r(_e(vn(),()=>De({kind:e,permit:t},n)));return}let a=o?T():[],f=s=>a.forEach(v=>v(s));if(!navigator.onLine&&ot(),Pe()&&gn({explicit:o,forced:!1,permit:t,blockeditorFormatFloor:0,quietConflict:!1,settleSoonQueued:f,callback:n,resolve:r}))return;let m=G(),c,p,S,y,d,g=R();try{c=Ue({requestRefresh:!0,forRequest:!0}),{forSave:p,forComparison:S,forDirty:y,captureId:d}=c}catch(s){console.error(`${o?"savePage":"savePageThrottled"}: captureForSaveAndComparison failed`,s),o?(Q(),w("error",s.message,"",{sent:!1,code:s.code??null})):w("error",s.message);let v={msg:s.message,msgType:"error",code:o?s.code??null:null,etag:null};typeof n=="function"&&n(v),r(v),f(v);return}let l=G()-m;pt({explicit:o,forSave:p,forComparison:S,forDirty:y,captureId:d,gateToken:g,costMs:l,capture:c,noteRecovery:()=>Ke({captureId:d,html:p}),release:()=>Ne(c),callback:n}).then(s=>{r(s.result),f(s.result)})})}function I(e=()=>{}){return ke({kind:"explicit"},e)}function Wn(e,t=()=>{}){return ke({kind:"explicit",permit:e},t)}function J(e=()=>{},{quietConflict:t=!1,blockeditorFormatFloor:n=0,permit:o=null}={}){return Ce?it.then(()=>J(e,{quietConflict:t,blockeditorFormatFloor:n,permit:o})):new Promise(r=>{if(!A&&!window.clay?.testMode){let l=h("Not in edit mode");return T().forEach(s=>s(l)),e(l),r(l)}if(!de(o)||o&&!dn(o)){let l=lt("Save session is quiesced");return T().forEach(s=>s(l)),e(l),r(l)}if(ft()){let l=cn();return w("error",l.msg,"",{code:l.code,status:l.status,sent:!1}),T().forEach(s=>s(l)),e(l),r(l)}let i=fn(e,r);if(i){T().forEach(l=>l(i));return}if(P()){D=!0;let l=h("Save already in progress");return T().forEach(s=>s(l)),e(l),r(l)}let a=window.clay?.source?.ensureForSave?.();if(a)return r(_e(a,()=>J(e,{quietConflict:t,blockeditorFormatFloor:n,permit:o})));if(!navigator.onLine&&ot(),Pe()&&!le){r(_e(vn(),()=>J(e,{quietConflict:t,blockeditorFormatFloor:n,permit:o})));return}let u=T(),m=l=>u.forEach(s=>s(l));if(Pe()&&gn({explicit:!0,forced:!0,permit:o,blockeditorFormatFloor:n,quietConflict:t,settleSoonQueued:m,callback:e,resolve:r}))return;let c,p,S,y,d,g=R();try{c=Ue({requestRefresh:!0,forRequest:!0}),{forSave:p,forComparison:S,forDirty:y,captureId:d}=c}catch(l){console.error("savePageForce: captureForSaveAndComparison failed",l),w("error",l.message,"",{sent:!1,code:l.code??null});let s={msg:l.message,msgType:"error",code:l.code??null,etag:null};typeof e=="function"&&e(s),r(s),m(s);return}pt({explicit:!0,forced:!0,forSave:p,forComparison:S,forDirty:y,captureId:d,gateToken:g,costMs:0,blockeditorFormatFloor:n,quietConflict:t,capture:c,noteRecovery:()=>Ke({captureId:d,html:p}),release:()=>Ne(c),callback:e}).then(l=>{r(l.result),m(l.result)})})}Kt(e=>J(()=>{},{permit:e}));function Kn(e){let t=["clay:save-saved","clay:save-error","clay:save-offline","clay:save-conflict"];return new Promise((n,o)=>{let r=null,i=()=>{clearTimeout(r);for(let u of t)document.removeEventListener(u,a)},a=()=>{i(),n()},f=e-Date.now();if(f<=0){o(Object.assign(new Error("Save timed out."),{state:"failed"}));return}r=setTimeout(()=>{i(),o(Object.assign(new Error("Save timed out."),{state:"failed"}))},f);for(let u of t)document.addEventListener(u,a)})}function _(e,t){return Object.assign(new Error(e),{state:t})}function Qn(e,t){return new Promise((n,o)=>{let r=t-Date.now();if(r<=0)return o(_("Save timed out.","failed"));let i=setTimeout(()=>{document.removeEventListener(e,a),o(_("Save timed out.","failed"))},r),a=()=>{clearTimeout(i),n()};document.addEventListener(e,a,{once:!0})})}async function to({keepalive:e=!1,timeoutMs:t=15e3,permit:n=null}={}){if(!A)return{state:"view",etag:null};let o=Date.now()+t,r=n||Rn(),i={over:!1},a=null,f=new Promise((u,m)=>{a=setTimeout(()=>m(Object.assign(_("Save timed out.","failed"),{timedOut:!0})),Math.max(0,t))});try{return await Promise.race([Vn(e,o,r,i),f])}catch(u){throw u&&typeof u.state=="string"?u:_(u?.message||"Save failed","failed")}finally{i.over=!0,clearTimeout(a),n||Nn(r)}}async function Vn(e,t,n,o={over:!1}){if(hn()||await Qn("clay:baseline-settled",t),o.over)return null;let r=!1,i=null;for(let a=0;a<4;a++){if(X&&(await X,o.over)||P()&&(await Kn(t),o.over))return null;if(Ze())throw _("This document has a conflict to resolve.","conflict");let f=R();if(!rt()){if(N(f),F())throw _("This document has unsaved work a save cannot write.","blocked");return ne=!1,{state:r?"saved":"clean",etag:i??qe()}}if(o.over)return null;let u=await Ft(e,()=>Wn(n));if(u.msgType!=="skipped"){if(!u.ok)throw _(u.msg||"Save failed",u.msgType==="conflict"||Ze()?"conflict":"failed");r=!0,i=u.etag??null}}throw _("The document kept changing while saving.","failed")}async function no(e=()=>{}){return await Be({fresh:!0}),J(e)}function ro(e){!A||K||Wt(e,t=>{t.ok?window.location.reload():t.msgType==="skipped"?w("error",t.msg||"Template not saved"):w("error",t.msg||"Failed to save template")})}var $n=Ot(e=>ke({kind:"automatic"},e),1200),Yn=250,jn=1e3,Z=null,rn=0,et=[],Le=[],fe=!1,T=()=>{let e=Le;return Le=[],e};function mt(){if(Z=null,B>0||!de()){fe=!0;return}let e=et;if(et=[],P()){Le.push(...e),I();return}I().then(t=>e.forEach(n=>n(t)))}function oo(){let e=Date.now();return Z===null?rn=e:clearTimeout(Z),new Promise(t=>{et.push(t),Z=setTimeout(mt,Math.max(0,Math.min(Yn,rn+jn-e)))})}function zn(){ae&&(ae=!1,Oe())}function on(){fe&&(fe=!1,Z=setTimeout(mt,0))}var W="",ee=!0,vt=!1;function hn(){return vt}var Ve=!1,Xn=250,Jn=1250,$e=null,Sn="clay:paint-heal:"+location.pathname;function yn(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)|0;return String(t>>>0)}function Zn(e){try{return localStorage.getItem(Sn)===yn(e)}catch{return!1}}function er(e){try{localStorage.setItem(Sn,yn(e))}catch{}}function tr(){return Dt(kt({flushUndo:!1}))}function so(e){!A||K||(clearTimeout($e),$e=setTimeout(async()=>{$e=null,te&&await ce;let t=typeof e=="function"?e():e;t==null||!We()||!hn()||Ze()||_n()||V({flushUndo:!1})===C&&t!==tr()&&(Zn(t)||(er(t),J(()=>{},{quietConflict:!0})))},Xn+Math.random()*Jn))}var Se=null,Ye=null,te=0,ce=Promise.resolve(),gt=!1,ht=[];function nr(){return Ye??=import("./c-KNPDOMDY.js").catch(e=>(Ye=null,console.error("style-comparisons failed to load",e),null)),Ye}async function rr(e){try{if(Se||(Se=(await nr())?.styleComparisonStripper??null),!Se)return;let t=Se(e);k=t(k),C=t(C),W=t(W);for(let n of we)n.forComparison=t(n.forComparison),n.forDirty=t(n.forDirty)}catch(t){console.error("style adoption failed",t)}finally{te--,ht.shift()}}var ye=e=>e.replace(/&/g,"&").replace(/"/g,""");function or(e){if(e.name!==void 0){let n=[`data-name="${ye(e.name)}"`];return e.legacyId!==void 0&&n.push(`id="${ye(e.legacyId)}"`),n}let t=[ye(e.href)];try{let{pathname:n}=new URL(e.href);n&&t.push(ye(n))}catch{}return t}function sr(e){let t=[k,C,W];for(let n of we)t.push(n.forComparison,n.forDirty);return t.some(n=>n&&e.some(o=>o&&n.includes(o)))}function ir(e,t){let n=[];for(let{markers:i,tag:a}of t)for(let f of i)for(let u=e.indexOf(f);u>=0;u=e.indexOf(f,u+f.length)){let m=e.lastIndexOf("<",u);if(m<0||e.slice(m+1,m+1+a.length).toLowerCase()!==a)continue;let c=a==="style"?e.indexOf("</style",u):u;if(c<0)continue;let p=e.indexOf(">",c);p>=0&&n.push([m,p+1])}n.sort((i,a)=>i[0]-a[0]);let o="",r=0;for(let[i,a]of n)i<r||(o+=e.slice(r,i),r=a);return o+e.slice(r)}$t(e=>{let t=or(e);sr(t)&&(te||(gt=!1),te++,ht.push({markers:t,tag:e.name!==void 0?"style":"link"}),ce=ce.then(()=>rr(e)))});function io(){return ce}function St(e){return!te||gt||F()||P()||D||L||ne||typeof e!="string"?!1:e===ir(C,ht)}var ar=500,ur=3e3,lr=1e4,tt=null;function fr(){pe.holdSettle=!1,tt&&tt()}function sn(){if(!A)return;let e=!1,t=null,{forComparison:n,forDirty:o}=me();ue(n,o);let r=ie;W=n,re("immediate capture",`${n.length} chars`);let i=["keydown","pointerdown","drop","input","change","paste"],a=new Set(["Shift","Control","Alt","Meta"]),f=c=>{c.type==="keydown"&&a.has(c.key)||(gt=!0,e||(Ve=!0))};i.forEach(c=>document.addEventListener(c,f,!0));let u=()=>{if(!e){if(e=!0,t&&t(),!Ve&&ie===r){let c=R(),{forComparison:p,forDirty:S}=me();ue(p,S),W=p,N(c),re("settled capture",`${p.length} chars`)}else re("settled skipped",Ve?"user edited":"save occurred during settle");ee=!1,document.documentElement.setAttribute("savestatus","saved"),vt=!0,document.dispatchEvent(new CustomEvent("clay:baseline-settled"))}};tt=u;let m=()=>{pe.holdSettle||u()};t=Lt.onAnyChange({debounce:ar,omitChangeDetails:!0,require:"autosave"},m),setTimeout(()=>{e||m()},ur),setTimeout(()=>{!e&&pe.holdSettle&&fr()},lr)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",sn):sn();function Oe(e=()=>{}){if(!A){let t=h("Not in edit mode");return e(t),Promise.resolve(t)}if(O>0){Me=!0;let t=h(ut());return e(t),Promise.resolve(t)}if(!de()){ae=!0;let t=lt("Save session is quiesced");return e(t),Promise.resolve(t)}if(B>0){je=!0;let t=h("Autosave suspended");return e(t),Promise.resolve(t)}if(!ee&&Ae){L=!0;let t=h("Save already in progress");return e(t),Promise.resolve(t)}return $n(e).catch(t=>{let n={ok:!1,msg:t?.message||"Save failed",msgType:"error",code:null,etag:null};return w("error",n.msg),n})}var nt=Zt({now:G,run:()=>Oe()});function En(){document.addEventListener("keydown",function(e){if((window.navigator.platform.match("Mac")?e.metaKey:e.ctrlKey)&&e.keyCode==83){if(!A)return;e.preventDefault(),e.isTrusted&&Re(),I()}})}function wn(){document.addEventListener("click",e=>{e.target.closest("[trigger-save]")&&(e.isTrusted&&Re(),I())})}function cr(){A&&(Be(),Rt(),be(),En(),wn())}cr();var ao=I;var Ie=!1;function go({isCurrent:e,reload:t}){return e()?(Ie=!0,setTimeout(()=>{Ie=!1},1e3),t(),!0):!1}Jt();function dr(){return st()?!0:A?F()?!0:K?Mt()||xt():window.clay?.demo?!1:rt():!1}function rt(){if(!A)return!1;try{let e=V();return St(e)?!1:e!==dt()}catch{return!0}}window.addEventListener("beforeunload",e=>{if(!A&&!st())return;if(Ie){Ie=!1;return}if(!((!K||Ct())&&!dr())&&(e.preventDefault(),e.returnValue="",!window.clay?.demo&&!F()))try{let n=V(),o=dt();n!==o&&Xt(n,o)}catch{}});export{go as a,dr as b,rt as c,Br as d,Pn as e,ln as f,_n as g,de as h,st as i,Ln as j,Hr as k,Gr as l,Wr as m,Kr as n,Qr as o,Vr as p,ut as q,Ze as r,$r as s,Yr as t,jr as u,Rn as v,Nn as w,zr as x,Xr as y,Jr as z,dt as A,Zr as B,ue as C,eo as D,I as E,J as F,to as G,no as H,ro as I,oo as J,hn as K,tr as L,so as M,io as N,St as O,fr as P,Oe as Q,nt as R,En as S,wn as T,cr as U,ao as V};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as b,b as e}from"./c-
|
|
1
|
+
import{a as b,b as e}from"./c-UOUUI265.js";import{d as y}from"./c-QHWJ5ZIJ.js";import{c as x}from"./c-SXNSSHPP.js";import{a as T}from"./c-UL2YUY52.js";import{g as H,j as u,n as w,p as N}from"./c-MR75YPRT.js";import{b as h,c as k,e as m}from"./c-5RZNFTWD.js";import{a as v}from"./c-VKEDWYDF.js";function O(t,r,n="",o=!1,l="",a="OK"){let i=y(),c=u("div",["display:flex","flex-direction:column","gap:14px",`font:14.5px/1.55 ${h}`,`color:${m["ink-2"]}`],{theme:i,parts:["dialog.content"],role:"text"}),s=null;o&&(s=N("input",{rules:["display:block","width:100%","margin:0"],theme:i,parts:["dialog.input"]}),s.setAttribute("value",String(l)),s.required=!0,c.append(s)),c.insertAdjacentHTML("beforeend",n),e.title=t,e.html=o||n?c:"",e.width="440px",e[b]=i,e.closeHtml="x",e.no="Cancel",e.yes=a;let d=new Promise((f,g)=>{e.onYes(()=>{let p;if(o&&(p=s.value,!p))return!1;if(r)try{r(p)}catch(C){return x(C.message||"An error occurred","error"),!1}return setTimeout(()=>f(p),0),!0}),e.onNo=()=>{setTimeout(g,0)}});return e.open(),setTimeout(()=>{let f=document.querySelector("[data-clay-modal]");f&&f.addEventListener("click",g=>{let p=g.target.closest("[data-copy]");p&&(T(p.dataset.copy),x("Copied","success"))})},0),d.catch(()=>{}),d}function q(t,r,n="",o=""){return O(t,r,o,!0,n,"OK")}function B(t,r,n=""){return O(t,r,n,!1,"","Confirm")}function F(t,...r){let n=y(),o=u("div",["display:flex","flex-direction:column","gap:12px"],{theme:n,parts:["dialog.content"]});for(let a of r){let i=w("div",[`font:14.5px/1.55 ${h}`,`color:${m["ink-2"]}`,"overflow-wrap:anywhere"],void 0,{theme:n});i.innerHTML=a,o.append(i)}e.title=t,e.html=r.length?o:"",e.width="470px",e[b]=n,e.closeHtml="x",e.yes="OK";let l=new Promise((a,i)=>{e.onYes(()=>(setTimeout(a,0),!0)),e.onNo=()=>{setTimeout(i,0)}});return e.open(),l.catch(()=>{}),l}function R(t,r,n=""){let o=y(),l=u("div",["display:block"],{theme:o,parts:["dialog.content"]}),a=u("div",["display:block","max-width:100%","overflow-x:auto","margin:0 0 14px","padding:14px 16px",`background:${m.sunk}`,`border:1px solid ${m["line-2"]}`],{theme:o,parts:["dialog.well"],role:"well"}),i=w("pre",["display:block","margin:0","white-space:nowrap",`font:13px/1.6 ${k}`],void 0,{theme:o,parts:["dialog.code"],role:"code"});i.innerHTML=r,a.append(i);let c=H("Copy",{small:!0,extra:["margin:0 0 14px"],theme:o,parts:["dialog.button","dialog.copyButton"],labelParts:["dialog.buttonLabel"],onClick:()=>{T(r),x("Copied to clipboard!","success")}});l.append(a,c),l.insertAdjacentHTML("beforeend",n||""),e.title=t,e.html=l,e.width="540px",e[b]=o,e.closeHtml="x",e.yes="";let s=new Promise(d=>{e.onYes(()=>(setTimeout(d,0),!0)),e.onNo=()=>{setTimeout(d,0)}});return e.open(),s}function M(){v(()=>{let t=document.querySelector("[data-clay-modal]");t&&(t.remove(),document.body.style.overflow="")})}M();export{q as a,B as b,F as c,R as d,M as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Ee,b as K,c as Me,d as Ge}from"./c-JKZJIUIP.js";import"./c-VHNSBD2M.js";var Qe=40,Oe=128,L=500,We=1e4,Ze=63*1024,Ne=15*1024,Ae=/^blockeditor(\.[0-9]+)?$/,me=512,ce=8e3,en=new Set([401,403]),nn=new Set([401,403,404]),tn=new TextEncoder,ee=b=>tn.encode(JSON.stringify(b)).length,_e=b=>b===0||b===408||b===429||b>=500,Re=b=>b===429||b===503;function sn({transport:b,entries:v,onEpoch:$e=()=>{},onLeave:de=()=>{},onWriter:fe=()=>{},onApplied:ne=()=>{},onLanded:Fe=()=>{},onCheckpoint:Te=()=>{},held:ae=()=>!1,heldIds:De=()=>[],hold:je=()=>!0,taken:he=()=>{},onStop:Be=()=>{},now:te=()=>Date.now(),setTimer:B=setTimeout,clearTimer:H=clearTimeout}){let y=null,M=!1,$=!1,u=null,N=null,F=null,pe=0,g=0,V=null,w=new Set,A=[],oe=!1,q=!1,Q=!1,T=null,ge=-1/0,se=0,G=null,_=null,W=L,Y=Ze,R=L,D=0,z,Z=0,ie=!1,we=0,C=!1,re=null,S=new Map,U=new Set,k=(e,t)=>v.get(e)?.store.deliver?.({code:null,n:null,seq:null,through:null,retryAfter:null,client:y,...t});function j(e){let t=S.get(e);return t||S.set(e,t={n:0,unsent:[],awaiting:[],framed:0}),t}function qe(e,t){!e.adopted||t.through<e.adopted.through||(t.adopted=e.adopted.rev,e.adopted=null)}function m(e,t){let n=v.get(e)?.store;return n?n.pendingEntries().filter(o=>o.id>t.framed):[]}function le(e,t){let n=v.get(e)?.store;if(!n)return;let o=new Set(n.pendingEntries().map(s=>s.id));t.awaiting=t.awaiting.filter(s=>s===T||!s.entries||s.entries.some(i=>o.has(i.id)))}let Ce=e=>e.refused===!0&&!e.uncertain;function X(e,t,n=!0){let o=v.get(e)?.store;for(let s of t.awaiting)s===T&&(s.undecided=!0);n&&(C=!0),t.out=!0,de(e,{epoch:u,seq:g}),t.unsent=[],o?.setMode("file"),ne()}function P(){if(G!==null||Q||q)return;let e=te(),t=Math.max(0,ge+Qe-e,se-e);G=B(()=>{G=null,Ve()},t)}function Pe(){for(let[e,t]of S){if(!w.has(e)||ae(e))continue;let n=t.awaiting.find(o=>!o.sent);if(n)return{name:e,lane:t,frame:n}}for(let[e,t]of S){if(!t.unsent.length||!w.has(e)||ae(e))continue;let n=ee({name:e,n:t.n+1,ops:[],epoch:u}),o=0;for(;o<t.unsent.length&&o<Oe;){let r=ee(t.unsent[o].op)+1;if(o&&n+r>Y)break;n+=r,o++}let s=t.unsent.splice(0,o),i={n:++t.n,ops:s.map(r=>r.op),entries:s,first:s[0].id,through:s[s.length-1].id,seq:null,sent:!1,receiptGeneration:N,blockeditorGeneration:F};return qe(t,i),t.framed=Math.max(t.framed,i.through),t.awaiting.push(i),{name:e,lane:t,frame:i}}return null}async function Ve(){if(Q||q||!M||!$||z===null)return;let e=Pe();if(!e)return;let{name:t,lane:n,frame:o}=e;S.delete(t),S.set(t,n);let s=u;o.epoch=s,o.client=y,o.sentOn=D,o.sent=!0,k(t,{phase:"sent",n:o.n,first:o.first,through:o.through}),o.refused=!1,Q=!0,T=o,ge=te();let i;try{i=await b.send(y,{name:t,n:o.n,ops:o.ops,epoch:s,...z!==void 0&&{conn:z},...o.receiptGeneration!==null&&{receiptGeneration:o.receiptGeneration},...o.blockeditorGeneration!==null&&Ae.test(t)&&{blockeditorGeneration:o.blockeditorGeneration},...o.adopted&&{adopted:o.adopted},...Ae.test(t)&&n.compaction?.v===1&&{compaction:1}})}catch{i=null}Q=!1,T=null,!q&&(o.undecided?Ye(t,n,o,i||{status:0}):s===u&&n.awaiting.includes(o)&&ze(t,n,o,i||{status:0}),P())}function Ye(e,t,n,{status:o,body:s}){if(delete n.undecided,!t.awaiting.includes(n))return;if((s?.stale===!0||Re(o)||o>=400&&o<500&&!_e(o))&&!n.uncertain){n.refused=!0,n.sent=!1,n.seq=null,n.epoch!==u&&(n.receiptGeneration=N),n.epoch!==u&&(n.blockeditorGeneration=F);return}if(!w.has(e)){o>=200&&o<300&&Number.isInteger(s?.seq)&&!s?.stale?n.seq=s.seq:(n.uncertain=!0,n.uncertainSince??=n.sentOn);return}t.awaiting.splice(t.awaiting.indexOf(n),1);let r=v.get(e)?.store;r?.rebase(r.authoritative,{source:"state",through:n.through,cause:"decided"})}function ve(){for(let[e,t]of S){if(!w.has(e))continue;let n;for(;t.awaiting.length&&t.awaiting[0].seq!==null&&t.awaiting[0].seq<=g;)n=t.awaiting.shift().through;if(n===void 0)continue;let o=v.get(e)?.store;o?.rebase(o.authoritative,{source:"state",through:n,cause:"settled"})}}function ze(e,t,n,{status:o,body:s,retryAfter:i}){if(o>=200&&o<300){if(W=L,s?.stale){n.sent=!1,n.refused=!0,s.epoch!==u?a():P();return}if(s?.epoch&&s.epoch!==u){a();return}n.seq=Number.isInteger(s?.seq)?s.seq:null,k(e,{phase:"landed",n:n.n,seq:n.seq,through:n.through}),ve();return}if(_e(o)){if(n.sent=!1,k(e,{phase:"retry",code:s?.code??(o===0?"offline":o===429?"rate-limited":"server"),n:n.n,through:n.through,retryAfter:i??null}),Re(o)?n.refused=!0:(n.uncertain=!0,n.uncertainSince??=n.sentOn),o===503&&s?.code==="not-connected"){z=null,a();return}if(o===503&&s?.code==="busy"){k(e,{phase:"left",code:"busy",n:n.n,through:n.through}),console.warn(`clay.live("${e}"): the room is full, so it stays at save speed for now`),w.delete(e),X(e,t),B(a,(i>0?i:60)*1e3);return}if(n.uncertain&&n.sentOn!==D){a();return}se=te()+(i>0?i*1e3:W),W=Math.min(W*2,ce);return}if(en.has(o)){k(e,{phase:"refused",code:"revoked",n:n.n,through:n.through}),n.uncertain||(n.refused=!0),ue();return}let r=s?.error||s?.code||`status ${o}`;if(o===404){k(e,{phase:"left",code:"no-store",n:n.n,through:n.through}),console.warn(`clay.live("${e}"): the room has no such store, so it stays at save speed (${r})`),n.refused=!0,w.delete(e),X(e,t,!1);return}if(t.awaiting.splice(t.awaiting.indexOf(n),1),o===413&&!s?.code&&n.entries?.length>1&&Y>Ne){Y=Ne,console.warn(`clay.live("${e}"): the host takes smaller updates, so they go in frames of ${Y} bytes`),t.unsent.unshift(...n.entries),n.adopted&&(t.adopted={rev:n.adopted,through:n.through}),t.framed=n.first-1;return}let c=v.get(e)?.store,I=s?.code??(o===413&&n.entries?.length===1?"too-large":"refused");k(e,{phase:"refused",code:I,n:n.n,from:n.first,through:n.through,...s?.code==="receipt-expired"&&{ops:n.ops}}),console.warn(`clay.live("${e}"): the host refused an update, so it was undone (${r})`),c?.rebase(c.authoritative,{source:"state",drop:n.first===void 0?void 0:[n.first,n.through],through:n.first===void 0?n.through:void 0,cause:"refused"}),s?.code==="receipt-expired"&&a()}function Ue(e){g=e.seq,e.from==="compactor"&&(se=0,G!==null&&H(G),G=null,P());let t=v.get(e.name)?.store;if(!t||U.has(e.name))return;if(!w.has(e.name)){C=!0;return}let n=t.checkOps(e.ops);if(!n){a();return}let o,s=e.from===y;if(s){let i=j(e.name),r=i.awaiting.findIndex(c=>c.n===e.n);r>=0&&(o=i.awaiting[r].through,k(e.name,{phase:"echoed",n:e.n,seq:e.seq,through:o}),i.awaiting.splice(0,r+1))}t.rebaseOps(n,{source:s?"state":"remote",through:o,frame:{seq:e.seq,from:e.from,n:e.n,ops:e.ops}}),v.get(e.name).last=e.seq,ne(),e.checkpoint===!0&&Te(),ve()}function be(e){if(!(q||!e||!Number.isInteger(e.seq))){if(!$){A.push(e),A.length>me&&A.shift();return}if(e.epoch!==u){A.push(e),a();return}if(!(e.seq<=g)){if(e.seq!==g+1){A.push(e),a();return}Ue(e)}}}function Xe(e,t){let n=t.seen?t.seen[y]??0:null,o=[],s=[];for(let i of e)n!==null&&i.n<=n||K(t.saved,i.n)?s.push(...i.entries.map(r=>r.id)):i.sent&&i===T?(i.undecided=!0,o.push(i)):Ce(i)?o.push(i):s.push(...i.entries.map(r=>r.id));return{resend:o,dropIds:s}}function Je(e,t,n,o){let s=De(e);if(!s.length)return!1;if(!o){let i=new Set;for(let r of t.awaiting)if(K(n.saved,r.n))for(let c of r.entries??[])i.add(c.id);if(s.every(r=>i.has(r)))return!1}return je(e,s)?!0:(le(e,t),!1)}function ye(e,t=0){if(q||!e||typeof e.epoch!="string")return;if(Z++,e.epoch===u&&Number.isInteger(e.seq)&&e.seq<g){Se();return}let n=e.epoch!==u;pe=Number.isInteger(e.provenanceVersion)?e.provenanceVersion:0,N=Number.isSafeInteger(e.receiptGeneration)?e.receiptGeneration:null;let o=F;F=typeof e.blockeditorTransition?.id=="string"?e.blockeditorTransition.id:null;let s=F!==o,i=!1;C=!1,u=e.epoch,g=Number.isInteger(e.seq)?e.seq:0,V=e.writer??null,"conn"in e&&(z=e.conn);let r=e.stores||{};w=new Set(Object.keys(r));for(let d of U)w.delete(d);let c=!1,I=!1;for(let[d,x]of v){if(U.has(d))continue;let f=r[d],l=j(d);le(d,l);let Le=l.room;if(l.room=!!f,l.compaction=f?.compaction??null,!f){l.out||(Le&&s&&k(d,{phase:"left",code:"no-store"}),X(d,l,!1)),l.after!==void 0&&t>=l.after&&(l.after=void 0,l.deferred=!1,he(d));continue}let ke=l.after!==void 0&&t<l.after;if(ke||Je(d,l,f,n||l.stale===!0)){w.delete(d),l.deferred=!0,n&&(l.stale=!0),ke&&(I=!0),c=!0;continue}let Ie=n||l.stale===!0;l.deferred=!1,l.stale=!1,l.after=void 0;let He=x.store.handle.status.mode==="file";l.out=!1,x.store.setMode("fast"),x.last=Number.isInteger(f.last)?f.last:0,x.landed=Number.isInteger(f.landed)?f.landed:0;let xe=[];if(!Ie&&N!==null){let O=f.seen?.[y];l.awaiting=l.awaiting.filter(h=>K(f.saved,h.n)||O!==void 0&&h.n<=O||h.seq!==null&&h.seq<=g||(h.receiptGeneration??0)===N?!0:(xe.push(...h.entries.map(p=>p.id)),k(d,{phase:"refused",code:"receipt-expired",n:h.n,from:h.first,through:h.through,ops:h.ops}),console.warn(`clay.live("${d}"): the room retired an update receipt, so the update was not replayed. Check the saved value before restoring it.`),!1))}if(Ie){let{resend:O,dropIds:h}=Xe(l.awaiting,f);for(let E of O)E.undecided||(E.sent=!1,E.seq=null,E.receiptGeneration=N,E.blockeditorGeneration=F);l.awaiting=O,x.store.rebase(f.value,{source:"state",dropIds:h,room:{seq:g,fresh:!0,moves:e.moves?.[d]??null,floor:Number.isInteger(f.floor)?f.floor:null,compaction:l.compaction}}),l.unsent=m(d,l)}else{let O=f.seen?f.seen[y]:void 0,h=[],E=[...xe];for(let p of l.awaiting)K(f.saved,p.n)?E.push(...p.entries.map(J=>J.id)):p===T?h.push(p):p.seq!==null&&p.seq<=g||O!==void 0&&p.n<=O?E.push(...p.entries.map(J=>J.id)):p.seq!==null?h.push(p):!p.uncertain||O!==void 0||p.uncertainSince===D?(p.sent=!1,h.push(p)):E.push(...p.entries.map(J=>J.id));l.awaiting=h,x.store.rebase(f.value,{source:"state",dropIds:E,room:{seq:g,fresh:!1,moves:e.moves?.[d]??null,floor:Number.isInteger(f.floor)?f.floor:null,compaction:l.compaction}}),He&&(l.unsent=m(d,l),i=!0)}he(d)}c&&(C=!0),(n||i)&&$e(u),ne(),fe(),Se(),I&&a()}function Se(){$=!0;let e=A.filter(t=>t.epoch===u&&t.seq>g).sort((t,n)=>t.seq-n.seq);A=[];for(let t of e)be(t);P()}async function a(){if(q)return;if(oe){ie=!0;return}oe=!0,ie=!1,$=!1;let e={connection:D,stateCount:Z,read:++we},t=null,n=typeof AbortController=="function"?new AbortController:null,o=new Promise(s=>{_=B(()=>{_=null,n?.abort(),s(null)},We)});try{t=await Promise.race([b.fetchState(y,u!==null&&g>0&&!C?{epoch:u,seq:g}:null,n?{signal:n.signal}:{}),o])}catch{}if(_!==null&&H(_),_=null,oe=!1,!q){if(e.connection!==D||ie){M&&a();return}if(e.stateCount!==Z){if($)return;t=null}if(t&&typeof t.epoch=="string"){R=L,ye(t,e.read);return}if(t&&nn.has(t.status)){ue();return}if(t&&t.status===503){let s=t.code==="busy";for(let[i,r]of v)r.store.handle.status.mode==="fast"&&(k(i,{phase:"left",code:s?"busy":"unavailable"}),console.warn(`clay.live("${i}"): the host has no room for this document now, so it stays at save speed for now`),X(i,j(i)));if(w=new Set,!M)return;s||t.retryAfter>0?(R=L,B(a,(t.retryAfter>0?t.retryAfter:60)*1e3)):(B(a,R),R=Math.min(R*2,ce));return}M&&(B(a,R),R=Math.min(R*2,ce))}}function ue(){if(!q){q=!0,G!==null&&H(G),G=null,_!==null&&H(_),_=null,re?.();for(let[e,t]of v){let n=S.get(e);n?.out||(n?X(e,n):(de(e,{epoch:u,seq:g}),t.store.setMode("file")))}Be()}}let Ke={open(e){y=e.clientId,M=!0,D++,a()},close(){M=!1,D++,$=!1,A=[]},frame:be,state(e){C&&e&&!("moves"in e)?a():ye(e)},writer(e){if(!(!e||e.epoch!==u)){if(V=e.writer??null,e.landed&&typeof e.landed=="object"){Z++;for(let[t,n]of Object.entries(e.landed)){let o=v.get(t);o&&Number.isInteger(n)&&(o.landed=n,k(t,{phase:"checkpointed",seq:n}))}Fe()}fe()}}};return{start(){!re&&!q&&(re=b.start(Ke))},local(e,t,n){if(q||u===null||!w.has(e))return;let o=j(e),s=n-t.length+1;t.forEach((i,r)=>o.unsent.push({id:s+r,op:i})),P()},abandon(e){if(U.has(e))return;U.add(e),w.delete(e);let t=j(e);t.awaiting=t.awaiting.filter(n=>n===T),t.unsent=[],t.adopted=null},adopted(e,t,n){if(q||!w.has(e))return;let o=j(e),s=o.awaiting.find(i=>!i.sent&&i.through>=n);s?s.adopted=t:o.adopted={rev:t,through:n}},release(e,{read:t=!1}={}){if(q)return;let n=j(e);if(n.deferred||t){n.after=we+1,u!==null&&M&&a();return}u!==null&&w.has(e)&&(le(e,n),n.unsent=m(e,n),P())},framed(e){return S.get(e)?.n??0},pendingFrames(e,t,{reserve:n=!1}={}){let o=S.get(e);if(n&&o&&y&&u===t?.epoch){let c=m(e,o);for(;c.length;){let I=ee({name:e,n:o.n+1,ops:[],epoch:u}),d=0;for(;d<c.length&&d<Oe;){let l=ee(c[d].op)+1;if(d&&I+l>Y)break;I+=l,d++}let x=c.splice(0,d),f={n:++o.n,ops:x.map(l=>l.op),entries:x,first:x[0].id,through:x[x.length-1].id,seq:null,sent:!1,refused:!0,epoch:u,client:y,receiptGeneration:N,blockeditorGeneration:F};qe(o,f),o.awaiting.push(f),o.framed=f.through}o.unsent=[]}let s=new Set(v.get(e)?.store.pendingEntries().map(c=>c.id)??[]),i=[],r=!0;for(let c of o?.awaiting??[]){let I=c.entries.filter(d=>s.has(d.id));if(I.length){if(I.length!==c.entries.length||c.epoch!==t?.epoch||!c.client){r=!1;continue}i=Ee(i,[[c.client,[[c.n,c.n]]]])}}return{frames:i,complete:r}},captured(e,t,n){let o=S.get(e);if(!o||!t||t.epoch!==u)return[];let s=Ge(n),i=[];return o.awaiting=o.awaiting.filter(r=>{let c=r.epoch===t.epoch&&(Me(s,r.client,r.n)||r.seq!==null&&r.seq<=t.seq);return c&&i.push(...r.entries.map(I=>I.id)),!c}),i},refresh(){u!==null&&M&&a()},storeOpened(){u!==null&&M&&a()},roomBound(e){return!q&&S.get(e)?.room===!0},isWriter(){return V!==null&&V===y},get status(){return{connected:M,synced:$,epoch:u,seq:g,writer:V,clientId:y,stopped:q,provenanceVersion:pe,receiptGeneration:N}},stop:ue}}export{Ze as FRAME_BYTES,Oe as MAX_OPS,Qe as MIN_GAP_MS,Ne as OLD_FRAME_BYTES,L as RETRY_MS,We as STATE_TIMEOUT_MS,sn as createFastLane};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d,b as c,c as o,d as n}from"./c-TWCXBWS3.js";import{a as u}from"./c-VKEDWYDF.js";import{f as a}from"./c-
|
|
1
|
+
import{a as d,b as c,c as o,d as n}from"./c-TWCXBWS3.js";import{a as u}from"./c-VKEDWYDF.js";import{f as a}from"./c-EDE45NM7.js";import{b as l,r as b}from"./c-PWJSJEJU.js";var r="[editmode\\:contenteditable]";function m(){b(e=>{e.querySelectorAll(r).forEach(t=>{n(t),o(t,l(t)??t)})})}function s(){a&&u(()=>{p()})}function p(e=document){e.querySelectorAll(r).forEach(t=>{d(t);let i=t.getAttribute("inert-contenteditable")??t.getAttribute("contenteditable")??c(t,"inert-contenteditable")??"true",f=i.toLowerCase();t.setAttribute("contenteditable",["","true","false","plaintext-only"].includes(f)?i:"true"),t.removeAttribute("inert-contenteditable")})}function y(){document.querySelectorAll(r).forEach(e=>{n(e),o(e)})}function S(){m(),s()}export{r as a,p as b,y as c,S as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as g,f as h}from"./c-TRS6TM6O.js";import{d as m}from"./c-
|
|
1
|
+
import{e as g,f as h}from"./c-TRS6TM6O.js";import{d as m}from"./c-6IJEVE6B.js";import"./c-QQFHEODI.js";import"./c-EDE45NM7.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import{b as f}from"./c-CYWLPPUS.js";import"./c-U4NTUVDZ.js";import"./c-HA6INT6J.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var v="clay.undo",S=1,x="conflict",N="text",k="undo";function R(){let e=f.local.get(k);return Number.isFinite(e?.count)&&e.count>0?e.count:0}function _(e){e>0?f.local.set(k,{count:e,at:Date.now()}):f.local.remove(k)}function T(){return(globalThis.window?.clay??globalThis.clay)?.recovery??null}var y=null;function p(){let e=T();if(!e||typeof e.register!="function")return null;if(y?.service===e)return y.channel;try{y={service:e,channel:e.register({channel:v,version:S})}}catch{return null}return y.channel}var O=(e,t)=>`refused:${e}:${t}`;function D(e){if(e==null||typeof document>"u")return null;let t=globalThis.CSS?.escape?globalThis.CSS.escape(String(e)):String(e).replace(/["\\]/g,"\\$&");try{return document.querySelector(`[data-id="${t}"]`)}catch{return null}}function E(){let t=(globalThis.window?.clay??globalThis.clay)?.conflicts;return typeof t?.contextFor=="function"?t:null}function A({id:e=null}={}){let t=e==null?null:String(e),r=E();return(r?r.contextFor({source:"undo",id:t,element:D(t)},null):null)??{kind:null,id:t,label:null,field:null}}function C(e){return e.map(t=>h(A(t)))}async function F(e,t,r){let n;try{n=await e.list()}catch{return}if(n?.ok){for(let o of n.records)if(!(o.key!==t||String(o.id)===String(r)))try{await e.dismiss(o.id,{revision:o.revision})}catch{}}}var w=Promise.resolve();function H(e,t){let r=w.then(()=>I(e,t));return w=r.catch(()=>{}),r}async function I(e,t){let r=p();if(!r)return{ok:!1,code:"unavailable"};let n=null;try{n=e?.describe?.(t?.entryId)??null}catch{n=null}if(!n)return{ok:!1,code:"unknown-entry"};let o=n.refused&&typeof n.refused=="object"?n.refused:{},c=t?.direction??o.direction??null,i=(Array.isArray(o.targets)?o.targets:[]).map(l=>({id:l?.id==null?null:String(l.id),kind:l?.kind==null?null:String(l.kind)})),s=O(n.id??t?.entryId,c),a=g({label:n.label??null,direction:c,code:t?.code??o.code??null,targets:i,context:C(i),steps:n.steps??[]},[],""),u;try{u=r.stage({key:s,kind:x,baseEtag:m()??null,base:null,payload:a})}catch(l){return console.error("clayjs: the refused step could not be kept for a later reload; it is still in this tab's history",l),{ok:!1,code:"error"}}let d=await r.flush();return d?.ok&&(await F(r,s,u.id),await b()),d?.ok?d:{ok:!1,code:d?.code||"error"}}async function K({key:e,label:t=null,context:r=null,payload:n=null}={}){let o=p();if(!o)return{ok:!1,code:"unavailable"};let c=e==null?"":String(e);if(!c)return{ok:!1,code:"invalid"};let i=n&&typeof n=="object"?n:{},s=g({...i,label:t,context:h(r)},[],"");try{o.stage({key:`app:${c}`,kind:typeof i.text=="string"?N:x,payload:s})}catch(u){return console.error("clayjs: the app's recovery copy could not be kept; it is still in this tab only",u),{ok:!1,code:"error"}}let a=await o.flush();return a?.ok&&await b(),a}async function b(){let e=p();if(!e)return{ok:!0,records:[]};let t=await e.list();return t?.ok&&_(Array.isArray(t.records)?t.records.length:0),t}async function q(e,{revision:t}={}){let r=p();if(!r)return{ok:!1,code:"unavailable"};let n=await r.dismiss(e,{revision:t});if(n?.ok)try{await b()}catch{}return n}export{v as UNDO_CHANNEL,x as UNDO_KIND,N as UNDO_TEXT,S as UNDO_VERSION,A as contextForTarget,q as dismissKept,K as keep,H as keepRefusal,b as kept,R as pendingUndo};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import{A as ee,D as oe,G as te,H as re,I as ne,i as J}from"./c-TGIMBAWE.js";import"./c-WNOLMHI2.js";import"./c-LS7IVQVW.js";import"./c-NEQRFC4O.js";import{a as X}from"./c-4PO3YGDC.js";import"./c-PZ4XEPUP.js";import"./c-JRKY44DK.js";import"./c-GO635CRU.js";import"./c-V2V5FKXX.js";import"./c-7K4SCQB7.js";import"./c-WMRJKQ2V.js";import{A as Q,F as Z,d as z,y as K}from"./c-OH2FPYSY.js";import"./c-SFKI6OLM.js";import"./c-Q3XOWZEV.js";import{b as Y}from"./c-QY7F6EN6.js";import{a as G,b as H}from"./c-RETTCOWO.js";import"./c-RHMPKZZ7.js";import"./c-57XDY6HC.js";import"./c-I2SCCUEW.js";import"./c-PWJSJEJU.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var le="Work from an earlier session could not be put back. Read it, download it, or recover it as a copy.",pe=`
|
|
2
|
+
:host { font: inherit !important; color: inherit !important; }
|
|
3
|
+
.blockeditor-recovery-root { display: contents; }
|
|
4
|
+
.blockeditor-recovery { position: fixed; right: 16px; bottom: 16px; z-index: 20; min-height: 36px; padding: 0 14px; font: inherit; font-size: 14px; color: var(--blockeditor-ink); background: var(--blockeditor-pop-bg); border: 1px solid var(--blockeditor-chrome-line-rest); border-radius: 999px; cursor: pointer; }
|
|
5
|
+
.blockeditor-recovery[hidden], .blockeditor-recovery-panel[hidden] { display: none; }
|
|
6
|
+
.blockeditor-recovery-panel { position: fixed; right: 16px; bottom: 64px; z-index: 21; width: min(420px, calc(100vw - 32px)); max-height: 60vh; overflow-y: auto; color: var(--blockeditor-ink); background: var(--blockeditor-pop-bg); border: 1px solid var(--blockeditor-chrome-line-rest); border-radius: var(--blockeditor-chrome-radius); padding: 8px; box-sizing: border-box; }
|
|
7
|
+
.blockeditor-recovery-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 6px 8px; font-weight: 600; }
|
|
8
|
+
.blockeditor-recovery-note { margin: 0 6px 8px; font-size: 13px; opacity: .72; }
|
|
9
|
+
.blockeditor-recovery-failure { margin: 0 6px 8px; font-size: 13px; color: var(--blockeditor-warn, #b25b00); }
|
|
10
|
+
.blockeditor-recovery-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; min-height: 44px; padding: 8px 6px; border-top: 1px solid var(--blockeditor-chrome-line-rest); }
|
|
11
|
+
.blockeditor-recovery-meta { grid-column: 1; font-size: 12px; opacity: .72; }
|
|
12
|
+
.blockeditor-recovery-text { grid-column: 1; overflow-wrap: anywhere; white-space: pre-wrap; }
|
|
13
|
+
.blockeditor-recovery-row button, .blockeditor-recovery-head button { grid-column: 2; grid-row: 1 / span 2; min-height: 36px; padding: 0 12px; font: inherit; font-size: 14px; color: inherit; background: transparent; border: 1px solid var(--blockeditor-chrome-line-rest); border-radius: var(--blockeditor-chrome-radius); cursor: pointer; }
|
|
14
|
+
.blockeditor-recovery-row.is-busy button { opacity: .6; cursor: progress; }
|
|
15
|
+
@media (max-width: 560px) {
|
|
16
|
+
.blockeditor-recovery { top: 12px; bottom: auto; min-height: 44px; }
|
|
17
|
+
.blockeditor-recovery-panel { left: 0; right: 0; bottom: 0; width: 100%; max-height: 70vh; border-radius: var(--blockeditor-chrome-radius) var(--blockeditor-chrome-radius) 0 0; }
|
|
18
|
+
.blockeditor-recovery-row button, .blockeditor-recovery-head button { min-height: 44px; }
|
|
19
|
+
}
|
|
20
|
+
`,ie=280,u=(c,n,t,d={})=>{let s=c.createElement(n);t&&(s.className=t);for(let[x,g]of Object.entries(d))s.setAttribute(x,g);return s},ue=c=>Object.keys(c).sort((n,t)=>{let d=typeof c[n]?.pos=="string"?c[n].pos:"",s=typeof c[t]?.pos=="string"?c[t].pos:"";return d!==s?d<s?-1:1:n<t?-1:n>t?1:0});function fe(c){let n=ue(c??{}),t=new Map(n.map(s=>[s,Q()])),d=K(null,null,n.length);return n.map((s,x)=>{let g=c[s],l=typeof g?.parent=="string"?t.get(g.parent)??null:null;return{...g,id:t.get(s),pos:d[x],parent:l}})}function he(c){let n=[];for(let t of fe(c)){let d=null;try{d=Z(z,t.id,t)}catch{d=null}!d&&typeof t.c=="string"&&t.c&&(d=z.nodes.paragraph.create({id:t.id,pos:t.pos,parent:t.parent},z.text(t.c))),d&&n.push(d)}return n}function ye(c,n){if(!c||!c.state)return{ok:!1,code:"no-editor"};let t=he(n??{});if(!t.length)return{ok:!1,code:"nothing-to-copy"};let d=c.state,s=d.tr.insert(d.doc.content.size,G.Fragment.from(t));return s.setSelection(H.Selection.near(s.doc.resolve(s.doc.content.size-1))),c.dispatch(s.scrollIntoView()),{ok:!0,ids:t.map(x=>x.attrs.id)}}var ce=(c,n)=>{let t=u(c,"div","blockeditor-recovery-text");return t.textContent=n.length>ie?`${n.slice(0,ie)}\u2026`:n,t};async function be(c){try{return await navigator.clipboard.writeText(c),!0}catch{}let n=globalThis.document?.createElement("textarea");if(!n)return!1;n.value=c,n.style.setProperty("position","fixed","important"),n.style.setProperty("opacity","0","important"),globalThis.document.body?.append(n),n.select();let t=!1;try{t=globalThis.document.execCommand?.("copy")===!0}catch{}return n.remove(),t}function Ee({mount:c,getView:n=()=>null,getJournal:t=()=>null,service:d=globalThis.window?.clay?.recovery??null,isCurrent:s=()=>!0,onCopied:x=()=>{},onCovered:g=()=>{}}={}){let l=c.ownerDocument,b=u(l,"button","blockeditor-recovery",{type:"button","aria-haspopup":"dialog","aria-expanded":"false"}),p=u(l,"div","blockeditor-recovery-panel",{role:"dialog","aria-label":"Recover work"});b.hidden=!0,p.hidden=!0;let $=u(l,"div","blockeditor-recovery-root");$.append(b,p);let de=Y({name:"blockeditor-recovery",content:$,css:[pe],parent:c}),m=[],f=[],k=null,C=new Set,I=new Set,E=null,v=null,L=!1,_=()=>m.length+f.length,se=()=>{if(E)return E;try{E=ee(d)}catch{E=null}return E},j=()=>{if(v)return v;try{v=re({channel:te(d),key:t()?.key??""})}catch{v=null}return v},T=()=>{p.hidden=!0,b.setAttribute("aria-expanded","false")},M=async()=>{let e=[];for(let r of m)e.push({id:r.id,kind:"recovered-page",name:r.message,yours:r.text,now:"",sentence:r.message});let o="Text typed while composing never reached the page.";for(let r of f)e.push({id:r.id,kind:"composing",name:"Typed text",yours:r.text,now:"",sentence:o});await X({html:null,edits:e})||(k="That download could not be made."),w()};async function O(e){if(!e||I.has(e.id)||C.has(e.id))return{ok:!1,code:"busy"};I.add(e.id),k=null,w();try{if(!s())return{ok:!1,code:"stale"};let o=t(),r=o?.channel??null,i=se(),a=await oe({channel:r,copies:i,source:{key:o?.key??"",id:e.id,revision:e.revision},insert:async()=>{if(!s())throw new Error("stale");let h=n();if(!h)throw new Error("no-editor");let y=o?.next?o.next():null,B=e.blocks??J({capsule:e.capsule,batches:e.batches??[]}),U=ye(h,B);if(!U.ok)throw new Error(U.code);if(!y)throw new Error("no-journal");let D=await y;if(!D)throw new Error("not-stored");return{key:o?.key??"",id:D.id,revision:D.revision}}});return!a.ok&&!s()?{ok:!1,code:"stale"}:(a.ok?(C.add(e.id),x(e,a)):a.code==="insert-failed"?k="That copy could not be stored on this device. It is still here to try again.":a.code==="already-copied"?(C.add(e.id),k="This work was already recovered as a copy."):a.code==="covered"?g(e):a.code!=="stale"&&a.code!=="busy"&&(k="Recovery is unavailable here. Download the copy instead."),a)}finally{I.delete(e.id),L||w()}}async function V(e){if(!e||!v)return{ok:!1,code:"unavailable"};let o=f.find(r=>r.id===e.id);if(!o)return{ok:!1,code:"unknown"};try{let r=await v.channel.dismiss(o.id,{revision:o.revision});return r?.ok&&(f=f.filter(i=>i.id!==o.id)),w(),r}catch{return{ok:!1,code:"error"}}}let S=(e,o)=>{let r=u(l,"button","",{type:"button"});return r.textContent=e,r.addEventListener("click",o),r};function w(){p.replaceChildren();let e=u(l,"div","blockeditor-recovery-head");e.append(l.createTextNode("Recover work")),e.append(S("Download",M));let o=S("Close",()=>{T(),b.focus()});e.append(o);let r=u(l,"p","blockeditor-recovery-note");if(r.textContent=le,p.append(e,r),k){let i=u(l,"p","blockeditor-recovery-failure");i.textContent=k,p.append(i)}for(let i of m){let a=u(l,"div","blockeditor-recovery-row",{"data-capsule":String(i.id)});I.has(i.id)&&a.classList.add("is-busy");let h=u(l,"div","blockeditor-recovery-meta");h.textContent=`${i.message}${C.has(i.id)?" \xB7 Recovered as a copy":""}`;let y=S("Recover as a copy",()=>O(i));y.disabled=I.has(i.id)||C.has(i.id),a.append(h,ce(l,i.text||"(no text)"),y),p.append(a)}for(let i of f){let a=u(l,"div","blockeditor-recovery-row",{"data-composing":i.blockId}),h=u(l,"div","blockeditor-recovery-meta");h.textContent="Text typed while composing. It never reached the page.",a.append(h,ce(l,i.text));let y=u(l,"div","");y.append(S("Copy",async()=>{await be(i.text)||(k="Could not copy. Select the text instead."),w()}),S("Dismiss",()=>V(i))),a.append(y),p.append(a)}}let W=()=>_()?(p.hidden=!1,b.setAttribute("aria-expanded","true"),w(),p.querySelector("button")?.focus(),!0):!1;b.addEventListener("click",()=>p.hidden?W():T()),p.addEventListener("keydown",e=>{e.key==="Escape"&&(e.stopPropagation(),T(),b.focus())});let A=new Map,F=e=>{let r=e?.target?.closest?.("[data-id]")??null;return{blockId:r?.getAttribute?.("data-id")??null,text:r?.textContent??""}},R=e=>{let o=F(e);o.blockId&&(A.set(o.blockId,o.text),j()?.keep(o))},N=e=>{let o=F(e),r=A.get(o.blockId);A.delete(o.blockId);let i=j();if(!i)return;let a=t(),h=o.text||r||"",y=a?.covers?a.covers(o.blockId,h):!1;i.clear({blockId:o.blockId,text:h,covered:y}).then(B=>{B?.ok&&P()},()=>{})};function ae(e){return e?(e.addEventListener("compositionstart",R),e.addEventListener("compositionupdate",R),e.addEventListener("compositionend",N),()=>{e.removeEventListener("compositionstart",R),e.removeEventListener("compositionupdate",R),e.removeEventListener("compositionend",N)}):()=>{}}async function P(){let e=j();if(!e||L)return f;let o=null;try{o=await e.list()}catch{o=null}return L||(f=o?.ok?ne(o.records):[],q({rows:m,refreshText:!1})),f}function q({rows:e=m,refreshText:o=!0}={}){m=(e||[]).map(i=>({...i}));let r=_();return b.hidden=r===0,b.textContent=`Recover work (${r})`,r?p.hidden||w():T(),o&&P(),m}return{open:W,close:T,download:M,recover:O,dismiss:V,refresh:P,watch:ae,update:q,get count(){return _()},get rows(){return m},get journaled(){return f},destroy(){L=!0,de.remove(),v=null,E=null}}}export{le as REVIEW_TEXT,fe as copyBlocks,he as copyNodes,Ee as createRecoveryReview,ye as insertCopy};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{G as x,c as b,r as f,t as m,v as h,w as k}from"./c-HTLYXCUH.js";import"./c-4ASQPRQL.js";import"./c-GQ6F6IDK.js";import{b as c,d as S}from"./c-I2SCCUEW.js";import"./c-5VYOWDTI.js";import"./c-6Q6RGFBF.js";import"./c-SKMIR5HQ.js";import"./c-WYFDLITL.js";import"./c-UGHH4MB3.js";import"./c-LA2BW7UY.js";import{m as s,p as D,q as y,r as E}from"./c-MFOSMAVM.js";import"./c-LD6UVV5R.js";import"./c-PGSBXHUE.js";import"./c-6IJEVE6B.js";import"./c-QQFHEODI.js";import"./c-IJUK2GPW.js";import"./c-EDE45NM7.js";import"./c-BPF2NSPV.js";import"./c-P7KNDG34.js";import"./c-CYWLPPUS.js";import"./c-U4NTUVDZ.js";import"./c-PWJSJEJU.js";import"./c-XQXZAO7N.js";import"./c-S7LK4KUE.js";import"./c-VG5XIN4T.js";import"./c-2YYDMLNZ.js";import"./c-HA6INT6J.js";import"./c-ICMAOOGK.js";import"./c-WRBKEJD4.js";import"./c-VHNSBD2M.js";var O=15e3,M=Symbol("the barrier deadline passed"),A=2,e=(i,r={})=>({ok:!1,code:i,...r});async function I(i,r){let u=null,l=new Promise(a=>{u=setTimeout(()=>a(M),Math.max(0,r-Date.now()))});try{return await Promise.race([Promise.resolve(i),l])}finally{clearTimeout(u)}}async function _({generation:i=m(),keepalive:r=!1,timeoutMs:u=O,operation:l=null}={}){let a=l?null:D("mode");if(!l&&!a)return e("busy");let n=Date.now()+u,d=h(i),g=new AbortController;try{for(let w=0;;w++){if(i!==m())return e("stale-document");if(Date.now()>=n)return e("timeout");let P={permit:d,deadline:n,keepalive:r,signal:g.signal,timeoutMs:Math.max(0,n-Date.now())},t=await I(S(P),n);if(t===M)return e("timeout",{pending:c()});if(!t.ok)return f()?e("conflict",{pending:t.pending}):s()?e("save-unknown",{pending:t.pending}):e("pending-input",{pending:t.pending});if(t.pending.length)return e("pending-input",{pending:t.pending});if(f())return e("conflict");if(s())return e("save-unknown");let o;try{o=await x({keepalive:r,timeoutMs:Math.max(0,n-Date.now()),permit:d})}catch(p){return p?.state==="conflict"?e("conflict"):p?.state==="blocked"?e("pending-input",{pending:c()}):s()?e("save-unknown"):p?.timedOut||Date.now()>=n?e("timeout"):e("save-failed")}if(o.state!=="clean"&&o.state!=="saved")return e("save-failed");if(f())return e("conflict");if(s())return e("save-unknown");let v=c();if(v.length)return e("pending-input",{pending:v});if(b()){if(w+1<A&&Date.now()<n)continue;return e("pending-input")}return{ok:!0,state:o.state,etag:o.etag??null}}}finally{g.abort(),k(d),a&&y(a)}}export{D as claimOperation,E as operationKind,y as releaseOperation,_ as runSaveBarrier};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t=[];function r(o){t.push(o)}function d(o,l,c=null,n=null){for(let p of t)try{let e={captureId:l??null,...c?{artifact:c}:{},...n?{siteData:n}:{}};p(o,e)}catch(e){console.error("clayjs: onSaveAccepted hook failed:",e)}}export{r as a,d as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as L}from"./c-NEQRFC4O.js";import{E as C,F as D,H as F,W as H,aa as I,ea as k,fa as E,ha as j,ia as P,ja as B,na as v,t as q}from"./c-OH2FPYSY.js";import{a as A,e as T}from"./c-RETTCOWO.js";var N="blockeditor-adopt",z=(d,e)=>E(d)===E(e),M=({id:d,parent:e,...n})=>({...n,parent:e??null});function Y(d,e,n=k(d)){let i=n,r=new Map(i.map(o=>[o.id,o])),c=new Map(e.map(o=>[o.id,o])),l=new Map,s=new Map;for(let o of e){let w=r.get(o.id);w?z(M(w),M(o))||l.set(o.id,o):s.set(o.id,o)}let a=i.filter(o=>!c.has(o.id)).map(o=>o.id),u=e.filter(o=>r.has(o.id)).map(o=>o.id),p=i.filter(o=>c.has(o.id)).map(o=>o.id),h=u.some((o,w)=>o!==p[w]);return!l.size&&!s.size&&!a.length&&!h?null:{edited:l,created:s,deleted:a,order:e.map(o=>o.id),reordered:h,base:r}}function y(d,e,n,i=r=>r){let r=d.map(s=>({id:s.id,pos:e?.[s.id]?.pos??null})),c=F(r,n),l={};return d.forEach((s,a)=>{l[s.id]=i({...s,pos:c[a]?c[a].pos:r[a].pos})}),l}function Q(d,e){let{id:n,t:i,...r}=d,c={t:i,pos:e?.pos??null};if(Object.assign(c,r),i==="table"&&!r.rows.length&&r.cols.length&&(r.rows=[{id:`r-${n}`,cells:{}}]),i==="table"&&(c.cols=y(r.cols,e?.cols,"c",({id:l,...s})=>s),c.rows=y(r.rows,e?.rows,"r",({id:l,cells:s,pos:a})=>({pos:a,cells:s}))),i==="board"){c.columns=y(r.columns,e?.columns,"c",({id:a,...u})=>u);let l={},s=new Map;for(let a of r.cards)(s.get(a.col)??s.set(a.col,[]).get(a.col)).push(a);for(let a of s.values())Object.assign(l,y(a,e?.cards,"k",({id:u,...p})=>p));c.cards=l}return c}var R=(d,e,n)=>{let{t:i,pos:r,c,m:l,...s}=n,a=typeof c=="string"&&c?q(d,c,I(l,c.length),d.nodes.opaque_block):null;return d.nodes.opaque_block.create({id:e,pos:r,raw:{t:i,...s}},a)},U=d=>Object.fromEntries(Object.entries(d).map(([e,n])=>{if(n.t!=="opaque_block")return[e,n];let{t:i,raw:r,...c}=n,{t:l,...s}=r??{};return[e,{t:l??"paragraph",pos:n.pos,...s,...c}]}));function b(d,e){let n=null;return d.forEach((i,r)=>{!n&&i.attrs.id===e&&(n={node:i,pos:r})}),n}function V(d,e){let n=d.filter(s=>e.has(s)),i=[],r=[],c=new Array(n.length).fill(-1);n.forEach((s,a)=>{let u=e.get(s),p=0,h=i.length;for(;p<h;){let o=p+h>>1;i[o]<u?p=o+1:h=o}p>0&&(c[a]=r[p-1]),i[p]=u,r[p]=a});let l=new Set;for(let s=r[i.length-1]??-1;s>=0;s=c[s])l.add(n[s]);return l}function W(d,e,n){let{node:i,pos:r}=b(d.doc,e),c={...n.attrs,id:i.attrs.id,pos:i.attrs.pos};if(i.isTextblock&&n.isTextblock&&n.type.validContent(i.content)){(i.type!==n.type||!z(i.attrs,c))&&d.setNodeMarkup(r,n.type,c);let l=b(d.doc,e).node,s=l.content.findDiffStart(n.content);if(s==null)return;let{a,b:u}=l.content.findDiffEnd(n.content),p=s-Math.min(a,u);p>0&&(a+=p,u+=p),d.replace(r+1+s,r+1+a,new A.Slice(n.content.cut(s,u),0,0));return}d.replaceWith(r,r+i.nodeSize,n.type.create(c,n.content,n.marks))}function Z(d,e){if(!e)return null;let n=d.schema,i=d.doc,r=U(C(i)),c=d.tr,l=new Map(k(r).map(t=>[t.id,t])),s={};for(let t of[...e.edited.keys(),...e.deleted]){let f=e.base.get(t),m=l.get(t);f&&m&&!z(M(f),M(m))&&(s[t]=r[t])}let a=(t,f)=>{let m=Q(f,r[t]);return Object.hasOwn(H,f.t)?D(n,t,m):R(n,t,m)},u=e.base.size?[]:Object.keys(r).filter(t=>r[t].t==="paragraph"&&!r[t].c&&!e.order.includes(t));for(let t of e.deleted){let f=b(c.doc,t);f&&c.delete(f.pos,f.pos+f.node.nodeSize)}let p=[];c.doc.forEach(t=>p.push(t.attrs.id));let h=new Set(e.order),o=e.order.filter(t=>!e.deleted.includes(t));e.reordered?p.forEach((t,f)=>{if(h.has(t))return;let m=p.slice(0,f).reverse().find(g=>o.includes(g));o.splice(m?o.indexOf(m)+1:0,0,t)}):(o=p.slice(),e.order.forEach((t,f)=>{if(!e.created.has(t)||o.includes(t))return;let m=f-1;for(;m>=0&&!o.includes(e.order[m]);)m--;o.splice(m>=0?o.indexOf(e.order[m])+1:0,0,t)}));let w=new Map(p.map((t,f)=>[t,f]));o=o.filter(t=>w.has(t)||e.edited.has(t)||e.created.has(t));let O=V(o,w),_=new Map;for(let t of p.slice().reverse()){if(O.has(t)||!o.includes(t))continue;let f=b(c.doc,t);_.set(t,f.node),c.delete(f.pos,f.pos+f.node.nodeSize)}let S=0;for(let t of o){if(O.has(t)){let g=b(c.doc,t);S=g.pos+g.node.nodeSize;continue}let f=e.edited.get(t)||e.created.get(t),m=f?a(t,f):_.get(t);c.insert(S,m),S+=m.nodeSize}for(let[t,f]of[...e.edited,...e.created])O.has(t)&&W(c,t,a(t,f));for(let t of u){let f=b(c.doc,t);f&&c.doc.childCount>1&&c.delete(f.pos,f.pos+f.node.nodeSize)}return c.docChanged?T.closeHistory(c).setMeta(N,{displaced:s}):null}function $(d,e,n=""){let i=k(d),r=new Map(i.map(s=>[s.id,s])),c=s=>typeof d[s]?.artifact?.fallbackHtml=="string"?d[s].artifact.fallbackHtml:"",l=e.createElement("article");return l.innerHTML=B(i,{fallbackOf:c,clean:P(e)}),v(l,{seed:n,known:r})}function ee(d,e){let n=d.getAttribute("data-rev"),i=L(e),r=k(i),c=new Map(r.map(h=>[h.id,h])),l=n??"",s=v(d,{seed:l,known:c}),a=j(s);if(n&&a===n)return{kind:"untouched"};let u=j(r);if(n&&u!==n)return{kind:"unbased",A:a,R:n,T:u};if(!n){let h=new Set(s.map(o=>o.id));if(!r.every(o=>h.has(o.id)))return{kind:"unbased",A:a,R:n,T:u}}let p=$(i,d.ownerDocument,l);return{kind:"adopt",base:i,parsed:s,baseItems:p,A:a}}export{N as a,Y as b,Q as c,U as d,Z as e,$ as f,ee as g};
|