fixmind 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard/assets/{index-ob1AhjSS.js → index--ym2DnLk.js} +1 -1
- package/dist/dashboard/index.html +5 -5
- package/dist/src/cli-sync.js +2 -2
- package/dist/src/cli-sync.js.map +1 -1
- package/dist/src/dashboard.js +1 -1
- package/dist/src/dashboard.js.map +1 -1
- package/dist/src/sync-backend.d.ts +1 -0
- package/dist/src/sync-backend.js +3 -0
- package/dist/src/sync-backend.js.map +1 -1
- package/dist/src/sync.d.ts +3 -2
- package/dist/src/sync.js +35 -9
- package/dist/src/sync.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,4 +11,4 @@ https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(
|
|
|
11
11
|
`,1;if(P>1e5&&P>r.index*3)throw Error(`potential infinite loop, way more iterations than matches`);return M+=a,a.length}let D=j(e);if(!D)throw ge(s.replace(`{}`,e)),Error(`Unknown language: "`+e+`"`);let O=Te(D),ee=``,k=a||O,te={},A=new l.__emitter(l);w();let M=``,ne=0,N=0,P=0,re=!1;try{if(D.__emitTokens)D.__emitTokens(n,A);else{for(k.matcher.considerAll();;){P++,re?re=!1:k.matcher.considerAll(),k.matcher.lastIndex=N;let e=k.matcher.exec(n);if(!e)break;let t=E(n.substring(N,e.index),e);N=e.index+t}E(n.substring(N))}return A.finalize(),ee=A.toHTML(),{language:e,value:ee,relevance:ne,illegal:!1,_emitter:A,_top:k}}catch(t){if(t.message&&t.message.includes(`Illegal`))return{language:e,value:Ae(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:N,context:n.slice(N-100,N+100),mode:t.mode,resultSoFar:ee},_emitter:A};if(o)return{language:e,value:Ae(n),illegal:!1,relevance:0,errorRaised:t,_emitter:A,_top:k};throw t}}function b(e){let t={value:Ae(e),illegal:!1,relevance:0,_top:c,_emitter:new l.__emitter(l)};return t._emitter.addText(e),t}function S(e,n){n=n||l.languages||Object.keys(t);let r=b(e),i=n.filter(j).filter(ne).map(t=>v(t,e,!1));i.unshift(r);let[a,o]=i.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(j(e.language).supersetOf===t.language)return 1;if(j(t.language).supersetOf===e.language)return-1}return 0}),s=a;return s.secondBest=o,s}function C(e,t,n){let r=t&&i[t]||n;e.classList.add(`hljs`),e.classList.add(`language-${r}`)}function w(e){let t=null,n=d(e);if(u(n))return;if(ie(`before:highlightElement`,{el:e,language:n}),e.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);return}if(e.children.length>0&&(l.ignoreUnescapedHTML||(console.warn(`One of your code blocks includes unescaped HTML. This is a potentially serious security risk.`),console.warn(`https://github.com/highlightjs/highlight.js/wiki/security`),console.warn(`The element with unescaped HTML:`),console.warn(e)),l.throwUnescapedHTML))throw new ke(`One of your code blocks includes unescaped HTML.`,e.innerHTML);t=e;let r=t.textContent,i=n?p(r,{language:n,ignoreIllegals:!0}):S(r);e.innerHTML=i.value,e.dataset.highlighted=`yes`,C(e,n,i.language),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),ie(`after:highlightElement`,{el:e,result:i,text:r})}function T(e){l=je(l,e)}let E=()=>{ee(),ve(`10.6.0`,`initHighlighting() deprecated. Use highlightAll() now.`)};function D(){ee(),ve(`10.6.0`,`initHighlightingOnLoad() deprecated. Use highlightAll() now.`)}let O=!1;function ee(){function e(){ee()}if(document.readyState===`loading`){O||window.addEventListener(`DOMContentLoaded`,e,!1),O=!0;return}document.querySelectorAll(l.cssSelector).forEach(w)}function k(n,r){let i=null;try{i=r(e)}catch(e){if(ge(`Language definition for '{}' could not be registered.`.replace(`{}`,n)),o)ge(e);else throw e;i=c}i.name||=n,t[n]=i,i.rawDefinition=r.bind(null,e),i.aliases&&M(i.aliases,{languageName:n})}function te(e){delete t[e];for(let t of Object.keys(i))i[t]===e&&delete i[t]}function A(){return Object.keys(t)}function j(e){return e=(e||``).toLowerCase(),t[e]||t[i[e]]}function M(e,{languageName:t}){typeof e==`string`&&(e=[e]),e.forEach(e=>{i[e.toLowerCase()]=t})}function ne(e){let t=j(e);return t&&!t.disableAutodetect}function N(e){e[`before:highlightBlock`]&&!e[`before:highlightElement`]&&(e[`before:highlightElement`]=t=>{e[`before:highlightBlock`](Object.assign({block:t.el},t))}),e[`after:highlightBlock`]&&!e[`after:highlightElement`]&&(e[`after:highlightElement`]=t=>{e[`after:highlightBlock`](Object.assign({block:t.el},t))})}function P(e){N(e),a.push(e)}function re(e){let t=a.indexOf(e);t!==-1&&a.splice(t,1)}function ie(e,t){let n=e;a.forEach(function(e){e[n]&&e[n](t)})}function oe(e){return ve(`10.7.0`,`highlightBlock will be removed entirely in v12.0`),ve(`10.7.0`,`Please use highlightElement now.`),w(e)}Object.assign(e,{highlight:p,highlightAuto:S,highlightAll:ee,highlightElement:w,highlightBlock:oe,configure:T,initHighlighting:E,initHighlightingOnLoad:D,registerLanguage:k,unregisterLanguage:te,listLanguages:A,getLanguage:j,registerAliases:M,autoDetection:ne,inherit:je,addPlugin:P,removePlugin:re}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=Oe,e.regex={concat:_,lookahead:m,either:y,optional:g,anyNumberOfTimes:h};for(let e in ae)typeof ae[e]==`object`&&n(ae[e]);return Object.assign(e,ae),e},Fe=Pe({});Fe.newInstance=()=>Pe({}),t.exports=Fe,Fe.HighlightJS=Fe,Fe.default=Fe}))()).default,me=`[A-Za-z$_][0-9A-Za-z$_]*`,he=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),ge=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],_e=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),ve=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],ye=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],be=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],xe=[].concat(ye,_e,ve);function Se(e){let t=e.regex,n=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},r=me,i={begin:`<>`,end:`</>`},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let r=e[0].length+e.index,i=e.input[r];if(i===`<`||i===`,`){t.ignoreMatch();return}i===`>`&&(n(e,{after:r})||t.ignoreMatch());let a,o=e.input.substring(r);if(a=o.match(/^\s*=/)){t.ignoreMatch();return}if((a=o.match(/^\s+extends\s+/))&&a.index===0){t.ignoreMatch();return}}},s={$pattern:me,keyword:he,literal:ge,built_in:xe,"variable.language":be},c=`[0-9](_?[0-9])*`,l=`\\.(${c})`,u=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,d={className:`number`,variants:[{begin:`(\\b(${u})((${l})|\\.)?|(${l}))[eE][+-]?(${c})\\b`},{begin:`\\b(${u})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},f={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:s,contains:[]},p={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`xml`}},m={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`css`}},h={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`graphql`}},g={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,f]},_={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:`[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},v=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,m,h,g,{match:/\$\d+/},d];f.contains=v.concat({begin:/\{/,end:/\}/,keywords:s,contains:[`self`].concat(v)});let y=[].concat(_,f.contains),b=y.concat([{begin:/(\s*)\(/,end:/\)/,keywords:s,contains:[`self`].concat(y)}]),x={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:b},S={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,`(`,t.concat(/\./,r),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,r],scope:{1:`keyword`,3:`title.class`}}]},C={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[..._e,...ve]}},w={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},T={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[x],illegal:/%/},E={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function D(e){return t.concat(`(?!`,e.join(`|`),`)`)}let O={match:t.concat(/\b/,D([...ye,`super`,`import`].map(e=>`${e}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},ee={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},k={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},x]},te=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,A={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(te)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[x]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:s,exports:{PARAMS_CONTAINS:b,CLASS_REFERENCE:C},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),w,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,m,h,g,_,{match:/\$\d+/},d,C,{scope:`attr`,match:r+t.lookahead(`:`),relevance:0},A,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[_,e.REGEXP_MODE,{className:`function`,begin:te,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:b}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:a},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:`xml`,contains:[{begin:o.begin,end:o.end,skip:!0,contains:[`self`]}]}]},T,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[x,e.inherit(e.TITLE_MODE,{begin:r,className:`title.function`})]},{match:/\.\.\./,relevance:0},ee,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[x]},O,E,S,k,{match:/\$[(.]/}]}}function Ce(e){let t=e.regex,n=Se(e),r=me,i=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],a={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},o={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:i},contains:[n.exports.CLASS_REFERENCE]},s={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},c={$pattern:me,keyword:he.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:ge,built_in:xe.concat(i),"variable.language":be},l={className:`meta`,begin:`@[A-Za-z$_][0-9A-Za-z$_]*`},u=(e,t,n)=>{let r=e.contains.findIndex(e=>e.label===t);if(r===-1)throw Error(`can not find mode to replace`);e.contains.splice(r,1,n)};Object.assign(n.keywords,c),n.exports.PARAMS_CONTAINS.push(l);let d=n.contains.find(e=>e.scope===`attr`),f=Object.assign({},d,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,d,f]),n.contains=n.contains.concat([l,a,o,f]),u(n,`shebang`,e.SHEBANG()),u(n,`use_strict`,s);let p=n.contains.find(e=>e.label===`func.def`);return p.relevance=0,Object.assign(n,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),n}var we=`[A-Za-z$_][0-9A-Za-z$_]*`,Te=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),Ee=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],De=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),Oe=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],ke=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],Ae=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],je=[].concat(ke,De,Oe);function Me(e){let t=e.regex,n=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},r=we,i={begin:`<>`,end:`</>`},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let r=e[0].length+e.index,i=e.input[r];if(i===`<`||i===`,`){t.ignoreMatch();return}i===`>`&&(n(e,{after:r})||t.ignoreMatch());let a,o=e.input.substring(r);if(a=o.match(/^\s*=/)){t.ignoreMatch();return}if((a=o.match(/^\s+extends\s+/))&&a.index===0){t.ignoreMatch();return}}},s={$pattern:we,keyword:Te,literal:Ee,built_in:je,"variable.language":Ae},c=`[0-9](_?[0-9])*`,l=`\\.(${c})`,u=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,d={className:`number`,variants:[{begin:`(\\b(${u})((${l})|\\.)?|(${l}))[eE][+-]?(${c})\\b`},{begin:`\\b(${u})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},f={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:s,contains:[]},p={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`xml`}},m={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`css`}},h={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:`graphql`}},g={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,f]},_={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:`[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},v=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,m,h,g,{match:/\$\d+/},d];f.contains=v.concat({begin:/\{/,end:/\}/,keywords:s,contains:[`self`].concat(v)});let y=[].concat(_,f.contains),b=y.concat([{begin:/(\s*)\(/,end:/\)/,keywords:s,contains:[`self`].concat(y)}]),x={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:b},S={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,`(`,t.concat(/\./,r),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,r],scope:{1:`keyword`,3:`title.class`}}]},C={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...De,...Oe]}},w={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},T={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[x],illegal:/%/},E={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function D(e){return t.concat(`(?!`,e.join(`|`),`)`)}let O={match:t.concat(/\b/,D([...ke,`super`,`import`].map(e=>`${e}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},ee={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},k={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},x]},te=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,A={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(te)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[x]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:s,exports:{PARAMS_CONTAINS:b,CLASS_REFERENCE:C},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),w,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,m,h,g,_,{match:/\$\d+/},d,C,{scope:`attr`,match:r+t.lookahead(`:`),relevance:0},A,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[_,e.REGEXP_MODE,{className:`function`,begin:te,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:b}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:a},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:`xml`,contains:[{begin:o.begin,end:o.end,skip:!0,contains:[`self`]}]}]},T,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[x,e.inherit(e.TITLE_MODE,{begin:r,className:`title.function`})]},{match:/\.\.\./,relevance:0},ee,{match:`\\$[A-Za-z$_][0-9A-Za-z$_]*`,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[x]},O,E,S,k,{match:/\$[(.]/}]}}function Ne(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=`and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.match.nonlocal|10.not.or.pass.raise.return.try.while.with.yield`.split(`.`),i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:`__import__.abs.all.any.ascii.bin.bool.breakpoint.bytearray.bytes.callable.chr.classmethod.compile.complex.delattr.dict.dir.divmod.enumerate.eval.exec.filter.float.format.frozenset.getattr.globals.hasattr.hash.help.hex.id.input.int.isinstance.issubclass.iter.len.list.locals.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.range.repr.reversed.round.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.vars.zip`.split(`.`),literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},a={className:`meta`,begin:/^(>>>|\.\.\.) /},o={className:`subst`,begin:/\{/,end:/\}/,keywords:i,illegal:/#/},s={begin:/\{\{/,relevance:0},c={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},l=`[0-9](_?[0-9])*`,u=`(\\b(${l}))?\\.(${l})|\\b(${l})\\.`,d=`\\b|${r.join(`|`)}`,f={className:`number`,relevance:0,variants:[{begin:`(\\b(${l})|(${u}))[eE][+-]?(${l})[jJ]?(?=${d})`},{begin:`(${u})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${l})[jJ](?=${d})`}]},p={className:`comment`,begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:[`self`,a,f,c,e.HASH_COMMENT_MODE]}]};return o.contains=[c,f,a],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[a,f,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},c,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:`keyword`,3:`title.function`},contains:[m]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[f,m,c]}]}}function Pe(e){let t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),i=t.concat(n,e.IDENT_RE),a={className:`title.function.invoke`,relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,t.lookahead(/\s*\(/))},o=`abstract.as.async.await.become.box.break.const.continue.crate.do.dyn.else.enum.extern.false.final.fn.for.if.impl.in.let.loop.macro.match.mod.move.mut.override.priv.pub.ref.return.self.Self.static.struct.super.trait.true.try.type.typeof.union.unsafe.unsized.use.virtual.where.while.yield`.split(`.`),s=[`true`,`false`,`Some`,`None`,`Ok`,`Err`],c=`drop .Copy.Send.Sized.Sync.Drop.Fn.FnMut.FnOnce.ToOwned.Clone.Debug.PartialEq.PartialOrd.Eq.Ord.AsRef.AsMut.Into.From.Default.Iterator.Extend.IntoIterator.DoubleEndedIterator.ExactSizeIterator.SliceConcatExt.ToString.assert!.assert_eq!.bitflags!.bytes!.cfg!.col!.concat!.concat_idents!.debug_assert!.debug_assert_eq!.env!.eprintln!.panic!.file!.format!.format_args!.include_bytes!.include_str!.line!.local_data_key!.module_path!.option_env!.print!.println!.select!.stringify!.try!.unimplemented!.unreachable!.vec!.write!.writeln!.macro_rules!.assert_ne!.debug_assert_ne!`.split(`.`),l=[`i8`,`i16`,`i32`,`i64`,`i128`,`isize`,`u8`,`u16`,`u32`,`u64`,`u128`,`usize`,`f32`,`f64`,`str`,`char`,`bool`,`Box`,`Option`,`Result`,`String`,`Vec`];return{name:`Rust`,aliases:[`rs`],keywords:{$pattern:e.IDENT_RE+`!?`,type:l,keyword:o,literal:s,built_in:c},illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(`/\\*`,`\\*/`,{contains:[`self`]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:`symbol`,begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:`string`,variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:`char.escape`,match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:`number`,variants:[{begin:`\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?`},{begin:`\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?`}],relevance:0},{begin:[/fn/,/\s+/,r],className:{1:`keyword`,3:`title.function`}},{className:`meta`,begin:`#!?\\[`,end:`\\]`,contains:[{className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,r],className:{1:`keyword`,3:`keyword`,4:`variable`}},{begin:[/for/,/\s+/,r,/\s+/,/in/],className:{1:`keyword`,3:`variable`,5:`keyword`}},{begin:[/type/,/\s+/,r],className:{1:`keyword`,3:`title.class`}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,r],className:{1:`keyword`,3:`title.class`}},{begin:e.IDENT_RE+`::`,keywords:{keyword:`Self`,built_in:c,type:l}},{className:`punctuation`,begin:`->`},a]}}function Fe(e){let t={keyword:[`break`,`case`,`chan`,`const`,`continue`,`default`,`defer`,`else`,`fallthrough`,`for`,`func`,`go`,`goto`,`if`,`import`,`interface`,`map`,`package`,`range`,`return`,`select`,`struct`,`switch`,`type`,`var`],type:[`bool`,`byte`,`complex64`,`complex128`,`error`,`float32`,`float64`,`int8`,`int16`,`int32`,`int64`,`string`,`uint8`,`uint16`,`uint32`,`uint64`,`int`,`uint`,`uintptr`,`rune`],literal:[`true`,`false`,`iota`,`nil`],built_in:[`append`,`cap`,`close`,`complex`,`copy`,`imag`,`len`,`make`,`new`,`panic`,`print`,`println`,`real`,`recover`,`delete`]};return{name:`Go`,aliases:[`golang`],keywords:t,illegal:`</`,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`string`,variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:`number`,variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:`function`,beginKeywords:`func`,end:`\\s*(\\{|$)`,excludeEnd:!0,contains:[e.TITLE_MODE,{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:t,illegal:/["']/}]}]}}var Ie=`[0-9](_*[0-9])*`,Le=`\\.(${Ie})`,Re=`[0-9a-fA-F](_*[0-9a-fA-F])*`,ze={className:`number`,variants:[{begin:`(\\b(${Ie})((${Le})|\\.)?|(${Le}))[eE][+-]?(${Ie})[fFdD]?\\b`},{begin:`\\b(${Ie})((${Le})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Le})[fFdD]?\\b`},{begin:`\\b(${Ie})[fFdD]\\b`},{begin:`\\b0[xX]((${Re})\\.?|(${Re})?\\.(${Re}))[pP][+-]?(${Ie})[fFdD]?\\b`},{begin:`\\b(0|[1-9](_*[0-9])*)[lL]?\\b`},{begin:`\\b0[xX](${Re})[lL]?\\b`},{begin:`\\b0(_*[0-7])*[lL]?\\b`},{begin:`\\b0[bB][01](_*[01])*[lL]?\\b`}],relevance:0};function Be(e,t,n){return n===-1?``:e.replace(t,r=>Be(e,t,n-1))}function Ve(e){let t=e.regex,n=`[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*`,r=n+Be(`(?:<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*~~~(?:\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*~~~)*>)?`,/~~~/g,2),i={keyword:`synchronized.abstract.private.var.static.if.const .for.while.strictfp.finally.protected.import.native.final.void.enum.else.break.transient.catch.instanceof.volatile.case.assert.package.default.public.try.switch.continue.throws.protected.public.private.module.requires.exports.do.sealed.yield.permits.goto.when`.split(`.`),literal:[`false`,`true`,`null`],type:[`char`,`boolean`,`long`,`float`,`int`,`byte`,`short`,`double`],built_in:[`super`,`this`]},a={className:`meta`,begin:`@[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*`,contains:[{begin:/\(/,end:/\)/,contains:[`self`]}]},o={className:`params`,begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:`Java`,aliases:[`jsp`],keywords:i,illegal:/<\/|#/,contains:[e.COMMENT(`/\\*\\*`,`\\*/`,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:`doctag`,begin:`@[A-Za-z]+`}]}),{begin:/import java\.[a-z]+\./,keywords:`import`,relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:`string`,contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:`keyword`,3:`title.class`}},{match:/non-sealed/,scope:`keyword`},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:`type`,3:`variable`,5:`operator`}},{begin:[/record/,/\s+/,n],className:{1:`keyword`,3:`title.class`},contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:`new throw return else`,relevance:0},{begin:[`(?:`+r+`\\s+)`,e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:`title.function`},keywords:i,contains:[{className:`params`,begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,ze,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},ze,a]}}function He(e){let t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:[`self`,{begin:/:-/,contains:[n]}]};Object.assign(n,{className:`variable`,variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},r]});let i={className:`subst`,begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:`comment`}}),o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:`string`})]}},s={className:`string`,begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(s);let c={match:/\\"/},l={className:`string`,begin:/'/,end:/'/},u={match:/\\'/},d={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:`number`},e.NUMBER_MODE,n]},f=e.SHEBANG({binary:`(${[`fish`,`bash`,`zsh`,`sh`,`csh`,`ksh`,`tcsh`,`dash`,`scsh`].join(`|`)})`,relevance:10}),p={className:`function`,begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=[`if`,`then`,`else`,`elif`,`fi`,`time`,`for`,`while`,`until`,`in`,`do`,`done`,`case`,`esac`,`coproc`,`function`,`select`],h=[`true`,`false`],g={match:/(\/[a-z._-]+)+/},_=[`break`,`cd`,`continue`,`eval`,`exec`,`exit`,`export`,`getopts`,`hash`,`pwd`,`readonly`,`return`,`shift`,`test`,`times`,`trap`,`umask`,`unset`],v=[`alias`,`bind`,`builtin`,`caller`,`command`,`declare`,`echo`,`enable`,`help`,`let`,`local`,`logout`,`mapfile`,`printf`,`read`,`readarray`,`source`,`sudo`,`type`,`typeset`,`ulimit`,`unalias`],y=`autoload.bg.bindkey.bye.cap.chdir.clone.comparguments.compcall.compctl.compdescribe.compfiles.compgroups.compquote.comptags.comptry.compvalues.dirs.disable.disown.echotc.echoti.emulate.fc.fg.float.functions.getcap.getln.history.integer.jobs.kill.limit.log.noglob.popd.print.pushd.pushln.rehash.sched.setcap.setopt.stat.suspend.ttyctl.unfunction.unhash.unlimit.unsetopt.vared.wait.whence.where.which.zcompile.zformat.zftp.zle.zmodload.zparseopts.zprof.zpty.zregexparse.zsocket.zstyle.ztcp`.split(`.`),b=`chcon.chgrp.chown.chmod.cp.dd.df.dir.dircolors.ln.ls.mkdir.mkfifo.mknod.mktemp.mv.realpath.rm.rmdir.shred.sync.touch.truncate.vdir.b2sum.base32.base64.cat.cksum.comm.csplit.cut.expand.fmt.fold.head.join.md5sum.nl.numfmt.od.paste.ptx.pr.sha1sum.sha224sum.sha256sum.sha384sum.sha512sum.shuf.sort.split.sum.tac.tail.tr.tsort.unexpand.uniq.wc.arch.basename.chroot.date.dirname.du.echo.env.expr.factor.groups.hostid.id.link.logname.nice.nohup.nproc.pathchk.pinky.printenv.printf.pwd.readlink.runcon.seq.sleep.stat.stdbuf.stty.tee.test.timeout.tty.uname.unlink.uptime.users.who.whoami.yes`.split(`.`);return{name:`Bash`,aliases:[`sh`,`zsh`],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:m,literal:h,built_in:[..._,...v,`set`,`shopt`,...y,...b]},contains:[f,e.SHEBANG(),p,d,a,o,g,s,c,l,u,n]}}var Ue=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),We=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),Ge=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),Ke=[...We,...Ge],qe=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),Je=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),Ye=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),Xe=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse();function Ze(e){let t=e.regex,n=Ue(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i=/@-?\w[\w]*(-\w+)*/,a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:`CSS`,case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:`from to`},classNameAliases:{keyframePosition:`selector-tag`},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:`selector-id`,begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:`selector-class`,begin:`\\.[a-zA-Z-][a-zA-Z0-9_-]*`,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,variants:[{begin:`:(`+Je.join(`|`)+`)`},{begin:`:(:)?(`+Ye.join(`|`)+`)`}]},n.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+Xe.join(`|`)+`)\\b`},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:`url data-uri`},contains:[...a,{className:`string`,begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:`[{;]`,relevance:0,illegal:/:/,contains:[{className:`keyword`,begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:qe.join(` `)},contains:[{begin:/[a-z-]+(?=:)/,className:`attribute`},...a,n.CSS_NUMBER_MODE]}]},{className:`selector-tag`,begin:`\\b(`+Ke.join(`|`)+`)\\b`}]}}function Qe(e){let t={className:`attr`,begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:`punctuation`,relevance:0},r=[`true`,`false`,`null`],i={scope:`literal`,beginKeywords:r.join(` `)};return{name:`JSON`,aliases:[`jsonc`],keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:`\\S`}}function $e(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:`symbol`,begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:`keyword`,begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(a,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:`string`}),c=e.inherit(e.QUOTE_STRING_MODE,{className:`string`}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:`attr`,begin:r,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:`string`,endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:`HTML, XML`,aliases:[`html`,`xhtml`,`rss`,`atom`,`xjb`,`xsd`,`xsl`,`plist`,`wsf`,`svg`],case_insensitive:!0,unicodeRegex:!0,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,relevance:10,contains:[a,c,s,o,{begin:/\[/,end:/\]/,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,contains:[a,o,c,s]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{className:`meta`,end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:`tag`,begin:/<style(?=\s|>)/,end:/>/,keywords:{name:`style`},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:[`css`,`xml`]}},{className:`tag`,begin:/<script(?=\s|>)/,end:/>/,keywords:{name:`script`},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:[`javascript`,`handlebars`,`xml`]}},{className:`tag`,begin:/<>|<\/>/},{className:`tag`,begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:`name`,begin:n,relevance:0,starts:l}]},{className:`tag`,begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:`name`,begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function et(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=0,s=0;for(;o<n&&s<r;)e[o]===t[s]?(a.push({type:`equal`,value:e[o]}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`remove`,value:e[o]}),o++):(a.push({type:`add`,value:t[s]}),s++);for(;o<n;)a.push({type:`remove`,value:e[o++]});for(;s<r;)a.push({type:`add`,value:t[s++]});return a}var tt=/\w+|\s+|[^\w\s]/g;function nt(e){return e.match(tt)??[]}function rt(e){let t=[];for(let n of e){let e=t[t.length-1];e&&n[0]===e[1]?e[1]=n[1]:t.push([n[0],n[1]])}return t}function it(e,t){let n=et(nt(e),nt(t)),r=[],i=[],a=0,o=0;for(let e of n){let t=e.value.length;e.type===`equal`?(a+=t,o+=t):e.type===`remove`?(r.push([a,a+t]),a+=t):(i.push([o,o+t]),o+=t)}return{aRanges:rt(r),bRanges:rt(i)}}function at(e,t,n){let r=et(e.split(`
|
|
12
12
|
`),t.split(`
|
|
13
13
|
`)),i=[],a=0;for(;a<r.length;){if(r[a].type===`equal`){i.push({text:r[a].value,changedRanges:[]}),a++;continue}let e=[],t=[];for(;a<r.length&&r[a].type!==`equal`;)r[a].type===`remove`?e.push(r[a].value):t.push(r[a].value),a++;let o=Math.min(e.length,t.length);n===`bad`?e.forEach((e,n)=>{let r=n<o?it(e,t[n]).aRanges:[[0,e.length]];i.push({text:e,changedRanges:r})}):t.forEach((t,n)=>{let r=n<o?it(e[n],t).bRanges:[[0,t.length]];i.push({text:t,changedRanges:r})})}return i}pe.registerLanguage(`typescript`,Ce),pe.registerLanguage(`javascript`,Me),pe.registerLanguage(`python`,Ne),pe.registerLanguage(`rust`,Pe),pe.registerLanguage(`go`,Fe),pe.registerLanguage(`java`,Ve),pe.registerLanguage(`bash`,He),pe.registerLanguage(`css`,Ze),pe.registerLanguage(`json`,Qe),pe.registerLanguage(`xml`,$e);var ot={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,mjs:`javascript`,cjs:`javascript`,py:`python`,rs:`rust`,go:`go`,java:`java`,sh:`bash`,bash:`bash`,zsh:`bash`,css:`css`,scss:`css`,json:`json`,html:`xml`,htm:`xml`,svg:`xml`,xml:`xml`},st=new Set([`typescript`,`javascript`]),ct=/^<\/?[A-Za-z>]/;function lt(e){for(let t of e){let e=t.split(`.`).pop()?.toLowerCase();if(e&&ot[e])return ot[e]}}function ut(e,t){let n=e.trim();if(!n)return` `;if(t&&st.has(t)&&ct.test(n))return pe.highlight(e,{language:`xml`}).value;if(t&&pe.getLanguage(t)){let n=st.has(t)?[t,`xml`]:[t];return pe.highlightAuto(e,n).value}return pe.highlightAuto(e).value}var dt=`bg-danger/30 rounded-sm`,ft=`bg-positive/30 rounded-sm`;function pt(e,t,n){if(t.length===0)return e;let r=document.createElement(`div`);r.innerHTML=e;let i=document.createTreeWalker(r,NodeFilter.SHOW_TEXT),a=[],o=0,s;for(;s=i.nextNode();)a.push(s),o+=(s.textContent??``).length;let c=Array(o).fill(!1);for(let[e,n]of t)for(let t=Math.max(0,e);t<Math.min(n,o);t++)c[t]=!0;let l=0;for(let e of a){let t=e.textContent??``,r=[],i=0;for(;i<t.length;){let e=c[l+i],a=i+1;for(;a<t.length&&c[l+a]===e;)a++;let o=t.slice(i,a);if(e){let e=document.createElement(`mark`);e.className=n,e.textContent=o,r.push(e)}else r.push(document.createTextNode(o));i=a}l+=t.length;let a=e.parentNode;if(a){for(let t of r)a.insertBefore(t,e);a.removeChild(e)}}return r.innerHTML}function mt(e,t,n){return pt(ut(e.text,t),e.changedRanges,n)}function ht({value:e,compareWith:t,kind:n,label:r,filesChanged:i=[]}){let a=(0,C.useMemo)(()=>lt(i),[i]),o=(0,C.useMemo)(()=>t===void 0?e.split(`
|
|
14
|
-
`).map(e=>({text:e,changedRanges:[]})):at(n===`bad`?e:t,n===`bad`?t:e,n),[e,t,n]),s=n===`bad`?dt:ft;return(0,L.jsxs)(`div`,{className:`overflow-hidden border border-line`,children:[(0,L.jsx)(`div`,{className:`border-b border-line px-3 py-2 font-mono text-[10px] font-bold uppercase tracking-[.2em] ${n===`bad`?`text-danger`:`text-positive`}`,children:r}),(0,L.jsx)(`pre`,{className:`m-0 h-full overflow-auto bg-surface py-2 font-mono text-xs leading-relaxed text-ink`,children:o.map((e,t)=>(0,L.jsx)(`div`,{className:`px-4 whitespace-pre-wrap`,dangerouslySetInnerHTML:{__html:mt(e,a,s)}},t))})]})}var gt=`mt-10 mb-4 border-t border-line pt-8 text-2xl font-semibold tracking-tight`,_t=`font-mono text-[10px] uppercase tracking-[.2em] text-muted`,vt=`border border-line px-2 py-0.5 font-mono text-[11px] text-ink`;function yt({value:e,onChange:t}){let n=`flex cursor-pointer items-center gap-1.5 border-0 bg-transparent p-0 transition`;return(0,L.jsxs)(`div`,{className:`mt-3 mb-1 flex gap-5 font-mono text-[10px] uppercase tracking-[.2em]`,children:[(0,L.jsxs)(`button`,{className:`${n} ${e===`got`?`text-positive`:`text-muted hover:text-ink`}`,onClick:()=>t(`got`),children:[(0,L.jsx)(ee,{className:`size-3`}),` Nailed it`]}),(0,L.jsxs)(`button`,{className:`${n} ${e===`partial`?`text-accent`:`text-muted hover:text-ink`}`,onClick:()=>t(`partial`),children:[(0,L.jsx)(A,{className:`size-3`}),` Partly`]}),(0,L.jsxs)(`button`,{className:`${n} ${e===`missed`?`text-danger`:`text-muted hover:text-ink`}`,onClick:()=>t(`missed`),children:[(0,L.jsx)(N,{className:`size-3`}),` Missed it`]})]})}function bt({answer:e,reference:t}){let n=e.trim();if(!n)return null;if(n.split(/\s+/).length<4)return(0,L.jsx)(`p`,{className:`mt-3 text-sm leading-relaxed text-muted italic`,children:`That’s a short answer - before you self-check, try writing a full sentence explaining the reasoning, not just naming the topic.`});let{ratio:r,missingTerms:i,hasSignal:a}=fe(n,t);return!a||r>=.5?null:(0,L.jsxs)(`p`,{className:`mt-3 text-sm leading-relaxed text-muted italic`,children:[`Your answer may not cover: `,i.slice(0,4).join(`, `),`. Re-read the explanation above - if your reasoning gets to the same idea in different words, "Nailed it" is still fair, but if it doesn’t, mark this "Partly" or "Missed it" instead.`]})}function xt({prompt:e,reveal:t,referenceText:n,reviewMode:r,answer:i,onAnswerChange:a,revealed:o,onToggleReveal:s,check:c,onCheck:l}){return r?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`text-base leading-relaxed text-muted`,children:e}),(0,L.jsx)(`textarea`,{className:`mt-3 min-h-24 w-full border border-line bg-surface p-3 text-ink outline-none focus:border-accent`,value:i,onChange:e=>a(e.target.value),placeholder:`Answer in your own words before revealing`}),(0,L.jsxs)(`button`,{className:`mt-3 flex cursor-pointer items-center gap-2 border-0 bg-transparent p-0 font-mono text-[10px] uppercase tracking-[.2em] text-muted transition hover:text-accent`,onClick:s,children:[(0,L.jsx)(k,{className:`size-3 transition-transform ${o?`rotate-180`:``}`}),o?`Hide`:`Reveal`]}),(0,L.jsx)(`div`,{className:`mt-3 grid transition-[grid-template-rows] duration-300 ease-out ${o?`grid-rows-[1fr]`:`grid-rows-[0fr]`}`,children:(0,L.jsxs)(`div`,{className:`overflow-hidden`,children:[t,(0,L.jsx)(bt,{answer:i,reference:n}),(0,L.jsx)(yt,{value:c,onChange:l})]})})]}):(0,L.jsx)(L.Fragment,{children:t})}function St({lesson:e,reviewMode:t,onBack:n,onStartReview:r,onSave:i,onDelete:a}){let[o,s]=(0,C.useState)({}),[c,l]=(0,C.useState)(``),[u,d]=(0,C.useState)(``),[f,p]=(0,C.useState)(!1),[m,h]=(0,C.useState)({}),[g,_]=(0,C.useState)({});if((0,C.useEffect)(()=>{s({}),l(``),d(``),p(!1),h({}),_({})},[e?.id,t]),!e)return(0,L.jsxs)(`section`,{className:`mt-10 border border-line bg-page p-8 text-ink`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.2em] text-muted hover:text-ink`,onClick:n,children:`← All lessons`}),(0,L.jsx)(`h1`,{className:`mt-6 font-serif text-3xl font-bold tracking-tight`,children:`Lesson not found`}),(0,L.jsx)(`p`,{className:`mt-3 max-w-xl text-base leading-relaxed text-muted`,children:`The lesson may have been deleted, or the link no longer points to a valid id.`})]});let v=e.badCodeExample??`A broken example was not captured for this lesson.`,y=e.goodCodeExample??e.codeExample??`A corrected example was not captured for this lesson.`,b=!!(e.badCodeExample||e.goodCodeExample||e.codeExample),x=!!(e.badCodeExample&&(e.goodCodeExample||e.codeExample));async function S(){if(!c){d(`Choose how well you understand the lesson.`);return}try{await i(o,c)}catch(e){d(e instanceof Error?e.message:String(e))}}let w=e.reviewQuestions.length,T=e.reviewQuestions.filter(e=>g[e.id]).length,E=[`__rootCause`,...e.whenNotApplicable?[`__scope`]:[],...e.reviewQuestions.map(e=>e.id)],D=E.reduce((e,t)=>g[t]===`got`?e+1:g[t]===`partial`?e+.5:e,0),O=E.filter(e=>g[e]).length;return(0,L.jsxs)(`section`,{className:`mt-10 border border-line bg-page text-ink shadow-[0_40px_100px_-30px_rgba(0,0,0,0.35)]`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between border-b border-line px-9 py-4 max-sm:px-5`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.2em] text-muted hover:text-ink`,onClick:n,children:`← All lessons`}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 text-muted hover:text-ink`,onClick:n,"aria-label":`Back to all lessons`,children:(0,L.jsx)(N,{className:`size-5`})})]}),(0,L.jsxs)(`article`,{className:`px-9 py-8 max-sm:px-5 max-sm:py-6`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-3 gap-y-1 font-mono text-[11px] uppercase tracking-[.2em] text-muted`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,L.jsx)(`span`,{children:e.displayPattern}),(0,L.jsx)(`span`,{children:`·`}),(0,L.jsx)(`span`,{children:re(e.createdAt)}),(0,L.jsx)(`span`,{children:`·`}),(0,L.jsx)(`span`,{children:e.tool})]}),(0,L.jsxs)(`span`,{className:`flex items-center gap-1.5 ${I(e.understanding)}`,children:[(0,L.jsx)(`span`,{className:`size-1.5 rounded-full bg-current`}),F(e.understanding)]})]}),(0,L.jsx)(`h1`,{className:`mt-3 font-serif text-4xl leading-tight font-bold tracking-tight max-sm:text-3xl`,children:e.title}),(0,L.jsx)(`p`,{className:`mt-3 text-lg leading-relaxed text-muted`,children:e.displayTakeaway}),(0,L.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center gap-2`,children:[e.concepts.map(e=>(0,L.jsx)(`span`,{className:vt,children:e},e)),e.tags?.map(e=>e.url?(0,L.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`${vt} text-accent no-underline hover:border-accent`,children:[e.name,` ↗`]},e.name):(0,L.jsx)(`span`,{className:`${vt} text-accent`,children:e.name},e.name))]}),e.originalPrompt&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`h2`,{className:gt,children:`The prompt`}),(0,L.jsxs)(`blockquote`,{className:`border-l-2 border-line pl-4 text-base leading-relaxed text-muted italic`,children:[`“`,e.originalPrompt,`”`]})]}),(0,L.jsx)(`h2`,{className:gt,children:`What broke`}),(0,L.jsx)(`p`,{className:`text-base leading-relaxed`,children:e.problem}),(0,L.jsx)(`h2`,{className:gt,children:`Why it happened`}),(0,L.jsx)(xt,{prompt:`Before reading on: what was the mistake, and - more importantly - what was the root cause behind it (not just the symptom)?`,referenceText:`${e.mistake} ${e.rootCause} ${e.fixSummary}`,reviewMode:t,answer:o.__rootCause??``,onAnswerChange:e=>s(t=>({...t,__rootCause:e})),revealed:!!m.__rootCause,onToggleReveal:()=>h(e=>({...e,__rootCause:!e.__rootCause})),check:g.__rootCause,onCheck:e=>_(t=>({...t,__rootCause:e})),reveal:(0,L.jsxs)(`div`,{className:`grid gap-5`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:_t,children:`What went wrong`}),(0,L.jsx)(`p`,{className:`mt-1.5 text-base leading-relaxed`,children:e.mistake})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:_t,children:`Root cause`}),(0,L.jsx)(`p`,{className:`mt-1.5 text-base leading-relaxed`,children:e.rootCause})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:_t,children:`Why the fix works`}),(0,L.jsx)(`p`,{className:`mt-1.5 text-base leading-relaxed`,children:e.fixSummary})]})]})}),(0,L.jsx)(`h2`,{className:gt,children:`Broken and corrected code`}),b?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 max-[640px]:grid-cols-1`,children:[(0,L.jsx)(ht,{label:`Broken approach`,value:v,compareWith:x?y:void 0,kind:`bad`,filesChanged:e.filesChanged}),(0,L.jsx)(ht,{label:`Correct approach`,value:y,compareWith:x?v:void 0,kind:`good`,filesChanged:e.filesChanged})]}),e.codeExplanation&&(0,L.jsxs)(`div`,{className:`mt-5`,children:[(0,L.jsx)(`div`,{className:_t,children:`Key difference`}),(0,L.jsx)(`p`,{className:`mt-1.5 text-base leading-relaxed`,children:e.codeExplanation})]})]}):(0,L.jsx)(`p`,{className:`text-base leading-relaxed text-muted`,children:`No useful code comparison was captured for this lesson.`}),(0,L.jsx)(`h2`,{className:gt,children:`When this doesn’t apply`}),e.whenNotApplicable?(0,L.jsx)(xt,{prompt:`Before reading on: in what situation would this lesson's advice be wrong or unnecessary?`,referenceText:e.whenNotApplicable,reviewMode:t,answer:o.__scope??``,onAnswerChange:e=>s(t=>({...t,__scope:e})),revealed:!!m.__scope,onToggleReveal:()=>h(e=>({...e,__scope:!e.__scope})),check:g.__scope,onCheck:e=>_(t=>({...t,__scope:e})),reveal:(0,L.jsx)(`p`,{className:`text-base leading-relaxed`,children:e.whenNotApplicable})}):(0,L.jsx)(`p`,{className:`text-base leading-relaxed`,children:`Not captured for this lesson.`}),e.filesChanged.length>0&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`h2`,{className:gt,children:`Files involved`}),(0,L.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:e.filesChanged.map(e=>(0,L.jsx)(`span`,{className:vt,children:e},e))})]}),(0,L.jsxs)(`div`,{className:`mt-10 border-t border-line pt-8`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-3`,children:[(0,L.jsx)(`h2`,{className:`text-2xl font-semibold tracking-tight`,children:`Check your understanding`}),w>0&&(0,L.jsxs)(`span`,{className:`font-mono text-[10px] uppercase tracking-[.2em] text-muted`,children:[T,` / `,w,` self-checked`]})]}),w>0&&(0,L.jsx)(`div`,{className:`mt-3 h-px w-full bg-line`,children:(0,L.jsx)(`div`,{className:`h-px bg-accent transition-[width] duration-300`,style:{width:`${T/w*100}%`}})}),e.reviewQuestions.map((e,n)=>{let r=!!m[e.id],i=g[e.id];return(0,L.jsxs)(`div`,{className:`grid grid-cols-[2.5rem_1fr] gap-4 border-t border-line py-6 first:border-t-0`,children:[(0,L.jsx)(`div`,{className:`font-serif text-3xl leading-none text-muted/30`,children:String(n+1).padStart(2,`0`)}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`text-base font-medium`,children:e.question}),t&&(0,L.jsx)(`textarea`,{className:`mt-3 min-h-24 w-full border border-line bg-surface p-3 text-ink outline-none focus:border-accent`,value:o[e.id]??``,onChange:t=>s({...o,[e.id]:t.target.value}),placeholder:`Answer in your own words before revealing the expected answer`}),(0,L.jsxs)(`button`,{className:`mt-3 flex cursor-pointer items-center gap-2 border-0 bg-transparent p-0 font-mono text-[10px] uppercase tracking-[.2em] text-muted transition hover:text-accent`,onClick:()=>h(t=>({...t,[e.id]:!r})),children:[(0,L.jsx)(k,{className:`size-3 transition-transform ${r?`rotate-180`:``}`}),r?`Hide expected answer`:`Reveal expected answer`]}),(0,L.jsx)(`div`,{className:`mt-3 grid transition-[grid-template-rows] duration-300 ease-out ${r?`grid-rows-[1fr]`:`grid-rows-[0fr]`}`,children:(0,L.jsxs)(`div`,{className:`overflow-hidden`,children:[(0,L.jsx)(`p`,{className:`text-sm leading-relaxed text-muted`,children:e.expectedAnswer}),t&&(0,L.jsx)(bt,{answer:o[e.id]??``,reference:e.expectedAnswer}),(0,L.jsx)(yt,{value:i,onChange:t=>_(n=>({...n,[e.id]:t}))})]})})]})]},e.id)})]}),e.reviewQuestions.some(e=>e.userAnswer)&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`h2`,{className:gt,children:`Your previous answers`}),(0,L.jsx)(`div`,{className:`grid gap-4`,children:e.reviewQuestions.filter(e=>e.userAnswer).map(e=>(0,L.jsxs)(`div`,{className:`border-l-2 border-line pl-3 text-sm text-muted`,children:[(0,L.jsx)(`p`,{className:`font-medium text-ink`,children:e.question}),(0,L.jsx)(`p`,{className:`mt-1`,children:e.userAnswer})]},e.id))})]}),u&&(0,L.jsx)(`p`,{className:`mt-6 text-sm text-danger`,children:u}),t?(0,L.jsxs)(`div`,{className:`mt-8 border-t border-line pt-8`,children:[(0,L.jsxs)(`p`,{className:`mb-4 font-mono text-[11px] uppercase tracking-[.15em] text-muted`,children:[`Self-check score: `,D,` / `,E.length,` (`,O,` / `,E.length,` checked)`]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-4`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,L.jsxs)(`select`,{className:`border border-line bg-surface p-2.5 text-ink outline-none focus:border-accent`,value:c,onChange:e=>l(e.target.value),children:[(0,L.jsx)(`option`,{value:``,children:`Choose result`}),(0,L.jsx)(`option`,{value:`understood`,children:`Learned`}),(0,L.jsx)(`option`,{value:`partial`,children:`Not learned`})]}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-accent px-4 py-2.5 font-mono text-[11px] font-bold uppercase tracking-[.2em] text-page`,onClick:()=>void S(),children:`Save review`})]}),(0,L.jsx)(Ct,{confirming:f,onRequest:()=>p(!0),onCancel:()=>p(!1),onConfirm:()=>a(e.id)})]})]}):(0,L.jsx)(`div`,{className:`mt-8 border-t border-line pt-8`,children:(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-4`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-accent px-4 py-2.5 font-mono text-[11px] font-bold uppercase tracking-[.2em] text-page`,onClick:r,children:`Test my recall`}),(0,L.jsx)(Ct,{confirming:f,onRequest:()=>p(!0),onCancel:()=>p(!1),onConfirm:()=>a(e.id)})]})})]})]})}function Ct({confirming:e,onRequest:t,onCancel:n,onConfirm:r}){let i=(0,C.useRef)(null);return(0,C.useEffect)(()=>{e?i.current?.open||i.current?.showModal():i.current?.close()},[e]),(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.2em] text-muted hover:text-danger`,onClick:t,children:`Delete lesson`}),(0,L.jsxs)(`dialog`,{ref:i,className:`fixed top-1/2 left-1/2 z-50 w-[min(420px,calc(100vw-32px))] -translate-x-1/2 -translate-y-1/2 border border-line bg-page p-6 text-ink shadow-[0_40px_100px_-30px_rgba(0,0,0,0.7)]`,onClose:n,onClick:e=>{e.target===i.current&&n()},children:[(0,L.jsx)(`p`,{className:`text-base leading-relaxed`,children:`Delete this lesson? This can’t be undone.`}),(0,L.jsxs)(`div`,{className:`mt-6 flex justify-end gap-5 font-mono text-[11px] uppercase tracking-[.2em]`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 text-muted hover:text-ink`,onClick:n,children:`Cancel`}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-bold text-danger hover:underline`,onClick:r,children:`Delete`})]})]})]})}function wt({side:e}){let t=`margin-art-${e}`;return(0,L.jsxs)(`svg`,{"aria-hidden":`true`,className:`pointer-events-none fixed top-0 bottom-0 ${e===`left`?`left-0`:`right-0`} hidden w-24 text-muted/15 2xl:block`,preserveAspectRatio:`xMidYMid slice`,viewBox:`0 0 64 2000`,children:[(0,L.jsx)(`defs`,{children:(0,L.jsxs)(`pattern`,{id:t,width:`64`,height:`200`,patternUnits:`userSpaceOnUse`,children:[(0,L.jsx)(`line`,{x1:`32`,y1:`0`,x2:`32`,y2:`200`,stroke:`currentColor`,strokeWidth:`1`}),(0,L.jsx)(`circle`,{cx:`32`,cy:`30`,r:`5`,fill:`currentColor`}),(0,L.jsx)(`circle`,{cx:`32`,cy:`100`,r:`5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,L.jsx)(`circle`,{cx:`32`,cy:`170`,r:`5`,fill:`currentColor`})]})}),(0,L.jsx)(`rect`,{width:`64`,height:`2000`,fill:`url(#${t})`})]})}function Tt({data:e,selectedWeek:t,onSelectWeek:n}){if(e.lessonsPerWeek.reduce((e,t)=>e+t.count,0)===0)return(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`More lessons are needed to show your progress.`});let r=e.lessonsPerWeek.map(t=>{let n=e.understandingByWeek.find(e=>e.weekStart===t.weekStart)?.understood??0,r=t.count-n;return{...t,learned:n,notLearned:r}}),i=Math.max(...r.map(e=>e.count),1);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`flex items-end gap-1.5`,children:r.map(e=>{let r=e.weekStart===t;return(0,L.jsxs)(`button`,{type:`button`,className:`flex flex-1 cursor-pointer flex-col items-center gap-1.5 border-0 bg-transparent p-0`,onClick:()=>n(e.weekStart),children:[(0,L.jsxs)(`div`,{className:`relative h-32 w-full overflow-hidden bg-line ${r?`ring-2 ring-accent ring-inset`:``}`,children:[e.notLearned>0&&(0,L.jsx)(`div`,{className:`absolute bottom-0 left-0 flex w-full items-end justify-center bg-warn/85 pb-1 font-mono text-[10px] text-page`,style:{height:`${e.notLearned/i*100}%`},title:`${ae(e.weekStart)}: ${e.notLearned} not learned`,children:e.notLearned}),e.learned>0&&(0,L.jsx)(`div`,{className:`absolute left-0 flex w-full items-start justify-center bg-positive pt-1 font-mono text-[10px] text-page`,style:{height:`${e.learned/i*100}%`,bottom:`${e.notLearned/i*100}%`},title:`${ae(e.weekStart)}: ${e.learned} learned`,children:e.learned})]}),(0,L.jsx)(`span`,{className:`font-mono text-[9px] ${r?`font-bold text-accent`:`text-muted`}`,children:ae(e.weekStart)})]},e.weekStart)})}),(0,L.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-4 font-mono text-[10px] uppercase tracking-[.15em] text-muted`,children:[(0,L.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,L.jsx)(`span`,{className:`size-2 bg-positive`}),`Learned`]}),(0,L.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,L.jsx)(`span`,{className:`size-2 bg-warn/85`}),`Not learned`]})]})]})}function Et({items:e}){return e.length?(0,L.jsx)(`div`,{className:`grid gap-3`,children:e.slice(0,6).map(e=>(0,L.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 text-sm`,children:[(0,L.jsx)(`span`,{className:`text-muted`,children:e.name}),(0,L.jsx)(`span`,{className:`font-mono text-xs font-semibold text-accent`,children:e.count})]},e.name))}):(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`More lessons are needed to show a pattern.`})}async function Dt(e,t,n=`Request failed.`){let r=await fetch(e,t);if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e.error??n)}}async function Ot(e,t,n=`Request failed.`){let r=await fetch(e,t);if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e.error??n)}return r.json()}async function kt(e=``){return Ot(`/api/dashboard?q=${encodeURIComponent(e)}`,void 0,`Could not load lessons.`)}async function At(e,t,n){await Dt(`/api/lessons/${encodeURIComponent(e)}/review`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({answers:t,understanding:n})},`Could not save review.`)}async function jt(e){await Dt(`/api/lessons/${encodeURIComponent(e)}`,{method:`DELETE`},`Could not delete lesson.`)}function Mt(e){return`/api/export?format=${e}`}async function Nt(){await Dt(`/api/reset`,{method:`POST`},`Could not reset lessons.`)}async function Pt(){return Ot(`/api/sync/pull`,{method:`POST`},`Could not sync pull lessons.`)}async function Ft(){return Ot(`/api/sync/status`,void 0,`Could not load sync status.`)}var It=8;function Lt(){let e=(window.location.pathname.replace(/\/+$/,``)||`/`).match(/^\/lessons\/([^/]+)$/);return e?{kind:`lesson`,lessonId:decodeURIComponent(e[1]),review:new URLSearchParams(window.location.search).get(`review`)===`1`}:{kind:`dashboard`}}function Rt(e,t=!1){return`/lessons/${encodeURIComponent(e)}${t?`?review=1`:``}`}function zt(){let[e,t]=(0,C.useState)(null),[n,r]=(0,C.useState)(``),[i,a]=(0,C.useState)(`all`),[o,s]=(0,C.useState)(`all`),[c,l]=(0,C.useState)(null),[u,d]=(0,C.useState)(()=>Lt()),[f,p]=(0,C.useState)(``),[m,h]=(0,C.useState)(``),[g,_]=(0,C.useState)(null),[v,y]=(0,C.useState)(!1),[b,x]=(0,C.useState)(!1),[S,w]=(0,C.useState)(1),[T,E]=(0,C.useState)(!1),D=(0,C.useRef)(null);(0,C.useEffect)(()=>{T?D.current?.open||D.current?.showModal():D.current?.close()},[T]),(0,C.useEffect)(()=>{let e=()=>d(Lt());return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[]);async function O(){p(``);try{t(await kt(n))}catch(e){p(e instanceof Error?e.message:String(e))}}async function ee(){y(!0),p(``),h(``);try{let e=await Pt();e.pulled>0?h(`Pulled ${e.pulled} lesson(s), applied ${e.applied} update(s).`):h(`No new lessons to pull.`)}catch(e){h(e instanceof Error?`Sync pull skipped: ${e.message}`:`Sync pull skipped.`)}try{await O(),_(await Ft())}finally{y(!1)}}(0,C.useEffect)(()=>{let e=setTimeout(()=>{O()},180);return()=>clearTimeout(e)},[n]),(0,C.useEffect)(()=>{Ft().then(_).catch(()=>_(null))},[]);let k=(0,C.useMemo)(()=>e?.models??[],[e]),te=(0,C.useMemo)(()=>k.map(({name:e,count:t})=>({tool:e,count:t})),[k]),A=(0,C.useMemo)(()=>e?.lessons.filter(e=>i===`all`||i===`learning`&&e.understanding!==`understood`||i===`understood`&&e.understanding===`understood`)??[],[e,i]),j=(0,C.useMemo)(()=>A.filter(e=>(o===`all`||e.tool===o.slice(5))&&(c===null||oe(e.createdAt)===c)),[o,c,A]),M=Math.max(1,Math.ceil(j.length/It)),ne=(0,C.useMemo)(()=>j.slice((S-1)*It,S*It),[j,S]);(0,C.useEffect)(()=>{w(1)},[i,o,c,n]);let N=(0,C.useMemo)(()=>u.kind===`lesson`?e?.lessons.find(e=>e.id===u.lessonId)??null:null,[e,u]);function P(e,t=!1){t?window.history.replaceState({},``,e):window.history.pushState({},``,e),d(Lt())}function re(e,t){P(Rt(e.id,t))}function ie(e){l(t=>t===e?null:e)}async function ae(e,t){u.kind!==`lesson`||!N||(await At(N.id,e,t),await O(),x(!0),setTimeout(()=>x(!1),1800),P(`/`,!0))}async function F(e){await jt(e),await O(),u.kind===`lesson`&&u.lessonId===e&&P(`/`,!0)}async function I(){await Nt(),E(!1),await O()}return{data:e,error:f,filters:[[`all`,`All`],[`learning`,`Not learned`],[`understood`,`Learned`]],modelCounts:te,modelFilters:[[`all`,`All models`],...k.map(({name:e})=>[`tool:${e}`,se(e)])],filter:i,modelFilter:o,modelVisible:j,page:S,pageLessons:ne,query:n,refreshing:v,resetDialogRef:D,saved:b,selectedLesson:N,selectedWeek:c,setConfirmingReset:E,setFilter:a,setModelFilter:s,setPage:w,setQuery:r,setSelectedWeek:l,syncMeta:g,syncNote:m,totalPages:M,confirmingReset:T,navigate:P,open:re,refreshDashboard:ee,removeLesson:F,resetAll:I,submitReview:ae,toggleWeek:ie,route:u}}function Bt(){(0,C.useEffect)(()=>{document.title=`fixmind - close the loop on AI bug fixes`,document.querySelector(`meta[name="description"]`)?.setAttribute(`content`,`Fixmind is a local-first MCP server that turns every AI bug fix into a lesson you actually remember. Local by default, no account required.`)},[]);let{confirmingReset:e,data:t,error:n,filters:r,filter:i,modelCounts:a,modelFilters:o,modelFilter:s,modelVisible:c,page:l,pageLessons:u,query:d,refreshing:f,resetDialogRef:p,route:m,saved:h,selectedLesson:g,selectedWeek:_,setConfirmingReset:v,setFilter:y,setModelFilter:b,setPage:x,setQuery:S,setSelectedWeek:w,syncMeta:T,syncNote:E,totalPages:D,open:ee,refreshDashboard:k,removeLesson:A,resetAll:ne,submitReview:N,toggleWeek:P,navigate:re}=zt();return t?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(wt,{side:`left`}),(0,L.jsx)(wt,{side:`right`}),(0,L.jsxs)(`div`,{className:`mx-auto max-w-260 px-6 py-10 max-sm:px-4 max-sm:py-6`,children:[(0,L.jsxs)(`header`,{className:`flex flex-wrap items-end justify-between gap-4 border-b border-line pb-5`,children:[(0,L.jsx)(`span`,{className:`text-2xl font-bold tracking-tight`,children:`Fixmind`}),(0,L.jsxs)(`div`,{className:`text-right`,children:[(0,L.jsxs)(`span`,{className:`flex items-center justify-end gap-1.5 font-mono text-[11px] uppercase tracking-[.2em] text-muted`,children:[(0,L.jsx)(`span`,{className:`size-1.5 rounded-full bg-accent`}),t.summary.total,` lessons`]}),(0,L.jsxs)(`p`,{className:`mt-1 font-mono text-[10px] uppercase tracking-[.18em] text-muted`,children:[`Last sync pull:`,` `,T?.lastPulledAt?new Date(T.lastPulledAt).toLocaleString():`never`]})]})]}),(0,L.jsx)(`section`,{className:`border-b border-line py-12 max-sm:py-8`,children:(0,L.jsxs)(`div`,{className:`flex items-center justify-between gap-10`,children:[(0,L.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,L.jsx)(`div`,{className:`font-mono text-[11px] uppercase tracking-[.2em] text-accent`,children:`Fixmind — a developer’s lesson log`}),(0,L.jsxs)(`h1`,{className:`mt-3 font-serif text-[clamp(2.8rem,5.4vw,4.8rem)] leading-[1.02] font-bold tracking-tight`,children:[(0,L.jsxs)(`span`,{className:`block whitespace-nowrap`,children:[`Don’t just let `,(0,L.jsx)(`br`,{}),` AI fix it.`]}),(0,L.jsx)(`span`,{className:`block text-accent`,children:`Learn from it.`})]}),(0,L.jsx)(`p`,{className:`mt-4 max-w-lg text-base leading-relaxed text-muted`,children:`A running record of the bugs you’ve fixed and the lessons behind them — what to remember, why it happened, and how to avoid it next time.`})]}),(0,L.jsxs)(`div`,{className:`relative hidden shrink-0 min-[900px]:block`,"aria-hidden":`true`,children:[(0,L.jsx)(O,{className:`size-56 text-line`,strokeWidth:1}),(0,L.jsx)(`span`,{className:`absolute top-7 right-5 size-2.5 rounded-full bg-accent`}),(0,L.jsx)(`span`,{className:`absolute bottom-10 left-3 size-2 rounded-full bg-accent/60`}),(0,L.jsx)(`span`,{className:`absolute top-1/2 right-1 size-2 rounded-full border border-accent`})]})]})}),(0,L.jsxs)(`section`,{className:`border-b border-line py-10 max-sm:py-8 space-y-4`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-3`,children:[(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(`h2`,{className:`text-2xl font-semibold tracking-tight`,children:`Your progress`}),(0,L.jsx)(`div`,{className:`font-mono text-[10px] uppercase tracking-[.2em] text-muted`,children:`Lessons per week by understanding`})]}),_&&(0,L.jsxs)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.2em] text-accent hover:underline`,onClick:()=>w(null),children:[`Week of `,ae(_),` — reset`]})]}),(0,L.jsx)(Tt,{data:t.progress,selectedWeek:_,onSelectWeek:P})]}),m.kind===`lesson`?(0,L.jsx)(St,{lesson:g,reviewMode:m.review,onBack:()=>re(`/`,!0),onStartReview:()=>{let e=g?.id??m.lessonId;re(`/lessons/${encodeURIComponent(e)}?review=1`)},onSave:N,onDelete:e=>void A(e)}):(0,L.jsxs)(`div`,{className:`grid grid-cols-[1fr_300px] gap-10 py-10 max-[900px]:grid-cols-1 max-[900px]:gap-10`,children:[(0,L.jsxs)(`main`,{children:[(0,L.jsxs)(`div`,{className:`mb-5 space-y-4 rounded-3xl`,children:[(0,L.jsxs)(`div`,{className:`space-y-2`,children:[T&&!T.loggedIn&&(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-line bg-surface-2 px-4 py-3`,children:[(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-[.18em] text-muted`,children:`Sync is off`}),(0,L.jsx)(`p`,{className:`text-sm leading-relaxed text-muted`,children:`Sign in on the account page to enable encrypted sync across your devices.`})]}),(0,L.jsx)(`a`,{className:`inline-flex items-center justify-center rounded-full border border-line bg-page px-3 py-1.5 font-mono text-[10px] uppercase tracking-[.18em] text-ink transition-colors hover:border-accent/40 hover:text-accent`,href:`/account`,children:`Open account`})]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,L.jsxs)(`h2`,{className:`text-2xl font-semibold tracking-tight`,children:[`Your lessons`,` `,(0,L.jsxs)(`span`,{className:`text-lg text-muted`,children:[`(`,c.length,`)`]})]}),(0,L.jsxs)(`button`,{type:`button`,onClick:()=>void k(),disabled:f,className:`inline-flex items-center gap-2 rounded-full border border-line bg-surface-2 px-3 py-1.5 font-mono text-[10px] uppercase tracking-[.18em] text-muted transition-colors hover:border-accent/40 hover:text-ink disabled:cursor-not-allowed disabled:opacity-50`,title:`Pull the latest lessons from sync`,children:[(0,L.jsx)(j,{size:12,className:f?`animate-spin`:``}),f?`Syncing`:`Refresh`]})]}),(0,L.jsx)(`p`,{className:`font-mono text-[10px] uppercase tracking-[.2em] text-muted`,children:`Filter by learning state or model.`}),E&&(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:E})]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-6 gap-y-3`,children:[(0,L.jsx)(`nav`,{className:`flex flex-wrap gap-5`,children:r.map(([e,t])=>(0,L.jsx)(`button`,{className:`cursor-pointer border-b-2 pb-0.5 font-mono text-[11px] uppercase tracking-[.15em] transition ${i===e?`border-accent text-ink`:`border-transparent text-muted hover:text-ink`}`,onClick:()=>y(e),children:t},e))}),(0,L.jsx)(`div`,{className:`h-4 w-px bg-line max-sm:hidden`}),(0,L.jsx)(`nav`,{className:`flex flex-wrap gap-5`,children:o.map(([e,t])=>(0,L.jsx)(`button`,{className:`cursor-pointer border-b-2 pb-0.5 font-mono text-[11px] uppercase tracking-[.15em] transition ${s===e?`border-accent text-ink`:`border-transparent text-muted hover:text-ink`}`,onClick:()=>b(e),children:t},e))})]}),(0,L.jsx)(`div`,{className:`rounded-2xl border border-line bg-page/25 p-3`,children:(0,L.jsxs)(`div`,{className:`flex items-center gap-3 `,children:[(0,L.jsx)(M,{className:`size-4 shrink-0 text-muted`}),(0,L.jsx)(`input`,{id:`lesson-search`,className:`w-full bg-transparent text-sm text-ink outline-none placeholder:text-muted`,value:d,onChange:e=>S(e.target.value),placeholder:`Topics, patterns, files, tools...`})]})})]}),(0,L.jsx)(`div`,{children:u.length?u.map(e=>(0,L.jsx)(le,{lesson:e,onOpen:ee,onDelete:e=>void A(e)},e.id)):(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`No lessons match this view.`})}),D>1&&(0,L.jsxs)(`div`,{className:`mt-6 flex items-center justify-between gap-4 border-t border-line pt-4 font-mono text-[11px] uppercase tracking-[.2em] text-muted`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 hover:text-ink disabled:cursor-default disabled:opacity-30 disabled:hover:text-muted`,onClick:()=>x(e=>e-1),disabled:l===1,children:`← Prev`}),(0,L.jsxs)(`span`,{children:[`Page `,l,` of `,D]}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 hover:text-ink disabled:cursor-default disabled:opacity-30 disabled:hover:text-muted`,onClick:()=>x(e=>e+1),disabled:l===D,children:`Next →`})]})]}),(0,L.jsxs)(`aside`,{className:`self-start max-[900px]:static max-[900px]:border-t max-[900px]:border-line max-[900px]:pt-10 [&>section]:border-t [&>section]:border-line [&>section]:pt-6 [&>section]:pb-6 [&>section:first-child]:border-t-0 [&>section:first-child]:pt-0 sticky top-10 border-l border-line pl-10 max-[900px]:border-l-0 max-[900px]:pl-0`,children:[(0,L.jsxs)(`section`,{children:[(0,L.jsx)(`h2`,{className:`mb-3 text-lg font-semibold tracking-tight`,children:`Models`}),(0,L.jsx)(`div`,{className:`grid gap-2`,children:a.map(({tool:e,count:t})=>(0,L.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 text-sm`,children:[(0,L.jsx)(`span`,{className:`text-muted`,children:se(e)}),(0,L.jsx)(`span`,{className:`font-mono text-xs font-semibold text-accent`,children:t})]},e))})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(`h2`,{className:`mb-3 text-lg font-semibold tracking-tight`,children:`Topics you keep encountering`}),(0,L.jsx)(Et,{items:t.topics})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(`h2`,{className:`mb-3 text-lg font-semibold tracking-tight`,children:`Patterns to work on`}),(0,L.jsx)(Et,{items:t.patterns})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(`h2`,{className:`mb-3 text-lg font-semibold tracking-tight`,children:`Backup & export`}),(0,L.jsx)(`p`,{className:`mb-3 text-sm leading-relaxed text-muted`,children:`Your lessons are stored locally. Export a copy any time.`}),(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-x-5 gap-y-2 font-mono text-[11px] uppercase tracking-[.15em]`,children:[(0,L.jsxs)(`a`,{className:`inline-flex items-center gap-1.5 text-accent hover:underline`,href:Mt(`json`),download:!0,children:[(0,L.jsx)(te,{className:`size-3.5`}),`Export JSON`]}),(0,L.jsxs)(`a`,{className:`inline-flex items-center gap-1.5 text-accent hover:underline`,href:Mt(`md`),download:!0,children:[(0,L.jsx)(te,{className:`size-3.5`}),`Export Markdown`]})]}),(0,L.jsx)(`button`,{className:`mt-4 cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.15em] text-danger hover:underline`,onClick:()=>v(!0),children:`Reset all data`}),(0,L.jsxs)(`dialog`,{ref:p,className:`fixed top-1/2 left-1/2 z-50 w-[min(420px,calc(100vw-32px))] -translate-x-1/2 -translate-y-1/2 border border-line bg-page p-6 text-ink shadow-[0_40px_100px_-30px_rgba(0,0,0,0.7)]`,onClose:()=>v(!1),onClick:e=>{e.target===p.current&&v(!1)},children:[(0,L.jsxs)(`p`,{className:`text-base leading-relaxed`,children:[`Delete all `,t.summary.total,` lesson(s)? Export a backup first if you want to keep them — this can’t be undone.`]}),(0,L.jsxs)(`div`,{className:`mt-6 flex justify-end gap-5 font-mono text-[11px] uppercase tracking-[.2em]`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 text-muted hover:text-ink`,onClick:()=>v(!1),children:`Cancel`}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-bold text-danger hover:underline`,onClick:()=>void ne(),children:`Reset`})]})]})]})]})]}),(0,L.jsxs)(`footer`,{className:`border-t border-line pt-6 text-center font-mono text-[11px] uppercase tracking-[.2em] text-muted`,children:[`© `,new Date().getFullYear(),` Fixmind —`,` `,(0,L.jsx)(`a`,{className:`hover:text-ink`,href:`mailto:support@fixmind.dev`,children:`support@fixmind.dev`})]}),h&&(0,L.jsx)(`div`,{className:`fixed right-6 bottom-6 border border-line bg-surface px-4 py-3 font-mono text-[12px] uppercase tracking-[.1em] text-positive`,children:`Review saved`})]})]}):(0,L.jsx)(`main`,{className:`grid min-h-screen place-items-center text-lg text-muted`,children:n||`Loading your lessons...`})}(0,P.createRoot)(document.getElementById(`root`)).render((0,L.jsx)(C.StrictMode,{children:(0,L.jsx)(Bt,{})}));
|
|
14
|
+
`).map(e=>({text:e,changedRanges:[]})):at(n===`bad`?e:t,n===`bad`?t:e,n),[e,t,n]),s=n===`bad`?dt:ft;return(0,L.jsxs)(`div`,{className:`overflow-hidden border border-line`,children:[(0,L.jsx)(`div`,{className:`border-b border-line px-3 py-2 font-mono text-[10px] font-bold uppercase tracking-[.2em] ${n===`bad`?`text-danger`:`text-positive`}`,children:r}),(0,L.jsx)(`pre`,{className:`m-0 h-full overflow-auto bg-surface py-2 font-mono text-xs leading-relaxed text-ink`,children:o.map((e,t)=>(0,L.jsx)(`div`,{className:`px-4 whitespace-pre-wrap`,dangerouslySetInnerHTML:{__html:mt(e,a,s)}},t))})]})}var gt=`mt-10 mb-4 border-t border-line pt-8 text-2xl font-semibold tracking-tight`,_t=`font-mono text-[10px] uppercase tracking-[.2em] text-muted`,vt=`border border-line px-2 py-0.5 font-mono text-[11px] text-ink`;function yt({value:e,onChange:t}){let n=`flex cursor-pointer items-center gap-1.5 border-0 bg-transparent p-0 transition`;return(0,L.jsxs)(`div`,{className:`mt-3 mb-1 flex gap-5 font-mono text-[10px] uppercase tracking-[.2em]`,children:[(0,L.jsxs)(`button`,{className:`${n} ${e===`got`?`text-positive`:`text-muted hover:text-ink`}`,onClick:()=>t(`got`),children:[(0,L.jsx)(ee,{className:`size-3`}),` Nailed it`]}),(0,L.jsxs)(`button`,{className:`${n} ${e===`partial`?`text-accent`:`text-muted hover:text-ink`}`,onClick:()=>t(`partial`),children:[(0,L.jsx)(A,{className:`size-3`}),` Partly`]}),(0,L.jsxs)(`button`,{className:`${n} ${e===`missed`?`text-danger`:`text-muted hover:text-ink`}`,onClick:()=>t(`missed`),children:[(0,L.jsx)(N,{className:`size-3`}),` Missed it`]})]})}function bt({answer:e,reference:t}){let n=e.trim();if(!n)return null;if(n.split(/\s+/).length<4)return(0,L.jsx)(`p`,{className:`mt-3 text-sm leading-relaxed text-muted italic`,children:`That’s a short answer - before you self-check, try writing a full sentence explaining the reasoning, not just naming the topic.`});let{ratio:r,missingTerms:i,hasSignal:a}=fe(n,t);return!a||r>=.5?null:(0,L.jsxs)(`p`,{className:`mt-3 text-sm leading-relaxed text-muted italic`,children:[`Your answer may not cover: `,i.slice(0,4).join(`, `),`. Re-read the explanation above - if your reasoning gets to the same idea in different words, "Nailed it" is still fair, but if it doesn’t, mark this "Partly" or "Missed it" instead.`]})}function xt({prompt:e,reveal:t,referenceText:n,reviewMode:r,answer:i,onAnswerChange:a,revealed:o,onToggleReveal:s,check:c,onCheck:l}){return r?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`text-base leading-relaxed text-muted`,children:e}),(0,L.jsx)(`textarea`,{className:`mt-3 min-h-24 w-full border border-line bg-surface p-3 text-ink outline-none focus:border-accent`,value:i,onChange:e=>a(e.target.value),placeholder:`Answer in your own words before revealing`}),(0,L.jsxs)(`button`,{className:`mt-3 flex cursor-pointer items-center gap-2 border-0 bg-transparent p-0 font-mono text-[10px] uppercase tracking-[.2em] text-muted transition hover:text-accent`,onClick:s,children:[(0,L.jsx)(k,{className:`size-3 transition-transform ${o?`rotate-180`:``}`}),o?`Hide`:`Reveal`]}),(0,L.jsx)(`div`,{className:`mt-3 grid transition-[grid-template-rows] duration-300 ease-out ${o?`grid-rows-[1fr]`:`grid-rows-[0fr]`}`,children:(0,L.jsxs)(`div`,{className:`overflow-hidden`,children:[t,(0,L.jsx)(bt,{answer:i,reference:n}),(0,L.jsx)(yt,{value:c,onChange:l})]})})]}):(0,L.jsx)(L.Fragment,{children:t})}function St({lesson:e,reviewMode:t,onBack:n,onStartReview:r,onSave:i,onDelete:a}){let[o,s]=(0,C.useState)({}),[c,l]=(0,C.useState)(``),[u,d]=(0,C.useState)(``),[f,p]=(0,C.useState)(!1),[m,h]=(0,C.useState)({}),[g,_]=(0,C.useState)({});if((0,C.useEffect)(()=>{s({}),l(``),d(``),p(!1),h({}),_({})},[e?.id,t]),!e)return(0,L.jsxs)(`section`,{className:`mt-10 border border-line bg-page p-8 text-ink`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.2em] text-muted hover:text-ink`,onClick:n,children:`← All lessons`}),(0,L.jsx)(`h1`,{className:`mt-6 font-serif text-3xl font-bold tracking-tight`,children:`Lesson not found`}),(0,L.jsx)(`p`,{className:`mt-3 max-w-xl text-base leading-relaxed text-muted`,children:`The lesson may have been deleted, or the link no longer points to a valid id.`})]});let v=e.badCodeExample??`A broken example was not captured for this lesson.`,y=e.goodCodeExample??e.codeExample??`A corrected example was not captured for this lesson.`,b=!!(e.badCodeExample||e.goodCodeExample||e.codeExample),x=!!(e.badCodeExample&&(e.goodCodeExample||e.codeExample));async function S(){if(!c){d(`Choose how well you understand the lesson.`);return}try{await i(o,c)}catch(e){d(e instanceof Error?e.message:String(e))}}let w=e.reviewQuestions.length,T=e.reviewQuestions.filter(e=>g[e.id]).length,E=[`__rootCause`,...e.whenNotApplicable?[`__scope`]:[],...e.reviewQuestions.map(e=>e.id)],D=E.reduce((e,t)=>g[t]===`got`?e+1:g[t]===`partial`?e+.5:e,0),O=E.filter(e=>g[e]).length;return(0,L.jsxs)(`section`,{className:`mt-10 border border-line bg-page text-ink shadow-[0_40px_100px_-30px_rgba(0,0,0,0.35)]`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between border-b border-line px-9 py-4 max-sm:px-5`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.2em] text-muted hover:text-ink`,onClick:n,children:`← All lessons`}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 text-muted hover:text-ink`,onClick:n,"aria-label":`Back to all lessons`,children:(0,L.jsx)(N,{className:`size-5`})})]}),(0,L.jsxs)(`article`,{className:`px-9 py-8 max-sm:px-5 max-sm:py-6`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-3 gap-y-1 font-mono text-[11px] uppercase tracking-[.2em] text-muted`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,L.jsx)(`span`,{children:e.displayPattern}),(0,L.jsx)(`span`,{children:`·`}),(0,L.jsx)(`span`,{children:re(e.createdAt)}),(0,L.jsx)(`span`,{children:`·`}),(0,L.jsx)(`span`,{children:e.tool})]}),(0,L.jsxs)(`span`,{className:`flex items-center gap-1.5 ${I(e.understanding)}`,children:[(0,L.jsx)(`span`,{className:`size-1.5 rounded-full bg-current`}),F(e.understanding)]})]}),(0,L.jsx)(`h1`,{className:`mt-3 font-serif text-4xl leading-tight font-bold tracking-tight max-sm:text-3xl`,children:e.title}),(0,L.jsx)(`p`,{className:`mt-3 text-lg leading-relaxed text-muted`,children:e.displayTakeaway}),(0,L.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center gap-2`,children:[e.concepts.map(e=>(0,L.jsx)(`span`,{className:vt,children:e},e)),e.tags?.map(e=>e.url?(0,L.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`${vt} text-accent no-underline hover:border-accent`,children:[e.name,` ↗`]},e.name):(0,L.jsx)(`span`,{className:`${vt} text-accent`,children:e.name},e.name))]}),e.originalPrompt&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`h2`,{className:gt,children:`The prompt`}),(0,L.jsxs)(`blockquote`,{className:`border-l-2 border-line pl-4 text-base leading-relaxed text-muted italic`,children:[`“`,e.originalPrompt,`”`]})]}),(0,L.jsx)(`h2`,{className:gt,children:`What broke`}),(0,L.jsx)(`p`,{className:`text-base leading-relaxed`,children:e.problem}),(0,L.jsx)(`h2`,{className:gt,children:`Why it happened`}),(0,L.jsx)(xt,{prompt:`Before reading on: what was the mistake, and - more importantly - what was the root cause behind it (not just the symptom)?`,referenceText:`${e.mistake} ${e.rootCause} ${e.fixSummary}`,reviewMode:t,answer:o.__rootCause??``,onAnswerChange:e=>s(t=>({...t,__rootCause:e})),revealed:!!m.__rootCause,onToggleReveal:()=>h(e=>({...e,__rootCause:!e.__rootCause})),check:g.__rootCause,onCheck:e=>_(t=>({...t,__rootCause:e})),reveal:(0,L.jsxs)(`div`,{className:`grid gap-5`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:_t,children:`What went wrong`}),(0,L.jsx)(`p`,{className:`mt-1.5 text-base leading-relaxed`,children:e.mistake})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:_t,children:`Root cause`}),(0,L.jsx)(`p`,{className:`mt-1.5 text-base leading-relaxed`,children:e.rootCause})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:_t,children:`Why the fix works`}),(0,L.jsx)(`p`,{className:`mt-1.5 text-base leading-relaxed`,children:e.fixSummary})]})]})}),(0,L.jsx)(`h2`,{className:gt,children:`Broken and corrected code`}),b?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 max-[640px]:grid-cols-1`,children:[(0,L.jsx)(ht,{label:`Broken approach`,value:v,compareWith:x?y:void 0,kind:`bad`,filesChanged:e.filesChanged}),(0,L.jsx)(ht,{label:`Correct approach`,value:y,compareWith:x?v:void 0,kind:`good`,filesChanged:e.filesChanged})]}),e.codeExplanation&&(0,L.jsxs)(`div`,{className:`mt-5`,children:[(0,L.jsx)(`div`,{className:_t,children:`Key difference`}),(0,L.jsx)(`p`,{className:`mt-1.5 text-base leading-relaxed`,children:e.codeExplanation})]})]}):(0,L.jsx)(`p`,{className:`text-base leading-relaxed text-muted`,children:`No useful code comparison was captured for this lesson.`}),(0,L.jsx)(`h2`,{className:gt,children:`When this doesn’t apply`}),e.whenNotApplicable?(0,L.jsx)(xt,{prompt:`Before reading on: in what situation would this lesson's advice be wrong or unnecessary?`,referenceText:e.whenNotApplicable,reviewMode:t,answer:o.__scope??``,onAnswerChange:e=>s(t=>({...t,__scope:e})),revealed:!!m.__scope,onToggleReveal:()=>h(e=>({...e,__scope:!e.__scope})),check:g.__scope,onCheck:e=>_(t=>({...t,__scope:e})),reveal:(0,L.jsx)(`p`,{className:`text-base leading-relaxed`,children:e.whenNotApplicable})}):(0,L.jsx)(`p`,{className:`text-base leading-relaxed`,children:`Not captured for this lesson.`}),e.filesChanged.length>0&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`h2`,{className:gt,children:`Files involved`}),(0,L.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:e.filesChanged.map(e=>(0,L.jsx)(`span`,{className:vt,children:e},e))})]}),(0,L.jsxs)(`div`,{className:`mt-10 border-t border-line pt-8`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-3`,children:[(0,L.jsx)(`h2`,{className:`text-2xl font-semibold tracking-tight`,children:`Check your understanding`}),w>0&&(0,L.jsxs)(`span`,{className:`font-mono text-[10px] uppercase tracking-[.2em] text-muted`,children:[T,` / `,w,` self-checked`]})]}),w>0&&(0,L.jsx)(`div`,{className:`mt-3 h-px w-full bg-line`,children:(0,L.jsx)(`div`,{className:`h-px bg-accent transition-[width] duration-300`,style:{width:`${T/w*100}%`}})}),e.reviewQuestions.map((e,n)=>{let r=!!m[e.id],i=g[e.id];return(0,L.jsxs)(`div`,{className:`grid grid-cols-[2.5rem_1fr] gap-4 border-t border-line py-6 first:border-t-0`,children:[(0,L.jsx)(`div`,{className:`font-serif text-3xl leading-none text-muted/30`,children:String(n+1).padStart(2,`0`)}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`text-base font-medium`,children:e.question}),t&&(0,L.jsx)(`textarea`,{className:`mt-3 min-h-24 w-full border border-line bg-surface p-3 text-ink outline-none focus:border-accent`,value:o[e.id]??``,onChange:t=>s({...o,[e.id]:t.target.value}),placeholder:`Answer in your own words before revealing the expected answer`}),(0,L.jsxs)(`button`,{className:`mt-3 flex cursor-pointer items-center gap-2 border-0 bg-transparent p-0 font-mono text-[10px] uppercase tracking-[.2em] text-muted transition hover:text-accent`,onClick:()=>h(t=>({...t,[e.id]:!r})),children:[(0,L.jsx)(k,{className:`size-3 transition-transform ${r?`rotate-180`:``}`}),r?`Hide expected answer`:`Reveal expected answer`]}),(0,L.jsx)(`div`,{className:`mt-3 grid transition-[grid-template-rows] duration-300 ease-out ${r?`grid-rows-[1fr]`:`grid-rows-[0fr]`}`,children:(0,L.jsxs)(`div`,{className:`overflow-hidden`,children:[(0,L.jsx)(`p`,{className:`text-sm leading-relaxed text-muted`,children:e.expectedAnswer}),t&&(0,L.jsx)(bt,{answer:o[e.id]??``,reference:e.expectedAnswer}),(0,L.jsx)(yt,{value:i,onChange:t=>_(n=>({...n,[e.id]:t}))})]})})]})]},e.id)})]}),e.reviewQuestions.some(e=>e.userAnswer)&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`h2`,{className:gt,children:`Your previous answers`}),(0,L.jsx)(`div`,{className:`grid gap-4`,children:e.reviewQuestions.filter(e=>e.userAnswer).map(e=>(0,L.jsxs)(`div`,{className:`border-l-2 border-line pl-3 text-sm text-muted`,children:[(0,L.jsx)(`p`,{className:`font-medium text-ink`,children:e.question}),(0,L.jsx)(`p`,{className:`mt-1`,children:e.userAnswer})]},e.id))})]}),u&&(0,L.jsx)(`p`,{className:`mt-6 text-sm text-danger`,children:u}),t?(0,L.jsxs)(`div`,{className:`mt-8 border-t border-line pt-8`,children:[(0,L.jsxs)(`p`,{className:`mb-4 font-mono text-[11px] uppercase tracking-[.15em] text-muted`,children:[`Self-check score: `,D,` / `,E.length,` (`,O,` / `,E.length,` checked)`]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-4`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,L.jsxs)(`select`,{className:`border border-line bg-surface p-2.5 text-ink outline-none focus:border-accent`,value:c,onChange:e=>l(e.target.value),children:[(0,L.jsx)(`option`,{value:``,children:`Choose result`}),(0,L.jsx)(`option`,{value:`understood`,children:`Learned`}),(0,L.jsx)(`option`,{value:`partial`,children:`Not learned`})]}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-accent px-4 py-2.5 font-mono text-[11px] font-bold uppercase tracking-[.2em] text-page`,onClick:()=>void S(),children:`Save review`})]}),(0,L.jsx)(Ct,{confirming:f,onRequest:()=>p(!0),onCancel:()=>p(!1),onConfirm:()=>a(e.id)})]})]}):(0,L.jsx)(`div`,{className:`mt-8 border-t border-line pt-8`,children:(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-4`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-accent px-4 py-2.5 font-mono text-[11px] font-bold uppercase tracking-[.2em] text-page`,onClick:r,children:`Test my recall`}),(0,L.jsx)(Ct,{confirming:f,onRequest:()=>p(!0),onCancel:()=>p(!1),onConfirm:()=>a(e.id)})]})})]})]})}function Ct({confirming:e,onRequest:t,onCancel:n,onConfirm:r}){let i=(0,C.useRef)(null);return(0,C.useEffect)(()=>{e?i.current?.open||i.current?.showModal():i.current?.close()},[e]),(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.2em] text-muted hover:text-danger`,onClick:t,children:`Delete lesson`}),(0,L.jsxs)(`dialog`,{ref:i,className:`fixed top-1/2 left-1/2 z-50 w-[min(420px,calc(100vw-32px))] -translate-x-1/2 -translate-y-1/2 border border-line bg-page p-6 text-ink shadow-[0_40px_100px_-30px_rgba(0,0,0,0.7)]`,onClose:n,onClick:e=>{e.target===i.current&&n()},children:[(0,L.jsx)(`p`,{className:`text-base leading-relaxed`,children:`Delete this lesson? This can’t be undone.`}),(0,L.jsxs)(`div`,{className:`mt-6 flex justify-end gap-5 font-mono text-[11px] uppercase tracking-[.2em]`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 text-muted hover:text-ink`,onClick:n,children:`Cancel`}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-bold text-danger hover:underline`,onClick:r,children:`Delete`})]})]})]})}function wt({side:e}){let t=`margin-art-${e}`;return(0,L.jsxs)(`svg`,{"aria-hidden":`true`,className:`pointer-events-none fixed top-0 bottom-0 ${e===`left`?`left-0`:`right-0`} hidden w-24 text-muted/15 2xl:block`,preserveAspectRatio:`xMidYMid slice`,viewBox:`0 0 64 2000`,children:[(0,L.jsx)(`defs`,{children:(0,L.jsxs)(`pattern`,{id:t,width:`64`,height:`200`,patternUnits:`userSpaceOnUse`,children:[(0,L.jsx)(`line`,{x1:`32`,y1:`0`,x2:`32`,y2:`200`,stroke:`currentColor`,strokeWidth:`1`}),(0,L.jsx)(`circle`,{cx:`32`,cy:`30`,r:`5`,fill:`currentColor`}),(0,L.jsx)(`circle`,{cx:`32`,cy:`100`,r:`5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,L.jsx)(`circle`,{cx:`32`,cy:`170`,r:`5`,fill:`currentColor`})]})}),(0,L.jsx)(`rect`,{width:`64`,height:`2000`,fill:`url(#${t})`})]})}function Tt({data:e,selectedWeek:t,onSelectWeek:n}){if(e.lessonsPerWeek.reduce((e,t)=>e+t.count,0)===0)return(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`More lessons are needed to show your progress.`});let r=e.lessonsPerWeek.map(t=>{let n=e.understandingByWeek.find(e=>e.weekStart===t.weekStart)?.understood??0,r=t.count-n;return{...t,learned:n,notLearned:r}}),i=Math.max(...r.map(e=>e.count),1);return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`flex items-end gap-1.5`,children:r.map(e=>{let r=e.weekStart===t;return(0,L.jsxs)(`button`,{type:`button`,className:`flex flex-1 cursor-pointer flex-col items-center gap-1.5 border-0 bg-transparent p-0`,onClick:()=>n(e.weekStart),children:[(0,L.jsxs)(`div`,{className:`relative h-32 w-full overflow-hidden bg-line ${r?`ring-2 ring-accent ring-inset`:``}`,children:[e.notLearned>0&&(0,L.jsx)(`div`,{className:`absolute bottom-0 left-0 flex w-full items-end justify-center bg-warn/85 pb-1 font-mono text-[10px] text-page`,style:{height:`${e.notLearned/i*100}%`},title:`${ae(e.weekStart)}: ${e.notLearned} not learned`,children:e.notLearned}),e.learned>0&&(0,L.jsx)(`div`,{className:`absolute left-0 flex w-full items-start justify-center bg-positive pt-1 font-mono text-[10px] text-page`,style:{height:`${e.learned/i*100}%`,bottom:`${e.notLearned/i*100}%`},title:`${ae(e.weekStart)}: ${e.learned} learned`,children:e.learned})]}),(0,L.jsx)(`span`,{className:`font-mono text-[9px] ${r?`font-bold text-accent`:`text-muted`}`,children:ae(e.weekStart)})]},e.weekStart)})}),(0,L.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-4 font-mono text-[10px] uppercase tracking-[.15em] text-muted`,children:[(0,L.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,L.jsx)(`span`,{className:`size-2 bg-positive`}),`Learned`]}),(0,L.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,L.jsx)(`span`,{className:`size-2 bg-warn/85`}),`Not learned`]})]})]})}function Et({items:e}){return e.length?(0,L.jsx)(`div`,{className:`grid gap-3`,children:e.slice(0,6).map(e=>(0,L.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 text-sm`,children:[(0,L.jsx)(`span`,{className:`text-muted`,children:e.name}),(0,L.jsx)(`span`,{className:`font-mono text-xs font-semibold text-accent`,children:e.count})]},e.name))}):(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`More lessons are needed to show a pattern.`})}async function Dt(e,t,n=`Request failed.`){let r=await fetch(e,t);if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e.error??n)}}async function Ot(e,t,n=`Request failed.`){let r=await fetch(e,t);if(!r.ok){let e=await r.json().catch(()=>({}));throw Error(e.error??n)}return r.json()}async function kt(e=``){return Ot(`/api/dashboard?q=${encodeURIComponent(e)}`,void 0,`Could not load lessons.`)}async function At(e,t,n){await Dt(`/api/lessons/${encodeURIComponent(e)}/review`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({answers:t,understanding:n})},`Could not save review.`)}async function jt(e){await Dt(`/api/lessons/${encodeURIComponent(e)}`,{method:`DELETE`},`Could not delete lesson.`)}function Mt(e){return`/api/export?format=${e}`}async function Nt(){await Dt(`/api/reset`,{method:`POST`},`Could not reset lessons.`)}async function Pt(){return Ot(`/api/sync/pull`,{method:`POST`},`Could not sync pull lessons.`)}async function Ft(){return Ot(`/api/sync/status`,void 0,`Could not load sync status.`)}var It=8;function Lt(){let e=(window.location.pathname.replace(/\/+$/,``)||`/`).match(/^\/lessons\/([^/]+)$/);return e?{kind:`lesson`,lessonId:decodeURIComponent(e[1]),review:new URLSearchParams(window.location.search).get(`review`)===`1`}:{kind:`dashboard`}}function Rt(e,t=!1){return`/lessons/${encodeURIComponent(e)}${t?`?review=1`:``}`}function zt(){let[e,t]=(0,C.useState)(null),[n,r]=(0,C.useState)(``),[i,a]=(0,C.useState)(`all`),[o,s]=(0,C.useState)(`all`),[c,l]=(0,C.useState)(null),[u,d]=(0,C.useState)(()=>Lt()),[f,p]=(0,C.useState)(``),[m,h]=(0,C.useState)(``),[g,_]=(0,C.useState)(null),[v,y]=(0,C.useState)(!1),[b,x]=(0,C.useState)(!1),[S,w]=(0,C.useState)(1),[T,E]=(0,C.useState)(!1),D=(0,C.useRef)(null);(0,C.useEffect)(()=>{T?D.current?.open||D.current?.showModal():D.current?.close()},[T]),(0,C.useEffect)(()=>{let e=()=>d(Lt());return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[]);async function O(){p(``);try{t(await kt(n))}catch(e){p(e instanceof Error?e.message:String(e))}}async function ee(){y(!0),p(``),h(``);try{let e=await Pt();e.pulled>0?h(`Pulled ${e.pulled} lesson(s), applied ${e.applied} update(s).`):h(`No new lessons to pull.`)}catch(e){h(e instanceof Error?`Sync pull skipped: ${e.message}`:`Sync pull skipped.`)}try{await O(),_(await Ft())}finally{y(!1)}}(0,C.useEffect)(()=>{let e=setTimeout(()=>{O()},180);return()=>clearTimeout(e)},[n]),(0,C.useEffect)(()=>{Ft().then(_).catch(()=>_(null))},[]);let k=(0,C.useMemo)(()=>e?.models??[],[e]),te=(0,C.useMemo)(()=>k.map(({name:e,count:t})=>({tool:e,count:t})),[k]),A=(0,C.useMemo)(()=>e?.lessons.filter(e=>i===`all`||i===`learning`&&e.understanding!==`understood`||i===`understood`&&e.understanding===`understood`)??[],[e,i]),j=(0,C.useMemo)(()=>A.filter(e=>(o===`all`||e.tool===o.slice(5))&&(c===null||oe(e.createdAt)===c)),[o,c,A]),M=Math.max(1,Math.ceil(j.length/It)),ne=(0,C.useMemo)(()=>j.slice((S-1)*It,S*It),[j,S]);(0,C.useEffect)(()=>{w(1)},[i,o,c,n]);let N=(0,C.useMemo)(()=>u.kind===`lesson`?e?.lessons.find(e=>e.id===u.lessonId)??null:null,[e,u]);function P(e,t=!1){t?window.history.replaceState({},``,e):window.history.pushState({},``,e),d(Lt())}function re(e,t){P(Rt(e.id,t))}function ie(e){l(t=>t===e?null:e)}async function ae(e,t){u.kind!==`lesson`||!N||(await At(N.id,e,t),await O(),x(!0),setTimeout(()=>x(!1),1800),P(`/`,!0))}async function F(e){await jt(e),await O(),u.kind===`lesson`&&u.lessonId===e&&P(`/`,!0)}async function I(){await Nt(),E(!1),await O()}return{data:e,error:f,filters:[[`all`,`All`],[`learning`,`Not learned`],[`understood`,`Learned`]],modelCounts:te,modelFilters:[[`all`,`All models`],...k.map(({name:e})=>[`tool:${e}`,se(e)])],filter:i,modelFilter:o,modelVisible:j,page:S,pageLessons:ne,query:n,refreshing:v,resetDialogRef:D,saved:b,selectedLesson:N,selectedWeek:c,setConfirmingReset:E,setFilter:a,setModelFilter:s,setPage:w,setQuery:r,setSelectedWeek:l,syncMeta:g,syncNote:m,totalPages:M,confirmingReset:T,navigate:P,open:re,refreshDashboard:ee,removeLesson:F,resetAll:I,submitReview:ae,toggleWeek:ie,route:u}}function Bt(){(0,C.useEffect)(()=>{document.title=`fixmind - close the loop on AI bug fixes`,document.querySelector(`meta[name="description"]`)?.setAttribute(`content`,`Fixmind is a local-first MCP server that turns every AI bug fix into a lesson you actually remember. Local by default, no account required.`)},[]);let{confirmingReset:e,data:t,error:n,filters:r,filter:i,modelCounts:a,modelFilters:o,modelFilter:s,modelVisible:c,page:l,pageLessons:u,query:d,refreshing:f,resetDialogRef:p,route:m,saved:h,selectedLesson:g,selectedWeek:_,setConfirmingReset:v,setFilter:y,setModelFilter:b,setPage:x,setQuery:S,setSelectedWeek:w,syncMeta:T,syncNote:E,totalPages:D,open:ee,refreshDashboard:k,removeLesson:A,resetAll:ne,submitReview:N,toggleWeek:P,navigate:re}=zt();return t?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(wt,{side:`left`}),(0,L.jsx)(wt,{side:`right`}),(0,L.jsxs)(`div`,{className:`mx-auto max-w-260 px-6 py-10 max-sm:px-4 max-sm:py-6`,children:[(0,L.jsxs)(`header`,{className:`flex flex-wrap items-end justify-between gap-4 border-b border-line pb-5`,children:[(0,L.jsx)(`span`,{className:`text-2xl font-bold tracking-tight`,children:`Fixmind`}),(0,L.jsxs)(`div`,{className:`text-right`,children:[(0,L.jsxs)(`span`,{className:`flex items-center justify-end gap-1.5 font-mono text-[11px] uppercase tracking-[.2em] text-muted`,children:[(0,L.jsx)(`span`,{className:`size-1.5 rounded-full bg-accent`}),t.summary.total,` lessons`]}),(0,L.jsxs)(`p`,{className:`mt-1 font-mono text-[10px] uppercase tracking-[.18em] text-muted`,children:[`Last sync pull:`,` `,T?.lastPulledAt?new Date(T.lastPulledAt).toLocaleString():`never`]})]})]}),(0,L.jsx)(`section`,{className:`border-b border-line py-12 max-sm:py-8`,children:(0,L.jsxs)(`div`,{className:`flex items-center justify-between gap-10`,children:[(0,L.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,L.jsx)(`div`,{className:`font-mono text-[11px] uppercase tracking-[.2em] text-accent`,children:`Fixmind — a developer’s lesson log`}),(0,L.jsxs)(`h1`,{className:`mt-3 font-serif text-[clamp(2.8rem,5.4vw,4.8rem)] leading-[1.02] font-bold tracking-tight`,children:[(0,L.jsxs)(`span`,{className:`block whitespace-nowrap`,children:[`Don’t just let `,(0,L.jsx)(`br`,{}),` AI fix it.`]}),(0,L.jsx)(`span`,{className:`block text-accent`,children:`Learn from it.`})]}),(0,L.jsx)(`p`,{className:`mt-4 max-w-lg text-base leading-relaxed text-muted`,children:`A running record of the bugs you’ve fixed and the lessons behind them — what to remember, why it happened, and how to avoid it next time.`})]}),(0,L.jsxs)(`div`,{className:`relative hidden shrink-0 min-[900px]:block`,"aria-hidden":`true`,children:[(0,L.jsx)(O,{className:`size-56 text-line`,strokeWidth:1}),(0,L.jsx)(`span`,{className:`absolute top-7 right-5 size-2.5 rounded-full bg-accent`}),(0,L.jsx)(`span`,{className:`absolute bottom-10 left-3 size-2 rounded-full bg-accent/60`}),(0,L.jsx)(`span`,{className:`absolute top-1/2 right-1 size-2 rounded-full border border-accent`})]})]})}),(0,L.jsxs)(`section`,{className:`border-b border-line py-10 max-sm:py-8 space-y-4`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-3`,children:[(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(`h2`,{className:`text-2xl font-semibold tracking-tight`,children:`Your progress`}),(0,L.jsx)(`div`,{className:`font-mono text-[10px] uppercase tracking-[.2em] text-muted`,children:`Lessons per week by understanding`})]}),_&&(0,L.jsxs)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.2em] text-accent hover:underline`,onClick:()=>w(null),children:[`Week of `,ae(_),` — reset`]})]}),(0,L.jsx)(Tt,{data:t.progress,selectedWeek:_,onSelectWeek:P})]}),m.kind===`lesson`?(0,L.jsx)(St,{lesson:g,reviewMode:m.review,onBack:()=>re(`/`,!0),onStartReview:()=>{let e=g?.id??m.lessonId;re(`/lessons/${encodeURIComponent(e)}?review=1`)},onSave:N,onDelete:e=>void A(e)}):(0,L.jsxs)(`div`,{className:`grid grid-cols-[1fr_300px] gap-10 py-10 max-[900px]:grid-cols-1 max-[900px]:gap-10`,children:[(0,L.jsxs)(`main`,{children:[(0,L.jsxs)(`div`,{className:`mb-5 space-y-4 rounded-3xl`,children:[(0,L.jsxs)(`div`,{className:`space-y-2`,children:[T&&(!T.loggedIn||T.needsReauth)&&(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-2xl border border-line bg-surface-2 px-4 py-3`,children:[(0,L.jsxs)(`div`,{className:`space-y-1`,children:[(0,L.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-[.18em] text-muted`,children:T.needsReauth?`Sync needs re-login`:`Sync is off`}),(0,L.jsx)(`p`,{className:`text-sm leading-relaxed text-muted`,children:T.needsReauth?`Your saved sync session expired. Sign in again on the account page to restore encrypted sync.`:`Sign in on the account page to enable encrypted sync across your devices.`})]}),(0,L.jsx)(`a`,{className:`inline-flex items-center justify-center rounded-full border border-line bg-page px-3 py-1.5 font-mono text-[10px] uppercase tracking-[.18em] text-ink transition-colors hover:border-accent/40 hover:text-accent`,href:`https://fixmind.dev/account`,children:`Open account`})]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,L.jsxs)(`h2`,{className:`text-2xl font-semibold tracking-tight`,children:[`Your lessons`,` `,(0,L.jsxs)(`span`,{className:`text-lg text-muted`,children:[`(`,c.length,`)`]})]}),(0,L.jsxs)(`button`,{type:`button`,onClick:()=>void k(),disabled:f,className:`inline-flex items-center gap-2 rounded-full border border-line bg-surface-2 px-3 py-1.5 font-mono text-[10px] uppercase tracking-[.18em] text-muted transition-colors hover:border-accent/40 hover:text-ink disabled:cursor-not-allowed disabled:opacity-50`,title:`Pull the latest lessons from sync`,children:[(0,L.jsx)(j,{size:12,className:f?`animate-spin`:``}),f?`Syncing`:`Refresh`]})]}),(0,L.jsx)(`p`,{className:`font-mono text-[10px] uppercase tracking-[.2em] text-muted`,children:`Filter by learning state or model.`}),E&&(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:E})]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-6 gap-y-3`,children:[(0,L.jsx)(`nav`,{className:`flex flex-wrap gap-5`,children:r.map(([e,t])=>(0,L.jsx)(`button`,{className:`cursor-pointer border-b-2 pb-0.5 font-mono text-[11px] uppercase tracking-[.15em] transition ${i===e?`border-accent text-ink`:`border-transparent text-muted hover:text-ink`}`,onClick:()=>y(e),children:t},e))}),(0,L.jsx)(`div`,{className:`h-4 w-px bg-line max-sm:hidden`}),(0,L.jsx)(`nav`,{className:`flex flex-wrap gap-5`,children:o.map(([e,t])=>(0,L.jsx)(`button`,{className:`cursor-pointer border-b-2 pb-0.5 font-mono text-[11px] uppercase tracking-[.15em] transition ${s===e?`border-accent text-ink`:`border-transparent text-muted hover:text-ink`}`,onClick:()=>b(e),children:t},e))})]}),(0,L.jsx)(`div`,{className:`rounded-2xl border border-line bg-page/25 p-3`,children:(0,L.jsxs)(`div`,{className:`flex items-center gap-3 `,children:[(0,L.jsx)(M,{className:`size-4 shrink-0 text-muted`}),(0,L.jsx)(`input`,{id:`lesson-search`,className:`w-full bg-transparent text-sm text-ink outline-none placeholder:text-muted`,value:d,onChange:e=>S(e.target.value),placeholder:`Topics, patterns, files, tools...`})]})})]}),(0,L.jsx)(`div`,{children:u.length?u.map(e=>(0,L.jsx)(le,{lesson:e,onOpen:ee,onDelete:e=>void A(e)},e.id)):(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`No lessons match this view.`})}),D>1&&(0,L.jsxs)(`div`,{className:`mt-6 flex items-center justify-between gap-4 border-t border-line pt-4 font-mono text-[11px] uppercase tracking-[.2em] text-muted`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 hover:text-ink disabled:cursor-default disabled:opacity-30 disabled:hover:text-muted`,onClick:()=>x(e=>e-1),disabled:l===1,children:`← Prev`}),(0,L.jsxs)(`span`,{children:[`Page `,l,` of `,D]}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 hover:text-ink disabled:cursor-default disabled:opacity-30 disabled:hover:text-muted`,onClick:()=>x(e=>e+1),disabled:l===D,children:`Next →`})]})]}),(0,L.jsxs)(`aside`,{className:`self-start max-[900px]:static max-[900px]:border-t max-[900px]:border-line max-[900px]:pt-10 [&>section]:border-t [&>section]:border-line [&>section]:pt-6 [&>section]:pb-6 [&>section:first-child]:border-t-0 [&>section:first-child]:pt-0 sticky top-10 border-l border-line pl-10 max-[900px]:border-l-0 max-[900px]:pl-0`,children:[(0,L.jsxs)(`section`,{children:[(0,L.jsx)(`h2`,{className:`mb-3 text-lg font-semibold tracking-tight`,children:`Models`}),(0,L.jsx)(`div`,{className:`grid gap-2`,children:a.map(({tool:e,count:t})=>(0,L.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 text-sm`,children:[(0,L.jsx)(`span`,{className:`text-muted`,children:se(e)}),(0,L.jsx)(`span`,{className:`font-mono text-xs font-semibold text-accent`,children:t})]},e))})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(`h2`,{className:`mb-3 text-lg font-semibold tracking-tight`,children:`Topics you keep encountering`}),(0,L.jsx)(Et,{items:t.topics})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(`h2`,{className:`mb-3 text-lg font-semibold tracking-tight`,children:`Patterns to work on`}),(0,L.jsx)(Et,{items:t.patterns})]}),(0,L.jsxs)(`section`,{children:[(0,L.jsx)(`h2`,{className:`mb-3 text-lg font-semibold tracking-tight`,children:`Backup & export`}),(0,L.jsx)(`p`,{className:`mb-3 text-sm leading-relaxed text-muted`,children:`Your lessons are stored locally. Export a copy any time.`}),(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-x-5 gap-y-2 font-mono text-[11px] uppercase tracking-[.15em]`,children:[(0,L.jsxs)(`a`,{className:`inline-flex items-center gap-1.5 text-accent hover:underline`,href:Mt(`json`),download:!0,children:[(0,L.jsx)(te,{className:`size-3.5`}),`Export JSON`]}),(0,L.jsxs)(`a`,{className:`inline-flex items-center gap-1.5 text-accent hover:underline`,href:Mt(`md`),download:!0,children:[(0,L.jsx)(te,{className:`size-3.5`}),`Export Markdown`]})]}),(0,L.jsx)(`button`,{className:`mt-4 cursor-pointer border-0 bg-transparent p-0 font-mono text-[11px] uppercase tracking-[.15em] text-danger hover:underline`,onClick:()=>v(!0),children:`Reset all data`}),(0,L.jsxs)(`dialog`,{ref:p,className:`fixed top-1/2 left-1/2 z-50 w-[min(420px,calc(100vw-32px))] -translate-x-1/2 -translate-y-1/2 border border-line bg-page p-6 text-ink shadow-[0_40px_100px_-30px_rgba(0,0,0,0.7)]`,onClose:()=>v(!1),onClick:e=>{e.target===p.current&&v(!1)},children:[(0,L.jsxs)(`p`,{className:`text-base leading-relaxed`,children:[`Delete all `,t.summary.total,` lesson(s)? Export a backup first if you want to keep them — this can’t be undone.`]}),(0,L.jsxs)(`div`,{className:`mt-6 flex justify-end gap-5 font-mono text-[11px] uppercase tracking-[.2em]`,children:[(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 text-muted hover:text-ink`,onClick:()=>v(!1),children:`Cancel`}),(0,L.jsx)(`button`,{className:`cursor-pointer border-0 bg-transparent p-0 font-bold text-danger hover:underline`,onClick:()=>void ne(),children:`Reset`})]})]})]})]})]}),(0,L.jsxs)(`footer`,{className:`border-t border-line pt-6 text-center font-mono text-[11px] uppercase tracking-[.2em] text-muted`,children:[`© `,new Date().getFullYear(),` Fixmind —`,` `,(0,L.jsx)(`a`,{className:`hover:text-ink`,href:`mailto:support@fixmind.dev`,children:`support@fixmind.dev`})]}),h&&(0,L.jsx)(`div`,{className:`fixed right-6 bottom-6 border border-line bg-surface px-4 py-3 font-mono text-[12px] uppercase tracking-[.1em] text-positive`,children:`Review saved`})]})]}):(0,L.jsx)(`main`,{className:`grid min-h-screen place-items-center text-lg text-muted`,children:n||`Loading your lessons...`})}(0,P.createRoot)(document.getElementById(`root`)).render((0,L.jsx)(C.StrictMode,{children:(0,L.jsx)(Bt,{})}));
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<meta name="color-scheme" content="dark" />
|
|
7
|
-
<title>Fixmind</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta name="color-scheme" content="dark" />
|
|
7
|
+
<title>Fixmind</title>
|
|
8
|
+
<script type="module" crossorigin src="/assets/index--ym2DnLk.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-C37SKxWL.css">
|
|
10
|
-
</head>
|
|
10
|
+
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
|
13
13
|
</body>
|
package/dist/src/cli-sync.js
CHANGED
|
@@ -171,9 +171,9 @@ export async function syncCommand(sub) {
|
|
|
171
171
|
try {
|
|
172
172
|
const engine = createSyncEngine(store);
|
|
173
173
|
if (sub === "status") {
|
|
174
|
-
const status = engine.status();
|
|
174
|
+
const status = await engine.status();
|
|
175
175
|
if (!status.loggedIn) {
|
|
176
|
-
console.log("Not logged in. Run `fixmind login`.");
|
|
176
|
+
console.log(status.needsReauth ? "Sync session expired. Run `fixmind login` again." : "Not logged in. Run `fixmind login`.");
|
|
177
177
|
return;
|
|
178
178
|
}
|
|
179
179
|
console.log(`Logged in as ${status.email}.`);
|
package/dist/src/cli-sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-sync.js","sourceRoot":"","sources":["../../src/cli-sync.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-sync.js","sourceRoot":"","sources":["../../src/cli-sync.ts"],"names":[],"mappings":"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"}
|
package/dist/src/dashboard.js
CHANGED
|
@@ -71,7 +71,7 @@ async function handleRequest(store, request, response) {
|
|
|
71
71
|
}
|
|
72
72
|
if (request.method === "GET" && url.pathname === "/api/sync/status") {
|
|
73
73
|
const { createSyncEngine } = await import("./sync.js");
|
|
74
|
-
sendJson(response, 200, createSyncEngine(store).status());
|
|
74
|
+
sendJson(response, 200, await createSyncEngine(store).status());
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
77
|
const reviewMatch = request.method === "POST"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/dashboard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ export interface SyncBackend {
|
|
|
35
35
|
accessToken: string;
|
|
36
36
|
}>;
|
|
37
37
|
signInWithGithub(onAuthUrl?: (url: string) => void): Promise<OAuthSession>;
|
|
38
|
+
verifySession(session: SessionTokens): Promise<void>;
|
|
38
39
|
getEntitlement(session: SessionTokens): Promise<Entitlement | undefined>;
|
|
39
40
|
getUserRecord(userId: string, session: SessionTokens): Promise<SyncUserRecord | undefined>;
|
|
40
41
|
createUserRecord(userId: string, session: SessionTokens, record: SyncUserRecord): Promise<void>;
|
package/dist/src/sync-backend.js
CHANGED
|
@@ -207,6 +207,9 @@ export function createSupabaseBackend(url, anonKey) {
|
|
|
207
207
|
refreshToken: exchanged.session.refresh_token,
|
|
208
208
|
};
|
|
209
209
|
},
|
|
210
|
+
async verifySession(session) {
|
|
211
|
+
await withSession(session);
|
|
212
|
+
},
|
|
210
213
|
async getEntitlement(session) {
|
|
211
214
|
const supabase = await withSession(session);
|
|
212
215
|
const { data, error } = await supabase
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-backend.js","sourceRoot":"","sources":["../../src/sync-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,4EAA4E;AAC5E,wEAAwE;AACxE,wEAAwE;AACxE,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAEvC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-backend.js","sourceRoot":"","sources":["../../src/sync-backend.ts"],"names":[],"mappings":"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"}
|
package/dist/src/sync.d.ts
CHANGED
|
@@ -21,12 +21,13 @@ export interface SyncEngine {
|
|
|
21
21
|
onAuthUrl?: (url: string) => void;
|
|
22
22
|
}): Promise<LoginResult>;
|
|
23
23
|
logout(): void;
|
|
24
|
-
status(): {
|
|
24
|
+
status(): Promise<{
|
|
25
25
|
loggedIn: boolean;
|
|
26
|
+
needsReauth?: boolean;
|
|
26
27
|
email?: string;
|
|
27
28
|
lastPushedAt?: string;
|
|
28
29
|
lastPulledAt?: string;
|
|
29
|
-
}
|
|
30
|
+
}>;
|
|
30
31
|
push(): Promise<{
|
|
31
32
|
pushed: number;
|
|
32
33
|
}>;
|
package/dist/src/sync.js
CHANGED
|
@@ -28,7 +28,7 @@ async function withTimeout(promise) {
|
|
|
28
28
|
}
|
|
29
29
|
export async function autoPushAfterSave(store) {
|
|
30
30
|
const engine = createSyncEngine(store);
|
|
31
|
-
if (!engine.status().loggedIn)
|
|
31
|
+
if (!(await engine.status()).loggedIn)
|
|
32
32
|
return;
|
|
33
33
|
try {
|
|
34
34
|
await withTimeout(engine.push());
|
|
@@ -39,7 +39,7 @@ export async function autoPushAfterSave(store) {
|
|
|
39
39
|
}
|
|
40
40
|
export async function autoPullOnStart(store) {
|
|
41
41
|
const engine = createSyncEngine(store);
|
|
42
|
-
if (!engine.status().loggedIn)
|
|
42
|
+
if (!(await engine.status()).loggedIn)
|
|
43
43
|
return;
|
|
44
44
|
try {
|
|
45
45
|
await withTimeout(engine.pull());
|
|
@@ -55,6 +55,10 @@ export function createSyncEngine(store, backend) {
|
|
|
55
55
|
throw new Error("Not logged in to sync. Run `fixmind login` first.");
|
|
56
56
|
return config;
|
|
57
57
|
}
|
|
58
|
+
function isAuthError(error) {
|
|
59
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
60
|
+
return /invalid refresh token|refresh token not found|jwt expired|session not found/i.test(message);
|
|
61
|
+
}
|
|
58
62
|
function backendFor(config) {
|
|
59
63
|
return backend ?? createSupabaseBackend(config.supabaseUrl, config.supabaseAnonKey);
|
|
60
64
|
}
|
|
@@ -173,16 +177,38 @@ export function createSyncEngine(store, backend) {
|
|
|
173
177
|
if (fs.existsSync(file))
|
|
174
178
|
fs.rmSync(file);
|
|
175
179
|
},
|
|
176
|
-
status() {
|
|
180
|
+
async status() {
|
|
177
181
|
const config = readSyncConfig();
|
|
178
182
|
if (!config)
|
|
179
183
|
return { loggedIn: false };
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
const activeBackend = backendFor(config);
|
|
185
|
+
const session = { accessToken: config.accessToken, refreshToken: config.refreshToken };
|
|
186
|
+
try {
|
|
187
|
+
await activeBackend.verifySession(session);
|
|
188
|
+
return {
|
|
189
|
+
loggedIn: true,
|
|
190
|
+
email: config.email,
|
|
191
|
+
lastPushedAt: config.lastPushedAt,
|
|
192
|
+
lastPulledAt: config.lastPulledAt,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (!isAuthError(error)) {
|
|
197
|
+
return {
|
|
198
|
+
loggedIn: true,
|
|
199
|
+
email: config.email,
|
|
200
|
+
lastPushedAt: config.lastPushedAt,
|
|
201
|
+
lastPulledAt: config.lastPulledAt,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
loggedIn: false,
|
|
206
|
+
needsReauth: true,
|
|
207
|
+
email: config.email,
|
|
208
|
+
lastPushedAt: config.lastPushedAt,
|
|
209
|
+
lastPulledAt: config.lastPulledAt,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
186
212
|
},
|
|
187
213
|
async push() {
|
|
188
214
|
const config = requireConfig();
|
package/dist/src/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAA6F,MAAM,mBAAmB,CAAC;AAGrJ,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACjD,MAAM,KAAK,GAAG,0BAA0B,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAezD,SAAS,cAAc;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAe,CAAC;AACjE,CAAC;AAED,SAAS,eAAe,CAAC,MAAkB;IACzC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrF,CAAC;AAgBD,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC,KAAK,UAAU,WAAW,CAAI,OAAmB;IAC/C,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,oBAAoB,CAAC,CACvE;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAkB;IACxD,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ;QAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":"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"}
|