@bloomscorp/blooms-ai-embed 0.1.1 → 0.2.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.
@@ -0,0 +1,74 @@
1
+ import{b as Qe}from"./chunk-3U3MLDTP.js";import{a as dt}from"./chunk-T4IZD3WN.js";import{a as pt}from"./chunk-IRBW4XXQ.js";import{a as lt}from"./chunk-X2Q5WSIJ.js";import{a as st}from"./chunk-OBI6OSSF.js";import{b as Xe,c as Je,e as et,h as tt,j as nt,n as it,o as ot,q as at,s as rt}from"./chunk-VQEBAAHK.js";import{a as ct}from"./chunk-HLIQJSA7.js";import{c as me}from"./chunk-SPLW6L45.js";import{$a as I,Ca as b,Cb as le,D as G,Ga as w,Ha as He,Ia as O,J as u,Ja as ve,K as _,Ka as Se,La as m,Ma as Be,Oa as U,Pa as H,Qa as r,Ra as a,S as ye,Sa as Z,Ta as y,Ua as f,V as je,Va as p,W as v,Wa as l,Xa as S,Ya as C,Za as ge,a as z,ab as D,b as te,bb as V,eb as L,fb as ne,gb as q,hb as Te,ma as Ge,na as re,nb as ie,pa as s,tb as qe,vb as Ze,xa as Ue,xb as Ye,z as de}from"./chunk-WQW7QCHM.js";function Ae(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var J=Ae();function bt(n){J=n}var Q={exec:()=>null};function B(n,t=""){let e=typeof n=="string"?n:n.source,o={replace:(i,c)=>{let d=typeof c=="string"?c:c.source;return d=d.replace(P.caret,"$1"),e=e.replace(i,d),o},getRegex:()=>new RegExp(e,t)};return o}var Ft=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),P={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:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}>`)},Lt=/^(?:[ \t]*(?:\n|$))+/,Pt=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,$t=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,pe=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ot=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ie=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,kt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Ct=B(kt).replace(/bull/g,Ie).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(),Wt=B(kt).replace(/bull/g,Ie).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(),De=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Kt=/^[^\n]+/,Ve=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Nt=B(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Ve).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),jt=B(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ie).getRegex(),fe="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",ze=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Gt=B("^ {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[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ze).replace("tag",fe).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),wt=B(De).replace("hr",pe).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",fe).getRegex(),Ut=B(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",wt).getRegex(),Fe={blockquote:Ut,code:Pt,def:Nt,fences:$t,heading:Ot,hr:pe,html:Gt,lheading:Ct,list:jt,newline:Lt,paragraph:wt,table:Q,text:Kt},gt=B("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",pe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\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",fe).getRegex(),Ht=te(z({},Fe),{lheading:Wt,table:gt,paragraph:B(De).replace("hr",pe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",gt).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",fe).getRegex()}),qt=te(z({},Fe),{html:B(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ze).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:Q,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:B(De).replace("hr",pe).replace("heading",` *#{1,6} *[^
2
+ ]`).replace("lheading",Ct).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),Zt=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Yt=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,yt=/^( {2,}|\\)\n(?!\s*$)/,Qt=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,oe=/[\p{P}\p{S}]/u,be=/[\s\p{P}\p{S}]/u,Le=/[^\s\p{P}\p{S}]/u,Xt=B(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,be).getRegex(),vt=/(?!~)[\p{P}\p{S}]/u,Jt=/(?!~)[\s\p{P}\p{S}]/u,en=/(?:[^\s\p{P}\p{S}]|~)/u,tn=B(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Ft?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),St=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,nn=B(St,"u").replace(/punct/g,oe).getRegex(),on=B(St,"u").replace(/punct/g,vt).getRegex(),Bt="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",an=B(Bt,"gu").replace(/notPunctSpace/g,Le).replace(/punctSpace/g,be).replace(/punct/g,oe).getRegex(),rn=B(Bt,"gu").replace(/notPunctSpace/g,en).replace(/punctSpace/g,Jt).replace(/punct/g,vt).getRegex(),ln=B("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Le).replace(/punctSpace/g,be).replace(/punct/g,oe).getRegex(),sn=B(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,oe).getRegex(),cn="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",pn=B(cn,"gu").replace(/notPunctSpace/g,Le).replace(/punctSpace/g,be).replace(/punct/g,oe).getRegex(),dn=B(/\\(punct)/,"gu").replace(/punct/g,oe).getRegex(),gn=B(/^<(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(),mn=B(ze).replace("(?:-->|$)","-->").getRegex(),un=B("^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",mn).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),_e=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,_n=B(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",_e).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Tt=B(/^!?\[(label)\]\[(ref)\]/).replace("label",_e).replace("ref",Ve).getRegex(),Et=B(/^!?\[(ref)\](?:\[\])?/).replace("ref",Ve).getRegex(),xn=B("reflink|nolink(?!\\()","g").replace("reflink",Tt).replace("nolink",Et).getRegex(),mt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Pe={_backpedal:Q,anyPunctuation:dn,autolink:gn,blockSkip:tn,br:yt,code:Yt,del:Q,delLDelim:Q,delRDelim:Q,emStrongLDelim:nn,emStrongRDelimAst:an,emStrongRDelimUnd:ln,escape:Zt,link:_n,nolink:Et,punctuation:Xt,reflink:Tt,reflinkSearch:xn,tag:un,text:Qt,url:Q},hn=te(z({},Pe),{link:B(/^!?\[(label)\]\((.*?)\)/).replace("label",_e).getRegex(),reflink:B(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",_e).getRegex()}),Ee=te(z({},Pe),{emStrongRDelimAst:rn,emStrongLDelim:on,delLDelim:sn,delRDelim:pn,url:B(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",mt).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:B(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",mt).getRegex()}),fn=te(z({},Ee),{br:B(yt).replace("{2,}","*").getRegex(),text:B(Ee.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),ue={normal:Fe,gfm:Ht,pedantic:qt},se={normal:Pe,gfm:Ee,breaks:fn,pedantic:hn},bn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ut=n=>bn[n];function N(n,t){if(t){if(P.escapeTest.test(n))return n.replace(P.escapeReplace,ut)}else if(P.escapeTestNoEncode.test(n))return n.replace(P.escapeReplaceNoEncode,ut);return n}function _t(n){try{n=encodeURI(n).replace(P.percentDecode,"%")}catch{return null}return n}function xt(n,t){let e=n.replace(P.findPipe,(c,d,x)=>{let g=!1,k=d;for(;--k>=0&&x[k]==="\\";)g=!g;return g?"|":" |"}),o=e.split(P.splitPipe),i=0;if(o[0].trim()||o.shift(),o.length>0&&!o.at(-1)?.trim()&&o.pop(),t)if(o.length>t)o.splice(t);else for(;o.length<t;)o.push("");for(;i<o.length;i++)o[i]=o[i].trim().replace(P.slashPipe,"|");return o}function Y(n,t,e){let o=n.length;if(o===0)return"";let i=0;for(;i<o;){let c=n.charAt(o-i-1);if(c===t&&!e)i++;else if(c!==t&&e)i++;else break}return n.slice(0,o-i)}function ht(n){let t=n.split(`
3
+ `),e=t.length-1;for(;e>=0&&!t[e].trim();)e--;return t.length-e<=2?n:t.slice(0,e+1).join(`
4
+ `)}function kn(n,t){if(n.indexOf(t[1])===-1)return-1;let e=0;for(let o=0;o<n.length;o++)if(n[o]==="\\")o++;else if(n[o]===t[0])e++;else if(n[o]===t[1]&&(e--,e<0))return o;return e>0?-2:-1}function Cn(n,t=0){let e=t,o="";for(let i of n)if(i===" "){let c=4-e%4;o+=" ".repeat(c),e+=c}else o+=i,e++;return o}function ft(n,t,e,o,i){let c=t.href,d=t.title||null,x=n[1].replace(i.other.outputLinkReplace,"$1");o.state.inLink=!0;let g={type:n[0].charAt(0)==="!"?"image":"link",raw:e,href:c,title:d,text:x,tokens:o.inlineTokens(x)};return o.state.inLink=!1,g}function wn(n,t,e){let o=n.match(e.other.indentCodeCompensation);if(o===null)return t;let i=o[1];return t.split(`
5
+ `).map(c=>{let d=c.match(e.other.beginningSpace);if(d===null)return c;let[x]=d;return x.length>=i.length?c.slice(i.length):c}).join(`
6
+ `)}var xe=class{options;rules;lexer;constructor(n){this.options=n||J}space(n){let t=this.rules.block.newline.exec(n);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(n){let t=this.rules.block.code.exec(n);if(t){let e=this.options.pedantic?t[0]:ht(t[0]),o=e.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e,codeBlockStyle:"indented",text:o}}}fences(n){let t=this.rules.block.fences.exec(n);if(t){let e=t[0],o=wn(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:o}}}heading(n){let t=this.rules.block.heading.exec(n);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let o=Y(e,"#");(this.options.pedantic||!o||this.rules.other.endingSpaceChar.test(o))&&(e=o.trim())}return{type:"heading",raw:Y(t[0],`
7
+ `),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(n){let t=this.rules.block.hr.exec(n);if(t)return{type:"hr",raw:Y(t[0],`
8
+ `)}}blockquote(n){let t=this.rules.block.blockquote.exec(n);if(t){let e=Y(t[0],`
9
+ `).split(`
10
+ `),o="",i="",c=[];for(;e.length>0;){let d=!1,x=[],g;for(g=0;g<e.length;g++)if(this.rules.other.blockquoteStart.test(e[g]))x.push(e[g]),d=!0;else if(!d)x.push(e[g]);else break;e=e.slice(g);let k=x.join(`
11
+ `),h=k.replace(this.rules.other.blockquoteSetextReplace,`
12
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");o=o?`${o}
13
+ ${k}`:k,i=i?`${i}
14
+ ${h}`:h;let E=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(h,c,!0),this.lexer.state.top=E,e.length===0)break;let T=c.at(-1);if(T?.type==="code")break;if(T?.type==="blockquote"){let F=T,A=F.raw+`
15
+ `+e.join(`
16
+ `),j=this.blockquote(A);c[c.length-1]=j,o=o.substring(0,o.length-F.raw.length)+j.raw,i=i.substring(0,i.length-F.text.length)+j.text;break}else if(T?.type==="list"){let F=T,A=F.raw+`
17
+ `+e.join(`
18
+ `),j=this.list(A);c[c.length-1]=j,o=o.substring(0,o.length-T.raw.length)+j.raw,i=i.substring(0,i.length-F.raw.length)+j.raw,e=A.substring(c.at(-1).raw.length).split(`
19
+ `);continue}}return{type:"blockquote",raw:o,tokens:c,text:i}}}list(n){let t=this.rules.block.list.exec(n);if(t){let e=t[1].trim(),o=e.length>1,i={type:"list",raw:"",ordered:o,start:o?+e.slice(0,-1):"",loose:!1,items:[]};e=o?`\\d{1,9}\\${e.slice(-1)}`:`\\${e}`,this.options.pedantic&&(e=o?e:"[*+-]");let c=this.rules.other.listItemRegex(e),d=!1;for(;n;){let g=!1,k="",h="";if(!(t=c.exec(n))||this.rules.block.hr.test(n))break;k=t[0],n=n.substring(k.length);let E=Cn(t[2].split(`
20
+ `,1)[0],t[1].length),T=n.split(`
21
+ `,1)[0],F=!E.trim(),A=0;if(this.options.pedantic?(A=2,h=E.trimStart()):F?A=t[1].length+1:(A=E.search(this.rules.other.nonSpaceChar),A=A>4?1:A,h=E.slice(A),A+=t[1].length),F&&this.rules.other.blankLine.test(T)&&(k+=T+`
22
+ `,n=n.substring(T.length+1),g=!0),!g){let j=this.rules.other.nextBulletRegex(A),We=this.rules.other.hrRegex(A),Ke=this.rules.other.fencesBeginRegex(A),Ne=this.rules.other.headingBeginRegex(A),Vt=this.rules.other.htmlBeginRegex(A),zt=this.rules.other.blockquoteBeginRegex(A);for(;n;){let we=n.split(`
23
+ `,1)[0],ae;if(T=we,this.options.pedantic?(T=T.replace(this.rules.other.listReplaceNesting," "),ae=T):ae=T.replace(this.rules.other.tabCharGlobal," "),Ke.test(T)||Ne.test(T)||Vt.test(T)||zt.test(T)||j.test(T)||We.test(T))break;if(ae.search(this.rules.other.nonSpaceChar)>=A||!T.trim())h+=`
24
+ `+ae.slice(A);else{if(F||E.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||Ke.test(E)||Ne.test(E)||We.test(E))break;h+=`
25
+ `+T}F=!T.trim(),k+=we+`
26
+ `,n=n.substring(we.length+1),E=ae.slice(A)}}i.loose||(d?i.loose=!0:this.rules.other.doubleBlankLine.test(k)&&(d=!0)),i.items.push({type:"list_item",raw:k,task:!!this.options.gfm&&this.rules.other.listIsTask.test(h),loose:!1,text:h,tokens:[]}),i.raw+=k}let x=i.items.at(-1);if(x)x.raw=x.raw.trimEnd(),x.text=x.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let g of i.items){if(this.lexer.state.top=!1,g.tokens=this.lexer.blockTokens(g.text,[]),g.task){if(g.text=g.text.replace(this.rules.other.listReplaceTask,""),g.tokens[0]?.type==="text"||g.tokens[0]?.type==="paragraph"){g.tokens[0].raw=g.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),g.tokens[0].text=g.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}}let k=this.rules.other.listTaskCheckbox.exec(g.raw);if(k){let h={type:"checkbox",raw:k[0]+" ",checked:k[0]!=="[ ]"};g.checked=h.checked,i.loose?g.tokens[0]&&["paragraph","text"].includes(g.tokens[0].type)&&"tokens"in g.tokens[0]&&g.tokens[0].tokens?(g.tokens[0].raw=h.raw+g.tokens[0].raw,g.tokens[0].text=h.raw+g.tokens[0].text,g.tokens[0].tokens.unshift(h)):g.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):g.tokens.unshift(h)}}if(!i.loose){let k=g.tokens.filter(E=>E.type==="space"),h=k.length>0&&k.some(E=>this.rules.other.anyLine.test(E.raw));i.loose=h}}if(i.loose)for(let g of i.items){g.loose=!0;for(let k of g.tokens)k.type==="text"&&(k.type="paragraph")}return i}}html(n){let t=this.rules.block.html.exec(n);if(t){let e=ht(t[0]);return{type:"html",block:!0,raw:e,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:e}}}def(n){let t=this.rules.block.def.exec(n);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),o=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:Y(t[0],`
27
+ `),href:o,title:i}}}table(n){let t=this.rules.block.table.exec(n);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let e=xt(t[1]),o=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
28
+ `):[],c={type:"table",raw:Y(t[0],`
29
+ `),header:[],align:[],rows:[]};if(e.length===o.length){for(let d of o)this.rules.other.tableAlignRight.test(d)?c.align.push("right"):this.rules.other.tableAlignCenter.test(d)?c.align.push("center"):this.rules.other.tableAlignLeft.test(d)?c.align.push("left"):c.align.push(null);for(let d=0;d<e.length;d++)c.header.push({text:e[d],tokens:this.lexer.inline(e[d]),header:!0,align:c.align[d]});for(let d of i)c.rows.push(xt(d,c.header.length).map((x,g)=>({text:x,tokens:this.lexer.inline(x),header:!1,align:c.align[g]})));return c}}lheading(n){let t=this.rules.block.lheading.exec(n);if(t){let e=t[1].trim();return{type:"heading",raw:Y(t[0],`
30
+ `),depth:t[2].charAt(0)==="="?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(n){let t=this.rules.block.paragraph.exec(n);if(t){let e=t[1].charAt(t[1].length-1)===`
31
+ `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(n){let t=this.rules.block.text.exec(n);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(n){let t=this.rules.inline.escape.exec(n);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(n){let t=this.rules.inline.tag.exec(n);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(n){let t=this.rules.inline.link.exec(n);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let c=Y(e.slice(0,-1),"\\");if((e.length-c.length)%2===0)return}else{let c=kn(t[2],"()");if(c===-2)return;if(c>-1){let d=(t[0].indexOf("!")===0?5:4)+t[1].length+c;t[2]=t[2].substring(0,c),t[0]=t[0].substring(0,d).trim(),t[3]=""}}let o=t[2],i="";if(this.options.pedantic){let c=this.rules.other.pedanticHrefTitle.exec(o);c&&(o=c[1],i=c[3])}else i=t[3]?t[3].slice(1,-1):"";return o=o.trim(),this.rules.other.startAngleBracket.test(o)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?o=o.slice(1):o=o.slice(1,-1)),ft(t,{href:o&&o.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(n,t){let e;if((e=this.rules.inline.reflink.exec(n))||(e=this.rules.inline.nolink.exec(n))){let o=(e[2]||e[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[o.toLowerCase()];if(!i){let c=e[0].charAt(0);return{type:"text",raw:c,text:c}}return ft(e,i,e[0],this.lexer,this.rules)}}emStrong(n,t,e=""){let o=this.rules.inline.emStrongLDelim.exec(n);if(!(!o||!o[1]&&!o[2]&&!o[3]&&!o[4]||o[4]&&e.match(this.rules.other.unicodeAlphaNumeric))&&(!(o[1]||o[3])||!e||this.rules.inline.punctuation.exec(e))){let i=[...o[0]].length-1,c,d,x=i,g=0,k=o[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(k.lastIndex=0,t=t.slice(-1*n.length+i);(o=k.exec(t))!==null;){if(c=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!c)continue;if(d=[...c].length,o[3]||o[4]){x+=d;continue}else if((o[5]||o[6])&&i%3&&!((i+d)%3)){g+=d;continue}if(x-=d,x>0)continue;d=Math.min(d,d+x+g);let h=[...o[0]][0].length,E=n.slice(0,i+o.index+h+d);if(Math.min(i,d)%2){let F=E.slice(1,-1);return{type:"em",raw:E,text:F,tokens:this.lexer.inlineTokens(F)}}let T=E.slice(2,-2);return{type:"strong",raw:E,text:T,tokens:this.lexer.inlineTokens(T)}}}}codespan(n){let t=this.rules.inline.code.exec(n);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),o=this.rules.other.nonSpaceChar.test(e),i=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return o&&i&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(n){let t=this.rules.inline.br.exec(n);if(t)return{type:"br",raw:t[0]}}del(n,t,e=""){let o=this.rules.inline.delLDelim.exec(n);if(o&&(!o[1]||!e||this.rules.inline.punctuation.exec(e))){let i=[...o[0]].length-1,c,d,x=i,g=this.rules.inline.delRDelim;for(g.lastIndex=0,t=t.slice(-1*n.length+i);(o=g.exec(t))!==null;){if(c=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!c||(d=[...c].length,d!==i))continue;if(o[3]||o[4]){x+=d;continue}if(x-=d,x>0)continue;d=Math.min(d,d+x);let k=[...o[0]][0].length,h=n.slice(0,i+o.index+k+d),E=h.slice(i,-i);return{type:"del",raw:h,text:E,tokens:this.lexer.inlineTokens(E)}}}}autolink(n){let t=this.rules.inline.autolink.exec(n);if(t){let e,o;return t[2]==="@"?(e=t[1],o="mailto:"+e):(e=t[1],o=e),{type:"link",raw:t[0],text:e,href:o,tokens:[{type:"text",raw:e,text:e}]}}}url(n){let t;if(t=this.rules.inline.url.exec(n)){let e,o;if(t[2]==="@")e=t[0],o="mailto:"+e;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);e=t[0],t[1]==="www."?o="http://"+t[0]:o=t[0]}return{type:"link",raw:t[0],text:e,href:o,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(n){let t=this.rules.inline.text.exec(n);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},W=class Re{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||J,this.options.tokenizer=this.options.tokenizer||new xe,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 e={other:P,block:ue.normal,inline:se.normal};this.options.pedantic?(e.block=ue.pedantic,e.inline=se.pedantic):this.options.gfm&&(e.block=ue.gfm,this.options.breaks?e.inline=se.breaks:e.inline=se.gfm),this.tokenizer.rules=e}static get rules(){return{block:ue,inline:se}}static lex(t,e){return new Re(e).lex(t)}static lexInline(t,e){return new Re(e).inlineTokens(t)}lex(t){t=t.replace(P.carriageReturn,`
32
+ `),this.blockTokens(t,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let o=this.inlineQueue[e];this.inlineTokens(o.src,o.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,e=[],o=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(P.tabCharGlobal," ").replace(P.spaceLine,""));t;){let i;if(this.options.extensions?.block?.some(d=>(i=d.call({lexer:this},t,e))?(t=t.substring(i.raw.length),e.push(i),!0):!1))continue;if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length);let d=e.at(-1);i.raw.length===1&&d!==void 0?d.raw+=`
33
+ `:e.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length);let d=e.at(-1);d?.type==="paragraph"||d?.type==="text"?(d.raw+=(d.raw.endsWith(`
34
+ `)?"":`
35
+ `)+i.raw,d.text+=`
36
+ `+i.text,this.inlineQueue.at(-1).src=d.text):e.push(i);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length);let d=e.at(-1);d?.type==="paragraph"||d?.type==="text"?(d.raw+=(d.raw.endsWith(`
37
+ `)?"":`
38
+ `)+i.raw,d.text+=`
39
+ `+i.raw,this.inlineQueue.at(-1).src=d.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},e.push(i));continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),e.push(i);continue}let c=t;if(this.options.extensions?.startBlock){let d=1/0,x=t.slice(1),g;this.options.extensions.startBlock.forEach(k=>{g=k.call({lexer:this},x),typeof g=="number"&&g>=0&&(d=Math.min(d,g))}),d<1/0&&d>=0&&(c=t.substring(0,d+1))}if(this.state.top&&(i=this.tokenizer.paragraph(c))){let d=e.at(-1);o&&d?.type==="paragraph"?(d.raw+=(d.raw.endsWith(`
40
+ `)?"":`
41
+ `)+i.raw,d.text+=`
42
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=d.text):e.push(i),o=c.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length);let d=e.at(-1);d?.type==="text"?(d.raw+=(d.raw.endsWith(`
43
+ `)?"":`
44
+ `)+i.raw,d.text+=`
45
+ `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=d.text):e.push(i);continue}if(t){let d="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(d);break}else throw new Error(d)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){this.tokenizer.lexer=this;let o=t,i=null;if(this.tokens.links){let g=Object.keys(this.tokens.links);if(g.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(o))!==null;)g.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(o=o.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(o))!==null;)o=o.slice(0,i.index)+"++"+o.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let c;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(o))!==null;)c=i[2]?i[2].length:0,o=o.slice(0,i.index+c)+"["+"a".repeat(i[0].length-c-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);o=this.options.hooks?.emStrongMask?.call({lexer:this},o)??o;let d=!1,x="";for(;t;){d||(x=""),d=!1;let g;if(this.options.extensions?.inline?.some(h=>(g=h.call({lexer:this},t,e))?(t=t.substring(g.raw.length),e.push(g),!0):!1))continue;if(g=this.tokenizer.escape(t)){t=t.substring(g.raw.length),e.push(g);continue}if(g=this.tokenizer.tag(t)){t=t.substring(g.raw.length),e.push(g);continue}if(g=this.tokenizer.link(t)){t=t.substring(g.raw.length),e.push(g);continue}if(g=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(g.raw.length);let h=e.at(-1);g.type==="text"&&h?.type==="text"?(h.raw+=g.raw,h.text+=g.text):e.push(g);continue}if(g=this.tokenizer.emStrong(t,o,x)){t=t.substring(g.raw.length),e.push(g);continue}if(g=this.tokenizer.codespan(t)){t=t.substring(g.raw.length),e.push(g);continue}if(g=this.tokenizer.br(t)){t=t.substring(g.raw.length),e.push(g);continue}if(g=this.tokenizer.del(t,o,x)){t=t.substring(g.raw.length),e.push(g);continue}if(g=this.tokenizer.autolink(t)){t=t.substring(g.raw.length),e.push(g);continue}if(!this.state.inLink&&(g=this.tokenizer.url(t))){t=t.substring(g.raw.length),e.push(g);continue}let k=t;if(this.options.extensions?.startInline){let h=1/0,E=t.slice(1),T;this.options.extensions.startInline.forEach(F=>{T=F.call({lexer:this},E),typeof T=="number"&&T>=0&&(h=Math.min(h,T))}),h<1/0&&h>=0&&(k=t.substring(0,h+1))}if(g=this.tokenizer.inlineText(k)){t=t.substring(g.raw.length),g.raw.slice(-1)!=="_"&&(x=g.raw.slice(-1)),d=!0;let h=e.at(-1);h?.type==="text"?(h.raw+=g.raw,h.text+=g.text):e.push(g);continue}if(t){let h="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(h);break}else throw new Error(h)}}return e}},he=class{options;parser;constructor(n){this.options=n||J}space(n){return""}code({text:n,lang:t,escaped:e}){let o=(t||"").match(P.notSpaceStart)?.[0],i=n.replace(P.endingNewline,"")+`
46
+ `;return o?'<pre><code class="language-'+N(o)+'">'+(e?i:N(i,!0))+`</code></pre>
47
+ `:"<pre><code>"+(e?i:N(i,!0))+`</code></pre>
48
+ `}blockquote({tokens:n}){return`<blockquote>
49
+ ${this.parser.parse(n)}</blockquote>
50
+ `}html({text:n}){return n}def(n){return""}heading({tokens:n,depth:t}){return`<h${t}>${this.parser.parseInline(n)}</h${t}>
51
+ `}hr(n){return`<hr>
52
+ `}list(n){let t=n.ordered,e=n.start,o="";for(let d=0;d<n.items.length;d++){let x=n.items[d];o+=this.listitem(x)}let i=t?"ol":"ul",c=t&&e!==1?' start="'+e+'"':"";return"<"+i+c+`>
53
+ `+o+"</"+i+`>
54
+ `}listitem(n){return`<li>${this.parser.parse(n.tokens)}</li>
55
+ `}checkbox({checked:n}){return"<input "+(n?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:n}){return`<p>${this.parser.parseInline(n)}</p>
56
+ `}table(n){let t="",e="";for(let i=0;i<n.header.length;i++)e+=this.tablecell(n.header[i]);t+=this.tablerow({text:e});let o="";for(let i=0;i<n.rows.length;i++){let c=n.rows[i];e="";for(let d=0;d<c.length;d++)e+=this.tablecell(c[d]);o+=this.tablerow({text:e})}return o&&(o=`<tbody>${o}</tbody>`),`<table>
57
+ <thead>
58
+ `+t+`</thead>
59
+ `+o+`</table>
60
+ `}tablerow({text:n}){return`<tr>
61
+ ${n}</tr>
62
+ `}tablecell(n){let t=this.parser.parseInline(n.tokens),e=n.header?"th":"td";return(n.align?`<${e} align="${n.align}">`:`<${e}>`)+t+`</${e}>
63
+ `}strong({tokens:n}){return`<strong>${this.parser.parseInline(n)}</strong>`}em({tokens:n}){return`<em>${this.parser.parseInline(n)}</em>`}codespan({text:n}){return`<code>${N(n,!0)}</code>`}br(n){return"<br>"}del({tokens:n}){return`<del>${this.parser.parseInline(n)}</del>`}link({href:n,title:t,tokens:e}){let o=this.parser.parseInline(e),i=_t(n);if(i===null)return o;n=i;let c='<a href="'+n+'"';return t&&(c+=' title="'+N(t)+'"'),c+=">"+o+"</a>",c}image({href:n,title:t,text:e,tokens:o}){o&&(e=this.parser.parseInline(o,this.parser.textRenderer));let i=_t(n);if(i===null)return N(e);n=i;let c=`<img src="${n}" alt="${N(e)}"`;return t&&(c+=` title="${N(t)}"`),c+=">",c}text(n){return"tokens"in n&&n.tokens?this.parser.parseInline(n.tokens):"escaped"in n&&n.escaped?n.text:N(n.text)}},$e=class{strong({text:n}){return n}em({text:n}){return n}codespan({text:n}){return n}del({text:n}){return n}html({text:n}){return n}text({text:n}){return n}link({text:n}){return""+n}image({text:n}){return""+n}br(){return""}checkbox({raw:n}){return n}},K=class Me{options;renderer;textRenderer;constructor(t){this.options=t||J,this.options.renderer=this.options.renderer||new he,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new $e}static parse(t,e){return new Me(e).parse(t)}static parseInline(t,e){return new Me(e).parseInline(t)}parse(t){this.renderer.parser=this;let e="";for(let o=0;o<t.length;o++){let i=t[o];if(this.options.extensions?.renderers?.[i.type]){let d=i,x=this.options.extensions.renderers[d.type].call({parser:this},d);if(x!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(d.type)){e+=x||"";continue}}let c=i;switch(c.type){case"space":{e+=this.renderer.space(c);break}case"hr":{e+=this.renderer.hr(c);break}case"heading":{e+=this.renderer.heading(c);break}case"code":{e+=this.renderer.code(c);break}case"table":{e+=this.renderer.table(c);break}case"blockquote":{e+=this.renderer.blockquote(c);break}case"list":{e+=this.renderer.list(c);break}case"checkbox":{e+=this.renderer.checkbox(c);break}case"html":{e+=this.renderer.html(c);break}case"def":{e+=this.renderer.def(c);break}case"paragraph":{e+=this.renderer.paragraph(c);break}case"text":{e+=this.renderer.text(c);break}default:{let d='Token with "'+c.type+'" type was not found.';if(this.options.silent)return console.error(d),"";throw new Error(d)}}}return e}parseInline(t,e=this.renderer){this.renderer.parser=this;let o="";for(let i=0;i<t.length;i++){let c=t[i];if(this.options.extensions?.renderers?.[c.type]){let x=this.options.extensions.renderers[c.type].call({parser:this},c);if(x!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(c.type)){o+=x||"";continue}}let d=c;switch(d.type){case"escape":{o+=e.text(d);break}case"html":{o+=e.html(d);break}case"link":{o+=e.link(d);break}case"image":{o+=e.image(d);break}case"checkbox":{o+=e.checkbox(d);break}case"strong":{o+=e.strong(d);break}case"em":{o+=e.em(d);break}case"codespan":{o+=e.codespan(d);break}case"br":{o+=e.br(d);break}case"del":{o+=e.del(d);break}case"text":{o+=e.text(d);break}default:{let x='Token with "'+d.type+'" type was not found.';if(this.options.silent)return console.error(x),"";throw new Error(x)}}}return o}},ce=class{options;block;constructor(n){this.options=n||J}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(n){return n}postprocess(n){return n}processAllTokens(n){return n}emStrongMask(n){return n}provideLexer(n=this.block){return n?W.lex:W.lexInline}provideParser(n=this.block){return n?K.parse:K.parseInline}},yn=class{defaults=Ae();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=K;Renderer=he;TextRenderer=$e;Lexer=W;Tokenizer=xe;Hooks=ce;constructor(...n){this.use(...n)}walkTokens(n,t){let e=[];for(let o of n)switch(e=e.concat(t.call(this,o)),o.type){case"table":{let i=o;for(let c of i.header)e=e.concat(this.walkTokens(c.tokens,t));for(let c of i.rows)for(let d of c)e=e.concat(this.walkTokens(d.tokens,t));break}case"list":{let i=o;e=e.concat(this.walkTokens(i.items,t));break}default:{let i=o;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(c=>{let d=i[c].flat(1/0);e=e.concat(this.walkTokens(d,t))}):i.tokens&&(e=e.concat(this.walkTokens(i.tokens,t)))}}return e}use(...n){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return n.forEach(e=>{let o=z({},e);if(o.async=this.defaults.async||o.async||!1,e.extensions&&(e.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let c=t.renderers[i.name];c?t.renderers[i.name]=function(...d){let x=i.renderer.apply(this,d);return x===!1&&(x=c.apply(this,d)),x}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let c=t[i.level];c?c.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),o.extensions=t),e.renderer){let i=this.defaults.renderer||new he(this.defaults);for(let c in e.renderer){if(!(c in i))throw new Error(`renderer '${c}' does not exist`);if(["options","parser"].includes(c))continue;let d=c,x=e.renderer[d],g=i[d];i[d]=(...k)=>{let h=x.apply(i,k);return h===!1&&(h=g.apply(i,k)),h||""}}o.renderer=i}if(e.tokenizer){let i=this.defaults.tokenizer||new xe(this.defaults);for(let c in e.tokenizer){if(!(c in i))throw new Error(`tokenizer '${c}' does not exist`);if(["options","rules","lexer"].includes(c))continue;let d=c,x=e.tokenizer[d],g=i[d];i[d]=(...k)=>{let h=x.apply(i,k);return h===!1&&(h=g.apply(i,k)),h}}o.tokenizer=i}if(e.hooks){let i=this.defaults.hooks||new ce;for(let c in e.hooks){if(!(c in i))throw new Error(`hook '${c}' does not exist`);if(["options","block"].includes(c))continue;let d=c,x=e.hooks[d],g=i[d];ce.passThroughHooks.has(c)?i[d]=k=>{if(this.defaults.async&&ce.passThroughHooksRespectAsync.has(c))return(async()=>{let E=await x.call(i,k);return g.call(i,E)})();let h=x.call(i,k);return g.call(i,h)}:i[d]=(...k)=>{if(this.defaults.async)return(async()=>{let E=await x.apply(i,k);return E===!1&&(E=await g.apply(i,k)),E})();let h=x.apply(i,k);return h===!1&&(h=g.apply(i,k)),h}}o.hooks=i}if(e.walkTokens){let i=this.defaults.walkTokens,c=e.walkTokens;o.walkTokens=function(d){let x=[];return x.push(c.call(this,d)),i&&(x=x.concat(i.call(this,d))),x}}this.defaults=z(z({},this.defaults),o)}),this}setOptions(n){return this.defaults=z(z({},this.defaults),n),this}lexer(n,t){return W.lex(n,t??this.defaults)}parser(n,t){return K.parse(n,t??this.defaults)}parseMarkdown(n){return(t,e)=>{let o=z({},e),i=z(z({},this.defaults),o),c=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&o.async===!1)return c(new 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 t>"u"||t===null)return c(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return c(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=n),i.async)return(async()=>{let d=i.hooks?await i.hooks.preprocess(t):t,x=await(i.hooks?await i.hooks.provideLexer(n):n?W.lex:W.lexInline)(d,i),g=i.hooks?await i.hooks.processAllTokens(x):x;i.walkTokens&&await Promise.all(this.walkTokens(g,i.walkTokens));let k=await(i.hooks?await i.hooks.provideParser(n):n?K.parse:K.parseInline)(g,i);return i.hooks?await i.hooks.postprocess(k):k})().catch(c);try{i.hooks&&(t=i.hooks.preprocess(t));let d=(i.hooks?i.hooks.provideLexer(n):n?W.lex:W.lexInline)(t,i);i.hooks&&(d=i.hooks.processAllTokens(d)),i.walkTokens&&this.walkTokens(d,i.walkTokens);let x=(i.hooks?i.hooks.provideParser(n):n?K.parse:K.parseInline)(d,i);return i.hooks&&(x=i.hooks.postprocess(x)),x}catch(d){return c(d)}}}onError(n,t){return e=>{if(e.message+=`
64
+ Please report this to https://github.com/markedjs/marked.`,n){let o="<p>An error occurred:</p><pre>"+N(e.message+"",!0)+"</pre>";return t?Promise.resolve(o):o}if(t)return Promise.reject(e);throw e}}},X=new yn;function R(n,t){return X.parse(n,t)}R.options=R.setOptions=function(n){return X.setOptions(n),R.defaults=X.defaults,bt(R.defaults),R};R.getDefaults=Ae;R.defaults=J;R.use=function(...n){return X.use(...n),R.defaults=X.defaults,bt(R.defaults),R};R.walkTokens=function(n,t){return X.walkTokens(n,t)};R.parseInline=X.parseInline;R.Parser=K;R.parser=K.parse;R.Renderer=he;R.TextRenderer=$e;R.Lexer=W;R.lexer=W.lex;R.Tokenizer=xe;R.Hooks=ce;R.parse=R;var Uo=R.options,Ho=R.setOptions,qo=R.use,Zo=R.walkTokens,Yo=R.parseInline;var Qo=K.parse,Xo=W.lex;var M="/api/blog",ke=class n{constructor(){this.http=G(me)}list(t){return this.http.get(`${M}/projects/${t}/strategies`)}create(t,e){return this.http.post(`${M}/projects/${t}/strategies`,e)}get(t){return this.http.get(`${M}/strategies/${t}`)}update(t,e){return this.http.patch(`${M}/strategies/${t}`,e)}delete(t){return this.http.delete(`${M}/strategies/${t}`)}start(t){return this.http.post(`${M}/strategies/${t}/start`,{})}updateTopicSelection(t,e){return this.http.patch(`${M}/strategies/${t}/steps/topic-selection`,e)}updateSeoResearch(t,e){return this.http.patch(`${M}/strategies/${t}/steps/seo-research`,e)}generateSeoRecommendation(t){return this.http.post(`${M}/strategies/${t}/steps/seo-research/recommend`,{})}addSeoResearchLink(t,e){return this.http.post(`${M}/strategies/${t}/steps/seo-research/links`,e)}removeSeoResearchLink(t,e){return this.http.delete(`${M}/strategies/${t}/steps/seo-research/links/${e}`)}generateContentOutline(t){return this.http.post(`${M}/strategies/${t}/steps/content-outline/generate`,{})}updateContentOutline(t,e){return this.http.patch(`${M}/strategies/${t}/steps/content-outline`,e)}generateDraft(t,e=3e3,o=0){return this.http.post(`${M}/strategies/${t}/steps/draft-writing/generate`,{maxOutputTokens:e,thinkingBudget:o})}updateDraftContent(t,e){return this.http.patch(`${M}/strategies/${t}/steps/draft-writing`,e)}uploadVisualAsset(t,e){let o=new FormData;return o.append("file",e),this.http.post(`${M}/strategies/${t}/steps/visual-assets/upload`,o)}generateVisualAsset(t,e){return this.http.post(`${M}/strategies/${t}/steps/visual-assets/generate`,{prompt:e})}deleteVisualAsset(t,e){return this.http.delete(`${M}/strategies/${t}/steps/visual-assets/${e}`)}updateSeoMetadata(t,e){return this.http.patch(`${M}/strategies/${t}/steps/seo-metadata`,e)}updateInternalReview(t,e){return this.http.patch(`${M}/strategies/${t}/steps/internal-review`,e)}updatePublishing(t,e){return this.http.patch(`${M}/strategies/${t}/steps/publishing`,e)}updatePromotion(t,e){return this.http.patch(`${M}/strategies/${t}/steps/promotion`,e)}crawlPublishedUrl(t){return this.http.post(`${M}/strategies/${t}/steps/performance-tracking/crawl`,{})}completeStep(t,e){return this.http.post(`${M}/strategies/${t}/steps/${e}/complete`,{})}startRecommendation(t,e){return this.http.post(`${M}/projects/${t}/strategies/recommendations`,e)}listRecommendations(t,e){return this.http.get(`${M}/projects/${t}/strategies/recommendations`,{params:{campaign:e}})}static{this.\u0275fac=function(e){return new(e||n)}}static{this.\u0275prov=de({token:n,factory:n.\u0275fac,providedIn:"root"})}};var $={link:"\u{1F517}",image:"\u{1F5BC}\uFE0F",video:"\u{1F3A5}",audio:"\u{1F3B5}",pdf:"\u{1F4C4}",word:"\u{1F4DD}",excel:"\u{1F4CA}",psd:"\u{1F3A8}",apk:"\u{1F4F1}","google-doc":"\u{1F4C3}","notion-doc":"\u{1F4D3}",facebook:"\u{1F4D8}",instagram:"\u{1F4F8}",youtube:"\u{1F3AC}","google-ads":"\u{1F4E2}","google-drive":"\u{1F4C2}","google-sheet":"\u{1F9EE}","google-analytics":"\u{1F4C8}",slack:"\u{1F4AC}",readdy:"\u{1F516}"},Mt=class n{constructor(){this.http=G(me)}listStrategies(t){return this.http.get(`/api/lego/projects/${t}/strategies`)}createStrategy(t,e){return this.http.post(`/api/lego/projects/${t}/strategies`,e)}getStrategy(t){return this.http.get(`/api/lego/strategies/${t}`)}updateStrategy(t,e){return this.http.put(`/api/lego/strategies/${t}`,e)}deleteStrategy(t){return this.http.delete(`/api/lego/strategies/${t}`)}startStrategy(t){return this.http.post(`/api/lego/strategies/${t}/start`,{})}createStep(t,e){return this.http.post(`/api/lego/strategies/${t}/steps`,e)}updateStep(t,e){return this.http.put(`/api/lego/steps/${t}`,e)}deleteStep(t){return this.http.delete(`/api/lego/steps/${t}`)}reorderSteps(t,e){return this.http.put(`/api/lego/strategies/${t}/steps/reorder`,{order:e})}createTask(t,e){return this.http.post(`/api/lego/steps/${t}/tasks`,e)}updateTask(t,e){return this.http.put(`/api/lego/tasks/${t}`,e)}deleteTask(t){return this.http.delete(`/api/lego/tasks/${t}`)}updateTaskStatus(t,e){return this.http.patch(`/api/lego/tasks/${t}/status`,{status:e})}addLink(t,e){return this.http.post(`/api/lego/tasks/${t}/attachments/link`,e)}uploadFile(t,e){let o=new FormData;return o.append("file",e),this.http.post(`/api/lego/tasks/${t}/attachments/upload`,o)}removeAttachment(t,e){return this.http.delete(`/api/lego/tasks/${t}/attachments/${e}`)}getOverviewSummary(t){return this.http.get(`/api/lego/projects/${t}/overview-summary`)}static{this.\u0275fac=function(e){return new(e||n)}}static{this.\u0275prov=de({token:n,factory:n.\u0275fac,providedIn:"root"})}};var vn=(n,t)=>t.key,Oe=(n,t)=>t._id,Sn=(n,t)=>t.value,Bn=(n,t)=>t.year+"-"+t.month;function Tn(n,t){n&1&&Z(0,"app-loading-spinner")}function En(n,t){if(n&1){let e=y();r(0,"button",19),f("click",function(){u(e);let i=p(2);return _(i.startStrategy())}),l(1),a()}if(n&2){let e=p(2);w("disabled",e.actionLoading()),s(),C(" ",e.actionLoading()?"\u23F3":"\u25B6 Start Strategy"," ")}}function Rn(n,t){n&1&&l(0," \u2713 ")}function Mn(n,t){if(n&1&&l(0),n&2){let e=p().$index;C(" ",e+1," ")}}function An(n,t){n&1&&(r(0,"span",25),l(1,"\u{1F512}"),a())}function In(n,t){if(n&1){let e=y();r(0,"button",20),f("click",function(){let i=u(e).$index,c=p(2);return _(c.setActiveStep(i))}),r(1,"div",21),b(2,Rn,1,0)(3,Mn,1,1),a(),r(4,"div",22)(5,"span",23),l(6),a(),r(7,"span",24),l(8),a()(),b(9,An,2,0,"span",25),a()}if(n&2){let e=t.$implicit,o=t.$index,i=p(2);O("bs-step--active",i.activeStep()===o)("bs-step--completed",i.stepStatus(e.key)==="completed")("bs-step--locked",i.isLocked(o)),s(),O("bs-step__circle--done",i.stepStatus(e.key)==="completed")("bs-step__circle--active",i.activeStep()===o&&i.stepStatus(e.key)!=="completed"),s(),m(i.stepStatus(e.key)==="completed"?2:3),s(4),S(e.name),s(2),S(i.stepStatusLabel(e.key)),s(),m(i.isLocked(o)?9:-1)}}function Dn(n,t){if(n&1&&(r(0,"p",17),l(1),a()),n&2){let e=p(2);s(),S(e.pageError())}}function Vn(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("topicSelection","topic-selection"))}),l(1," \u2713 Mark Complete "),a()}if(n&2){let e=p(3);w("disabled",e.saving()||!e.topicForm.topic.trim())}}function zn(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function Fn(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F4A1}"),a(),r(4,"div")(5,"h2",28),l(6,"Topic Selection"),a(),r(7,"p",29),l(8,"What is the blog post about? Be specific."),a()()(),r(9,"div",30)(10,"label",31),l(11,"Blog Topic *"),a(),r(12,"textarea",32),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.topicForm.topic,i)||(c.topicForm.topic=i),_(i)}),a(),r(13,"span",33),l(14),a()(),r(15,"div",34)(16,"button",35),f("click",function(){u(e);let i=p(2);return _(i.useTitleAsTopic())}),l(17," \u{1F4CB} Use post title as topic "),a()(),r(18,"div",36)(19,"button",37),f("click",function(){u(e);let i=p(2);return _(i.saveTopicSelection())}),l(20),a(),b(21,Vn,2,1,"button",38)(22,zn,2,0,"span",39),a()()}if(n&2){let e=p(2);s(12),I("ngModel",e.topicForm.topic),s(2),C("",e.topicForm.topic.length,"/500"),s(2),w("disabled",!e.strategy().name),s(3),w("disabled",e.saving()),s(),C(" ",e.saving()?"Saving\u2026":"Save"," "),s(),m(e.canComplete("topicSelection")?21:-1),s(),m(e.savedFeedback()?22:-1)}}function Ln(n,t){n&1&&(r(0,"div",41),l(1,"Loading keywords from planner\u2026"),a())}function Pn(n,t){if(n&1&&(r(0,"span",63),l(1),a()),n&2){let e=p(4);s(),C("",e.selectedKwIds().size," selected")}}function $n(n,t){n&1&&(r(0,"div",64),l(1,"No keywords in your Keyword Planner yet. Add one below."),a())}function On(n,t){if(n&1&&(r(0,"span",72),l(1),L(2,"number"),a()),n&2){let e=p().$implicit;s(),C("",ne(2,1,e.searchVolume)," / mo")}}function Wn(n,t){if(n&1&&(r(0,"span"),l(1),a()),n&2){let e=p().$implicit,o=p(5);Se("kw-item__comp kw-item__comp--",e.competition.toLowerCase(),""),s(),C(" ",o.competitionLabel(e.competition)," ")}}function Kn(n,t){if(n&1){let e=y();r(0,"div",68)(1,"label",69)(2,"input",70),f("change",function(){let i=u(e).$implicit,c=p(5);return _(c.toggleKw(i))}),a(),r(3,"span",71),l(4),a(),b(5,On,3,3,"span",72)(6,Wn,2,4,"span",73),a(),r(7,"button",74),f("click",function(){let i=u(e).$implicit,c=p(5);return _(c.openKwDetail(i))}),l(8,"\u2197"),a()()}if(n&2){let e=t.$implicit,o=p(5);O("kw-item--checked",o.selectedKwIds().has(e._id)),s(2),w("checked",o.selectedKwIds().has(e._id)),s(2),S(e.keyword),s(),m(e.searchVolume!==null?5:-1),s(),m(e.competition?6:-1)}}function Nn(n,t){if(n&1&&(r(0,"div",67),l(1),a()),n&2){let e=p(5);s(),C('No keywords match "',e.kwSearch,'"')}}function jn(n,t){if(n&1&&(r(0,"div",65),U(1,Kn,9,6,"div",66,Oe),b(3,Nn,2,1,"div",67),a()),n&2){let e=p(4);s(),H(e.filteredKws),s(2),m(e.filteredKws.length===0&&e.kwSearch?3:-1)}}function Gn(n,t){if(n&1){let e=y();r(0,"div",61)(1,"input",62),V("ngModelChange",function(i){u(e);let c=p(3);return D(c.kwSearch,i)||(c.kwSearch=i),_(i)}),a(),b(2,Pn,2,1,"span",63),a(),b(3,$n,2,0,"div",64)(4,jn,4,1,"div",65)}if(n&2){let e=p(3);s(),I("ngModel",e.kwSearch),s(),m(e.selectedKwIds().size>0?2:-1),s(),m(e.kwList().length===0?3:4)}}function Un(n,t){if(n&1){let e=y();r(0,"button",75),f("click",function(){u(e);let i=p(3);return _(i.kwAddOpen.set(!0))}),l(1," + Add keyword to planner "),a()}}function Hn(n,t){if(n&1&&(r(0,"span",79),l(1),a()),n&2){let e=p(4);s(),S(e.kwAddError())}}function qn(n,t){if(n&1){let e=y();r(0,"input",76),V("ngModelChange",function(i){u(e);let c=p(3);return D(c.kwNewText,i)||(c.kwNewText=i),_(i)}),f("keydown.enter",function(){u(e);let i=p(3);return _(i.addKwToPlanner())})("keydown.escape",function(){u(e);let i=p(3);return i.kwAddOpen.set(!1),_(i.kwNewText="")}),a(),r(1,"button",77),f("click",function(){u(e);let i=p(3);return _(i.addKwToPlanner())}),l(2),a(),r(3,"button",78),f("click",function(){u(e);let i=p(3);return i.kwAddOpen.set(!1),_(i.kwNewText="")}),l(4,"Cancel"),a(),b(5,Hn,2,1,"span",79)}if(n&2){let e=p(3);I("ngModel",e.kwNewText),s(),w("disabled",e.kwAdding()||!e.kwNewText.trim()),s(),C(" ",e.kwAdding()?"Adding\u2026":"Add"," "),s(3),m(e.kwAddError()?5:-1)}}function Zn(n,t){n&1&&l(0," \u23F3 Generating\u2026 ")}function Yn(n,t){if(n&1&&l(0),n&2){let e=p(3);ge(" Max reached (",e.SEO_REC_MAX_COUNT,"/",e.SEO_REC_MAX_COUNT,") ")}}function Qn(n,t){if(n&1&&l(0),n&2){let e=p(3);C(" \u23F1 Wait ",e.seoRecCooldownMins,"m ")}}function Xn(n,t){n&1&&l(0," \u2728 Generate SEO Strategy ")}function Jn(n,t){if(n&1&&(r(0,"span",46),l(1),a()),n&2){let e=p(3);s(),ge(" ",e.strategy().steps.seoResearch.seoRecommendationCount,"/",e.SEO_REC_MAX_COUNT," generations used ")}}function ei(n,t){if(n&1&&(r(0,"p",80),l(1),L(2,"date"),a()),n&2){let e=p(4);s(),C(" Generated ",q(2,1,e.strategy().steps.seoResearch.seoRecommendationGeneratedAt,"MMM d, y h:mm a")," ")}}function ti(n,t){if(n&1&&(r(0,"pre",84),l(1),a()),n&2){let e=p(5);s(),S(e.strategy().steps.seoResearch.seoRecommendationRaw)}}function ni(n,t){if(n&1){let e=y();r(0,"div",82)(1,"button",83),f("click",function(){u(e);let i=p(4);return _(i.seoRecRawVisible.set(!i.seoRecRawVisible()))}),l(2),a(),b(3,ti,2,1,"pre",84),a()}if(n&2){let e=p(4);s(2),C(" ",e.seoRecRawVisible()?"\u25BE":"\u25B8"," Raw Gemini response "),s(),m(e.seoRecRawVisible()?3:-1)}}function ii(n,t){if(n&1&&(r(0,"div",47),b(1,ei,3,4,"p",80),Z(2,"div",81),b(3,ni,4,2,"div",82),a()),n&2){let e=p(3);s(),m(e.strategy().steps.seoResearch.seoRecommendationGeneratedAt?1:-1),s(),w("innerHTML",e.renderMarkdown(e.strategy().steps.seoResearch.seoRecommendation),Ge),s(),m(e.strategy().steps.seoResearch.seoRecommendationRaw?3:-1)}}function oi(n,t){n&1&&(r(0,"div",48),l(1,' Click "Generate SEO Strategy" to get an AI-powered SEO strategy tailored to your blog title, topic, and keywords. '),a())}function ai(n,t){if(n&1){let e=y();r(0,"div",85)(1,"span",86),l(2),a(),r(3,"div",87)(4,"a",88),l(5),a(),r(6,"span",89),l(7),a()(),r(8,"button",90),f("click",function(){let i=u(e).$implicit,c=p(4);return _(c.removeSeoLink(i._id))}),l(9,"\u2715"),a()()}if(n&2){let e=t.$implicit,o=p(4);s(2),S(o.getLinkIcon(e.type)),s(2),w("href",e.url,re),s(),S(e.name),s(2),S(e.type),s(),w("disabled",o.saving())}}function ri(n,t){if(n&1&&(r(0,"div",50),U(1,ai,10,5,"div",85,Oe),a()),n&2){let e=p(3);s(),H(e.strategy().steps.seoResearch.links)}}function li(n,t){if(n&1){let e=y();r(0,"div",91),f("click",function(){u(e);let i=p(3);return _(i.linkTypeOpen.set(!1))}),a()}}function si(n,t){n&1&&(r(0,"span",95),l(1,"\u2713"),a())}function ci(n,t){if(n&1){let e=y();r(0,"button",93),f("click",function(){let i=u(e).$implicit,c=p(4);return _(c.selectLinkType(i.value))}),r(1,"span"),l(2),a(),r(3,"span",94),l(4),a(),b(5,si,2,0,"span",95),a()}if(n&2){let e=t.$implicit,o=p(4);O("selected",o.linkForm.type===e.value),s(2),S(e.icon),s(2),S(e.label),s(),m(o.linkForm.type===e.value?5:-1)}}function pi(n,t){if(n&1&&(r(0,"div",57),U(1,ci,6,5,"button",92,Sn),a()),n&2){let e=p(3);s(),H(e.linkTypeOptions)}}function di(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("seoResearch","seo-research"))}),l(1," \u2713 Mark Complete "),a()}if(n&2){let e=p(3);w("disabled",e.saving())}}function gi(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function mi(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F50D}"),a(),r(4,"div")(5,"h2",28),l(6,"Keyword & SEO Research"),a(),r(7,"p",29),l(8,"Select target keywords from the Keyword Planner and generate an AI SEO strategy."),a()()(),r(9,"div",30)(10,"label",31),l(11,"Target Keywords"),a(),b(12,Ln,2,0,"div",41)(13,Gn,5,3),r(14,"div",42),b(15,Un,2,0,"button",43)(16,qn,6,4),a()(),r(17,"div",30)(18,"label",31),l(19,"AI SEO Recommendation"),a(),r(20,"div",44)(21,"button",45),f("click",function(){u(e);let i=p(2);return _(i.generateSeoRec())}),b(22,Zn,1,0)(23,Yn,1,2)(24,Qn,1,1)(25,Xn,1,0),a(),b(26,Jn,2,2,"span",46),a(),b(27,ii,4,3,"div",47)(28,oi,2,0,"div",48),a(),r(29,"div",30)(30,"label",31),l(31,"Reference Links "),r(32,"span",49),l(33,"optional"),a()(),b(34,ri,3,0,"div",50),r(35,"div",51)(36,"div",52),b(37,li,1,0,"div",53),r(38,"button",54),f("click",function(){u(e);let i=p(2);return _(i.linkTypeOpen.set(!i.linkTypeOpen()))}),r(39,"span",55)(40,"span"),l(41),a(),r(42,"span"),l(43),a()(),r(44,"span",56),l(45,"\u25BE"),a()(),b(46,pi,3,0,"div",57),a(),r(47,"input",58),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.linkForm.name,i)||(c.linkForm.name=i),_(i)}),a(),r(48,"input",59),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.linkForm.url,i)||(c.linkForm.url=i),_(i)}),a(),r(49,"button",60),f("click",function(){u(e);let i=p(2);return _(i.addSeoLink())}),l(50," + Add Link "),a()()(),r(51,"div",36)(52,"button",37),f("click",function(){u(e);let i=p(2);return _(i.saveSeoResearch())}),l(53),a(),b(54,di,2,1,"button",38)(55,gi,2,0,"span",39),a()()}if(n&2){let e=p(2);s(12),m(e.kwLoading()?12:13),s(3),m(e.kwAddOpen()?16:15),s(6),w("disabled",e.generatingSeoRec()||e.seoRecMaxReached||e.seoRecCooldownMins>0),s(),m(e.generatingSeoRec()?22:e.seoRecMaxReached?23:e.seoRecCooldownMins>0?24:25),s(4),m(e.strategy().steps.seoResearch.seoRecommendationCount>0?26:-1),s(),m(e.strategy().steps.seoResearch.seoRecommendation?27:28),s(7),m(e.strategy().steps.seoResearch.links.length>0?34:-1),s(2),O("open",e.linkTypeOpen()),s(),m(e.linkTypeOpen()?37:-1),s(4),S(e.selectedLinkType().icon),s(2),S(e.selectedLinkType().label),s(),O("open",e.linkTypeOpen()),s(2),m(e.linkTypeOpen()?46:-1),s(),I("ngModel",e.linkForm.name),s(),I("ngModel",e.linkForm.url),s(),w("disabled",e.saving()||!e.linkForm.url.trim()),s(3),w("disabled",e.saving()),s(),C(" ",e.saving()?"Saving\u2026":"Save"," "),s(),m(e.canComplete("seoResearch")?54:-1),s(),m(e.savedFeedback()?55:-1)}}function ui(n,t){n&1&&l(0," \u23F3 Generating\u2026 ")}function _i(n,t){n&1&&l(0," \u2713 Outline Generated ")}function xi(n,t){n&1&&l(0," \u2728 Generate with Gemini ")}function hi(n,t){if(n&1&&(r(0,"span",97),l(1),L(2,"date"),a()),n&2){let e=p(3);s(),C(" Generated ",q(2,1,e.strategy().steps.contentOutline.outlineGeneratedAt,"MMM d, y h:mm a")," \xB7 You can still edit it below ")}}function fi(n,t){n&1&&(r(0,"span",98),l(1,"Uses blog title, topic, keywords & SEO strategy \xB7 Can only be generated once"),a())}function bi(n,t){if(n&1&&(r(0,"pre",84),l(1),a()),n&2){let e=p(4);s(),S(e.strategy().steps.contentOutline.outlineRaw)}}function ki(n,t){if(n&1){let e=y();r(0,"div",82)(1,"button",83),f("click",function(){u(e);let i=p(3);return _(i.outlineRawVisible.set(!i.outlineRawVisible()))}),l(2),a(),b(3,bi,2,1,"pre",84),a()}if(n&2){let e=p(3);s(2),C(" ",e.outlineRawVisible()?"\u25BE":"\u25B8"," Raw Gemini response "),s(),m(e.outlineRawVisible()?3:-1)}}function Ci(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("contentOutline","content-outline"))}),l(1," \u2713 Mark Complete "),a()}if(n&2){let e=p(3);w("disabled",e.saving()||!e.outlineForm.outline.trim())}}function wi(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function yi(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F4D1}"),a(),r(4,"div")(5,"h2",28),l(6,"Content Outline"),a(),r(7,"p",29),l(8,"Generate a structured outline with Gemini, or write one manually. The draft writing step will use this as its base."),a()()(),r(9,"div",96)(10,"button",19),f("click",function(){u(e);let i=p(2);return _(i.generateOutline())}),b(11,ui,1,0)(12,_i,1,0)(13,xi,1,0),a(),b(14,hi,3,4,"span",97)(15,fi,2,0,"span",98),a(),b(16,ki,4,2,"div",82),r(17,"div",30)(18,"label",31),l(19,"Outline"),a(),r(20,"textarea",99),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.outlineForm.outline,i)||(c.outlineForm.outline=i),_(i)}),a(),r(21,"span",33),l(22),a()(),r(23,"div",36)(24,"button",37),f("click",function(){u(e);let i=p(2);return _(i.saveContentOutline())}),l(25),a(),b(26,Ci,2,1,"button",38)(27,wi,2,0,"span",39),a()()}if(n&2){let e=p(2);s(10),w("disabled",e.generatingOutline()||e.saving()||!!e.strategy().steps.contentOutline.outlineGeneratedAt),s(),m(e.generatingOutline()?11:e.strategy().steps.contentOutline.outlineGeneratedAt?12:13),s(3),m(e.strategy().steps.contentOutline.outlineGeneratedAt?14:15),s(2),m(e.strategy().steps.contentOutline.outlineRaw?16:-1),s(4),I("ngModel",e.outlineForm.outline),s(2),C("",e.outlineForm.outline.length,"/10,000"),s(2),w("disabled",e.saving()),s(),C(" ",e.saving()?"Saving\u2026":"Save"," "),s(),m(e.canComplete("contentOutline")?26:-1),s(),m(e.savedFeedback()?27:-1)}}function vi(n,t){if(n&1){let e=y();r(0,"button",117),f("click",function(){u(e);let i=p(3);return _(i.thinkingWarnVisible.set(!0))}),l(1," \u{1F9E0} Thinking Budget "),r(2,"span",118),l(3,"EXPERIMENTAL"),a()(),r(4,"span",119),l(5,"off by default \xB7 recommended for most users"),a()}}function Si(n,t){if(n&1){let e=y();r(0,"div",120)(1,"span",121),l(2,"\u{1F9E0} Thinking Budget "),r(3,"span",122),l(4,"ON"),a()(),r(5,"input",123),f("ngModelChange",function(i){u(e);let c=p(3);return _(c.setThinkingBudget(i))}),a(),r(6,"span",124),l(7),a(),r(8,"button",125),f("click",function(){u(e);let i=p(3);return _(i.disableThinking())}),l(9,"\u2715 Turn off"),a()(),r(10,"div",126),l(11," \u26A1 Thinking tokens eat into your content budget. Shorter drafts are likely. You've been warned. "),a()}if(n&2){let e=p(3);s(5),w("ngModel",e.thinkingBudget())("max",e.thinkingBudgetMax()),s(2),C("/ ",e.thinkingBudgetMax()," max")}}function Bi(n,t){n&1&&(r(0,"div",109)(1,"p")(2,"strong"),l(3,"What are Max Output Tokens?"),a()(),r(4,"p"),l(5,"Tokens are the units Gemini uses to measure text. Roughly "),r(6,"strong"),l(7,"1 token \u2248 0.75 words"),a(),l(8,", so the default of "),r(9,"strong"),l(10,"3,000 tokens \u2248 ~2,250 words"),a(),l(11," \u2014 enough for a standard blog post."),a(),r(12,"ul")(13,"li")(14,"strong"),l(15,"Too low (e.g. 500\u20131,000)"),a(),l(16,": Content may be cut off mid-sentence."),a(),r(17,"li")(18,"strong"),l(19,"Too high (e.g. 10,000\u201320,000)"),a(),l(20,": May generate padding or repetition; slower response."),a(),r(21,"li")(22,"strong"),l(23,"Sweet spot"),a(),l(24,": 2,000\u20135,000 for most blog posts."),a()(),r(25,"p",127),l(26,"\u26A0\uFE0F Only adjust this if you know what you're doing. The default works for most use cases."),a()())}function Ti(n,t){if(n&1&&(r(0,"span",111),l(1),a()),n&2){let e=p(3);s(),C("",e.strategy().steps.draftWriting.generationCount,"/10 generations used")}}function Ei(n,t){if(n&1&&(r(0,"span",112),l(1),a()),n&2){let e=p(3);s(),C("\u23F1 Next generation in ",e.draftCooldown(),"")}}function Ri(n,t){if(n&1&&(r(0,"span",113),l(1),L(2,"date"),a()),n&2){let e=p(3);s(),C("Last generated ",q(2,1,e.strategy().steps.draftWriting.generatedAt,"MMM d, y h:mm a")," \xB7 Ready to generate again")}}function Mi(n,t){n&1&&(r(0,"span",114),l(1,"Uses blog title, topic, keywords, SEO strategy & outline \xB7 Max 10 generations, 15\u2011min cooldown"),a())}function Ai(n,t){if(n&1&&(r(0,"pre",84),l(1),a()),n&2){let e=p(4);s(),S(e.strategy().steps.draftWriting.draftRaw)}}function Ii(n,t){if(n&1){let e=y();r(0,"div",82)(1,"button",83),f("click",function(){u(e);let i=p(3);return _(i.draftRawVisible.set(!i.draftRawVisible()))}),l(2),a(),b(3,Ai,2,1,"pre",84),a()}if(n&2){let e=p(3);s(2),C(" ",e.draftRawVisible()?"\u25BE":"\u25B8"," Raw Gemini response "),s(),m(e.draftRawVisible()?3:-1)}}function Di(n,t){if(n&1&&(r(0,"span",33),l(1),a()),n&2){let e=p(3);s(),C("~",e.wordCount(e.draftForm.content)," words")}}function Vi(n,t){if(n&1){let e=y();r(0,"button",128),f("click",function(){u(e);let i=p(3);return _(i.copyDraftContent())}),l(1),a(),r(2,"button",37),f("click",function(){u(e);let i=p(3);return _(i.saveDraftContent())}),l(3),a()}if(n&2){let e=p(3);s(),C(" ",e.copySuccess()?"\u2713 Copied!":"\u{1F4CB} Copy"," "),s(),w("disabled",e.saving()),s(),C(" ",e.saving()?"Saving\u2026":"Save"," ")}}function zi(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("draftWriting","draft-writing"))}),l(1," \u2713 Mark Complete "),a()}if(n&2){let e=p(3);w("disabled",e.saving()||!e.draftForm.content.trim())}}function Fi(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function Li(n,t){if(n&1){let e=y();r(0,"div",129),f("click",function(){u(e);let i=p(3);return _(i.cancelThinking())}),r(1,"div",130),f("click",function(i){return u(e),_(i.stopPropagation())}),r(2,"div",131),l(3,"\u{1F9E0}"),a(),r(4,"h3",132),l(5," Wait, fr? \u{1F440} "),r(6,"span",118),l(7,"EXPERIMENTAL"),a()(),r(8,"div",133)(9,"p"),l(10,"You're about to enable "),r(11,"strong"),l(12,"Thinking Budget"),a(),l(13," \u2014 an advanced Gemini feature that lets the model "),r(14,"em"),l(15,"reason internally"),a(),l(16," before writing."),a(),r(17,"p"),l(18,"Here's the deal tho \u{1F447}"),a(),r(19,"ul")(20,"li"),l(21,"\u{1F525} Thinking tokens "),r(22,"strong"),l(23,"count against your Max Tokens limit"),a()(),r(24,"li"),l(25,"\u2702\uFE0F More thinking = "),r(26,"strong"),l(27,"less actual blog content"),a(),l(28," generated"),a(),r(29,"li"),l(30,"\u{1F4C9} For blog writing, thinking usually makes output "),r(31,"strong"),l(32,"worse, not better"),a()(),r(33,"li"),l(34,"\u{1F4B8} It won't magically improve your draft \u2014 Gemini writes blogs just fine without it"),a(),r(35,"li"),l(36,"\u{1F422} Responses will be "),r(37,"strong"),l(38,"noticeably slower"),a()()(),r(39,"p",134),l(40,"This is for power users who genuinely know what a thinking budget does. If you have to ask \u2014 you probably don't need it. \u{1FAE1}"),a()(),r(41,"label",135)(42,"input",136),f("ngModelChange",function(i){u(e);let c=p(3);return _(c.thinkingWarnChecked.set(i))}),a(),r(43,"span"),l(44,"yeah yeah I get it, let me try it anyway"),a()(),r(45,"div",137)(46,"button",138),f("click",function(){u(e);let i=p(3);return _(i.cancelThinking())}),l(47,"nah I'm good \u{1F645}"),a(),r(48,"button",139),f("click",function(){u(e);let i=p(3);return _(i.confirmThinking())}),l(49,"Enable Thinking \u{1F9E0}"),a()()()()}if(n&2){let e=p(3);s(42),w("ngModel",e.thinkingWarnChecked()),s(6),w("disabled",!e.thinkingWarnChecked())}}function Pi(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u270D\uFE0F"),a(),r(4,"div")(5,"h2",28),l(6,"Draft Writing"),a(),r(7,"p",29),l(8,"Generate content with Gemini or write manually. Requires topic and outline."),a()()(),r(9,"div",100)(10,"div",101)(11,"button",19),f("click",function(){u(e);let i=p(2);return _(i.generateDraft())}),l(12),a(),Z(13,"div",102),r(14,"div",103)(15,"span",104),l(16," Max tokens "),r(17,"button",105),f("click",function(){u(e);let i=p(2);return _(i.draftWikiVisible.set(!i.draftWikiVisible()))}),l(18,"?"),a()(),r(19,"input",106),f("ngModelChange",function(i){u(e);let c=p(2);return _(c.setDraftTokens(i))}),a(),r(20,"span",107),l(21),a()()(),r(22,"div",108),b(23,vi,6,0)(24,Si,12,3),a(),b(25,Bi,27,0,"div",109),r(26,"div",110),b(27,Ti,2,1,"span",111)(28,Ei,2,1,"span",112)(29,Ri,3,4,"span",113)(30,Mi,2,0,"span",114),a()(),b(31,Ii,4,2,"div",82),r(32,"div",30)(33,"label",31),l(34,"Blog Content"),a(),r(35,"textarea",115),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.draftForm.content,i)||(c.draftForm.content=i),_(i)}),a(),b(36,Di,2,1,"span",33),a(),r(37,"div",36),b(38,Vi,4,3)(39,zi,2,1,"button",38)(40,Fi,2,0,"span",39),a(),b(41,Li,50,2,"div",116),a()}if(n&2){let e,o=p(2);s(11),w("disabled",o.generating()||o.saving()||!!o.draftCooldown()),s(),C(" ",o.generating()?"\u23F3 Generating\u2026":"\u2728 Generate with Gemini"," "),s(7),w("ngModel",o.draftTokens()),s(2),C("\u2248 ",o.draftWordEstimate()," words"),s(2),m(o.thinkingEnabled()?24:23),s(2),m(o.draftWikiVisible()?25:-1),s(2),m(((e=o.strategy().steps.draftWriting.generationCount)!==null&&e!==void 0?e:0)>0?27:-1),s(),m(o.draftCooldown()?28:o.strategy().steps.draftWriting.generatedAt?29:30),s(3),m(o.strategy().steps.draftWriting.draftRaw?31:-1),s(4),I("ngModel",o.draftForm.content),s(),m(o.draftForm.content?36:-1),s(2),m(o.draftForm.content?38:-1),s(),m(o.canComplete("draftWriting")?39:-1),s(),m(o.savedFeedback()?40:-1),s(),m(o.thinkingWarnVisible()?41:-1)}}function $i(n,t){if(n&1){let e=y();r(0,"div",143)(1,"div",30)(2,"label",31),l(3,"Image Prompt"),a(),r(4,"textarea",146),V("ngModelChange",function(i){u(e);let c=p(3);return D(c.imagePromptText,i)||(c.imagePromptText=i),_(i)}),a()(),r(5,"div",147)(6,"button",148),f("click",function(){u(e);let i=p(3);return _(i.showImagePrompt.set(!1))}),l(7,"Cancel"),a(),r(8,"button",19),f("click",function(){u(e);let i=p(3);return _(i.generateImage())}),l(9),a()()()}if(n&2){let e=p(3);s(4),I("ngModel",e.imagePromptText),s(4),w("disabled",e.generatingImage()||!e.imagePromptText.trim()),s(),C(" ",e.generatingImage()?"\u23F3 Generating\u2026":"\u2728 Generate"," ")}}function Oi(n,t){n&1&&(r(0,"span",157),l(1,"\u2728 AI"),a())}function Wi(n,t){if(n&1){let e=y();r(0,"div",149)(1,"div",150),Z(2,"img",151),r(3,"div",152)(4,"a",153),l(5,"\u2197"),a(),r(6,"button",154),f("click",function(){let i=u(e).$implicit,c=p(4);return _(c.deleteImage(i._id))}),l(7,"\u{1F5D1}\uFE0F"),a()()(),r(8,"div",155)(9,"span",156),l(10),a(),b(11,Oi,2,0,"span",157),a()()}if(n&2){let e=t.$implicit,o=p(4);s(2),w("src",e.url,re)("alt",e.name),s(2),w("href",e.url,re),s(2),w("disabled",o.saving()),s(3),w("appTooltip",e.name),s(),S(e.name),s(),m(e.source==="generated"?11:-1)}}function Ki(n,t){if(n&1&&(r(0,"div",144),U(1,Wi,12,7,"div",149,Oe),a()),n&2){let e=p(3);s(),H(e.strategy().steps.visualAssets.images)}}function Ni(n,t){n&1&&(r(0,"div",145)(1,"span",158),l(2,"\u{1F5BC}\uFE0F"),a(),r(3,"p"),l(4,"No images yet. Upload or generate some."),a()())}function ji(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("visualAssets","visual-assets"))}),l(1," \u2713 Mark Complete "),a()}if(n&2){let e=p(3);w("disabled",e.saving())}}function Gi(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function Ui(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F3A8}"),a(),r(4,"div")(5,"h2",28),l(6,"Visual Asset Preparation"),a(),r(7,"p",29),l(8,"Upload images or generate visuals using AI for your blog post."),a()()(),r(9,"div",140)(10,"label",141)(11,"input",142),f("change",function(i){u(e);let c=p(2);return _(c.onImageFileSelected(i))}),a(),l(12),a(),r(13,"button",19),f("click",function(){u(e);let i=p(2);return _(i.showImagePrompt.set(!i.showImagePrompt()))}),l(14," \u2728 Generate with AI "),a()(),b(15,$i,10,3,"div",143)(16,Ki,3,0,"div",144)(17,Ni,5,0,"div",145),r(18,"div",36),b(19,ji,2,1,"button",38)(20,Gi,2,0,"span",39),a()()}if(n&2){let e=p(2);s(10),O("loading",e.uploading()),s(),w("disabled",e.uploading()||e.generatingImage()),s(),C(" ",e.uploading()?"\u23F3 Uploading\u2026":"\u{1F4C1} Upload Image"," "),s(),w("disabled",e.uploading()||e.generatingImage()),s(2),m(e.showImagePrompt()?15:-1),s(),m(e.strategy().steps.visualAssets.images.length>0?16:17),s(3),m(e.canComplete("visualAssets")?19:-1),s(),m(e.savedFeedback()?20:-1)}}function Hi(n,t){n&1&&l(0," \xB7 Too long (aim for 50\u201360) ")}function qi(n,t){n&1&&l(0," \xB7 Too short (aim for 50\u201360) ")}function Zi(n,t){n&1&&l(0," \xB7 Too long (aim for 150\u2013160) ")}function Yi(n,t){n&1&&l(0," \xB7 Too short (aim for 150\u2013160) ")}function Qi(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("seoMetadata","seo-metadata"))}),l(1," \u2713 Mark Complete "),a()}if(n&2){let e=p(3);w("disabled",e.saving()||!e.seoMetaForm.metaTitle.trim()||!e.seoMetaForm.metaDescription.trim()||!e.seoMetaForm.h1Tag.trim())}}function Xi(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function Ji(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F3F7}\uFE0F"),a(),r(4,"div")(5,"h2",28),l(6,"SEO & Metadata Setup"),a(),r(7,"p",29),l(8,"Configure the meta title, meta description, and H1 tag."),a()()(),r(9,"div",30)(10,"label",31),l(11,"Meta Title *"),a(),r(12,"input",159),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.seoMetaForm.metaTitle,i)||(c.seoMetaForm.metaTitle=i),_(i)}),a(),r(13,"span",33),l(14),b(15,Hi,1,0)(16,qi,1,0),a()(),r(17,"div",30)(18,"label",31),l(19,"Meta Description *"),a(),r(20,"textarea",160),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.seoMetaForm.metaDescription,i)||(c.seoMetaForm.metaDescription=i),_(i)}),a(),r(21,"span",33),l(22),b(23,Zi,1,0)(24,Yi,1,0),a()(),r(25,"div",30)(26,"label",31),l(27,"H1 Tag *"),a(),r(28,"input",161),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.seoMetaForm.h1Tag,i)||(c.seoMetaForm.h1Tag=i),_(i)}),a()(),r(29,"div",36)(30,"button",37),f("click",function(){u(e);let i=p(2);return _(i.saveSeoMetadata())}),l(31),a(),b(32,Qi,2,1,"button",38)(33,Xi,2,0,"span",39),a()()}if(n&2){let e=p(2);s(12),I("ngModel",e.seoMetaForm.metaTitle),s(),O("form-hint--warn",e.seoMetaForm.metaTitle.length>60),s(),C(" ",e.seoMetaForm.metaTitle.length," chars "),s(),m(e.seoMetaForm.metaTitle.length>60?15:e.seoMetaForm.metaTitle.length<30&&e.seoMetaForm.metaTitle.length>0?16:-1),s(5),I("ngModel",e.seoMetaForm.metaDescription),s(),O("form-hint--warn",e.seoMetaForm.metaDescription.length>160),s(),C(" ",e.seoMetaForm.metaDescription.length," chars "),s(),m(e.seoMetaForm.metaDescription.length>160?23:e.seoMetaForm.metaDescription.length<120&&e.seoMetaForm.metaDescription.length>0?24:-1),s(5),I("ngModel",e.seoMetaForm.h1Tag),s(2),w("disabled",e.saving()),s(),C(" ",e.saving()?"Saving\u2026":"Save"," "),s(),m(e.canComplete("seoMetadata")?32:-1),s(),m(e.savedFeedback()?33:-1)}}function eo(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("internalReview","internal-review"))}),l(1," \u2713 Approve & Continue "),a()}if(n&2){let e=p(3);w("disabled",e.saving())}}function to(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function no(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F440}"),a(),r(4,"div")(5,"h2",28),l(6,"Internal Review"),a(),r(7,"p",29),l(8,"Perform internal review. Document feedback before publishing."),a()()(),r(9,"div",162),l(10," This is a review checkpoint. Document any feedback or changes needed, then mark it complete when ready to proceed. "),a(),r(11,"div",30)(12,"label",31),l(13,"Review Notes & Feedback "),r(14,"span",49),l(15,"optional"),a()(),r(16,"textarea",163),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.reviewForm.feedback,i)||(c.reviewForm.feedback=i),_(i)}),a()(),r(17,"div",36)(18,"button",37),f("click",function(){u(e);let i=p(2);return _(i.saveInternalReview())}),l(19),a(),b(20,eo,2,1,"button",38)(21,to,2,0,"span",39),a()()}if(n&2){let e=p(2);s(16),I("ngModel",e.reviewForm.feedback),s(2),w("disabled",e.saving()),s(),C(" ",e.saving()?"Saving\u2026":"Save Notes"," "),s(),m(e.canComplete("internalReview")?20:-1),s(),m(e.savedFeedback()?21:-1)}}function io(n,t){if(n&1&&(r(0,"p",165),l(1),L(2,"date"),a()),n&2){let e=p(3);s(),C("Published on ",q(2,1,e.strategy().steps.publishing.publishedAt,"MMMM d, y"),"")}}function oo(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("publishing","publishing"))}),l(1," \u2713 Mark as Published "),a()}if(n&2){let e=p(3);w("disabled",e.saving())}}function ao(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function ro(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F680}"),a(),r(4,"div")(5,"h2",28),l(6,"Publishing"),a(),r(7,"p",29),l(8,"Publish the blog post and save its live URL."),a()()(),r(9,"div",162),l(10," Publish the blog post on your platform, then paste the live URL below and mark this step complete. "),a(),r(11,"div",30)(12,"label",31),l(13,"Published URL"),a(),r(14,"input",164),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.publishForm.publishedUrl,i)||(c.publishForm.publishedUrl=i),_(i)}),a()(),b(15,io,3,4,"p",165),r(16,"div",36)(17,"button",37),f("click",function(){u(e);let i=p(2);return _(i.savePublishing())}),l(18),a(),b(19,oo,2,1,"button",38)(20,ao,2,0,"span",39),a()()}if(n&2){let e=p(2);s(14),I("ngModel",e.publishForm.publishedUrl),s(),m(e.strategy().steps.publishing.publishedAt?15:-1),s(2),w("disabled",e.saving()),s(),C(" ",e.saving()?"Saving\u2026":"Save URL"," "),s(),m(e.canComplete("publishing")?19:-1),s(),m(e.savedFeedback()?20:-1)}}function lo(n,t){if(n&1){let e=y();r(0,"span",175),l(1),r(2,"button",178),f("click",function(){let i=u(e).$index,c=p(3);return _(c.removePlatform(i))}),l(3,"\xD7"),a()()}if(n&2){let e=t.$implicit;s(),S(e)}}function so(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("promotion","promotion"))}),l(1," \u2713 Mark Complete "),a()}if(n&2){let e=p(3);w("disabled",e.saving())}}function co(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function po(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F4E3}"),a(),r(4,"div")(5,"h2",28),l(6,"Promotion"),a(),r(7,"p",29),l(8,"Promote the blog via email marketing and social media. Both are optional."),a()()(),r(9,"div",166)(10,"div",167)(11,"label",168)(12,"input",169),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.promotionForm.emailMarketing.done,i)||(c.promotionForm.emailMarketing.done=i),_(i)}),a(),Z(13,"span",170),r(14,"span",171),l(15,"\u{1F4E7} Email Marketing"),a()()(),r(16,"div",30)(17,"label",31),l(18,"Notes "),r(19,"span",49),l(20,"optional"),a()(),r(21,"textarea",172),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.promotionForm.emailMarketing.notes,i)||(c.promotionForm.emailMarketing.notes=i),_(i)}),a()()(),r(22,"div",166)(23,"div",167)(24,"label",168)(25,"input",173),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.promotionForm.socialMedia.done,i)||(c.promotionForm.socialMedia.done=i),_(i)}),a(),Z(26,"span",170),r(27,"span",171),l(28,"\u{1F4F1} Social Media Posting"),a()()(),r(29,"div",30)(30,"label",31),l(31,"Platforms"),a(),r(32,"div",174),U(33,lo,4,1,"span",175,Be),r(35,"input",176),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.newPlatform,i)||(c.newPlatform=i),_(i)}),f("keydown",function(i){u(e);let c=p(2);return _(c.onPlatformKeydown(i))}),a()()(),r(36,"div",30)(37,"label",31),l(38,"Notes "),r(39,"span",49),l(40,"optional"),a()(),r(41,"textarea",177),V("ngModelChange",function(i){u(e);let c=p(2);return D(c.promotionForm.socialMedia.notes,i)||(c.promotionForm.socialMedia.notes=i),_(i)}),a()()(),r(42,"div",36)(43,"button",37),f("click",function(){u(e);let i=p(2);return _(i.savePromotion())}),l(44),a(),b(45,so,2,1,"button",38)(46,co,2,0,"span",39),a()()}if(n&2){let e=p(2);s(12),I("ngModel",e.promotionForm.emailMarketing.done),s(9),I("ngModel",e.promotionForm.emailMarketing.notes),s(4),I("ngModel",e.promotionForm.socialMedia.done),s(8),H(e.promotionForm.socialMedia.platforms),s(2),I("ngModel",e.newPlatform),s(6),I("ngModel",e.promotionForm.socialMedia.notes),s(2),w("disabled",e.saving()),s(),C(" ",e.saving()?"Saving\u2026":"Save"," "),s(),m(e.canComplete("promotion")?45:-1),s(),m(e.savedFeedback()?46:-1)}}function go(n,t){if(n&1&&(r(0,"div",179)(1,"span",182),l(2,"Published URL:"),a(),r(3,"a",183),l(4),a()()),n&2){let e=p(3);s(3),w("href",e.strategy().steps.publishing.publishedUrl,re),s(),C(" ",e.strategy().steps.publishing.publishedUrl," \u2197 ")}}function mo(n,t){n&1&&(r(0,"div",162),l(1," \u26A0\uFE0F No published URL yet. Complete the Publishing step first. "),a())}function uo(n,t){if(n&1&&(r(0,"span",181),l(1),L(2,"date"),a()),n&2){let e=p(3);s(),C("Last analysed ",q(2,1,e.strategy().steps.performanceTracking.lastCrawledAt,"MMM d, y h:mm a"),"")}}function _o(n,t){if(n&1&&(r(0,"div",184),l(1),a()),n&2){let e=p(4);s(),C("\u274C ",e.crawlData().error,"")}}function xo(n,t){n&1&&l(0," \u274C ")}function ho(n,t){n&1&&l(0," \u26A0\uFE0F ")}function fo(n,t){n&1&&l(0," \u2139\uFE0F ")}function bo(n,t){if(n&1&&(r(0,"div",195)(1,"span",196),b(2,xo,1,0)(3,ho,1,0)(4,fo,1,0),a(),r(5,"span",197),l(6),a()()),n&2){let e,o=t.$implicit;ve("issue-item--"+o.severity),s(2),m((e=o.severity)==="error"?2:e==="warning"?3:4),s(4),S(o.message)}}function ko(n,t){if(n&1&&(r(0,"div",190)(1,"h3",193),l(2),a(),U(3,bo,7,4,"div",194,Be),a()),n&2){let e=p(5);s(2),C("Issues Found (",e.crawlData().issues.length,")"),s(),H(e.crawlData().issues)}}function Co(n,t){n&1&&(r(0,"div",191),l(1,"\u2705 No issues found. Your page looks great!"),a())}function wo(n,t){if(n&1&&(r(0,"div",198)(1,"span",199),l(2,"Meta Desc"),a(),r(3,"span",200),l(4),a()()),n&2){let e=p(6);s(4),S(e.crawlData().metaDesc)}}function yo(n,t){if(n&1&&(r(0,"div",198)(1,"span",199),l(2,"H1"),a(),r(3,"span",200),l(4),a()()),n&2){let e=p(6);s(4),S(e.crawlData().h1Tags[0])}}function vo(n,t){if(n&1&&(r(0,"div",198)(1,"span",199),l(2,"Canonical"),a(),r(3,"span",200),l(4),a()()),n&2){let e=p(6);s(4),S(e.crawlData().canonical)}}function So(n,t){if(n&1&&(r(0,"div",192)(1,"div",198)(2,"span",199),l(3,"Title"),a(),r(4,"span",200),l(5),a()(),b(6,wo,5,1,"div",198)(7,yo,5,1,"div",198)(8,vo,5,1,"div",198),a()),n&2){let e,o=p(5);s(5),S(o.crawlData().title),s(),m(o.crawlData().metaDesc?6:-1),s(),m(((e=o.crawlData())==null||e.h1Tags==null?null:e.h1Tags.length)>0?7:-1),s(),m(o.crawlData().canonical?8:-1)}}function Bo(n,t){if(n&1&&(r(0,"div",185)(1,"div",186)(2,"div",187)(3,"span",188),l(4,"Word Count"),a(),r(5,"span",189),l(6),a()(),r(7,"div",187)(8,"span",188),l(9,"Images"),a(),r(10,"span",189),l(11),a()(),r(12,"div",187)(13,"span",188),l(14,"H2 Headings"),a(),r(15,"span",189),l(16),a()(),r(17,"div",187)(18,"span",188),l(19,"HTTP Status"),a(),r(20,"span",189),l(21),a()()(),b(22,ko,5,1,"div",190)(23,Co,2,0,"div",191)(24,So,9,4,"div",192),a()),n&2){let e,o,i=p(4);s(6),C("~",i.crawlData().wordCount,""),s(5),S(i.crawlData().imageCount),s(5),S(i.crawlData().h2Count),s(4),O("crawl-stat__val--ok",i.crawlData().statusCode===200),s(),S(i.crawlData().statusCode),s(),m(((e=i.crawlData())==null||e.issues==null?null:e.issues.length)>0?22:23),s(2),m((o=i.crawlData())!=null&&o.title?24:-1)}}function To(n,t){if(n&1&&b(0,_o,2,1,"div",184)(1,Bo,25,8,"div",185),n&2){let e,o=p(3);m((e=o.crawlData())!=null&&e.error?0:1)}}function Eo(n,t){if(n&1){let e=y();r(0,"button",40),f("click",function(){u(e);let i=p(3);return _(i.completeStep("performanceTracking","performance-tracking"))}),l(1," \u2713 Mark Complete "),a()}if(n&2){let e=p(3);w("disabled",e.saving())}}function Ro(n,t){n&1&&(r(0,"span",39),l(1,"\u2713 Saved"),a())}function Mo(n,t){if(n&1){let e=y();r(0,"div",18)(1,"div",26)(2,"span",27),l(3,"\u{1F4CA}"),a(),r(4,"div")(5,"h2",28),l(6,"Performance Tracking"),a(),r(7,"p",29),l(8,"Crawl the published URL to find SEO issues."),a()()(),b(9,go,5,2,"div",179)(10,mo,2,0,"div",162),r(11,"div",180)(12,"button",19),f("click",function(){u(e);let i=p(2);return _(i.runCrawl())}),l(13),a(),b(14,uo,3,4,"span",181),a(),b(15,To,2,1),r(16,"div",36),b(17,Eo,2,1,"button",38)(18,Ro,2,0,"span",39),a()()}if(n&2){let e=p(2);s(9),m(e.strategy().steps.publishing.publishedUrl?9:10),s(3),w("disabled",e.crawling()||!e.strategy().steps.publishing.publishedUrl),s(),C(" ",e.crawling()?"\u23F3 Analysing\u2026":"\u{1F50D} Run Analysis"," "),s(),m(e.strategy().steps.performanceTracking.lastCrawledAt?14:-1),s(),m(e.strategy().steps.performanceTracking.crawlData?15:-1),s(2),m(e.canComplete("performanceTracking")?17:-1),s(),m(e.savedFeedback()?18:-1)}}function Ao(n,t){if(n&1){let e=y();r(0,"div",1)(1,"div",2)(2,"button",3),f("click",function(){u(e);let i=p();return _(i.announce("lego"))}),l(3,"\u2190 Lego"),a(),r(4,"div",4)(5,"span",5),l(6,"\u270D\uFE0F"),a(),r(7,"div")(8,"h1",6),l(9),a(),r(10,"div",7)(11,"span",8),l(12,"Blog Publishing Strategy"),a(),r(13,"span",9),l(14),a()()()()(),r(15,"div",10),b(16,En,2,2,"button",11),r(17,"button",12),f("click",function(){u(e);let i=p();return _(i.showDeleteModal.set(!0))}),l(18,"Delete"),a()()(),r(19,"div",13)(20,"div",14),U(21,In,10,14,"button",15,vn),a(),r(23,"div",16),b(24,Dn,2,1,"p",17)(25,Fn,23,7,"div",18)(26,mi,56,22,"div",18)(27,yi,28,10,"div",18)(28,Pi,42,15,"div",18)(29,Ui,21,9,"div",18)(30,Ji,34,15,"div",18)(31,no,22,5,"div",18)(32,ro,21,6,"div",18)(33,po,47,9,"div",18)(34,Mo,19,7,"div",18),a()()}if(n&2){let e,o=p();s(9),S(o.strategy().name),s(4),ve("bs-status--"+o.strategy().status),s(),C(" ",o.strategy().status," "),s(2),m(o.strategy().status==="draft"?16:-1),s(),w("disabled",o.actionLoading()),s(4),H(o.stepDefs),s(3),m(o.pageError()?24:-1),s(),m((e=o.activeStep())===0?25:e===1?26:e===2?27:e===3?28:e===4?29:e===5?30:e===6?31:e===7?32:e===8?33:e===9?34:-1)}}function Io(n,t){if(n&1&&(r(0,"span",211),l(1),a()),n&2){let e=p();s(),C("index: ",e.competitionIndex,"")}}function Do(n,t){if(n&1&&(r(0,"div",208)(1,"span",209),l(2,"Clicks"),a(),r(3,"span",210),l(4),L(5,"number"),a()()),n&2){let e=p(2);s(4),S(ne(5,1,e.gscClicks))}}function Vo(n,t){if(n&1&&(r(0,"div",208)(1,"span",209),l(2,"Impressions"),a(),r(3,"span",210),l(4),L(5,"number"),a()()),n&2){let e=p(2);s(4),S(ne(5,1,e.gscImpressions))}}function zo(n,t){if(n&1&&(r(0,"div",208)(1,"span",209),l(2,"CTR"),a(),r(3,"span",210),l(4),L(5,"number"),a()()),n&2){let e=p(2);s(4),C("",q(5,1,e.gscCtr*100,"1.1-1"),"%")}}function Fo(n,t){if(n&1&&(r(0,"div",208)(1,"span",209),l(2,"Avg. Position"),a(),r(3,"span",210),l(4),L(5,"number"),a()()),n&2){let e=p(2);s(4),S(q(5,1,e.gscPosition,"1.1-1"))}}function Lo(n,t){if(n&1&&(r(0,"div",212)(1,"h3",214),l(2,"Search Console Performance"),a(),r(3,"div",207),b(4,Do,6,3,"div",208)(5,Vo,6,3,"div",208)(6,zo,6,4,"div",208)(7,Fo,6,4,"div",208),a()()),n&2){let e=p();s(4),m(e.gscClicks!==null?4:-1),s(),m(e.gscImpressions!==null?5:-1),s(),m(e.gscCtr!==null?6:-1),s(),m(e.gscPosition!==null?7:-1)}}function Po(n,t){if(n&1&&(r(0,"div",216)(1,"span",217),l(2),a(),r(3,"div",218),Z(4,"div",219),a(),r(5,"span",220),l(6),L(7,"number"),a()()),n&2){let e=t.$implicit,o=p(2),i=p(2);s(2),ge("",i.monthName(e.month)," ",e.year,""),s(2),He("width",i.monthlyBarPct(o,e.searches),"%"),s(2),S(ne(7,5,e.searches))}}function $o(n,t){if(n&1&&(r(0,"div",212)(1,"h3",214),l(2,"Monthly Search Volume"),a(),r(3,"div",215),U(4,Po,8,7,"div",216,Bn),a()()),n&2){let e=p();s(4),H(e.monthlySearchVolume.slice().reverse())}}function Oo(n,t){if(n&1&&(r(0,"p",213),l(1),L(2,"date"),a()),n&2){let e=p();s(),C("Last synced ",q(2,1,e.lastSyncedAt,"MMM d, y h:mm a"),"")}}function Wo(n,t){if(n&1&&(r(0,"div",206)(1,"div",207)(2,"div",208)(3,"span",209),l(4,"Search Volume"),a(),r(5,"span",210),l(6),L(7,"number"),a(),r(8,"span",211),l(9,"searches / month"),a()(),r(10,"div",208)(11,"span",209),l(12,"Competition"),a(),r(13,"span"),l(14),a(),b(15,Io,2,1,"span",211),a(),r(16,"div",208)(17,"span",209),l(18,"Low CPC"),a(),r(19,"span",210),l(20),L(21,"appCurrency"),a(),r(22,"span",211),l(23,"top-of-page bid"),a()(),r(24,"div",208)(25,"span",209),l(26,"High CPC"),a(),r(27,"span",210),l(28),L(29,"appCurrency"),a(),r(30,"span",211),l(31,"top-of-page bid"),a()()(),b(32,Lo,8,4,"div",212)(33,$o,6,0,"div",212)(34,Oo,3,4,"p",213),a()),n&2){let e,o,i=t,c=p(2);s(6),S(i.searchVolume!==null?ne(7,11,i.searchVolume):"\u2014"),s(7),Se("kw-detail-stat__val kw-detail-stat__val--comp kw-detail-stat__val--",((e=i.competition)!==null&&e!==void 0?e:"unknown").toLowerCase(),""),s(),C(" ",c.competitionLabel((o=i.competition)!==null&&o!==void 0?o:"UNKNOWN")," "),s(),m(i.competitionIndex!==null?15:-1),s(5),S(i.lowTopOfPageBidMicros!==null?Te(21,13,i.lowTopOfPageBidMicros,2,"micros"):"\u2014"),s(8),S(i.highTopOfPageBidMicros!==null?Te(29,17,i.highTopOfPageBidMicros,2,"micros"):"\u2014"),s(4),m(i.gscClicks!==null||i.gscImpressions!==null?32:-1),s(),m(i.monthlySearchVolume.length>0?33:-1),s(),m(i.lastSyncedAt?34:-1)}}function Ko(n,t){if(n&1){let e=y();r(0,"div",201),f("click",function(){u(e);let i=p();return _(i.kwDetailOpen.set(!1))}),a(),r(1,"div",202)(2,"div",203)(3,"h2",204),l(4),a(),r(5,"button",205),f("click",function(){u(e);let i=p();return _(i.kwDetailOpen.set(!1))}),l(6,"\u2715"),a()(),b(7,Wo,35,21,"div",206),a()}if(n&2){let e,o,i=p();s(4),S((e=i.kwDetailKeyword())==null?null:e.keyword),s(3),m((o=i.kwDetailKeyword())?7:-1,o)}}function No(n,t){if(n&1){let e=y();r(0,"div",221),f("click",function(){u(e);let i=p();return _(i.showDeleteModal.set(!1))}),a(),r(1,"div",222)(2,"h3",223),l(3,"Delete Strategy?"),a(),r(4,"p",224),l(5,"This will permanently delete the strategy and all associated data including uploaded images. This cannot be undone."),a(),r(6,"div",225)(7,"button",148),f("click",function(){u(e);let i=p();return _(i.showDeleteModal.set(!1))}),l(8,"Cancel"),a(),r(9,"button",226),f("click",function(){u(e);let i=p();return _(i.deleteStrategy())}),l(10),a()()()}if(n&2){let e=p();s(9),w("disabled",e.actionLoading()),s(),C(" ",e.actionLoading()?"Deleting\u2026":"Delete"," ")}}var Ce=["topicSelection","seoResearch","contentOutline","draftWriting","visualAssets","seoMetadata","internalReview","publishing","promotion","performanceTracking"],ee=[{key:"topicSelection",name:"Topic Selection",icon:"\u{1F4A1}",apiKey:"topic-selection",desc:"Define the subject of your blog post."},{key:"seoResearch",name:"Keyword & SEO Research",icon:"\u{1F50D}",apiKey:"seo-research",desc:"Select target keywords and generate an AI SEO strategy."},{key:"contentOutline",name:"Content Outline",icon:"\u{1F4D1}",apiKey:"content-outline",desc:"Write a structured outline for Gemini to expand."},{key:"draftWriting",name:"Draft Writing",icon:"\u270D\uFE0F",apiKey:"draft-writing",desc:"Generate or write the blog content."},{key:"visualAssets",name:"Visual Asset Preparation",icon:"\u{1F3A8}",apiKey:"visual-assets",desc:"Upload images or generate visuals with AI."},{key:"seoMetadata",name:"SEO & Metadata Setup",icon:"\u{1F3F7}\uFE0F",apiKey:"seo-metadata",desc:"Set meta title, meta description, and H1."},{key:"internalReview",name:"Internal Review",icon:"\u{1F440}",apiKey:"internal-review",desc:"Review the post and capture feedback before publishing."},{key:"publishing",name:"Publishing",icon:"\u{1F680}",apiKey:"publishing",desc:"Mark the post as published and save the live URL."},{key:"promotion",name:"Promotion",icon:"\u{1F4E3}",apiKey:"promotion",desc:"Promote via email marketing and social media."},{key:"performanceTracking",name:"Performance Tracking",icon:"\u{1F4CA}",apiKey:"performance-tracking",desc:"Crawl the published URL to detect SEO issues."}],jo=[{value:"link",icon:$.link,label:"Link"},{value:"facebook",icon:$.facebook,label:"Facebook"},{value:"instagram",icon:$.instagram,label:"Instagram"},{value:"notion-doc",icon:$["notion-doc"],label:"Notion"},{value:"google-drive",icon:$["google-drive"],label:"Google Drive"},{value:"google-sheet",icon:$["google-sheet"],label:"Google Sheet"},{value:"google-doc",icon:$["google-doc"],label:"Google Doc"},{value:"youtube",icon:$.youtube,label:"YouTube"},{value:"google-ads",icon:$["google-ads"],label:"Google Ads"},{value:"google-analytics",icon:$["google-analytics"],label:"Google Analytics"},{value:"slack",icon:$.slack,label:"Slack"},{value:"readdy",icon:$.readdy,label:"Readdy.ai"}],Go={UNSPECIFIED:"N/A",UNKNOWN:"Unknown",LOW:"Low",MEDIUM:"Medium",HIGH:"High"},At=5*60*1e3,It=10,Dt=class n{constructor(){this.svc=G(ke);this.kwSvc=G(pt);this.sanitizer=G(Qe);this.strategy=v(null);this.loading=v(!0);this.saving=v(!1);this.savedFeedback=v(!1);this.actionLoading=v(!1);this.generating=v(!1);this.generatingOutline=v(!1);this.uploading=v(!1);this.generatingImage=v(!1);this.crawling=v(!1);this.pageError=v("");this.savedTimer=null;this.activeStep=v(0);this.showDeleteModal=v(!1);this.stepDefs=ee;this.linkTypeOptions=jo;this.SEO_REC_MAX_COUNT=It;this.crawlData=ie(()=>this.strategy()?.steps.performanceTracking.crawlData??null);this.kwList=v([]);this.kwLoading=v(!1);this.kwSearch="";this.selectedKwIds=v(new Set);this.kwDetailOpen=v(!1);this.kwDetailKeyword=v(null);this.kwAddOpen=v(!1);this.kwNewText="";this.kwAdding=v(!1);this.kwAddError=v("");this.generatingSeoRec=v(!1);this.seoRecRawVisible=v(!1);this.outlineRawVisible=v(!1);this.draftRawVisible=v(!1);this.draftWikiVisible=v(!1);this.draftTokens=v(3e3);this.draftWordEstimate=ie(()=>Math.round(this.draftTokens()*.55));this.draftCooldown=v("");this.copySuccess=v(!1);this.thinkingEnabled=v(!1);this.thinkingBudget=v(0);this.thinkingWarnVisible=v(!1);this.thinkingWarnChecked=v(!1);this.thinkingBudgetMax=ie(()=>Math.floor(this.draftTokens()/2));this.linkTypeOpen=v(!1);this.linkForm={type:"link",name:"",url:""};this.selectedLinkType=ie(()=>this.linkTypeOptions.find(t=>t.value===this.linkForm.type)??this.linkTypeOptions[0]);this.topicForm={topic:""};this.outlineForm={outline:""};this.draftForm={content:""};this.seoMetaForm={metaTitle:"",metaDescription:"",h1Tag:""};this.reviewForm={feedback:""};this.publishForm={publishedUrl:""};this.promotionForm={emailMarketing:{done:!1,notes:""},socialMedia:{done:!1,notes:"",platforms:[]}};this.newPlatform="";this.imagePromptText="";this.showImagePrompt=v(!1);this.host=G(je);this.projectId="";this.strategyId="";this._step=null;this.bloomsnavigate=new ye;this.bloomserror=new ye;this.needsSignIn=ie(()=>le.config()!==null&&le.session()===null)}get filteredKws(){let t=this.kwSearch.toLowerCase().trim();return t?this.kwList().filter(e=>e.keyword.toLowerCase().includes(t)):this.kwList()}get selectedKwTexts(){let t=this.selectedKwIds();return this.kwList().filter(e=>t.has(e._id)).map(e=>e.keyword)}get seoRecCooldownMins(){let t=this.strategy()?.steps.seoResearch.seoRecommendationGeneratedAt;if(!t)return 0;let e=Date.now()-new Date(t).getTime();return e>=At?0:Math.ceil((At-e)/6e4)}get seoRecMaxReached(){return(this.strategy()?.steps.seoResearch.seoRecommendationCount??0)>=It}renderMarkdown(t){let e=R.parse(t,{async:!1});return this.sanitizer.bypassSecurityTrustHtml(e)}showSaveFeedback(){this.savedFeedback.set(!0),this.savedTimer&&clearTimeout(this.savedTimer),this.savedTimer=setTimeout(()=>this.savedFeedback.set(!1),2500)}set step(t){this._step=t??null;let e=ee.findIndex(o=>o.apiKey===this._step);e>=0&&this.activeStep.set(e)}get step(){return this._step}announce(t,e={}){let o={feature:"blog-strategy",view:t,params:e};this.bloomsnavigate.emit(o),le.emit(z({type:"navigate"},o))}ngOnInit(){let t=this.host.nativeElement.shadowRoot;if(t&&lt(t),this.projectId||(this.projectId=le.project()?.id??""),!this.strategyId){this.bloomserror.emit({code:"NO_STRATEGY",message:"No strategy to show. Pass strategy-id."});return}this._step||(this.activeStep.set(0),this.announce("step",{step:ee[0].apiKey,replace:!0})),this.loadStrategy(),this.loadKeywords()}ngOnDestroy(){this.savedTimer&&clearTimeout(this.savedTimer),this.copyTimer&&clearTimeout(this.copyTimer),clearInterval(this.cooldownInterval)}loadStrategy(){this.loading.set(!0),this.svc.get(this.strategyId).subscribe({next:t=>{this.strategy.set(t.data),this.populateForms(t.data),this.loading.set(!1),this.jumpToCurrentStep(t.data),this.syncKwSelection()},error:()=>this.loading.set(!1)})}loadKeywords(){this.kwLoading.set(!0),this.kwSvc.list(this.projectId).subscribe({next:t=>{this.kwList.set(t.data),this.kwLoading.set(!1),this.syncKwSelection()},error:()=>this.kwLoading.set(!1)})}syncKwSelection(){let t=this.strategy();if(!t||this.kwList().length===0)return;let e=t.steps.seoResearch.keywords??[],o=new Map(this.kwList().map(c=>[c.keyword.toLowerCase(),c._id])),i=new Set;for(let c of e){let d=o.get(c.toLowerCase());d&&i.add(d)}this.selectedKwIds.set(i)}populateForms(t){this.topicForm.topic=t.steps.topicSelection.topic??"",this.outlineForm.outline=t.steps.contentOutline.outline??"",this.draftForm.content=t.steps.draftWriting.content??"",this.seoMetaForm.metaTitle=t.steps.seoMetadata.metaTitle??"",this.seoMetaForm.metaDescription=t.steps.seoMetadata.metaDescription??"",this.seoMetaForm.h1Tag=t.steps.seoMetadata.h1Tag??"",this.reviewForm.feedback=t.steps.internalReview.feedback??"",this.publishForm.publishedUrl=t.steps.publishing.publishedUrl??"",this.promotionForm.emailMarketing.done=t.steps.promotion.emailMarketing.done,this.promotionForm.emailMarketing.notes=t.steps.promotion.emailMarketing.notes??"",this.promotionForm.socialMedia.done=t.steps.promotion.socialMedia.done,this.promotionForm.socialMedia.notes=t.steps.promotion.socialMedia.notes??"",this.promotionForm.socialMedia.platforms=[...t.steps.promotion.socialMedia.platforms??[]]}jumpToCurrentStep(t){if(t.status!=="active")return;let e=Ce.findIndex(o=>t.steps[o].status!=="completed");e>=0&&(this.activeStep.set(e),this.announce("step",{step:ee[e].apiKey,replace:!0}))}setStrategy(t){this.strategy.set(t),this.populateForms(t),this.syncKwSelection(),this.startDraftCooldown(t)}setActiveStep(t){this.isLocked(t)||(this.activeStep.set(t),this.announce("step",{step:ee[t].apiKey}))}stepStatus(t){return this.strategy()?.steps[t]?.status??"pending"}stepStatusLabel(t){let e=this.stepStatus(t);return e==="completed"?"Completed":e==="in-progress"?"In progress":"Pending"}isLocked(t){let e=this.strategy();if(!e||e.status!=="active"||t===0)return!1;let o=Ce[t-1];return e.steps[o].status!=="completed"}canComplete(t){let e=this.strategy();if(!e||e.status!=="active"||e.steps[t].status==="completed")return!1;let o=Ce.indexOf(t);return o===0?!0:e.steps[Ce[o-1]].status==="completed"}startStrategy(){this.actionLoading.set(!0),this.svc.start(this.strategyId).subscribe({next:t=>{this.setStrategy(t.data),this.actionLoading.set(!1),this.jumpToCurrentStep(t.data)},error:()=>this.actionLoading.set(!1)})}deleteStrategy(){this.actionLoading.set(!0),this.svc.delete(this.strategyId).subscribe({next:()=>this.announce("lego"),error:()=>this.actionLoading.set(!1)})}completeStep(t,e){this.saving.set(!0),this.pageError.set(""),this.svc.completeStep(this.strategyId,e).subscribe({next:o=>{this.setStrategy(o.data),this.saving.set(!1);let i=this.activeStep()+1;i<ee.length&&(this.activeStep.set(i),this.announce("step",{step:ee[i].apiKey}))},error:o=>{this.pageError.set(o?.error?.message??"Failed to complete step."),this.saving.set(!1)}})}useTitleAsTopic(){let t=this.strategy()?.name;t&&(this.topicForm.topic=t)}saveTopicSelection(){this.saving.set(!0),this.svc.updateTopicSelection(this.strategyId,{topic:this.topicForm.topic}).subscribe({next:t=>{this.setStrategy(t.data),this.saving.set(!1),this.showSaveFeedback()},error:()=>this.saving.set(!1)})}toggleKw(t){let e=new Set(this.selectedKwIds());e.has(t._id)?e.delete(t._id):e.add(t._id),this.selectedKwIds.set(e)}addKwToPlanner(){let t=this.kwNewText.trim();t&&(this.kwAdding.set(!0),this.kwAddError.set(""),this.kwSvc.add(this.projectId,t).subscribe({next:e=>{let o=e.data;this.kwList.update(i=>[...i,o]),this.selectedKwIds.update(i=>new Set([...i,o._id])),this.kwNewText="",this.kwAddOpen.set(!1),this.kwAdding.set(!1)},error:e=>{this.kwAddError.set(e?.error?.message??"Failed to add keyword."),this.kwAdding.set(!1)}}))}openKwDetail(t){this.kwDetailKeyword.set(t),this.kwDetailOpen.set(!0)}competitionLabel(t){return Go[t??"UNKNOWN"]??t??"\u2014"}monthName(t){return new Date(2e3,t-1,1).toLocaleString("default",{month:"short"})}monthlyBarPct(t,e){let o=Math.max(...t.monthlySearchVolume.map(i=>i.searches),1);return Math.round(e/o*100)}saveSeoResearch(){this.saving.set(!0),this.svc.updateSeoResearch(this.strategyId,{keywords:this.selectedKwTexts}).subscribe({next:t=>{this.setStrategy(t.data),this.saving.set(!1),this.showSaveFeedback()},error:()=>this.saving.set(!1)})}generateSeoRec(){this.generatingSeoRec.set(!0),this.pageError.set(""),this.svc.generateSeoRecommendation(this.strategyId).subscribe({next:t=>{this.setStrategy(t.data),this.generatingSeoRec.set(!1)},error:t=>{this.pageError.set(t?.error?.message??"Failed to generate SEO recommendation."),this.generatingSeoRec.set(!1)}})}selectLinkType(t){this.linkForm.type=t,this.linkTypeOpen.set(!1)}getLinkIcon(t){return $[t]??"\u{1F517}"}addSeoLink(){if(!this.linkForm.url.trim())return;this.saving.set(!0);let t=this.linkForm.url.trim(),e=this.linkForm.name.trim()||t;this.svc.addSeoResearchLink(this.strategyId,{type:this.linkForm.type,name:e,url:t}).subscribe({next:o=>{this.setStrategy(o.data),this.linkForm={type:"link",name:"",url:""},this.saving.set(!1)},error:()=>this.saving.set(!1)})}removeSeoLink(t){this.saving.set(!0),this.svc.removeSeoResearchLink(this.strategyId,t).subscribe({next:e=>{this.setStrategy(e.data),this.saving.set(!1)},error:()=>this.saving.set(!1)})}generateOutline(){this.generatingOutline.set(!0),this.pageError.set(""),this.svc.generateContentOutline(this.strategyId).subscribe({next:t=>{this.setStrategy(t.data),this.generatingOutline.set(!1)},error:t=>{this.pageError.set(t?.error?.message??"Failed to generate outline."),this.generatingOutline.set(!1)}})}saveContentOutline(){this.saving.set(!0),this.svc.updateContentOutline(this.strategyId,{outline:this.outlineForm.outline}).subscribe({next:t=>{this.setStrategy(t.data),this.saving.set(!1),this.showSaveFeedback()},error:()=>this.saving.set(!1)})}startDraftCooldown(t){if(clearInterval(this.cooldownInterval),!t.steps.draftWriting.generatedAt){this.draftCooldown.set("");return}let e=()=>{let o=Date.now()-new Date(t.steps.draftWriting.generatedAt).getTime(),i=15*60*1e3-o;if(i<=0){this.draftCooldown.set(""),clearInterval(this.cooldownInterval);return}let c=Math.floor(i/6e4),d=Math.floor(i%6e4/1e3);this.draftCooldown.set(`${c}:${d.toString().padStart(2,"0")}`)};e(),this.draftCooldown()&&(this.cooldownInterval=setInterval(e,1e3))}generateDraft(){this.generating.set(!0),this.pageError.set("");let t=this.thinkingEnabled()?this.thinkingBudget():0;this.svc.generateDraft(this.strategyId,this.draftTokens(),t).subscribe({next:e=>{this.setStrategy(e.data),this.generating.set(!1)},error:e=>{this.pageError.set(e?.error?.message??"Generation failed."),this.generating.set(!1)}})}setDraftTokens(t){let e=Math.min(2e4,Math.max(500,t||3e3));this.draftTokens.set(e);let o=Math.floor(e/2);this.thinkingBudget()>o&&this.thinkingBudget.set(o)}setThinkingBudget(t){let e=Math.min(this.thinkingBudgetMax(),Math.max(0,t||0));this.thinkingBudget.set(e)}confirmThinking(){this.thinkingEnabled.set(!0),this.thinkingWarnVisible.set(!1),this.thinkingWarnChecked.set(!1)}cancelThinking(){this.thinkingWarnVisible.set(!1),this.thinkingWarnChecked.set(!1)}disableThinking(){this.thinkingEnabled.set(!1),this.thinkingBudget.set(0)}copyDraftContent(){navigator.clipboard.writeText(this.draftForm.content).then(()=>{clearTimeout(this.copyTimer),this.copySuccess.set(!0),this.copyTimer=setTimeout(()=>this.copySuccess.set(!1),2500)})}saveDraftContent(){this.saving.set(!0),this.svc.updateDraftContent(this.strategyId,{content:this.draftForm.content}).subscribe({next:t=>{this.setStrategy(t.data),this.saving.set(!1),this.showSaveFeedback()},error:()=>this.saving.set(!1)})}wordCount(t){return t.trim().split(/\s+/).filter(e=>e.length>0).length}onImageFileSelected(t){let e=t.target.files?.[0];e&&(this.uploading.set(!0),this.svc.uploadVisualAsset(this.strategyId,e).subscribe({next:o=>{this.setStrategy(o.data),this.uploading.set(!1)},error:()=>this.uploading.set(!1)}),t.target.value="")}generateImage(){this.imagePromptText.trim()&&(this.generatingImage.set(!0),this.pageError.set(""),this.svc.generateVisualAsset(this.strategyId,this.imagePromptText.trim()).subscribe({next:t=>{this.setStrategy(t.data),this.generatingImage.set(!1),this.imagePromptText="",this.showImagePrompt.set(!1)},error:t=>{this.pageError.set(t?.error?.message??"Image generation failed."),this.generatingImage.set(!1)}}))}deleteImage(t){this.saving.set(!0),this.svc.deleteVisualAsset(this.strategyId,t).subscribe({next:e=>{this.setStrategy(e.data),this.saving.set(!1)},error:()=>this.saving.set(!1)})}saveSeoMetadata(){this.saving.set(!0),this.svc.updateSeoMetadata(this.strategyId,{metaTitle:this.seoMetaForm.metaTitle,metaDescription:this.seoMetaForm.metaDescription,h1Tag:this.seoMetaForm.h1Tag}).subscribe({next:t=>{this.setStrategy(t.data),this.saving.set(!1),this.showSaveFeedback()},error:()=>this.saving.set(!1)})}saveInternalReview(){this.saving.set(!0),this.svc.updateInternalReview(this.strategyId,{feedback:this.reviewForm.feedback}).subscribe({next:t=>{this.setStrategy(t.data),this.saving.set(!1),this.showSaveFeedback()},error:()=>this.saving.set(!1)})}savePublishing(){this.saving.set(!0),this.svc.updatePublishing(this.strategyId,{publishedUrl:this.publishForm.publishedUrl}).subscribe({next:t=>{this.setStrategy(t.data),this.saving.set(!1),this.showSaveFeedback()},error:()=>this.saving.set(!1)})}onPlatformKeydown(t){if(t.key==="Enter"||t.key===","){t.preventDefault();let e=this.newPlatform.trim().replace(/,$/,"");e&&!this.promotionForm.socialMedia.platforms.includes(e)&&(this.promotionForm.socialMedia.platforms=[...this.promotionForm.socialMedia.platforms,e]),this.newPlatform=""}}removePlatform(t){this.promotionForm.socialMedia.platforms=this.promotionForm.socialMedia.platforms.filter((e,o)=>o!==t)}savePromotion(){this.saving.set(!0),this.svc.updatePromotion(this.strategyId,{emailMarketing:z({},this.promotionForm.emailMarketing),socialMedia:z({},this.promotionForm.socialMedia)}).subscribe({next:t=>{this.setStrategy(t.data),this.saving.set(!1),this.showSaveFeedback()},error:()=>this.saving.set(!1)})}runCrawl(){this.crawling.set(!0),this.pageError.set(""),this.svc.crawlPublishedUrl(this.strategyId).subscribe({next:t=>{this.setStrategy(t.data),this.crawling.set(!1)},error:t=>{this.pageError.set(t?.error?.message??"Crawl failed."),this.crawling.set(!1)}})}static{this.\u0275fac=function(e){return new(e||n)}}static{this.\u0275cmp=Ue({type:n,selectors:[["blooms-blog-strategy"]],inputs:{projectId:"projectId",strategyId:"strategyId",step:"step"},outputs:{bloomsnavigate:"bloomsnavigate",bloomserror:"bloomserror"},decls:5,vars:3,consts:[[1,"bs-page"],[1,"bs-header"],[1,"bs-header__left"],["type","button",1,"bs-back",3,"click"],[1,"bs-header__title-row"],[1,"bs-header__icon"],[1,"bs-header__name"],[1,"bs-header__meta"],[1,"bs-header__type"],[1,"bs-status-badge"],[1,"bs-header__actions"],[1,"btn","btn-primary",3,"disabled"],[1,"btn","btn-outline","btn-danger",3,"click","disabled"],[1,"bs-layout"],[1,"bs-stepper"],[1,"bs-step",3,"bs-step--active","bs-step--completed","bs-step--locked"],[1,"bs-content"],[1,"bs-error"],[1,"step-panel"],[1,"btn","btn-primary",3,"click","disabled"],[1,"bs-step",3,"click"],[1,"bs-step__circle"],[1,"bs-step__info"],[1,"bs-step__name"],[1,"bs-step__status-label"],["appTooltip","Complete the previous step first",1,"bs-step__lock"],[1,"step-panel__head"],[1,"step-panel__icon"],[1,"step-panel__title"],[1,"step-panel__desc"],[1,"form-field"],[1,"form-label"],["name","topic","rows","3","maxlength","500","placeholder","e.g. How to improve website SEO in 2025 using AI tools",1,"form-input","form-textarea",3,"ngModelChange","ngModel"],[1,"form-hint"],[1,"topic-actions-bar"],["type","button","appTooltip","Copy the blog post title into the topic field",1,"btn","btn-ghost","btn-sm",3,"click","disabled"],[1,"step-panel__actions"],[1,"btn","btn-outline",3,"click","disabled"],[1,"btn","btn-success",3,"disabled"],[1,"save-feedback"],[1,"btn","btn-success",3,"click","disabled"],[1,"kw-loading-row"],[1,"kw-add-row"],["type","button",1,"kw-add-trigger"],[1,"seo-rec-bar"],[1,"btn","btn-primary","btn-sm",3,"click","disabled"],[1,"seo-rec-usage"],[1,"seo-rec-result"],[1,"seo-rec-empty"],[1,"form-optional"],[1,"link-list"],[1,"add-link-form"],[1,"link-type-dropdown"],[1,"link-type-backdrop"],["type","button",1,"link-type-trigger",3,"click"],[1,"link-type-trigger__sel"],[1,"link-type-trigger__chev"],[1,"link-type-menu"],["type","text","name","linkName","placeholder","Display name (optional)","maxlength","255",1,"form-input",3,"ngModelChange","ngModel"],["type","url","name","linkUrl","placeholder","https://\u2026","maxlength","2048",1,"form-input",3,"ngModelChange","ngModel"],["type","button",1,"btn","btn-outline",3,"click","disabled"],[1,"kw-toolbar"],["type","text","name","kwSearch","placeholder","\u{1F50D} Filter keywords\u2026",1,"form-input","kw-search-input",3,"ngModelChange","ngModel"],[1,"kw-sel-count"],[1,"kw-empty-msg"],[1,"kw-list"],[1,"kw-item",3,"kw-item--checked"],[1,"kw-no-results"],[1,"kw-item"],[1,"kw-item__label"],["type","checkbox",1,"kw-item__check",3,"change","checked"],[1,"kw-item__name"],[1,"kw-item__vol"],[3,"class"],["type","button","appTooltip","View keyword details",1,"kw-item__detail-btn",3,"click"],["type","button",1,"kw-add-trigger",3,"click"],["type","text","name","kwNewText","placeholder","New keyword\u2026",1,"form-input","kw-add-input",3,"ngModelChange","keydown.enter","keydown.escape","ngModel"],["type","button",1,"btn","btn-outline","btn-sm",3,"click","disabled"],["type","button",1,"btn","btn-ghost","btn-sm",3,"click"],[1,"kw-add-error"],[1,"seo-rec-ts"],[1,"seo-rec-text",3,"innerHTML"],[1,"seo-rec-raw"],[1,"seo-rec-raw__toggle",3,"click"],[1,"seo-rec-raw__body"],[1,"link-item"],[1,"link-item__icon"],[1,"link-item__info"],["target","_blank",1,"link-item__name",3,"href"],[1,"link-item__type"],["appTooltip","Remove",1,"icon-btn","icon-btn--danger",3,"click","disabled"],[1,"link-type-backdrop",3,"click"],["type","button",1,"link-type-option",3,"selected"],["type","button",1,"link-type-option",3,"click"],[1,"link-type-option__label"],[1,"link-type-option__check"],[1,"outline-gen-bar"],[1,"outline-gen-ts"],[1,"outline-gen-hint"],["name","outline","rows","12","maxlength","10000","placeholder",`1. Introduction
65
+ - Hook or opening angle
66
+ - What the reader will learn
67
+
68
+ 2. Section Heading
69
+ - Sub-point one
70
+ - Sub-point two
71
+
72
+ 3. Conclusion`,1,"form-input","form-textarea","form-textarea--tall",3,"ngModelChange","ngModel"],[1,"draft-gen-bar"],[1,"draft-gen-row"],[1,"draft-gen-sep"],[1,"draft-token-inline"],[1,"draft-token-inline__label"],["type","button","appTooltip","What are max output tokens?",1,"wiki-btn",3,"click"],["type","number","name","draftTokens","min","500","max","20000","step","500",1,"form-input","draft-token-input",3,"ngModelChange","ngModel"],[1,"draft-word-est"],[1,"thinking-row"],[1,"draft-token-wiki"],[1,"draft-gen-meta"],[1,"draft-gen-count"],[1,"draft-gen-cooldown"],[1,"draft-gen-ts"],[1,"draft-gen-hint"],["name","draftContent","rows","24","maxlength","200000","placeholder","Click 'Generate with Gemini' above, or write your blog content here\u2026",1,"form-input","form-textarea","form-textarea--draft",3,"ngModelChange","ngModel"],[1,"thinking-modal-overlay"],["type","button",1,"thinking-unlock-btn",3,"click"],[1,"pill--exp"],[1,"thinking-off-hint"],[1,"thinking-on-row"],[1,"thinking-on-label"],[1,"pill--live"],["type","number","name","thinkingBudget","min","0","step","100",1,"form-input","draft-token-input",3,"ngModelChange","ngModel","max"],[1,"thinking-budget-range"],["type","button",1,"thinking-off-btn",3,"click"],[1,"thinking-active-warn"],[1,"draft-token-wiki__warning"],["type","button",1,"btn","btn-outline",3,"click"],[1,"thinking-modal-overlay",3,"click"],[1,"thinking-modal",3,"click"],[1,"thinking-modal__icon"],[1,"thinking-modal__title"],[1,"thinking-modal__body"],[1,"thinking-modal__scare"],[1,"thinking-modal__check"],["type","checkbox","name","thinkingModalCheck",3,"ngModelChange","ngModel"],[1,"thinking-modal__actions"],["type","button",1,"btn","btn-ghost",3,"click"],["type","button",1,"thinking-confirm-btn",3,"click","disabled"],[1,"asset-toolbar"],[1,"btn","btn-outline","asset-upload-btn"],["type","file","accept","image/*",1,"hidden-file",3,"change","disabled"],[1,"image-prompt-box"],[1,"image-gallery"],[1,"asset-empty"],["name","imagePrompt","rows","3","maxlength","1000","placeholder","e.g. A professional flat-design illustration of a laptop showing SEO analytics\u2026",1,"form-input","form-textarea",3,"ngModelChange","ngModel"],[1,"image-prompt-box__actions"],[1,"btn","btn-outline",3,"click"],[1,"image-card"],[1,"image-card__img-wrap"],["loading","lazy",1,"image-card__img",3,"src","alt"],[1,"image-card__overlay"],["target","_blank","appTooltip","View full size",1,"image-card__view",3,"href"],["appTooltip","Delete",1,"image-card__delete",3,"click","disabled"],[1,"image-card__footer"],[1,"image-card__name",3,"appTooltip"],[1,"image-card__badge"],[1,"asset-empty__icon"],["type","text","name","metaTitle","maxlength","200","placeholder","50\u201360 characters recommended",1,"form-input",3,"ngModelChange","ngModel"],["name","metaDesc","rows","3","maxlength","500","placeholder","150\u2013160 characters recommended",1,"form-input","form-textarea",3,"ngModelChange","ngModel"],["type","text","name","h1Tag","maxlength","200","placeholder","The main heading of the published page",1,"form-input",3,"ngModelChange","ngModel"],[1,"stopgap-banner"],["name","feedback","rows","10","maxlength","10000","placeholder","Document review feedback, requested changes, approvals, etc.",1,"form-input","form-textarea","form-textarea--tall",3,"ngModelChange","ngModel"],["type","url","name","publishedUrl","maxlength","2048","placeholder","https://yourblog.com/your-post-slug",1,"form-input",3,"ngModelChange","ngModel"],[1,"info-text"],[1,"promo-section"],[1,"promo-section__header"],[1,"toggle-label"],["type","checkbox","name","emailDone",1,"toggle-checkbox",3,"ngModelChange","ngModel"],[1,"toggle-track"],[1,"toggle-text"],["name","emailNotes","rows","3","maxlength","2000","placeholder","Email campaign details, audience, send date\u2026",1,"form-input","form-textarea",3,"ngModelChange","ngModel"],["type","checkbox","name","smDone",1,"toggle-checkbox",3,"ngModelChange","ngModel"],[1,"chip-input-wrapper"],[1,"chip","chip--blue"],["type","text","name","newPlatform","placeholder","e.g. Twitter, LinkedIn\u2026",1,"chip-input",3,"ngModelChange","keydown","ngModel"],["name","smNotes","rows","3","maxlength","2000","placeholder","Post copy, hashtags, scheduled times\u2026",1,"form-input","form-textarea",3,"ngModelChange","ngModel"],["type","button",1,"chip__remove",3,"click"],[1,"published-url-row"],[1,"crawl-toolbar"],[1,"crawl-last"],[1,"published-url-label"],["target","_blank",1,"published-url-link",3,"href"],[1,"crawl-error"],[1,"crawl-results"],[1,"crawl-stats"],[1,"crawl-stat"],[1,"crawl-stat__label"],[1,"crawl-stat__val"],[1,"issues-section"],[1,"crawl-pass"],[1,"crawl-meta-preview"],[1,"issues-title"],[1,"issue-item",3,"class"],[1,"issue-item"],[1,"issue-item__icon"],[1,"issue-item__msg"],[1,"meta-row"],[1,"meta-key"],[1,"meta-val"],[1,"kw-detail-backdrop",3,"click"],[1,"kw-detail-pane"],[1,"kw-detail-pane__header"],[1,"kw-detail-pane__title"],["appTooltip","Close",1,"kw-detail-pane__close",3,"click"],[1,"kw-detail-pane__body"],[1,"kw-detail-grid"],[1,"kw-detail-stat"],[1,"kw-detail-stat__label"],[1,"kw-detail-stat__val"],[1,"kw-detail-stat__sub"],[1,"kw-detail-section"],[1,"kw-detail-synced"],[1,"kw-detail-section__title"],[1,"kw-monthly-list"],[1,"kw-monthly-item"],[1,"kw-monthly-item__label"],[1,"kw-monthly-bar-wrap"],[1,"kw-monthly-bar"],[1,"kw-monthly-item__val"],[1,"modal-backdrop",3,"click"],[1,"modal"],[1,"modal__title"],[1,"modal__body"],[1,"modal__actions"],[1,"btn","btn-primary","btn-danger-solid",3,"click","disabled"]],template:function(e,o){e&1&&(r(0,"div",0),b(1,Tn,1,0,"app-loading-spinner")(2,Ao,35,8)(3,Ko,8,2)(4,No,11,2),a()),e&2&&(s(),m(o.loading()?1:o.strategy()?2:-1),s(2),m(o.kwDetailOpen()?3:-1),s(),m(o.showDeleteModal()?4:-1))},dependencies:[Ye,Ze,qe,rt,Je,nt,Xe,et,at,ot,it,tt,st,dt,ct],styles:[`@charset "UTF-8";:host{--color-text: var(--color-text, #5d5f71);--color-text-muted: var(--color-text-muted, #9395a5);--color-bg: var(--color-bg, #f7f5fb);--color-card-bg: var(--color-card-bg, #ffffff);--color-border: var(--color-border, #ede9f6);--color-hover: var(--color-hover, #f5f2fb);--color-accent: var(--color-accent, #e84855);--radius-sm: var(--radius-sm, 6px);--radius-md: var(--radius-md, 10px);--radius-lg: var(--radius-lg, 16px);display:block;font-family:var(--font-sans, "Poppins", system-ui, -apple-system, sans-serif);color:var(--color-text)}:host>*{letter-spacing:normal;word-spacing:normal;line-height:1.5;text-transform:none;text-indent:0;font-style:normal;font-weight:400;font-variant:normal;text-align:left;white-space:normal}*,*:before,*:after{box-sizing:border-box}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius-md);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-sm{padding:6px 12px;font-size:12px}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:#d13d4a;border-color:#d13d4a;box-shadow:0 2px 8px color-mix(in srgb,var(--color-accent) 30%,transparent)}.btn-outline{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-outline:hover:not(:disabled){background:var(--color-hover);border-color:#d5d0e4}.btn-ghost{background:transparent;color:var(--color-text-muted);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-hover);color:var(--color-text)}
73
+ `,`@charset "UTF-8";.bs-page{padding:0}.bs-back{background:none;border:0;padding:0;cursor:pointer;font-family:inherit;display:inline-block;font-size:13px;color:var(--color-accent);text-decoration:none;margin-bottom:10px}.bs-back:hover{text-decoration:underline}.bs-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.bs-header__left{display:flex;flex-direction:column}.bs-header__title-row{display:flex;align-items:flex-start;gap:12px;margin-top:4px}.bs-header__icon{font-size:32px;line-height:1;padding-top:2px}.bs-header__name{font-size:22px;font-weight:700;color:var(--color-text);margin:0 0 4px}.bs-header__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.bs-header__type{font-size:12px;color:var(--color-text-muted);font-weight:500}.bs-header__actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bs-status-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px;text-transform:capitalize;letter-spacing:.3px}.bs-status--draft{background:#94a3b826;color:#64748b}.bs-status--active{background:#22c55e26;color:#16a34a}.bs-status--paused{background:#eab30826;color:#b45309}.bs-status--completed{background:#6366f126;color:#6366f1}.btn-danger{color:var(--color-accent);border-color:var(--color-accent)}.btn-danger-solid{background:var(--color-accent);color:#fff;border:none}.btn-success{background:#16a34a;color:#fff;border:none;padding:9px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.btn-success:hover{background:#15803d}.btn-success:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 12px;font-size:13px}.btn-ghost{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;padding:6px 10px;border-radius:7px;font-size:13px;font-family:var(--font-sans);transition:background .1s}.btn-ghost:hover{background:var(--color-primary-soft)}.bs-layout{display:flex;gap:0;align-items:flex-start;border:1px solid var(--color-border);border-radius:16px;overflow:hidden;min-height:600px;background:var(--color-card-bg)}.bs-stepper{flex:0 0 270px;width:270px;border-right:1px solid var(--color-border);background:var(--color-bg);display:flex;flex-direction:column;padding:12px 0}.bs-step{display:flex;align-items:center;gap:12px;padding:12px 16px;width:100%;border:none;background:transparent;text-align:left;cursor:pointer;transition:background .12s}.bs-step:hover:not([disabled]){background:var(--color-primary-soft)}.bs-step--active{background:var(--color-primary-soft)}.bs-step--locked{opacity:.5;cursor:not-allowed}.bs-step__circle{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--color-border);color:var(--color-text-muted);transition:background .12s,color .12s}.bs-step__circle--done{background:#16a34a;color:#fff}.bs-step__circle--active{background:var(--color-accent);color:#fff}.bs-step__info{flex:1;overflow:hidden}.bs-step__name{display:block;font-size:13px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.bs-step--active .bs-step__name{color:var(--color-accent);font-weight:600}.bs-step__status-label{display:block;font-size:11px;color:var(--color-text-muted);text-transform:capitalize;margin-top:1px}.bs-step__lock{font-size:13px;flex-shrink:0}.bs-content{flex:1;padding:28px;min-width:0;overflow:hidden}.bs-error{background:#e8485514;border-left:3px solid var(--color-accent);color:var(--color-accent);padding:10px 14px;border-radius:6px;font-size:13px;margin-bottom:20px}.step-panel{display:flex;flex-direction:column;gap:20px}.step-panel__head{display:flex;align-items:flex-start;gap:14px;margin-bottom:4px}.step-panel__icon{font-size:30px;line-height:1;flex-shrink:0;padding-top:2px}.step-panel__title{font-size:18px;font-weight:700;color:var(--color-text);margin:0 0 4px}.step-panel__desc{font-size:13px;color:var(--color-text-muted);margin:0}.step-panel__actions{display:flex;gap:10px;align-items:center;padding-top:8px;border-top:1px solid var(--color-border);margin-top:4px}.save-feedback{font-size:13px;font-weight:600;color:#16a34a;display:inline-flex;align-items:center;gap:4px;animation:save-pop .2s ease}@keyframes save-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:500;color:var(--color-text);display:flex;align-items:center;gap:6px}.form-optional{font-size:11px;font-weight:400;color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);padding:1px 7px;border-radius:99px}.form-hint{font-size:11px;color:var(--color-text-muted)}.form-hint--warn{color:#b45309;font-weight:600}.form-input{padding:9px 14px;border:1px solid var(--color-border);border-radius:8px;font-family:var(--font-sans);font-size:14px;color:var(--color-text);background:var(--color-bg);outline:none;width:100%;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 12%,transparent)}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-textarea{resize:vertical;min-height:80px;line-height:1.6}.form-textarea--tall{min-height:220px}.form-textarea--draft{min-height:480px;font-family:monospace;font-size:13px;line-height:1.7}.topic-actions-bar{display:flex;gap:8px;margin-top:-8px}.outline-gen-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:10px;padding:14px 16px}.outline-gen-hint{font-size:12px;color:var(--color-text-muted);flex:1}.outline-gen-ts{font-size:12px;color:#16a34a;flex:1}.kw-loading-row{font-size:13px;color:var(--color-text-muted);padding:8px 0}.kw-empty-msg{font-size:13px;color:var(--color-text-muted);background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:8px;padding:12px 14px}.kw-toolbar{display:flex;align-items:center;gap:10px}.kw-search-input{flex:1;padding:7px 12px;font-size:13px}.kw-sel-count{flex-shrink:0;font-size:12px;font-weight:600;color:var(--color-accent);white-space:nowrap}.kw-list{display:flex;flex-direction:column;gap:2px;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;max-height:280px;overflow-y:auto}.kw-item{display:flex;align-items:center;padding:9px 12px;background:var(--color-bg);border-bottom:1px solid var(--color-border);transition:background .1s}.kw-item:last-child{border-bottom:none}.kw-item:hover{background:var(--color-primary-soft)}.kw-item--checked{background:color-mix(in srgb,var(--color-accent) 5%,transparent)}.kw-item__label{flex:1;display:flex;align-items:center;gap:8px;cursor:pointer;min-width:0}.kw-item__check{flex-shrink:0;cursor:pointer;accent-color:var(--color-accent)}.kw-item__name{flex:1;font-size:13px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kw-item__vol{font-size:11px;color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);padding:1px 7px;border-radius:99px;flex-shrink:0;white-space:nowrap}.kw-item__comp{font-size:10px;font-weight:600;padding:1px 7px;border-radius:99px;flex-shrink:0;text-transform:uppercase;letter-spacing:.3px}.kw-item__comp--low{background:#22c55e1f;color:#15803d}.kw-item__comp--medium{background:#eab3081f;color:#92400e}.kw-item__comp--high{background:#e848551a;color:#be123c}.kw-item__comp--unknown,.kw-item__comp--unspecified{background:var(--color-border);color:var(--color-text-muted)}.kw-item__detail-btn{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:13px;color:var(--color-accent);padding:3px 6px;border-radius:5px;transition:background .1s}.kw-item__detail-btn:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.kw-no-results{font-size:13px;color:var(--color-text-muted);padding:12px;text-align:center}.kw-add-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.kw-add-trigger{background:none;border:1px dashed var(--color-border);border-radius:7px;color:var(--color-accent);font-size:13px;font-family:var(--font-sans);padding:7px 12px;cursor:pointer;transition:border-color .15s,background .1s}.kw-add-trigger:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 5%,transparent)}.kw-add-input{flex:1;min-width:180px;padding:7px 12px;font-size:13px}.kw-add-error{font-size:12px;color:var(--color-accent)}.seo-rec-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.seo-rec-usage{font-size:12px;color:var(--color-text-muted)}.seo-rec-empty{background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:8px;padding:14px 16px;font-size:13px;color:var(--color-text-muted)}.seo-rec-result{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.seo-rec-ts{font-size:11px;color:var(--color-text-muted);padding:8px 14px;border-bottom:1px solid var(--color-border);margin:0;background:var(--color-primary-soft)}.seo-rec-text{font-family:var(--font-sans);font-size:13px;line-height:2.1;color:var(--color-text);padding:16px;word-break:break-word}.seo-rec-text h1,.seo-rec-text h2,.seo-rec-text h3,.seo-rec-text h4,.seo-rec-text h5,.seo-rec-text h6{color:var(--color-text);font-weight:700;margin:2em 0 .8em;line-height:1.4}.seo-rec-text h1{font-size:18px}.seo-rec-text h2{font-size:16px;border-bottom:1px solid var(--color-border);padding-bottom:6px}.seo-rec-text h3{font-size:14px;color:var(--color-accent)}.seo-rec-text p{margin:0 0 1em}.seo-rec-text ul,.seo-rec-text ol{padding-left:20px;margin:0 0 1em}.seo-rec-text li{margin-bottom:6px}.seo-rec-text code{font-family:monospace;font-size:12px;background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:4px;padding:1px 5px}.seo-rec-text pre{background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:8px;padding:12px 14px;overflow-x:auto;font-size:12px}.seo-rec-text strong{font-weight:700;color:var(--color-text)}.seo-rec-text em{font-style:italic}.seo-rec-text a{color:var(--color-accent);text-decoration:underline}.seo-rec-text blockquote{border-left:3px solid var(--color-accent);padding-left:12px;color:var(--color-text-muted);margin:0 0 1em}.seo-rec-text hr{border:none;border-top:1px solid var(--color-border);margin:2em 0}.seo-rec-text>*:first-child{margin-top:0}.seo-rec-text>*:last-child{margin-bottom:0}.seo-rec-raw{border-top:1px solid var(--color-border)}.seo-rec-raw__toggle{display:flex;align-items:center;gap:6px;width:100%;padding:8px 14px;background:none;border:none;font-size:12px;color:var(--color-text-muted);cursor:pointer;font-family:var(--font-sans);text-align:left;transition:background .1s}.seo-rec-raw__toggle:hover{background:var(--color-primary-soft)}.seo-rec-raw__body{font-family:monospace;font-size:11px;line-height:1.5;color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word;padding:12px 14px;margin:0;border-top:1px solid var(--color-border);background:var(--color-bg)}.kw-detail-backdrop{position:fixed;inset:0;background:#00000059;z-index:490}.kw-detail-pane{position:fixed;top:0;right:0;width:80vw;height:100vh;background:var(--color-card-bg);border-left:1px solid var(--color-border);box-shadow:-8px 0 32px #00000026;z-index:491;overflow-y:auto;display:flex;flex-direction:column;animation:kw-pane-in .2s ease}@keyframes kw-pane-in{0%{transform:translate(32px);opacity:0}to{transform:translate(0);opacity:1}}.kw-detail-pane__header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-card-bg);z-index:1}.kw-detail-pane__title{font-size:20px;font-weight:700;color:var(--color-text);margin:0}.kw-detail-pane__close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--color-text-muted);padding:6px;border-radius:6px;transition:background .1s}.kw-detail-pane__close:hover{background:var(--color-primary-soft);color:var(--color-text)}.kw-detail-pane__body{padding:28px;display:flex;flex-direction:column;gap:28px}.kw-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.kw-detail-stat{background:var(--color-bg);border:1px solid var(--color-border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.kw-detail-stat__label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.kw-detail-stat__val{font-size:22px;font-weight:700;color:var(--color-text);line-height:1.2}.kw-detail-stat__sub{font-size:11px;color:var(--color-text-muted)}.kw-detail-stat__val--comp{font-size:16px;font-weight:700}.kw-detail-stat__val--low{color:#15803d}.kw-detail-stat__val--medium{color:#92400e}.kw-detail-stat__val--high{color:#be123c}.kw-detail-stat__val--unknown,.kw-detail-stat__val--unspecified{color:var(--color-text-muted)}.kw-detail-section{display:flex;flex-direction:column;gap:12px}.kw-detail-section__title{font-size:13px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px;margin:0}.kw-monthly-list{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto}.kw-monthly-item{display:flex;align-items:center;gap:10px;font-size:12px}.kw-monthly-item__label{flex:0 0 100px;color:var(--color-text-muted);font-size:11px}.kw-monthly-bar-wrap{flex:1;height:8px;background:var(--color-border);border-radius:99px;overflow:hidden}.kw-monthly-bar{height:100%;background:var(--color-accent);border-radius:99px;transition:width .3s ease;min-width:2px}.kw-monthly-item__val{flex:0 0 60px;text-align:right;color:var(--color-text);font-weight:500}.kw-detail-synced{font-size:11px;color:var(--color-text-muted);margin:0}.chip-input-wrapper{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);min-height:42px}.chip-input-wrapper:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 12%,transparent)}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:99px;font-size:12px;font-weight:500;background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent)}.chip--blue{background:#6366f11f;color:#6366f1}.chip__remove{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;color:inherit;padding:0;margin-left:2px;opacity:.7}.chip__remove:hover{opacity:1}.chip-input{flex:1;min-width:120px;border:none;outline:none;font-family:var(--font-sans);font-size:13px;color:var(--color-text);background:transparent}.chip-input::placeholder{color:var(--color-text-muted)}.add-link-form{display:grid;grid-template-columns:180px 1fr 1fr auto;gap:8px;align-items:start;margin-top:8px}.link-type-dropdown{position:relative;z-index:10}.link-type-backdrop{position:fixed;inset:0;z-index:9}.link-type-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);color:var(--color-text);font-size:13px;font-family:var(--font-sans);cursor:pointer;transition:border-color .15s}.link-type-trigger:hover{border-color:var(--color-accent)}.link-type-dropdown.open .link-type-trigger{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 12%,transparent)}.link-type-trigger__sel{display:flex;align-items:center;gap:8px}.link-type-trigger__chev{font-size:11px;color:var(--color-text-muted);transition:transform .15s}.link-type-trigger__chev.open{transform:rotate(180deg)}.link-type-menu{position:absolute;top:calc(100% + 4px);left:0;width:220px;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 8px 24px #0000001f;padding:6px;z-index:10;max-height:280px;overflow-y:auto}.link-type-option{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:7px;cursor:pointer;font-size:13px;color:var(--color-text);font-family:var(--font-sans);text-align:left;transition:background .1s}.link-type-option:hover{background:var(--color-primary-soft)}.link-type-option.selected{background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.link-type-option__label{flex:1;font-weight:500}.link-type-option__check{font-size:12px;color:var(--color-accent);font-weight:700}.link-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.link-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--color-bg);border:1px solid var(--color-border)}.link-item__icon{font-size:18px;flex-shrink:0}.link-item__info{flex:1;overflow:hidden}.link-item__name{display:block;font-size:13px;font-weight:500;color:var(--color-accent);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-item__name:hover{text-decoration:underline}.link-item__type{font-size:11px;color:var(--color-text-muted)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;background:transparent;cursor:pointer;font-size:13px;transition:background .12s}.icon-btn:hover{background:var(--color-primary-soft)}.icon-btn--danger:hover{background:#e848551f}.info-banner{background:#6366f114;border:1px solid rgba(99,102,241,.2);color:#6366f1;border-radius:8px;padding:10px 14px;font-size:13px}.stopgap-banner{background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:8px;padding:12px 16px;font-size:13px;color:var(--color-text-muted)}.info-text{font-size:12px;color:var(--color-text-muted);margin:0}.draft-gen-bar{display:flex;flex-direction:column;gap:10px;background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:10px;padding:14px 16px}.draft-gen-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.draft-gen-sep{width:1px;height:26px;background:var(--color-border);flex-shrink:0}.draft-token-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.draft-token-inline__label{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.wiki-btn{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;flex-shrink:0;border:1px solid var(--color-text-muted);background:transparent;font-size:9px;font-weight:700;color:var(--color-text-muted);cursor:pointer;line-height:1;padding:0}.wiki-btn:hover{background:var(--color-text-muted);color:#fff}.draft-token-input{width:90px;padding:5px 10px;font-size:13px}.draft-word-est{font-size:12px;color:var(--color-accent);font-weight:600;white-space:nowrap}.draft-token-wiki{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:14px 16px;font-size:13px;line-height:1.7;color:var(--color-text)}.draft-token-wiki p{margin:0 0 8px}.draft-token-wiki ul{margin:0 0 8px;padding-left:20px}.draft-token-wiki li{margin:3px 0}.draft-token-wiki__warning{font-size:12px;color:#b45309;margin:4px 0 0!important}.draft-gen-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:2px;border-top:1px solid var(--color-border)}.draft-gen-count{font-size:12px;font-weight:600;color:var(--color-accent)}.draft-gen-cooldown{font-size:12px;font-weight:700;color:#b45309;font-variant-numeric:tabular-nums}.draft-gen-ts{font-size:12px;color:#16a34a}.draft-gen-hint{font-size:12px;color:var(--color-text-muted)}.thinking-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px dashed var(--color-border);padding-top:10px}.thinking-unlock-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:1px dashed var(--color-border);border-radius:10px;padding:6px 14px;cursor:pointer;font-size:13px;font-weight:600;color:var(--color-text-muted);transition:border-color .15s,color .15s,background .15s}.thinking-unlock-btn:hover{border-color:#f59e0b;color:#92400e;background:#fffbeb}.thinking-off-hint{font-size:12px;color:var(--color-text-muted);font-style:italic}.thinking-on-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.thinking-on-label{font-size:13px;font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:6px}.thinking-budget-range{font-size:12px;color:var(--color-text-muted);white-space:nowrap}.thinking-off-btn{background:none;border:1px solid #fca5a5;border-radius:8px;padding:4px 12px;font-size:12px;font-weight:600;color:#dc2626;cursor:pointer;transition:background .12s}.thinking-off-btn:hover{background:#fef2f2}.thinking-active-warn{width:100%;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:500;color:#92400e}.pill--exp{display:inline-block;vertical-align:middle;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;font-size:9px;font-weight:800;letter-spacing:.8px;padding:2px 7px;border-radius:99px;text-transform:uppercase}.pill--live{display:inline-block;vertical-align:middle;background:#dcfce7;color:#15803d;border:1px solid #86efac;font-size:9px;font-weight:800;letter-spacing:.8px;padding:2px 7px;border-radius:99px;text-transform:uppercase}.thinking-modal-overlay{position:fixed;inset:0;z-index:1000;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px}.thinking-modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;padding:28px 32px;max-width:480px;width:100%;box-shadow:0 24px 80px #0000004d;display:flex;flex-direction:column;gap:16px;animation:modal-drop .2s cubic-bezier(.34,1.56,.64,1)}@keyframes modal-drop{0%{opacity:0;transform:scale(.92) translateY(-12px)}to{opacity:1;transform:scale(1) translateY(0)}}.thinking-modal__icon{font-size:40px;text-align:center;line-height:1}.thinking-modal__title{font-size:22px;font-weight:800;color:var(--color-text);margin:0;display:flex;align-items:center;justify-content:center;gap:10px}.thinking-modal__body{font-size:13px;line-height:1.75;color:var(--color-text)}.thinking-modal__body p{margin:0 0 10px}.thinking-modal__body ul{margin:0 0 10px;padding-left:20px}.thinking-modal__body li{margin:6px 0}.thinking-modal__scare{font-size:12px;color:var(--color-text-muted);font-style:italic;border-top:1px solid var(--color-border);padding-top:12px;margin:0}.thinking-modal__check{display:flex;align-items:flex-start;gap:10px;background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:12px 14px;cursor:pointer;font-size:13px;font-weight:600;color:#92400e;line-height:1.5}.thinking-modal__check input{margin-top:2px;cursor:pointer;flex-shrink:0;accent-color:#f59e0b}.thinking-modal__actions{display:flex;gap:10px;justify-content:flex-end;align-items:center}.thinking-confirm-btn{background:#f59e0b;color:#fff;border:none;border-radius:10px;padding:9px 20px;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,opacity .15s}.thinking-confirm-btn:hover:not(:disabled){background:#d97706}.thinking-confirm-btn:disabled{opacity:.35;cursor:not-allowed}.asset-toolbar{display:flex;gap:10px;flex-wrap:wrap}.asset-upload-btn{position:relative;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.asset-upload-btn.loading{opacity:.7;cursor:default}.hidden-file{position:absolute;opacity:0;width:0;height:0}.image-prompt-box{background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.image-prompt-box__actions{display:flex;gap:10px;justify-content:flex-end}.asset-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;background:var(--color-primary-soft);border-radius:12px;text-align:center;color:var(--color-text-muted);font-size:14px}.asset-empty__icon{font-size:40px}.image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.image-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:12px;overflow:hidden}.image-card__img-wrap{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--color-primary-soft)}.image-card__img{width:100%;height:100%;object-fit:cover;display:block}.image-card__overlay{position:absolute;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transition:opacity .15s}.image-card__img-wrap:hover .image-card__overlay{opacity:1}.image-card__view,.image-card__delete{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#ffffff26;color:#fff;border:none;cursor:pointer;font-size:14px;text-decoration:none;transition:background .12s}.image-card__view:hover,.image-card__delete:hover{background:#ffffff4d}.image-card__footer{padding:8px 10px;display:flex;align-items:center;gap:6px}.image-card__name{flex:1;font-size:12px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-card__badge{font-size:10px;font-weight:600;color:#6366f1;background:#6366f11f;padding:1px 6px;border-radius:99px;flex-shrink:0}.promo-section{background:var(--color-primary-soft);border:1px solid var(--color-border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:14px}.promo-section__header{margin-bottom:4px}.toggle-label{display:flex;align-items:center;gap:10px;cursor:pointer}.toggle-checkbox{display:none}.toggle-track{width:36px;height:20px;background:var(--color-border);border-radius:99px;position:relative;transition:background .2s;flex-shrink:0}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s}.toggle-checkbox:checked+.toggle-track{background:#16a34a}.toggle-checkbox:checked+.toggle-track:after{transform:translate(16px)}.toggle-text{font-size:14px;font-weight:600;color:var(--color-text)}.published-url-row{display:flex;align-items:center;gap:10px;font-size:13px}.published-url-label{font-weight:500;color:var(--color-text-muted);flex-shrink:0}.published-url-link{color:var(--color-accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis}.published-url-link:hover{text-decoration:underline}.crawl-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.crawl-last{font-size:12px;color:var(--color-text-muted)}.crawl-error{background:#e8485514;border-left:3px solid var(--color-accent);color:var(--color-accent);padding:10px 14px;border-radius:6px;font-size:13px}.crawl-results{display:flex;flex-direction:column;gap:20px}.crawl-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.crawl-stat{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:4px}.crawl-stat__label{font-size:11px;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.4px}.crawl-stat__val{font-size:18px;font-weight:700;color:var(--color-text)}.crawl-stat__val--ok{color:#16a34a}.issues-section{display:flex;flex-direction:column;gap:8px}.issues-title{font-size:14px;font-weight:600;color:var(--color-text);margin:0 0 4px}.issue-item{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:8px;font-size:13px}.issue-item--error{background:#e8485512;color:#be123c}.issue-item--warning{background:#eab30814;color:#92400e}.issue-item--info{background:#6366f112;color:#4338ca}.issue-item__icon{flex-shrink:0;line-height:1.5}.issue-item__msg{line-height:1.5}.crawl-pass{background:#22c55e14;border:1px solid rgba(34,197,94,.2);color:#16a34a;padding:12px 16px;border-radius:8px;font-size:13px;font-weight:500}.crawl-meta-preview{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}.meta-row{display:flex;gap:12px;font-size:13px}.meta-key{flex:0 0 90px;font-weight:600;color:var(--color-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding-top:2px}.meta-val{flex:1;color:var(--color-text);word-break:break-all}.modal-backdrop{position:fixed;inset:0;background:#00000073;z-index:300}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:301;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:16px;padding:32px;width:min(440px,100vw - 32px);box-shadow:var(--shadow-lg)}.modal__title{font-size:18px;font-weight:700;color:var(--color-text);margin:0 0 12px}.modal__body{font-size:14px;color:var(--color-text-muted);margin:0 0 24px;line-height:1.6}.modal__actions{display:flex;gap:10px;justify-content:flex-end}@media (max-width: 768px){.bs-layout{flex-direction:column}.bs-stepper{width:100%;border-right:none;border-bottom:1px solid var(--color-border);flex-direction:row;flex-wrap:nowrap;overflow-x:auto;padding:8px}.bs-step{flex:0 0 auto;padding:8px 12px}.bs-step__info{display:none}.add-link-form{grid-template-columns:1fr 1fr}.kw-detail-pane{width:100vw}}
74
+ `],encapsulation:3,changeDetection:0})}};export{Dt as BloomsBlogStrategyComponent};
@@ -0,0 +1 @@
1
+ import{a as o,c}from"./chunk-SPLW6L45.js";import{D as i,z as a}from"./chunk-WQW7QCHM.js";var h={facebook:"Post on Facebook",instagram:"Post on Instagram",meta:"Post on Meta",reddit:"Post on Reddit",blog:"Post a Blog",quora:"Post on Quora",twitter:"Post on Twitter/X",pinterest:"Post on Pinterest",youtube:"Post on YouTube"},v={facebook:"#1877F2",instagram:"#E1306C",meta:"#0082FB",reddit:"#FF4500",blog:"#2E7D32",quora:"#B92B27",twitter:"#000000",pinterest:"#E60023",youtube:"#FF0000"},y={facebook:"\u{1F4D8}",instagram:"\u{1F4F8}",meta:"\u{1F535}",reddit:"\u{1F534}",blog:"\u{1F4DD}",quora:"\u2753",twitter:"\u{1F426}",pinterest:"\u{1F4CC}",youtube:"\u25B6\uFE0F"},f={scheduled:"#3B82F6","in-progress":"#F59E0B",completed:"#10B981",cancelled:"#6B7280"},$=["facebook","instagram","meta","reddit","blog","quora","twitter","pinterest","youtube"],l=class n{constructor(){this.http=i(c);this.base="/api/smc"}listEvents(t,e={}){let s=new o;return e.from&&(s=s.set("from",e.from)),e.to&&(s=s.set("to",e.to)),e.platform&&(s=s.set("platform",e.platform)),e.status&&(s=s.set("status",e.status)),e.assigneeId&&(s=s.set("assigneeId",e.assigneeId)),e.page&&(s=s.set("page",String(e.page))),e.limit&&(s=s.set("limit",String(e.limit))),this.http.get(`${this.base}/projects/${t}/events`,{params:s})}createEvent(t,e){return this.http.post(`${this.base}/projects/${t}/events`,e)}getEvent(t){return this.http.get(`${this.base}/events/${t}`)}updateEvent(t,e){return this.http.put(`${this.base}/events/${t}`,e)}deleteEvent(t){return this.http.delete(`${this.base}/events/${t}`)}updateStatus(t,e){return this.http.patch(`${this.base}/events/${t}/status`,{status:e})}rescheduleEvent(t,e){return this.http.patch(`${this.base}/events/${t}/reschedule`,{scheduledAt:e})}addAssignees(t,e){return this.http.post(`${this.base}/events/${t}/assignees`,{userIds:e})}removeAssignee(t,e){return this.http.delete(`${this.base}/events/${t}/assignees/${e}`)}addLink(t,e,s,p){return this.http.post(`${this.base}/events/${t}/attachments/link`,{type:e,name:s,url:p})}uploadFile(t,e){let s=new FormData;return s.append("file",e),this.http.post(`${this.base}/events/${t}/attachments/upload`,s)}removeAttachment(t,e){return this.http.delete(`${this.base}/events/${t}/attachments/${e}`)}getUpcomingEvents(t){return this.http.get(`${this.base}/projects/${t}/events/upcoming`)}getOverdueEvents(t){return this.http.get(`${this.base}/projects/${t}/events/overdue`)}isOverdue(t){return new Date(t.scheduledAt)<new Date&&t.status!=="completed"&&t.status!=="cancelled"}static{this.\u0275fac=function(e){return new(e||n)}}static{this.\u0275prov=a({token:n,factory:n.\u0275fac,providedIn:"root"})}};var r="/api/ums",g=class n{constructor(){this.http=i(c)}listPolicyGroups(){return this.http.get(`${r}/policy-groups`)}createPolicyGroup(t){return this.http.post(`${r}/policy-groups`,t)}updatePolicyGroup(t,e){return this.http.patch(`${r}/policy-groups/${t}`,e)}deletePolicyGroup(t){return this.http.delete(`${r}/policy-groups/${t}`)}listProjectAccess(t){return this.http.get(`${r}/project-access/${t}`)}getProjectMembers(t){return this.http.get(`${r}/project-access/${t}/members`)}grantAccess(t,e){return this.http.post(`${r}/project-access/${t}`,e)}updateAccess(t,e,s){return this.http.patch(`${r}/project-access/${t}/${e}`,s)}revokeAccess(t,e){return this.http.delete(`${r}/project-access/${t}/${e}`)}searchUsers(t){return this.http.get(`${r}/users`,{params:new o().set("q",t)})}getSharedProjects(){return this.http.get(`${r}/shared-projects`)}static{this.\u0275fac=function(e){return new(e||n)}}static{this.\u0275prov=a({token:n,factory:n.\u0275fac,providedIn:"root"})}};export{h as a,v as b,y as c,f as d,$ as e,l as f,g};
@@ -0,0 +1,3 @@
1
+ import{a as H}from"./chunk-IRBW4XXQ.js";import{a as U}from"./chunk-X2Q5WSIJ.js";import{c as $,e as G,h as L,s as R}from"./chunk-VQEBAAHK.js";import{a as W}from"./chunk-HLIQJSA7.js";import"./chunk-SPLW6L45.js";import{$a as j,Ca as _,Cb as h,D as C,Ga as y,J as x,Ja as P,K as f,La as b,Oa as D,Pa as M,Qa as t,Ra as i,S,Sa as w,Ta as E,Ua as m,V as B,Va as p,W as g,Wa as r,Xa as c,Ya as K,a as I,ab as z,bb as V,eb as u,fb as v,gb as k,nb as F,pa as a,tb as N,vb as O,xa as T,xb as A}from"./chunk-WQW7QCHM.js";var q=(n,o)=>o._id;function Q(n,o){n&1&&(w(0,"span",10),r(1," Adding\u2026 "))}function X(n,o){n&1&&r(0," + Add Keyword ")}function Y(n,o){if(n&1){let e=E();t(0,"div",7),r(1),t(2,"button",11),m("click",function(){x(e);let l=p();return f(l.addError.set(null))}),r(3,"\u2715"),i()()}if(n&2){let e=p();a(),K("",e.addError()," ")}}function Z(n,o){n&1&&(t(0,"div",8),w(1,"div",12),t(2,"p"),r(3,"Loading keywords\u2026"),i()())}function ee(n,o){n&1&&(t(0,"div",9)(1,"span",13),r(2,"\u{1F511}"),i(),t(3,"h3"),r(4,"No keywords yet"),i(),t(5,"p"),r(6,"Add your first keyword above. blooms.ai will pull search volume, competition, and performance data from Google Ads and Search Console."),i()())}function te(n,o){if(n&1&&(t(0,"span",33),r(1),i()),n&2){let e=p().$implicit;P("comp-"+e.competition.toLowerCase()),a(),c(e.competition)}}function oe(n,o){n&1&&(t(0,"span",25),r(1,"\u2014"),i())}function ie(n,o){n&1&&w(0,"span",31)}function ne(n,o){n&1&&r(0," \u21BB ")}function re(n,o){n&1&&w(0,"span",31)}function de(n,o){n&1&&r(0," \u2715 ")}function ae(n,o){if(n&1){let e=E();t(0,"tr",19),m("click",function(){let l=x(e).$implicit,s=p(2);return f(s.goToDetail(l._id))}),t(1,"td",20)(2,"span",21),r(3),i()(),t(4,"td",22),r(5),u(6,"number"),i(),t(7,"td",23),_(8,te,2,3,"span",24)(9,oe,2,0,"span",25),i(),t(10,"td",23),r(11),u(12,"number"),i(),t(13,"td",23),r(14),u(15,"number"),i(),t(16,"td",26),r(17),u(18,"number"),i(),t(19,"td",23),r(20),u(21,"number"),i(),t(22,"td",27),r(23),u(24,"number"),i(),t(25,"td",28),r(26),u(27,"date"),i(),t(28,"td",29),m("click",function(l){return x(e),f(l.stopPropagation())}),t(29,"button",30),m("click",function(){let l=x(e).$implicit,s=p(2);return f(s.syncKeyword(l))}),_(30,ie,1,0,"span",31)(31,ne,1,0),i(),t(32,"button",32),m("click",function(){let l=x(e).$implicit,s=p(2);return f(s.deleteKeyword(l))}),_(33,re,1,0,"span",31)(34,de,1,0),i()()()}if(n&2){let e=o.$implicit,d=p(2);a(3),c(e.keyword),a(2),c(e.searchVolume!=null?v(6,13,e.searchVolume):"\u2014"),a(3),b(e.competition&&e.competition!=="UNSPECIFIED"&&e.competition!=="UNKNOWN"?8:9),a(3),c(e.lowTopOfPageBidMicros!=null?"$"+k(12,15,e.lowTopOfPageBidMicros/1e6,"1.2-2"):"\u2014"),a(3),c(e.highTopOfPageBidMicros!=null?"$"+k(15,18,e.highTopOfPageBidMicros/1e6,"1.2-2"):"\u2014"),a(3),c(e.gscClicks!=null?v(18,21,e.gscClicks):"\u2014"),a(3),c(e.gscImpressions!=null?v(21,23,e.gscImpressions):"\u2014"),a(3),c(e.gscPosition!=null?k(24,25,e.gscPosition,"1.1-1"):"\u2014"),a(3),K(" ",e.lastSyncedAt?k(27,28,e.lastSyncedAt,"MMM d"):"Pending\u2026"," "),a(3),y("disabled",d.syncingId()===e._id),a(),b(d.syncingId()===e._id?30:31),a(2),y("disabled",d.deletingId()===e._id),a(),b(d.deletingId()===e._id?33:34)}}function le(n,o){if(n&1&&(t(0,"div",14)(1,"table",15)(2,"thead")(3,"tr")(4,"th"),r(5,"Keyword"),i(),t(6,"th",16),r(7,"Search Vol."),i(),t(8,"th",16),r(9,"Competition"),i(),t(10,"th",16),r(11,"CPC (low)"),i(),t(12,"th",16),r(13,"CPC (high)"),i(),t(14,"th",16),r(15,"GSC Clicks"),i(),t(16,"th",16),r(17,"GSC Impr."),i(),t(18,"th",16),r(19,"GSC Pos."),i(),t(20,"th",16),r(21,"Last Synced"),i(),w(22,"th"),i()(),t(23,"tbody"),D(24,ae,35,31,"tr",17,q),i()()(),t(26,"p",18),r(27," \u{1F4A1} Click a keyword row to view detailed charts and analysis. Metrics sync automatically when a keyword is added (background). Use \u21BB to re-sync manually. "),i()),n&2){let e=p();a(24),M(e.keywords())}}var J=class n{constructor(){this.keywordService=C(H);this.host=C(B);this._projectId="";this.bloomsnavigate=new S;this.bloomserror=new S;this.needsSignIn=F(()=>h.config()!==null&&h.session()===null);this.keywords=g([]);this.loading=g(!0);this.adding=g(!1);this.addError=g(null);this.syncingId=g(null);this.deletingId=g(null);this.newKeyword=""}set projectId(o){this._projectId=o??""}get activeProjectId(){return this._projectId||h.project()?.id||""}ngOnInit(){let o=this.host.nativeElement.shadowRoot;if(o&&U(o),this.needsSignIn()){this.loading.set(!1);return}if(!this.activeProjectId){this.loading.set(!1),this.bloomserror.emit({code:"NO_PROJECT",message:"No project to show. Pass project-id, or sign in first."});return}this.loadKeywords()}loadKeywords(){this.loading.set(!0),this.keywordService.list(this.activeProjectId).subscribe({next:o=>{this.keywords.set(o.data),this.loading.set(!1)},error:()=>this.loading.set(!1)})}addKeyword(){let o=this.newKeyword.trim();!o||this.adding()||(this.adding.set(!0),this.addError.set(null),this.keywordService.add(this.activeProjectId,o).subscribe({next:e=>{this.keywords.update(d=>[...d,e.data].sort((l,s)=>l.keyword.localeCompare(s.keyword))),this.newKeyword="",this.adding.set(!1)},error:e=>{this.addError.set(e.error?.message||"Failed to add keyword"),this.adding.set(!1)}}))}syncKeyword(o){this.syncingId()||(this.syncingId.set(o._id),this.keywordService.sync(o._id).subscribe({next:e=>{this.keywords.update(d=>d.map(l=>l._id===o._id?e.data:l)),this.syncingId.set(null)},error:()=>this.syncingId.set(null)}))}deleteKeyword(o){this.deletingId()||(this.deletingId.set(o._id),this.keywordService.delete(o._id).subscribe({next:()=>{this.keywords.update(e=>e.filter(d=>d._id!==o._id)),this.deletingId.set(null)},error:()=>this.deletingId.set(null)}))}goToDetail(o){let e={feature:"keywords",view:"detail",params:{keywordId:o,projectId:this.activeProjectId}};this.bloomsnavigate.emit(e),h.emit(I({type:"navigate"},e))}static{this.\u0275fac=function(e){return new(e||n)}}static{this.\u0275cmp=T({type:n,selectors:[["blooms-keywords"]],inputs:{projectId:"projectId"},outputs:{bloomsnavigate:"bloomsnavigate",bloomserror:"bloomserror"},decls:16,vars:6,consts:[[1,"kp-page"],[1,"kp-page__header"],[1,"kp-page__title"],[1,"kp-page__subtitle"],[1,"kp-add-bar"],["type","text","placeholder","Enter a keyword to track\u2026",1,"kp-add-input",3,"ngModelChange","keydown.enter","ngModel","disabled"],[1,"kp-add-btn",3,"click","disabled"],[1,"kp-error-banner"],[1,"kp-loading"],[1,"kp-empty"],[1,"kp-spinner"],["appTooltip","Dismiss",3,"click"],[1,"kp-spinner-lg"],[1,"kp-empty__icon"],[1,"kp-table-card"],[1,"kp-table"],[1,"num-th"],[1,"kp-row"],[1,"kp-hint"],[1,"kp-row",3,"click"],[1,"kw-cell"],[1,"kw-text"],[1,"num-cell","vol-val"],[1,"num-cell"],[1,"comp-badge",3,"class"],[1,"muted"],[1,"num-cell","click-val"],[1,"num-cell","pos-val"],[1,"num-cell","muted"],[1,"action-cell",3,"click"],["appTooltip","Sync now",1,"kp-sync-btn",3,"click","disabled"],[1,"kp-spinner","kp-spinner--sm"],["appTooltip","Delete",1,"kp-del-btn",3,"click","disabled"],[1,"comp-badge"]],template:function(e,d){e&1&&(t(0,"div",0)(1,"div",1)(2,"div")(3,"h2",2),r(4,"\u{1F511} Keywords Planner"),i(),t(5,"p",3),r(6,"Track keywords and pull metrics from Google Ads Keyword Planner & Search Console."),i()()(),t(7,"div",4)(8,"input",5),V("ngModelChange",function(s){return z(d.newKeyword,s)||(d.newKeyword=s),s}),m("keydown.enter",function(){return d.addKeyword()}),i(),t(9,"button",6),m("click",function(){return d.addKeyword()}),_(10,Q,2,0)(11,X,1,0),i()(),_(12,Y,4,1,"div",7)(13,Z,4,0,"div",8)(14,ee,7,0,"div",9)(15,le,28,0),i()),e&2&&(a(8),j("ngModel",d.newKeyword),y("disabled",d.adding()),a(),y("disabled",d.adding()||!d.newKeyword.trim()),a(),b(d.adding()?10:11),a(2),b(d.addError()?12:-1),a(),b(d.loading()?13:d.keywords().length===0?14:15))},dependencies:[A,O,N,R,$,G,L,W],styles:[`@charset "UTF-8";:host{--color-text: var(--color-text, #5d5f71);--color-text-muted: var(--color-text-muted, #9395a5);--color-bg: var(--color-bg, #f7f5fb);--color-card-bg: var(--color-card-bg, #ffffff);--color-border: var(--color-border, #ede9f6);--color-hover: var(--color-hover, #f5f2fb);--color-accent: var(--color-accent, #e84855);--radius-sm: var(--radius-sm, 6px);--radius-md: var(--radius-md, 10px);--radius-lg: var(--radius-lg, 16px);display:block;font-family:var(--font-sans, "Poppins", system-ui, -apple-system, sans-serif);color:var(--color-text)}:host>*{letter-spacing:normal;word-spacing:normal;line-height:1.5;text-transform:none;text-indent:0;font-style:normal;font-weight:400;font-variant:normal;text-align:left;white-space:normal}*,*:before,*:after{box-sizing:border-box}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius-md);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-sm{padding:6px 12px;font-size:12px}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:#d13d4a;border-color:#d13d4a;box-shadow:0 2px 8px color-mix(in srgb,var(--color-accent) 30%,transparent)}.btn-outline{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-outline:hover:not(:disabled){background:var(--color-hover);border-color:#d5d0e4}.btn-ghost{background:transparent;color:var(--color-text-muted);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-hover);color:var(--color-text)}
2
+ `,`.kp-page{padding:24px;max-width:1200px}.kp-page__header{margin-bottom:20px}.kp-page__title{font-size:22px;font-weight:700;color:var(--color-text);margin:0 0 4px}.kp-page__subtitle{font-size:13px;color:var(--color-text-muted);margin:0}.kp-add-bar{display:flex;gap:10px;margin-bottom:16px}.kp-add-input{flex:1;padding:9px 14px;border-radius:8px;border:1.5px solid var(--color-border);background:var(--color-card-bg);color:var(--color-text);font-size:13px;outline:none;transition:border-color .15s}.kp-add-input:focus{border-color:#2563eb}.kp-add-input:disabled{opacity:.6}.kp-add-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.kp-add-btn:hover:not([disabled]){background:#1d4ed8}.kp-add-btn[disabled]{opacity:.6;cursor:not-allowed}.kp-error-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;margin-bottom:14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:13px;color:#dc2626}.kp-error-banner button{background:none;border:none;cursor:pointer;color:#dc2626;font-size:14px}.kp-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:80px 24px;color:var(--color-text-muted);font-size:14px}.kp-spinner-lg{width:36px;height:36px;border-radius:50%;border:3px solid var(--color-border);border-top-color:#2563eb;animation:spin .8s linear infinite}.kp-spinner{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}.kp-spinner--sm{border-color:var(--color-border);border-top-color:#2563eb;width:10px;height:10px}@keyframes spin{to{transform:rotate(360deg)}}.kp-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:80px 24px;text-align:center;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:12px}.kp-empty__icon{font-size:48px}.kp-empty h3{font-size:18px;font-weight:700;color:var(--color-text);margin:0}.kp-empty p{font-size:13px;color:var(--color-text-muted);margin:0;max-width:480px}.kp-table-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:12px;overflow:auto;margin-bottom:14px}.kp-table{width:100%;border-collapse:collapse;font-size:12px}.kp-table th{padding:10px 12px;text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap}.num-th{text-align:right}.kp-row{cursor:pointer;transition:background .12s}.kp-row:hover td{background:var(--color-hover)}.kp-table td{padding:9px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text)}.kp-table tr:last-child td{border-bottom:none}.kw-cell{min-width:140px}.kw-text{font-weight:600;color:var(--color-text)}.num-cell{text-align:right;white-space:nowrap;color:var(--color-text-muted)}.vol-val{color:#2563eb;font-weight:600}.click-val{color:#16a34a;font-weight:600}.pos-val{color:#d97706;font-weight:600}.muted{color:var(--color-text-muted)}.comp-badge{display:inline-block;font-size:9px;font-weight:700;padding:2px 7px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}.comp-low{background:#dcfce7;color:#166534}.comp-medium{background:#fef3c7;color:#92400e}.comp-high{background:#fee2e2;color:#991b1b}.action-cell{white-space:nowrap;text-align:right}.kp-sync-btn,.kp-del-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-card-bg);cursor:pointer;font-size:13px;color:var(--color-text-muted);transition:background .12s,color .12s}.kp-sync-btn:hover:not([disabled]),.kp-del-btn:hover:not([disabled]){background:var(--color-hover);color:var(--color-text)}.kp-sync-btn[disabled],.kp-del-btn[disabled]{opacity:.5;cursor:not-allowed}.kp-del-btn{margin-left:4px}.kp-del-btn:hover:not([disabled]){background:#fef2f2;color:#dc2626;border-color:#fecaca}.kp-hint{font-size:12px;color:var(--color-text-muted);padding:0 2px}
3
+ `],encapsulation:3,changeDetection:0})}};export{J as BloomsKeywordsComponent};