@heycys/gallery 0.1.0 → 0.1.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/THIRD-PARTY-NOTICES.md +51 -1
- package/browser/editor/components/callout/index.mjs +40 -15
- package/browser/editor/components/columns/page.mjs +41 -28
- package/browser/editor/components/details/index.mjs +2 -1
- package/browser/editor/components/dialog/index.mjs +2 -1
- package/browser/editor/components/dialog/page.mjs +0 -18
- package/browser/editor/components/divider/index.mjs +1 -1
- package/browser/editor/components/figure/page.mjs +10 -1
- package/browser/editor/components/file/page.mjs +2 -2
- package/browser/editor/components/flowchart/add.mjs +2 -2
- package/browser/editor/components/heading/index.mjs +2 -0
- package/browser/editor/components/heading/page.mjs +6 -0
- package/browser/editor/components/highlight/index.mjs +4 -20
- package/browser/editor/components/icons.mjs +5 -2
- package/browser/editor/components/image/page.mjs +2 -2
- package/browser/editor/components/installed/index.mjs +71 -25
- package/browser/editor/components/installed/page.mjs +122 -21
- package/browser/editor/components/kit.mjs +3 -0
- package/browser/editor/components/media/page.mjs +44 -14
- package/browser/editor/components/pages.mjs +2 -2
- package/browser/editor/components/registry.mjs +56 -30
- package/browser/editor/components/section/index.mjs +2 -1
- package/browser/editor/components/set-apart.mjs +24 -0
- package/browser/editor/components/table/index.mjs +5 -3
- package/browser/editor/components/table/page.mjs +29 -18
- package/browser/editor/page/annotate/anchors.mjs +4 -3
- package/browser/editor/page/annotate/index.mjs +61 -34
- package/browser/editor/page/autosave.mjs +50 -4
- package/browser/editor/page/beside.mjs +5 -5
- package/browser/editor/page/block-menu/colors.mjs +3 -1
- package/browser/editor/page/block-menu/index.mjs +8 -6
- package/browser/editor/page/blocks.mjs +16 -7
- package/browser/editor/page/caret.mjs +4 -1
- package/browser/editor/page/changes/bar.mjs +102 -0
- package/browser/editor/page/changes/ghost.mjs +206 -0
- package/browser/editor/page/changes/gone-words.mjs +94 -0
- package/browser/editor/page/changes/index.mjs +447 -0
- package/browser/editor/page/changes/words.mjs +27 -0
- package/browser/editor/page/clipboard/import/colors.mjs +3 -3
- package/browser/editor/page/clipboard/index.mjs +32 -13
- package/browser/editor/page/clipboard/own/blocks.mjs +14 -5
- package/browser/editor/page/clipboard/own/describe.mjs +16 -7
- package/browser/editor/page/clipboard/own/export.mjs +6 -6
- package/browser/editor/page/clipboard/own/selection.mjs +2 -2
- package/browser/editor/page/clipboard/own/writers.mjs +0 -11
- package/browser/editor/page/columns/index.mjs +1 -1
- package/browser/editor/page/commit.mjs +19 -4
- package/browser/editor/page/conflicts.mjs +6 -26
- package/browser/editor/page/convert.mjs +8 -7
- package/browser/editor/page/core.mjs +55 -17
- package/browser/editor/page/drag/index.mjs +40 -24
- package/browser/editor/page/drag/preview.mjs +9 -4
- package/browser/editor/page/editor.mjs +70 -15
- package/browser/editor/page/emoji-picker/emoji-tab.mjs +22 -13
- package/browser/editor/page/emoji-picker/grid.mjs +7 -5
- package/browser/editor/page/emoji-picker/icon-tab.mjs +4 -4
- package/browser/editor/page/emoji-picker/icons.mjs +0 -1
- package/browser/editor/page/emoji-picker/index.mjs +11 -9
- package/browser/editor/page/emoji-picker/styles.mjs +161 -2
- package/browser/editor/page/emoji-picker/support.mjs +6 -4
- package/browser/editor/page/emoji-picker/upload.mjs +12 -11
- package/browser/editor/page/fills.mjs +5 -3
- package/browser/editor/page/fold/index.mjs +348 -0
- package/browser/editor/page/fold/rule.mjs +125 -0
- package/browser/editor/page/folded.mjs +23 -0
- package/browser/editor/page/format-bar/bar.mjs +2 -1
- package/browser/editor/page/format-bar/index.mjs +1 -1
- package/browser/editor/page/geometry.mjs +8 -6
- package/browser/editor/page/handle/index.mjs +17 -6
- package/browser/editor/page/hints/index.mjs +1 -1
- package/browser/editor/page/insert/index.mjs +30 -17
- package/browser/editor/page/long-runs.mjs +75 -0
- package/browser/editor/page/look.mjs +15 -3
- package/browser/editor/page/margin.mjs +45 -24
- package/browser/editor/page/menu.mjs +69 -25
- package/browser/editor/page/merge.mjs +24 -0
- package/browser/editor/page/notices.mjs +1 -1
- package/browser/editor/page/offered.mjs +1 -1
- package/browser/editor/page/outline/folds.mjs +11 -10
- package/browser/editor/page/outline/index.mjs +131 -45
- package/browser/editor/page/outline/list.mjs +23 -11
- package/browser/editor/page/outline/read.mjs +1 -1
- package/browser/editor/page/outline/strip.mjs +7 -1
- package/browser/editor/page/panel.mjs +5 -4
- package/browser/editor/page/resize/index.mjs +1 -1
- package/browser/editor/page/selection/delete.mjs +8 -6
- package/browser/editor/page/selection/index.mjs +10 -3
- package/browser/editor/page/session.mjs +54 -3
- package/browser/editor/page/table/cell-bar.mjs +4 -1
- package/browser/editor/page/table/cells.mjs +1 -1
- package/browser/editor/page/table/icons.mjs +1 -1
- package/browser/editor/page/table/index.mjs +13 -8
- package/browser/editor/page/table/widths.mjs +9 -4
- package/browser/editor/page/text-select/index.mjs +18 -3
- package/browser/editor/page/tooltip.mjs +1 -1
- package/browser/editor/page/type-grid.mjs +4 -3
- package/browser/editor/page/typing/code-edges.mjs +63 -17
- package/browser/editor/page/typing/index.mjs +12 -6
- package/browser/editor/page/typing/leave.mjs +1 -1
- package/browser/shared/annotations.mjs +8 -10
- package/browser/shared/code-folds.mjs +5 -1
- package/browser/shared/colors.mjs +15 -13
- package/browser/shared/component-catalog.mjs +24 -10
- package/browser/shared/components/callout.mjs +4 -2
- package/browser/shared/components/index.mjs +61 -7
- package/browser/shared/components/installed.mjs +75 -5
- package/browser/shared/components/page.mjs +10 -1
- package/browser/shared/components/table.mjs +1 -1
- package/browser/shared/components/text.mjs +2 -2
- package/browser/shared/document-look.mjs +178 -0
- package/browser/shared/emoji/data/LICENSE-lucide.txt +43 -0
- package/browser/shared/emoji/data/README.md +4 -2
- package/browser/shared/emoji/data/categories.json +1 -1
- package/browser/shared/emoji/data/keywords-en.json +1 -1
- package/browser/shared/emoji/data/keywords-zh.json +1 -1
- package/browser/shared/emoji/data/names.json +1 -1
- package/browser/shared/emoji/data/positions.json +1 -1
- package/browser/shared/emoji/data/twemoji-index.json +1 -1
- package/browser/shared/emoji/data/twemoji-svg.bin +0 -0
- package/browser/shared/emoji/data.mjs +10 -12
- package/browser/shared/emoji/emoji.mjs +8 -7
- package/browser/shared/emoji/icon-value.mjs +4 -3
- package/browser/shared/html-tree.mjs +11 -5
- package/browser/shared/i18n/en.mjs +67 -8
- package/browser/shared/long-runs.mjs +39 -0
- package/browser/shared/new-names.mjs +5 -2
- package/browser/shared/outline.mjs +194 -0
- package/browser/shared/preferences.mjs +10 -4
- package/browser/shared/session.mjs +5 -4
- package/browser/shared/workspace-look.mjs +91 -0
- package/browser/shared/zoom.mjs +5 -5
- package/dist/chunk-3HIRPVLU.mjs +2 -0
- package/dist/chunk-4FS7Z7WR.mjs +2 -0
- package/dist/{chunk-LHTFLRB6.mjs → chunk-5MHMDLZD.mjs} +2 -2
- package/dist/{chunk-YXAUQPVK.mjs → chunk-5ZKJ3H4P.mjs} +3 -3
- package/dist/{chunk-ZBIM6ARY.mjs → chunk-64K7IPLO.mjs} +55 -16
- package/dist/{chunk-QYKCJ7FG.mjs → chunk-6QXGZM36.mjs} +1 -1
- package/dist/chunk-6RGJOMJP.mjs +16 -0
- package/dist/{chunk-EUX7IC5J.mjs → chunk-7DTINW6U.mjs} +2 -2
- package/dist/{chunk-6CYG3Z4V.mjs → chunk-AJ73XJF3.mjs} +1 -1
- package/dist/chunk-AUZGSZJH.mjs +13 -0
- package/dist/{chunk-7QQBR7PB.mjs → chunk-BFE45AKL.mjs} +1 -1
- package/dist/chunk-BGGDRNYQ.mjs +10 -0
- package/dist/{chunk-L4DVONOG.mjs → chunk-BXO2ZY5P.mjs} +1 -1
- package/dist/chunk-CEH4MRCC.mjs +2 -0
- package/dist/chunk-CY2FNNAB.mjs +16 -0
- package/dist/{chunk-LC7YNQFG.mjs → chunk-DFUDV4LX.mjs} +1 -1
- package/dist/chunk-DKXG4XDG.mjs +2 -0
- package/dist/chunk-E7LWZRXY.mjs +4 -0
- package/dist/chunk-EZQ34M3F.mjs +124 -0
- package/dist/chunk-FDLXYYG4.mjs +4 -0
- package/dist/chunk-FUKQNOQS.mjs +9 -0
- package/dist/{chunk-DB4WKGYF.mjs → chunk-GB5SOYQJ.mjs} +2 -2
- package/dist/{chunk-ACOPDCNB.mjs → chunk-IVDLMMBD.mjs} +1 -1
- package/dist/chunk-JPOSLGOC.mjs +6 -0
- package/dist/chunk-JVHHHGEA.mjs +3 -0
- package/dist/chunk-L3QKH4OK.mjs +26 -0
- package/dist/{chunk-B3VTYBYR.mjs → chunk-LCTHTZIL.mjs} +2 -2
- package/dist/chunk-LEF6DRCK.mjs +59 -0
- package/dist/chunk-LS4F7JUM.mjs +2 -0
- package/dist/chunk-NO5NJCHO.mjs +2 -0
- package/dist/{chunk-UNUEWH4S.mjs → chunk-NQPVAU63.mjs} +1 -1
- package/dist/chunk-O35FIXRB.mjs +2 -0
- package/dist/chunk-PL6GHLGD.mjs +15 -0
- package/dist/{chunk-G7TOXONE.mjs → chunk-QJIR2BLP.mjs} +1 -1
- package/dist/chunk-QUPLVPB2.mjs +7 -0
- package/dist/chunk-R7BNENLY.mjs +4 -0
- package/dist/chunk-S6O4UHLC.mjs +2 -0
- package/dist/{chunk-HMHK3EQ6.mjs → chunk-SGJWQKEI.mjs} +1 -1
- package/dist/chunk-SYGN7GLU.mjs +2 -0
- package/dist/chunk-TYK6VNAB.mjs +10 -0
- package/dist/{chunk-EVJ3BX3M.mjs → chunk-U6KNPJPR.mjs} +1 -1
- package/dist/{chunk-YZ5Z6H4W.mjs → chunk-UALRNVSE.mjs} +1 -1
- package/dist/chunk-UMHUSOPJ.mjs +2 -0
- package/dist/chunk-V3HXVQEM.mjs +2 -0
- package/dist/{chunk-UXUK4PMC.mjs → chunk-V5JTW2LH.mjs} +1 -1
- package/dist/chunk-V5VXUJKG.mjs +2 -0
- package/dist/chunk-VBXMADMP.mjs +2 -0
- package/dist/chunk-VNV55RUA.mjs +2 -0
- package/dist/chunk-VPD2PS35.mjs +2 -0
- package/dist/chunk-W3BGBJQW.mjs +2 -0
- package/dist/chunk-W4VKN3GF.mjs +7 -0
- package/dist/chunk-W5BXXPDJ.mjs +3 -0
- package/dist/{chunk-Z52HTUW7.mjs → chunk-XNROSH2T.mjs} +2 -2
- package/dist/chunk-XUNHRCOG.mjs +6 -0
- package/dist/{chunk-6U2SLSDN.mjs → chunk-Y6RLRPG3.mjs} +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/server.mjs +1 -1
- package/dist/worker.mjs +1 -1
- package/kit/math.js +18 -2
- package/kit/report.css +248 -137
- package/kit/runtime.js +126 -51
- package/kit/tables.js +51 -1
- package/kit/ui.js +97 -0
- package/package.json +1 -1
- package/release.json +8 -8
- package/sdk/doc-kit.d.ts +9 -3
- package/skill/SKILL.md +22 -10
- package/skill/references/building-components.md +46 -6
- package/skill/references/example-report.html +1 -1
- package/skill/references/writing-html.md +4 -4
- package/skill/sdk/doc-kit.d.ts +9 -3
- package/web/assets/index-Bh74DfsV.css +1 -0
- package/web/assets/index-UW0RyFFt.js +13 -0
- package/web/index.html +2 -2
- package/browser/editor/components/callout/page.mjs +0 -13
- package/dist/chunk-2PBALTR3.mjs +0 -57
- package/dist/chunk-3LA3EMDE.mjs +0 -15
- package/dist/chunk-5FRMCDPY.mjs +0 -16
- package/dist/chunk-5LEK2CBS.mjs +0 -2
- package/dist/chunk-5OFN5AHC.mjs +0 -2
- package/dist/chunk-5SIYS5HN.mjs +0 -2
- package/dist/chunk-5TEK3RAD.mjs +0 -2
- package/dist/chunk-7GHT2UCA.mjs +0 -15
- package/dist/chunk-ATCJYAR4.mjs +0 -2
- package/dist/chunk-C7HWOBIF.mjs +0 -2
- package/dist/chunk-E7VYDG2X.mjs +0 -2
- package/dist/chunk-FQGQH4KM.mjs +0 -2
- package/dist/chunk-GPF4YWWB.mjs +0 -9
- package/dist/chunk-GYQV7Y4J.mjs +0 -120
- package/dist/chunk-HQQMJCQJ.mjs +0 -10
- package/dist/chunk-IERUOGC3.mjs +0 -6
- package/dist/chunk-ITNLYXXV.mjs +0 -3
- package/dist/chunk-NFIBI4IP.mjs +0 -26
- package/dist/chunk-O52JMOCZ.mjs +0 -2
- package/dist/chunk-QMQUXTU4.mjs +0 -12
- package/dist/chunk-QVWVFC5K.mjs +0 -6
- package/dist/chunk-QZY6Q64C.mjs +0 -2
- package/dist/chunk-TDQP3DKQ.mjs +0 -10
- package/dist/chunk-V4CPWKMZ.mjs +0 -2
- package/dist/chunk-VACRB2NE.mjs +0 -3
- package/dist/chunk-W63L7367.mjs +0 -7
- package/dist/chunk-W7CXPCRV.mjs +0 -6
- package/dist/chunk-XINNG4F2.mjs +0 -4
- package/dist/chunk-YL2DPWVS.mjs +0 -4
- package/web/assets/index-B6Ai3wsa.js +0 -13
- package/web/assets/index-SYPC3EZy.css +0 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createRequire as __galleryRequire } from "node:module"; import { fileURLToPath as __galleryPath } from "node:url"; const require = __galleryRequire(import.meta.url); const __filename = __galleryPath(import.meta.url); const __dirname = __galleryPath(new URL(".", import.meta.url));
|
|
2
|
+
import{d as J,n as Ft,p as Ut}from"./chunk-W4VKN3GF.mjs";import{b as z,c as H,e as ot}from"./chunk-A55HN5OK.mjs";import{createHash as Qe}from"node:crypto";import{BLOCK_LEVEL as q}from"../browser/shared/html-tree.mjs";var at=t=>Qe("sha256").update(t).digest("hex").slice(0,16),R=t=>t.nodeName==="#text"&&!t.value.trim();function Nt(t,e){for(let s of t.childNodes??[]){if(s.tagName===e)return s;let o=s.tagName&&Nt(s,e);if(o)return o}return null}import{ATTRIBUTES as Cn,BOX_CLASSES as Sn,COMPONENT_ATTRIBUTES as En,COMPONENT_CLASSES as In,GROUPING as wn,IDENTITY as F,TOGGLES as An,UNIT_KINDS as Bn}from"../browser/editor/components/registry.mjs";import{attr as w,hasClass as Bt}from"../browser/shared/html-tree.mjs";import{idsNamed as _n}from"../browser/shared/copy-ids.mjs";import{DIALOG as Mn,PAGE as jn,SECTION as Rn,SHEETS as X,TABLE as De}from"../browser/editor/components/kit.mjs";import{matchesNode as et,partOf as It}from"../browser/shared/components/index.mjs";import{escapeMarkup as rt}from"../browser/shared/escape.mjs";import{imageFile as ts}from"../browser/shared/media.mjs";import{emptyFigure as es}from"../browser/editor/components/media/write.mjs";var ss=t=>typeof t=="string"&&t.length<=2e3&&/^https?:\/\/[^\s"<>]+$/.test(t),zt=(t,e)=>typeof t=="string"&&t.length<=e&&!/[\u0000-\u001f]/.test(t),Ht=t=>t.href===""&&!t.title&&!t.description&&!t.icon&&!t.cover&&t.caption==="",Gt=t=>t==null||ts(t),Kt={bookmark:{check:(t,{validLeaf:e})=>Ht(t)||ss(t.href)&&zt(t.title,300)&&zt(t.description??"",600)&&Gt(t.icon)&&Gt(t.cover)&&typeof t.caption=="string"&&(t.caption===""||e({tag:"figcaption"},t.caption)),write(t,e){if(Ht(t))return es("bookmark",e);let s=t.title.trim()||new URL(t.href).hostname,o=[`<span class="doc-bookmark-title">${rt(s)}</span>`,t.description?`<span class="doc-bookmark-description">${rt(t.description)}</span>`:"",`<span class="doc-bookmark-url">${t.icon?`<img class="doc-bookmark-icon" src="${t.icon}" alt="">`:""}<span class="doc-bookmark-href">${rt(t.href)}</span></span>`].join(""),a=t.cover?`<span class="doc-bookmark-cover"><img src="${t.cover}" alt=""></span>`:"",n=`<a class="doc-bookmark-card" href="${rt(t.href)}" target="_blank" rel="noopener noreferrer"><span class="doc-bookmark-text">${o}</span>${a}</a>`;return e.block(`<figure class="doc-bookmark"${e.id}>`,[n,`<figcaption>${t.caption}</figcaption>`],"</figure>")}}};import{BLOCK_TYPES as ns,sizeValue as os}from"../browser/editor/components/registry.mjs";import{LINE_START as Vt,lineStart as as}from"../browser/shared/code-lines.mjs";import{hasClass as qt}from"../browser/shared/html-tree.mjs";import{CODE_HEIGHT as $t,FOLDED_LINES as Xt,validFolded as rs,validLanguage as is}from"../browser/editor/components/code/index.mjs";var cs=(t,e,s,o,a="",n="",r="",l="")=>`<div class="${t.className}"${s?` data-language="${s}"`:""}${l?` ${Vt}="${l}"`:""}${r?` ${Xt}="${r}"`:""}${o?` style="${$t}: ${o}"`:""}${a}><div class="doc-code-title">${n}</div><pre><code>${e}</code></pre></div>`,ls=(t,e)=>t==="data-language"||t===Xt||t===Vt||t==="style"&&new RegExp(`^\\s*${$t}\\s*:[^;]*;?\\s*$`).test(e??""),fs=t=>typeof t=="string"&&t.length<=200&&!/[<>\n]|&(?!(amp|lt|gt|quot|#39);)/.test(t),ds=t=>(t.language===void 0||is(t.language))&&(t.folded===void 0||rs(t.folded))&&(t.height===void 0||os("code",$t,t.height)===t.height)&&(t.title===void 0||fs(t.title))&&(t.lineStart===void 0||typeof t.lineStart=="string"&&String(as(t.lineStart))===t.lineStart);function us(t){let{node:e}=t;if(t.tag!=="div"||t.nested||!qt(e,ns.code.className))return!1;let s=(a,n)=>{let r=a.childNodes??[],l=r.filter(u=>u.tagName);return l.length===n.length&&l.every((u,d)=>u.tagName===n[d])&&r.every(u=>u.tagName||!(u.value??"").trim())?l:null},o=s(e,["div","pre"]);return!!o&&qt(o[0],"doc-code-title")&&!!s(o[1],["code"])}var Yt={code:{fields:["language","folded","height","title","lineStart"],check:ds,leaf:(t,e,s)=>cs(t,e.html,e.language,e.height,s,e.title,e.folded,e.lineStart),written:us,attribute:ls}};import{sizeValue as ms}from"../browser/editor/components/registry.mjs";import{MIN_COLUMNS as ps,RATIO as Zt}from"../browser/editor/components/columns/index.mjs";var Jt={columns:{check:t=>t.children.length>=ps&&t.children.every(e=>e.type==="column")},column:{check:t=>t.ratio===void 0||ms("column",Zt,t.ratio)===t.ratio,write(t,e){let s=t.ratio===void 0?"":` style="${Zt}: ${t.ratio}"`;return e.block(`<div class="doc-column"${s}${e.id}>`,e.children(e.inner),"</div>")}}};var Qt={details:{empty:!0,check:(t,{validLeaf:e})=>t.title===""||e({tag:"span"},t.title),write(t,e){let s=e.inner===null?null:e.inner+e.step,o=e.block('<div class="doc-details-content">',e.children(s),"</div>",e.inner,s),a=t.classes?.length?` ${t.classes.join(" ")}`:"";return e.block(`<details class="doc-details${a}"${e.id}>`,[`<summary><span class="doc-details-summary-label">${t.title}</span></summary>`,t.children.length>0?o:'<div class="doc-details-content"></div>'],"</details>")}}};var te={dialog:{empty:!0,check(t,{usedIds:e}){return typeof t.id!="string"||!/^[A-Za-z][\w-]{0,63}$/.test(t.id)||e.has(t.id)?!1:(e.add(t.id),!0)},write(t,e){let s=t.children.length>0?e.block('<div class="doc-dialog-content">',e.children(e.deep(3)),"</div>",e.deep(2),e.deep(3)):'<div class="doc-dialog-content"></div>',o=e.block('<div class="doc-dialog-panel">',[s],"</div>",e.deep(1),e.deep(2));return e.block(`<dialog class="doc-dialog" id="${t.id}">`,[o],"</dialog>")}}};import{escapeAttribute as gs}from"../browser/shared/escape.mjs";import{embedFile as ee}from"../browser/shared/media.mjs";import{emptyFigure as hs}from"../browser/editor/components/media/write.mjs";import{FILE_SANDBOX as Ns,WEB_SANDBOX as $s}from"../browser/editor/components/embed/index.mjs";var bs=t=>typeof t=="string"&&t.length<=2e3&&/^https:\/\/[^\s"<>]+$/.test(t),se=t=>t.src===""&&t.height===void 0&&t.caption==="",ne={embed:{check:(t,{validLeaf:e})=>se(t)||(bs(t.src)||ee(t.src))&&(t.height===void 0||/^\d{2,4}px$/.test(t.height))&&typeof t.caption=="string"&&(t.caption===""||e({tag:"figcaption"},t.caption)),write(t,e){if(se(t))return hs("embed",e);let s=ee(t.src),o=s?/\.pdf$/i.test(t.src)?"":` sandbox="${Ns}"`:` sandbox="${$s}" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen`,a=`<iframe class="doc-embed-frame" src="${gs(t.src)}"${o} loading="lazy"></iframe>`,n=t.height?` style="--doc-embed-height: ${t.height}"`:"";return e.block(`<figure class="doc-embed${s?" doc-embed--file":""}"${n}${e.id}>`,[a,`<figcaption>${t.caption}</figcaption>`],"</figure>")}}};import{escapeMarkup as oe}from"../browser/shared/escape.mjs";import{assetFile as Os}from"../browser/shared/media.mjs";import{emptyFigure as xs}from"../browser/editor/components/media/write.mjs";var ae=t=>t.href===""&&t.name===""&&t.size===void 0&&t.caption==="",ks=t=>typeof t=="string"&&t.trim()!==""&&t.length<=120&&!/[\u0000-\u001f<>:"/\\|?*]/.test(t),re={file:{check:(t,{validLeaf:e})=>ae(t)||Os(t.href)&&ks(t.name)&&(t.size===void 0||/^\d+(\.\d)? (B|KiB|MiB|GiB)$/.test(t.size))&&typeof t.caption=="string"&&(t.caption===""||e({tag:"figcaption"},t.caption)),write(t,e){if(ae(t))return xs("file",e);let s=t.size?`<span class="doc-file-size">${t.size}</span>`:"",o=`<a class="doc-file-link" href="${t.href}" download="${oe(t.name)}"><span class="doc-file-name">${oe(t.name)}</span>${s}</a>`;return e.block(`<figure class="doc-file"${e.id}>`,[o,`<figcaption>${t.caption}</figcaption>`],"</figure>")}}};import{FLOW as Ts,FLOW_DIRECTION as ie,FLOW_RATIO as ce}from"../browser/editor/components/flowchart/index.mjs";import{START as Ls,validDirection as le,validStart as ys}from"../browser/editor/components/list/index.mjs";import{sizeValue as vs,TOGGLES as Cs}from"../browser/editor/components/registry.mjs";var fe={flowchart:{check:t=>(t.start===void 0||ys(t.start))&&(t.direction===void 0||le(t.direction))&&t.children.length>0,write:(t,e)=>e.block(`<ol class="${Ts}"${t.start?` ${Ls}="${t.start}"`:""}${t.direction?` ${ie}="${t.direction}"`:""}${e.id}>`,e.children(e.inner),"</ol>")},step:{check:t=>(t.classes===void 0||Array.isArray(t.classes)&&new Set(t.classes).size===t.classes.length&&t.classes.every(e=>(Cs.step??[]).includes(e)))&&(t.ratio===void 0||vs("step",ce,t.ratio)===t.ratio)&&(t.direction===void 0||le(t.direction))&&t.children.length>0,write(t,e){let s=t.classes?.length?` class="${t.classes.join(" ")}"`:"",o=t.direction?` ${ie}="${t.direction}"`:"",a=t.ratio===void 0?"":` style="${ce}: ${t.ratio}"`;return e.block(`<li${s}${o}${a}${e.id}>`,e.children(e.inner),"</li>")}}};import{SPAN as Ss,SPAN_SIZE as de,imageFile as ue}from"../browser/shared/media.mjs";import{emptyFigure as Es}from"../browser/editor/components/media/write.mjs";var Is=/^\d{1,3}(\.\d{1,3})?( \d{1,3}(\.\d{1,3})?){3}$/,me=t=>t.src===""&&t.caption===""&&t.span===void 0&&t.original===void 0&&t.classes===void 0,ws=t=>typeof t=="number"&&Number.isFinite(t)&&t>=de.min&&t<=de.max,pe={image:{check:(t,{validLeaf:e})=>me(t)||ue(t.src)&&typeof t.caption=="string"&&(t.caption===""||e({tag:"figcaption"},t.caption))&&(t.span===void 0||ws(t.span))&&(t.original===void 0||ue(t.original)&&typeof t.crop=="string"&&Is.test(t.crop)),write(t,e){if(me(t))return Es("image",e);let s=["doc-image",...t.classes??[]].join(" "),o=t.span===void 0?"":` style="${Ss}: ${Math.round(t.span*1e3)/1e3}"`,a=t.original===void 0?"":` data-original="${t.original}" data-crop="${t.crop}"`;return e.block(`<figure class="${s}"${o}${e.id}>`,[`<img src="${t.src}" alt=""${a}>`,`<figcaption>${t.caption}</figcaption>`],"</figure>")}}};ot();import{heldByNode as As,instanceSlots as Bs,isInstance as Ot,isSlot as _s,ownSlots as Ms,partOf as xt}from"../browser/shared/components/index.mjs";import{ATTRIBUTE as tt,DATA_MOST as js,NO_TEXT as Rs,PACKAGE_ID as ge,SCHEMA as he,SLOT as Ne,fitsDataScript as Ds,isDataScript as Ws,noDataPart as Ps,refusedInCopy as Fs,refusedInData as Us,schemaAhead as $e}from"../browser/shared/components/installed.mjs";import{attr as M,walk as be}from"../browser/shared/html-tree.mjs";var Q=(t,e)=>{for(let s=t.parentNode;s;s=s.parentNode)if(s===e)return!0;return!1},zs=t=>{let e=t.parentNode;for(;e&&!Ot(e);)e=e.parentNode;return e??null},kt=(t,e)=>zs(t)===e&&As(t)===e&&!_s(t);function bt(t,e){let o=Object.entries(e.get(M(t,tt))?.parts??{}).filter(([,{edit:a}])=>a==="data").map(([a,{at:n}])=>[a,xt(t,n).find(r=>r.sourceCodeLocation&&!Ot(r)&&kt(r,t))]).filter(([,a])=>a);return o.filter(([,a],n)=>!o.some(([,r],l)=>Q(a,r)||r===a&&l<n))}var Hs=new Set(["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"]),Gs="http://www.w3.org/1999/xhtml",Ks=t=>(t.content??t).childNodes;function Oe(t,e,s,o){let a=s;for(let n of Ks(t)){let r=n.sourceCodeLocation;if(r?.startOffset!==a)return!1;if(n.tagName){let{startTag:l,endTag:u}=r,d=Hs.has(n.tagName)||n.namespaceURI!==Gs&&e.startsWith("/>",r.endOffset-2);if(u?!Oe(n,e,l.endOffset,u.startOffset):!d)return!1}a=r.endOffset}return a===o}function qs(t,e,s){if(e.tagName==="script")return Ws(e.tagName,e.attrs)&&Ds(s);if(Ps(e.tagName))return!1;let{startTag:o,endTag:a}=e.sourceCodeLocation,n=t.slice(o.startOffset,o.endOffset),r=`${n}${s}${t.slice(a.startOffset,a.endOffset)}`,[l,...u]=H(e.parentNode,r,{sourceCodeLocationInfo:!0}).childNodes;if(u.length>0||l?.tagName!==e.tagName||l.sourceCodeLocation?.endOffset!==r.length||!l.sourceCodeLocation.endTag||!Oe(l,r,n.length,n.length+s.length))return!1;let d=!1;return be(l,m=>{d||=Us(m.tagName,m.attrs)}),!d}var Vs=(t,e)=>Object.values(e.get(M(t,tt))?.parts??{}).filter(({edit:s})=>s==="text"||s==="data").flatMap(({at:s})=>xt(t,s).filter(o=>kt(o,t))),xe={installed:{slots(t,e){let s=Vs(t,e);return Bs(t).filter(o=>!s.some(a=>Q(o,a)))},boxes(t,e){return this.slots(t,e).map(s=>({element:s,kind:"slot",key:M(s,Ne)}))},textParts(t,e){let s=e.get(M(t,tt));if($e(M(t,he),s?.schema))return[];let o=Object.values(s?.parts??{}).filter(({edit:r})=>r==="text"),a=bt(t,e).map(([,r])=>r),n=[...new Set(o.flatMap(({at:r})=>xt(t,r)))].filter(r=>r.sourceCodeLocation&&!Ot(r)&&!Rs.has(r.tagName)&&kt(r,t)).filter(r=>!a.some(l=>l===r||Q(r,l)||Q(l,r)));return n.filter(r=>!n.some(l=>Q(r,l))).map(r=>({kind:"installed",part:r}))},source({package:t,html:e,children:s,boxKeys:o},{packages:a,written:n}){if(typeof t!="string"||!ge.test(t))return null;let r=s!==void 0;if(r&&!(Array.isArray(s)&&Array.isArray(o)&&o.length===s.length))return null;let l=e===void 0?a.has(t)?Ut(a.get(t)):null:e,u=typeof l=="string"?Ft(l,t):null;if(!u)return null;let d=Ms(u.root),m=b=>!b.childNodes.every(S=>S.nodeName==="#text"&&!S.value.trim());if((e!==void 0||!r)&&d.some(m)||r&&!o.every(b=>d.some(S=>M(S,Ne)===b)))return null;if(e!==void 0){let b=!1;if(be({childNodes:[u.root]},S=>{b||=Fs(S.tagName,S.attrs)}),b)return null}let g=d.map(b=>b.sourceCodeLocation).sort((b,S)=>S.startOffset-b.startOffset).reduce((b,{startTag:S,endTag:y})=>b.slice(0,S.endOffset)+b.slice(y.startOffset),u.markup);return n(r?g:u.markup)},unwritten:({package:t,html:e},{packages:s})=>e===void 0&&ge.test(t)&&!s.has(t)?"no-package":"invalid",definition:(t,e)=>e.get(M(t,tt))?.definition,dataOf(t,e,s){let o=bt(e,s).filter(([,a])=>a.sourceCodeLocation.endTag);return o.length>0?Object.fromEntries(o.map(([a,n])=>[a,t.slice(n.sourceCodeLocation.startTag.endOffset,n.sourceCodeLocation.endTag.startOffset)])):null},rewrite(t,e,s,{packages:o}){let a=new Map(bt(e,o)),n=Object.keys(s),r=n.map(u=>s[u]);if($e(M(e,he),o.get(M(e,tt))?.schema)||n.length===0||!r.every(u=>typeof u=="string")||!n.every(u=>a.has(u))||r.reduce((u,d)=>u+Buffer.byteLength(d),0)>js||!n.every(u=>a.get(u).sourceCodeLocation.endTag&&qs(t,a.get(u),s[u])))return null;let l=t.includes(`\r
|
|
3
|
+
`)?`\r
|
|
4
|
+
`:`
|
|
5
|
+
`;return n.map(u=>{let{startTag:d,endTag:m}=a.get(u).sourceCodeLocation;return{start:d.endOffset,end:m.startOffset,text:s[u].replace(/\r?\n/g,l)}})}}};ot();import{IDENTITY as Xs}from"../browser/editor/components/registry.mjs";import{SHEETS as it,TABLE as ke}from"../browser/editor/components/kit.mjs";import{escapeAttribute as ct,escapeText as Te}from"../browser/shared/escape.mjs";import{isInstance as Ys,matchesNode as Tt}from"../browser/shared/components/index.mjs";import{attr as D}from"../browser/shared/html-tree.mjs";import{CHART_DATA as Zs,CHART_SOURCE as Le}from"../browser/shared/table-chart.mjs";import{freshPrefix as Js,referencedIds as Qs,rewrite as tn}from"../browser/shared/copy-ids.mjs";var ye=(t={})=>Object.entries(t).map(([e,s])=>s===""?` ${e}`:` ${e}="${ct(String(s))}"`).join(""),ft=(t,e)=>t[e-1]==="/"?e-1:e;function lt(t,e,s){let o=e;for(;o>0&&/\s/.test(t[o-1]);)o--;return{start:o,end:s}}function ya(t){let e=s=>s.nodeName==="#text"?s.value:(s.childNodes??[]).map(e).join("");return e(H(t)).replace(/\s+/g," ").trim()}function va(t,{from:e,to:s}){let a=ve(z(t,{sourceCodeLocationInfo:!0}))?.sourceCodeLocation;if(!a?.endTag||!e)return null;let n=t.slice(a.startTag.endOffset,a.endTag.startOffset),r=Te(e),l=n.indexOf(r);if(l<0||n.indexOf(r,l+1)>=0)return null;let u=a.startTag.endOffset+l;return{start:u,end:u+r.length,text:Te(s)}}function ve(t){for(let e of t.childNodes??[]){if(e.tagName==="title")return e;if(e.tagName==="body")continue;let s=e.tagName&&ve(e);if(s)return s}return null}function en(t){let e=[],s=0,o=null,a=0;for(let n=0;n<t.length;n++){let r=t[n];if(r==="&"){let l=/^&(#\d+|#x[\da-f]+|[a-z]\w*);/i.exec(t.slice(n));l&&(n+=l[0].length-1)}else o?r===o?o=null:r==="\\"&&n++:r==='"'||r==="'"?o=r:r==="("?s++:r===")"?s=Math.max(0,s-1):r===";"&&s===0&&(e.push(t.slice(a,n)),a=n+1)}return e.push(t.slice(a)),e.map(n=>n.trim()).filter(Boolean)}function vt(t,e){let s=en(t);for(let[o,a]of e){let n=s.findIndex(r=>r.slice(0,r.indexOf(":")).trim()===o);a===null?n>=0&&s.splice(n,1):n>=0?s[n]=`${o}: ${a}`:s.push(`${o}: ${a}`)}return s.join("; ")}var sn=new Set(["pre","textarea","script","style"]);function Ca(t){if(typeof t!="string"||!t.trim())return null;let s=H(t,{sourceCodeLocationInfo:!0}).childNodes.filter(u=>u.nodeName!=="#comment"&&!(u.nodeName==="#text"&&!u.value.trim())),[o,a]=s;if(s.length===2&&o.tagName==="button"&&Tt(o,it.tab)&&a.tagName&&a.sourceCodeLocation?.endTag&&D(o,it.tabKey)&&D(a,it.panelKey)===D(o,it.tabKey)){let u=o.sourceCodeLocation.endOffset;return{element:o,source:t.slice(0,u),panel:t.slice(u).replace(/^\s+/,""),kind:"tab"}}let n=s.at(-1),r=s.length===2?s[0]:null;if(!n?.tagName||!n.sourceCodeLocation?.startTag||s.length>2||r&&!(r.tagName&&Tt(r,ke.lead)&&Tt(n,ke.frame)))return null;let l=W(n);return{element:n,source:t,kind:l}}function nn(t){let e=[],s=o=>{for(let a of o.childNodes??[]){if(!a.tagName)continue;let n=D(a,"id");n&&e.push(n),s(a.tagName==="template"?a.content:a)}};return s(z(t)),e}var Sa=(t,e)=>`${Lt(t.slice(e.start,e.end),G(t,e.start),"")}
|
|
6
|
+
${Lt(t.slice(e.companion.start,e.companion.end),G(t,e.companion.start),"")}`;function Ea(t,e,{keys:s=null,taken:o=null}={}){let a=t.slice(e.start,e.end),n=[],r=H(a,{sourceCodeLocationInfo:!0}),l=[],u=y=>{for(let T of y.childNodes??[])T.tagName&&(l.push(T),u(T.tagName==="template"?T.content:T))};u(r);let d=Qs(l.flatMap(y=>y.attrs)),m=new Set(l.map(y=>D(y,"id")).filter(y=>y&&d.has(y))),g=new Map;if(m.size>0){let y=o??new Set(nn(t)),T=Js(y);for(let C of m)g.set(C,`${T}${C}`),y.add(`${T}${C}`)}let b=y=>{for(let T of y.childNodes??[])if(T.tagName){for(let C of[Xs,"id"]){let h=T.sourceCodeLocation?.attrs?.[C];h&&(C==="id"&&g.has(D(T,"id"))?n.push({start:h.startOffset,end:h.endOffset,text:`id="${ct(g.get(D(T,"id")))}"`}):n.push(lt(a,h.startOffset,h.endOffset)))}for(let{name:C,prefix:h,value:O}of g.size>0?T.attrs:[]){let p=h?`${h}:${C}`:C,i=tn(p,O,g),f=T.sourceCodeLocation?.attrs?.[p];i!==null&&f&&n.push({start:f.startOffset,end:f.endOffset,text:`${p}="${ct(i)}"`})}for(let C of[Zs,Le]){let h=T.sourceCodeLocation?.attrs?.[C],O=D(T,C);!h||!s||!Object.hasOwn(s,O)||(s[O]!==null?n.push({start:h.startOffset,end:h.endOffset,text:`${C}="${ct(s[O])}"`}):C===Le&&n.push(lt(a,h.startOffset,h.endOffset)))}b(T.tagName==="template"?T.content:T)}};b(r);let S=n.sort((y,T)=>T.start-y.start).reduce((y,{start:T,end:C,text:h=""})=>y.slice(0,T)+h+y.slice(C),a);return Lt(S,G(t,e.start),"")}function Lt(t,e,s){if(e===null||s===null||e===s||!t.includes(`
|
|
7
|
+
`))return t;let o=[],a=l=>{for(let u of l.childNodes??[]){if(!u.tagName)continue;let d=u.sourceCodeLocation;(sn.has(u.tagName)||Ys(u))&&d?.startTag&&d.endTag?o.push([d.startTag.endOffset,d.endTag.startOffset]):a(u.tagName==="template"?u.content:u)}};a(H(t,{sourceCodeLocationInfo:!0}));let n="",r=0;for(let l of t.split(/(?<=\n)/)){let u=o.some(([m,g])=>r>m&&r<=g),d=l===`
|
|
8
|
+
`||l===`\r
|
|
9
|
+
`;n+=r>0&&!u&&!d&&l.startsWith(e)?s+l.slice(e.length):l,r+=l.length}return n}function G(t,e){let s=t.slice(t.lastIndexOf(`
|
|
10
|
+
`,e-1)+1,e);return/^[ \t]*$/.test(s)?s:null}function on(t,e,s){let o=t.lastIndexOf(`
|
|
11
|
+
`,e-1)+1,a=t.indexOf(`
|
|
12
|
+
`,s),n=a<0?t.length:a+1;return/^[ \t]*$/.test(t.slice(o,e))&&/^[ \t]*\r?\n?$/.test(t.slice(s,n))?{start:o,end:n,text:""}:{start:e,end:s,text:""}}function Ia(t,e,s){let o=/^\s*(?=<\/li\s*>)/i.exec(t.slice(s,s+400));if(o)return{start:e-/\s*$/.exec(t.slice(Math.max(0,e-400),e))[0].length,end:s+o[0].length,text:""};let a=on(t,e,s);if(a.start===e&&a.end===s)return a;let n=/^[ \t]*\r?\n$/,r=t.indexOf(`
|
|
13
|
+
`,a.end),l=r>=0&&n.test(t.slice(a.end,r+1)),u=t.lastIndexOf(`
|
|
14
|
+
`,a.start-2)+1,d=a.start>0&&n.test(t.slice(u,a.start)),m=t.slice(0,e).trimEnd(),g=m.endsWith(">")?m.slice(m.lastIndexOf("<")):"",b=/^<[a-z]/i.test(g)&&!/\/\s*>$/.test(g)&&!yt.has(g.match(/^<([a-z0-9-]+)/i)?.[1].toLowerCase()),S=/^\s*<\//.test(t.slice(s,s+200));return l&&(d||b)?{...a,end:r+1}:d&&S?{...a,start:u}:a}import{CONTINUE as an,START as rn,validStart as cn}from"../browser/editor/components/list/index.mjs";var Ce={item:{children:(t,e)=>t.children.length>0&&t.children.every(s=>e(s,"nest")),write:(t,e)=>e.block(`<li${t.classes?.length?` class="${t.classes.join(" ")}"`:""}${ye(t.attributes)}${e.id}>${t.html}`,e.children(e.inner),"</li>")},numbers:{check:t=>(t.start===void 0||cn(t.start))&&(t.continue===void 0||t.continue===!0),write:(t,e)=>e.block(`<ol${t.start?` ${rn}="${t.start}"`:""}${t.continue?` ${an}`:""}${e.id}>`,e.children(e.inner),"</ol>")}};import{iconKind as ln}from"../browser/shared/emoji/icon-value.mjs";import{SHEETS_LABEL as fn}from"../browser/shared/components/sheets.mjs";var Se=/^[a-z0-9][a-z0-9_-]{0,63}$/i,dn=(t,e="")=>`<button class="doc-sheet-tab" type="button" data-sheet-tab="${t.sheet}"${t.icon?` data-tab-icon="${t.icon}"`:""}${e}>${t.title}</button>`,Ee={sheets:{check:t=>typeof t.name=="string"&&Se.test(t.name)&&t.children.length>=1&&t.children.every(e=>e.type==="tab")&&new Set(t.children.map(e=>e.sheet)).size===t.children.length,write(t,e){let s=e.inner===null?null:e.inner+e.step,o=fn[e.language],a=e.block(`<div class="doc-sheet-tabs" aria-label="${o}">`,t.children.map(r=>dn(r,e.idOf(r))),"</div>",e.inner,s),n=t.children.map(r=>r.children.length===0?`<div data-doc-sheet="${r.sheet}"></div>`:e.block(`<div data-doc-sheet="${r.sheet}">`,r.children.map(l=>e.render(l,s)),"</div>",e.inner,s));return e.block(`<section class="doc-sheet-shell" data-doc-sheets="${t.name}" aria-label="${o}"${e.id}>`,[a,...n],"</section>")}},tab:{empty:!0,check:t=>typeof t.title=="string"&&t.title.trim()!==""&&t.title.length<=200&&!/[<>\r\n]/.test(t.title)&&typeof t.sheet=="string"&&Se.test(t.sheet)&&(t.icon===void 0||ln(t.icon)==="emoji")}};import{COLUMN_WIDTH as On,NUMBERS as xn,tableTiling as kn,validTable as Tn}from"../browser/editor/components/table/index.mjs";import{CHART_SOURCE as Ln}from"../browser/shared/table-chart.mjs";import{widthHolder as yn}from"../browser/shared/table-slots.mjs";import{CELL_LOOKS as pn,COLUMN_WIDTH as Ae,validLook as gn,validWidth as hn}from"../browser/editor/components/table/index.mjs";import{tileSpans as Be}from"../browser/shared/table-slots.mjs";import{attr as St}from"../browser/shared/html-tree.mjs";function un(t,e){let s=t.slice(e.startOffset,e.endOffset),o=/^[^=\s]+\s*=\s*(["'])([\s\S]*)\1$/.exec(s);return o?{value:o[2],quote:o[1]}:{value:s.replace(/^[^=\s]+\s*=?\s*/,""),quote:'"'}}function mn(t,e,s){let o=ft(t,e.endOffset-1);for(;o-1>e.startOffset&&/\s/.test(t[o-1]);)o--;let a=[];for(let[n,r]of s){let l=e.attrs?.[n],u=l?un(t,l):null,d=typeof r=="function"?r(u):r,m=u&&typeof r=="function"?u.quote:'"',g=d===null?"":d===""&&typeof r!="function"?n:`${n}=${m}${d}${m}`;l&&d===null?a.push({...lt(t,l.startOffset,l.endOffset),text:g}):l?a.push({start:l.startOffset,end:l.endOffset,text:g}):d!==null&&a.push({start:o,end:o,text:` ${g}`})}return a}function Ie(t,e,s,o){let a=e.sourceCodeLocation.startTag,n=t.slice(a.startOffset,a.endOffset),r=mn(t,a,s).map((l,u)=>({...l,index:u}));for(let{start:l,end:u,text:d}of r.sort((m,g)=>g.start-m.start||g.index-m.index))n=n.slice(0,l-a.startOffset)+d+n.slice(u-a.startOffset);return o?n.replace(/^<\w+/,`<${o}`):n}function Et(t){let e=t?.tagName==="table"?t:t?.childNodes?.find(g=>g.tagName==="table"),s=g=>!!(g?.sourceCodeLocation?.startTag&&g.sourceCodeLocation.endTag),o=g=>g.childNodes.filter(b=>b.tagName),a=g=>g.childNodes.every(b=>b.tagName||R(b));if(!s(e)||!a(e))return null;let n=o(e);if(n.some(g=>!["thead","tbody","colgroup","caption"].includes(g.tagName)))return null;let r=n.filter(g=>g.tagName==="thead"),l=n.filter(g=>g.tagName==="tbody");if(r.length>1||l.length!==1||r.length===1&&n.indexOf(r[0])>n.indexOf(l[0]))return null;let u=g=>g.tagName==="tr"&&s(g)&&a(g)&&o(g).every(b=>(b.tagName==="td"||b.tagName==="th")&&s(b)&&V(b,"rowspan")!==null&&V(b,"colspan")!==null),d=[...r,...l];if(!d.every(g=>s(g)&&a(g)&&o(g).every(u)))return null;let m=d.flatMap(g=>o(g).map(b=>({node:b,head:g.tagName==="thead",cells:o(b)})));return Be(m.map(g=>({head:g.head,cells:g.cells.map(b=>[V(b,"rowspan"),V(b,"colspan")])})))?{table:e,head:r[0]??null,body:l[0],rows:m}:null}var _e=1e3;function V(t,e){let s=St(t,e);return s===void 0?1:/^\s*\d{1,4}\s*$/.test(s)&&Number(s)>=1&&Number(s)<=_e?Number(s):null}var we=t=>t===void 0||Number.isInteger(t)&&t>=1&&t<=_e,Ct=(t,e)=>t.slice(e.sourceCodeLocation.startTag.startOffset,e.sourceCodeLocation.startTag.endOffset),Nn=(t,e)=>t.slice(e.sourceCodeLocation.startTag.endOffset,e.sourceCodeLocation.endTag.startOffset),Me=(t,e)=>[...(t??"").split(/\s+/).filter(s=>s&&!pn.includes(s)),...e.split(" ").filter(Boolean)].join(" "),$n=(t,e)=>`${e>1?` colspan="${e}"`:""}${t>1?` rowspan="${t}"`:""}`,bn=(t,e,s,o,a,n,r)=>Ie(t,e,[...a!==void 0?[["class",l=>Me(l?.value,a)||null]]:[],...n!==void 0?[["style",l=>vt(l?.value??"",[[Ae,n]])||null]]:[],["scope",o],...r!==void 0?[["colspan",r[1]>1?String(r[1]):null],["rowspan",r[0]>1?String(r[0]):null]]:[]],s);function je(t,e,s,{validCell:o}){let a=Et(e);if(!a||!Array.isArray(s?.rows)||s.rows.length===0||s.rows.length>2e3)return null;let{table:n,rows:r}=a,l=new Set;if(!s.rows.every((c,N)=>c&&typeof c.head=="boolean"&&(N===0||!c.head||s.rows[N-1].head)&&(c.from===null||Number.isInteger(c.from)&&r[c.from])&&Array.isArray(c.cells)&&c.cells.length<=5e3&&c.cells.every(L=>{if(!L||!["td","th"].includes(L.tag)||![void 0,null,"row","col"].includes(L.scope)||L.look!==void 0&&!gn(L.look)||L.width!==void 0&&!hn(L.width)||!we(L.rowspan)||!we(L.colspan)||L.rowspan===void 0!=(L.colspan===void 0)||L.scope&&L.tag!=="th")return!1;if(L.from!==null){let[x,E]=Array.isArray(L.from)?L.from:[];if(!r[x]?.cells[E]||l.has(`${x}:${E}`))return!1;l.add(`${x}:${E}`)}else if(typeof L.html!="string")return!1;return L.html===void 0||typeof L.html=="string"&&L.html.length<=1e5&&(L.html===""||o(L.tag,L.html))}))||!s.rows.some(c=>!c.head))return null;let d=c=>c.rowspan!==void 0?[c.rowspan,c.colspan]:c.from===null?[1,1]:[V(r[c.from[0]].cells[c.from[1]],"rowspan"),V(r[c.from[0]].cells[c.from[1]],"colspan")],m=Be(s.rows.map(c=>({head:c.head,cells:c.cells.map(d)})));if(!m||s.rows.length*m.columns>5e3)return null;let g=r[0]?.node,b=g?G(t,g.sourceCodeLocation.startOffset):null,S=G(t,a.body.sourceCodeLocation.startOffset),y=G(t,n.sourceCodeLocation.startOffset),T=t.includes(`\r
|
|
15
|
+
`)?`\r
|
|
16
|
+
`:`
|
|
17
|
+
`,C=c=>{if(c.from===null){let gt=c.look?` class="${Me("",c.look)}"`:"",v=c.width?` style="${vt("",[[Ae,c.width]])}"`:"";return`<${c.tag}${gt}${v}${c.scope?` scope="${c.scope}"`:""}${$n(c.rowspan??1,c.colspan??1)}>${c.html}</${c.tag}>`}let[N,L]=c.from,x=r[N].cells[L],E=c.tag==="th"?c.scope??null:null;return`${x.tagName===c.tag&&(St(x,"scope")??null)===E&&c.look===void 0&&c.width===void 0&&c.rowspan===void 0?Ct(t,x):bn(t,x,c.tag,E,c.look,c.width,c.rowspan===void 0?void 0:[c.rowspan,c.colspan])}${c.html??Nn(t,x)}</${c.tag}>`},h=c=>{let N=c.from===null?null:r[c.from];return N&&N.cells.length===c.cells.length&&c.cells.every((x,E)=>x.from?.[0]===c.from&&x.from[1]===E&&x.html===void 0&&x.look===void 0&&x.width===void 0&&x.rowspan===void 0&&x.tag===N.cells[E].tagName&&(x.tag!=="th"||(x.scope??null)===(St(N.cells[E],"scope")??null)))?t.slice(N.node.sourceCodeLocation.startOffset,N.node.sourceCodeLocation.endOffset):`${N?Ct(t,N.node):"<tr>"}${c.cells.map(C).join("")}</tr>`},O=(c,N,L)=>{let x=L?Ct(t,L):`<${c}>`;return b===null||S===null?`${x}${N.map(h).join("")}</${c}>`:`${x}${N.map(E=>`${T}${b}${h(E)}`).join("")}${T}${S}</${c}>`},p=s.rows.filter(c=>c.head),i=s.rows.filter(c=>!c.head),$=[...n.childNodes.filter(c=>c.tagName==="caption"||c.tagName==="colgroup").map(c=>t.slice(c.sourceCodeLocation.startOffset,c.sourceCodeLocation.endOffset)),...p.length?[O("thead",p,a.head)]:[],O("tbody",i,a.body)],k=S===null||y===null?$.join(""):`${$.map(c=>`${T}${S}${c}`).join("")}${T}${y}`;return{start:n.sourceCodeLocation.startTag.endOffset,end:n.sourceCodeLocation.endTag.startOffset,text:k}}var Re={table:{rewrite:je,plain:t=>Et(t)!==null,check:(t,{validLeaf:e})=>Tn(t,s=>typeof s=="string"&&e({tag:"td"},s,{empty:!0})),write(t,e){let s=kn(t),o=(y,T)=>t.spans?.[y]?.[T]??[1,1],a=new Map((t.widths??[]).map((y,T)=>[yn(s,T),y]).filter(([y,T])=>y&&T)),n=(y,T)=>{let[C,h]=o(y,T),O=a.get(`${y}:${T}`);return`${t.looks?.[y]?.[T]?` class="${t.looks[y][T]}"`:""}${O?` style="${On}: ${O}"`:""}${h>1?` colspan="${h}"`:""}${C>1?` rowspan="${C}"`:""}`},r=(y,T,C)=>`<tr>${y.map((h,O)=>T?`<th${n(C,O)}>${h}</th>`:t.column&&s.places.get(`${C}:${O}`).c===0?`<th${n(C,O)} scope="row">${h}</th>`:`<td${n(C,O)}>${h}</td>`).join("")}</tr>`,l=e.inner===null?null:e.inner+e.step,u=l===null?null:l+e.step,[d,...m]=t.rows,g=[];t.header&&g.push(e.block("<thead>",[r(d,!0,0)],"</thead>",l,u));let b=t.header?m:t.rows,S=t.header?1:0;return b.length>0&&g.push(e.block("<tbody>",b.map((y,T)=>r(y,!1,T+S)),"</tbody>",l,u)),e.block(`<div class="doc-table-wrap"${t.numbers===!1?` ${xn}="off"`:""}${t.chart?` ${Ln}="${t.chart}"`:""}${e.id}>`,[e.block('<table class="doc-table">',g,"</table>",e.inner,l)],"</div>")}}};var P={...Kt,...Yt,...Jt,...Qt,...te,...ne,...re,...fe,...pe,...xe,...Ce,...Ee,...Re},vn=Object.entries(P).flatMap(([t,e])=>(e.fields??[]).map(s=>[s,t])),dr=t=>vn.some(([e,s])=>t[e]!==void 0&&t.type!==s);import{FLOW as dt,HELD_TAGS as At}from"../browser/editor/components/list/index.mjs";var Dn=new Set(["section","div","blockquote","ul","ol","aside","article"]),Fe=new Set(["script","style","template","noscript","link","meta","header","dialog","form","fieldset","label","input","select","textarea","button","summary","main","caption","dd","dt","tbody","thead","tfoot","tr","td","th","figcaption"]),Ue=new Set(["img","picture","svg","canvas","video","audio","iframe","object"]),yt=new Set(["hr","img"]),Wn=new Set(["label","input","select","textarea","button"]),st=t=>In.some(e=>Bt(t,e))||En.some(e=>w(t,e)!==void 0);function _t(t){let e=t.childNodes??[],s=e.findIndex(a=>At.has(a.tagName));if(s<0)return[];let o=e.slice(s);return o.every(a=>At.has(a.tagName)||R(a))?o.filter(a=>a.tagName):null}function Mt(t){return t.tagName==="li"&&t.parentNode?.tagName==="ol"&&Bt(t.parentNode,dt)&&t.childNodes.some(e=>e.tagName)&&t.childNodes.every(e=>e.tagName?At.has(e.tagName):e.nodeName!=="#text"||!e.value.trim())}function We(t){let e=t.tagName,s=t.sourceCodeLocation;return Fe.has(e)||!(q.has(e)||Ue.has(e))||w(t,"contenteditable")!==void 0?!1:!!(s?.startTag&&(s.endTag||yt.has(e)))}var jt=(t,e=W(t))=>(P[e]?.boxes?.(t,J().packages)??[]).filter(({element:s})=>Rt(s)||s.sourceCodeLocation?.endTag&&s.childNodes.every(R));function Rt(t){if(!t.childNodes.every(s=>s.nodeName!=="#text"||!s.value.trim()))return!1;let e=t.childNodes.filter(s=>s.tagName);return e.length>0&&!e.some(s=>Wn.has(s.tagName)||!(q.has(s.tagName)||Ue.has(s.tagName)||Fe.has(s.tagName)))}function wt(t,e=null){let s=t.tagName;if(!Dn.has(s)||st(t)||w(t,"contenteditable")!==void 0)return null;let o=(w(t,"class")??"").split(/\s+/).filter(Boolean),a=t.childNodes.filter(d=>d.tagName),n=()=>a.every(d=>d.tagName==="li")&&t.childNodes.every(d=>d.tagName||!d.value?.trim());if(s==="ol"&&o.includes(dt))return o.every(d=>d===dt)&&n()?"flowchart":null;if(s==="ul"||s==="ol")return o.every(d=>(An.list??[]).includes(d))&&n()?"list":null;let r=t.childNodes.every(d=>d.nodeName!=="#text"||!d.value.trim()),l=et(t,Rn.match);if(s==="section"&&(o.length===0||l))return r&&(a.length>0||l)?"section":null;let u=Sn.find(([d])=>o.includes(d))?.[1];return u&&r&&a.length===0?u:Rt(t)?u||(o.length>0?null:s==="blockquote"?"quote":wn.has(e)?"plain":null):null}var Pn=(t,e,s=()=>!1)=>Object.entries(e.sourceCodeLocation.attrs??{}).filter(([o])=>o!=="class"&&o!==F&&!s(o,w(e,o))).sort((o,a)=>o[1].startOffset-a[1].startOffset).map(([,o])=>` ${t.slice(o.startOffset,o.endOffset)}`).join("");function W(t,e=t.parentNode){let s=(a,n,r)=>(!n||[n].flat().includes(a?.tagName))&&(!r||Bt(a,r));return Bn.find(({tag:a,class:n,attr:r,parent:l})=>s(t,a,n)&&(!r||w(t,r)!==void 0)&&(!l||e?.tagName&&s(e,l.tag,l.class)))?.kind??"block"}var Fn={flowchart:{tagName:"ol",attrs:[{name:"class",value:dt}]}},kr=(t,e)=>W(t,Fn[e]??null);function ze(t,e){let s=[],o=[],a=i=>i.parentNode.childNodes,n=i=>a(i)[a(i).indexOf(i)-1]??null,r=i=>/^[ \t]*$/.test(e.slice(e.lastIndexOf(`
|
|
18
|
+
`,i-1)+1,i)),l=i=>{let f=n(i);for(;f&&R(f);)f=n(f);return f?.tagName?f:null},u=i=>{if(!et(i,De.frame))return null;let f=l(i);return f&&et(f,De.lead)&&f.sourceCodeLocation?.endTag?f:null},d=(i,f)=>{let $=i.sourceCodeLocation.startOffset;for(let k=n(i);k;)if(R(k)&&(k.value.match(/\n/g)?.length??0)<=1)k=n(k);else if(k.nodeName==="#comment"&&k.sourceCodeLocation&&r(k.sourceCodeLocation.startOffset))f.add(k),$=k.sourceCodeLocation.startOffset,k=n(k);else break;return $},m=(i,f,$,k)=>{let c=i.sourceCodeLocation,N=u(i),L=c.attrs?.class,x={id:s.length,tag:i.tagName,kind:W(i),box:f.id,parent:$?.id??null,start:d(N??i,k),end:c.endOffset,elStart:c.startOffset,at:c.startTag.endOffset-1,lead:N?N.sourceCodeLocation.startTag.endOffset-1:null,classAttr:L?{start:L.startOffset,end:L.endOffset,value:w(i,"class")}:null,attrs:i.attrs.map(({name:E,value:A})=>({name:E,value:A})),blockId:w(i,F)??null,carried:Pn(e,i,E=>!!Cn[W(i)]?.[E]),blockIdAttr:c.attrs?.[F]?{start:c.attrs[F].startOffset,end:c.attrs[F].endOffset}:null,companion:null,keep:null,node:i,nodes:N?[N,i]:[i]};return s.push(x),N&&k.add(N),x},g=(i,f,$,k=null)=>{let c=i.sourceCodeLocation,N={id:o.length,kind:f,unit:$?.id??null,key:k,at:c.startTag.endOffset-1,innerEnd:c.endTag?.startOffset??null,pure:!0};return o.push(N),N},b=(i,f,$)=>{let k=g(i,"tabs",f),c=new Set;for(let N of i.childNodes){if(!N.tagName){N.nodeName==="#text"&&N.value.trim()&&(k.pure=!1);continue}let L=w(N,X.tabKey),x=L&&$.find(j=>w(j,X.panelKey)===L);if(N.tagName!=="button"||!et(N,X.tab)||!x?.sourceCodeLocation?.endTag||!N.sourceCodeLocation?.endTag){k.pure=!1;continue}let E=m(N,k,f,c);E.kind="tab",E.key=L;let A=x.sourceCodeLocation;E.companion={tag:x.tagName,start:d(x,new Set),end:A.endOffset,elStart:A.startOffset},E.nodes.push(x)}for(let N of i.childNodes)N.nodeName==="#comment"&&!c.has(N)&&(k.pure=!1)},S=(i,f,$,k=null)=>{let c=g(i,f,$,k),N=new Set,L=i.childNodes.filter(x=>x.tagName);L.forEach((x,E)=>{if(L[E+1]&&u(L[E+1])===x)return;if(f==="header"&&x.tagName==="h1"||!We(x)){c.pure=!1,x.tagName==="dialog"&&T(x,$),f==="main"&&et(x,jn.header)&&x.sourceCodeLocation?.endTag&&S(x,"header",null);return}y(x,m(x,c,$,N),f)});for(let x of i.childNodes)(x.nodeName==="#text"?x.value.trim():!x.tagName&&!N.has(x))&&(c.pure=!1)},y=(i,f,$)=>{if(f.kind==="sheets"){let k=It(i,X.panels),[c]=It(i,X.row);c&&b(c,f,k);for(let N of k)(Rt(N)||N.sourceCodeLocation?.endTag&&N.childNodes.every(R))&&S(N,"panel",f,w(N,X.panelKey))}else if(i.tagName==="details")for(let k of i.childNodes)k.tagName&&wt(k)==="details"&&S(k,"details",f);else if(i.tagName==="li"&&Mt(i))S(i,"node",f);else if(i.tagName==="li")C.push([i,f]);else{let k=wt(i,$);k&&S(i,k,f);for(let c of P[f.kind]?.boxes?jt(i,f.kind):[])S(c.element,c.kind,f,c.key)}},T=(i,f)=>{let[$]=It(i,Mn.content);$&&wt($)==="dialog"&&S($,"dialog",f,w(i,"id")??null)},C=[],h=(i,f)=>{let $=_t(i);if($===null||!i.sourceCodeLocation?.endTag)return;let k=g(i,"nest",f);k.pure=!1,f.nested=$.length>0;let c=new Set;for(let N of $)We(N)&&y(N,m(N,k,f,c),"nest")},O=Nt(t,"main");O?.sourceCodeLocation?.startTag&&S(O,"main",null);for(let i=0;i<C.length;i++)h(...C[i]);let p=Vn(t,s);return{units:s,boxes:o,referenced:p}}var Un=t=>t===void 0||/^\s*(?:module|(?:text|application)\/(?:x-)?(?:javascript|ecmascript)|text\/javascript1\.[0-5]|text\/(?:jscript|livescript))?\s*$/i.test(t);function zn(t){let e=Hn(t),s=new Set,o=[],a=/(["'`])((?:(?!\1)[^\\\n]|\\.)*)\1/g,n=m=>m.split(/\s+/).filter(Boolean).forEach(g=>s.add(g)),r=/(?:\bclassList\s*\.\s*(?:add|remove|toggle|contains|replace)|\.classed|\bgetElementsByClassName|\.(?:has|add|remove|toggle)Class|\bclassName\s*\.\s*(?:includes|indexOf|startsWith|endsWith)|\bclassName\s*\.\s*split\s*\([^)]*\)\s*\.\s*(?:includes|indexOf))\s*\(\s*((?:(["'`])(?:(?!\2)[^\\\n]|\\.)*\2\s*,?\s*)+)/g;for(let[,m]of t.matchAll(r))for(let[,,g]of m.matchAll(a))n(g);if(/(["'`])[^"'`\n]*\.\1\s*\+|\.\$\{/.test(t)||/(?:\bclassList\s*\.\s*(?:add|remove|toggle|contains|replace)|\.classed|\.(?:has|add|remove|toggle)Class)\s*\(\s*[A-Za-z_$][\w$.]*\s*[,)]/.test(t))for(let m of e)/^-?[A-Za-z_][\w-]*$/.test(m)&&s.add(m);let u=/\bclassName\s*(?:[!=]==?|=)\s*(["'`])((?:(?!\1)[^\\\n]|\\.)*)\1|(["'`])((?:(?!\3)[^\\\n]|\\.)*)\3\s*[!=]==?\s*[\w$.]*\bclassName\b/g;for(let m of t.matchAll(u))n(m[2]??m[4]);let d=/\[\s*class\s*([~|^$*]?)=\s*(?:"([^"]*)"|'([^']*)'|([^\]\s]+))\s*(?:[is]\s*)?\]/g;for(let m of e)for(let g of m.matchAll(d)){let b=g[2]??g[3]??g[4];g[1]===""||g[1]==="~"||g[1]==="|"?n(b):o.push(b)}return{names:s,partial:o,selectors:e.join(`
|
|
19
|
+
`)}}function Hn(t){let e=[],s=[],o=0,a="",n=0,r=l=>{let u="";for(let d=l;d<t.length;d++){let m=t[d];if(m==="\\"){u+=t.slice(d,d+2),d++;continue}if(m==="`")return e.push(u),d+1;if(m==="$"&&t[d+1]==="{")return e.push(u),s.push(o),d+2;u+=m}return e.push(u),t.length};for(;n<t.length;){let l=t[n],u=t[n+1];if(l==="/"&&u==="/"){let d=t.indexOf(`
|
|
20
|
+
`,n);n=d<0?t.length:d;continue}if(l==="/"&&u==="*"){let d=t.indexOf("*/",n+2);n=d<0?t.length:d+2;continue}if(l==='"'||l==="'"){let d=n+1,m="";for(;d<t.length&&t[d]!==l&&t[d]!==`
|
|
21
|
+
`;)t[d]==="\\"?(m+=t.slice(d,d+2),d+=2):m+=t[d++];e.push(m),n=d+1,a="a";continue}if(l==="`"){n=r(n+1),a="a";continue}if(l==="}"&&s.length&&s.at(-1)===o){s.pop(),n=r(n+1),a="a";continue}if(l==="/"&&(!/[\w$)\]}]/.test(a)||/(?:^|[^\w$.])(?:return|typeof|case|in|of|void|delete|throw|yield|await|else|do)\s*$/.test(t.slice(Math.max(0,n-12),n)))){let d=n+1,m=!1;for(;d<t.length&&t[d]!==`
|
|
22
|
+
`&&(m||t[d]!=="/");)t[d]==="\\"?d++:t[d]==="["?m=!0:t[d]==="]"&&(m=!1),d++;if(t[d]==="/"){for(n=d+1;/[a-z]/i.test(t[n]??"");)n++;a="a";continue}}l==="{"?o++:l==="}"&&o--,/\s/.test(l)||(a=l),n++}return e}var Gn=/\bDocSheets\b|["'`]sheets-|\bactiveSheet\b|data-active-sheet|["'`]sheet["'`]|\bsheet\s*:/,Kn=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function qn(t,e){if(!Gn.test(e))return!1;let s=Kn(t),o=`(["'\`])${s}\\1`;return[`\\bsheet["'\`]?\\s*:\\s*${o}`,`\\.set\\(\\s*(["'\`])${s}\\1`,`\\.set\\(\\s*(["'\`])sheet\\1\\s*,\\s*(["'\`])${s}\\2`,`[!=]==?\\s*${o}`,`${o}\\s*[!=]==?`,`\\bcase\\s+${o}\\s*:`,`active-sheet\\s*=\\s*["']?${s}["'\\]]`].some(a=>new RegExp(a).test(e))}function Vn(t,e){let s=[],o=new Map,a=h=>{for(let O of h.childNodes??[]){if(!O.tagName)continue;let p=O.sourceCodeLocation?.startOffset??-1;O.tagName==="script"&&w(O,"src")===void 0&&s.push({at:p,code:Un(w(O,"type")),text:O.childNodes.map(i=>i.value??"").join("")});for(let{name:i,value:f}of O.attrs)if(!(i==="aria-labelledby"&&O.tagName==="section"))for(let $ of _n(i,f))(o.get($)??o.set($,[]).get($)).push(p);a(O.tagName==="template"?O.content:O)}};a(t);let n=h=>h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=h=>h.slice(5).replace(/-([a-z])/g,(O,p)=>p.toUpperCase()),l=s.filter(h=>h.code),u=l.map(h=>h.text).join(`
|
|
23
|
+
`),d=h=>l.some(O=>h(O.at))?l.filter(O=>!h(O.at)).map(O=>O.text).join(`
|
|
24
|
+
`):u,m=new Map,g=(h,O)=>(p,i)=>{if(i!==u)return O(p,i);let f=`${h} ${p}`;return m.has(f)||m.set(f,O(p,i)),m.get(f)},b=g("id",(h,O)=>new RegExp(`#${n(h)}(?![\\w-])|(["'\`])${n(h)}\\1`).test(O)),S=g("data",(h,O)=>new RegExp(`${n(h)}(?![\\w-])|dataset\\.${r(h)}(?![\\w$])`).test(O)),y=new Map,T=g("class",(h,O)=>{y.has(O)||y.set(O,zn(O));let{names:p,partial:i,selectors:f}=y.get(O);return p.has(h)||i.some($=>$.includes(h))||new RegExp(`\\.${n(h)}(?![\\w-])`).test(f)}),C=h=>h.split(/\s+/).filter(O=>O&&!/^(doc-|katex)/.test(O));for(let h of e){let O=[[h.start,h.end],...h.companion?[[h.companion.start,h.companion.end]]:[]],p=v=>O.some(([I,_])=>v>=I&&v<_),i=new Map,f=new Map,$=new Map,k=(v,I,_)=>(v.get(I)??v.set(I,[]).get(I)).push(_),c=v=>{if(!v.tagName)return;let I=v.sourceCodeLocation?.startOffset??h.start;for(let{name:_,value:U}of v.attrs)_==="id"&&U?k(i,U,I):_.startsWith("data-")&&_!==F?k(f,_,I):_==="class"&&C(U).forEach(ht=>k($,ht,I));(v.tagName==="template"?v.content:v).childNodes?.forEach(c)};h.nodes.forEach(c);let N=d(p),L=(v,I,_)=>[...v].filter(([U])=>I(U)).map(([U,ht])=>({name:_(U),at:ht})),x=[...h.key&&s.some(v=>!p(v.at)&&qn(h.key,v.text))?[{name:`"${h.key}"`,at:[h.start]}]:[],...L(i,v=>b(v,N),v=>`#${v}`),...L(f,v=>S(v,N),v=>`[${v}]`),...L($,v=>T(v,N),v=>`.${v}`)],E=L(i,v=>(o.get(v)??[]).some(I=>!p(I)),v=>`#${v}`),A=x.length>0?x:E,j=A.flatMap(v=>v.at),gt=j.some(v=>!e.some(I=>I!==h&&h.start<=I.start&&I.end<=h.end&&I.start<=v&&v<I.end));h.keep=A.length>0?{reason:x.length>0?"script":"ref",names:A.map(v=>v.name),at:j,own:gt}:null}return h=>{let O=h.sourceCodeLocation;if(!O||!h.attrs.some(({name:$})=>$==="id"||$==="class"||$.startsWith("data-")))return null;let p=$=>$>=O.startOffset&&$<O.endOffset,i=d(p),f=null;for(let{name:$,value:k}of h.attrs)if($==="id"&&k){if(b(k,i))return"script";(o.get(k)??[]).some(c=>!p(c))&&(f="ref")}else{if($.startsWith("data-")&&$!==F&&S($,i))return"script";if($==="class"&&C(k).some(c=>T(c,i)))return"script"}return f}}function Xn(t,e){let s=[],o=a=>{let n=a.sourceCodeLocation?.attrs?.[F];if(n){let r=n.startOffset>0&&/\s/.test(t[n.startOffset-1])?n.startOffset-1:n.startOffset;s.push({start:r,end:n.endOffset})}for(let r of a.content?.childNodes??a.childNodes??[])o(r)};return e.forEach(o),s.sort((a,n)=>a.start-n.start)}var Pe=(t,e,s,o)=>{let a="",n=e;for(let r of o)r.start<n||r.end>s||(a+=t.slice(n,r.start),n=r.end);return a+t.slice(n,s)},Tr=(t,e)=>{let s=Xn(t,e.nodes),o=Pe(t,e.start,e.end,s);return at(e.companion?`${o}\0${Pe(t,e.companion.start,e.companion.end,s)}`:o)};ot();import{HOSTS as mt,IDENTITY as Yn}from"../browser/editor/components/registry.mjs";import{CODE as Zn,MATH as qe,MEDIA as Jn,PAGE as Qn,TABLE as to}from"../browser/editor/components/kit.mjs";import{TAB as eo}from"../browser/editor/components/paragraph/index.mjs";import{componentOf as so,isInstance as ut,matchesNode as K,partOf as no}from"../browser/shared/components/index.mjs";import{texSource as oo}from"../browser/editor/components/math/index.mjs";import{MENTION as Wt,MENTION_ICON as He,MENTION_PAGE as Ge}from"../browser/shared/components/mention.mjs";import{imageFile as ao}from"../browser/shared/media.mjs";import{isFileLink as ro}from"../browser/shared/page-address.mjs";import{isInkClass as io}from"../browser/editor/page/marks.mjs";import{ownInline as co}from"../browser/editor/page/own.mjs";import{attr as B,hasClass as lo}from"../browser/shared/html-tree.mjs";var fo=new Set(["h1","h2","h3","h4","p","li"]),uo=new Set(["h3","h4","p","figcaption"]),mo=Object.entries(mt).flatMap(([t,e])=>(e.parts??[]).map(([s,o])=>{let a=so(s);if(a?.parts?.[o]?.edit!=="text")throw new Error(`Host ${t}: ${s} has no part ${o} edited as text`);return{kind:t,match:a.match,at:a.parts[o].at}})),po=t=>mo.filter(({match:e})=>K(t,e)).flatMap(({kind:e,at:s})=>no(t,s).map(o=>({kind:e,part:o}))),go=t=>t.sort((e,s)=>e.part.sourceCodeLocation.startOffset-s.part.sourceCodeLocation.startOffset),ho=new Set(["strong","em","b","i","u","s","code","a","br","sup","sub"]),No=new Set(["ul","ol","blockquote"]),Dt=new Set(["pre","summary","button","label","select","textarea","form","template","script","style","svg","math","iframe","object","noscript","canvas","video","audio"]),Fr={p:"p",h1:"p",h2:"p",h3:"p",h4:"p",li:"li"};function $o(t,e,s){let o=mt[t];if(!o)throw new Error(`Unknown block kind ${t}`);return o.caps({bound:s,blockLevel:q.has(e)})}var Ve=t=>t.tagName==="span"&&K(t,qe.inline),bo=t=>t.tagName==="a"&&lo(t,Wt),Oo=/^https?:\/\/[^\s"<>]+$/i,nt=t=>t.attrs.map(e=>e.name).sort().join(),xo=t=>B(t,"class")===Wt&&t.childNodes.length===0&&(nt(t)==="class"||nt(t)===`class,${Ge}`&&B(t,Ge)==="");function ko(t){if(xo(t))return null;if(nt(t)!=="class,href"||B(t,"class")!==Wt||!(Oo.test(B(t,"href"))||ro(B(t,"href"))))return"mention";let[e,...s]=t.childNodes;return(e?.tagName==="img"?nt(e)==="alt,class,src"&&B(e,"class")===He&&B(e,"alt")===""&&ao(B(e,"src")):e?.tagName==="span"&&nt(e)==="class"&&B(e,"class")===He&&e.childNodes.length===0)&&s.length>0&&s.every(a=>a.nodeName==="#text")&&s.some(a=>a.value.trim())?null:"mention"}var To=t=>t.tagName==="span"&&t.attrs.length===1&&t.attrs[0].name==="class"&&t.attrs[0].value.trim().split(/\s+/).every(io),Lo=t=>t.tagName==="span"&&t.attrs.length===1&&t.attrs[0].name==="class"&&t.attrs[0].value===eo,Xe=t=>ho.has(t.tagName)||To(t)||Lo(t),pt=t=>(t.childNodes??[]).some(e=>e.nodeName==="#text"?e.value.trim()!=="":pt(e)),Ye=t=>co(t.tagName,t.attrs,pt(t)),Ke=t=>t.attrs.some(e=>e.name==="id"||e.name.startsWith("data-")&&e.name!==Yn),yo=t=>/^(javascript|vbscript|data):/i.test(t.replace(/[\u0000- ]/g,"")),vo=(t,e,s={})=>t==="text"?q.has(e)?!1:"atoms":t==="title"||t==="code"||t==="codeTitle"||t==="tex"||!!s.plain;function Pt(t,e,s=!1,{lists:o=!1,known:a=null}={}){for(let n of t.childNodes){if(n.nodeName==="#text")continue;if(!n.tagName)return"comment";if(s===!0)return`tag:${n.tagName}`;if(n.attrs.some(l=>/^on/i.test(l.name)))return"markup";if(s==="atoms"){if(!n.sourceCodeLocation?.endTag&&n.tagName!=="br")return"markup";if(a&&!a(n.sourceCodeLocation))return`tag:${n.tagName}`;e.push(n.sourceCodeLocation);continue}if(o&&(n.tagName==="ul"||n.tagName==="ol")){let l=Co(n,e,a);if(l)return l;continue}if(Ve(n)){if(n.childNodes.some(l=>l.nodeName!=="#text"))return"markup";e.push(n.sourceCodeLocation);continue}if(bo(n)){let l=ko(n);if(l)return l;e.push(n.sourceCodeLocation);continue}if(Ye(n)){if(!n.sourceCodeLocation?.endTag)return"markup";if(a&&!a(n.sourceCodeLocation))return`tag:${n.tagName}`;e.push(n.sourceCodeLocation);continue}if(!Xe(n))return`tag:${n.tagName}`;if(n.tagName!=="br"&&!n.sourceCodeLocation?.endTag)return"markup";if(n.tagName==="a"&&yo(B(n,"href")??""))return"link";let r=Pt(n,e,!1,{known:a});if(r)return r}return null}function Co(t,e,s){if(t.attrs.length>0||!t.sourceCodeLocation?.endTag)return"markup";for(let o of t.childNodes){if(o.nodeName==="#text"&&!o.value.trim())continue;if(o.tagName!=="li")return`tag:${o.tagName??"text"}`;if(o.attrs.length>0||!o.sourceCodeLocation?.endTag)return"markup";let a=Pt(o,e,!1,{known:s});if(a)return a}return null}function Y(t){let e=[],s=[],o=new Map,a=null,n=(p,i,f=null)=>{let $=p.sourceCodeLocation;if(!mt[i]||!$?.startTag||B(p,"contenteditable")!==void 0)return!1;let k=[],c=vo(i,p.tagName),N=f?{childNodes:p.childNodes.slice(0,p.childNodes.indexOf(f))}:p,L=$.endTag?Pt(N,k,c,{lists:i==="cell"}):"markup";if(L)return s.push({at:$.startTag.endOffset-1,reason:L}),!1;let x=$.startTag.endOffset,E=f?x+t.slice(x,f.sourceCodeLocation.startOffset).replace(/[ \t\r\n\f]+$/,"").length:$.endTag.startOffset,A={id:e.length,tag:p.tagName,kind:i,bound:!1,caps:{},start:$.startOffset,end:$.endOffset,innerStart:x,innerEnd:E,atoms:k.map(j=>[j.startOffset-x,j.endOffset-x]),wrapper:null,nested:!!f,node:p};return e.push(A),o.set(p,A),!0},r=p=>(p.childNodes??[]).filter(i=>i.tagName),l=p=>{let i=p.sourceCodeLocation;return i?.startTag&&i.endTag?t.slice(i.startTag.endOffset,i.endTag.startOffset):null},u=p=>p.tagName!=="a"&&!Ke(p)&&pt(p)&&r(p).every(i=>Ye(i)?!pt(i):Xe(i)||Ve(i)),d=p=>{for(let i of r(p))i.tagName==="td"||i.tagName==="th"?n(i,"cell"):["thead","tbody","tfoot","tr"].includes(i.tagName)&&d(i)},m=p=>{for(let i of r(p))i.tagName==="table"?d(i):!Dt.has(i.tagName)&&!ut(i)&&m(i)},g=p=>{let i=r(p);i.length===1&&i[0].tagName==="code"&&p.childNodes.every(f=>f.tagName||!f.value?.trim())?n(i[0],"code"):i.length===0?n(p,"code"):p.sourceCodeLocation?.startTag&&s.push({at:p.sourceCodeLocation.startTag.endOffset-1,reason:"markup"})},b=(p,i=!0)=>{for(let f of r(p)){let $=f.tagName,k=ut(f);for(let{kind:c,part:N}of go(k?P[W(f)].textParts(f,a??=J().packages):po(f)))n(N,c);if(k){for(let{element:c}of jt(f))b(c,i);continue}if($==="div"&&K(f,Zn.match)){for(let c of r(f))c.tagName==="pre"&&B(c,"contenteditable")===void 0&&g(c);continue}if(!(Dt.has($)||B(f,"contenteditable")!==void 0))if($==="table")d(f);else if($==="figure"){let c=K(f,Jn);for(let N of r(f))if(!(c&&N.tagName==="figcaption"))if(uo.has(N.tagName))n(N,"field");else if(N.tagName==="table")d(N);else{if(Dt.has(N.tagName))continue;ut(N)?b({childNodes:[N]},i):c||st(N)||Ke(N)?m(N):b({childNodes:[N]},i)}}else if($==="details")for(let c of r(f))ut(c)?b({childNodes:[c]},i):c.tagName!=="summary"&&b(c,i);else if($==="h1"&&(p.tagName==="header"||K(f,Qn.title)))n(f,"title");else if($==="li"&&Mt(f))b({childNodes:r(f)},i);else if(fo.has($)){let c=$==="li"?_t(f):[];c?.length>0?(n(f,"flow",c[0]),b({childNodes:c},i)):n(f,"flow")||b(f,!1)}else if($==="div"&&K(f,qe.block)&&r(f).length===0&&oo(l(f)))n(f,"tex");else if($==="div"&&K(f,to.lead))for(let c of r(f))c.tagName==="span"&&n(c,"field");else i&&!st(f)&&u(f)?n(f,"text"):(b(f,i&&!st(f)),No.has($)&&S(f))}},S=p=>{let i=p.sourceCodeLocation,f=r(p).map(c=>o.get(c));if(!(f.length>0&&f.every(Boolean)&&p.childNodes.every(c=>c.tagName||c.nodeName==="#text"&&!c.value.trim()))||!i?.endTag)return;let k={start:i.startOffset,end:i.endOffset,ids:f.map(c=>c.id)};f.forEach(c=>c.wrapper=k)},y=p=>{for(let i of r(p))(i.tagName==="main"?b:y)(i)},T=z(t,{sourceCodeLocationInfo:!0});y(T);let{units:C,boxes:h,referenced:O}=ze(T,t);for(let p of C)p.grid=!!P[p.kind]?.plain?.(p.node);for(let p of C){let i=P[p.kind]?.dataOf?.(t,p.node,a??=J().packages);i&&(p.parts=Object.fromEntries(Object.entries(i).map(([f,$])=>[f,at($)])))}for(let p of e){let i=null;for(let f of C)f.start<=p.start&&p.start<f.end&&(!i||f.start>i.start)&&(i=f);p.unit=i?.id??null,p.self=i&&i.at===p.innerStart-1?i.id:null,p.self!==null&&(i.text=p.id),p.path=i&&p.self===null?So(i,p.node):null,mt.text&&p.kind==="flow"&&p.self===null&&(i?.kind==="block"||i?.kind==="figure")&&(p.kind="text"),p.bound=O(p.node)!==null,p.caps=Object.fromEntries($o(p.kind,p.tag,p.bound).map(f=>[f,!0]))}return{blocks:e,locks:s,units:C,boxes:h}}function So(t,e){let s=[],o=e;for(;o&&!t.nodes.includes(o);o=o.parentNode){let a=(o.parentNode?.childNodes??[]).filter(n=>n.tagName===o.tagName);s.unshift([o.tagName,a.indexOf(o),a.length])}return o?[o===t.node?"unit":o===t.nodes[0]&&t.lead!==null?"lead":"panel",...s]:null}var Ur=t=>Y(t).blocks;function zr(t){let{units:e,boxes:s}=Y(t);return{units:e,boxes:s}}ot();import{randomBlockId as Eo}from"../browser/shared/ids.mjs";import{IDENTITY as Z}from"../browser/editor/components/registry.mjs";var Io=/\sdata-block-id\s*=\s*(?:"([^"]*)"|'([^']*)')/gi;function Yr(t,e=Eo){let{units:s}=Y(t),o=new Set([...t.matchAll(Io)].map(m=>m[1]??m[2])),a=()=>{for(;;){let m=e();if(!o.has(m))return o.add(m)&&m}},n=new Set,r=[],l=[],u=[];for(let m of s)if(m.blockId)n.has(m.blockId)&&m.blockIdAttr?(l.push(m.blockId),r.push({start:m.blockIdAttr.start,end:m.blockIdAttr.end,text:`${Z}="${a()}"`})):n.add(m.blockId);else{let g=a();if(m.blockIdAttr)r.push({start:m.blockIdAttr.start,end:m.blockIdAttr.end,text:`${Z}="${g}"`});else{let b=ft(t,m.at);r.push({start:b,end:b,text:` ${Z}="${g}"`})}u.push({id:g,tag:Je(m.tag,m.attrs),at:m.elStart})}let d=t;for(let m of r.sort((g,b)=>b.start-g.start))d=d.slice(0,m.start)+m.text+d.slice(m.end);return u.sort((m,g)=>m.at-g.at),{text:d,added:u.length,renamed:l,given:u.map(({id:m,tag:g})=>({id:m,tag:g}))}}function Zr(t){let e=Ze(t);return Y(t).units.filter(s=>!s.blockId).sort((s,o)=>s.elStart-o.elStart).map(s=>({line:e(s.elStart),tag:Je(s.tag,s.attrs)}))}function Jr(t,e){let s=new Map(e.map(a=>[a.id,a])),o=Ze(t);return Y(t).units.filter(a=>s.has(a.blockId)).sort((a,n)=>a.elStart-n.elStart).map(a=>({...s.get(a.blockId),line:o(a.elStart)}))}function Ze(t){let e=[0];for(let s=t.indexOf(`
|
|
25
|
+
`);s!==-1;s=t.indexOf(`
|
|
26
|
+
`,s+1))e.push(s+1);return s=>{let[o,a]=[0,e.length-1];for(;o<a;){let n=o+a+1>>1;e[n]<=s?o=n:a=n-1}return o+1}}function Je(t,e=[]){let s=e.filter(({name:n})=>n!==Z&&n!=="style"),o=n=>{let r=n.replace(/\s+/g," "),l=r.length>32?`${r.slice(0,31)}\u2026`:r;return l===""?"":/[\s"'=<>`]/.test(l)?`="${l.replaceAll('"',""")}"`:`=${l}`},a=s.slice(0,3).map(({name:n,value:r})=>`${n}${o(r)}`);return`<${[t,...a,...s.length>3?["\u2026"]:[]].join(" ")}>`}function Qr(t){let e=new Map,s=o=>{let a=o.attrs?.find(r=>r.name===Z)?.value,n=o.sourceCodeLocation?.attrs?.[Z]??o.sourceCodeLocation;a!==void 0&&e.set(a,[...e.get(a)??[],n]);for(let r of o.content?.childNodes??o.childNodes??[])s(r)};return s(z(t,{sourceCodeLocationInfo:!0})),[...e].filter(([,o])=>o.length>1).map(([o,a])=>({id:o,lines:a.map(n=>n?.startLine),columns:a.map(n=>n?.startCol)}))}export{at as a,Nt as b,q as c,st as d,jt as e,Pn as f,kr as g,Xn as h,Tr as i,ye as j,ft as k,lt as l,ya as m,va as n,vt as o,Ca as p,nn as q,Sa as r,Ea as s,Lt as t,G as u,on as v,Ia as w,dn as x,mn as y,P as z,dr as A,Fr as B,vo as C,Pt as D,Y as E,Ur as F,zr as G,Eo as H,Io as I,Yr as J,Zr as K,Jr as L,Qr as M};
|