agent-canvas 0.2.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -17
- package/bin/agent-canvas.js +7 -7
- package/bin/agent-canvas.ts +48 -37
- package/bin/lib/commands/daemon.ts +46 -43
- package/bin/lib/commands/exec.ts +100 -100
- package/bin/lib/commands/fetch.ts +15 -15
- package/bin/lib/commands/install.ts +36 -36
- package/bin/lib/commands/instructions.ts +51 -51
- package/bin/lib/commands/push.ts +115 -97
- package/bin/lib/commands/review.ts +190 -0
- package/bin/lib/commands/watch.ts +24 -24
- package/bin/lib/config.ts +12 -12
- package/bin/lib/daemon-lifecycle.ts +47 -51
- package/bin/lib/helpers.ts +82 -76
- package/bin/lib/instructions/app-review.md +88 -0
- package/bin/lib/instructions/component-checklist.md +7 -5
- package/bin/lib/instructions/component-custom.md +20 -14
- package/bin/lib/instructions/component-diff.md +4 -3
- package/bin/lib/instructions/component-item.md +18 -8
- package/bin/lib/instructions/component-markdown.md +4 -2
- package/bin/lib/instructions/component-mermaid.md +12 -6
- package/bin/lib/instructions/component-multichoice.md +6 -2
- package/bin/lib/instructions/component-note.md +1 -1
- package/bin/lib/instructions/component-priority.md +1 -1
- package/bin/lib/instructions/component-rangeinput.md +9 -2
- package/bin/lib/instructions/component-secretinput.md +12 -11
- package/bin/lib/instructions/component-svg.md +62 -16
- package/bin/lib/instructions/component-table.md +6 -6
- package/bin/lib/instructions/component-usefeedback.md +8 -8
- package/bin/lib/instructions/component-userinput.md +6 -2
- package/bin/lib/instructions/flow-feature.md +22 -5
- package/bin/lib/instructions/flow-plan.md +5 -5
- package/bin/lib/instructions/flow-runbook.md +28 -25
- package/bin/lib/instructions/overview.md +27 -18
- package/bin/lib/instructions/theming.md +5 -0
- package/daemon/build.ts +171 -152
- package/daemon/client/App.tsx +1205 -1077
- package/daemon/client/CompareView.tsx +478 -458
- package/daemon/client/FileBrowser.tsx +241 -203
- package/daemon/client/FileViewer.tsx +220 -211
- package/daemon/client/OverviewView.tsx +283 -267
- package/daemon/client/ReviewerIdentityDialog.tsx +72 -71
- package/daemon/client/RevisionSelect.tsx +111 -95
- package/daemon/client/SessionSwitcher.tsx +81 -81
- package/daemon/client/ShareDialog.tsx +211 -212
- package/daemon/client/apiSchemas.ts +78 -0
- package/daemon/client/canvas-runtime.ts +1 -1
- package/daemon/client/clientApi.ts +194 -206
- package/daemon/client/components/SecretInput.tsx +138 -138
- package/daemon/client/components/index.ts +2 -2
- package/daemon/client/domDiff.ts +341 -333
- package/daemon/client/errorMessage.ts +3 -0
- package/daemon/client/exportMarkdown.ts +222 -201
- package/daemon/client/lcs.ts +19 -14
- package/daemon/client/shareCrypto.ts +57 -57
- package/daemon/client/unifiedDiff.ts +660 -649
- package/daemon/dist/annotations-runtime.js +1 -1
- package/daemon/dist/client.css +2 -2
- package/daemon/dist/client.js +77 -80
- package/daemon/dist/components.js +59 -59
- package/daemon/dist/preact-compat.js +1 -1
- package/daemon/dist/review.js +361 -0
- package/daemon/dist/runtime.js +1 -1
- package/daemon/langMap.ts +24 -6
- package/daemon/review-widget/anchor.ts +187 -0
- package/daemon/review-widget/client.ts +95 -0
- package/daemon/review-widget/index.tsx +36 -0
- package/daemon/review-widget/markup.ts +71 -0
- package/daemon/review-widget/screenshot.ts +91 -0
- package/daemon/review-widget/source.ts +103 -0
- package/daemon/review-widget/styles.css +359 -0
- package/daemon/review-widget/text-modules.d.ts +4 -0
- package/daemon/review-widget/tsconfig.json +16 -0
- package/daemon/review-widget/widget.tsx +436 -0
- package/daemon/src/components.ts +3 -3
- package/daemon/src/handlers/api.ts +330 -328
- package/daemon/src/handlers/files.ts +112 -106
- package/daemon/src/handlers/static.ts +47 -46
- package/daemon/src/handlers/uploads.ts +61 -56
- package/daemon/src/paths.ts +13 -10
- package/daemon/src/remote-feedback.ts +192 -192
- package/daemon/src/review/markdown.ts +52 -0
- package/daemon/src/review/model.ts +132 -0
- package/daemon/src/review/proxy.ts +177 -0
- package/daemon/src/review/server.ts +199 -0
- package/daemon/src/review/store.ts +151 -0
- package/daemon/src/server.ts +127 -86
- package/daemon/src/share.ts +163 -169
- package/daemon/src/stubFetch.ts +7 -0
- package/daemon/tsconfig.json +19 -19
- package/package.json +47 -47
- package/skills/canvas/SKILL.md +5 -1
- package/bin/lib/commands/exec.test.ts +0 -27
- package/bin/lib/helpers.test.ts +0 -79
- package/daemon/src/files-api.test.ts +0 -78
- package/daemon/src/remote-feedback.test.ts +0 -165
- package/daemon/src/secrets-api.test.ts +0 -123
- package/daemon/src/share-e2e.test.ts +0 -277
- package/daemon/src/share.test.ts +0 -289
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
import{useFeedback as
|
|
2
|
-
]`).replace("lheading",
|
|
3
|
-
`).map((
|
|
4
|
-
`)}var
|
|
5
|
-
`)}}}fences(
|
|
6
|
-
`)}}blockquote(
|
|
1
|
+
var G4=Object.defineProperty;var B4=($)=>$;function _4($,J){this[$]=B4.bind(null,J)}var M4=($,J)=>{for(var Q in J)G4($,Q,{get:J[Q],enumerable:!0,configurable:!0,set:_4.bind(J,Q)})};import{useFeedback as p7}from"#canvas/runtime";function B1(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var l$=B1();function n1($){l$=$}var u$={exec:()=>null};function I($,J=""){let Q=typeof $=="string"?$:$.source,q={replace:(W,Y)=>{let X=typeof Y=="string"?Y:Y.source;return X=X.replace(s.caret,"$1"),Q=Q.replace(W,X),q},getRegex:()=>new RegExp(Q,J)};return q}var U4=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),s={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:($)=>new RegExp(`^( {0,3}${$})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}#`),htmlBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}>`)},w4=/^(?:[ \t]*(?:\n|$))+/,N4=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,K4=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,S0=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,L4=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,_1=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,a1=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,s1=I(a1).replace(/bull/g,_1).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),O4=I(a1).replace(/bull/g,_1).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),M1=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,F4=/^[^\n]+/,U1=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,A4=I(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",U1).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),z4=I(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,_1).getRegex(),x0="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",w1=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,S4=I("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",w1).replace("tag",x0).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),t1=I(M1).replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x0).getRegex(),f4=I(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",t1).getRegex(),N1={blockquote:f4,code:N4,def:A4,fences:K4,heading:L4,hr:S0,html:S4,lheading:s1,list:z4,newline:w4,paragraph:t1,table:u$,text:F4},l1=I("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x0).getRegex(),R4={...N1,lheading:O4,table:l1,paragraph:I(M1).replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",l1).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",x0).getRegex()},b4={...N1,html:I(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",w1).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:u$,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:I(M1).replace("hr",S0).replace("heading",` *#{1,6} *[^
|
|
2
|
+
]`).replace("lheading",s1).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},j4=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,V4=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,e1=/^( {2,}|\\)\n(?!\s*$)/,v4=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,s$=/[\p{P}\p{S}]/u,u0=/[\s\p{P}\p{S}]/u,K1=/[^\s\p{P}\p{S}]/u,P4=I(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,u0).getRegex(),$2=/(?!~)[\p{P}\p{S}]/u,C4=/(?!~)[\s\p{P}\p{S}]/u,D4=/(?:[^\s\p{P}\p{S}]|~)/u,k4=I(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",U4?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),J2=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,E4=I(J2,"u").replace(/punct/g,s$).getRegex(),T4=I(J2,"u").replace(/punct/g,$2).getRegex(),Q2="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",I4=I(Q2,"gu").replace(/notPunctSpace/g,K1).replace(/punctSpace/g,u0).replace(/punct/g,s$).getRegex(),g4=I(Q2,"gu").replace(/notPunctSpace/g,D4).replace(/punctSpace/g,C4).replace(/punct/g,$2).getRegex(),h4=I("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,K1).replace(/punctSpace/g,u0).replace(/punct/g,s$).getRegex(),y4=I(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,s$).getRegex(),Z4="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",m4=I(Z4,"gu").replace(/notPunctSpace/g,K1).replace(/punctSpace/g,u0).replace(/punct/g,s$).getRegex(),x4=I(/\\(punct)/,"gu").replace(/punct/g,s$).getRegex(),u4=I(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),p4=I(w1).replace("(?:-->|$)","-->").getRegex(),l4=I("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",p4).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),y0=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,c4=I(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",y0).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),W2=I(/^!?\[(label)\]\[(ref)\]/).replace("label",y0).replace("ref",U1).getRegex(),q2=I(/^!?\[(ref)\](?:\[\])?/).replace("ref",U1).getRegex(),d4=I("reflink|nolink(?!\\()","g").replace("reflink",W2).replace("nolink",q2).getRegex(),c1=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,L1={_backpedal:u$,anyPunctuation:x4,autolink:u4,blockSkip:k4,br:e1,code:V4,del:u$,delLDelim:u$,delRDelim:u$,emStrongLDelim:E4,emStrongRDelimAst:I4,emStrongRDelimUnd:h4,escape:j4,link:c4,nolink:q2,punctuation:P4,reflink:W2,reflinkSearch:d4,tag:l4,text:v4,url:u$},i4={...L1,link:I(/^!?\[(label)\]\((.*?)\)/).replace("label",y0).getRegex(),reflink:I(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",y0).getRegex()},G1={...L1,emStrongRDelimAst:g4,emStrongLDelim:T4,delLDelim:y4,delRDelim:m4,url:I(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",c1).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:I(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",c1).getRegex()},r4={...G1,br:I(e1).replace("{2,}","*").getRegex(),text:I(G1.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},h0={normal:N1,gfm:R4,pedantic:b4},F0={normal:L1,gfm:G1,breaks:r4,pedantic:i4},o4={"&":"&","<":"<",">":">",'"':""","'":"'"},d1=($)=>o4[$];function A$($,J){if(J){if(s.escapeTest.test($))return $.replace(s.escapeReplace,d1)}else if(s.escapeTestNoEncode.test($))return $.replace(s.escapeReplaceNoEncode,d1);return $}function i1($){try{$=encodeURI($).replace(s.percentDecode,"%")}catch{return null}return $}function r1($,J){let Q=$.replace(s.findPipe,(Y,X,G)=>{let H=!1,B=X;for(;--B>=0&&G[B]==="\\";)H=!H;return H?"|":" |"}),q=Q.split(s.splitPipe),W=0;if(q[0].trim()||q.shift(),q.length>0&&!q.at(-1)?.trim()&&q.pop(),J)if(q.length>J)q.splice(J);else for(;q.length<J;)q.push("");for(;W<q.length;W++)q[W]=q[W].trim().replace(s.slashPipe,"|");return q}function A0($,J,Q){let q=$.length;if(q===0)return"";let W=0;for(;W<q;){let Y=$.charAt(q-W-1);if(Y===J&&!Q)W++;else if(Y!==J&&Q)W++;else break}return $.slice(0,q-W)}function n4($,J){if($.indexOf(J[1])===-1)return-1;let Q=0;for(let q=0;q<$.length;q++)if($[q]==="\\")q++;else if($[q]===J[0])Q++;else if($[q]===J[1]&&(Q--,Q<0))return q;return Q>0?-2:-1}function a4($,J=0){let Q=J,q="";for(let W of $)if(W==="\t"){let Y=4-Q%4;q+=" ".repeat(Y),Q+=Y}else q+=W,Q++;return q}function o1($,J,Q,q,W){let Y=J.href,X=J.title||null,G=$[1].replace(W.other.outputLinkReplace,"$1");q.state.inLink=!0;let H={type:$[0].charAt(0)==="!"?"image":"link",raw:Q,href:Y,title:X,text:G,tokens:q.inlineTokens(G)};return q.state.inLink=!1,H}function s4($,J,Q){let q=$.match(Q.other.indentCodeCompensation);if(q===null)return J;let W=q[1];return J.split(`
|
|
3
|
+
`).map((Y)=>{let X=Y.match(Q.other.beginningSpace);if(X===null)return Y;let[G]=X;return G.length>=W.length?Y.slice(W.length):Y}).join(`
|
|
4
|
+
`)}var Z0=class{options;rules;lexer;constructor($){this.options=$||l$}space($){let J=this.rules.block.newline.exec($);if(J&&J[0].length>0)return{type:"space",raw:J[0]}}code($){let J=this.rules.block.code.exec($);if(J){let Q=J[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:J[0],codeBlockStyle:"indented",text:this.options.pedantic?Q:A0(Q,`
|
|
5
|
+
`)}}}fences($){let J=this.rules.block.fences.exec($);if(J){let Q=J[0],q=s4(Q,J[3]||"",this.rules);return{type:"code",raw:Q,lang:J[2]?J[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):J[2],text:q}}}heading($){let J=this.rules.block.heading.exec($);if(J){let Q=J[2].trim();if(this.rules.other.endingHash.test(Q)){let q=A0(Q,"#");(this.options.pedantic||!q||this.rules.other.endingSpaceChar.test(q))&&(Q=q.trim())}return{type:"heading",raw:J[0],depth:J[1].length,text:Q,tokens:this.lexer.inline(Q)}}}hr($){let J=this.rules.block.hr.exec($);if(J)return{type:"hr",raw:A0(J[0],`
|
|
6
|
+
`)}}blockquote($){let J=this.rules.block.blockquote.exec($);if(J){let Q=A0(J[0],`
|
|
7
7
|
`).split(`
|
|
8
|
-
`),
|
|
9
|
-
`),
|
|
10
|
-
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");
|
|
11
|
-
${
|
|
12
|
-
${
|
|
13
|
-
`+
|
|
14
|
-
`),
|
|
15
|
-
`+
|
|
16
|
-
`),
|
|
17
|
-
`);continue}}return{type:"blockquote",raw:
|
|
18
|
-
`,1)[0],
|
|
19
|
-
`,1)[0],
|
|
20
|
-
|
|
21
|
-
`,1)[0],
|
|
22
|
-
`+
|
|
23
|
-
`+
|
|
24
|
-
|
|
25
|
-
`):[],
|
|
26
|
-
`?
|
|
27
|
-
`),this.blockTokens(
|
|
28
|
-
`:
|
|
8
|
+
`),q="",W="",Y=[];for(;Q.length>0;){let X=!1,G=[],H;for(H=0;H<Q.length;H++)if(this.rules.other.blockquoteStart.test(Q[H]))G.push(Q[H]),X=!0;else if(!X)G.push(Q[H]);else break;Q=Q.slice(H);let B=G.join(`
|
|
9
|
+
`),_=B.replace(this.rules.other.blockquoteSetextReplace,`
|
|
10
|
+
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");q=q?`${q}
|
|
11
|
+
${B}`:B,W=W?`${W}
|
|
12
|
+
${_}`:_;let N=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(_,Y,!0),this.lexer.state.top=N,Q.length===0)break;let F=Y.at(-1);if(F?.type==="code")break;if(F?.type==="blockquote"){let A=F,w=A.raw+`
|
|
13
|
+
`+Q.join(`
|
|
14
|
+
`),L=this.blockquote(w);Y[Y.length-1]=L,q=q.substring(0,q.length-A.raw.length)+L.raw,W=W.substring(0,W.length-A.text.length)+L.text;break}else if(F?.type==="list"){let A=F,w=A.raw+`
|
|
15
|
+
`+Q.join(`
|
|
16
|
+
`),L=this.list(w);Y[Y.length-1]=L,q=q.substring(0,q.length-F.raw.length)+L.raw,W=W.substring(0,W.length-A.raw.length)+L.raw,Q=w.substring(Y.at(-1).raw.length).split(`
|
|
17
|
+
`);continue}}return{type:"blockquote",raw:q,tokens:Y,text:W}}}list($){let J=this.rules.block.list.exec($);if(J){let Q=J[1].trim(),q=Q.length>1,W={type:"list",raw:"",ordered:q,start:q?+Q.slice(0,-1):"",loose:!1,items:[]};Q=q?`\\d{1,9}\\${Q.slice(-1)}`:`\\${Q}`,this.options.pedantic&&(Q=q?Q:"[*+-]");let Y=this.rules.other.listItemRegex(Q),X=!1;for(;$;){let H=!1,B="",_="";if(!(J=Y.exec($))||this.rules.block.hr.test($))break;B=J[0],$=$.substring(B.length);let N=a4(J[2].split(`
|
|
18
|
+
`,1)[0],J[1].length),F=$.split(`
|
|
19
|
+
`,1)[0],A=!N.trim(),w=0;if(this.options.pedantic?(w=2,_=N.trimStart()):A?w=J[1].length+1:(w=N.search(this.rules.other.nonSpaceChar),w=w>4?1:w,_=N.slice(w),w+=J[1].length),A&&this.rules.other.blankLine.test(F)&&(B+=F+`
|
|
20
|
+
`,$=$.substring(F.length+1),H=!0),!H){let L=this.rules.other.nextBulletRegex(w),z=this.rules.other.hrRegex(w),b=this.rules.other.fencesBeginRegex(w),g=this.rules.other.headingBeginRegex(w),k=this.rules.other.htmlBeginRegex(w),E=this.rules.other.blockquoteBeginRegex(w);for(;$;){let Z=$.split(`
|
|
21
|
+
`,1)[0],p;if(F=Z,this.options.pedantic?(F=F.replace(this.rules.other.listReplaceNesting," "),p=F):p=F.replace(this.rules.other.tabCharGlobal," "),b.test(F)||g.test(F)||k.test(F)||E.test(F)||L.test(F)||z.test(F))break;if(p.search(this.rules.other.nonSpaceChar)>=w||!F.trim())_+=`
|
|
22
|
+
`+p.slice(w);else{if(A||N.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||b.test(N)||g.test(N)||z.test(N))break;_+=`
|
|
23
|
+
`+F}A=!F.trim(),B+=Z+`
|
|
24
|
+
`,$=$.substring(Z.length+1),N=p.slice(w)}}W.loose||(X?W.loose=!0:this.rules.other.doubleBlankLine.test(B)&&(X=!0)),W.items.push({type:"list_item",raw:B,task:!!this.options.gfm&&this.rules.other.listIsTask.test(_),loose:!1,text:_,tokens:[]}),W.raw+=B}let G=W.items.at(-1);if(G)G.raw=G.raw.trimEnd(),G.text=G.text.trimEnd();else return;W.raw=W.raw.trimEnd();for(let H of W.items){if(this.lexer.state.top=!1,H.tokens=this.lexer.blockTokens(H.text,[]),H.task){if(H.text=H.text.replace(this.rules.other.listReplaceTask,""),H.tokens[0]?.type==="text"||H.tokens[0]?.type==="paragraph"){H.tokens[0].raw=H.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),H.tokens[0].text=H.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let _=this.lexer.inlineQueue.length-1;_>=0;_--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[_].src)){this.lexer.inlineQueue[_].src=this.lexer.inlineQueue[_].src.replace(this.rules.other.listReplaceTask,"");break}}let B=this.rules.other.listTaskCheckbox.exec(H.raw);if(B){let _={type:"checkbox",raw:B[0]+" ",checked:B[0]!=="[ ]"};H.checked=_.checked,W.loose?H.tokens[0]&&["paragraph","text"].includes(H.tokens[0].type)&&"tokens"in H.tokens[0]&&H.tokens[0].tokens?(H.tokens[0].raw=_.raw+H.tokens[0].raw,H.tokens[0].text=_.raw+H.tokens[0].text,H.tokens[0].tokens.unshift(_)):H.tokens.unshift({type:"paragraph",raw:_.raw,text:_.raw,tokens:[_]}):H.tokens.unshift(_)}}if(!W.loose){let B=H.tokens.filter((N)=>N.type==="space"),_=B.length>0&&B.some((N)=>this.rules.other.anyLine.test(N.raw));W.loose=_}}if(W.loose)for(let H of W.items){H.loose=!0;for(let B of H.tokens)B.type==="text"&&(B.type="paragraph")}return W}}html($){let J=this.rules.block.html.exec($);if(J)return{type:"html",block:!0,raw:J[0],pre:J[1]==="pre"||J[1]==="script"||J[1]==="style",text:J[0]}}def($){let J=this.rules.block.def.exec($);if(J){let Q=J[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),q=J[2]?J[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",W=J[3]?J[3].substring(1,J[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):J[3];return{type:"def",tag:Q,raw:J[0],href:q,title:W}}}table($){let J=this.rules.block.table.exec($);if(!J||!this.rules.other.tableDelimiter.test(J[2]))return;let Q=r1(J[1]),q=J[2].replace(this.rules.other.tableAlignChars,"").split("|"),W=J[3]?.trim()?J[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
25
|
+
`):[],Y={type:"table",raw:J[0],header:[],align:[],rows:[]};if(Q.length===q.length){for(let X of q)this.rules.other.tableAlignRight.test(X)?Y.align.push("right"):this.rules.other.tableAlignCenter.test(X)?Y.align.push("center"):this.rules.other.tableAlignLeft.test(X)?Y.align.push("left"):Y.align.push(null);for(let X=0;X<Q.length;X++)Y.header.push({text:Q[X],tokens:this.lexer.inline(Q[X]),header:!0,align:Y.align[X]});for(let X of W)Y.rows.push(r1(X,Y.header.length).map((G,H)=>({text:G,tokens:this.lexer.inline(G),header:!1,align:Y.align[H]})));return Y}}lheading($){let J=this.rules.block.lheading.exec($);if(J){let Q=J[1].trim();return{type:"heading",raw:J[0],depth:J[2].charAt(0)==="="?1:2,text:Q,tokens:this.lexer.inline(Q)}}}paragraph($){let J=this.rules.block.paragraph.exec($);if(J){let Q=J[1].charAt(J[1].length-1)===`
|
|
26
|
+
`?J[1].slice(0,-1):J[1];return{type:"paragraph",raw:J[0],text:Q,tokens:this.lexer.inline(Q)}}}text($){let J=this.rules.block.text.exec($);if(J)return{type:"text",raw:J[0],text:J[0],tokens:this.lexer.inline(J[0])}}escape($){let J=this.rules.inline.escape.exec($);if(J)return{type:"escape",raw:J[0],text:J[1]}}tag($){let J=this.rules.inline.tag.exec($);if(J)return!this.lexer.state.inLink&&this.rules.other.startATag.test(J[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(J[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(J[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(J[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:J[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:J[0]}}link($){let J=this.rules.inline.link.exec($);if(J){let Q=J[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(Q)){if(!this.rules.other.endAngleBracket.test(Q))return;let Y=A0(Q.slice(0,-1),"\\");if((Q.length-Y.length)%2===0)return}else{let Y=n4(J[2],"()");if(Y===-2)return;if(Y>-1){let X=(J[0].indexOf("!")===0?5:4)+J[1].length+Y;J[2]=J[2].substring(0,Y),J[0]=J[0].substring(0,X).trim(),J[3]=""}}let q=J[2],W="";if(this.options.pedantic){let Y=this.rules.other.pedanticHrefTitle.exec(q);Y&&(q=Y[1],W=Y[3])}else W=J[3]?J[3].slice(1,-1):"";return q=q.trim(),this.rules.other.startAngleBracket.test(q)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(Q)?q=q.slice(1):q=q.slice(1,-1)),o1(J,{href:q&&q.replace(this.rules.inline.anyPunctuation,"$1"),title:W&&W.replace(this.rules.inline.anyPunctuation,"$1")},J[0],this.lexer,this.rules)}}reflink($,J){let Q;if((Q=this.rules.inline.reflink.exec($))||(Q=this.rules.inline.nolink.exec($))){let q=(Q[2]||Q[1]).replace(this.rules.other.multipleSpaceGlobal," "),W=J[q.toLowerCase()];if(!W){let Y=Q[0].charAt(0);return{type:"text",raw:Y,text:Y}}return o1(Q,W,Q[0],this.lexer,this.rules)}}emStrong($,J,Q=""){let q=this.rules.inline.emStrongLDelim.exec($);if(!q||!q[1]&&!q[2]&&!q[3]&&!q[4]||q[4]&&Q.match(this.rules.other.unicodeAlphaNumeric))return;if(!(q[1]||q[3])||!Q||this.rules.inline.punctuation.exec(Q)){let W=[...q[0]].length-1,Y,X,G=W,H=0,B=q[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(B.lastIndex=0,J=J.slice(-1*$.length+W);(q=B.exec(J))!==null;){if(Y=q[1]||q[2]||q[3]||q[4]||q[5]||q[6],!Y)continue;if(X=[...Y].length,q[3]||q[4]){G+=X;continue}else if((q[5]||q[6])&&W%3&&!((W+X)%3)){H+=X;continue}if(G-=X,G>0)continue;X=Math.min(X,X+G+H);let _=[...q[0]][0].length,N=$.slice(0,W+q.index+_+X);if(Math.min(W,X)%2){let A=N.slice(1,-1);return{type:"em",raw:N,text:A,tokens:this.lexer.inlineTokens(A)}}let F=N.slice(2,-2);return{type:"strong",raw:N,text:F,tokens:this.lexer.inlineTokens(F)}}}}codespan($){let J=this.rules.inline.code.exec($);if(J){let Q=J[2].replace(this.rules.other.newLineCharGlobal," "),q=this.rules.other.nonSpaceChar.test(Q),W=this.rules.other.startingSpaceChar.test(Q)&&this.rules.other.endingSpaceChar.test(Q);return q&&W&&(Q=Q.substring(1,Q.length-1)),{type:"codespan",raw:J[0],text:Q}}}br($){let J=this.rules.inline.br.exec($);if(J)return{type:"br",raw:J[0]}}del($,J,Q=""){let q=this.rules.inline.delLDelim.exec($);if(!q)return;if(!q[1]||!Q||this.rules.inline.punctuation.exec(Q)){let W=[...q[0]].length-1,Y,X,G=W,H=this.rules.inline.delRDelim;for(H.lastIndex=0,J=J.slice(-1*$.length+W);(q=H.exec(J))!==null;){if(Y=q[1]||q[2]||q[3]||q[4]||q[5]||q[6],!Y||(X=[...Y].length,X!==W))continue;if(q[3]||q[4]){G+=X;continue}if(G-=X,G>0)continue;X=Math.min(X,X+G);let B=[...q[0]][0].length,_=$.slice(0,W+q.index+B+X),N=_.slice(W,-W);return{type:"del",raw:_,text:N,tokens:this.lexer.inlineTokens(N)}}}}autolink($){let J=this.rules.inline.autolink.exec($);if(J){let Q,q;return J[2]==="@"?(Q=J[1],q="mailto:"+Q):(Q=J[1],q=Q),{type:"link",raw:J[0],text:Q,href:q,tokens:[{type:"text",raw:Q,text:Q}]}}}url($){let J;if(J=this.rules.inline.url.exec($)){let Q,q;if(J[2]==="@")Q=J[0],q="mailto:"+Q;else{let W;do W=J[0],J[0]=this.rules.inline._backpedal.exec(J[0])?.[0]??"";while(W!==J[0]);Q=J[0],J[1]==="www."?q="http://"+J[0]:q=J[0]}return{type:"link",raw:J[0],text:Q,href:q,tokens:[{type:"text",raw:Q,text:Q}]}}}inlineText($){let J=this.rules.inline.text.exec($);if(J){let Q=this.lexer.state.inRawBlock;return{type:"text",raw:J[0],text:J[0],escaped:Q}}}},H$=class ${tokens;options;state;inlineQueue;tokenizer;constructor(J){this.tokens=[],this.tokens.links=Object.create(null),this.options=J||l$,this.options.tokenizer=this.options.tokenizer||new Z0,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let Q={other:s,block:h0.normal,inline:F0.normal};this.options.pedantic?(Q.block=h0.pedantic,Q.inline=F0.pedantic):this.options.gfm&&(Q.block=h0.gfm,this.options.breaks?Q.inline=F0.breaks:Q.inline=F0.gfm),this.tokenizer.rules=Q}static get rules(){return{block:h0,inline:F0}}static lex(J,Q){return new $(Q).lex(J)}static lexInline(J,Q){return new $(Q).inlineTokens(J)}lex(J){J=J.replace(s.carriageReturn,`
|
|
27
|
+
`),this.blockTokens(J,this.tokens);for(let Q=0;Q<this.inlineQueue.length;Q++){let q=this.inlineQueue[Q];this.inlineTokens(q.src,q.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(J,Q=[],q=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(J=J.replace(s.tabCharGlobal," ").replace(s.spaceLine,""));J;){let W;if(this.options.extensions?.block?.some((X)=>(W=X.call({lexer:this},J,Q))?(J=J.substring(W.raw.length),Q.push(W),!0):!1))continue;if(W=this.tokenizer.space(J)){J=J.substring(W.raw.length);let X=Q.at(-1);W.raw.length===1&&X!==void 0?X.raw+=`
|
|
28
|
+
`:Q.push(W);continue}if(W=this.tokenizer.code(J)){J=J.substring(W.raw.length);let X=Q.at(-1);X?.type==="paragraph"||X?.type==="text"?(X.raw+=(X.raw.endsWith(`
|
|
29
29
|
`)?"":`
|
|
30
|
-
`)+
|
|
31
|
-
`+
|
|
30
|
+
`)+W.raw,X.text+=`
|
|
31
|
+
`+W.text,this.inlineQueue.at(-1).src=X.text):Q.push(W);continue}if(W=this.tokenizer.fences(J)){J=J.substring(W.raw.length),Q.push(W);continue}if(W=this.tokenizer.heading(J)){J=J.substring(W.raw.length),Q.push(W);continue}if(W=this.tokenizer.hr(J)){J=J.substring(W.raw.length),Q.push(W);continue}if(W=this.tokenizer.blockquote(J)){J=J.substring(W.raw.length),Q.push(W);continue}if(W=this.tokenizer.list(J)){J=J.substring(W.raw.length),Q.push(W);continue}if(W=this.tokenizer.html(J)){J=J.substring(W.raw.length),Q.push(W);continue}if(W=this.tokenizer.def(J)){J=J.substring(W.raw.length);let X=Q.at(-1);X?.type==="paragraph"||X?.type==="text"?(X.raw+=(X.raw.endsWith(`
|
|
32
32
|
`)?"":`
|
|
33
|
-
`)+
|
|
34
|
-
`+
|
|
33
|
+
`)+W.raw,X.text+=`
|
|
34
|
+
`+W.raw,this.inlineQueue.at(-1).src=X.text):this.tokens.links[W.tag]||(this.tokens.links[W.tag]={href:W.href,title:W.title},Q.push(W));continue}if(W=this.tokenizer.table(J)){J=J.substring(W.raw.length),Q.push(W);continue}if(W=this.tokenizer.lheading(J)){J=J.substring(W.raw.length),Q.push(W);continue}let Y=J;if(this.options.extensions?.startBlock){let X=1/0,G=J.slice(1),H;this.options.extensions.startBlock.forEach((B)=>{H=B.call({lexer:this},G),typeof H=="number"&&H>=0&&(X=Math.min(X,H))}),X<1/0&&X>=0&&(Y=J.substring(0,X+1))}if(this.state.top&&(W=this.tokenizer.paragraph(Y))){let X=Q.at(-1);q&&X?.type==="paragraph"?(X.raw+=(X.raw.endsWith(`
|
|
35
35
|
`)?"":`
|
|
36
|
-
`)+
|
|
37
|
-
`+
|
|
36
|
+
`)+W.raw,X.text+=`
|
|
37
|
+
`+W.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=X.text):Q.push(W),q=Y.length!==J.length,J=J.substring(W.raw.length);continue}if(W=this.tokenizer.text(J)){J=J.substring(W.raw.length);let X=Q.at(-1);X?.type==="text"?(X.raw+=(X.raw.endsWith(`
|
|
38
38
|
`)?"":`
|
|
39
|
-
`)+
|
|
40
|
-
`+
|
|
41
|
-
`;return
|
|
42
|
-
`:"<pre><code>"+(
|
|
43
|
-
`}blockquote({tokens
|
|
44
|
-
${this.parser.parse(
|
|
45
|
-
`}html({text
|
|
46
|
-
`}hr(
|
|
47
|
-
`}list(
|
|
48
|
-
`+
|
|
49
|
-
`}listitem(
|
|
50
|
-
`}checkbox({checked
|
|
51
|
-
`}table(
|
|
39
|
+
`)+W.raw,X.text+=`
|
|
40
|
+
`+W.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=X.text):Q.push(W);continue}if(J){let X="Infinite loop on byte: "+J.charCodeAt(0);if(this.options.silent){console.error(X);break}else throw Error(X)}}return this.state.top=!0,Q}inline(J,Q=[]){return this.inlineQueue.push({src:J,tokens:Q}),Q}inlineTokens(J,Q=[]){this.tokenizer.lexer=this;let q=J,W=null;if(this.tokens.links){let H=Object.keys(this.tokens.links);if(H.length>0)for(;(W=this.tokenizer.rules.inline.reflinkSearch.exec(q))!==null;)H.includes(W[0].slice(W[0].lastIndexOf("[")+1,-1))&&(q=q.slice(0,W.index)+"["+"a".repeat(W[0].length-2)+"]"+q.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(W=this.tokenizer.rules.inline.anyPunctuation.exec(q))!==null;)q=q.slice(0,W.index)+"++"+q.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let Y;for(;(W=this.tokenizer.rules.inline.blockSkip.exec(q))!==null;)Y=W[2]?W[2].length:0,q=q.slice(0,W.index+Y)+"["+"a".repeat(W[0].length-Y-2)+"]"+q.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);q=this.options.hooks?.emStrongMask?.call({lexer:this},q)??q;let X=!1,G="";for(;J;){X||(G=""),X=!1;let H;if(this.options.extensions?.inline?.some((_)=>(H=_.call({lexer:this},J,Q))?(J=J.substring(H.raw.length),Q.push(H),!0):!1))continue;if(H=this.tokenizer.escape(J)){J=J.substring(H.raw.length),Q.push(H);continue}if(H=this.tokenizer.tag(J)){J=J.substring(H.raw.length),Q.push(H);continue}if(H=this.tokenizer.link(J)){J=J.substring(H.raw.length),Q.push(H);continue}if(H=this.tokenizer.reflink(J,this.tokens.links)){J=J.substring(H.raw.length);let _=Q.at(-1);H.type==="text"&&_?.type==="text"?(_.raw+=H.raw,_.text+=H.text):Q.push(H);continue}if(H=this.tokenizer.emStrong(J,q,G)){J=J.substring(H.raw.length),Q.push(H);continue}if(H=this.tokenizer.codespan(J)){J=J.substring(H.raw.length),Q.push(H);continue}if(H=this.tokenizer.br(J)){J=J.substring(H.raw.length),Q.push(H);continue}if(H=this.tokenizer.del(J,q,G)){J=J.substring(H.raw.length),Q.push(H);continue}if(H=this.tokenizer.autolink(J)){J=J.substring(H.raw.length),Q.push(H);continue}if(!this.state.inLink&&(H=this.tokenizer.url(J))){J=J.substring(H.raw.length),Q.push(H);continue}let B=J;if(this.options.extensions?.startInline){let _=1/0,N=J.slice(1),F;this.options.extensions.startInline.forEach((A)=>{F=A.call({lexer:this},N),typeof F=="number"&&F>=0&&(_=Math.min(_,F))}),_<1/0&&_>=0&&(B=J.substring(0,_+1))}if(H=this.tokenizer.inlineText(B)){J=J.substring(H.raw.length),H.raw.slice(-1)!=="_"&&(G=H.raw.slice(-1)),X=!0;let _=Q.at(-1);_?.type==="text"?(_.raw+=H.raw,_.text+=H.text):Q.push(H);continue}if(J){let _="Infinite loop on byte: "+J.charCodeAt(0);if(this.options.silent){console.error(_);break}else throw Error(_)}}return Q}},m0=class{options;parser;constructor($){this.options=$||l$}space($){return""}code({text:$,lang:J,escaped:Q}){let q=(J||"").match(s.notSpaceStart)?.[0],W=$.replace(s.endingNewline,"")+`
|
|
41
|
+
`;return q?'<pre><code class="language-'+A$(q)+'">'+(Q?W:A$(W,!0))+`</code></pre>
|
|
42
|
+
`:"<pre><code>"+(Q?W:A$(W,!0))+`</code></pre>
|
|
43
|
+
`}blockquote({tokens:$}){return`<blockquote>
|
|
44
|
+
${this.parser.parse($)}</blockquote>
|
|
45
|
+
`}html({text:$}){return $}def($){return""}heading({tokens:$,depth:J}){return`<h${J}>${this.parser.parseInline($)}</h${J}>
|
|
46
|
+
`}hr($){return`<hr>
|
|
47
|
+
`}list($){let{ordered:J,start:Q}=$,q="";for(let X=0;X<$.items.length;X++){let G=$.items[X];q+=this.listitem(G)}let W=J?"ol":"ul",Y=J&&Q!==1?' start="'+Q+'"':"";return"<"+W+Y+`>
|
|
48
|
+
`+q+"</"+W+`>
|
|
49
|
+
`}listitem($){return`<li>${this.parser.parse($.tokens)}</li>
|
|
50
|
+
`}checkbox({checked:$}){return"<input "+($?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:$}){return`<p>${this.parser.parseInline($)}</p>
|
|
51
|
+
`}table($){let J="",Q="";for(let W=0;W<$.header.length;W++)Q+=this.tablecell($.header[W]);J+=this.tablerow({text:Q});let q="";for(let W=0;W<$.rows.length;W++){let Y=$.rows[W];Q="";for(let X=0;X<Y.length;X++)Q+=this.tablecell(Y[X]);q+=this.tablerow({text:Q})}return q&&(q=`<tbody>${q}</tbody>`),`<table>
|
|
52
52
|
<thead>
|
|
53
|
-
`+
|
|
54
|
-
`+
|
|
55
|
-
`}tablerow({text
|
|
56
|
-
${
|
|
57
|
-
`}tablecell(
|
|
58
|
-
`}strong({tokens
|
|
59
|
-
Please report this to https://github.com/markedjs/marked.`,t){let o="<p>An error occurred:</p><pre>"+te(n.message+"",!0)+"</pre>";return e?Promise.resolve(o):o}if(e)return Promise.reject(n);throw n}}},fe=new kr;function S(t,e){return fe.parse(t,e)}S.options=S.setOptions=function(t){return fe.setOptions(t),S.defaults=fe.defaults,_t(S.defaults),S};S.getDefaults=nt;S.defaults=he;S.use=function(...t){return fe.use(...t),S.defaults=fe.defaults,_t(S.defaults),S};S.walkTokens=function(t,e){return fe.walkTokens(t,e)};S.parseInline=fe.parseInline;S.Parser=Z;S.parser=Z.parse;S.Renderer=He;S.TextRenderer=ut;S.Lexer=K;S.lexer=K.lex;S.Tokenizer=_e;S.Hooks=Re;S.parse=S;var{options:rs,setOptions:os,use:ss,walkTokens:is,parseInline:as}=S;var ls=Z.parse,cs=K.lex;import Vt from"react";import{jsxDEV as dt}from"react/jsx-dev-runtime";S.setOptions({gfm:!0,breaks:!1});var vr=new Set(["a","abbr","b","br","code","del","em","i","kbd","mark","q","s","small","span","strong","sub","sup","time","u"]),wr=new Set(["Priority"]);function Sr(t){if(typeof t==="string"||typeof t==="number")return!0;if(!Vt.isValidElement(t))return!1;if(typeof t!=="object"||t===null||!("type"in t))return!1;let e=t.type;if(typeof e==="string")return vr.has(e);if(typeof e==="function"){let n="displayName"in e&&typeof e.displayName==="string"?e.displayName:e.name;return n?wr.has(n):!1}return!1}function Ar(t,e){let n=t.trim();if(!n)return null;let o=S.parse(n,{async:!1});return dt("div",{className:"prose-canvas","data-md":"markdown","data-md-source":n,dangerouslySetInnerHTML:{__html:o}},e,!1,void 0,this)}function Rr(t,e){return dt("div",{className:"prose-canvas",children:t.map((n,o)=>{if(typeof n==="string"||typeof n==="number"){let r=S.parseInline(String(n),{async:!1});return dt("span",{dangerouslySetInnerHTML:{__html:r}},o,!1,void 0,this)}return n})},e,!1,void 0,this)}function ie(t){let e=Vt.Children.toArray(t);if(e.length===0)return null;let n=[],o=[],r=0,s=()=>{if(o.length===0)return;if(o.some((l)=>typeof l!=="string"&&typeof l!=="number"))n.push(Rr(o,`md-${r++}`));else{let l=Ar(o.join(""),`md-${r++}`);if(l)n.push(l)}o=[]};for(let i of e)if(Sr(i))o.push(i);else s(),n.push(i);return s(),n}import{jsxDEV as pt}from"react/jsx-dev-runtime";var Tr={info:{bg:"bg-accent-blue-muted",icon:"i",iconColor:"text-accent-blue"},warning:{bg:"bg-accent-amber-muted",icon:"!",iconColor:"text-accent-amber"},danger:{bg:"bg-accent-red-muted",icon:"✕",iconColor:"text-accent-red"},tip:{bg:"bg-accent-green-muted",icon:"✓",iconColor:"text-accent-green"}};function Er({type:t="info",children:e}){let n=Tr[t];return pt("div",{className:`${n.bg} relative rounded-lg px-5 py-4 mt-3 flex gap-3 items-start`,"data-md":"callout","data-md-type":t,children:[pt("span",{"aria-hidden":"true",className:`${n.iconColor} opacity-70 text-base leading-relaxed flex-shrink-0 mt-px`,children:n.icon},void 0,!1,void 0,this),pt("div",{className:"text-body text-text-secondary leading-relaxed",children:ie(e)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as be}from"react/jsx-dev-runtime";function Nr({items:t}){return be("ul",{className:"space-y-1 mt-3","data-md":"checklist",children:t.map((e,n)=>be("li",{"data-md":"checklist-item","data-md-label":e.label,className:"relative flex items-start gap-2.5 py-1",children:[be("span",{className:`w-4 h-4 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 transition-all ${e.checked?"bg-accent-green":"border-[1.5px] border-border-hover"}`,children:e.checked&&be("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:be("path",{d:"M2.5 5L4.5 7L7.5 3",style:{stroke:"var(--color-text-inverse)"},strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),be("span",{className:`text-body font-body ${e.checked?"text-text-tertiary line-through decoration-border-hover":"text-text-secondary"}`,children:e.label},void 0,!1,void 0,this)]},n,!0,void 0,this))},void 0,!1,void 0,this)}import{useAnnotations as cn,useResponseRegistration as un}from"#canvas/runtime";import{useEffect as dn,useMemo as pn,useRef as fn,useState as hn}from"react";import{AnnotationCtx as ya,AnnotationHostContext as ka,SessionContext as va,useAnnotationHost as wa,useAnnotations as Sa}from"@fabrika/annotations/runtime";function ft(t,e){let n=[],o=Cr(t);for(let r of o){let s=document.createRange();if(s.selectNodeContents(r),r===t.startContainer)s.setStart(r,t.startOffset);if(r===t.endContainer)s.setEnd(r,t.endOffset);let i=s.toString();if(!i||!i.trim())continue;let l=document.createElement("mark");l.setAttribute("data-annotation-id",e);try{s.surroundContents(l)}catch{let a=s.extractContents();l.appendChild(a),s.insertNode(l)}n.push(l)}return n}function ht(t){let e=t.parentElement;if(e?.classList.contains("select-none"))return!1;if(e?.closest("[data-annotation-id]"))return!1;return!0}function Cr(t){let e=[],n=t.commonAncestorContainer;if(n.nodeType===Node.TEXT_NODE)return e.push(n),e;let o=document.createTreeWalker(n,NodeFilter.SHOW_TEXT),r;while(r=o.nextNode()){if(!ht(r))continue;if(t.intersectsNode(r))e.push(r)}return e}function gt(t,e){for(let n of e){if(t.querySelector(`[data-annotation-id="${n.id}"]`))continue;let o=n.snippet;if(!o)continue;let{fullText:r,textNodes:s}=Ir(t),i=[],l=0;while(!0){let d=r.indexOf(o,l);if(d===-1)break;i.push(d),l=d+1}let[a]=i;if(a===void 0)continue;let c=a;if(i.length>1&&n.context){let d=-1;for(let f of i){let m=0;if(n.context.before){let b=r.slice(Math.max(0,f-80),f);if(b.includes(n.context.before))m+=2;else if(n.context.before.length>10&&b.includes(n.context.before.slice(-10)))m+=1}if(n.context.after){let b=r.slice(f+o.length,f+o.length+80);if(b.includes(n.context.after))m+=2;else if(n.context.after.length>10&&b.includes(n.context.after.slice(0,10)))m+=1}if(m>d)d=m,c=f}}let u=c,p=c+o.length,g=jt(s,u),h=jt(s,p);if(!g||!h)continue;try{let d=document.createRange();d.setStart(g.node,g.offset),d.setEnd(h.node,h.offset),ft(d,n.id)}catch{}}}function Ir(t){let e=[],n="",o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),r;while(r=o.nextNode()){if(!ht(r))continue;e.push({node:r,start:n.length}),n+=r.textContent||""}return{fullText:n,textNodes:e}}function jt(t,e){for(let n=t.length-1;n>=0;n--){let o=t[n];if(!o||o.start>e)continue;let r=e-o.start,s=o.node.textContent?.length??0;if(r<=s)return{node:o.node,offset:r}}return null}function Ee(t){return{kind:t.kind,owns:(e)=>t.parse(e)!==null,find:(e,n)=>{let o=t.parse(e);return o===null?null:t.find(o,n)},restore:(e,n)=>{let o=t.parse(n.snippet);if(o===null)return;t.restore?.(o,e,n)},describe:(e)=>{let n=t.parse(e);if(n===null||!t.describe)return null;return t.describe(n)}}}function Kt(t){let e=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),n="";for(let o=e.nextNode();o;o=e.nextNode()){let r=o.parentElement?.closest("[aria-hidden='true']");if(r&&t.contains(r))continue;n+=o.textContent??""}return n.trim()}function Be(t,e,n){return{selector:t,snippet:(o)=>{let r=o.getAttribute(n);return r?`${e} ${r}`:null}}}var mt=[Be("[data-md='item']","[Item]","data-md-label"),Be("[data-md='section']","[Section]","data-md-title"),Be("[data-md='checklist-item']","[Checklist]","data-md-label"),Be("[data-md='image']","[Image]","data-md-src"),{selector:"[data-md='callout']",snippet:(t)=>`[Callout:${t.getAttribute("data-md-type")||"info"}] ${Kt(t).slice(0,60)||"Callout"}`},{selector:"[data-md='note']",snippet:(t)=>`[Note] ${Kt(t).slice(0,60)||"Note"}`},{selector:"[data-md='table'] tbody tr",snippet:(t)=>{let e=Array.from(t.querySelectorAll("td")).map((n)=>n.textContent?.trim()).filter(Boolean);return e.length?`[Row] ${e.join(" | ")}`:null}}],Lr=["[data-md='choice-option']","[data-md='multichoice-option']","[data-md='userinput']","[data-md='rangeinput']"],xt=mt.map((t)=>t.selector).join(", "),Zt=[...mt.map((t)=>t.selector),...Lr].join(", ");function bt(t){for(let e of mt)if(t.matches(e.selector))return e.snippet(t);return null}var yt={kind:"block",parse:(t)=>t.startsWith("[")?{snippet:t}:null,format:(t)=>t.snippet,find:(t,e)=>{for(let n of e.querySelectorAll(xt)){if(!(n instanceof HTMLElement))continue;if(bt(n)===t.snippet)return n}return null}};var Pr=/^\[Region:(rect|ellipse)\] ([\s\S]+) @(0|[1-9]\d*),(0|[1-9]\d*),(0|[1-9]\d*),(0|[1-9]\d*)$/;function Mr(t){if(t==="rect")return"rect";if(t==="ellipse")return"ellipse";return null}function qe(t){if(t===void 0)return null;let e=Number(t);if(!Number.isInteger(e)||e<0||e>1e4)return null;return e}function Yt(t){return{left:`${t.x/100}%`,top:`${t.y/100}%`,width:`${t.w/100}%`,height:`${t.h/100}%`}}function Fe(t){return`${(t/100).toFixed(1).replace(/\.0$/,"")}%`}function vt(t){let e=`${Fe(t.x)}-${Fe(t.x+t.w)}`,n=`${Fe(t.y)}-${Fe(t.y+t.h)}`;return`[Region] ${t.src} — ${t.shape} x ${e}, y ${n} of the image`}function kt(t,e){for(let n of e.querySelectorAll("[data-md='image']")){if(!(n instanceof HTMLElement))continue;if(n.getAttribute("data-md-src")!==t)continue;let o=n.querySelector("[data-annotation-image]");if(o instanceof HTMLElement)return o}return null}function Xt(t,e){let n=Yt(e);t.style.left=n.left,t.style.top=n.top,t.style.width=n.width,t.style.height=n.height}function wt(t,e,n){let o=document.createElement("div");return o.className="ann-region",o.setAttribute("data-annotation-id",n),o.setAttribute("data-annotation-region",e),Xt(o,t),o}var Ge={kind:"region",parse:(t)=>{let e=Pr.exec(t);if(!e)return null;let n=Mr(e[1]),o=e[2],r=qe(e[3]),s=qe(e[4]),i=qe(e[5]),l=qe(e[6]);if(n===null||o===void 0)return null;if(r===null||s===null||i===null||l===null)return null;if(i<1||l<1)return null;return{src:o,shape:n,x:r,y:s,w:i,h:l}},format:(t)=>`[Region:${t.shape}] ${t.src} @${t.x},${t.y},${t.w},${t.h}`,find:(t,e)=>kt(t.src,e),restore:(t,e,n)=>{if(e.querySelector(`[data-annotation-id="${n.id}"]`))return;let o=kt(t.src,e);if(!o)return;o.appendChild(wt(t,t.shape,n.id))},describe:vt};var St={kind:"text",parse:(t)=>t?{text:t}:null,format:(t)=>t.text,find:()=>null,restore:(t,e,n)=>{gt(e,[n])}};var $r=[Ee(Ge),Ee(yt),Ee(St)];import{AnnotationCtx as js,SessionContext as Ks,useAnnotationHost as Zs}from"@fabrika/annotations/runtime";import{useEffect as Qs,useState as Js}from"react";import{useCallback as qs,useMemo as Fs,useState as Gs}from"react";function Ne(t){return t.uploadUrl!==null}function oe(t,e){t.style.height="auto",t.style.height=(e?Math.max(e,t.scrollHeight):t.scrollHeight)+"px"}import{useAnnotations as Ue}from"@fabrika/annotations/runtime";import{useAnnotationHost as _r}from"@fabrika/annotations/runtime";import{useCallback as se,useEffect as Hr,useRef as Rt,useState as Tt}from"react";import{jsxDEV as B}from"react/jsx-dev-runtime";function Qt(t){if(t.startsWith("/s/")||t.startsWith("http://")||t.startsWith("https://"))return t;return`/api/uploads/${t.split("/").pop()}`}async function zr(t,e){let n=t.uploadUrl;if(!n)return null;let o=new FormData;o.append("image",e);try{let s=await(await fetch(n(),{method:"POST",body:o})).json();if(t.isShared)return s.url||null;return s.path||null}catch{return null}}function We({note:t,onNoteChange:e,images:n,onAddImage:o,onRemoveImage:r,sessionId:s,placeholder:i="Add your note...",autoFocus:l=!1,autoResize:a=!1,readOnly:c=!1,onKeyDown:u,onTextareaClick:p,textareaRef:g,textareaClassName:h,textareaStyle:d,minHeight:f,attachButton:m="always",openFilePickerRef:b}){let R=_r(),v=!c&&Ne(R),[w,N]=Tt(!1),[L,F]=Tt(!1),[U,Y]=Tt(!1),C=Rt(0),M=Rt(null),G=Rt(null),H=se(()=>G.current?.click(),[]);if(b)b.current=H;let X=se((y)=>{if(M.current=y,g)g.current=y;if(y&&a)oe(y,f)},[g,a,f]);Hr(()=>{if(l&&M.current){let y=M.current;if(y.focus(),y.value)y.setSelectionRange(y.value.length,y.value.length)}},[l]);let W=se(async(y)=>{if(!y.type.startsWith("image/"))return;F(!0);try{let z=await zr(R,y);if(z)o(z)}finally{F(!1)}},[R,o]),ce=se((y)=>{for(let z of y.clipboardData?.items??[])if(z.type.startsWith("image/")){y.preventDefault();let me=z.getAsFile();if(me)W(me);return}},[W]),V=se((y)=>{if(y.preventDefault(),C.current++,C.current===1)N(!0)},[]),j=se((y)=>{y.preventDefault()},[]),Q=se((y)=>{if(y.preventDefault(),C.current--,C.current===0)N(!1)},[]),J=se((y)=>{y.preventDefault(),C.current=0,N(!1);for(let z of y.dataTransfer?.files??[])if(z.type.startsWith("image/"))W(z)},[W]),ue=se((y)=>{if(e(y.currentTarget.value),a)y.currentTarget.style.height="auto",y.currentTarget.style.height=(f?Math.max(f,y.currentTarget.scrollHeight):y.currentTarget.scrollHeight)+"px"},[e,a,f]),de="w-full bg-transparent text-[13px] font-body text-text-primary resize-none focus:outline-none leading-relaxed p-0 border-none",et={width:"100%",background:"transparent",border:"none",color:"var(--color-text-primary)",fontFamily:"'Inter', sans-serif",fontSize:"13px",lineHeight:"1.5",outline:"none",...a?{resize:"none",overflow:"hidden"}:{resize:"vertical"}},Me=v&&(m==="always"||m==="on-focus"&&U);return B("div",{style:{position:"relative"},onDragEnter:v?V:void 0,onDragOver:v?j:void 0,onDragLeave:v?Q:void 0,onDrop:v?J:void 0,children:[B("textarea",{ref:X,value:t,onChange:c?void 0:ue,onPaste:v?ce:void 0,onKeyDown:u,onClick:p,onFocus:()=>Y(!0),onBlur:()=>{setTimeout(()=>Y(!1),150)},readOnly:c,placeholder:i,className:h??de,style:d??et,rows:a?1:void 0},void 0,!1,void 0,this),v&&B("input",{ref:G,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:(y)=>{let z=y.currentTarget.files;if(z)for(let me of z)W(me);y.currentTarget.value=""}},void 0,!1,void 0,this),(n.length>0||Me)&&B("div",{style:{display:"flex",gap:"6px",flexWrap:"wrap",marginTop:"6px",alignItems:"center"},children:[n.map((y)=>B("div",{style:{position:"relative",width:"56px",height:"56px",borderRadius:"6px",overflow:"hidden",border:"1px solid var(--color-border-subtle)",flexShrink:0},children:[B("img",{src:Qt(y),alt:"",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}},void 0,!1,void 0,this),!c&&B("button",{onClick:(z)=>{z.stopPropagation(),r(y)},style:{position:"absolute",top:"2px",right:"2px",width:"16px",height:"16px",borderRadius:"50%",background:"rgba(0,0,0,0.6)",color:"white",border:"none",cursor:"pointer",fontSize:"11px",display:"flex",alignItems:"center",justifyContent:"center",lineHeight:1,padding:0},title:"Remove image",children:"×"},void 0,!1,void 0,this)]},y,!0,void 0,this)),Me&&B(Ve,{onClick:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this),L&&B("div",{style:{fontSize:"11px",color:"var(--color-text-tertiary)",fontFamily:"'Inter', sans-serif",marginTop:"4px"},children:"Uploading..."},void 0,!1,void 0,this),w&&B("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--color-highlight-bg)",opacity:0.9,border:"2px dashed var(--color-highlight-border)",borderRadius:"6px",zIndex:10,pointerEvents:"none",fontSize:"12px",fontFamily:"'Inter', sans-serif",color:"var(--color-text-secondary)"},children:"Drop image"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Ve({onClick:t,size:e=16}){return B("button",{onClick:(n)=>{n.stopPropagation(),t()},style:{width:`${e*2}px`,height:`${e*2}px`,borderRadius:"6px",border:"none",background:"transparent",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--color-text-tertiary)",flexShrink:0,transition:"color 0.15s"},title:"Attach image",onMouseEnter:(n)=>{n.currentTarget.style.color="var(--color-text-secondary)"},onMouseLeave:(n)=>{n.currentTarget.style.color="var(--color-text-tertiary)"},children:B("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[B("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"},void 0,!1,void 0,this),B("circle",{cx:"8.5",cy:"8.5",r:"1.5"},void 0,!1,void 0,this),B("polyline",{points:"21 15 16 10 5 21"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import{SessionContext as fi}from"@fabrika/annotations/runtime";import{useContext as gi,useEffect as mi,useRef as xi}from"react";import{SessionContext as Fr,useAnnotationHost as Gr}from"@fabrika/annotations/runtime";import{useCallback as je,useContext as Ur,useEffect as Wr,useMemo as nn,useRef as Ke,useState as ye}from"react";import{createPortal as Vr}from"react-dom";function en(t){let e=/^(\d+(?:\.\d+)?)px$/.exec(t.trim());return e?Number(e[1]):void 0}function tn(t,e,n=280){let r=e||document.body,s=t.getBoundingClientRect(),i=r.getBoundingClientRect(),l=r===document.body?0:r.scrollTop,a=s.bottom-i.top+l+8,c=Math.max(0,Math.min(s.left-i.left,i.width-n-12));return r.style.position="relative",{style:{position:"absolute",top:`${a}px`,left:`${c}px`},parent:r}}import{jsxDEV as _,Fragment as jr}from"react/jsx-dev-runtime";function on({anchorEl:t,scrollContainer:e,onClose:n,ignoreSelector:o,zIndex:r="50",padding:s="12px",width:i="280px",children:l}){let a=Ke(null),c=Ke(n);c.current=n;let{style:u,parent:p}=tn(t,e,en(i));return Wr(()=>{let g=setTimeout(()=>{let h=(d)=>{if(a.current&&!a.current.contains(d.target)){if(o&&d.target.closest?.(o))return;c.current(),document.removeEventListener("mousedown",h)}};return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},0);return()=>clearTimeout(g)},[o]),Vr(_("div",{ref:a,style:{...u,zIndex:r,width:i,background:"var(--color-bg-elevated)",border:"1px solid var(--color-border-hover)",borderRadius:"8px",boxShadow:"0 4px 12px var(--color-shadow)",padding:s,fontFamily:"'Inter', sans-serif"},children:l},void 0,!1,void 0,this),p)}var sn=[{label:"Clarity",items:["Unclear","Why?","Needs example","Missing context"]},{label:"Scope",items:["Overkill","Out of scope","Important","Risky"]},{label:"Action",items:["Simplify","Rethink","Expand on this","Skip this"]}],rn=sn.flatMap((t)=>t.items);function an({anchorEl:t,scrollContainer:e,snippet:n,truncateAt:o=100,header:r,initialNote:s="",initialImages:i,onConfirm:l,onCancel:a,onDelete:c}){let u=Ur(Fr),p=Gr(),g=Ne(p),h=s!==""||!!c,[d,f]=ye(s),[m,b]=ye(i||[]),[R,v]=ye(null),[w,N]=ye(h),[L,F]=ye(!1),U=Ke(null),Y=Ke(null),C=je(()=>{if(d.trim()||m.length>0)l(d.trim(),m);else if(h&&c)c();else a()},[d,m,l,a,h,c]),M=je(()=>{if(h){if(!d.trim()&&m.length===0&&c){c(),a();return}l(d,m);return}a()},[d,m,h,l,a,c]),G=!h,H=d.trim().length>0?rn.filter((x)=>x.toLowerCase().startsWith(d.trim().toLowerCase())):rn,X=!G||w?[]:H.length===1&&H[0]?.toLowerCase()===d.trim().toLowerCase()?[]:H,W=new Set(X),ce=sn.map((x)=>({label:x.label,items:x.items.filter((E)=>W.has(E))})).filter((x)=>x.items.length>0),V=ce.map((x)=>x.items),j=(x)=>V[x]?.length??0,Q=V.flat(),J=nn(()=>{if(R===null)return 0;let x=0;for(let E=0;E<V.length;E++){if(R<x+j(E))return E;x+=j(E)}return 0},[R,V]),ue=nn(()=>{if(R===null)return 0;let x=0;for(let E=0;E<J;E++)x+=j(E);return R-x},[R,J,V]),de=(x,E)=>{let O=0;for(let ee=0;ee<x;ee++)O+=j(ee);return O+E},[et,Me]=ye(d);if(d!==et)Me(d),v(null),N(h);let y=je((x)=>{f(x)},[]),z=n.length>o?n.slice(0,o)+"...":n,me=je((x)=>{if(Q.length>0&&(x.key==="ArrowDown"||x.key==="ArrowUp"||x.key==="ArrowLeft"||x.key==="ArrowRight")){if(x.preventDefault(),R===null){v(0);return}if(x.key==="ArrowDown"){let O=Math.min(ue+1,j(J)-1);v(de(J,O))}else if(x.key==="ArrowUp"){let O=Math.max(ue-1,0);v(de(J,O))}else if(x.key==="ArrowRight"){let O=Math.min(J+1,V.length-1),ee=Math.min(ue,j(O)-1);v(de(O,ee))}else if(x.key==="ArrowLeft"){let O=Math.max(J-1,0),ee=Math.min(ue,j(O)-1);v(de(O,ee))}return}let E=R===null?void 0:Q[R];if(E!==void 0){if(x.key==="Tab"){x.preventDefault(),y(E);return}if(x.key==="Enter"&&!x.shiftKey){x.preventDefault(),l(E,m);return}}if(x.key==="Enter"&&!x.shiftKey){x.preventDefault(),C();return}if(x.key==="Escape")if(Q.length>0&&!w)N(!0);else if(h)M();else a()},[Q,R,ue,J,V,de,y,l,m,C,w,h,M,a]);return _(on,{anchorEl:t,scrollContainer:e,onClose:h?M:a,ignoreSelector:h?"[data-annotation-id]":void 0,zIndex:h?"60":"50",padding:h?"10px 12px":"12px",width:"420px",children:[!h&&(r??_("div",{style:{fontSize:"11px",color:"var(--color-text-tertiary)",fontStyle:"italic",marginBottom:"8px",lineHeight:"1.4",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:["“",z,"”"]},void 0,!0,void 0,this)),_(We,{note:d,onNoteChange:f,images:m,onAddImage:(x)=>b((E)=>[...E,x]),onRemoveImage:(x)=>b((E)=>E.filter((O)=>O!==x)),sessionId:u,autoFocus:!0,autoResize:h,textareaRef:U,onKeyDown:me,attachButton:"none",openFilePickerRef:Y,textareaStyle:h?{width:"100%",background:"transparent",border:"none",color:"var(--color-text-primary)",fontFamily:"'Inter', sans-serif",fontSize:"13px",lineHeight:"1.5",resize:"none",outline:"none",overflow:"hidden"}:{width:"100%",minHeight:"60px",background:"transparent",border:"none",color:"var(--color-text-primary)",fontFamily:"'Inter', sans-serif",fontSize:"13px",lineHeight:"1.5",resize:"vertical",outline:"none"},placeholder:"Add your note..."},void 0,!1,void 0,this),_("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:h?"6px":"8px"},children:[g&&_(Ve,{onClick:()=>Y.current?.(),size:14},void 0,!1,void 0,this),_("div",{style:{flex:1}},void 0,!1,void 0,this),h?_("button",{onClick:()=>{if(c)c();a()},onMouseEnter:()=>F(!0),onMouseLeave:()=>F(!1),style:{fontSize:"11px",color:L?"var(--color-accent-red)":"var(--color-text-tertiary)",background:"none",border:"none",cursor:"pointer",padding:"2px 0",fontFamily:"'Inter', sans-serif"},children:"Delete"},void 0,!1,void 0,this):_(jr,{children:[_("button",{onClick:a,style:{fontSize:"11px",color:"var(--color-text-tertiary)",background:"none",border:"none",cursor:"pointer",padding:"4px 12px",fontFamily:"'Inter', sans-serif"},children:"Cancel"},void 0,!1,void 0,this),_("button",{onClick:C,style:{fontSize:"11px",fontWeight:500,padding:"4px 12px",borderRadius:"6px",background:"var(--color-highlight-bg)",color:"var(--color-text-primary)",border:"1px solid var(--color-highlight-border)",cursor:"pointer",fontFamily:"'Inter', sans-serif"},children:"Add"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q.length>0&&_("div",{style:{marginTop:"6px",borderTop:"1px solid var(--color-border-subtle)",paddingTop:"8px",display:"flex",gap:"4px"},children:ce.map((x)=>_("div",{style:{flex:1},children:[_("div",{style:{fontSize:"10px",fontWeight:600,color:"var(--color-text-disabled)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"2px 6px",marginBottom:"2px",fontFamily:"'Inter', sans-serif"},children:x.label},void 0,!1,void 0,this),x.items.map((E)=>{let O=Q.indexOf(E);return _("div",{onMouseDown:(ee)=>{ee.preventDefault(),ee.stopPropagation(),y(E)},onMouseEnter:()=>v(O),style:{padding:"3px 6px",fontSize:"12px",borderRadius:"4px",fontFamily:"'Inter', sans-serif",color:O===R?"var(--color-text-primary)":"var(--color-text-secondary)",background:O===R?"var(--color-highlight-selected)":"transparent",cursor:"pointer"},children:[_("span",{style:{fontWeight:500},children:E.slice(0,d.trim().length)},void 0,!1,void 0,this),E.slice(d.trim().length)]},E,!0,void 0,this)})]},x.label,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Ce({anchorEl:t,scrollContainer:e,snippet:n,truncateAt:o,header:r,onAdd:s,onCancel:i}){return _(an,{anchorEl:t,scrollContainer:e,snippet:n,truncateAt:o,header:r,onConfirm:(l,a)=>s(l,a),onCancel:i},void 0,!1,void 0,this)}import{useEffect as zi,useRef as Di,useState as Bi}from"react";import{useCallback as Zi,useEffect as Yi,useRef as Xi,useState as Qi}from"react";import{jsxDEV as ln}from"react/jsx-dev-runtime";function ke({note:t,onChange:e}){return ln("div",{className:"mt-1.5",children:ln("textarea",{value:t,onChange:(n)=>e(n.currentTarget.value),className:"w-full bg-transparent text-[12px] font-body text-text-primary resize-none focus:outline-none border-none placeholder:text-text-disabled transition-colors min-h-[20px] p-0 leading-relaxed",placeholder:"Add a note...",rows:1,onInput:(n)=>oe(n.currentTarget),ref:(n)=>{if(n)oe(n)}},void 0,!1,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as I}from"react/jsx-dev-runtime";function gn(t){return t.map((e)=>typeof e==="string"?{value:e,label:e}:{value:e.value,label:e.label??e.value})}function ro({id:t,label:e,options:n,required:o}){let{responses:r,setResponse:s}=cn();un(t);let i=pn(()=>gn(n),[n]),l=r.get(t),a=l?.value,c=l?.note||"",[u,p]=hn(!1),g=fn(null);if(!r.has(t))s(t,{id:t,type:"radio",label:e,value:null,options:i.map((f)=>f.value),required:o});let h=(f)=>{s(t,{...l,value:f})};dn(()=>{let f=g.current;if(!f)return;let m=(b)=>{let v=b.target.closest("[data-md-label]")?.getAttribute("data-md-label"),w=i.find((N)=>N.label===v);if(w)h(w.value)};return f.addEventListener("kb-select",m),()=>f.removeEventListener("kb-select",m)},[i,h]);let d=l?.required&&!a;return I("div",{ref:g,"data-md":"choice","data-md-label":e,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[I("div",{className:"flex items-baseline gap-2 mb-2",children:[I("span",{className:"text-[13px] font-body font-medium text-text-primary",children:e},void 0,!1,void 0,this),o&&I("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),I("div",{className:"space-y-1",children:i.map(({value:f,label:m})=>I("label",{"data-md":"choice-option","data-md-label":m,onClick:()=>h(f),className:`flex items-center gap-2.5 px-3 py-2 rounded-lg cursor-pointer transition-all duration-150 ${a===f?"bg-highlight-selected":"hover:bg-bg-elevated"}`,children:[I("span",{className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center flex-shrink-0 transition-all ${a===f?"border-accent-amber bg-accent-amber":"border-border-strong"}`,children:a===f&&I("span",{className:"w-1.5 h-1.5 rounded-full bg-text-inverse"},void 0,!1,void 0,this)},void 0,!1,void 0,this),I("span",{className:"text-[13px] font-body text-text-secondary",children:m},void 0,!1,void 0,this)]},f,!0,void 0,this))},void 0,!1,void 0,this),I(ke,{show:u,note:c,onToggle:()=>p(!u),onChange:(f)=>s(t,{...l,note:f})},void 0,!1,void 0,this),d&&I("p",{className:"text-[11px] text-accent-red font-body mt-1",children:"Please select an option."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function oo({id:t,label:e,options:n,required:o}){let{responses:r,setResponse:s}=cn();un(t);let i=pn(()=>gn(n),[n]),l=r.get(t),a=l?.value||[],c=l?.note||"",[u,p]=hn(!1),g=fn(null);if(!r.has(t))s(t,{id:t,type:"checkbox",label:e,value:[],options:i.map((f)=>f.value),required:o});let h=(f)=>{let m=a.includes(f)?a.filter((b)=>b!==f):[...a,f];s(t,{...l,value:m})};dn(()=>{let f=g.current;if(!f)return;let m=(b)=>{let v=b.target.closest("[data-md-label]")?.getAttribute("data-md-label"),w=i.find((N)=>N.label===v);if(w)h(w.value)};return f.addEventListener("kb-select",m),()=>f.removeEventListener("kb-select",m)},[i,h]);let d=l?.required&&a.length===0;return I("div",{ref:g,"data-md":"multichoice","data-md-label":e,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[I("div",{className:"flex items-baseline gap-2 mb-2",children:[I("span",{className:"text-[13px] font-body font-medium text-text-primary",children:e},void 0,!1,void 0,this),o&&I("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),I("div",{className:"space-y-1",children:i.map(({value:f,label:m})=>{let b=a.includes(f);return I("label",{"data-md":"multichoice-option","data-md-label":m,onClick:()=>h(f),className:`flex items-center gap-2.5 px-3 py-2 rounded-lg cursor-pointer transition-all duration-150 ${b?"bg-highlight-selected":"hover:bg-bg-elevated"}`,children:[I("span",{className:`w-4 h-4 rounded flex items-center justify-center flex-shrink-0 transition-all ${b?"bg-accent-amber":"border-[1.5px] border-border-strong"}`,children:b&&I("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:I("path",{d:"M2.5 5L4.5 7L7.5 3",style:{stroke:"var(--color-text-inverse)"},strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),I("span",{className:"text-[13px] font-body text-text-secondary",children:m},void 0,!1,void 0,this)]},f,!0,void 0,this)})},void 0,!1,void 0,this),I(ke,{show:u,note:c,onToggle:()=>p(!u),onChange:(f)=>s(t,{...l,note:f})},void 0,!1,void 0,this),d&&I("p",{className:"text-[11px] text-accent-red font-body mt-1",children:"Please select at least one option."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useEffect as so,useRef as io}from"react";import{jsxDEV as Ze}from"react/jsx-dev-runtime";function ao({language:t,children:e}){let n=typeof e==="string"?e:String(e??""),o=io(null);return so(()=>{let r=o.current,s=window.hljs;if(!r||!s)return;r.removeAttribute("data-highlighted"),r.className=t?`language-${t}`:"",r.textContent=n,s.highlightElement(r)},[n,t]),Ze("div",{className:"relative mt-3 group/code","data-md":"codeblock","data-md-language":t||"",children:[t&&Ze("span",{className:"absolute top-2 right-3 text-tiny text-text-tertiary opacity-0 group-hover/code:opacity-60 transition-opacity duration-150 z-10 font-mono",children:t},void 0,!1,void 0,this),Ze("pre",{className:"bg-bg-code rounded-md p-4 overflow-x-auto text-code font-mono leading-relaxed",children:Ze("code",{ref:o,className:t?`language-${t}`:"",children:n},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function mn(t,e){let n=t.split(`
|
|
60
|
-
`),
|
|
61
|
-
`),
|
|
62
|
-
`).slice(
|
|
63
|
-
`);i(f),a(d.language||"text")}}).catch(()=>u("Failed to fetch file")).finally(()=>g(!1))},[o,t,e?.[0],e?.[1],n]),bn(()=>{let d=h.current,f=window.hljs;if(!d||!f||!s)return;d.removeAttribute("data-highlighted"),d.className=l?`language-${l}`:"",d.textContent=s,f.highlightElement(d)},[s,l]),p)return ae("div",{className:"text-text-tertiary text-body mt-3 bg-bg-code rounded-md p-4",children:["Loading ",t,"..."]},void 0,!0,void 0,this);if(c)return ae("div",{className:"text-accent-red text-body mt-3 bg-accent-red-muted rounded-md p-4",children:[t,": ",c]},void 0,!0,void 0,this);return ae("div",{className:"mt-3 bg-bg-code rounded-md overflow-hidden","data-md":"filepreview","data-md-path":t,...e?{"data-md-lines":`${e[0]}-${e[1]}`}:{},children:[ae("div",{className:"px-4 py-2 flex items-center justify-between",children:[ae("button",{className:"font-mono text-meta text-text-tertiary hover:text-text-secondary hover:underline cursor-pointer text-left",onClick:()=>r({type:"file",path:t}),title:`Open ${t}`,children:t},void 0,!1,void 0,this),e&&ae("span",{className:"font-mono text-meta text-text-tertiary opacity-60",children:["L",e[0],"–",e[1]]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),ae("pre",{className:"px-4 pb-3 overflow-x-auto text-code font-mono !bg-transparent",style:{background:"transparent"},children:ae("code",{ref:h,className:l?`language-${l}`:"",children:s},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{SessionContext as mo}from"#canvas/runtime";import{useContext as xo,useState as bo}from"react";import{jsxDEV as Le}from"react/jsx-dev-runtime";function yo({src:t,alt:e,caption:n,width:o,height:r}){let s=xo(mo),[i,l]=bo(!1),a=`/api/image?session=${encodeURIComponent(s)}&path=${encodeURIComponent(t)}`;if(i)return Le("div",{className:"mt-3 text-accent-red text-body bg-accent-red-muted rounded-md p-4",children:[t,": Failed to load image"]},void 0,!0,void 0,this);return Le("figure",{className:"mt-3 relative","data-md":"image","data-md-src":t,children:[Le("div",{"data-annotation-image":!0,className:"rounded-md overflow-hidden border border-border-subtle bg-bg-code inline-block",children:Le("img",{src:a,alt:e||t,onError:()=>l(!0),draggable:!1,className:"block max-w-full h-auto",...o?{width:o}:{},...r?{height:r}:{}},void 0,!1,void 0,this)},void 0,!1,void 0,this),n&&Le("figcaption",{className:"mt-1.5 text-meta text-text-tertiary font-body",children:n},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useMemo as ko}from"react";import{jsxDEV as yn}from"react/jsx-dev-runtime";S.setOptions({gfm:!0,breaks:!1});function vo({children:t,file:e,__content:n}){let o=n??(typeof t==="string"?t:String(t??"")),r=ko(()=>{if(!o)return"";return S.parse(o,{async:!1})},[o]);if(!o)return yn("div",{className:"text-text-tertiary text-tiny mt-3",children:e?`Could not load: ${e}`:"No markdown content"},void 0,!1,void 0,this);return yn("div",{className:"mt-3 prose-canvas","data-md":"markdown",...e?{"data-md-file":e}:{},"data-md-source":o,dangerouslySetInnerHTML:{__html:r}},void 0,!1,void 0,this)}import{useAnnotations as wo,useCanvasFile as So}from"#canvas/runtime";import{useCallback as ne,useEffect as Et,useRef as Pe,useState as ve}from"react";import Ao from"react-dom";import{jsxDEV as k,Fragment as Sn}from"react/jsx-dev-runtime";var we=0.2,Xe=0.25,Qe=4;function vn({zoom:t,onZoomIn:e,onZoomOut:n,onZoomReset:o,onFullscreen:r}){return k("div",{className:"flex items-center gap-0.5 bg-bg-surface border border-border-subtle rounded-md px-1 py-0.5",style:{fontSize:"12px"},children:[k("button",{className:"flex items-center justify-center w-7 h-7 rounded hover:bg-bg-elevated text-text-secondary hover:text-text-primary transition-colors",onClick:n,title:"Zoom out",disabled:t<=Xe,children:k("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:k("line",{x1:"5",y1:"12",x2:"19",y2:"12"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),k("button",{className:"px-1.5 h-7 rounded hover:bg-bg-elevated text-text-tertiary hover:text-text-primary transition-colors tabular-nums",onClick:o,title:"Reset zoom",children:[Math.round(t*100),"%"]},void 0,!0,void 0,this),k("button",{className:"flex items-center justify-center w-7 h-7 rounded hover:bg-bg-elevated text-text-secondary hover:text-text-primary transition-colors",onClick:e,title:"Zoom in",disabled:t>=Qe,children:k("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[k("line",{x1:"12",y1:"5",x2:"12",y2:"19"},void 0,!1,void 0,this),k("line",{x1:"5",y1:"12",x2:"19",y2:"12"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),r&&k(Sn,{children:[k("div",{className:"w-px h-4 bg-border-subtle mx-0.5"},void 0,!1,void 0,this),k("button",{className:"flex items-center justify-center w-7 h-7 rounded hover:bg-bg-elevated text-text-secondary hover:text-text-primary transition-colors",onClick:r,title:"Fullscreen",children:k("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[k("polyline",{points:"15 3 21 3 21 9"},void 0,!1,void 0,this),k("polyline",{points:"9 21 3 21 3 15"},void 0,!1,void 0,this),k("line",{x1:"21",y1:"3",x2:"14",y2:"10"},void 0,!1,void 0,this),k("line",{x1:"3",y1:"21",x2:"10",y2:"14"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function wn(t=1){let[e,n]=ve(t),o=ne(()=>n((i)=>Math.min(Qe,+(i+we).toFixed(2))),[]),r=ne(()=>n((i)=>Math.max(Xe,+(i-we).toFixed(2))),[]),s=ne(()=>n(1),[]);return{zoom:e,zoomIn:o,zoomOut:r,zoomReset:s,setZoom:n}}function Ro({svgHtml:t,source:e,onClose:n}){let o=Pe(null),{zoom:r,zoomIn:s,zoomOut:i,zoomReset:l,setZoom:a}=wn(1),[c,u]=ve({x:0,y:0}),p=Pe(null);Et(()=>{let b=(R)=>{if(R.key==="Escape")n()};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[n]);let g=ne((b)=>{b.preventDefault();let R=b.deltaY>0?-we:we;a((v)=>Math.max(Xe,Math.min(Qe,+(v+R).toFixed(2))))},[a]),h=ne((b)=>{if(b.button!==0)return;p.current={startX:b.clientX,startY:b.clientY,panX:c.x,panY:c.y},b.preventDefault()},[c]),d=ne((b)=>{if(!p.current)return;u({x:p.current.panX+(b.clientX-p.current.startX),y:p.current.panY+(b.clientY-p.current.startY)})},[]),f=ne(()=>{p.current=null},[]),m=ne(()=>{l(),u({x:0,y:0})},[l]);return Ao.createPortal(k("div",{style:{position:"fixed",inset:0,zIndex:9999,background:"var(--color-bg-base)",display:"flex",flexDirection:"column"},onMouseMove:d,onMouseUp:f,onMouseLeave:f,children:[k("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border-subtle",style:{flexShrink:0,background:"var(--color-bg-surface)"},children:[k("span",{className:"text-body text-text-secondary",style:{fontSize:"13px"},children:"Mermaid Diagram"},void 0,!1,void 0,this),k("div",{className:"flex items-center gap-2",children:[k(vn,{zoom:r,onZoomIn:s,onZoomOut:i,onZoomReset:m},void 0,!1,void 0,this),k("button",{className:"flex items-center justify-center w-8 h-8 rounded hover:bg-bg-elevated text-text-secondary hover:text-text-primary transition-colors",onClick:n,title:"Close (Esc)",children:k("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[k("line",{x1:"18",y1:"6",x2:"6",y2:"18"},void 0,!1,void 0,this),k("line",{x1:"6",y1:"6",x2:"18",y2:"18"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),k("div",{style:{flex:1,overflow:"hidden",cursor:p.current?"grabbing":"grab"},onWheel:g,onMouseDown:h,children:k("div",{ref:o,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",transform:`translate(${c.x}px, ${c.y}px) scale(${r})`,transformOrigin:"center center",transition:p.current?"none":"transform 0.1s ease-out"},dangerouslySetInnerHTML:{__html:t}},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),document.body)}function To({children:t}){let e=Pe(null),[n,o]=ve(null),[r,s]=ve(!1),[i,l]=ve(""),a=typeof t==="string"?t:String(t??""),{annotations:c,addAnnotationWithId:u,activeAnnotationId:p,setActiveAnnotationId:g}=wo(),h=So(),[d,f]=ve(null),{zoom:m,zoomIn:b,zoomOut:R,zoomReset:v,setZoom:w}=wn(1),N=Pe(c);N.current=c;let L=ne((C,M,G)=>{let H=`[Diagram ${G.toLowerCase()}] ${M}`,X=N.current.find((W)=>W.snippet===H);if(X)g(X.id);else f({anchorEl:C,snippet:M,prefix:G})},[g]),F=Pe(L);F.current=L,Et(()=>{let C=!1,M=async()=>{try{let H=window.mermaid;if(!H){o("Mermaid library not loaded");return}let X=document.documentElement.dataset.theme==="light"?"default":"dark";H.initialize({startOnLoad:!1,theme:X});let W=`mermaid-${Math.random().toString(36).slice(2)}`,{svg:ce}=await H.render(W,a.trim());if(!C&&e.current)e.current.innerHTML=ce,l(ce),Eo(e.current,(V,j,Q)=>F.current(V,j,Q)),kn(e.current,N.current);o(null)}catch(H){if(!C)o(H.message||"Invalid diagram")}};M();let G=new MutationObserver((H)=>{for(let X of H)if(X.attributeName==="data-theme")M()});return G.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>{C=!0,G.disconnect()}},[a]),Et(()=>{if(e.current)kn(e.current,c,p)},[c,p]);let U=ne((C)=>{if(!C.ctrlKey&&!C.metaKey)return;C.preventDefault();let M=C.deltaY>0?-we:we;w((G)=>Math.max(Xe,Math.min(Qe,+(G+M).toFixed(2))))},[w]);if(n)return k("div",{className:"bg-accent-red-muted rounded-md p-4 mt-3 text-body text-accent-red",children:["Mermaid error: ",n,k("pre",{className:"mt-2 text-tiny text-text-tertiary whitespace-pre-wrap",children:a},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let Y=e.current?.closest("#plan-scroll-container");return k(Sn,{children:[k("div",{className:"mt-3 mermaid-container","data-md":"mermaid","data-md-source":a.trim(),children:[k("div",{className:"flex justify-end mb-1",children:k(vn,{zoom:m,onZoomIn:b,onZoomOut:R,onZoomReset:v,onFullscreen:()=>s(!0)},void 0,!1,void 0,this)},void 0,!1,void 0,this),k("div",{style:{overflow:"auto",maxHeight:"70vh"},onWheel:U,children:k("div",{ref:e,className:"flex justify-center",style:{transform:`scale(${m})`,transformOrigin:"top center",transition:"transform 0.1s ease-out",minHeight:m<1?void 0:void 0}},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d&&k(Ce,{anchorEl:d.anchorEl,scrollContainer:Y,snippet:d.snippet,header:k("div",{style:{fontSize:"12px",color:"var(--color-text-tertiary)",marginBottom:"8px",lineHeight:"1.4",display:"flex",alignItems:"center",gap:"6px"},children:[k("span",{style:{width:"8px",height:"8px",borderRadius:"50%",background:"var(--color-accent-amber)",flexShrink:0}},void 0,!1,void 0,this),d.snippet]},void 0,!0,void 0,this),onAdd:(C,M)=>{let G=`ann-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;u(G,`[Diagram ${d.prefix.toLowerCase()}] ${d.snippet}`,C,void 0,void 0,M,h||void 0),f(null)},onCancel:()=>f(null)},void 0,!1,void 0,this),r&&i&&k(Ro,{svgHtml:i,source:a,onClose:()=>s(!1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Eo(t,e){let n=(o,r,s)=>{o.style.cursor="pointer",o.addEventListener("mouseenter",()=>{o.style.filter="brightness(1.2)"}),o.addEventListener("mouseleave",()=>{o.style.filter=""}),o.addEventListener("click",(i)=>{i.stopPropagation(),i.preventDefault(),e(o,r(),s)})};for(let o of t.querySelectorAll(".node"))n(o,()=>(o.querySelector(".nodeLabel")||o.querySelector("foreignObject span")||o.querySelector("text"))?.textContent?.trim()||"Node","Node");for(let o of t.querySelectorAll(".edgePath")){let r=o,s=r.querySelector("path");if(s){s.style.strokeWidth=Math.max(parseFloat(s.style.strokeWidth||"1"),8)+"px",s.style.strokeOpacity="0";let l=s.cloneNode(!0);l.style.strokeWidth="",l.style.strokeOpacity="",r.insertBefore(l,s)}let i=r.id||"";n(r,()=>{let l=t.querySelectorAll(".edgeLabel");for(let a of l)if(a.id&&i&&a.id.replace("label","").includes(i.replace("L-","").replace("edge",""))){let c=a.textContent?.trim();if(c)return c}return"Connection"},"Edge")}for(let o of t.querySelectorAll(".edgeLabel")){let r=o.textContent?.trim();if(!r)continue;n(o,()=>r,"Edge")}for(let o of t.querySelectorAll(".actor")){let r=o.closest("g")?.querySelector("text")||o.parentElement?.querySelector("text");if(!r)continue;let s=o.closest("g");if(!s||s.hasAttribute("data-clickable"))continue;s.setAttribute("data-clickable","true"),n(s,()=>r.textContent?.trim()||"Participant","Node")}for(let o of t.querySelectorAll(".messageText")){let r=o.textContent?.trim();if(!r)continue;n(o,()=>r,"Edge")}for(let o of t.querySelectorAll(".entityBox")){let r=o.closest("g");if(!r||r.hasAttribute("data-clickable"))continue;let s=r.querySelector(".entityLabel");if(!s)continue;r.setAttribute("data-clickable","true"),n(r,()=>s.textContent?.trim()||"Entity","Node")}for(let o of t.querySelectorAll(".relationshipLabel")){let r=o.textContent?.trim();if(!r)continue;let i=o.closest("g")||o;if(i.hasAttribute("data-clickable"))continue;i.setAttribute("data-clickable","true"),n(i,()=>r,"Edge")}for(let o of t.querySelectorAll(".classGroup")){let r=o;if(r.hasAttribute("data-clickable"))continue;let s=r.querySelector(".classTitle, .classTitleText, text");if(!s)continue;r.setAttribute("data-clickable","true"),n(r,()=>s.textContent?.trim()||"Class","Node")}for(let o of t.querySelectorAll(".statediagram-state")){let r=o;if(r.hasAttribute("data-clickable"))continue;let s=r.querySelector(".state-title, text");if(!s)continue;r.setAttribute("data-clickable","true"),n(r,()=>s.textContent?.trim()||"State","Node")}for(let o of t.querySelectorAll(".mindmap-node")){let r=o;if(r.hasAttribute("data-clickable"))continue;let s=r.querySelector(".mindmap-node-label, text");if(!s)continue;r.setAttribute("data-clickable","true"),n(r,()=>s.textContent?.trim()||"Node","Node")}}function kn(t,e,n){let o=new Map;for(let s of e){let i=s.snippet.match(/^\[Diagram (?:node|edge)\] (.+)$/)?.[1];if(i)o.set(i,s.id)}for(let s of t.querySelectorAll("[data-annotated]"))s.style.outline="",s.style.outlineOffset="",s.style.borderRadius="",s.removeAttribute("data-annotated");if(o.size===0)return;for(let s of t.querySelectorAll(".node")){let l=(s.querySelector(".nodeLabel")||s.querySelector("foreignObject span")||s.querySelector("text"))?.textContent?.trim();if(!l||!o.has(l))continue;let a=o.get(l),c=s;c.setAttribute("data-annotated",a);let u=a===n;c.style.outline=u?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",c.style.outlineOffset="2px",c.style.borderRadius="4px"}for(let s of t.querySelectorAll(".edgeLabel")){let i=s.textContent?.trim();if(!i||!o.has(i))continue;let l=o.get(i),a=s;a.setAttribute("data-annotated",l);let c=l===n;a.style.outline=c?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",a.style.outlineOffset="2px",a.style.borderRadius="4px"}for(let s of t.querySelectorAll(".actor")){let i=s.closest("g");if(!i)continue;let a=i.querySelector("text")?.textContent?.trim();if(!a||!o.has(a))continue;if(i.hasAttribute("data-annotated"))continue;let c=o.get(a);i.setAttribute("data-annotated",c);let u=c===n,p=i.querySelector("rect");if(p)p.style.outline=u?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",p.style.outlineOffset="2px",p.style.borderRadius="4px"}for(let s of t.querySelectorAll(".messageText")){let i=s.textContent?.trim();if(!i||!o.has(i))continue;let l=o.get(i),a=s;a.setAttribute("data-annotated",l);let c=l===n;a.style.outline=c?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",a.style.outlineOffset="2px",a.style.borderRadius="4px"}let r=(s,i,l)=>{for(let a of t.querySelectorAll(s)){let c=l(a);if(!c||c.hasAttribute("data-annotated"))continue;let p=c.querySelector(i)?.textContent?.trim();if(!p||!o.has(p))continue;let g=o.get(p);c.setAttribute("data-annotated",g);let h=g===n,d=c.querySelector("rect, circle, ellipse, polygon")||c;d.style.outline=h?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",d.style.outlineOffset="2px",d.style.borderRadius="4px"}};r(".entityBox",".entityLabel",(s)=>s.closest("g"));for(let s of t.querySelectorAll(".relationshipLabel")){let l=s.closest("g")||s;if(l.hasAttribute("data-annotated"))continue;let a=s.textContent?.trim();if(!a||!o.has(a))continue;let c=o.get(a);l.setAttribute("data-annotated",c);let u=c===n;l.style.outline=u?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",l.style.outlineOffset="2px",l.style.borderRadius="4px"}r(".classGroup",".classTitle, .classTitleText, text",(s)=>s),r(".statediagram-state",".state-title, text",(s)=>s),r(".mindmap-node",".mindmap-node-label, text",(s)=>s)}import{jsxDEV as Co}from"react/jsx-dev-runtime";function No({children:t}){return Co("div",{className:"relative bg-bg-elevated rounded-lg px-5 py-4 mt-3 text-body text-text-secondary italic leading-relaxed","data-md":"note",children:ie(t)},void 0,!1,void 0,this)}import{jsxDEV as Po}from"react/jsx-dev-runtime";var Io={high:"text-accent-red bg-accent-red-muted",medium:"text-accent-amber bg-accent-amber-muted",low:"text-text-tertiary bg-border-subtle"};function Lo({level:t}){return Po("span",{className:`inline text-tiny font-medium font-body ml-2 px-1.5 py-0.5 rounded ${Io[t]}`,"data-md":"priority","data-md-level":t,children:t},void 0,!1,void 0,this)}import{useState as Mo}from"react";import{jsxDEV as ge}from"react/jsx-dev-runtime";function $o({title:t,children:e}){let[n,o]=Mo(!1);return ge("div",{className:"relative mb-8 p-4 group/section","data-md":"section","data-md-title":t,children:[ge("div",{className:"relative mb-2",children:[ge("button",{onClick:()=>o(!n),className:`absolute -left-8 top-1/2 -translate-y-1/2 text-text-tertiary opacity-0 group-hover/section:opacity-50 hover:!opacity-100 transition-all duration-150 p-0.5 ${n?"-rotate-90":""}`,children:ge("svg",{width:"14",height:"14",viewBox:"0 0 12 12",fill:"none",children:ge("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),ge("h2",{className:"font-heading text-section text-text-primary",style:{fontWeight:400},children:t},void 0,!1,void 0,this)]},void 0,!0,void 0,this),ge("div",{className:n?"mt-6 hidden":"mt-6",children:ie(e)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as le}from"react/jsx-dev-runtime";function Oo({headers:t,rows:e}){return le("div",{className:"overflow-x-auto mt-3","data-md":"table",children:le("table",{className:"w-full text-body",children:[le("thead",{children:le("tr",{className:"border-b border-border-subtle",children:t.map((n,o)=>le("th",{className:"text-left px-4 py-2.5 text-meta font-medium uppercase tracking-wider text-text-tertiary font-body",children:n},o,!1,void 0,this))},void 0,!1,void 0,this)},void 0,!1,void 0,this),le("tbody",{children:e.map((n,o)=>le("tr",{className:`relative border-b border-border-subtle last:border-b-0 transition-colors hover:bg-bg-surface/50 ${o%2===1?"bg-bg-surface/30":""}`,children:n.map((r,s)=>le("td",{className:"px-4 py-2.5 text-text-secondary font-body",children:r},s,!1,void 0,this))},o,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as re}from"react/jsx-dev-runtime";var _o={todo:"bg-border-hover",done:"bg-accent-green",blocked:"bg-accent-red","in-progress":"bg-accent-blue"},Ho={todo:"Todo",done:"Done",blocked:"Blocked","in-progress":"In progress"},zo={info:"bg-accent-blue-muted text-accent-blue",success:"bg-accent-green-muted text-accent-green",warning:"bg-accent-amber-muted text-accent-amber",danger:"bg-accent-red-muted text-accent-red",neutral:"bg-border-subtle text-text-tertiary"};function An({id:t,label:e,status:n,badge:o,badgeVariant:r="neutral",children:s}){return re("div",{className:"group/task relative -mx-4 px-4 py-3 rounded-md transition-colors duration-150 hover:bg-bg-input","data-task-id":t,"data-md":"item","data-md-label":e,...n?{"data-md-status":n}:{},...o?{"data-md-badge":o}:{},children:re("div",{className:"flex items-start gap-3",children:[n&&re("span",{className:`w-2 h-2 rounded-full mt-[7px] flex-shrink-0 ${_o[n]}`},void 0,!1,void 0,this),re("div",{className:"flex-1 min-w-0",children:[re("div",{className:"flex items-baseline gap-2",children:[re("span",{className:"font-body text-task-label font-semibold text-text-primary",children:e},void 0,!1,void 0,this),n&&re("span",{className:"font-body text-tiny uppercase tracking-wider text-text-tertiary opacity-0 group-hover/task:opacity-100 transition-opacity duration-150",children:Ho[n]},void 0,!1,void 0,this),o&&re("span",{className:`font-body text-tiny font-medium px-1.5 py-px rounded-full ${zo[r]}`,children:o},void 0,!1,void 0,this)]},void 0,!0,void 0,this),s&&re("div",{className:"text-body text-text-secondary mt-1 leading-relaxed",children:ie(s)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function Do(t){return re(An,{...t},void 0,!1,void 0,this)}import{useAnnotations as Rn,useResponseRegistration as Tn}from"#canvas/runtime";import{useRef as Bo,useState as En}from"react";import{jsxDEV as T}from"react/jsx-dev-runtime";function qo({id:t,label:e,placeholder:n,multiline:o,required:r}){let{responses:s,setResponse:i}=Rn();Tn(t);let l=s.get(t),a=l?.value??"",c=l?.note||"",[u,p]=En(!1),g=Bo(null);if(!s.has(t))i(t,{id:t,type:"text",label:e,value:"",required:r});let h=(m)=>{i(t,{...l,value:m})},d=(m)=>oe(m,o?60:32),f=l?.required&&!a.trim();return T("div",{"data-md":"userinput","data-md-label":e,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[T("div",{className:"flex items-baseline gap-2 mb-2",children:[T("span",{className:"text-[13px] font-body font-medium text-text-primary",children:e},void 0,!1,void 0,this),r&&T("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),T("textarea",{ref:g,value:a,onChange:(m)=>{h(m.currentTarget.value),d(m.currentTarget)},placeholder:n||"Type your response...",rows:o?3:1,className:"w-full bg-bg-input text-[13px] font-body text-text-primary rounded-lg px-3 py-2 resize-none focus:outline-none border border-border-subtle focus:border-border-hover placeholder:text-text-tertiary transition-colors",onInput:(m)=>d(m.currentTarget),onFocus:(m)=>d(m.currentTarget)},void 0,!1,void 0,this),T(ke,{show:u,note:c,onToggle:()=>p(!u),onChange:(m)=>i(t,{...l,note:m})},void 0,!1,void 0,this),f&&T("p",{className:"text-[11px] text-accent-red font-body mt-1",children:"This field is required."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Fo({id:t,label:e,min:n=1,max:o=10,step:r=1,required:s,minLabel:i,maxLabel:l}){let{responses:a,setResponse:c}=Rn();Tn(t);let u=a.get(t),p=u?.value,g=u?.note||"",[h,d]=En(!1);if(!a.has(t))c(t,{id:t,type:"range",label:e,value:null,required:s});let f=(L)=>{c(t,{...u,value:L})},m=p!==null&&p!==void 0,b=m?p:Math.round((n+o)/2),R=(b-n)/(o-n)*100,v=Math.round((o-n)/r),w=v<=20,N=u?.required&&!m;return T("div",{"data-md":"rangeinput","data-md-label":e,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[T("div",{className:"flex items-baseline justify-between mb-1",children:[T("div",{className:"flex items-baseline gap-2",children:[T("span",{className:"text-[13px] font-body font-medium text-text-primary",children:e},void 0,!1,void 0,this),s&&T("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),T("span",{className:"flex items-center gap-1.5",children:[T("span",{className:`text-[13px] font-mono ${m?"text-accent-amber":"text-text-disabled"}`,children:m?p:"—"},void 0,!1,void 0,this),m&&T("button",{onClick:()=>c(t,{...u,value:null}),className:"text-text-disabled hover:text-text-tertiary transition-colors text-[10px] leading-none",title:"Clear",children:"✕"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),T("div",{className:"relative h-6 flex items-center",children:[T("div",{className:"absolute left-0 right-0 h-1.5 rounded-full bg-border-medium",children:m&&T("div",{className:"h-full rounded-full bg-accent-amber transition-all duration-150",style:{width:`${R}%`}},void 0,!1,void 0,this)},void 0,!1,void 0,this),w&&Array.from({length:v+1},(L,F)=>{let U=n+F*r,Y=(U-n)/(o-n)*100,C=m&&U<=p;return T("div",{className:`absolute rounded-full pointer-events-none transition-all duration-150 ${m&&U===p?"w-2.5 h-2.5 bg-accent-amber":C?"w-1.5 h-1.5 bg-accent-amber":"w-1.5 h-1.5 bg-border-hover"}`,style:{left:`${Y}%`,transform:"translate(-50%, -50%)",top:"50%"}},F,!1,void 0,this)}),m?T("div",{className:"absolute h-5 w-5 rounded-full bg-accent-amber shadow-md pointer-events-none transition-all duration-150",style:{left:`calc(${R}% - 10px)`,borderWidth:"2px",borderStyle:"solid",borderColor:"var(--color-bg-base)"}},void 0,!1,void 0,this):T("div",{className:"absolute h-4 w-4 rounded-full bg-border-hover pointer-events-none opacity-50",style:{left:"calc(50% - 8px)",borderWidth:"2px",borderStyle:"solid",borderColor:"var(--color-bg-base)"}},void 0,!1,void 0,this),T("input",{type:"range",min:n,max:o,step:r,value:b,onChange:(L)=>f(Number(L.currentTarget.value)),className:"absolute inset-0 w-full opacity-0 cursor-pointer"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w&&v<=10?T("div",{className:"flex justify-between -mt-0.5 px-0",children:Array.from({length:v+1},(L,F)=>{let U=n+F*r;return T("span",{className:`text-[10px] font-mono transition-colors ${m&&U===p?"text-accent-amber font-medium":"text-text-disabled"}`,style:{minWidth:"1ch",textAlign:"center"},children:U},F,!1,void 0,this)})},void 0,!1,void 0,this):T("div",{className:"flex justify-between -mt-0.5",children:[T("span",{className:"text-[11px] text-text-tertiary font-body",children:i||n},void 0,!1,void 0,this),T("span",{className:"text-[11px] text-text-tertiary font-body",children:l||o},void 0,!1,void 0,this)]},void 0,!0,void 0,this),T(ke,{show:h,note:g,onToggle:()=>d(!h),onChange:(L)=>c(t,{...u,note:L})},void 0,!1,void 0,this),N&&T("p",{className:"text-[11px] text-accent-red font-body mt-1",children:"Please select a value."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useEffect as Qo,useState as Je}from"react";import{useFeedback as Jo}from"#canvas/runtime";async function Nn(t){let e=Go(t);return crypto.subtle.importKey("raw",e,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function Cn(t,e){let n=In(e);if(n.byteLength<28)throw Error("Ciphertext too short");let o=n.subarray(0,12),r=n.subarray(12),s=await crypto.subtle.decrypt({name:"AES-GCM",iv:o},t,r);return new TextDecoder().decode(s)}function In(t){let e=atob(t),n=new Uint8Array(e.length);for(let o=0;o<e.length;o++)n[o]=e.charCodeAt(o);return n}function Go(t){let e=t.replace(/-/g,"+").replace(/_/g,"/")+"===".slice((t.length+3)%4);return In(e)}function Uo(){if(typeof window>"u")return null;let t=window.location.hash.replace(/^#/,"");if(!t)return null;for(let e of t.split("&")){let[n,o]=e.split("=");if(n==="k"&&o)return decodeURIComponent(o)}return null}function Wo(){if(typeof window<"u"&&window.__CANVAS_SHARE__?.shareId){let e=Uo();return{isShared:!0,shareId:window.__CANVAS_SHARE__.shareId,encryptionKey:e?Nn(e):null}}return{isShared:!1,sessionId:typeof window<"u"?window.location.pathname.replace("/s/",""):""}}var P=Wo();function Vo(){return P.isShared&&P.encryptionKey!==null}function jo(){return P.isShared?P.shareId:P.sessionId}function Ko(t,e){let n=t.replace(/\.jsx$/,".js");if(P.isShared)return`/s/${P.shareId}/canvas/${encodeURIComponent(n)}`;let o=e?`?rev=${e}&t=${Date.now()}`:`?t=${Date.now()}`;return`/api/session/${P.sessionId}/canvas/${encodeURIComponent(n)}${o}`}function Zo(){if(P.isShared)return`/s/${P.shareId}/upload`;return`/api/session/${P.sessionId}/upload`}function Nt(t,e){if(P.isShared)throw Error("Secret inputs are available only on the local canvas daemon");return`/api/session/${encodeURIComponent(P.sessionId)}/secrets/${encodeURIComponent(t)}/${e}`}async function Ct(t){let e=await t.json().catch(()=>null);if(typeof e==="object"&&e!==null&&"error"in e&&typeof e.error==="string")return Error(e.error);return Error(`Secret API request failed with status ${t.status}`)}async function Ln(t){let e=await fetch(Nt(t,"status"),{cache:"no-store"});if(!e.ok)throw await Ct(e);let n=await e.json();return typeof n==="object"&&n!==null&&"ready"in n&&n.ready===!0}async function Pn(t,e){let n=await fetch(Nt(t,"value"),{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({value:e})});if(!n.ok)throw await Ct(n)}async function Mn(t){let e=await fetch(Nt(t,"value"),{method:"DELETE",cache:"no-store"});if(!e.ok)throw await Ct(e)}async function Yo(t,e){let n=Ko(t,e);if(!Vo())return import(n);let o=await fetch(n);if(!o.ok)throw Error(`canvas ${o.status}`);let r=await o.text(),s=await P.encryptionKey,i=await Cn(s,r),l=new Blob([i],{type:"application/javascript"}),a=URL.createObjectURL(l);try{return await import(a)}finally{setTimeout(()=>URL.revokeObjectURL(a),0)}}var Xo=!P.isShared,mc=!P.isShared,xc={get sessionId(){return jo()},isShared:P.isShared,fsAvailable:Xo,uploadUrl:Zo,loadCanvasModule:Yo};import{jsxDEV as q}from"react/jsx-dev-runtime";var es=/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/,ts=/^[A-Za-z_][A-Za-z0-9_]*$/;function ns({id:t,label:e,env:n,placeholder:o,required:r}){let[s,i]=Je(""),[l,a]=Je(!1),[c,u]=Je(!P.isShared),[p,g]=Je(null),h=es.test(t),d=ts.test(n),f=!P.isShared;Qo(()=>{if(!f||!h){u(!1);return}let w=!0;return Ln(t).then((N)=>{if(w)a(N)}).catch((N)=>{if(w)g(N instanceof Error?N.message:"Could not read secret status")}).finally(()=>{if(w)u(!1)}),()=>{w=!1}},[t,f,h]);let m=l?`**${e}**
|
|
64
|
-
Secret is ready. Field: \`${
|
|
65
|
-
`:"";
|
|
53
|
+
`+J+`</thead>
|
|
54
|
+
`+q+`</table>
|
|
55
|
+
`}tablerow({text:$}){return`<tr>
|
|
56
|
+
${$}</tr>
|
|
57
|
+
`}tablecell($){let J=this.parser.parseInline($.tokens),Q=$.header?"th":"td";return($.align?`<${Q} align="${$.align}">`:`<${Q}>`)+J+`</${Q}>
|
|
58
|
+
`}strong({tokens:$}){return`<strong>${this.parser.parseInline($)}</strong>`}em({tokens:$}){return`<em>${this.parser.parseInline($)}</em>`}codespan({text:$}){return`<code>${A$($,!0)}</code>`}br($){return"<br>"}del({tokens:$}){return`<del>${this.parser.parseInline($)}</del>`}link({href:$,title:J,tokens:Q}){let q=this.parser.parseInline(Q),W=i1($);if(W===null)return q;$=W;let Y='<a href="'+$+'"';return J&&(Y+=' title="'+A$(J)+'"'),Y+=">"+q+"</a>",Y}image({href:$,title:J,text:Q,tokens:q}){q&&(Q=this.parser.parseInline(q,this.parser.textRenderer));let W=i1($);if(W===null)return A$(Q);$=W;let Y=`<img src="${$}" alt="${A$(Q)}"`;return J&&(Y+=` title="${A$(J)}"`),Y+=">",Y}text($){return"tokens"in $&&$.tokens?this.parser.parseInline($.tokens):("escaped"in $)&&$.escaped?$.text:A$($.text)}},O1=class{strong({text:$}){return $}em({text:$}){return $}codespan({text:$}){return $}del({text:$}){return $}html({text:$}){return $}text({text:$}){return $}link({text:$}){return""+$}image({text:$}){return""+$}br(){return""}checkbox({raw:$}){return $}},G$=class ${options;renderer;textRenderer;constructor(J){this.options=J||l$,this.options.renderer=this.options.renderer||new m0,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new O1}static parse(J,Q){return new $(Q).parse(J)}static parseInline(J,Q){return new $(Q).parseInline(J)}parse(J){this.renderer.parser=this;let Q="";for(let q=0;q<J.length;q++){let W=J[q];if(this.options.extensions?.renderers?.[W.type]){let X=W,G=this.options.extensions.renderers[X.type].call({parser:this},X);if(G!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(X.type)){Q+=G||"";continue}}let Y=W;switch(Y.type){case"space":{Q+=this.renderer.space(Y);break}case"hr":{Q+=this.renderer.hr(Y);break}case"heading":{Q+=this.renderer.heading(Y);break}case"code":{Q+=this.renderer.code(Y);break}case"table":{Q+=this.renderer.table(Y);break}case"blockquote":{Q+=this.renderer.blockquote(Y);break}case"list":{Q+=this.renderer.list(Y);break}case"checkbox":{Q+=this.renderer.checkbox(Y);break}case"html":{Q+=this.renderer.html(Y);break}case"def":{Q+=this.renderer.def(Y);break}case"paragraph":{Q+=this.renderer.paragraph(Y);break}case"text":{Q+=this.renderer.text(Y);break}default:{let X='Token with "'+Y.type+'" type was not found.';if(this.options.silent)return console.error(X),"";throw Error(X)}}}return Q}parseInline(J,Q=this.renderer){this.renderer.parser=this;let q="";for(let W=0;W<J.length;W++){let Y=J[W];if(this.options.extensions?.renderers?.[Y.type]){let G=this.options.extensions.renderers[Y.type].call({parser:this},Y);if(G!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(Y.type)){q+=G||"";continue}}let X=Y;switch(X.type){case"escape":{q+=Q.text(X);break}case"html":{q+=Q.html(X);break}case"link":{q+=Q.link(X);break}case"image":{q+=Q.image(X);break}case"checkbox":{q+=Q.checkbox(X);break}case"strong":{q+=Q.strong(X);break}case"em":{q+=Q.em(X);break}case"codespan":{q+=Q.codespan(X);break}case"br":{q+=Q.br(X);break}case"del":{q+=Q.del(X);break}case"text":{q+=Q.text(X);break}default:{let G='Token with "'+X.type+'" type was not found.';if(this.options.silent)return console.error(G),"";throw Error(G)}}}return q}},z0=class{options;block;constructor($){this.options=$||l$}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess($){return $}postprocess($){return $}processAllTokens($){return $}emStrongMask($){return $}provideLexer($=this.block){return $?H$.lex:H$.lexInline}provideParser($=this.block){return $?G$.parse:G$.parseInline}},t4=class{defaults=B1();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=G$;Renderer=m0;TextRenderer=O1;Lexer=H$;Tokenizer=Z0;Hooks=z0;constructor(...$){this.use(...$)}walkTokens($,J){let Q=[];for(let q of $)switch(Q=Q.concat(J.call(this,q)),q.type){case"table":{let W=q;for(let Y of W.header)Q=Q.concat(this.walkTokens(Y.tokens,J));for(let Y of W.rows)for(let X of Y)Q=Q.concat(this.walkTokens(X.tokens,J));break}case"list":{let W=q;Q=Q.concat(this.walkTokens(W.items,J));break}default:{let W=q;this.defaults.extensions?.childTokens?.[W.type]?this.defaults.extensions.childTokens[W.type].forEach((Y)=>{let X=W[Y].flat(1/0);Q=Q.concat(this.walkTokens(X,J))}):W.tokens&&(Q=Q.concat(this.walkTokens(W.tokens,J)))}}return Q}use(...$){let J=this.defaults.extensions||{renderers:{},childTokens:{}};return $.forEach((Q)=>{let q={...Q};if(q.async=this.defaults.async||q.async||!1,Q.extensions&&(Q.extensions.forEach((W)=>{if(!W.name)throw Error("extension name required");if("renderer"in W){let Y=J.renderers[W.name];Y?J.renderers[W.name]=function(...X){let G=W.renderer.apply(this,X);return G===!1&&(G=Y.apply(this,X)),G}:J.renderers[W.name]=W.renderer}if("tokenizer"in W){if(!W.level||W.level!=="block"&&W.level!=="inline")throw Error("extension level must be 'block' or 'inline'");let Y=J[W.level];Y?Y.unshift(W.tokenizer):J[W.level]=[W.tokenizer],W.start&&(W.level==="block"?J.startBlock?J.startBlock.push(W.start):J.startBlock=[W.start]:W.level==="inline"&&(J.startInline?J.startInline.push(W.start):J.startInline=[W.start]))}"childTokens"in W&&W.childTokens&&(J.childTokens[W.name]=W.childTokens)}),q.extensions=J),Q.renderer){let W=this.defaults.renderer||new m0(this.defaults);for(let Y in Q.renderer){if(!(Y in W))throw Error(`renderer '${Y}' does not exist`);if(["options","parser"].includes(Y))continue;let X=Y,G=Q.renderer[X],H=W[X];W[X]=(...B)=>{let _=G.apply(W,B);return _===!1&&(_=H.apply(W,B)),_||""}}q.renderer=W}if(Q.tokenizer){let W=this.defaults.tokenizer||new Z0(this.defaults);for(let Y in Q.tokenizer){if(!(Y in W))throw Error(`tokenizer '${Y}' does not exist`);if(["options","rules","lexer"].includes(Y))continue;let X=Y,G=Q.tokenizer[X],H=W[X];W[X]=(...B)=>{let _=G.apply(W,B);return _===!1&&(_=H.apply(W,B)),_}}q.tokenizer=W}if(Q.hooks){let W=this.defaults.hooks||new z0;for(let Y in Q.hooks){if(!(Y in W))throw Error(`hook '${Y}' does not exist`);if(["options","block"].includes(Y))continue;let X=Y,G=Q.hooks[X],H=W[X];z0.passThroughHooks.has(Y)?W[X]=(B)=>{if(this.defaults.async&&z0.passThroughHooksRespectAsync.has(Y))return(async()=>{let N=await G.call(W,B);return H.call(W,N)})();let _=G.call(W,B);return H.call(W,_)}:W[X]=(...B)=>{if(this.defaults.async)return(async()=>{let N=await G.apply(W,B);return N===!1&&(N=await H.apply(W,B)),N})();let _=G.apply(W,B);return _===!1&&(_=H.apply(W,B)),_}}q.hooks=W}if(Q.walkTokens){let W=this.defaults.walkTokens,Y=Q.walkTokens;q.walkTokens=function(X){let G=[];return G.push(Y.call(this,X)),W&&(G=G.concat(W.call(this,X))),G}}this.defaults={...this.defaults,...q}}),this}setOptions($){return this.defaults={...this.defaults,...$},this}lexer($,J){return H$.lex($,J??this.defaults)}parser($,J){return G$.parse($,J??this.defaults)}parseMarkdown($){return(J,Q)=>{let q={...Q},W={...this.defaults,...q},Y=this.onError(!!W.silent,!!W.async);if(this.defaults.async===!0&&q.async===!1)return Y(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof J>"u"||J===null)return Y(Error("marked(): input parameter is undefined or null"));if(typeof J!="string")return Y(Error("marked(): input parameter is of type "+Object.prototype.toString.call(J)+", string expected"));if(W.hooks&&(W.hooks.options=W,W.hooks.block=$),W.async)return(async()=>{let X=W.hooks?await W.hooks.preprocess(J):J,G=await(W.hooks?await W.hooks.provideLexer($):$?H$.lex:H$.lexInline)(X,W),H=W.hooks?await W.hooks.processAllTokens(G):G;W.walkTokens&&await Promise.all(this.walkTokens(H,W.walkTokens));let B=await(W.hooks?await W.hooks.provideParser($):$?G$.parse:G$.parseInline)(H,W);return W.hooks?await W.hooks.postprocess(B):B})().catch(Y);try{W.hooks&&(J=W.hooks.preprocess(J));let X=(W.hooks?W.hooks.provideLexer($):$?H$.lex:H$.lexInline)(J,W);W.hooks&&(X=W.hooks.processAllTokens(X)),W.walkTokens&&this.walkTokens(X,W.walkTokens);let G=(W.hooks?W.hooks.provideParser($):$?G$.parse:G$.parseInline)(X,W);return W.hooks&&(G=W.hooks.postprocess(G)),G}catch(X){return Y(X)}}}onError($,J){return(Q)=>{if(Q.message+=`
|
|
59
|
+
Please report this to https://github.com/markedjs/marked.`,$){let q="<p>An error occurred:</p><pre>"+A$(Q.message+"",!0)+"</pre>";return J?Promise.resolve(q):q}if(J)return Promise.reject(Q);throw Q}}},p$=new t4;function T($,J){return p$.parse($,J)}T.options=T.setOptions=function($){return p$.setOptions($),T.defaults=p$.defaults,n1(T.defaults),T};T.getDefaults=B1;T.defaults=l$;T.use=function(...$){return p$.use(...$),T.defaults=p$.defaults,n1(T.defaults),T};T.walkTokens=function($,J){return p$.walkTokens($,J)};T.parseInline=p$.parseInline;T.Parser=G$;T.parser=G$.parse;T.Renderer=m0;T.TextRenderer=O1;T.Lexer=H$;T.lexer=H$.lex;T.Tokenizer=Z0;T.Hooks=z0;T.parse=T;var{options:e6,setOptions:$8,use:J8,walkTokens:Q8,parseInline:W8}=T;var q8=G$.parse,Y8=H$.lex;import Y2 from"react";import{jsxDEV as F1}from"react/jsx-dev-runtime";T.setOptions({gfm:!0,breaks:!1});var e4=new Set(["a","abbr","b","br","code","del","em","i","kbd","mark","q","s","small","span","strong","sub","sup","time","u"]),$3=new Set(["Priority"]);function J3($){if(typeof $==="string"||typeof $==="number")return!0;if(!Y2.isValidElement($))return!1;if(typeof $!=="object"||$===null||!("type"in $))return!1;let J=$.type;if(typeof J==="string")return e4.has(J);if(typeof J==="function"){let Q="displayName"in J&&typeof J.displayName==="string"?J.displayName:J.name;return Q?$3.has(Q):!1}return!1}function Q3($,J){let Q=$.trim();if(!Q)return null;let q=T.parse(Q,{async:!1});return F1("div",{className:"prose-canvas","data-md":"markdown","data-md-source":Q,dangerouslySetInnerHTML:{__html:q}},J,!1,void 0,this)}function W3($,J){return F1("div",{className:"prose-canvas",children:$.map((Q,q)=>{if(typeof Q==="string"||typeof Q==="number"){let W=T.parseInline(String(Q),{async:!1});return F1("span",{dangerouslySetInnerHTML:{__html:W}},q,!1,void 0,this)}return Q})},J,!1,void 0,this)}function D$($){let J=Y2.Children.toArray($);if(J.length===0)return null;let Q=[],q=[],W=0,Y=()=>{if(q.length===0)return;if(q.some((G)=>typeof G!=="string"&&typeof G!=="number"))Q.push(W3(q,`md-${W++}`));else{let G=Q3(q.join(""),`md-${W++}`);if(G)Q.push(G)}q=[]};for(let X of J)if(J3(X))q.push(X);else Y(),Q.push(X);return Y(),Q}import{jsxDEV as A1}from"react/jsx-dev-runtime";var q3={info:{bg:"bg-accent-blue-muted",icon:"i",iconColor:"text-accent-blue"},warning:{bg:"bg-accent-amber-muted",icon:"!",iconColor:"text-accent-amber"},danger:{bg:"bg-accent-red-muted",icon:"✕",iconColor:"text-accent-red"},tip:{bg:"bg-accent-green-muted",icon:"✓",iconColor:"text-accent-green"}};function Y3({type:$="info",children:J}){let Q=q3[$];return A1("div",{className:`${Q.bg} relative rounded-lg px-5 py-4 mt-3 flex gap-3 items-start`,"data-md":"callout","data-md-type":$,children:[A1("span",{"aria-hidden":"true",className:`${Q.iconColor} opacity-70 text-base leading-relaxed flex-shrink-0 mt-px`,children:Q.icon},void 0,!1,void 0,this),A1("div",{className:"text-body text-text-secondary leading-relaxed",children:D$(J)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as t$}from"react/jsx-dev-runtime";function X3({items:$}){return t$("ul",{className:"space-y-1 mt-3","data-md":"checklist",children:$.map((J,Q)=>t$("li",{"data-md":"checklist-item","data-md-label":J.label,className:"relative flex items-start gap-2.5 py-1",children:[t$("span",{className:`w-4 h-4 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 transition-all ${J.checked?"bg-accent-green":"border-[1.5px] border-border-hover"}`,children:J.checked&&t$("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:t$("path",{d:"M2.5 5L4.5 7L7.5 3",style:{stroke:"var(--color-text-inverse)"},strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),t$("span",{className:`text-body font-body ${J.checked?"text-text-tertiary line-through decoration-border-hover":"text-text-secondary"}`,children:J.label},void 0,!1,void 0,this)]},Q,!0,void 0,this))},void 0,!1,void 0,this)}import{useAnnotations as I2,useResponseRegistration as g2}from"#canvas/runtime";import{useEffect as h2,useMemo as y2,useRef as Z2,useState as m2}from"react";import{AnnotationCtx as YQ,AnnotationHostContext as XQ,SessionContext as HQ,useAnnotationHost as GQ,useAnnotations as BQ}from"@fabrika/annotations/runtime";function z1($,J){let Q=[],q=H3($);for(let W of q){let Y=document.createRange();if(Y.selectNodeContents(W),W===$.startContainer)Y.setStart(W,$.startOffset);if(W===$.endContainer)Y.setEnd(W,$.endOffset);let X=Y.toString();if(!X||!X.trim())continue;let G=document.createElement("mark");G.setAttribute("data-annotation-id",J);try{Y.surroundContents(G)}catch{let H=Y.extractContents();G.appendChild(H),Y.insertNode(G)}Q.push(G)}return Q}function S1($){let J=$.parentElement;if(J?.classList.contains("select-none"))return!1;if(J?.closest("[data-annotation-id]"))return!1;return!0}function H3($){let J=[],Q=$.commonAncestorContainer;if(Q.nodeType===Node.TEXT_NODE)return J.push(Q),J;let q=document.createTreeWalker(Q,NodeFilter.SHOW_TEXT),W;while(W=q.nextNode()){if(!S1(W))continue;if($.intersectsNode(W))J.push(W)}return J}function f1($,J){for(let Q of J){if($.querySelector(`[data-annotation-id="${Q.id}"]`))continue;let q=Q.snippet;if(!q)continue;let{fullText:W,textNodes:Y}=G3($),X=[],G=0;while(!0){let w=W.indexOf(q,G);if(w===-1)break;X.push(w),G=w+1}let[H]=X;if(H===void 0)continue;let B=H;if(X.length>1&&Q.context){let w=-1;for(let L of X){let z=0;if(Q.context.before){let b=W.slice(Math.max(0,L-80),L);if(b.includes(Q.context.before))z+=2;else if(Q.context.before.length>10&&b.includes(Q.context.before.slice(-10)))z+=1}if(Q.context.after){let b=W.slice(L+q.length,L+q.length+80);if(b.includes(Q.context.after))z+=2;else if(Q.context.after.length>10&&b.includes(Q.context.after.slice(0,10)))z+=1}if(z>w)w=z,B=L}}let _=B,N=B+q.length,F=X2(Y,_),A=X2(Y,N);if(!F||!A)continue;try{let w=document.createRange();w.setStart(F.node,F.offset),w.setEnd(A.node,A.offset),z1(w,Q.id)}catch{}}}function G3($){let J=[],Q="",q=document.createTreeWalker($,NodeFilter.SHOW_TEXT),W;while(W=q.nextNode()){if(!S1(W))continue;J.push({node:W,start:Q.length}),Q+=W.textContent||""}return{fullText:Q,textNodes:J}}function X2($,J){for(let Q=$.length-1;Q>=0;Q--){let q=$[Q];if(!q||q.start>J)continue;let W=J-q.start,Y=q.node.textContent?.length??0;if(W<=Y)return{node:q.node,offset:W}}return null}function f0($){return{kind:$.kind,owns:(J)=>$.parse(J)!==null,find:(J,Q)=>{let q=$.parse(J);return q===null?null:$.find(q,Q)},restore:(J,Q)=>{let q=$.parse(Q.snippet);if(q===null)return;$.restore?.(q,J,Q)},describe:(J)=>{let Q=$.parse(J);if(Q===null||!$.describe)return null;return $.describe(Q)}}}function H2($){let J=document.createTreeWalker($,NodeFilter.SHOW_TEXT),Q="";for(let q=J.nextNode();q;q=J.nextNode()){let W=q.parentElement?.closest("[aria-hidden='true']");if(W&&$.contains(W))continue;Q+=q.textContent??""}return Q.trim()}function p0($,J,Q){return{selector:$,snippet:(q)=>{let W=q.getAttribute(Q);return W?`${J} ${W}`:null}}}var R1=[p0("[data-md='item']","[Item]","data-md-label"),p0("[data-md='section']","[Section]","data-md-title"),p0("[data-md='checklist-item']","[Checklist]","data-md-label"),p0("[data-md='image']","[Image]","data-md-src"),{selector:"[data-md='callout']",snippet:($)=>{return`[Callout:${$.getAttribute("data-md-type")||"info"}] ${H2($).slice(0,60)||"Callout"}`}},{selector:"[data-md='note']",snippet:($)=>`[Note] ${H2($).slice(0,60)||"Note"}`},{selector:"[data-md='table'] tbody tr",snippet:($)=>{let J=Array.from($.querySelectorAll("td")).map((Q)=>Q.textContent?.trim()).filter(Boolean);return J.length?`[Row] ${J.join(" | ")}`:null}}],B3=["[data-md='choice-option']","[data-md='multichoice-option']","[data-md='userinput']","[data-md='rangeinput']"],b1=R1.map(($)=>$.selector).join(", "),G2=[...R1.map(($)=>$.selector),...B3].join(", ");function j1($){for(let J of R1)if($.matches(J.selector))return J.snippet($);return null}var V1={kind:"block",parse:($)=>$.startsWith("[")?{snippet:$}:null,format:($)=>$.snippet,find:($,J)=>{for(let Q of J.querySelectorAll(b1)){if(!(Q instanceof HTMLElement))continue;if(j1(Q)===$.snippet)return Q}return null}};var _3=/^\[Region:(rect|ellipse)\] ([\s\S]+) @(0|[1-9]\d*),(0|[1-9]\d*),(0|[1-9]\d*),(0|[1-9]\d*)$/;function M3($){if($==="rect")return"rect";if($==="ellipse")return"ellipse";return null}function l0($){if($===void 0)return null;let J=Number($);if(!Number.isInteger(J)||J<0||J>1e4)return null;return J}function B2($){return{left:`${$.x/100}%`,top:`${$.y/100}%`,width:`${$.w/100}%`,height:`${$.h/100}%`}}function c0($){return`${($/100).toFixed(1).replace(/\.0$/,"")}%`}function P1($){let J=`${c0($.x)}-${c0($.x+$.w)}`,Q=`${c0($.y)}-${c0($.y+$.h)}`;return`[Region] ${$.src} — ${$.shape} x ${J}, y ${Q} of the image`}function v1($,J){for(let Q of J.querySelectorAll("[data-md='image']")){if(!(Q instanceof HTMLElement))continue;if(Q.getAttribute("data-md-src")!==$)continue;let q=Q.querySelector("[data-annotation-image]");if(q instanceof HTMLElement)return q}return null}function _2($,J){let Q=B2(J);$.style.left=Q.left,$.style.top=Q.top,$.style.width=Q.width,$.style.height=Q.height}function C1($,J,Q){let q=document.createElement("div");return q.className="ann-region",q.setAttribute("data-annotation-id",Q),q.setAttribute("data-annotation-region",J),_2(q,$),q}var d0={kind:"region",parse:($)=>{let J=_3.exec($);if(!J)return null;let Q=M3(J[1]),q=J[2],W=l0(J[3]),Y=l0(J[4]),X=l0(J[5]),G=l0(J[6]);if(Q===null||q===void 0)return null;if(W===null||Y===null||X===null||G===null)return null;if(X<1||G<1)return null;return{src:q,shape:Q,x:W,y:Y,w:X,h:G}},format:($)=>`[Region:${$.shape}] ${$.src} @${$.x},${$.y},${$.w},${$.h}`,find:($,J)=>v1($.src,J),restore:($,J,Q)=>{if(J.querySelector(`[data-annotation-id="${Q.id}"]`))return;let q=v1($.src,J);if(!q)return;q.appendChild(C1($,$.shape,Q.id))},describe:P1};var D1={kind:"text",parse:($)=>$?{text:$}:null,format:($)=>$.text,find:()=>null,restore:($,J,Q)=>{f1(J,[Q])}};var U3=[f0(d0),f0(V1),f0(D1)];import{AnnotationCtx as O9,SessionContext as F9,useAnnotationHost as A9}from"@fabrika/annotations/runtime";import{useEffect as f9,useRef as R9,useState as b9}from"react";var M={};M4(M,{void:()=>a3,util:()=>D,unknown:()=>o3,union:()=>$5,undefined:()=>d3,tuple:()=>W5,transformer:()=>w5,symbol:()=>c3,string:()=>A2,strictObject:()=>e3,setErrorMap:()=>K3,set:()=>X5,record:()=>q5,quotelessJson:()=>w3,promise:()=>U5,preprocess:()=>L5,pipeline:()=>O5,ostring:()=>F5,optional:()=>N5,onumber:()=>A5,oboolean:()=>z5,objectUtil:()=>k1,object:()=>t3,number:()=>z2,nullable:()=>K5,null:()=>i3,never:()=>n3,nativeEnum:()=>M5,nan:()=>u3,map:()=>Y5,makeIssue:()=>R0,literal:()=>B5,lazy:()=>G5,late:()=>m3,isValid:()=>k$,isDirty:()=>r0,isAsync:()=>$0,isAborted:()=>i0,intersection:()=>Q5,instanceof:()=>x3,getParsedType:()=>z$,getErrorMap:()=>e$,function:()=>H5,enum:()=>_5,effect:()=>w5,discriminatedUnion:()=>J5,defaultErrorMap:()=>j$,datetimeRegex:()=>L2,date:()=>l3,custom:()=>F2,coerce:()=>S5,boolean:()=>S2,bigint:()=>p3,array:()=>s3,any:()=>r3,addIssueToContext:()=>O,ZodVoid:()=>j0,ZodUnknown:()=>E$,ZodUnion:()=>X0,ZodUndefined:()=>q0,ZodType:()=>C,ZodTuple:()=>f$,ZodTransformer:()=>w$,ZodSymbol:()=>b0,ZodString:()=>B$,ZodSet:()=>r$,ZodSchema:()=>C,ZodRecord:()=>V0,ZodReadonly:()=>w0,ZodPromise:()=>o$,ZodPipeline:()=>C0,ZodParsedType:()=>K,ZodOptional:()=>M$,ZodObject:()=>x,ZodNumber:()=>T$,ZodNullable:()=>v$,ZodNull:()=>Y0,ZodNever:()=>S$,ZodNativeEnum:()=>_0,ZodNaN:()=>P0,ZodMap:()=>v0,ZodLiteral:()=>B0,ZodLazy:()=>G0,ZodIssueCode:()=>U,ZodIntersection:()=>H0,ZodFunction:()=>Q0,ZodFirstPartyTypeKind:()=>R,ZodError:()=>Q$,ZodEnum:()=>g$,ZodEffects:()=>w$,ZodDiscriminatedUnion:()=>o0,ZodDefault:()=>M0,ZodDate:()=>d$,ZodCatch:()=>U0,ZodBranded:()=>n0,ZodBoolean:()=>W0,ZodBigInt:()=>I$,ZodArray:()=>_$,ZodAny:()=>i$,Schema:()=>C,ParseStatus:()=>r,OK:()=>n,NEVER:()=>f5,INVALID:()=>f,EMPTY_PATH:()=>L3,DIRTY:()=>c$,BRAND:()=>Z3});var D;(function($){$.assertEqual=(W)=>{};function J(W){}$.assertIs=J;function Q(W){throw Error()}$.assertNever=Q,$.arrayToEnum=(W)=>{let Y={};for(let X of W)Y[X]=X;return Y},$.getValidEnumValues=(W)=>{let Y=$.objectKeys(W).filter((G)=>typeof W[W[G]]!=="number"),X={};for(let G of Y)X[G]=W[G];return $.objectValues(X)},$.objectValues=(W)=>{return $.objectKeys(W).map(function(Y){return W[Y]})},$.objectKeys=typeof Object.keys==="function"?(W)=>Object.keys(W):(W)=>{let Y=[];for(let X in W)if(Object.prototype.hasOwnProperty.call(W,X))Y.push(X);return Y},$.find=(W,Y)=>{for(let X of W)if(Y(X))return X;return},$.isInteger=typeof Number.isInteger==="function"?(W)=>Number.isInteger(W):(W)=>typeof W==="number"&&Number.isFinite(W)&&Math.floor(W)===W;function q(W,Y=" | "){return W.map((X)=>typeof X==="string"?`'${X}'`:X).join(Y)}$.joinValues=q,$.jsonStringifyReplacer=(W,Y)=>{if(typeof Y==="bigint")return Y.toString();return Y}})(D||(D={}));var k1;(function($){$.mergeShapes=(J,Q)=>{return{...J,...Q}}})(k1||(k1={}));var K=D.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),z$=($)=>{switch(typeof $){case"undefined":return K.undefined;case"string":return K.string;case"number":return Number.isNaN($)?K.nan:K.number;case"boolean":return K.boolean;case"function":return K.function;case"bigint":return K.bigint;case"symbol":return K.symbol;case"object":if(Array.isArray($))return K.array;if($===null)return K.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return K.promise;if(typeof Map<"u"&&$ instanceof Map)return K.map;if(typeof Set<"u"&&$ instanceof Set)return K.set;if(typeof Date<"u"&&$ instanceof Date)return K.date;return K.object;default:return K.unknown}};var U=D.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),w3=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class Q$ extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(Q)=>{this.issues=[...this.issues,Q]},this.addIssues=(Q=[])=>{this.issues=[...this.issues,...Q]};let J=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,J);else this.__proto__=J;this.name="ZodError",this.issues=$}format($){let J=$||function(W){return W.message},Q={_errors:[]},q=(W)=>{for(let Y of W.issues)if(Y.code==="invalid_union")Y.unionErrors.map(q);else if(Y.code==="invalid_return_type")q(Y.returnTypeError);else if(Y.code==="invalid_arguments")q(Y.argumentsError);else if(Y.path.length===0)Q._errors.push(J(Y));else{let X=Q,G=0;while(G<Y.path.length){let H=Y.path[G];if(G!==Y.path.length-1)X[H]=X[H]||{_errors:[]};else X[H]=X[H]||{_errors:[]},X[H]._errors.push(J(Y));X=X[H],G++}}};return q(this),Q}static assert($){if(!($ instanceof Q$))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,D.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(J)=>J.message){let J={},Q=[];for(let q of this.issues)if(q.path.length>0){let W=q.path[0];J[W]=J[W]||[],J[W].push($(q))}else Q.push($(q));return{formErrors:Q,fieldErrors:J}}get formErrors(){return this.flatten()}}Q$.create=($)=>{return new Q$($)};var N3=($,J)=>{let Q;switch($.code){case U.invalid_type:if($.received===K.undefined)Q="Required";else Q=`Expected ${$.expected}, received ${$.received}`;break;case U.invalid_literal:Q=`Invalid literal value, expected ${JSON.stringify($.expected,D.jsonStringifyReplacer)}`;break;case U.unrecognized_keys:Q=`Unrecognized key(s) in object: ${D.joinValues($.keys,", ")}`;break;case U.invalid_union:Q="Invalid input";break;case U.invalid_union_discriminator:Q=`Invalid discriminator value. Expected ${D.joinValues($.options)}`;break;case U.invalid_enum_value:Q=`Invalid enum value. Expected ${D.joinValues($.options)}, received '${$.received}'`;break;case U.invalid_arguments:Q="Invalid function arguments";break;case U.invalid_return_type:Q="Invalid function return type";break;case U.invalid_date:Q="Invalid date";break;case U.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(Q=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")Q=`${Q} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)Q=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)Q=`Invalid input: must end with "${$.validation.endsWith}"`;else D.assertNever($.validation);else if($.validation!=="regex")Q=`Invalid ${$.validation}`;else Q="Invalid";break;case U.too_small:if($.type==="array")Q=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")Q=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")Q=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")Q=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")Q=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else Q="Invalid input";break;case U.too_big:if($.type==="array")Q=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")Q=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")Q=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")Q=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")Q=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else Q="Invalid input";break;case U.custom:Q="Invalid input";break;case U.invalid_intersection_types:Q="Intersection results could not be merged";break;case U.not_multiple_of:Q=`Number must be a multiple of ${$.multipleOf}`;break;case U.not_finite:Q="Number must be finite";break;default:Q=J.defaultError,D.assertNever($)}return{message:Q}},j$=N3;var M2=j$;function K3($){M2=$}function e$(){return M2}var R0=($)=>{let{data:J,path:Q,errorMaps:q,issueData:W}=$,Y=[...Q,...W.path||[]],X={...W,path:Y};if(W.message!==void 0)return{...W,path:Y,message:W.message};let G="",H=q.filter((B)=>!!B).slice().reverse();for(let B of H)G=B(X,{data:J,defaultError:G}).message;return{...W,path:Y,message:G}},L3=[];function O($,J){let Q=e$(),q=R0({issueData:J,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,Q,Q===j$?void 0:j$].filter((W)=>!!W)});$.common.issues.push(q)}class r{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,J){let Q=[];for(let q of J){if(q.status==="aborted")return f;if(q.status==="dirty")$.dirty();Q.push(q.value)}return{status:$.value,value:Q}}static async mergeObjectAsync($,J){let Q=[];for(let q of J){let W=await q.key,Y=await q.value;Q.push({key:W,value:Y})}return r.mergeObjectSync($,Q)}static mergeObjectSync($,J){let Q={};for(let q of J){let{key:W,value:Y}=q;if(W.status==="aborted")return f;if(Y.status==="aborted")return f;if(W.status==="dirty")$.dirty();if(Y.status==="dirty")$.dirty();if(W.value!=="__proto__"&&(typeof Y.value<"u"||q.alwaysSet))Q[W.value]=Y.value}return{status:$.value,value:Q}}}var f=Object.freeze({status:"aborted"}),c$=($)=>({status:"dirty",value:$}),n=($)=>({status:"valid",value:$}),i0=($)=>$.status==="aborted",r0=($)=>$.status==="dirty",k$=($)=>$.status==="valid",$0=($)=>typeof Promise<"u"&&$ instanceof Promise;var S;(function($){$.errToObj=(J)=>typeof J==="string"?{message:J}:J||{},$.toString=(J)=>typeof J==="string"?J:J?.message})(S||(S={}));class U${constructor($,J,Q,q){this._cachedPath=[],this.parent=$,this.data=J,this._path=Q,this._key=q}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var U2=($,J)=>{if(k$(J))return{success:!0,data:J.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Q=new Q$($.common.issues);return this._error=Q,this._error}}}};function v($){if(!$)return{};let{errorMap:J,invalid_type_error:Q,required_error:q,description:W}=$;if(J&&(Q||q))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(J)return{errorMap:J,description:W};return{errorMap:(X,G)=>{let{message:H}=$;if(X.code==="invalid_enum_value")return{message:H??G.defaultError};if(typeof G.data>"u")return{message:H??q??G.defaultError};if(X.code!=="invalid_type")return{message:G.defaultError};return{message:H??Q??G.defaultError}},description:W}}class C{get description(){return this._def.description}_getType($){return z$($.data)}_getOrReturnCtx($,J){return J||{common:$.parent.common,data:$.data,parsedType:z$($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new r,ctx:{common:$.parent.common,data:$.data,parsedType:z$($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let J=this._parse($);if($0(J))throw Error("Synchronous parse encountered promise.");return J}_parseAsync($){let J=this._parse($);return Promise.resolve(J)}parse($,J){let Q=this.safeParse($,J);if(Q.success)return Q.data;throw Q.error}safeParse($,J){let Q={common:{issues:[],async:J?.async??!1,contextualErrorMap:J?.errorMap},path:J?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:z$($)},q=this._parseSync({data:$,path:Q.path,parent:Q});return U2(Q,q)}"~validate"($){let J={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:z$($)};if(!this["~standard"].async)try{let Q=this._parseSync({data:$,path:[],parent:J});return k$(Q)?{value:Q.value}:{issues:J.common.issues}}catch(Q){if(Q?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;J.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:J}).then((Q)=>k$(Q)?{value:Q.value}:{issues:J.common.issues})}async parseAsync($,J){let Q=await this.safeParseAsync($,J);if(Q.success)return Q.data;throw Q.error}async safeParseAsync($,J){let Q={common:{issues:[],contextualErrorMap:J?.errorMap,async:!0},path:J?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:z$($)},q=this._parse({data:$,path:Q.path,parent:Q}),W=await($0(q)?q:Promise.resolve(q));return U2(Q,W)}refine($,J){let Q=(q)=>{if(typeof J==="string"||typeof J>"u")return{message:J};else if(typeof J==="function")return J(q);else return J};return this._refinement((q,W)=>{let Y=$(q),X=()=>W.addIssue({code:U.custom,...Q(q)});if(typeof Promise<"u"&&Y instanceof Promise)return Y.then((G)=>{if(!G)return X(),!1;else return!0});if(!Y)return X(),!1;else return!0})}refinement($,J){return this._refinement((Q,q)=>{if(!$(Q))return q.addIssue(typeof J==="function"?J(Q,q):J),!1;else return!0})}_refinement($){return new w$({schema:this,typeName:R.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(J)=>this["~validate"](J)}}optional(){return M$.create(this,this._def)}nullable(){return v$.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return _$.create(this)}promise(){return o$.create(this,this._def)}or($){return X0.create([this,$],this._def)}and($){return H0.create(this,$,this._def)}transform($){return new w$({...v(this._def),schema:this,typeName:R.ZodEffects,effect:{type:"transform",transform:$}})}default($){let J=typeof $==="function"?$:()=>$;return new M0({...v(this._def),innerType:this,defaultValue:J,typeName:R.ZodDefault})}brand(){return new n0({typeName:R.ZodBranded,type:this,...v(this._def)})}catch($){let J=typeof $==="function"?$:()=>$;return new U0({...v(this._def),innerType:this,catchValue:J,typeName:R.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return C0.create(this,$)}readonly(){return w0.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var O3=/^c[^\s-]{8,}$/i,F3=/^[0-9a-z]+$/,A3=/^[0-9A-HJKMNP-TV-Z]{26}$/i,z3=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,S3=/^[a-z0-9_-]{21}$/i,f3=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,R3=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,b3=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,j3="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",E1,V3=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,v3=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,P3=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,C3=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,D3=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,k3=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,N2="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",E3=new RegExp(`^${N2}$`);function K2($){let J="[0-5]\\d";if($.precision)J=`${J}\\.\\d{${$.precision}}`;else if($.precision==null)J=`${J}(\\.\\d+)?`;let Q=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${J})${Q}`}function T3($){return new RegExp(`^${K2($)}$`)}function L2($){let J=`${N2}T${K2($)}`,Q=[];if(Q.push($.local?"Z?":"Z"),$.offset)Q.push("([+-]\\d{2}:?\\d{2})");return J=`${J}(${Q.join("|")})`,new RegExp(`^${J}$`)}function I3($,J){if((J==="v4"||!J)&&V3.test($))return!0;if((J==="v6"||!J)&&P3.test($))return!0;return!1}function g3($,J){if(!f3.test($))return!1;try{let[Q]=$.split(".");if(!Q)return!1;let q=Q.replace(/-/g,"+").replace(/_/g,"/").padEnd(Q.length+(4-Q.length%4)%4,"="),W=JSON.parse(atob(q));if(typeof W!=="object"||W===null)return!1;if("typ"in W&&W?.typ!=="JWT")return!1;if(!W.alg)return!1;if(J&&W.alg!==J)return!1;return!0}catch{return!1}}function h3($,J){if((J==="v4"||!J)&&v3.test($))return!0;if((J==="v6"||!J)&&C3.test($))return!0;return!1}class B$ extends C{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==K.string){let W=this._getOrReturnCtx($);return O(W,{code:U.invalid_type,expected:K.string,received:W.parsedType}),f}let Q=new r,q=void 0;for(let W of this._def.checks)if(W.kind==="min"){if($.data.length<W.value)q=this._getOrReturnCtx($,q),O(q,{code:U.too_small,minimum:W.value,type:"string",inclusive:!0,exact:!1,message:W.message}),Q.dirty()}else if(W.kind==="max"){if($.data.length>W.value)q=this._getOrReturnCtx($,q),O(q,{code:U.too_big,maximum:W.value,type:"string",inclusive:!0,exact:!1,message:W.message}),Q.dirty()}else if(W.kind==="length"){let Y=$.data.length>W.value,X=$.data.length<W.value;if(Y||X){if(q=this._getOrReturnCtx($,q),Y)O(q,{code:U.too_big,maximum:W.value,type:"string",inclusive:!0,exact:!0,message:W.message});else if(X)O(q,{code:U.too_small,minimum:W.value,type:"string",inclusive:!0,exact:!0,message:W.message});Q.dirty()}}else if(W.kind==="email"){if(!b3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"email",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="emoji"){if(!E1)E1=new RegExp(j3,"u");if(!E1.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"emoji",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="uuid"){if(!z3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"uuid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="nanoid"){if(!S3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"nanoid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cuid"){if(!O3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"cuid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cuid2"){if(!F3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"cuid2",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="ulid"){if(!A3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"ulid",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="url")try{new URL($.data)}catch{q=this._getOrReturnCtx($,q),O(q,{validation:"url",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="regex"){if(W.regex.lastIndex=0,!W.regex.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"regex",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="trim")$.data=$.data.trim();else if(W.kind==="includes"){if(!$.data.includes(W.value,W.position))q=this._getOrReturnCtx($,q),O(q,{code:U.invalid_string,validation:{includes:W.value,position:W.position},message:W.message}),Q.dirty()}else if(W.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(W.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(W.kind==="startsWith"){if(!$.data.startsWith(W.value))q=this._getOrReturnCtx($,q),O(q,{code:U.invalid_string,validation:{startsWith:W.value},message:W.message}),Q.dirty()}else if(W.kind==="endsWith"){if(!$.data.endsWith(W.value))q=this._getOrReturnCtx($,q),O(q,{code:U.invalid_string,validation:{endsWith:W.value},message:W.message}),Q.dirty()}else if(W.kind==="datetime"){if(!L2(W).test($.data))q=this._getOrReturnCtx($,q),O(q,{code:U.invalid_string,validation:"datetime",message:W.message}),Q.dirty()}else if(W.kind==="date"){if(!E3.test($.data))q=this._getOrReturnCtx($,q),O(q,{code:U.invalid_string,validation:"date",message:W.message}),Q.dirty()}else if(W.kind==="time"){if(!T3(W).test($.data))q=this._getOrReturnCtx($,q),O(q,{code:U.invalid_string,validation:"time",message:W.message}),Q.dirty()}else if(W.kind==="duration"){if(!R3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"duration",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="ip"){if(!I3($.data,W.version))q=this._getOrReturnCtx($,q),O(q,{validation:"ip",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="jwt"){if(!g3($.data,W.alg))q=this._getOrReturnCtx($,q),O(q,{validation:"jwt",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="cidr"){if(!h3($.data,W.version))q=this._getOrReturnCtx($,q),O(q,{validation:"cidr",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="base64"){if(!D3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"base64",code:U.invalid_string,message:W.message}),Q.dirty()}else if(W.kind==="base64url"){if(!k3.test($.data))q=this._getOrReturnCtx($,q),O(q,{validation:"base64url",code:U.invalid_string,message:W.message}),Q.dirty()}else D.assertNever(W);return{status:Q.value,value:$.data}}_regex($,J,Q){return this.refinement((q)=>$.test(q),{validation:J,code:U.invalid_string,...S.errToObj(Q)})}_addCheck($){return new B$({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...S.errToObj($)})}url($){return this._addCheck({kind:"url",...S.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...S.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...S.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...S.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...S.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...S.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...S.errToObj($)})}base64($){return this._addCheck({kind:"base64",...S.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...S.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...S.errToObj($)})}ip($){return this._addCheck({kind:"ip",...S.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...S.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...S.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...S.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...S.errToObj($)})}regex($,J){return this._addCheck({kind:"regex",regex:$,...S.errToObj(J)})}includes($,J){return this._addCheck({kind:"includes",value:$,position:J?.position,...S.errToObj(J?.message)})}startsWith($,J){return this._addCheck({kind:"startsWith",value:$,...S.errToObj(J)})}endsWith($,J){return this._addCheck({kind:"endsWith",value:$,...S.errToObj(J)})}min($,J){return this._addCheck({kind:"min",value:$,...S.errToObj(J)})}max($,J){return this._addCheck({kind:"max",value:$,...S.errToObj(J)})}length($,J){return this._addCheck({kind:"length",value:$,...S.errToObj(J)})}nonempty($){return this.min(1,S.errToObj($))}trim(){return new B$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new B$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new B$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let J of this._def.checks)if(J.kind==="min"){if($===null||J.value>$)$=J.value}return $}get maxLength(){let $=null;for(let J of this._def.checks)if(J.kind==="max"){if($===null||J.value<$)$=J.value}return $}}B$.create=($)=>{return new B$({checks:[],typeName:R.ZodString,coerce:$?.coerce??!1,...v($)})};function y3($,J){let Q=($.toString().split(".")[1]||"").length,q=(J.toString().split(".")[1]||"").length,W=Q>q?Q:q,Y=Number.parseInt($.toFixed(W).replace(".","")),X=Number.parseInt(J.toFixed(W).replace(".",""));return Y%X/10**W}class T$ extends C{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==K.number){let W=this._getOrReturnCtx($);return O(W,{code:U.invalid_type,expected:K.number,received:W.parsedType}),f}let Q=void 0,q=new r;for(let W of this._def.checks)if(W.kind==="int"){if(!D.isInteger($.data))Q=this._getOrReturnCtx($,Q),O(Q,{code:U.invalid_type,expected:"integer",received:"float",message:W.message}),q.dirty()}else if(W.kind==="min"){if(W.inclusive?$.data<W.value:$.data<=W.value)Q=this._getOrReturnCtx($,Q),O(Q,{code:U.too_small,minimum:W.value,type:"number",inclusive:W.inclusive,exact:!1,message:W.message}),q.dirty()}else if(W.kind==="max"){if(W.inclusive?$.data>W.value:$.data>=W.value)Q=this._getOrReturnCtx($,Q),O(Q,{code:U.too_big,maximum:W.value,type:"number",inclusive:W.inclusive,exact:!1,message:W.message}),q.dirty()}else if(W.kind==="multipleOf"){if(y3($.data,W.value)!==0)Q=this._getOrReturnCtx($,Q),O(Q,{code:U.not_multiple_of,multipleOf:W.value,message:W.message}),q.dirty()}else if(W.kind==="finite"){if(!Number.isFinite($.data))Q=this._getOrReturnCtx($,Q),O(Q,{code:U.not_finite,message:W.message}),q.dirty()}else D.assertNever(W);return{status:q.value,value:$.data}}gte($,J){return this.setLimit("min",$,!0,S.toString(J))}gt($,J){return this.setLimit("min",$,!1,S.toString(J))}lte($,J){return this.setLimit("max",$,!0,S.toString(J))}lt($,J){return this.setLimit("max",$,!1,S.toString(J))}setLimit($,J,Q,q){return new T$({...this._def,checks:[...this._def.checks,{kind:$,value:J,inclusive:Q,message:S.toString(q)}]})}_addCheck($){return new T$({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:S.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:S.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:S.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:S.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:S.toString($)})}multipleOf($,J){return this._addCheck({kind:"multipleOf",value:$,message:S.toString(J)})}finite($){return this._addCheck({kind:"finite",message:S.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:S.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:S.toString($)})}get minValue(){let $=null;for(let J of this._def.checks)if(J.kind==="min"){if($===null||J.value>$)$=J.value}return $}get maxValue(){let $=null;for(let J of this._def.checks)if(J.kind==="max"){if($===null||J.value<$)$=J.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&D.isInteger($.value))}get isFinite(){let $=null,J=null;for(let Q of this._def.checks)if(Q.kind==="finite"||Q.kind==="int"||Q.kind==="multipleOf")return!0;else if(Q.kind==="min"){if(J===null||Q.value>J)J=Q.value}else if(Q.kind==="max"){if($===null||Q.value<$)$=Q.value}return Number.isFinite(J)&&Number.isFinite($)}}T$.create=($)=>{return new T$({checks:[],typeName:R.ZodNumber,coerce:$?.coerce||!1,...v($)})};class I$ extends C{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==K.bigint)return this._getInvalidInput($);let Q=void 0,q=new r;for(let W of this._def.checks)if(W.kind==="min"){if(W.inclusive?$.data<W.value:$.data<=W.value)Q=this._getOrReturnCtx($,Q),O(Q,{code:U.too_small,type:"bigint",minimum:W.value,inclusive:W.inclusive,message:W.message}),q.dirty()}else if(W.kind==="max"){if(W.inclusive?$.data>W.value:$.data>=W.value)Q=this._getOrReturnCtx($,Q),O(Q,{code:U.too_big,type:"bigint",maximum:W.value,inclusive:W.inclusive,message:W.message}),q.dirty()}else if(W.kind==="multipleOf"){if($.data%W.value!==BigInt(0))Q=this._getOrReturnCtx($,Q),O(Q,{code:U.not_multiple_of,multipleOf:W.value,message:W.message}),q.dirty()}else D.assertNever(W);return{status:q.value,value:$.data}}_getInvalidInput($){let J=this._getOrReturnCtx($);return O(J,{code:U.invalid_type,expected:K.bigint,received:J.parsedType}),f}gte($,J){return this.setLimit("min",$,!0,S.toString(J))}gt($,J){return this.setLimit("min",$,!1,S.toString(J))}lte($,J){return this.setLimit("max",$,!0,S.toString(J))}lt($,J){return this.setLimit("max",$,!1,S.toString(J))}setLimit($,J,Q,q){return new I$({...this._def,checks:[...this._def.checks,{kind:$,value:J,inclusive:Q,message:S.toString(q)}]})}_addCheck($){return new I$({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:S.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:S.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:S.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:S.toString($)})}multipleOf($,J){return this._addCheck({kind:"multipleOf",value:$,message:S.toString(J)})}get minValue(){let $=null;for(let J of this._def.checks)if(J.kind==="min"){if($===null||J.value>$)$=J.value}return $}get maxValue(){let $=null;for(let J of this._def.checks)if(J.kind==="max"){if($===null||J.value<$)$=J.value}return $}}I$.create=($)=>{return new I$({checks:[],typeName:R.ZodBigInt,coerce:$?.coerce??!1,...v($)})};class W0 extends C{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==K.boolean){let Q=this._getOrReturnCtx($);return O(Q,{code:U.invalid_type,expected:K.boolean,received:Q.parsedType}),f}return n($.data)}}W0.create=($)=>{return new W0({typeName:R.ZodBoolean,coerce:$?.coerce||!1,...v($)})};class d$ extends C{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==K.date){let W=this._getOrReturnCtx($);return O(W,{code:U.invalid_type,expected:K.date,received:W.parsedType}),f}if(Number.isNaN($.data.getTime())){let W=this._getOrReturnCtx($);return O(W,{code:U.invalid_date}),f}let Q=new r,q=void 0;for(let W of this._def.checks)if(W.kind==="min"){if($.data.getTime()<W.value)q=this._getOrReturnCtx($,q),O(q,{code:U.too_small,message:W.message,inclusive:!0,exact:!1,minimum:W.value,type:"date"}),Q.dirty()}else if(W.kind==="max"){if($.data.getTime()>W.value)q=this._getOrReturnCtx($,q),O(q,{code:U.too_big,message:W.message,inclusive:!0,exact:!1,maximum:W.value,type:"date"}),Q.dirty()}else D.assertNever(W);return{status:Q.value,value:new Date($.data.getTime())}}_addCheck($){return new d$({...this._def,checks:[...this._def.checks,$]})}min($,J){return this._addCheck({kind:"min",value:$.getTime(),message:S.toString(J)})}max($,J){return this._addCheck({kind:"max",value:$.getTime(),message:S.toString(J)})}get minDate(){let $=null;for(let J of this._def.checks)if(J.kind==="min"){if($===null||J.value>$)$=J.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let J of this._def.checks)if(J.kind==="max"){if($===null||J.value<$)$=J.value}return $!=null?new Date($):null}}d$.create=($)=>{return new d$({checks:[],coerce:$?.coerce||!1,typeName:R.ZodDate,...v($)})};class b0 extends C{_parse($){if(this._getType($)!==K.symbol){let Q=this._getOrReturnCtx($);return O(Q,{code:U.invalid_type,expected:K.symbol,received:Q.parsedType}),f}return n($.data)}}b0.create=($)=>{return new b0({typeName:R.ZodSymbol,...v($)})};class q0 extends C{_parse($){if(this._getType($)!==K.undefined){let Q=this._getOrReturnCtx($);return O(Q,{code:U.invalid_type,expected:K.undefined,received:Q.parsedType}),f}return n($.data)}}q0.create=($)=>{return new q0({typeName:R.ZodUndefined,...v($)})};class Y0 extends C{_parse($){if(this._getType($)!==K.null){let Q=this._getOrReturnCtx($);return O(Q,{code:U.invalid_type,expected:K.null,received:Q.parsedType}),f}return n($.data)}}Y0.create=($)=>{return new Y0({typeName:R.ZodNull,...v($)})};class i$ extends C{constructor(){super(...arguments);this._any=!0}_parse($){return n($.data)}}i$.create=($)=>{return new i$({typeName:R.ZodAny,...v($)})};class E$ extends C{constructor(){super(...arguments);this._unknown=!0}_parse($){return n($.data)}}E$.create=($)=>{return new E$({typeName:R.ZodUnknown,...v($)})};class S$ extends C{_parse($){let J=this._getOrReturnCtx($);return O(J,{code:U.invalid_type,expected:K.never,received:J.parsedType}),f}}S$.create=($)=>{return new S$({typeName:R.ZodNever,...v($)})};class j0 extends C{_parse($){if(this._getType($)!==K.undefined){let Q=this._getOrReturnCtx($);return O(Q,{code:U.invalid_type,expected:K.void,received:Q.parsedType}),f}return n($.data)}}j0.create=($)=>{return new j0({typeName:R.ZodVoid,...v($)})};class _$ extends C{_parse($){let{ctx:J,status:Q}=this._processInputParams($),q=this._def;if(J.parsedType!==K.array)return O(J,{code:U.invalid_type,expected:K.array,received:J.parsedType}),f;if(q.exactLength!==null){let Y=J.data.length>q.exactLength.value,X=J.data.length<q.exactLength.value;if(Y||X)O(J,{code:Y?U.too_big:U.too_small,minimum:X?q.exactLength.value:void 0,maximum:Y?q.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:q.exactLength.message}),Q.dirty()}if(q.minLength!==null){if(J.data.length<q.minLength.value)O(J,{code:U.too_small,minimum:q.minLength.value,type:"array",inclusive:!0,exact:!1,message:q.minLength.message}),Q.dirty()}if(q.maxLength!==null){if(J.data.length>q.maxLength.value)O(J,{code:U.too_big,maximum:q.maxLength.value,type:"array",inclusive:!0,exact:!1,message:q.maxLength.message}),Q.dirty()}if(J.common.async)return Promise.all([...J.data].map((Y,X)=>{return q.type._parseAsync(new U$(J,Y,J.path,X))})).then((Y)=>{return r.mergeArray(Q,Y)});let W=[...J.data].map((Y,X)=>{return q.type._parseSync(new U$(J,Y,J.path,X))});return r.mergeArray(Q,W)}get element(){return this._def.type}min($,J){return new _$({...this._def,minLength:{value:$,message:S.toString(J)}})}max($,J){return new _$({...this._def,maxLength:{value:$,message:S.toString(J)}})}length($,J){return new _$({...this._def,exactLength:{value:$,message:S.toString(J)}})}nonempty($){return this.min(1,$)}}_$.create=($,J)=>{return new _$({type:$,minLength:null,maxLength:null,exactLength:null,typeName:R.ZodArray,...v(J)})};function J0($){if($ instanceof x){let J={};for(let Q in $.shape){let q=$.shape[Q];J[Q]=M$.create(J0(q))}return new x({...$._def,shape:()=>J})}else if($ instanceof _$)return new _$({...$._def,type:J0($.element)});else if($ instanceof M$)return M$.create(J0($.unwrap()));else if($ instanceof v$)return v$.create(J0($.unwrap()));else if($ instanceof f$)return f$.create($.items.map((J)=>J0(J)));else return $}class x extends C{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),J=D.objectKeys($);return this._cached={shape:$,keys:J},this._cached}_parse($){if(this._getType($)!==K.object){let H=this._getOrReturnCtx($);return O(H,{code:U.invalid_type,expected:K.object,received:H.parsedType}),f}let{status:Q,ctx:q}=this._processInputParams($),{shape:W,keys:Y}=this._getCached(),X=[];if(!(this._def.catchall instanceof S$&&this._def.unknownKeys==="strip")){for(let H in q.data)if(!Y.includes(H))X.push(H)}let G=[];for(let H of Y){let B=W[H],_=q.data[H];G.push({key:{status:"valid",value:H},value:B._parse(new U$(q,_,q.path,H)),alwaysSet:H in q.data})}if(this._def.catchall instanceof S$){let H=this._def.unknownKeys;if(H==="passthrough")for(let B of X)G.push({key:{status:"valid",value:B},value:{status:"valid",value:q.data[B]}});else if(H==="strict"){if(X.length>0)O(q,{code:U.unrecognized_keys,keys:X}),Q.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let B of X){let _=q.data[B];G.push({key:{status:"valid",value:B},value:H._parse(new U$(q,_,q.path,B)),alwaysSet:B in q.data})}}if(q.common.async)return Promise.resolve().then(async()=>{let H=[];for(let B of G){let _=await B.key,N=await B.value;H.push({key:_,value:N,alwaysSet:B.alwaysSet})}return H}).then((H)=>{return r.mergeObjectSync(Q,H)});else return r.mergeObjectSync(Q,G)}get shape(){return this._def.shape()}strict($){return S.errToObj,new x({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(J,Q)=>{let q=this._def.errorMap?.(J,Q).message??Q.defaultError;if(J.code==="unrecognized_keys")return{message:S.errToObj($).message??q};return{message:q}}}:{}})}strip(){return new x({...this._def,unknownKeys:"strip"})}passthrough(){return new x({...this._def,unknownKeys:"passthrough"})}extend($){return new x({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new x({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:R.ZodObject})}setKey($,J){return this.augment({[$]:J})}catchall($){return new x({...this._def,catchall:$})}pick($){let J={};for(let Q of D.objectKeys($))if($[Q]&&this.shape[Q])J[Q]=this.shape[Q];return new x({...this._def,shape:()=>J})}omit($){let J={};for(let Q of D.objectKeys(this.shape))if(!$[Q])J[Q]=this.shape[Q];return new x({...this._def,shape:()=>J})}deepPartial(){return J0(this)}partial($){let J={};for(let Q of D.objectKeys(this.shape)){let q=this.shape[Q];if($&&!$[Q])J[Q]=q;else J[Q]=q.optional()}return new x({...this._def,shape:()=>J})}required($){let J={};for(let Q of D.objectKeys(this.shape))if($&&!$[Q])J[Q]=this.shape[Q];else{let W=this.shape[Q];while(W instanceof M$)W=W._def.innerType;J[Q]=W}return new x({...this._def,shape:()=>J})}keyof(){return O2(D.objectKeys(this.shape))}}x.create=($,J)=>{return new x({shape:()=>$,unknownKeys:"strip",catchall:S$.create(),typeName:R.ZodObject,...v(J)})};x.strictCreate=($,J)=>{return new x({shape:()=>$,unknownKeys:"strict",catchall:S$.create(),typeName:R.ZodObject,...v(J)})};x.lazycreate=($,J)=>{return new x({shape:$,unknownKeys:"strip",catchall:S$.create(),typeName:R.ZodObject,...v(J)})};class X0 extends C{_parse($){let{ctx:J}=this._processInputParams($),Q=this._def.options;function q(W){for(let X of W)if(X.result.status==="valid")return X.result;for(let X of W)if(X.result.status==="dirty")return J.common.issues.push(...X.ctx.common.issues),X.result;let Y=W.map((X)=>new Q$(X.ctx.common.issues));return O(J,{code:U.invalid_union,unionErrors:Y}),f}if(J.common.async)return Promise.all(Q.map(async(W)=>{let Y={...J,common:{...J.common,issues:[]},parent:null};return{result:await W._parseAsync({data:J.data,path:J.path,parent:Y}),ctx:Y}})).then(q);else{let W=void 0,Y=[];for(let G of Q){let H={...J,common:{...J.common,issues:[]},parent:null},B=G._parseSync({data:J.data,path:J.path,parent:H});if(B.status==="valid")return B;else if(B.status==="dirty"&&!W)W={result:B,ctx:H};if(H.common.issues.length)Y.push(H.common.issues)}if(W)return J.common.issues.push(...W.ctx.common.issues),W.result;let X=Y.map((G)=>new Q$(G));return O(J,{code:U.invalid_union,unionErrors:X}),f}}get options(){return this._def.options}}X0.create=($,J)=>{return new X0({options:$,typeName:R.ZodUnion,...v(J)})};var V$=($)=>{if($ instanceof G0)return V$($.schema);else if($ instanceof w$)return V$($.innerType());else if($ instanceof B0)return[$.value];else if($ instanceof g$)return $.options;else if($ instanceof _0)return D.objectValues($.enum);else if($ instanceof M0)return V$($._def.innerType);else if($ instanceof q0)return[void 0];else if($ instanceof Y0)return[null];else if($ instanceof M$)return[void 0,...V$($.unwrap())];else if($ instanceof v$)return[null,...V$($.unwrap())];else if($ instanceof n0)return V$($.unwrap());else if($ instanceof w0)return V$($.unwrap());else if($ instanceof U0)return V$($._def.innerType);else return[]};class o0 extends C{_parse($){let{ctx:J}=this._processInputParams($);if(J.parsedType!==K.object)return O(J,{code:U.invalid_type,expected:K.object,received:J.parsedType}),f;let Q=this.discriminator,q=J.data[Q],W=this.optionsMap.get(q);if(!W)return O(J,{code:U.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Q]}),f;if(J.common.async)return W._parseAsync({data:J.data,path:J.path,parent:J});else return W._parseSync({data:J.data,path:J.path,parent:J})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,J,Q){let q=new Map;for(let W of J){let Y=V$(W.shape[$]);if(!Y.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let X of Y){if(q.has(X))throw Error(`Discriminator property ${String($)} has duplicate value ${String(X)}`);q.set(X,W)}}return new o0({typeName:R.ZodDiscriminatedUnion,discriminator:$,options:J,optionsMap:q,...v(Q)})}}function T1($,J){let Q=z$($),q=z$(J);if($===J)return{valid:!0,data:$};else if(Q===K.object&&q===K.object){let W=D.objectKeys(J),Y=D.objectKeys($).filter((G)=>W.indexOf(G)!==-1),X={...$,...J};for(let G of Y){let H=T1($[G],J[G]);if(!H.valid)return{valid:!1};X[G]=H.data}return{valid:!0,data:X}}else if(Q===K.array&&q===K.array){if($.length!==J.length)return{valid:!1};let W=[];for(let Y=0;Y<$.length;Y++){let X=$[Y],G=J[Y],H=T1(X,G);if(!H.valid)return{valid:!1};W.push(H.data)}return{valid:!0,data:W}}else if(Q===K.date&&q===K.date&&+$===+J)return{valid:!0,data:$};else return{valid:!1}}class H0 extends C{_parse($){let{status:J,ctx:Q}=this._processInputParams($),q=(W,Y)=>{if(i0(W)||i0(Y))return f;let X=T1(W.value,Y.value);if(!X.valid)return O(Q,{code:U.invalid_intersection_types}),f;if(r0(W)||r0(Y))J.dirty();return{status:J.value,value:X.data}};if(Q.common.async)return Promise.all([this._def.left._parseAsync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseAsync({data:Q.data,path:Q.path,parent:Q})]).then(([W,Y])=>q(W,Y));else return q(this._def.left._parseSync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseSync({data:Q.data,path:Q.path,parent:Q}))}}H0.create=($,J,Q)=>{return new H0({left:$,right:J,typeName:R.ZodIntersection,...v(Q)})};class f$ extends C{_parse($){let{status:J,ctx:Q}=this._processInputParams($);if(Q.parsedType!==K.array)return O(Q,{code:U.invalid_type,expected:K.array,received:Q.parsedType}),f;if(Q.data.length<this._def.items.length)return O(Q,{code:U.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),f;if(!this._def.rest&&Q.data.length>this._def.items.length)O(Q,{code:U.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J.dirty();let W=[...Q.data].map((Y,X)=>{let G=this._def.items[X]||this._def.rest;if(!G)return null;return G._parse(new U$(Q,Y,Q.path,X))}).filter((Y)=>!!Y);if(Q.common.async)return Promise.all(W).then((Y)=>{return r.mergeArray(J,Y)});else return r.mergeArray(J,W)}get items(){return this._def.items}rest($){return new f$({...this._def,rest:$})}}f$.create=($,J)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new f$({items:$,typeName:R.ZodTuple,rest:null,...v(J)})};class V0 extends C{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:J,ctx:Q}=this._processInputParams($);if(Q.parsedType!==K.object)return O(Q,{code:U.invalid_type,expected:K.object,received:Q.parsedType}),f;let q=[],W=this._def.keyType,Y=this._def.valueType;for(let X in Q.data)q.push({key:W._parse(new U$(Q,X,Q.path,X)),value:Y._parse(new U$(Q,Q.data[X],Q.path,X)),alwaysSet:X in Q.data});if(Q.common.async)return r.mergeObjectAsync(J,q);else return r.mergeObjectSync(J,q)}get element(){return this._def.valueType}static create($,J,Q){if(J instanceof C)return new V0({keyType:$,valueType:J,typeName:R.ZodRecord,...v(Q)});return new V0({keyType:B$.create(),valueType:$,typeName:R.ZodRecord,...v(J)})}}class v0 extends C{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:J,ctx:Q}=this._processInputParams($);if(Q.parsedType!==K.map)return O(Q,{code:U.invalid_type,expected:K.map,received:Q.parsedType}),f;let q=this._def.keyType,W=this._def.valueType,Y=[...Q.data.entries()].map(([X,G],H)=>{return{key:q._parse(new U$(Q,X,Q.path,[H,"key"])),value:W._parse(new U$(Q,G,Q.path,[H,"value"]))}});if(Q.common.async){let X=new Map;return Promise.resolve().then(async()=>{for(let G of Y){let H=await G.key,B=await G.value;if(H.status==="aborted"||B.status==="aborted")return f;if(H.status==="dirty"||B.status==="dirty")J.dirty();X.set(H.value,B.value)}return{status:J.value,value:X}})}else{let X=new Map;for(let G of Y){let{key:H,value:B}=G;if(H.status==="aborted"||B.status==="aborted")return f;if(H.status==="dirty"||B.status==="dirty")J.dirty();X.set(H.value,B.value)}return{status:J.value,value:X}}}}v0.create=($,J,Q)=>{return new v0({valueType:J,keyType:$,typeName:R.ZodMap,...v(Q)})};class r$ extends C{_parse($){let{status:J,ctx:Q}=this._processInputParams($);if(Q.parsedType!==K.set)return O(Q,{code:U.invalid_type,expected:K.set,received:Q.parsedType}),f;let q=this._def;if(q.minSize!==null){if(Q.data.size<q.minSize.value)O(Q,{code:U.too_small,minimum:q.minSize.value,type:"set",inclusive:!0,exact:!1,message:q.minSize.message}),J.dirty()}if(q.maxSize!==null){if(Q.data.size>q.maxSize.value)O(Q,{code:U.too_big,maximum:q.maxSize.value,type:"set",inclusive:!0,exact:!1,message:q.maxSize.message}),J.dirty()}let W=this._def.valueType;function Y(G){let H=new Set;for(let B of G){if(B.status==="aborted")return f;if(B.status==="dirty")J.dirty();H.add(B.value)}return{status:J.value,value:H}}let X=[...Q.data.values()].map((G,H)=>W._parse(new U$(Q,G,Q.path,H)));if(Q.common.async)return Promise.all(X).then((G)=>Y(G));else return Y(X)}min($,J){return new r$({...this._def,minSize:{value:$,message:S.toString(J)}})}max($,J){return new r$({...this._def,maxSize:{value:$,message:S.toString(J)}})}size($,J){return this.min($,J).max($,J)}nonempty($){return this.min(1,$)}}r$.create=($,J)=>{return new r$({valueType:$,minSize:null,maxSize:null,typeName:R.ZodSet,...v(J)})};class Q0 extends C{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:J}=this._processInputParams($);if(J.parsedType!==K.function)return O(J,{code:U.invalid_type,expected:K.function,received:J.parsedType}),f;function Q(X,G){return R0({data:X,path:J.path,errorMaps:[J.common.contextualErrorMap,J.schemaErrorMap,e$(),j$].filter((H)=>!!H),issueData:{code:U.invalid_arguments,argumentsError:G}})}function q(X,G){return R0({data:X,path:J.path,errorMaps:[J.common.contextualErrorMap,J.schemaErrorMap,e$(),j$].filter((H)=>!!H),issueData:{code:U.invalid_return_type,returnTypeError:G}})}let W={errorMap:J.common.contextualErrorMap},Y=J.data;if(this._def.returns instanceof o$){let X=this;return n(async function(...G){let H=new Q$([]),B=await X._def.args.parseAsync(G,W).catch((F)=>{throw H.addIssue(Q(G,F)),H}),_=await Reflect.apply(Y,this,B);return await X._def.returns._def.type.parseAsync(_,W).catch((F)=>{throw H.addIssue(q(_,F)),H})})}else{let X=this;return n(function(...G){let H=X._def.args.safeParse(G,W);if(!H.success)throw new Q$([Q(G,H.error)]);let B=Reflect.apply(Y,this,H.data),_=X._def.returns.safeParse(B,W);if(!_.success)throw new Q$([q(B,_.error)]);return _.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new Q0({...this._def,args:f$.create($).rest(E$.create())})}returns($){return new Q0({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,J,Q){return new Q0({args:$?$:f$.create([]).rest(E$.create()),returns:J||E$.create(),typeName:R.ZodFunction,...v(Q)})}}class G0 extends C{get schema(){return this._def.getter()}_parse($){let{ctx:J}=this._processInputParams($);return this._def.getter()._parse({data:J.data,path:J.path,parent:J})}}G0.create=($,J)=>{return new G0({getter:$,typeName:R.ZodLazy,...v(J)})};class B0 extends C{_parse($){if($.data!==this._def.value){let J=this._getOrReturnCtx($);return O(J,{received:J.data,code:U.invalid_literal,expected:this._def.value}),f}return{status:"valid",value:$.data}}get value(){return this._def.value}}B0.create=($,J)=>{return new B0({value:$,typeName:R.ZodLiteral,...v(J)})};function O2($,J){return new g$({values:$,typeName:R.ZodEnum,...v(J)})}class g$ extends C{_parse($){if(typeof $.data!=="string"){let J=this._getOrReturnCtx($),Q=this._def.values;return O(J,{expected:D.joinValues(Q),received:J.parsedType,code:U.invalid_type}),f}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let J=this._getOrReturnCtx($),Q=this._def.values;return O(J,{received:J.data,code:U.invalid_enum_value,options:Q}),f}return n($.data)}get options(){return this._def.values}get enum(){let $={};for(let J of this._def.values)$[J]=J;return $}get Values(){let $={};for(let J of this._def.values)$[J]=J;return $}get Enum(){let $={};for(let J of this._def.values)$[J]=J;return $}extract($,J=this._def){return g$.create($,{...this._def,...J})}exclude($,J=this._def){return g$.create(this.options.filter((Q)=>!$.includes(Q)),{...this._def,...J})}}g$.create=O2;class _0 extends C{_parse($){let J=D.getValidEnumValues(this._def.values),Q=this._getOrReturnCtx($);if(Q.parsedType!==K.string&&Q.parsedType!==K.number){let q=D.objectValues(J);return O(Q,{expected:D.joinValues(q),received:Q.parsedType,code:U.invalid_type}),f}if(!this._cache)this._cache=new Set(D.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let q=D.objectValues(J);return O(Q,{received:Q.data,code:U.invalid_enum_value,options:q}),f}return n($.data)}get enum(){return this._def.values}}_0.create=($,J)=>{return new _0({values:$,typeName:R.ZodNativeEnum,...v(J)})};class o$ extends C{unwrap(){return this._def.type}_parse($){let{ctx:J}=this._processInputParams($);if(J.parsedType!==K.promise&&J.common.async===!1)return O(J,{code:U.invalid_type,expected:K.promise,received:J.parsedType}),f;let Q=J.parsedType===K.promise?J.data:Promise.resolve(J.data);return n(Q.then((q)=>{return this._def.type.parseAsync(q,{path:J.path,errorMap:J.common.contextualErrorMap})}))}}o$.create=($,J)=>{return new o$({type:$,typeName:R.ZodPromise,...v(J)})};class w$ extends C{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===R.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:J,ctx:Q}=this._processInputParams($),q=this._def.effect||null,W={addIssue:(Y)=>{if(O(Q,Y),Y.fatal)J.abort();else J.dirty()},get path(){return Q.path}};if(W.addIssue=W.addIssue.bind(W),q.type==="preprocess"){let Y=q.transform(Q.data,W);if(Q.common.async)return Promise.resolve(Y).then(async(X)=>{if(J.value==="aborted")return f;let G=await this._def.schema._parseAsync({data:X,path:Q.path,parent:Q});if(G.status==="aborted")return f;if(G.status==="dirty")return c$(G.value);if(J.value==="dirty")return c$(G.value);return G});else{if(J.value==="aborted")return f;let X=this._def.schema._parseSync({data:Y,path:Q.path,parent:Q});if(X.status==="aborted")return f;if(X.status==="dirty")return c$(X.value);if(J.value==="dirty")return c$(X.value);return X}}if(q.type==="refinement"){let Y=(X)=>{let G=q.refinement(X,W);if(Q.common.async)return Promise.resolve(G);if(G instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return X};if(Q.common.async===!1){let X=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if(X.status==="aborted")return f;if(X.status==="dirty")J.dirty();return Y(X.value),{status:J.value,value:X.value}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then((X)=>{if(X.status==="aborted")return f;if(X.status==="dirty")J.dirty();return Y(X.value).then(()=>{return{status:J.value,value:X.value}})})}if(q.type==="transform")if(Q.common.async===!1){let Y=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if(!k$(Y))return f;let X=q.transform(Y.value,W);if(X instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:J.value,value:X}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then((Y)=>{if(!k$(Y))return f;return Promise.resolve(q.transform(Y.value,W)).then((X)=>({status:J.value,value:X}))});D.assertNever(q)}}w$.create=($,J,Q)=>{return new w$({schema:$,typeName:R.ZodEffects,effect:J,...v(Q)})};w$.createWithPreprocess=($,J,Q)=>{return new w$({schema:J,effect:{type:"preprocess",transform:$},typeName:R.ZodEffects,...v(Q)})};class M$ extends C{_parse($){if(this._getType($)===K.undefined)return n(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}M$.create=($,J)=>{return new M$({innerType:$,typeName:R.ZodOptional,...v(J)})};class v$ extends C{_parse($){if(this._getType($)===K.null)return n(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}v$.create=($,J)=>{return new v$({innerType:$,typeName:R.ZodNullable,...v(J)})};class M0 extends C{_parse($){let{ctx:J}=this._processInputParams($),Q=J.data;if(J.parsedType===K.undefined)Q=this._def.defaultValue();return this._def.innerType._parse({data:Q,path:J.path,parent:J})}removeDefault(){return this._def.innerType}}M0.create=($,J)=>{return new M0({innerType:$,typeName:R.ZodDefault,defaultValue:typeof J.default==="function"?J.default:()=>J.default,...v(J)})};class U0 extends C{_parse($){let{ctx:J}=this._processInputParams($),Q={...J,common:{...J.common,issues:[]}},q=this._def.innerType._parse({data:Q.data,path:Q.path,parent:{...Q}});if($0(q))return q.then((W)=>{return{status:"valid",value:W.status==="valid"?W.value:this._def.catchValue({get error(){return new Q$(Q.common.issues)},input:Q.data})}});else return{status:"valid",value:q.status==="valid"?q.value:this._def.catchValue({get error(){return new Q$(Q.common.issues)},input:Q.data})}}removeCatch(){return this._def.innerType}}U0.create=($,J)=>{return new U0({innerType:$,typeName:R.ZodCatch,catchValue:typeof J.catch==="function"?J.catch:()=>J.catch,...v(J)})};class P0 extends C{_parse($){if(this._getType($)!==K.nan){let Q=this._getOrReturnCtx($);return O(Q,{code:U.invalid_type,expected:K.nan,received:Q.parsedType}),f}return{status:"valid",value:$.data}}}P0.create=($)=>{return new P0({typeName:R.ZodNaN,...v($)})};var Z3=Symbol("zod_brand");class n0 extends C{_parse($){let{ctx:J}=this._processInputParams($),Q=J.data;return this._def.type._parse({data:Q,path:J.path,parent:J})}unwrap(){return this._def.type}}class C0 extends C{_parse($){let{status:J,ctx:Q}=this._processInputParams($);if(Q.common.async)return(async()=>{let W=await this._def.in._parseAsync({data:Q.data,path:Q.path,parent:Q});if(W.status==="aborted")return f;if(W.status==="dirty")return J.dirty(),c$(W.value);else return this._def.out._parseAsync({data:W.value,path:Q.path,parent:Q})})();else{let q=this._def.in._parseSync({data:Q.data,path:Q.path,parent:Q});if(q.status==="aborted")return f;if(q.status==="dirty")return J.dirty(),{status:"dirty",value:q.value};else return this._def.out._parseSync({data:q.value,path:Q.path,parent:Q})}}static create($,J){return new C0({in:$,out:J,typeName:R.ZodPipeline})}}class w0 extends C{_parse($){let J=this._def.innerType._parse($),Q=(q)=>{if(k$(q))q.value=Object.freeze(q.value);return q};return $0(J)?J.then((q)=>Q(q)):Q(J)}unwrap(){return this._def.innerType}}w0.create=($,J)=>{return new w0({innerType:$,typeName:R.ZodReadonly,...v(J)})};function w2($,J){let Q=typeof $==="function"?$(J):typeof $==="string"?{message:$}:$;return typeof Q==="string"?{message:Q}:Q}function F2($,J={},Q){if($)return i$.create().superRefine((q,W)=>{let Y=$(q);if(Y instanceof Promise)return Y.then((X)=>{if(!X){let G=w2(J,q),H=G.fatal??Q??!0;W.addIssue({code:"custom",...G,fatal:H})}});if(!Y){let X=w2(J,q),G=X.fatal??Q??!0;W.addIssue({code:"custom",...X,fatal:G})}return});return i$.create()}var m3={object:x.lazycreate},R;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(R||(R={}));var x3=($,J={message:`Input not instance of ${$.name}`})=>F2((Q)=>Q instanceof $,J),A2=B$.create,z2=T$.create,u3=P0.create,p3=I$.create,S2=W0.create,l3=d$.create,c3=b0.create,d3=q0.create,i3=Y0.create,r3=i$.create,o3=E$.create,n3=S$.create,a3=j0.create,s3=_$.create,t3=x.create,e3=x.strictCreate,$5=X0.create,J5=o0.create,Q5=H0.create,W5=f$.create,q5=V0.create,Y5=v0.create,X5=r$.create,H5=Q0.create,G5=G0.create,B5=B0.create,_5=g$.create,M5=_0.create,U5=o$.create,w5=w$.create,N5=M$.create,K5=v$.create,L5=w$.createWithPreprocess,O5=C0.create,F5=()=>A2().optional(),A5=()=>z2().optional(),z5=()=>S2().optional(),S5={string:($)=>B$.create({...$,coerce:!0}),number:($)=>T$.create({...$,coerce:!0}),boolean:($)=>W0.create({...$,coerce:!0}),bigint:($)=>I$.create({...$,coerce:!0}),date:($)=>d$.create({...$,coerce:!0})};var f5=f;var R5=M.object({before:M.string(),after:M.string(),hierarchy:M.array(M.string()),lineStart:M.number().optional(),lineEnd:M.number().optional()}).passthrough(),I1=M.object({id:M.string(),name:M.string()}).passthrough(),b5=M.object({url:M.string(),mime:M.string().optional()}).passthrough(),g1=M.object({id:M.string(),snippet:M.string(),note:M.string(),createdAt:M.string(),filePath:M.string().optional(),canvasFile:M.string().optional(),context:R5.optional(),images:M.array(M.string()).optional(),attachments:M.array(b5).optional(),source:M.enum(["local","remote"]).optional(),author:I1.optional()}).passthrough(),j5=M.array(g1.optional().catch(void 0)).transform(($)=>$.filter((J)=>J!==void 0)).catch([]),h1=M.object({annotations:j5,generalNote:M.string().catch("")}).passthrough(),f2=M.object({path:M.string()}),R2=M.object({url:M.string()});import{useCallback as M9,useMemo as U9,useState as w9}from"react";function D0($){return $.uploadUrl!==null}function P$($,J){$.style.height="auto",$.style.height=(J?Math.max(J,$.scrollHeight):$.scrollHeight)+"px"}import{useAnnotations as a0}from"@fabrika/annotations/runtime";import{jsxDEV as C9}from"react/jsx-dev-runtime";import{jsxDEV as g9,Fragment as I9}from"react/jsx-dev-runtime";import{useAnnotationHost as v5}from"@fabrika/annotations/runtime";import{useCallback as C$,useEffect as P5,useRef as Z1,useState as m1}from"react";import{jsxDEV as t}from"react/jsx-dev-runtime";function b2($){if($.startsWith("/s/")||$.startsWith("http://")||$.startsWith("https://"))return $;return`/api/uploads/${$.split("/").pop()}`}async function C5($,J){let Q=$.uploadUrl;if(!Q)return null;let q=new FormData;q.append("image",J);try{let Y=await(await fetch(Q(),{method:"POST",body:q})).json();if($.isShared)return R2.parse(Y).url||null;return f2.parse(Y).path||null}catch{return null}}function s0({note:$,onNoteChange:J,images:Q,onAddImage:q,onRemoveImage:W,sessionId:Y,placeholder:X="Add your note...",autoFocus:G=!1,autoResize:H=!1,readOnly:B=!1,onKeyDown:_,onTextareaClick:N,textareaRef:F,textareaClassName:A,textareaStyle:w,minHeight:L,attachButton:z="always",openFilePickerRef:b}){let g=v5(),k=!B&&D0(g),[E,Z]=m1(!1),[p,$$]=m1(!1),[W$,N$]=m1(!1),m=Z1(0),c=Z1(null),J$=Z1(null),i=C$(()=>J$.current?.click(),[]);if(b)b.current=i;let K$=C$((V)=>{if(c.current=V,F)F.current=V;if(V&&H)P$(V,L)},[F,H,L]);P5(()=>{if(G&&c.current){let V=c.current;if(V.focus(),V.value)V.setSelectionRange(V.value.length,V.value.length)}},[G]);let q$=C$(async(V)=>{if(!V.type.startsWith("image/"))return;$$(!0);try{let a=await C5(g,V);if(a)q(a)}finally{$$(!1)}},[g,q]),Z$=C$((V)=>{for(let a of V.clipboardData?.items??[])if(a.type.startsWith("image/")){V.preventDefault();let a$=a.getAsFile();if(a$)q$(a$);return}},[q$]),Y$=C$((V)=>{if(V.preventDefault(),m.current++,m.current===1)Z(!0)},[]),X$=C$((V)=>{V.preventDefault()},[]),L$=C$((V)=>{if(V.preventDefault(),m.current--,m.current===0)Z(!1)},[]),O$=C$((V)=>{V.preventDefault(),m.current=0,Z(!1);for(let a of V.dataTransfer?.files??[])if(a.type.startsWith("image/"))q$(a)},[q$]),m$=C$((V)=>{if(J(V.currentTarget.value),H)V.currentTarget.style.height="auto",V.currentTarget.style.height=(L?Math.max(L,V.currentTarget.scrollHeight):V.currentTarget.scrollHeight)+"px"},[J,H,L]),x$="w-full bg-transparent text-[13px] font-body text-text-primary resize-none focus:outline-none leading-relaxed p-0 border-none",H1={width:"100%",background:"transparent",border:"none",color:"var(--color-text-primary)",fontFamily:"'Inter', sans-serif",fontSize:"13px",lineHeight:"1.5",outline:"none",...H?{resize:"none",overflow:"hidden"}:{resize:"vertical"}},g0=k&&(z==="always"||z==="on-focus"&&W$);return t("div",{style:{position:"relative"},onDragEnter:k?Y$:void 0,onDragOver:k?X$:void 0,onDragLeave:k?L$:void 0,onDrop:k?O$:void 0,children:[t("textarea",{ref:K$,value:$,onChange:B?void 0:m$,onPaste:k?Z$:void 0,onKeyDown:_,onClick:N,onFocus:()=>N$(!0),onBlur:()=>{setTimeout(()=>N$(!1),150)},readOnly:B,placeholder:X,className:A??x$,style:w??H1,rows:H?1:void 0},void 0,!1,void 0,this),k&&t("input",{ref:J$,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:(V)=>{let a=V.currentTarget.files;if(a)for(let a$ of a)q$(a$);V.currentTarget.value=""}},void 0,!1,void 0,this),(Q.length>0||g0)&&t("div",{style:{display:"flex",gap:"6px",flexWrap:"wrap",marginTop:"6px",alignItems:"center"},children:[Q.map((V)=>t("div",{style:{position:"relative",width:"56px",height:"56px",borderRadius:"6px",overflow:"hidden",border:"1px solid var(--color-border-subtle)",flexShrink:0},children:[t("img",{src:b2(V),alt:"",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}},void 0,!1,void 0,this),!B&&t("button",{onClick:(a)=>{a.stopPropagation(),W(V)},style:{position:"absolute",top:"2px",right:"2px",width:"16px",height:"16px",borderRadius:"50%",background:"rgba(0,0,0,0.6)",color:"white",border:"none",cursor:"pointer",fontSize:"11px",display:"flex",alignItems:"center",justifyContent:"center",lineHeight:1,padding:0},title:"Remove image",children:"×"},void 0,!1,void 0,this)]},V,!0,void 0,this)),g0&&t(t0,{onClick:i},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p&&t("div",{style:{fontSize:"11px",color:"var(--color-text-tertiary)",fontFamily:"'Inter', sans-serif",marginTop:"4px"},children:"Uploading..."},void 0,!1,void 0,this),E&&t("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--color-highlight-bg)",opacity:0.9,border:"2px dashed var(--color-highlight-border)",borderRadius:"6px",zIndex:10,pointerEvents:"none",fontSize:"12px",fontFamily:"'Inter', sans-serif",color:"var(--color-text-secondary)"},children:"Drop image"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function t0({onClick:$,size:J=16}){return t("button",{onClick:(Q)=>{Q.stopPropagation(),$()},style:{width:`${J*2}px`,height:`${J*2}px`,borderRadius:"6px",border:"none",background:"transparent",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--color-text-tertiary)",flexShrink:0,transition:"color 0.15s"},title:"Attach image",onMouseEnter:(Q)=>{Q.currentTarget.style.color="var(--color-text-secondary)"},onMouseLeave:(Q)=>{Q.currentTarget.style.color="var(--color-text-tertiary)"},children:t("svg",{width:J,height:J,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[t("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"},void 0,!1,void 0,this),t("circle",{cx:"8.5",cy:"8.5",r:"1.5"},void 0,!1,void 0,this),t("polyline",{points:"21 15 16 10 5 21"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import{SessionContext as d9}from"@fabrika/annotations/runtime";import{useContext as r9,useEffect as o9,useRef as n9}from"react";import{jsxDEV as JJ,Fragment as QJ}from"react/jsx-dev-runtime";import{SessionContext as T5,useAnnotationHost as I5}from"@fabrika/annotations/runtime";import{useCallback as e0,useContext as g5,useEffect as h5,useMemo as P2,useRef as $1,useState as N0}from"react";import{createPortal as y5}from"react-dom";function V2($){let J=/^(\d+(?:\.\d+)?)px$/.exec($.trim());return J?Number(J[1]):void 0}function v2($,J,Q=280){let W=J||document.body,Y=$.getBoundingClientRect(),X=W.getBoundingClientRect(),G=W===document.body?0:W.scrollTop,H=Y.bottom-X.top+G+8,B=Math.max(0,Math.min(Y.left-X.left,X.width-Q-12));return W.style.position="relative",{style:{position:"absolute",top:`${H}px`,left:`${B}px`},parent:W}}import{jsxDEV as o,Fragment as Z5}from"react/jsx-dev-runtime";function D2({anchorEl:$,scrollContainer:J,onClose:Q,ignoreSelector:q,zIndex:W="50",padding:Y="12px",width:X="280px",children:G}){let H=$1(null),B=$1(Q);B.current=Q;let{style:_,parent:N}=v2($,J,V2(X));return h5(()=>{let F=setTimeout(()=>{let A=(w)=>{if(H.current&&!H.current.contains(w.target)){if(q&&w.target.closest?.(q))return;B.current(),document.removeEventListener("mousedown",A)}};return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},0);return()=>clearTimeout(F)},[q]),y5(o("div",{ref:H,style:{..._,zIndex:W,width:X,background:"var(--color-bg-elevated)",border:"1px solid var(--color-border-hover)",borderRadius:"8px",boxShadow:"0 4px 12px var(--color-shadow)",padding:Y,fontFamily:"'Inter', sans-serif"},children:G},void 0,!1,void 0,this),N)}var k2=[{label:"Clarity",items:["Unclear","Why?","Needs example","Missing context"]},{label:"Scope",items:["Overkill","Out of scope","Important","Risky"]},{label:"Action",items:["Simplify","Rethink","Expand on this","Skip this"]}],C2=k2.flatMap(($)=>$.items);function E2({anchorEl:$,scrollContainer:J,snippet:Q,truncateAt:q=100,header:W,initialNote:Y="",initialImages:X,onConfirm:G,onCancel:H,onDelete:B}){let _=g5(T5),N=I5(),F=D0(N),A=Y!==""||!!B,[w,L]=N0(Y),[z,b]=N0(X||[]),[g,k]=N0(null),[E,Z]=N0(A),[p,$$]=N0(!1),W$=$1(null),N$=$1(null),m=e0(()=>{if(w.trim()||z.length>0)G(w.trim(),z);else if(A&&B)B();else H()},[w,z,G,H,A,B]),c=e0(()=>{if(A){if(!w.trim()&&z.length===0&&B){B(),H();return}G(w,z);return}H()},[w,z,A,G,H,B]),J$=!A,i=w.trim().length>0?C2.filter((j)=>j.toLowerCase().startsWith(w.trim().toLowerCase())):C2,K$=!J$||E?[]:i.length===1&&i[0]?.toLowerCase()===w.trim().toLowerCase()?[]:i,q$=new Set(K$),Z$=k2.map((j)=>({label:j.label,items:j.items.filter((y)=>q$.has(y))})).filter((j)=>j.items.length>0),Y$=Z$.map((j)=>j.items),X$=(j)=>Y$[j]?.length??0,L$=Y$.flat(),O$=P2(()=>{if(g===null)return 0;let j=0;for(let y=0;y<Y$.length;y++){if(g<j+X$(y))return y;j+=X$(y)}return 0},[g,Y$]),m$=P2(()=>{if(g===null)return 0;let j=0;for(let y=0;y<O$;y++)j+=X$(y);return g-j},[g,O$,Y$]),x$=(j,y)=>{let d=0;for(let F$=0;F$<j;F$++)d+=X$(F$);return d+y},[H1,g0]=N0(w);if(w!==H1)g0(w),k(null),Z(A);let V=e0((j)=>{L(j)},[]),a=Q.length>q?Q.slice(0,q)+"...":Q,a$=e0((j)=>{if(L$.length>0&&(j.key==="ArrowDown"||j.key==="ArrowUp"||j.key==="ArrowLeft"||j.key==="ArrowRight")){if(j.preventDefault(),g===null){k(0);return}if(j.key==="ArrowDown"){let d=Math.min(m$+1,X$(O$)-1);k(x$(O$,d))}else if(j.key==="ArrowUp"){let d=Math.max(m$-1,0);k(x$(O$,d))}else if(j.key==="ArrowRight"){let d=Math.min(O$+1,Y$.length-1),F$=Math.min(m$,X$(d)-1);k(x$(d,F$))}else if(j.key==="ArrowLeft"){let d=Math.max(O$-1,0),F$=Math.min(m$,X$(d)-1);k(x$(d,F$))}return}let y=g===null?void 0:L$[g];if(y!==void 0){if(j.key==="Tab"){j.preventDefault(),V(y);return}if(j.key==="Enter"&&!j.shiftKey){j.preventDefault(),G(y,z);return}}if(j.key==="Enter"&&!j.shiftKey){j.preventDefault(),m();return}if(j.key==="Escape")if(L$.length>0&&!E)Z(!0);else if(A)c();else H()},[L$,g,m$,O$,Y$,x$,V,G,z,m,E,A,c,H]);return o(D2,{anchorEl:$,scrollContainer:J,onClose:A?c:H,ignoreSelector:A?"[data-annotation-id]":void 0,zIndex:A?"60":"50",padding:A?"10px 12px":"12px",width:"420px",children:[!A&&(W??o("div",{style:{fontSize:"11px",color:"var(--color-text-tertiary)",fontStyle:"italic",marginBottom:"8px",lineHeight:"1.4",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:["“",a,"”"]},void 0,!0,void 0,this)),o(s0,{note:w,onNoteChange:L,images:z,onAddImage:(j)=>b((y)=>[...y,j]),onRemoveImage:(j)=>b((y)=>y.filter((d)=>d!==j)),sessionId:_,autoFocus:!0,autoResize:A,textareaRef:W$,onKeyDown:a$,attachButton:"none",openFilePickerRef:N$,textareaStyle:A?{width:"100%",background:"transparent",border:"none",color:"var(--color-text-primary)",fontFamily:"'Inter', sans-serif",fontSize:"13px",lineHeight:"1.5",resize:"none",outline:"none",overflow:"hidden"}:{width:"100%",minHeight:"60px",background:"transparent",border:"none",color:"var(--color-text-primary)",fontFamily:"'Inter', sans-serif",fontSize:"13px",lineHeight:"1.5",resize:"vertical",outline:"none"},placeholder:"Add your note..."},void 0,!1,void 0,this),o("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:A?"6px":"8px"},children:[F&&o(t0,{onClick:()=>N$.current?.(),size:14},void 0,!1,void 0,this),o("div",{style:{flex:1}},void 0,!1,void 0,this),A?o("button",{onClick:()=>{if(B)B();H()},onMouseEnter:()=>$$(!0),onMouseLeave:()=>$$(!1),style:{fontSize:"11px",color:p?"var(--color-accent-red)":"var(--color-text-tertiary)",background:"none",border:"none",cursor:"pointer",padding:"2px 0",fontFamily:"'Inter', sans-serif"},children:"Delete"},void 0,!1,void 0,this):o(Z5,{children:[o("button",{onClick:H,style:{fontSize:"11px",color:"var(--color-text-tertiary)",background:"none",border:"none",cursor:"pointer",padding:"4px 12px",fontFamily:"'Inter', sans-serif"},children:"Cancel"},void 0,!1,void 0,this),o("button",{onClick:m,style:{fontSize:"11px",fontWeight:500,padding:"4px 12px",borderRadius:"6px",background:"var(--color-highlight-bg)",color:"var(--color-text-primary)",border:"1px solid var(--color-highlight-border)",cursor:"pointer",fontFamily:"'Inter', sans-serif"},children:"Add"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),L$.length>0&&o("div",{style:{marginTop:"6px",borderTop:"1px solid var(--color-border-subtle)",paddingTop:"8px",display:"flex",gap:"4px"},children:Z$.map((j)=>o("div",{style:{flex:1},children:[o("div",{style:{fontSize:"10px",fontWeight:600,color:"var(--color-text-disabled)",textTransform:"uppercase",letterSpacing:"0.05em",padding:"2px 6px",marginBottom:"2px",fontFamily:"'Inter', sans-serif"},children:j.label},void 0,!1,void 0,this),j.items.map((y)=>{let d=L$.indexOf(y);return o("div",{onMouseDown:(F$)=>{F$.preventDefault(),F$.stopPropagation(),V(y)},onMouseEnter:()=>k(d),style:{padding:"3px 6px",fontSize:"12px",borderRadius:"4px",fontFamily:"'Inter', sans-serif",color:d===g?"var(--color-text-primary)":"var(--color-text-secondary)",background:d===g?"var(--color-highlight-selected)":"transparent",cursor:"pointer"},children:[o("span",{style:{fontWeight:500},children:y.slice(0,w.trim().length)},void 0,!1,void 0,this),y.slice(w.trim().length)]},y,!0,void 0,this)})]},j.label,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function k0({anchorEl:$,scrollContainer:J,snippet:Q,truncateAt:q,header:W,onAdd:Y,onCancel:X}){return o(E2,{anchorEl:$,scrollContainer:J,snippet:Q,truncateAt:q,header:W,onConfirm:(G,H)=>Y(G,H),onCancel:X},void 0,!1,void 0,this)}import{useEffect as AJ,useRef as zJ,useState as SJ}from"react";import{jsxDEV as vJ}from"react/jsx-dev-runtime";import{useCallback as EJ,useEffect as TJ,useRef as IJ,useState as gJ}from"react";import{jsxDEV as lJ,Fragment as pJ}from"react/jsx-dev-runtime";import{jsxDEV as T2}from"react/jsx-dev-runtime";function K0({note:$,onChange:J}){return T2("div",{className:"mt-1.5",children:T2("textarea",{value:$,onChange:(Q)=>J(Q.currentTarget.value),className:"w-full bg-transparent text-[12px] font-body text-text-primary resize-none focus:outline-none border-none placeholder:text-text-disabled transition-colors min-h-[20px] p-0 leading-relaxed",placeholder:"Add a note...",rows:1,onInput:(Q)=>P$(Q.currentTarget),ref:(Q)=>{if(Q)P$(Q)}},void 0,!1,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as u}from"react/jsx-dev-runtime";function x2($){return $.map((J)=>typeof J==="string"?{value:J,label:J}:{value:J.value,label:J.label??J.value})}function o5({id:$,label:J,options:Q,required:q}){let{responses:W,setResponse:Y}=I2();g2($);let X=y2(()=>x2(Q),[Q]),G=W.get($),H=G?.value,B=G?.note||"",[_,N]=m2(!1),F=Z2(null);if(!W.has($))Y($,{id:$,type:"radio",label:J,value:null,options:X.map((L)=>L.value),required:q});let A=(L)=>{Y($,{...G,value:L})};h2(()=>{let L=F.current;if(!L)return;let z=(b)=>{let k=b.target.closest("[data-md-label]")?.getAttribute("data-md-label"),E=X.find((Z)=>Z.label===k);if(E)A(E.value)};return L.addEventListener("kb-select",z),()=>L.removeEventListener("kb-select",z)},[X,A]);let w=G?.required&&!H;return u("div",{ref:F,"data-md":"choice","data-md-label":J,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[u("div",{className:"flex items-baseline gap-2 mb-2",children:[u("span",{className:"text-[13px] font-body font-medium text-text-primary",children:J},void 0,!1,void 0,this),q&&u("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),u("div",{className:"space-y-1",children:X.map(({value:L,label:z})=>u("label",{"data-md":"choice-option","data-md-label":z,onClick:()=>A(L),className:`flex items-center gap-2.5 px-3 py-2 rounded-lg cursor-pointer transition-all duration-150 ${H===L?"bg-highlight-selected":"hover:bg-bg-elevated"}`,children:[u("span",{className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center flex-shrink-0 transition-all ${H===L?"border-accent-amber bg-accent-amber":"border-border-strong"}`,children:H===L&&u("span",{className:"w-1.5 h-1.5 rounded-full bg-text-inverse"},void 0,!1,void 0,this)},void 0,!1,void 0,this),u("span",{className:"text-[13px] font-body text-text-secondary",children:z},void 0,!1,void 0,this)]},L,!0,void 0,this))},void 0,!1,void 0,this),u(K0,{show:_,note:B,onToggle:()=>N(!_),onChange:(L)=>Y($,{...G,note:L})},void 0,!1,void 0,this),w&&u("p",{className:"text-[11px] text-accent-red font-body mt-1",children:"Please select an option."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function n5({id:$,label:J,options:Q,required:q}){let{responses:W,setResponse:Y}=I2();g2($);let X=y2(()=>x2(Q),[Q]),G=W.get($),H=G?.value||[],B=G?.note||"",[_,N]=m2(!1),F=Z2(null);if(!W.has($))Y($,{id:$,type:"checkbox",label:J,value:[],options:X.map((L)=>L.value),required:q});let A=(L)=>{let z=H.includes(L)?H.filter((b)=>b!==L):[...H,L];Y($,{...G,value:z})};h2(()=>{let L=F.current;if(!L)return;let z=(b)=>{let k=b.target.closest("[data-md-label]")?.getAttribute("data-md-label"),E=X.find((Z)=>Z.label===k);if(E)A(E.value)};return L.addEventListener("kb-select",z),()=>L.removeEventListener("kb-select",z)},[X,A]);let w=G?.required&&H.length===0;return u("div",{ref:F,"data-md":"multichoice","data-md-label":J,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[u("div",{className:"flex items-baseline gap-2 mb-2",children:[u("span",{className:"text-[13px] font-body font-medium text-text-primary",children:J},void 0,!1,void 0,this),q&&u("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),u("div",{className:"space-y-1",children:X.map(({value:L,label:z})=>{let b=H.includes(L);return u("label",{"data-md":"multichoice-option","data-md-label":z,onClick:()=>A(L),className:`flex items-center gap-2.5 px-3 py-2 rounded-lg cursor-pointer transition-all duration-150 ${b?"bg-highlight-selected":"hover:bg-bg-elevated"}`,children:[u("span",{className:`w-4 h-4 rounded flex items-center justify-center flex-shrink-0 transition-all ${b?"bg-accent-amber":"border-[1.5px] border-border-strong"}`,children:b&&u("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:u("path",{d:"M2.5 5L4.5 7L7.5 3",style:{stroke:"var(--color-text-inverse)"},strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),u("span",{className:"text-[13px] font-body text-text-secondary",children:z},void 0,!1,void 0,this)]},L,!0,void 0,this)})},void 0,!1,void 0,this),u(K0,{show:_,note:B,onToggle:()=>N(!_),onChange:(L)=>Y($,{...G,note:L})},void 0,!1,void 0,this),w&&u("p",{className:"text-[11px] text-accent-red font-body mt-1",children:"Please select at least one option."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useEffect as a5,useRef as s5}from"react";function J1(){return window.hljs}function u2(){return window.mermaid}import{jsxDEV as Q1}from"react/jsx-dev-runtime";function t5({language:$,children:J}){let Q=typeof J==="string"?J:String(J??""),q=s5(null);return a5(()=>{let W=q.current,Y=J1();if(!W||!Y)return;W.removeAttribute("data-highlighted"),W.className=$?`language-${$}`:"",W.textContent=Q,Y.highlightElement(W)},[Q,$]),Q1("div",{className:"relative mt-3 group/code","data-md":"codeblock","data-md-language":$||"",children:[$&&Q1("span",{className:"absolute top-2 right-3 text-tiny text-text-tertiary opacity-0 group-hover/code:opacity-60 transition-opacity duration-150 z-10 font-mono",children:$},void 0,!1,void 0,this),Q1("pre",{className:"bg-bg-code rounded-md p-4 overflow-x-auto text-code font-mono leading-relaxed",children:Q1("code",{ref:q,className:$?`language-${$}`:"",children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function p2($,J){let Q=$.split(`
|
|
60
|
+
`),q=J.split(`
|
|
61
|
+
`),W=e5(Q,q),Y=[],X=0,G=0,H=0;while(X<Q.length||G<q.length){let B=Q[X],_=q[G];if(H<W.length&&B!==void 0&&_!==void 0&&B===W[H]&&_===W[H])Y.push({type:"same",line:B}),X++,G++,H++;else if(B!==void 0&&(H>=W.length||B!==W[H]))Y.push({type:"removed",line:B}),X++;else if(_!==void 0)Y.push({type:"added",line:_}),G++}return Y}function e5($,J){let Q=$.length,q=J.length,W=Array.from({length:Q+1},()=>Array(q+1).fill(0));for(let H=1;H<=Q;H++){let B=W[H]??[],_=W[H-1]??[];for(let N=1;N<=q;N++)B[N]=$[H-1]===J[N-1]?(_[N-1]??0)+1:Math.max(_[N]??0,B[N-1]??0)}let Y=[],X=Q,G=q;while(X>0&&G>0){let H=$[X-1];if(H!==void 0&&H===J[G-1])Y.unshift(H),X--,G--;else if((W[X-1]?.[G]??0)>(W[X]?.[G-1]??0))X--;else G--}return Y}import{jsxDEV as E0}from"react/jsx-dev-runtime";function $6({before:$,after:J,language:Q}){let q=p2($,J);return E0("div",{className:"mt-3 bg-bg-code rounded-md overflow-hidden group/diff","data-md":"diff","data-md-language":Q||"",children:[Q&&E0("div",{className:"px-4 py-2 text-meta font-mono text-text-tertiary opacity-0 group-hover/diff:opacity-60 transition-opacity",children:["diff (",Q,")"]},void 0,!0,void 0,this),E0("pre",{className:"px-4 pb-3 overflow-x-auto text-code font-mono",children:q.map((W,Y)=>E0("div",{className:W.type==="removed"?"bg-accent-red-muted text-accent-red":W.type==="added"?"bg-accent-green-muted text-accent-green":"text-text-tertiary",children:[E0("span",{className:"select-none w-6 inline-block text-center opacity-60",children:W.type==="removed"?"-":W.type==="added"?"+":" "},void 0,!1,void 0,this),W.line]},Y,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{ActiveViewCtx as W6,SessionContext as q6}from"#canvas/runtime";import{useContext as c2,useEffect as d2,useRef as Y6,useState as W1}from"react";var J6=M.object({id:M.string(),type:M.enum(["select","radio","checkbox","text","range"]),label:M.string(),value:M.unknown(),options:M.array(M.string()).optional(),required:M.boolean().optional(),note:M.string().optional()}).passthrough().transform(($)=>({...$,value:$.value})),Q6=M.object({id:M.string(),markdown:M.string(),label:M.string().optional(),required:M.boolean().optional()}).passthrough(),rQ=h1.extend({responses:M.array(M.tuple([M.string(),J6]).optional().catch(void 0)).transform(($)=>$.filter((J)=>J!==void 0)).catch([]),feedbackEntries:M.array(M.tuple([M.string(),Q6]).optional().catch(void 0)).transform(($)=>$.filter((J)=>J!==void 0)).optional().catch([])});var oQ=M.object({feedback:M.string().nullish()}),l2=M.union([M.object({error:M.string().min(1)}),M.object({content:M.string(),language:M.string().nullish()})]);import{jsxDEV as h$}from"react/jsx-dev-runtime";var X6={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",py:"python",rs:"rust",go:"go",rb:"ruby",java:"java",json:"json",yaml:"yaml",yml:"yaml",md:"markdown",css:"css",html:"html",sh:"bash",bash:"bash",toml:"toml",sql:"sql",xml:"xml",c:"c",cpp:"cpp",h:"c"};function H6({path:$,lines:J,__content:Q}){let q=c2(q6),{setActiveView:W}=c2(W6),[Y,X]=W1(Q??null),[G,H]=W1(()=>{let w=$.split(".").pop()||"";return X6[w]||"text"}),[B,_]=W1(null),[N,F]=W1(!Q),A=Y6(null);if(d2(()=>{if(Q!==void 0)return;F(!0),_(null),fetch(`/api/file?session=${q}&path=${encodeURIComponent($)}`).then((w)=>w.json()).then((w)=>{let L=l2.parse(w);if("error"in L)_(L.error);else{let z=L.content;if(J)z=z.split(`
|
|
62
|
+
`).slice(J[0]-1,J[1]).join(`
|
|
63
|
+
`);X(z),H(L.language||"text")}}).catch(()=>_("Failed to fetch file")).finally(()=>F(!1))},[q,$,J?.[0],J?.[1],Q]),d2(()=>{let w=A.current,L=J1();if(!w||!L||!Y)return;w.removeAttribute("data-highlighted"),w.className=G?`language-${G}`:"",w.textContent=Y,L.highlightElement(w)},[Y,G]),N)return h$("div",{className:"text-text-tertiary text-body mt-3 bg-bg-code rounded-md p-4",children:["Loading ",$,"..."]},void 0,!0,void 0,this);if(B)return h$("div",{className:"text-accent-red text-body mt-3 bg-accent-red-muted rounded-md p-4",children:[$,": ",B]},void 0,!0,void 0,this);return h$("div",{className:"mt-3 bg-bg-code rounded-md overflow-hidden","data-md":"filepreview","data-md-path":$,...J?{"data-md-lines":`${J[0]}-${J[1]}`}:{},children:[h$("div",{className:"px-4 py-2 flex items-center justify-between",children:[h$("button",{className:"font-mono text-meta text-text-tertiary hover:text-text-secondary hover:underline cursor-pointer text-left",onClick:()=>W({type:"file",path:$}),title:`Open ${$}`,children:$},void 0,!1,void 0,this),J&&h$("span",{className:"font-mono text-meta text-text-tertiary opacity-60",children:["L",J[0],"–",J[1]]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),h$("pre",{className:"px-4 pb-3 overflow-x-auto text-code font-mono !bg-transparent",style:{background:"transparent"},children:h$("code",{ref:A,className:G?`language-${G}`:"",children:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{SessionContext as G6}from"#canvas/runtime";import{useContext as B6,useState as _6}from"react";import{jsxDEV as T0}from"react/jsx-dev-runtime";function M6({src:$,alt:J,caption:Q,width:q,height:W}){let Y=B6(G6),[X,G]=_6(!1),H=`/api/image?session=${encodeURIComponent(Y)}&path=${encodeURIComponent($)}`;if(X)return T0("div",{className:"mt-3 text-accent-red text-body bg-accent-red-muted rounded-md p-4",children:[$,": Failed to load image"]},void 0,!0,void 0,this);return T0("figure",{className:"mt-3 relative","data-md":"image","data-md-src":$,children:[T0("div",{"data-annotation-image":!0,className:"rounded-md overflow-hidden border border-border-subtle bg-bg-code inline-block",children:T0("img",{src:H,alt:J||$,onError:()=>G(!0),draggable:!1,className:"block max-w-full h-auto",...q?{width:q}:{},...W?{height:W}:{}},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q&&T0("figcaption",{className:"mt-1.5 text-meta text-text-tertiary font-body",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useMemo as U6}from"react";import{jsxDEV as i2}from"react/jsx-dev-runtime";T.setOptions({gfm:!0,breaks:!1});function w6({children:$,file:J,__content:Q}){let q=Q??(typeof $==="string"?$:String($??"")),W=U6(()=>{if(!q)return"";return T.parse(q,{async:!1})},[q]);if(!q)return i2("div",{className:"text-text-tertiary text-tiny mt-3",children:J?`Could not load: ${J}`:"No markdown content"},void 0,!1,void 0,this);return i2("div",{className:"mt-3 prose-canvas","data-md":"markdown",...J?{"data-md-file":J}:{},"data-md-source":q,dangerouslySetInnerHTML:{__html:W}},void 0,!1,void 0,this)}import{useAnnotations as N6,useCanvasFile as K6}from"#canvas/runtime";import{useCallback as R$,useEffect as x1,useRef as I0,useState as L0}from"react";import L6 from"react-dom";import{jsxDEV as P,Fragment as a2}from"react/jsx-dev-runtime";var O0=0.2,q1=0.25,Y1=4;function o2({zoom:$,onZoomIn:J,onZoomOut:Q,onZoomReset:q,onFullscreen:W}){return P("div",{className:"flex items-center gap-0.5 bg-bg-surface border border-border-subtle rounded-md px-1 py-0.5",style:{fontSize:"12px"},children:[P("button",{className:"flex items-center justify-center w-7 h-7 rounded hover:bg-bg-elevated text-text-secondary hover:text-text-primary transition-colors",onClick:Q,title:"Zoom out",disabled:$<=q1,children:P("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:P("line",{x1:"5",y1:"12",x2:"19",y2:"12"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),P("button",{className:"px-1.5 h-7 rounded hover:bg-bg-elevated text-text-tertiary hover:text-text-primary transition-colors tabular-nums",onClick:q,title:"Reset zoom",children:[Math.round($*100),"%"]},void 0,!0,void 0,this),P("button",{className:"flex items-center justify-center w-7 h-7 rounded hover:bg-bg-elevated text-text-secondary hover:text-text-primary transition-colors",onClick:J,title:"Zoom in",disabled:$>=Y1,children:P("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[P("line",{x1:"12",y1:"5",x2:"12",y2:"19"},void 0,!1,void 0,this),P("line",{x1:"5",y1:"12",x2:"19",y2:"12"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),W&&P(a2,{children:[P("div",{className:"w-px h-4 bg-border-subtle mx-0.5"},void 0,!1,void 0,this),P("button",{className:"flex items-center justify-center w-7 h-7 rounded hover:bg-bg-elevated text-text-secondary hover:text-text-primary transition-colors",onClick:W,title:"Fullscreen",children:P("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[P("polyline",{points:"15 3 21 3 21 9"},void 0,!1,void 0,this),P("polyline",{points:"9 21 3 21 3 15"},void 0,!1,void 0,this),P("line",{x1:"21",y1:"3",x2:"14",y2:"10"},void 0,!1,void 0,this),P("line",{x1:"3",y1:"21",x2:"10",y2:"14"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function n2($=1){let[J,Q]=L0($),q=R$(()=>Q((X)=>Math.min(Y1,+(X+O0).toFixed(2))),[]),W=R$(()=>Q((X)=>Math.max(q1,+(X-O0).toFixed(2))),[]),Y=R$(()=>Q(1),[]);return{zoom:J,zoomIn:q,zoomOut:W,zoomReset:Y,setZoom:Q}}function O6({svgHtml:$,source:J,onClose:Q}){let q=I0(null),{zoom:W,zoomIn:Y,zoomOut:X,zoomReset:G,setZoom:H}=n2(1),[B,_]=L0({x:0,y:0}),N=I0(null);x1(()=>{let b=(g)=>{if(g.key==="Escape")Q()};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[Q]);let F=R$((b)=>{b.preventDefault();let g=b.deltaY>0?-O0:O0;H((k)=>Math.max(q1,Math.min(Y1,+(k+g).toFixed(2))))},[H]),A=R$((b)=>{if(b.button!==0)return;N.current={startX:b.clientX,startY:b.clientY,panX:B.x,panY:B.y},b.preventDefault()},[B]),w=R$((b)=>{if(!N.current)return;_({x:N.current.panX+(b.clientX-N.current.startX),y:N.current.panY+(b.clientY-N.current.startY)})},[]),L=R$(()=>{N.current=null},[]),z=R$(()=>{G(),_({x:0,y:0})},[G]);return L6.createPortal(P("div",{style:{position:"fixed",inset:0,zIndex:9999,background:"var(--color-bg-base)",display:"flex",flexDirection:"column"},onMouseMove:w,onMouseUp:L,onMouseLeave:L,children:[P("div",{className:"flex items-center justify-between px-4 py-2 border-b border-border-subtle",style:{flexShrink:0,background:"var(--color-bg-surface)"},children:[P("span",{className:"text-body text-text-secondary",style:{fontSize:"13px"},children:"Mermaid Diagram"},void 0,!1,void 0,this),P("div",{className:"flex items-center gap-2",children:[P(o2,{zoom:W,onZoomIn:Y,onZoomOut:X,onZoomReset:z},void 0,!1,void 0,this),P("button",{className:"flex items-center justify-center w-8 h-8 rounded hover:bg-bg-elevated text-text-secondary hover:text-text-primary transition-colors",onClick:Q,title:"Close (Esc)",children:P("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[P("line",{x1:"18",y1:"6",x2:"6",y2:"18"},void 0,!1,void 0,this),P("line",{x1:"6",y1:"6",x2:"18",y2:"18"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),P("div",{style:{flex:1,overflow:"hidden",cursor:N.current?"grabbing":"grab"},onWheel:F,onMouseDown:A,children:P("div",{ref:q,style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",transform:`translate(${B.x}px, ${B.y}px) scale(${W})`,transformOrigin:"center center",transition:N.current?"none":"transform 0.1s ease-out"},dangerouslySetInnerHTML:{__html:$}},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),document.body)}function F6({children:$}){let J=I0(null),[Q,q]=L0(null),[W,Y]=L0(!1),[X,G]=L0(""),H=typeof $==="string"?$:String($??""),{annotations:B,addAnnotationWithId:_,activeAnnotationId:N,setActiveAnnotationId:F}=N6(),A=K6(),[w,L]=L0(null),{zoom:z,zoomIn:b,zoomOut:g,zoomReset:k,setZoom:E}=n2(1),Z=I0(B);Z.current=B;let p=R$((m,c,J$)=>{let i=`[Diagram ${J$.toLowerCase()}] ${c}`,K$=Z.current.find((q$)=>q$.snippet===i);if(K$)F(K$.id);else L({anchorEl:m,snippet:c,prefix:J$})},[F]),$$=I0(p);$$.current=p,x1(()=>{let m=!1,c=async()=>{try{let i=u2();if(!i){q("Mermaid library not loaded");return}let K$=document.documentElement.dataset.theme==="light"?"default":"dark";i.initialize({startOnLoad:!1,theme:K$});let q$=`mermaid-${Math.random().toString(36).slice(2)}`,{svg:Z$}=await i.render(q$,H.trim());if(!m&&J.current)J.current.innerHTML=Z$,G(Z$),A6(J.current,(Y$,X$,L$)=>$$.current(Y$,X$,L$)),r2(J.current,Z.current);q(null)}catch(i){if(!m)q(i instanceof Error&&i.message||"Invalid diagram")}};c();let J$=new MutationObserver((i)=>{for(let K$ of i)if(K$.attributeName==="data-theme")c()});return J$.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>{m=!0,J$.disconnect()}},[H]),x1(()=>{if(J.current)r2(J.current,B,N)},[B,N]);let W$=R$((m)=>{if(!m.ctrlKey&&!m.metaKey)return;m.preventDefault();let c=m.deltaY>0?-O0:O0;E((J$)=>Math.max(q1,Math.min(Y1,+(J$+c).toFixed(2))))},[E]);if(Q)return P("div",{className:"bg-accent-red-muted rounded-md p-4 mt-3 text-body text-accent-red",children:["Mermaid error: ",Q,P("pre",{className:"mt-2 text-tiny text-text-tertiary whitespace-pre-wrap",children:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let N$=J.current?.closest("#plan-scroll-container");return P(a2,{children:[P("div",{className:"mt-3 mermaid-container","data-md":"mermaid","data-md-source":H.trim(),children:[P("div",{className:"flex justify-end mb-1",children:P(o2,{zoom:z,onZoomIn:b,onZoomOut:g,onZoomReset:k,onFullscreen:()=>Y(!0)},void 0,!1,void 0,this)},void 0,!1,void 0,this),P("div",{style:{overflow:"auto",maxHeight:"70vh"},onWheel:W$,children:P("div",{ref:J,className:"flex justify-center",style:{transform:`scale(${z})`,transformOrigin:"top center",transition:"transform 0.1s ease-out",minHeight:z<1?void 0:void 0}},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w&&P(k0,{anchorEl:w.anchorEl,scrollContainer:N$,snippet:w.snippet,header:P("div",{style:{fontSize:"12px",color:"var(--color-text-tertiary)",marginBottom:"8px",lineHeight:"1.4",display:"flex",alignItems:"center",gap:"6px"},children:[P("span",{style:{width:"8px",height:"8px",borderRadius:"50%",background:"var(--color-accent-amber)",flexShrink:0}},void 0,!1,void 0,this),w.snippet]},void 0,!0,void 0,this),onAdd:(m,c)=>{let J$=`ann-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;_(J$,`[Diagram ${w.prefix.toLowerCase()}] ${w.snippet}`,m,void 0,void 0,c,A||void 0),L(null)},onCancel:()=>L(null)},void 0,!1,void 0,this),W&&X&&P(O6,{svgHtml:X,source:H,onClose:()=>Y(!1)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function A6($,J){let Q=(q,W,Y)=>{q.style.cursor="pointer",q.addEventListener("mouseenter",()=>{q.style.filter="brightness(1.2)"}),q.addEventListener("mouseleave",()=>{q.style.filter=""}),q.addEventListener("click",(X)=>{X.stopPropagation(),X.preventDefault(),J(q,W(),Y)})};for(let q of $.querySelectorAll(".node"))Q(q,()=>{return(q.querySelector(".nodeLabel")||q.querySelector("foreignObject span")||q.querySelector("text"))?.textContent?.trim()||"Node"},"Node");for(let q of $.querySelectorAll(".edgePath")){let W=q,Y=W.querySelector("path");if(Y){Y.style.strokeWidth=Math.max(parseFloat(Y.style.strokeWidth||"1"),8)+"px",Y.style.strokeOpacity="0";let G=Y.cloneNode(!0);G.style.strokeWidth="",G.style.strokeOpacity="",W.insertBefore(G,Y)}let X=W.id||"";Q(W,()=>{let G=$.querySelectorAll(".edgeLabel");for(let H of G)if(H.id&&X&&H.id.replace("label","").includes(X.replace("L-","").replace("edge",""))){let B=H.textContent?.trim();if(B)return B}return"Connection"},"Edge")}for(let q of $.querySelectorAll(".edgeLabel")){let W=q.textContent?.trim();if(!W)continue;Q(q,()=>W,"Edge")}for(let q of $.querySelectorAll(".actor")){let W=q.closest("g")?.querySelector("text")||q.parentElement?.querySelector("text");if(!W)continue;let Y=q.closest("g");if(!Y||Y.hasAttribute("data-clickable"))continue;Y.setAttribute("data-clickable","true"),Q(Y,()=>W.textContent?.trim()||"Participant","Node")}for(let q of $.querySelectorAll(".messageText")){let W=q.textContent?.trim();if(!W)continue;Q(q,()=>W,"Edge")}for(let q of $.querySelectorAll(".entityBox")){let W=q.closest("g");if(!W||W.hasAttribute("data-clickable"))continue;let Y=W.querySelector(".entityLabel");if(!Y)continue;W.setAttribute("data-clickable","true"),Q(W,()=>Y.textContent?.trim()||"Entity","Node")}for(let q of $.querySelectorAll(".relationshipLabel")){let W=q.textContent?.trim();if(!W)continue;let X=q.closest("g")||q;if(X.hasAttribute("data-clickable"))continue;X.setAttribute("data-clickable","true"),Q(X,()=>W,"Edge")}for(let q of $.querySelectorAll(".classGroup")){let W=q;if(W.hasAttribute("data-clickable"))continue;let Y=W.querySelector(".classTitle, .classTitleText, text");if(!Y)continue;W.setAttribute("data-clickable","true"),Q(W,()=>Y.textContent?.trim()||"Class","Node")}for(let q of $.querySelectorAll(".statediagram-state")){let W=q;if(W.hasAttribute("data-clickable"))continue;let Y=W.querySelector(".state-title, text");if(!Y)continue;W.setAttribute("data-clickable","true"),Q(W,()=>Y.textContent?.trim()||"State","Node")}for(let q of $.querySelectorAll(".mindmap-node")){let W=q;if(W.hasAttribute("data-clickable"))continue;let Y=W.querySelector(".mindmap-node-label, text");if(!Y)continue;W.setAttribute("data-clickable","true"),Q(W,()=>Y.textContent?.trim()||"Node","Node")}}function r2($,J,Q){let q=new Map;for(let Y of J){let X=Y.snippet.match(/^\[Diagram (?:node|edge)\] (.+)$/)?.[1];if(X)q.set(X,Y.id)}for(let Y of $.querySelectorAll("[data-annotated]"))Y.style.outline="",Y.style.outlineOffset="",Y.style.borderRadius="",Y.removeAttribute("data-annotated");if(q.size===0)return;for(let Y of $.querySelectorAll(".node")){let G=(Y.querySelector(".nodeLabel")||Y.querySelector("foreignObject span")||Y.querySelector("text"))?.textContent?.trim();if(!G||!q.has(G))continue;let H=q.get(G),B=Y;B.setAttribute("data-annotated",H);let _=H===Q;B.style.outline=_?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",B.style.outlineOffset="2px",B.style.borderRadius="4px"}for(let Y of $.querySelectorAll(".edgeLabel")){let X=Y.textContent?.trim();if(!X||!q.has(X))continue;let G=q.get(X),H=Y;H.setAttribute("data-annotated",G);let B=G===Q;H.style.outline=B?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",H.style.outlineOffset="2px",H.style.borderRadius="4px"}for(let Y of $.querySelectorAll(".actor")){let X=Y.closest("g");if(!X)continue;let H=X.querySelector("text")?.textContent?.trim();if(!H||!q.has(H))continue;if(X.hasAttribute("data-annotated"))continue;let B=q.get(H);X.setAttribute("data-annotated",B);let _=B===Q,N=X.querySelector("rect");if(N)N.style.outline=_?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",N.style.outlineOffset="2px",N.style.borderRadius="4px"}for(let Y of $.querySelectorAll(".messageText")){let X=Y.textContent?.trim();if(!X||!q.has(X))continue;let G=q.get(X),H=Y;H.setAttribute("data-annotated",G);let B=G===Q;H.style.outline=B?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",H.style.outlineOffset="2px",H.style.borderRadius="4px"}let W=(Y,X,G)=>{for(let H of $.querySelectorAll(Y)){let B=G(H);if(!B||B.hasAttribute("data-annotated"))continue;let N=B.querySelector(X)?.textContent?.trim();if(!N||!q.has(N))continue;let F=q.get(N);B.setAttribute("data-annotated",F);let A=F===Q,w=B.querySelector("rect, circle, ellipse, polygon")||B;w.style.outline=A?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",w.style.outlineOffset="2px",w.style.borderRadius="4px"}};W(".entityBox",".entityLabel",(Y)=>Y.closest("g"));for(let Y of $.querySelectorAll(".relationshipLabel")){let G=Y.closest("g")||Y;if(G.hasAttribute("data-annotated"))continue;let H=Y.textContent?.trim();if(!H||!q.has(H))continue;let B=q.get(H);G.setAttribute("data-annotated",B);let _=B===Q;G.style.outline=_?"2px solid var(--color-highlight-border)":"2px solid var(--color-highlight-annotation)",G.style.outlineOffset="2px",G.style.borderRadius="4px"}W(".classGroup",".classTitle, .classTitleText, text",(Y)=>Y),W(".statediagram-state",".state-title, text",(Y)=>Y),W(".mindmap-node",".mindmap-node-label, text",(Y)=>Y)}import{jsxDEV as S6}from"react/jsx-dev-runtime";function z6({children:$}){return S6("div",{className:"relative bg-bg-elevated rounded-lg px-5 py-4 mt-3 text-body text-text-secondary italic leading-relaxed","data-md":"note",children:D$($)},void 0,!1,void 0,this)}import{jsxDEV as b6}from"react/jsx-dev-runtime";var f6={high:"text-accent-red bg-accent-red-muted",medium:"text-accent-amber bg-accent-amber-muted",low:"text-text-tertiary bg-border-subtle"};function R6({level:$}){return b6("span",{className:`inline text-tiny font-medium font-body ml-2 px-1.5 py-0.5 rounded ${f6[$]}`,"data-md":"priority","data-md-level":$,children:$},void 0,!1,void 0,this)}import{useState as j6}from"react";import{jsxDEV as n$}from"react/jsx-dev-runtime";function V6({title:$,children:J}){let[Q,q]=j6(!1);return n$("div",{className:"relative mb-8 p-4 group/section","data-md":"section","data-md-title":$,children:[n$("div",{className:"relative mb-2",children:[n$("button",{onClick:()=>q(!Q),className:`absolute -left-8 top-1/2 -translate-y-1/2 text-text-tertiary opacity-0 group-hover/section:opacity-50 hover:!opacity-100 transition-all duration-150 p-0.5 ${Q?"-rotate-90":""}`,children:n$("svg",{width:"14",height:"14",viewBox:"0 0 12 12",fill:"none",children:n$("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),n$("h2",{className:"font-heading text-section text-text-primary",style:{fontWeight:400},children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this),n$("div",{className:Q?"mt-6 hidden":"mt-6",children:D$(J)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as y$}from"react/jsx-dev-runtime";function v6({headers:$,rows:J}){return y$("div",{className:"overflow-x-auto mt-3","data-md":"table",children:y$("table",{className:"w-full text-body",children:[y$("thead",{children:y$("tr",{className:"border-b border-border-subtle",children:$.map((Q,q)=>y$("th",{className:"text-left px-4 py-2.5 text-meta font-medium uppercase tracking-wider text-text-tertiary font-body",children:Q},q,!1,void 0,this))},void 0,!1,void 0,this)},void 0,!1,void 0,this),y$("tbody",{children:J.map((Q,q)=>y$("tr",{className:`relative border-b border-border-subtle last:border-b-0 transition-colors hover:bg-bg-surface/50 ${q%2===1?"bg-bg-surface/30":""}`,children:Q.map((W,Y)=>y$("td",{className:"px-4 py-2.5 text-text-secondary font-body",children:W},Y,!1,void 0,this))},q,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}import{jsxDEV as b$}from"react/jsx-dev-runtime";var P6={todo:"bg-border-hover",done:"bg-accent-green",blocked:"bg-accent-red","in-progress":"bg-accent-blue"},C6={todo:"Todo",done:"Done",blocked:"Blocked","in-progress":"In progress"},D6={info:"bg-accent-blue-muted text-accent-blue",success:"bg-accent-green-muted text-accent-green",warning:"bg-accent-amber-muted text-accent-amber",danger:"bg-accent-red-muted text-accent-red",neutral:"bg-border-subtle text-text-tertiary"};function s2({id:$,label:J,status:Q,badge:q,badgeVariant:W="neutral",children:Y}){return b$("div",{className:"group/task relative -mx-4 px-4 py-3 rounded-md transition-colors duration-150 hover:bg-bg-input","data-task-id":$,"data-md":"item","data-md-label":J,...Q?{"data-md-status":Q}:{},...q?{"data-md-badge":q}:{},children:b$("div",{className:"flex items-start gap-3",children:[Q&&b$("span",{className:`w-2 h-2 rounded-full mt-[7px] flex-shrink-0 ${P6[Q]}`},void 0,!1,void 0,this),b$("div",{className:"flex-1 min-w-0",children:[b$("div",{className:"flex items-baseline gap-2",children:[b$("span",{className:"font-body text-task-label font-semibold text-text-primary",children:J},void 0,!1,void 0,this),Q&&b$("span",{className:"font-body text-tiny uppercase tracking-wider text-text-tertiary opacity-0 group-hover/task:opacity-100 transition-opacity duration-150",children:C6[Q]},void 0,!1,void 0,this),q&&b$("span",{className:`font-body text-tiny font-medium px-1.5 py-px rounded-full ${D6[W]}`,children:q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y&&b$("div",{className:"text-body text-text-secondary mt-1 leading-relaxed",children:D$(Y)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function k6($){return b$(s2,{...$},void 0,!1,void 0,this)}import{useAnnotations as t2,useResponseRegistration as e2}from"#canvas/runtime";import{useRef as E6,useState as $4}from"react";import{jsxDEV as h}from"react/jsx-dev-runtime";function T6({id:$,label:J,placeholder:Q,multiline:q,required:W}){let{responses:Y,setResponse:X}=t2();e2($);let G=Y.get($),H=G?.value??"",B=G?.note||"",[_,N]=$4(!1),F=E6(null);if(!Y.has($))X($,{id:$,type:"text",label:J,value:"",required:W});let A=(z)=>{X($,{...G,value:z})},w=(z)=>P$(z,q?60:32),L=G?.required&&!H.trim();return h("div",{"data-md":"userinput","data-md-label":J,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[h("div",{className:"flex items-baseline gap-2 mb-2",children:[h("span",{className:"text-[13px] font-body font-medium text-text-primary",children:J},void 0,!1,void 0,this),W&&h("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h("textarea",{ref:F,value:H,onChange:(z)=>{A(z.currentTarget.value),w(z.currentTarget)},placeholder:Q||"Type your response...",rows:q?3:1,className:"w-full bg-bg-input text-[13px] font-body text-text-primary rounded-lg px-3 py-2 resize-none focus:outline-none border border-border-subtle focus:border-border-hover placeholder:text-text-tertiary transition-colors",onInput:(z)=>w(z.currentTarget),onFocus:(z)=>w(z.currentTarget)},void 0,!1,void 0,this),h(K0,{show:_,note:B,onToggle:()=>N(!_),onChange:(z)=>X($,{...G,note:z})},void 0,!1,void 0,this),L&&h("p",{className:"text-[11px] text-accent-red font-body mt-1",children:"This field is required."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function I6({id:$,label:J,min:Q=1,max:q=10,step:W=1,required:Y,minLabel:X,maxLabel:G}){let{responses:H,setResponse:B}=t2();e2($);let _=H.get($),N=_?.value,F=_?.note||"",[A,w]=$4(!1);if(!H.has($))B($,{id:$,type:"range",label:J,value:null,required:Y});let L=(p)=>{B($,{..._,value:p})},z=N!==null&&N!==void 0,b=z?N:Math.round((Q+q)/2),g=(b-Q)/(q-Q)*100,k=Math.round((q-Q)/W),E=k<=20,Z=_?.required&&!z;return h("div",{"data-md":"rangeinput","data-md-label":J,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[h("div",{className:"flex items-baseline justify-between mb-1",children:[h("div",{className:"flex items-baseline gap-2",children:[h("span",{className:"text-[13px] font-body font-medium text-text-primary",children:J},void 0,!1,void 0,this),Y&&h("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h("span",{className:"flex items-center gap-1.5",children:[h("span",{className:`text-[13px] font-mono ${z?"text-accent-amber":"text-text-disabled"}`,children:z?N:"—"},void 0,!1,void 0,this),z&&h("button",{onClick:()=>B($,{..._,value:null}),className:"text-text-disabled hover:text-text-tertiary transition-colors text-[10px] leading-none",title:"Clear",children:"✕"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),h("div",{className:"relative h-6 flex items-center",children:[h("div",{className:"absolute left-0 right-0 h-1.5 rounded-full bg-border-medium",children:z&&h("div",{className:"h-full rounded-full bg-accent-amber transition-all duration-150",style:{width:`${g}%`}},void 0,!1,void 0,this)},void 0,!1,void 0,this),E&&Array.from({length:k+1},(p,$$)=>{let W$=Q+$$*W,N$=(W$-Q)/(q-Q)*100,m=z&&W$<=N;return h("div",{className:`absolute rounded-full pointer-events-none transition-all duration-150 ${z&&W$===N?"w-2.5 h-2.5 bg-accent-amber":m?"w-1.5 h-1.5 bg-accent-amber":"w-1.5 h-1.5 bg-border-hover"}`,style:{left:`${N$}%`,transform:"translate(-50%, -50%)",top:"50%"}},$$,!1,void 0,this)}),z?h("div",{className:"absolute h-5 w-5 rounded-full bg-accent-amber shadow-md pointer-events-none transition-all duration-150",style:{left:`calc(${g}% - 10px)`,borderWidth:"2px",borderStyle:"solid",borderColor:"var(--color-bg-base)"}},void 0,!1,void 0,this):h("div",{className:"absolute h-4 w-4 rounded-full bg-border-hover pointer-events-none opacity-50",style:{left:"calc(50% - 8px)",borderWidth:"2px",borderStyle:"solid",borderColor:"var(--color-bg-base)"}},void 0,!1,void 0,this),h("input",{type:"range",min:Q,max:q,step:W,value:b,onChange:(p)=>L(Number(p.currentTarget.value)),className:"absolute inset-0 w-full opacity-0 cursor-pointer"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),E&&k<=10?h("div",{className:"flex justify-between -mt-0.5 px-0",children:Array.from({length:k+1},(p,$$)=>{let W$=Q+$$*W;return h("span",{className:`text-[10px] font-mono transition-colors ${z&&W$===N?"text-accent-amber font-medium":"text-text-disabled"}`,style:{minWidth:"1ch",textAlign:"center"},children:W$},$$,!1,void 0,this)})},void 0,!1,void 0,this):h("div",{className:"flex justify-between -mt-0.5",children:[h("span",{className:"text-[11px] text-text-tertiary font-body",children:X||Q},void 0,!1,void 0,this),h("span",{className:"text-[11px] text-text-tertiary font-body",children:G||q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),h(K0,{show:A,note:F,onToggle:()=>w(!A),onChange:(p)=>B($,{..._,note:p})},void 0,!1,void 0,this),Z&&h("p",{className:"text-[11px] text-accent-red font-body mt-1",children:"Please select a value."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useFeedback as r6}from"#canvas/runtime";import{useEffect as o6,useState as X1}from"react";var J4=M.object({shareId:M.string(),url:M.string(),revision:M.number(),createdAt:M.string(),ownerToken:M.string().optional(),expiresAt:M.string().optional(),lastFeedbackAt:M.string().optional(),encryptionKey:M.string().optional()}),g6=M.object({revision:M.number(),label:M.string().optional(),canvasFiles:M.array(M.object({filename:M.string(),diffStats:M.object({added:M.number(),removed:M.number()}).optional()})),createdAt:M.string(),hasFeedback:M.boolean(),feedbackConsumed:M.boolean(),response:M.string().optional()}).passthrough(),h6=M.object({encryption:M.object({alg:M.literal("AES-GCM"),v:M.literal(1)}).optional(),origin:M.object({sessionId:M.string().optional(),label:M.string().optional(),revision:M.number().optional(),createdAt:M.string().optional()}).optional(),currentRevision:M.number().optional(),revisions:M.array(g6).optional(),canvasFiles:M.array(M.string()).optional(),projectRoot:M.string().optional(),shares:M.array(J4).optional(),shareEnabled:M.boolean().optional()}).passthrough(),XW=M.object({entries:M.array(M.object({name:M.string(),type:M.enum(["file","dir"])}))}),y6=M.object({id:M.string(),shareId:M.string(),revision:M.number(),submittedAt:M.string(),author:I1,annotations:M.array(g1.omit({source:!0,author:!0})),generalNote:M.string().optional()}),HW=M.object({entries:M.array(y6)}),GW=M.union([M.object({ok:M.literal(!0),share:J4}),M.object({ok:M.literal(!1).optional(),error:M.string().optional()})]),BW=M.union([M.object({ok:M.literal(!0)}),M.object({ok:M.literal(!1).optional(),error:M.string().optional()})]);async function Q4($){let J=Z6($);return crypto.subtle.importKey("raw",J,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function W4($,J){let Q=q4(J);if(Q.byteLength<28)throw Error("Ciphertext too short");let q=Q.subarray(0,12),W=Q.subarray(12),Y=await crypto.subtle.decrypt({name:"AES-GCM",iv:q},$,W);return new TextDecoder().decode(Y)}function q4($){let J=atob($),Q=new Uint8Array(J.length);for(let q=0;q<J.length;q++)Q[q]=J.charCodeAt(q);return Q}function Z6($){let J=$.replace(/-/g,"+").replace(/_/g,"/")+"===".slice(($.length+3)%4);return q4(J)}function m6(){if(typeof window>"u")return null;let $=window.location.hash.replace(/^#/,"");if(!$)return null;for(let J of $.split("&")){let[Q,q]=J.split("=");if(Q==="k"&&q)return decodeURIComponent(q)}return null}function x6(){if(typeof window<"u"&&window.__CANVAS_SHARE__?.shareId){let J=m6();return{isShared:!0,shareId:window.__CANVAS_SHARE__.shareId,encryptionKey:J?Q4(J):null}}return{isShared:!1,sessionId:typeof window<"u"?window.location.pathname.replace("/s/",""):""}}var l=x6();function u6(){return l.isShared&&l.encryptionKey!==null}function p6(){return l.isShared?l.shareId:l.sessionId}function l6($,J){let Q=$.replace(/\.jsx$/,".js");if(l.isShared)return`/s/${l.shareId}/canvas/${encodeURIComponent(Q)}`;let q=J?`?rev=${J}&t=${Date.now()}`:`?t=${Date.now()}`;return`/api/session/${l.sessionId}/canvas/${encodeURIComponent(Q)}${q}`}function c6(){if(l.isShared)return`/s/${l.shareId}/upload`;return`/api/session/${l.sessionId}/upload`}function u1($,J){if(l.isShared)throw Error("Secret inputs are available only on the local canvas daemon");return`/api/session/${encodeURIComponent(l.sessionId)}/secrets/${encodeURIComponent($)}/${J}`}async function p1($){let J=await $.json().catch(()=>null);if(typeof J==="object"&&J!==null&&"error"in J&&typeof J.error==="string")return Error(J.error);return Error(`Secret API request failed with status ${$.status}`)}async function Y4($){let J=await fetch(u1($,"status"),{cache:"no-store"});if(!J.ok)throw await p1(J);let Q=await J.json();return typeof Q==="object"&&Q!==null&&"ready"in Q&&Q.ready===!0}async function X4($,J){let Q=await fetch(u1($,"value"),{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({value:J})});if(!Q.ok)throw await p1(Q)}async function H4($){let J=await fetch(u1($,"value"),{method:"DELETE",cache:"no-store"});if(!J.ok)throw await p1(J)}var d6=async($,J)=>{let Q=l6($,J);if(!u6())return import(Q);let q=await fetch(Q);if(!q.ok)throw Error(`canvas ${q.status}`);let W=await q.text(),Y=await l.encryptionKey,X=await W4(Y,W),G=new Blob([X],{type:"application/javascript"}),H=URL.createObjectURL(G);try{return await import(H)}finally{setTimeout(()=>URL.revokeObjectURL(H),0)}};var i6=!l.isShared,LW=!l.isShared,OW={get sessionId(){return p6()},isShared:l.isShared,fsAvailable:i6,uploadUrl:c6,loadCanvasModule:d6};import{jsxDEV as e}from"react/jsx-dev-runtime";var n6=/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/,a6=/^[A-Za-z_][A-Za-z0-9_]*$/;function s6({id:$,label:J,env:Q,placeholder:q,required:W}){let[Y,X]=X1(""),[G,H]=X1(!1),[B,_]=X1(!l.isShared),[N,F]=X1(null),A=n6.test($),w=a6.test(Q),L=!l.isShared;o6(()=>{if(!L||!A){_(!1);return}let E=!0;return Y4($).then((Z)=>{if(E)H(Z)}).catch((Z)=>{if(E)F(Z instanceof Error?Z.message:"Could not read secret status")}).finally(()=>{if(E)_(!1)}),()=>{E=!1}},[$,L,A]);let z=G?`**${J}**
|
|
64
|
+
Secret is ready. Field: \`${$}\`. Environment variable: \`${Q}\`.
|
|
65
|
+
`:"";r6(`secret:${$}`,z,{label:J,required:W&&L});let b=async()=>{if(!Y||!A||!w)return;_(!0),F(null);try{await X4($,Y),X(""),H(!0)}catch(E){F(E instanceof Error?E.message:"Could not store secret")}finally{_(!1)}},g=async()=>{_(!0),F(null);try{await H4($),H(!1)}catch(E){F(E instanceof Error?E.message:"Could not clear secret")}finally{_(!1)}};if(!L)return e("div",{"data-md":"secretinput","data-md-label":J,className:"-mx-4 px-4 py-3 my-1 rounded-lg bg-accent-amber-muted",children:[e("div",{className:"text-[13px] font-body font-medium text-text-primary",children:J},void 0,!1,void 0,this),e("p",{className:"text-[12px] font-body text-text-secondary mt-1",children:"Secret input is unavailable in shared canvases. Open this runbook on the author's local canvas daemon."},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let k=!A?"Secret field IDs may contain letters, numbers, dots, underscores, and hyphens.":!w?"Environment variable names must use letters, numbers, and underscores and may not start with a number.":null;return e("div",{"data-md":"secretinput","data-md-label":J,className:"-mx-4 px-4 py-3 my-1 rounded-lg transition-colors duration-150 hover:bg-bg-input",children:[e("div",{className:"flex items-baseline justify-between gap-3 mb-2",children:[e("div",{className:"flex items-baseline gap-2",children:[e("span",{className:"text-[13px] font-body font-medium text-text-primary",children:J},void 0,!1,void 0,this),W&&e("span",{className:"text-[10px] text-accent-red font-body",children:"*"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),e("span",{className:`text-[11px] font-body ${G?"text-accent-green":"text-text-tertiary"}`,children:B?"Working…":G?"Ready in memory":"Not stored"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),e("div",{className:"flex gap-2",children:[e("input",{type:"password",value:Y,onChange:(E)=>X(E.target.value),onKeyDown:(E)=>{if(E.key==="Enter")E.preventDefault(),b()},placeholder:q||"Paste secret value",autoComplete:"off",spellCheck:!1,disabled:B||!!k,className:"min-w-0 flex-1 bg-bg-input text-[13px] font-mono text-text-primary rounded-lg px-3 py-2 focus:outline-none border border-border-subtle focus:border-border-hover placeholder:text-text-tertiary disabled:opacity-50 transition-colors"},void 0,!1,void 0,this),e("button",{type:"button",onClick:()=>void b(),disabled:B||!Y||!!k,className:"px-3 py-2 rounded-lg bg-btn-primary text-btn-primary-text text-[12px] font-body font-medium disabled:opacity-40 disabled:cursor-default",children:G?"Replace":"Store"},void 0,!1,void 0,this),G&&e("button",{type:"button",onClick:()=>void g(),disabled:B,className:"px-3 py-2 rounded-lg border border-border-subtle text-text-secondary text-[12px] font-body font-medium hover:border-border-hover disabled:opacity-40",children:"Clear"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),e("p",{className:"text-[11px] font-body text-text-tertiary mt-1.5",children:["Stored only in daemon memory. The agent receives field ",$," for ",Q,", not the value."]},void 0,!0,void 0,this),(k||N)&&e("p",{className:"text-[11px] text-accent-red font-body mt-1",children:k||N},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}export{p7 as useFeedback,T6 as UserInput,k6 as Task,v6 as Table,V6 as Section,s6 as SecretInput,I6 as RangeInput,R6 as Priority,z6 as Note,n5 as MultiChoice,F6 as Mermaid,w6 as Markdown,s2 as Item,M6 as ImageView,H6 as FilePreview,$6 as Diff,t5 as CodeBlock,o5 as Choice,X3 as Checklist,Y3 as Callout};
|