Coin Flip...
+โ๏ธ Tic-Tac-Toe โ๏ธ
+ + +๐ค X Player
+๐ค O Computer
+โ๏ธ Tic-Tac-Toe โ๏ธ
+ + +๐ค X Player
+๐ค O Computer
+\\d+)m|\\${E}(?.*))`,`y`),Ee=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},De=e=>`[${e}m`,Oe=e=>`${E}${e}`,D=(e,t,n)=>{let r=t[Symbol.iterator](),i=!1,a=!1,o=e.at(-1),s=o===void 0?0:T(o),c=r.next(),l=r.next(),u=0;for(;!c.done;){let o=c.value,d=T(o);s+d<=n?e[e.length-1]+=o:(e.push(o),s=0),(o===`\x1B`||o===`ย`)&&(i=!0,a=t.startsWith(E,u+1)),i?a?o===`\x07`&&(i=!1,a=!1):o===`m`&&(i=!1):(s+=d,s===n&&!l.done&&(e.push(``),s=0)),c=l,l=r.next(),u+=o.length}o=e.at(-1),!s&&o!==void 0&&o.length&&e.length>1&&(e[e.length-2]+=e.pop())},ke=e=>{let t=e.split(` `),n=t.length;for(;n&&!T(t[n-1]);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},Ae=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=e.split(` `),s=[``],c=0;for(let e=0;e=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),c=0),(c||n.trim===!1)&&(s[s.length-1]+=` `,c++));let i=T(r);if(n.hard&&i>t){let e=t-c,n=1+Math.floor((i-e-1)/t);Math.floor((i-1)/t)t&&c&&i){if(n.wordWrap===!1&&ct&&n.wordWrap===!1){D(s,r,t),c=T(s.at(-1)??``);continue}s[s.length-1]+=r,c+=i}n.trim!==!1&&(s=s.map(e=>ke(e)));let l=s.join(`
+`),u=!1;for(let e=0;e=`\ud800`&&t<=`\udbff`,u)continue;if(t===`\x1B`||t===`ย`){Te.lastIndex=e+1;let t=Te.exec(l)?.groups;if(t?.code!==void 0){let e=Number.parseFloat(t.code);i=e===39?void 0:e}else t?.uri!==void 0&&(a=t.uri.length===0?void 0:t.uri)}if(l[e+1]===`
+`){a&&(r+=Oe(``));let e=i?Ee(i):void 0;i&&e&&(r+=De(e))}else t===`
+`&&(i&&Ee(i)&&(r+=De(i)),a&&(r+=Oe(a)))}return r},je=/\r?\n/;function O(e,t,n){return String(e).normalize().split(je).map(e=>Ae(e,t,n)).join(`
+`)}var k=_(((e,t)=>{let n={to(e,t){return t?`[${t+1};${e+1}H`:`[${e+1}G`},move(e,t){let n=``;return e<0?n+=`[${-e}D`:e>0&&(n+=`[${e}C`),t<0?n+=`[${-t}A`:t>0&&(n+=`[${t}B`),n},up:(e=1)=>`[${e}A`,down:(e=1)=>`[${e}B`,forward:(e=1)=>`[${e}C`,backward:(e=1)=>`[${e}D`,nextLine:(e=1)=>`\x1B[E`.repeat(e),prevLine:(e=1)=>`\x1B[F`.repeat(e),left:`\x1B[G`,hide:`\x1B[?25l`,show:`\x1B[?25h`,save:`\x1B7`,restore:`\x1B8`};t.exports={cursor:n,scroll:{up:(e=1)=>`\x1B[S`.repeat(e),down:(e=1)=>`\x1B[T`.repeat(e)},erase:{screen:`\x1B[2J`,up:(e=1)=>`\x1B[1J`.repeat(e),down:(e=1)=>`\x1B[J`.repeat(e),line:`\x1B[2K`,lineEnd:`\x1B[K`,lineStart:`\x1B[1K`,lines(e){let t=``;for(let r=0;r!e.disabled))return e;let r=e+t,i=Math.max(n.length-1,0),a=r<0?i:r>i?0:r;return n[a].disabled?A(a,t<0?-1:1,n):a}const j={actions:new Set([`up`,`down`,`left`,`right`,`space`,`enter`,`cancel`]),aliases:new Map([[`k`,`up`],[`j`,`down`],[`h`,`left`],[`l`,`right`],[``,`cancel`],[`escape`,`cancel`]]),messages:{cancel:`Canceled`,error:`Something went wrong`},withGuide:!0,date:{monthNames:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],messages:{required:`Please enter a valid date`,invalidMonth:`There are only 12 months in a year`,invalidDay:(e,t)=>`There are only ${e} days in ${t}`,afterMin:e=>`Date must be on or after ${e.toISOString().slice(0,10)}`,beforeMax:e=>`Date must be on or before ${e.toISOString().slice(0,10)}`}}};function Me(e,t){if(typeof e==`string`)return j.aliases.get(e)===t;for(let n of e)if(n!==void 0&&Me(n,t))return!0;return!1}function Ne(e,t){if(e===t)return;let n=e.split(`
+`),r=t.split(`
+`),i=Math.max(n.length,r.length),a=[];for(let e=0;e`columns`in e&&typeof e.columns==`number`?e.columns:80,Fe=e=>`rows`in e&&typeof e.rows==`number`?e.rows:20;function F(e,t,n,r=n,i){return O(t,Pe(e??l)-n.length,{hard:!0,trim:!1}).split(`
+`).map((e,t)=>{let a=i?i(e,t):e;return`${t===0?r:n}${a}`}).join(`
+`)}let I=class{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame=``;_subscribers=new Map;_cursor=0;state=`initial`;error=``;value;userInput=``;constructor(e,t=!0){let{input:n=c,output:r=l,render:i,signal:a,...o}=e;this.opts=o,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=t,this._abortSignal=a,this.input=n,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let n=this._subscribers.get(e)??[];n.push(t),this._subscribers.set(e,n)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let n=this._subscribers.get(e)??[],r=[];for(let e of n)e.cb(...t),e.once&&r.push(()=>n.splice(n.indexOf(e),1));for(let e of r)e()}prompt(){return new Promise(e=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state=`cancel`,this.close(),e(M);this._abortSignal.addEventListener(`abort`,()=>{this.state=`cancel`,this.close()},{once:!0})}this.rl=u.createInterface({input:this.input,tabSize:2,prompt:``,escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on(`keypress`,this.onKeypress),P(this.input,!0),this.output.on(`resize`,this.render),this.render(),this.once(`submit`,()=>{this.output.write(k.cursor.show),this.output.off(`resize`,this.render),P(this.input,!1),e(this.value)}),this.once(`cancel`,()=>{this.output.write(k.cursor.show),this.output.off(`resize`,this.render),P(this.input,!1),e(M)})})}_isActionKey(e,t){return e===` `}_shouldSubmit(e,t){return!0}_setValue(e){this.value=e,this.emit(`value`,this.value)}_setUserInput(e,t){this.userInput=e??``,this.emit(`userInput`,this.userInput),t&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:`u`}),this._setUserInput(``)}onKeypress(e,t){if(this._track&&t.name!==`return`&&(t.name&&this._isActionKey(e,t)&&this.rl?.write(null,{ctrl:!0,name:`h`}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state===`error`&&(this.state=`active`),t?.name&&(!this._track&&j.aliases.has(t.name)&&this.emit(`cursor`,j.aliases.get(t.name)),j.actions.has(t.name)&&this.emit(`cursor`,t.name)),e&&(e.toLowerCase()===`y`||e.toLowerCase()===`n`)&&this.emit(`confirm`,e.toLowerCase()===`y`),this.emit(`key`,e?.toLowerCase(),t),t?.name===`return`&&this._shouldSubmit(e,t)){if(this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state=`error`,this.rl?.write(this.userInput))}this.state!==`error`&&(this.state=`submit`)}Me([e,t?.name,t?.sequence],`cancel`)&&(this.state=`cancel`),(this.state===`submit`||this.state===`cancel`)&&this.emit(`finalize`),this.render(),(this.state===`submit`||this.state===`cancel`)&&this.close()}close(){this.input.unpipe(),this.input.removeListener(`keypress`,this.onKeypress),this.output.write(`
+`),P(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=O(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
+`).length-1;this.output.write(k.cursor.move(-999,e*-1))}render(){let e=O(this._render(this)??``,process.stdout.columns,{hard:!0,trim:!1});if(e!==this._prevFrame){if(this.state===`initial`)this.output.write(k.cursor.hide);else{let t=Ne(this._prevFrame,e),n=Fe(this.output);if(this.restoreCursor(),t){let r=Math.max(0,t.numLinesAfter-n),i=Math.max(0,t.numLinesBefore-n),a=t.lines.find(e=>e>=r);if(a===void 0){this._prevFrame=e;return}if(t.lines.length===1){this.output.write(k.cursor.move(0,a-i)),this.output.write(k.erase.lines(1));let t=e.split(`
+`);this.output.write(t[a]),this._prevFrame=e,this.output.write(k.cursor.move(0,t.length-a-1));return}else if(t.lines.length>1){if(r0&&this.output.write(k.cursor.move(0,e))}this.output.write(k.erase.down());let t=e.split(`
+`).slice(a);this.output.write(t.join(`
+`)),this._prevFrame=e;return}}this.output.write(k.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}};var Ie=class extends I{get cursor(){return+!this.value}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on(`userInput`,()=>{this.value=this._value}),this.on(`confirm`,e=>{this.output.write(k.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}},Le=class extends I{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(e){super(e,!1),this.options=e.options;let t=this.options.findIndex(({value:t})=>t===e.initialValue),n=t===-1?0:t;this.cursor=this.options[n].disabled?A(n,1,this.options):n,this.changeValue(),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=A(this.cursor,-1,this.options);break;case`down`:case`right`:this.cursor=A(this.cursor,1,this.options);break}this.changeValue()})}},Re=class extends I{get userInputWithCursor(){if(this.state===`submit`)return this.userInput;let e=this.userInput;if(this.cursor>=e.length)return`${this.userInput}\u2588`;let t=e.slice(0,this.cursor),[n,...r]=e.slice(this.cursor);return`${t}${o(`inverse`,n)}${r.join(``)}`}get cursor(){return this._cursor}constructor(e){super({...e,initialUserInput:e.initialUserInput??e.initialValue}),this.on(`userInput`,e=>{this._setValue(e)}),this.on(`finalize`,()=>{this.value||=e.defaultValue,this.value===void 0&&(this.value=``)})}};function ze(){return s.platform===`win32`?!!s.env.CI||!!s.env.WT_SESSION||!!s.env.TERMINUS_SUBLIME||s.env.ConEmuTask===`{cmd::Cmder}`||s.env.TERM_PROGRAM===`Terminus-Sublime`||s.env.TERM_PROGRAM===`vscode`||s.env.TERM===`xterm-256color`||s.env.TERM===`alacritty`||s.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:s.env.TERM!==`linux`}const Be=ze(),L=(e,t)=>Be?e:t,Ve=L(`โ`,`*`),He=L(`โ `,`x`),Ue=L(`โฒ`,`x`),R=L(`โ`,`o`),z=L(`โ`,`|`),B=L(`โ`,`โ`),We=L(`โ`,`>`),V=L(`โ`,` `),Ge=L(`โ`,`โข`),Ke=L(`โ`,`*`),qe=L(`โฒ`,`!`),Je=L(`โ `,`x`),Ye=e=>{switch(e){case`initial`:case`active`:return o(`cyan`,Ve);case`cancel`:return o(`red`,He);case`error`:return o(`yellow`,Ue);case`submit`:return o(`green`,R)}},Xe=e=>{switch(e){case`initial`:case`active`:return o(`cyan`,z);case`cancel`:return o(`red`,z);case`error`:return o(`yellow`,z);case`submit`:return o(`green`,z)}},Ze=(e,t,n,r,i)=>{let a=t,o=0;for(let t=n;t{let c=Pe(r)-a,l=Fe(r),u=o(`dim`,`...`),d=Math.max(l-s,0),f=Math.max(Math.min(i,d),5),p=0;e>=f-3&&(p=Math.max(Math.min(e-f+3,t.length-f),0));let m=f0,h=fd){let t=0,n=0,r=v,i=e-y,a=(e,t)=>Ze(_,r,e,t,d);m?({lineCount:r,removals:t}=a(0,i),r>d&&({lineCount:r,removals:n}=a(i+1,_.length))):({lineCount:r,removals:n}=a(i+1,_.length),r>d&&({lineCount:r,removals:t}=a(0,i))),t>0&&(m=!0,_.splice(0,t)),n>0&&(h=!0,_.splice(_.length-n,n))}let x=[];m&&x.push(u);for(let e of _)for(let t of e)x.push(t);return h&&x.push(u),x},$e=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new Ie({active:t,inactive:n,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue??!0,render(){let r=e.withGuide??j.withGuide,i=`${Ye(this.state)} `,a=r?`${o(`gray`,z)} `:``,s=F(e.output,e.message,a,i),c=`${r?`${o(`gray`,z)}
+`:``}${s}
+`,l=this.value?t:n;switch(this.state){case`submit`:return`${c}${r?`${o(`gray`,z)} `:``}${o(`dim`,l)}`;case`cancel`:return`${c}${r?`${o(`gray`,z)} `:``}${o([`strikethrough`,`dim`],l)}${r?`
+${o(`gray`,z)}`:``}`;default:{let i=r?`${o(`cyan`,z)} `:``,a=r?o(`cyan`,B):``;return`${c}${i}${this.value?`${o(`green`,We)} ${t}`:`${o(`dim`,V)} ${o(`dim`,t)}`}${e.vertical?r?`
+${o(`cyan`,z)} `:`
+`:` ${o(`dim`,`/`)} `}${this.value?`${o(`dim`,V)} ${o(`dim`,n)}`:`${o(`green`,We)} ${n}`}
+${a}
+`}}}}).prompt()},H={message:(e=[],{symbol:t=o(`gray`,z),secondarySymbol:n=o(`gray`,z),output:r=process.stdout,spacing:i=1,withGuide:a}={})=>{let s=[],c=a??j.withGuide,l=c?n:``,u=c?`${t} `:``,d=c?`${n} `:``;for(let e=0;e0){let[e,...r]=f;e.length>0?s.push(`${u}${e}`):s.push(c?t:``);for(let e of r)e.length>0?s.push(`${d}${e}`):s.push(c?n:``)}r.write(`${s.join(`
+`)}
+`)},info:(e,t)=>{H.message(e,{...t,symbol:o(`blue`,Ge)})},success:(e,t)=>{H.message(e,{...t,symbol:o(`green`,Ke)})},step:(e,t)=>{H.message(e,{...t,symbol:o(`green`,R)})},warn:(e,t)=>{H.message(e,{...t,symbol:o(`yellow`,qe)})},warning:(e,t)=>{H.warn(e,t)},error:(e,t)=>{H.message(e,{...t,symbol:o(`red`,Je)})}},et=(e=``,t)=>{let n=t?.output??process.stdout,r=t?.withGuide??j.withGuide?`${o(`gray`,B)} `:``;n.write(`${r}${o(`red`,e)}
+
+`)},tt=(e=``,t)=>{let n=t?.output??process.stdout,r=t?.withGuide??j.withGuide?`${o(`gray`,z)}
+${o(`gray`,B)} `:``;n.write(`${r}${e}
+
+`)},U=(e,t)=>e.includes(`
+`)?e.split(`
+`).map(e=>t(e)).join(`
+`):t(e),nt=e=>{let t=(e,t)=>{let n=e.label??String(e.value);switch(t){case`disabled`:return`${o(`gray`,V)} ${U(n,e=>o(`gray`,e))}${e.hint?` ${o(`dim`,`(${e.hint??`disabled`})`)}`:``}`;case`selected`:return`${U(n,e=>o(`dim`,e))}`;case`active`:return`${o(`green`,We)} ${n}${e.hint?` ${o(`dim`,`(${e.hint})`)}`:``}`;case`cancelled`:return`${U(n,e=>o([`strikethrough`,`dim`],e))}`;default:return`${o(`dim`,V)} ${U(n,e=>o(`dim`,e))}`}};return new Le({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){let n=e.withGuide??j.withGuide,r=`${Ye(this.state)} `,i=`${Xe(this.state)} `,a=F(e.output,e.message,i,r),s=`${n?`${o(`gray`,z)}
+`:``}${a}
+`;switch(this.state){case`submit`:{let r=n?`${o(`gray`,z)} `:``;return`${s}${F(e.output,t(this.options[this.cursor],`selected`),r)}`}case`cancel`:{let r=n?`${o(`gray`,z)} `:``;return`${s}${F(e.output,t(this.options[this.cursor],`cancelled`),r)}${n?`
+${o(`gray`,z)}`:``}`}default:{let r=n?`${o(`cyan`,z)} `:``,i=n?o(`cyan`,B):``,a=s.split(`
+`).length,c=n?2:1;return`${s}${r}${Qe({output:e.output,cursor:this.cursor,options:this.options,maxItems:e.maxItems,columnPadding:r.length,rowPadding:a+c,style:(e,n)=>t(e,e.disabled?`disabled`:n?`active`:`inactive`)}).join(`
+${r}`)}
+${i}
+`}}}}).prompt()},rt=`${o(`gray`,z)} `,W={message:async(e,{symbol:t=o(`gray`,z)}={})=>{process.stdout.write(`${o(`gray`,z)}
+${t} `);let n=3;for await(let t of e){t=t.replace(/\n/g,`
+${rt}`),t.includes(`
+`)&&(n=3+a(t.slice(t.lastIndexOf(`
+`))).length);let e=a(t).length;n+eW.message(e,{symbol:o(`blue`,Ge)}),success:e=>W.message(e,{symbol:o(`green`,Ke)}),step:e=>W.message(e,{symbol:o(`green`,R)}),warn:e=>W.message(e,{symbol:o(`yellow`,qe)}),warning:e=>W.warn(e),error:e=>W.message(e,{symbol:o(`red`,Je)})},it=e=>new Re({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,output:e.output,signal:e.signal,input:e.input,render(){let t=e?.withGuide??j.withGuide,n=`${`${t?`${o(`gray`,z)}
+`:``}${Ye(this.state)} `}${e.message}
+`,r=e.placeholder?o(`inverse`,e.placeholder[0])+o(`dim`,e.placeholder.slice(1)):o([`inverse`,`hidden`],`_`),i=this.userInput?this.userInputWithCursor:r,a=this.value??``;switch(this.state){case`error`:{let e=this.error?` ${o(`yellow`,this.error)}`:``,r=t?`${o(`yellow`,z)} `:``,a=t?o(`yellow`,B):``;return`${n.trim()}
+${r}${i}
+${a}${e}
+`}case`submit`:{let e=a?` ${o(`dim`,a)}`:``;return`${n}${t?o(`gray`,z):``}${e}`}case`cancel`:{let e=a?` ${o([`strikethrough`,`dim`],a)}`:``,r=t?o(`gray`,z):``;return`${n}${r}${e}${a.trim()?`
+${r}`:``}`}default:return`${n}${t?`${o(`cyan`,z)} `:``}${i}
+${t?o(`cyan`,B):``}
+`}}}).prompt();var at=_(((e,t)=>{var n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},s=(e,t,o,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of i(t))!a.call(e,c)&&c!==o&&n(e,c,{get:()=>t[c],enumerable:!(s=r(t,c))||s.enumerable});return e},c=e=>s(n({},`__esModule`,{value:!0}),e),l={};o(l,{KNOWN_AGENTS:()=>ee,determineAgent:()=>te}),t.exports=c(l);var u=b(`node:fs/promises`),d=b(`node:fs`);let f=`cursor`,p=`cursor-cli`,m=`claude`,h=`cowork`,g=`devin`,_=`replit`,v=`gemini`,y=`codex`,x=`antigravity`,S=`augment-cli`,C=`opencode`,w=`github-copilot`,ee={CURSOR:f,CURSOR_CLI:p,CLAUDE:m,COWORK:h,DEVIN:g,REPLIT:_,GEMINI:v,CODEX:y,ANTIGRAVITY:x,AUGMENT_CLI:S,OPENCODE:C,GITHUB_COPILOT:w,V0:`v0`};async function te(){if(process.env.AI_AGENT){let e=process.env.AI_AGENT.trim();if(e)return e===w||e===`github-copilot-cli`?{isAgent:!0,agent:{name:w}}:e===`v0`?{isAgent:!0,agent:{name:`v0`}}:{isAgent:!0,agent:{name:e}}}if(process.env.CURSOR_TRACE_ID)return{isAgent:!0,agent:{name:f}};if(process.env.CURSOR_AGENT||process.env.CURSOR_EXTENSION_HOST_ROLE===`agent-exec`)return{isAgent:!0,agent:{name:p}};if(process.env.GEMINI_CLI)return{isAgent:!0,agent:{name:v}};if(process.env.CODEX_SANDBOX||process.env.CODEX_CI||process.env.CODEX_THREAD_ID)return{isAgent:!0,agent:{name:y}};if(process.env.ANTIGRAVITY_AGENT)return{isAgent:!0,agent:{name:x}};if(process.env.AUGMENT_AGENT)return{isAgent:!0,agent:{name:S}};if(process.env.OPENCODE_CLIENT)return{isAgent:!0,agent:{name:C}};if(process.env.CLAUDECODE||process.env.CLAUDE_CODE)return process.env.CLAUDE_CODE_IS_COWORK?{isAgent:!0,agent:{name:h}}:{isAgent:!0,agent:{name:m}};if(process.env.REPL_ID)return{isAgent:!0,agent:{name:_}};if(process.env.COPILOT_MODEL||process.env.COPILOT_ALLOW_ALL||process.env.COPILOT_GITHUB_TOKEN)return{isAgent:!0,agent:{name:w}};try{return await(0,u.access)(`/opt/.devin`,d.constants.F_OK),{isAgent:!0,agent:{name:g}}}catch{}return{isAgent:!1,agent:void 0}}}))();const{blue:G,blueBright:K,cyan:q,green:ot,greenBright:st,magenta:J,red:Y,redBright:X,reset:ct,underline:lt,yellow:Z}=Pt(),Q=(0,de.default)(process.argv.slice(2),{boolean:[`help`,`overwrite`,`immediate`,`interactive`],alias:{h:`help`,t:`template`,i:`immediate`},string:[`template`]}),ut=process.cwd(),dt=`\
+Usage: create-vite [OPTION]... [DIRECTORY]
+
+Create a new Vite project in JavaScript or TypeScript.
+When running in TTY, the CLI will start in interactive mode.
+
+Options:
+ -t, --template NAME use a specific template
+ -i, --immediate install dependencies and start dev
+ --overwrite remove existing files if target directory is not empty
+ --interactive / --no-interactive force interactive / non-interactive mode
+
+Available templates:
+${Z(`vanilla-ts vanilla`)}
+${ot(`vue-ts vue`)}
+${q(`react-ts react`)}
+${q(`react-compiler-ts react-compiler`)}
+${J(`preact-ts preact`)}
+${X(`lit-ts lit`)}
+${Y(`svelte-ts svelte`)}
+${G(`solid-ts solid`)}
+${K(`qwik-ts qwik`)}`,$=[{name:`vanilla`,display:`Vanilla`,color:Z,variants:[{name:`vanilla-ts`,display:`TypeScript`,color:G},{name:`vanilla`,display:`JavaScript`,color:Z}]},{name:`vue`,display:`Vue`,color:ot,variants:[{name:`vue-ts`,display:`TypeScript`,color:G},{name:`vue`,display:`JavaScript`,color:Z},{name:`custom-create-vue`,display:`Official Vue Starter โ`,color:ot,customCommand:`npm create vue@latest TARGET_DIR`},{name:`custom-nuxt`,display:`Nuxt โ`,link:`https://nuxt.com`,color:st,customCommand:`npm exec nuxi init TARGET_DIR`},{name:`custom-vike-vue`,display:`Vike โ`,link:`https://vike.dev`,color:st,customCommand:`npm create -- vike@latest --vue TARGET_DIR`}]},{name:`react`,display:`React`,color:q,variants:[{name:`react-ts`,display:`TypeScript`,color:G},{name:`react-compiler-ts`,display:`TypeScript + React Compiler`,color:G},{name:`react`,display:`JavaScript`,color:Z},{name:`react-compiler`,display:`JavaScript + React Compiler`,color:Z},{name:`rsc`,display:`RSC`,color:J,customCommand:`npm exec tiged vitejs/vite-plugin-react/packages/plugin-rsc/examples/starter TARGET_DIR`},{name:`custom-react-router`,display:`React Router v7 โ`,link:`https://reactrouter.com`,color:q,customCommand:`npm create react-router@latest TARGET_DIR`},{name:`custom-tanstack-router-react`,display:`TanStack Router โ`,link:`https://tanstack.com/router`,color:q,customCommand:`npm exec -- @tanstack/cli@latest create TARGET_DIR --framework react --interactive`},{name:`redwoodsdk-standard`,display:`RedwoodSDK โ`,link:`https://rwsdk.com`,color:q,customCommand:`npm create rwsdk@latest TARGET_DIR`},{name:`custom-vike-react`,display:`Vike โ`,link:`https://vike.dev`,color:q,customCommand:`npm create -- vike@latest --react TARGET_DIR`}]},{name:`preact`,display:`Preact`,color:J,variants:[{name:`preact-ts`,display:`TypeScript`,color:G},{name:`preact`,display:`JavaScript`,color:Z},{name:`custom-create-preact`,display:`Official Preact Starter โ`,color:J,customCommand:`npm create preact@latest TARGET_DIR`}]},{name:`lit`,display:`Lit`,color:X,variants:[{name:`lit-ts`,display:`TypeScript`,color:G},{name:`lit`,display:`JavaScript`,color:Z}]},{name:`svelte`,display:`Svelte`,color:Y,variants:[{name:`svelte-ts`,display:`TypeScript`,color:G},{name:`svelte`,display:`JavaScript`,color:Z},{name:`custom-svelte-kit`,display:`SvelteKit โ`,color:Y,customCommand:`npm exec sv create TARGET_DIR`}]},{name:`solid`,display:`Solid`,color:G,variants:[{name:`solid-ts`,display:`TypeScript`,color:G},{name:`solid`,display:`JavaScript`,color:Z},{name:`custom-tanstack-router-solid`,display:`TanStack Router โ`,link:`https://tanstack.com/router`,color:q,customCommand:`npm exec -- @tanstack/cli@latest create TARGET_DIR --framework solid --interactive`},{name:`custom-vike-solid`,display:`Vike โ`,link:`https://vike.dev`,color:q,customCommand:`npm create -- vike@latest --solid TARGET_DIR`}]},{name:`ember`,display:`Ember`,color:X,variants:[{name:`ember-app-ts`,display:`TypeScript โ`,color:K,customCommand:`npm exec -- ember-cli@latest new TARGET_DIR --typescript`},{name:`ember-app`,display:`JavaScript โ`,color:X,customCommand:`npm exec -- ember-cli@latest new TARGET_DIR`}]},{name:`qwik`,display:`Qwik`,color:K,variants:[{name:`qwik-ts`,display:`TypeScript`,color:K},{name:`qwik`,display:`JavaScript`,color:Z},{name:`custom-qwik-city`,display:`QwikCity โ`,color:K,customCommand:`npm create qwik@latest empty TARGET_DIR`}]},{name:`angular`,display:`Angular`,color:Y,variants:[{name:`custom-angular`,display:`Angular โ`,color:Y,customCommand:`npm exec @angular/cli@latest new TARGET_DIR`},{name:`custom-analog`,display:`Analog โ`,color:Z,customCommand:`npm create analog@latest TARGET_DIR`}]},{name:`marko`,display:`Marko`,color:J,variants:[{name:`marko-run`,display:`Marko Run โ`,color:J,customCommand:`npm create -- marko@latest --name TARGET_DIR`}]},{name:`others`,display:`Others`,color:ct,variants:[{name:`create-vite-extra`,display:`Extra Vite Starters โ`,color:ct,customCommand:`npm create vite-extra@latest TARGET_DIR`},{name:`create-electron-vite`,display:`Electron โ`,color:ct,customCommand:`npm create electron-vite@latest TARGET_DIR`}]}],ft=$.map(e=>e.variants.map(e=>e.name)).reduce((e,t)=>e.concat(t),[]),pt={_gitignore:`.gitignore`},mt=`vite-project`;function ht([e,...t],n){let{status:r,error:i}=ue.default.sync(e,t,n);r!=null&&r>0&&process.exit(r),i&&(console.error(`\n${e} ${t.join(` `)} error!`),console.error(i),process.exit(1))}function gt(e,t){if(process.env._VITE_TEST_CLI){H.step(`Installing dependencies with ${t}... (skipped in test)`);return}H.step(`Installing dependencies with ${t}...`),ht(Mt(t),{stdio:`inherit`,cwd:e})}function _t(e,t){if(process.env._VITE_TEST_CLI){H.step(`Starting dev server... (skipped in test)`);return}H.step(`Starting dev server...`),ht(Nt(t,`dev`),{stdio:`inherit`,cwd:e})}async function vt(){let e=Q._[0]?yt(String(Q._[0])):void 0,i=Q.template,a=Q.overwrite,o=Q.immediate,s=Q.interactive;if(Q.help){console.log(dt);return}let c=s??process.stdin.isTTY,{isAgent:l}=await(0,at.determineAgent)();l&&c&&console.log(`
+To create in one go, run: create-vite --no-interactive --template
+`);let u=Et(process.env.npm_config_user_agent),d=()=>et(`Operation cancelled`),f=e;if(!f)if(c){let e=await it({message:`Project name:`,defaultValue:mt,placeholder:mt,validate:e=>!e||yt(e).length>0?void 0:`Invalid project name`});if(N(e))return d();f=yt(e)}else f=mt;if(t.existsSync(f)&&!wt(f)){let e=a?`yes`:void 0;if(!e)if(c){let t=await nt({message:(f===`.`?`Current directory`:`Target directory "${f}"`)+` is not empty. Please choose how to proceed:`,options:[{label:`Cancel operation`,value:`no`},{label:`Remove existing files and continue`,value:`yes`},{label:`Ignore files and continue`,value:`ignore`}]});if(N(t))return d();e=t}else e=`no`;switch(e){case`yes`:Tt(f);break;case`no`:d();return}}let p=n.basename(n.resolve(f));if(!xt(p))if(c){let e=await it({message:`Package name:`,defaultValue:St(p),placeholder:St(p),validate(e){if(e&&!xt(e))return`Invalid package.json name`}});if(N(e))return d();p=e}else p=St(p);let m=i,h=!1;if(i&&!ft.includes(i)&&(m=void 0,h=!0),!m)if(c){let e=await nt({message:h?`"${i}" isn't a valid template. Please choose from below: `:`Select a framework:`,options:$.map(e=>{let t=e.color;return{label:t(e.display||e.name),value:e}})});if(N(e))return d();let t=await nt({message:`Select a variant:`,options:e.variants.map(e=>{let t=e.customCommand?At(e.customCommand,u).replace(/ TARGET_DIR$/,``):void 0;return{label:jt(e),value:e.name,hint:t}})});if(N(t))return d();m=t}else m=`vanilla-ts`;let g=u?u.name:`npm`,_=n.join(ut,f),v=!1;m.includes(`react-compiler`)&&(v=!0,m=m.replace(`-compiler`,``));let{customCommand:y}=$.flatMap(e=>e.variants).find(e=>e.name===m)??{};if(y){let[e,...t]=At(y,u).split(` `),n=t.map(e=>e.replace(`TARGET_DIR`,()=>f)),{status:r}=ue.default.sync(e,n,{stdio:`inherit`});process.exit(r??0)}let b=o;if(b===void 0)if(c){let e=await $e({message:`Install with ${g} and start now?`});if(N(e))return d();b=e}else b=!1;t.mkdirSync(_,{recursive:!0}),H.step(`Scaffolding project in ${_}...`);let x=n.resolve(r(import.meta.url),`../..`,`template-${m}`),S=(e,r)=>{let i=n.join(_,pt[e]??e);if(r)t.writeFileSync(i,r);else if(e===`index.html`){let r=n.join(x,e),a=t.readFileSync(r,`utf-8`).replace(/.*?<\/title>/,`${p} `);t.writeFileSync(i,a)}else bt(n.join(x,e),i)},C=t.readdirSync(x);for(let e of C.filter(e=>e!==`package.json`))S(e);let w=JSON.parse(t.readFileSync(n.join(x,`package.json`),`utf-8`));if(w.name=p,S(`package.json`,JSON.stringify(w,null,2)+`
+`),v&&Dt(_,m.endsWith(`-ts`)),b)gt(_,g),_t(_,g);else{let e=``,t=n.relative(ut,_);e+=`Done. Now run:
+`,_!==ut&&(e+=`\n cd ${t.includes(` `)?`"${t}"`:t}`),e+=`\n ${Mt(g).join(` `)}`,e+=`\n ${Nt(g,`dev`).join(` `)}`,tt(e)}}function yt(e){return e.trim().replace(/[<>:"\\|?*]/g,``).replace(/\/+$/g,``)}function bt(e,n){t.statSync(e).isDirectory()?Ct(e,n):t.copyFileSync(e,n)}function xt(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function St(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/^[._]/,``).replace(/[^a-z\d\-~]+/g,`-`)}function Ct(e,r){t.mkdirSync(r,{recursive:!0});for(let i of t.readdirSync(e))bt(n.resolve(e,i),n.resolve(r,i))}function wt(e){let n=t.readdirSync(e);return n.length===0||n.length===1&&n[0]===`.git`}function Tt(e){if(t.existsSync(e))for(let r of t.readdirSync(e))r!==`.git`&&t.rmSync(n.resolve(e,r),{recursive:!0,force:!0})}function Et(e){if(!e)return;let t=e.split(` `)[0].split(`/`);return{name:t[0],version:t[1]}}function Dt(e,t){kt(n.resolve(e,`package.json`),e=>{let n=JSON.parse(e),r=Object.entries(n.devDependencies);return r.push([`@rolldown/plugin-babel`,`^0.2.3`]),r.push([`babel-plugin-react-compiler`,`^1.0.0`]),r.push([`@babel/core`,`^7.29.0`]),t&&r.push([`@types/babel__core`,`^7.20.5`]),r.sort(),n.devDependencies=Object.fromEntries(r),JSON.stringify(n,null,2)+`
+`}),kt(n.resolve(e,`vite.config.${t?`ts`:`js`}`),e=>e.replace(`import react from '@vitejs/plugin-react'`,`import react, { reactCompilerPreset } from '@vitejs/plugin-react'
+import babel from '@rolldown/plugin-babel'`).replace(` plugins: [react()],`,` plugins: [
+ react(),
+ babel({ presets: [reactCompilerPreset()] })
+ ],`)),Ot(e,`The React Compiler is enabled on this template. See [this documentation](https://react.dev/learn/react-compiler) for more information.
+
+Note: This will impact Vite dev & build performances.`)}function Ot(e,t){kt(n.resolve(e,`README.md`),e=>{let n=e.indexOf(`## React Compiler`),r=e.indexOf(`
+
+`,n),i=e.indexOf(`
+## `,r);return n===-1||r===-1||i===-1?(console.warn(`Could not update compiler section in README.md`),e):e.replace(e.slice(r+2,i-1),t)})}function kt(e,n){let r=t.readFileSync(e,`utf-8`);t.writeFileSync(e,n(r),`utf-8`)}function At(e,t){let n=t?t.name:`npm`,r=n===`yarn`&&t?.version.startsWith(`1.`);return e.replace(/^npm create (?:-- )?/,()=>n===`bun`?`bun x create-`:n===`deno`?`deno run -A npm:create-`:n===`pnpm`?`pnpm create `:e.startsWith(`npm create -- `)?`${n} create -- `:`${n} create `).replace(`@latest`,()=>r?``:`@latest`).replace(/^npm exec (?:-- )?/,()=>n===`pnpm`?`pnpm dlx `:n===`yarn`&&!r?`yarn dlx `:n===`bun`?`bun x `:n===`deno`?`deno run -A npm:`:e.startsWith(`npm exec -- `)?`npm exec -- `:`npm exec `)}function jt(e){let t=e.display||e.name,n=e.color(t),{link:r}=e;return r&&(n+=` ${lt(r)}`),n}function Mt(e){return e===`yarn`?[e]:[e,`install`]}function Nt(e,t){switch(e){case`yarn`:case`pnpm`:case`bun`:return[e,t];case`deno`:return[e,`task`,t];default:return[e,`run`,t]}}function Pt(){return new Proxy({},{get(e,t){return e=>i.styleText(t,e)}})}vt().catch(e=>{console.error(e)});export{};
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/index.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/index.js
new file mode 100644
index 0000000..a771b98
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/index.js
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+import './dist/index.js'
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/package.json
new file mode 100644
index 0000000..3c2339a
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/package.json
@@ -0,0 +1,43 @@
+{
+ "name": "create-vite",
+ "version": "9.0.7",
+ "type": "module",
+ "license": "MIT",
+ "author": "Evan You",
+ "bin": {
+ "create-vite": "index.js",
+ "cva": "index.js"
+ },
+ "files": [
+ "index.js",
+ "template-*",
+ "dist"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/vitejs/vite.git",
+ "directory": "packages/create-vite"
+ },
+ "bugs": {
+ "url": "https://github.com/vitejs/vite/issues"
+ },
+ "homepage": "https://github.com/vitejs/vite/tree/main/packages/create-vite#readme",
+ "funding": "https://github.com/vitejs/vite?sponsor=1",
+ "devDependencies": {
+ "@clack/prompts": "^1.3.0",
+ "@vercel/detect-agent": "^1.2.3",
+ "cross-spawn": "^7.0.6",
+ "mri": "^1.2.0",
+ "tsdown": "^0.22.0",
+ "unrun": "^0.3.0"
+ },
+ "scripts": {
+ "dev": "tsdown --watch",
+ "build": "tsdown",
+ "typecheck": "tsc",
+ "execute": "node index.js"
+ }
+}
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/index.html
new file mode 100644
index 0000000..b74823e
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ Vite + Lit + TS
+
+
+
+
+
+ Get started
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/package.json
new file mode 100644
index 0000000..f5e6c97
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "vite-lit-ts-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "lit": "^3.3.2"
+ },
+ "devDependencies": {
+ "typescript": "~6.0.2",
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/lit.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/lit.svg
new file mode 100644
index 0000000..4a9c1fe
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/lit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/index.css
new file mode 100644
index 0000000..4ffca5c
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/index.css
@@ -0,0 +1,24 @@
+:root {
+ color-scheme: light dark;
+ background-color: #ffffff;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ background-color: #16171d;
+ }
+}
+
+body {
+ margin: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ min-width: 320px;
+ min-height: 100svh;
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ overflow-x: hidden;
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/my-element.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/my-element.ts
new file mode 100644
index 0000000..d02bc8d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/src/my-element.ts
@@ -0,0 +1,438 @@
+import { LitElement, css, html } from 'lit'
+import { customElement, property } from 'lit/decorators.js'
+import litLogo from './assets/lit.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+
+/**
+ * An example element.
+ *
+ * @slot - This element has a slot
+ * @csspart button - The button
+ */
+@customElement('my-element')
+export class MyElement extends LitElement {
+ /**
+ * The number of times the button has been clicked.
+ */
+ @property({ type: Number })
+ count = 0
+
+ render() {
+ return html`
+
+
+
+
+
+
+
+
+
+ Edit src/my-element.ts and save to test
+ HMR
+
+
+
+ Count is ${this.count}
+
+
+
+
+
+
+
+
+
+
+
+ `
+ }
+
+ private _onClick() {
+ this.count++
+ }
+
+ static styles = css`
+ :host {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ color: var(--text);
+ }
+
+ @media (prefers-color-scheme: dark) {
+ :host {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px,
+ rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+ }
+
+ h1,
+ h2,
+ ::slotted(h1),
+ ::slotted(h2) {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+ }
+
+ h1,
+ ::slotted(h1) {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ }
+
+ h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ }
+
+ p {
+ margin: 0;
+ }
+
+ code {
+ font-family: var(--mono);
+ font-size: 15px;
+ line-height: 135%;
+ display: inline-flex;
+ padding: 4px 8px;
+ border-radius: 4px;
+ color: var(--text-h);
+ background: var(--code-bg);
+ }
+
+ .counter {
+ font-family: var(--mono);
+ font-size: 16px;
+ display: inline-flex;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+ cursor: pointer;
+ }
+
+ .counter:hover {
+ border-color: var(--accent-border);
+ }
+
+ .counter:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+
+ .hero {
+ position: relative;
+ }
+
+ .hero .base,
+ .hero .framework,
+ .hero .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .hero .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .hero .framework,
+ .hero .vite {
+ position: absolute;
+ }
+
+ .hero .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg)
+ rotateY(39deg) scale(1.4);
+ }
+
+ .hero .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ color: var(--vite-logo);
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg)
+ rotateY(39deg) scale(0.8);
+ }
+
+ #center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+ }
+
+ #next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+ }
+
+ #next-steps > div {
+ flex: 1 1 0;
+ padding: 32px;
+ }
+
+ #next-steps .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ #docs {
+ border-right: 1px solid var(--border);
+ }
+
+ #next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+ }
+
+ #next-steps ul .logo {
+ height: 18px;
+ }
+
+ #next-steps ul .logo svg {
+ height: 100%;
+ width: auto;
+ }
+
+ #next-steps ul a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+ }
+
+ #next-steps ul a:hover {
+ box-shadow: var(--shadow);
+ }
+
+ #next-steps ul .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+
+ #spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ }
+
+ .ticks {
+ position: relative;
+ width: 100%;
+ }
+
+ .ticks::before,
+ .ticks::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ .ticks::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+
+ .ticks::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+
+ @media (max-width: 1024px) {
+ :host {
+ font-size: 16px;
+ width: 100%;
+ max-width: 100%;
+ }
+
+ h1,
+ ::slotted(h1) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+
+ h2,
+ ::slotted(h2) {
+ font-size: 20px;
+ }
+
+ #center {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+
+ #next-steps {
+ flex-direction: column;
+ text-align: center;
+ }
+
+ #next-steps > div {
+ padding: 24px 20px;
+ }
+
+ #docs {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+
+ #next-steps ul {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+ }
+
+ #next-steps ul li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ #next-steps ul a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+
+ #spacer {
+ height: 48px;
+ }
+ }
+ `
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'my-element': MyElement
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/tsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/tsconfig.json
new file mode 100644
index 0000000..ec4849a
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit-ts/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "es2023",
+ "experimentalDecorators": true,
+ "useDefineForClassFields": false,
+ "module": "esnext",
+ "lib": ["ES2023", "DOM"],
+ "types": ["vite/client"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/index.html
new file mode 100644
index 0000000..c7b06cf
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ Vite + Lit
+
+
+
+
+
+ Get started
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/package.json
new file mode 100644
index 0000000..afa3722
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "vite-lit-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "lit": "^3.3.2"
+ },
+ "devDependencies": {
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/lit.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/lit.svg
new file mode 100644
index 0000000..4a9c1fe
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/lit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/index.css
new file mode 100644
index 0000000..4ffca5c
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/index.css
@@ -0,0 +1,24 @@
+:root {
+ color-scheme: light dark;
+ background-color: #ffffff;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ background-color: #16171d;
+ }
+}
+
+body {
+ margin: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ min-width: 320px;
+ min-height: 100svh;
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ overflow-x: hidden;
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/my-element.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/my-element.js
new file mode 100644
index 0000000..3f63508
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-lit/src/my-element.js
@@ -0,0 +1,442 @@
+import { LitElement, css, html } from 'lit'
+import litLogo from './assets/lit.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+
+/**
+ * An example element.
+ *
+ * @slot - This element has a slot
+ * @csspart button - The button
+ */
+export class MyElement extends LitElement {
+ static get properties() {
+ return {
+ /**
+ * The number of times the button has been clicked.
+ */
+ count: { type: Number },
+ }
+ }
+
+ constructor() {
+ super()
+ this.count = 0
+ }
+
+ render() {
+ return html`
+
+
+
+
+
+
+
+
+
+ Edit src/my-element.js and save to test
+ HMR
+
+
+
+ Count is ${this.count}
+
+
+
+
+
+
+
+
+
+
+
+
+ `
+ }
+
+ _onClick() {
+ this.count++
+ }
+
+ static get styles() {
+ return css`
+ :host {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px,
+ rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ color: var(--text);
+ }
+
+ @media (prefers-color-scheme: dark) {
+ :host {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px,
+ rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+ }
+
+ h1,
+ h2,
+ ::slotted(h1),
+ ::slotted(h2) {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+ }
+
+ h1,
+ ::slotted(h1) {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ }
+
+ h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ }
+
+ p {
+ margin: 0;
+ }
+
+ code {
+ font-family: var(--mono);
+ font-size: 15px;
+ line-height: 135%;
+ display: inline-flex;
+ padding: 4px 8px;
+ border-radius: 4px;
+ color: var(--text-h);
+ background: var(--code-bg);
+ }
+
+ .counter {
+ font-family: var(--mono);
+ font-size: 16px;
+ display: inline-flex;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+ cursor: pointer;
+ }
+
+ .counter:hover {
+ border-color: var(--accent-border);
+ }
+
+ .counter:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+
+ .hero {
+ position: relative;
+ }
+
+ .hero .base,
+ .hero .framework,
+ .hero .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .hero .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .hero .framework,
+ .hero .vite {
+ position: absolute;
+ }
+
+ .hero .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg)
+ rotateY(39deg) scale(1.4);
+ }
+
+ .hero .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg)
+ rotateY(39deg) scale(0.8);
+ }
+
+ #center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+ }
+
+ #next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+ }
+
+ #next-steps > div {
+ flex: 1 1 0;
+ padding: 32px;
+ }
+
+ #next-steps .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ #docs {
+ border-right: 1px solid var(--border);
+ }
+
+ #next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+ }
+
+ #next-steps ul .logo {
+ height: 18px;
+ }
+
+ #next-steps ul .logo svg {
+ height: 100%;
+ width: auto;
+ }
+
+ #next-steps ul a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+ }
+
+ #next-steps ul a:hover {
+ box-shadow: var(--shadow);
+ }
+
+ #next-steps ul .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+
+ #spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ }
+
+ .ticks {
+ position: relative;
+ width: 100%;
+ }
+
+ .ticks::before,
+ .ticks::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ .ticks::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+
+ .ticks::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+
+ @media (max-width: 1024px) {
+ :host {
+ font-size: 16px;
+ width: 100%;
+ max-width: 100%;
+ }
+
+ h1,
+ ::slotted(h1) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+
+ h2,
+ ::slotted(h2) {
+ font-size: 20px;
+ }
+
+ #center {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+
+ #next-steps {
+ flex-direction: column;
+ text-align: center;
+ }
+
+ #next-steps > div {
+ padding: 24px 20px;
+ }
+
+ #docs {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+
+ #next-steps ul {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+ }
+
+ #next-steps ul li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ #next-steps ul a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+
+ #spacer {
+ height: 48px;
+ }
+ }
+ `
+ }
+}
+
+window.customElements.define('my-element', MyElement)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/index.html
new file mode 100644
index 0000000..dd25d63
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Preact + TS
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/package.json
new file mode 100644
index 0000000..905229e
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "vite-preact-ts-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc -b && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "preact": "^10.29.1"
+ },
+ "devDependencies": {
+ "@preact/preset-vite": "^2.10.5",
+ "@types/node": "^24.12.3",
+ "typescript": "~6.0.2",
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/app.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/app.css
new file mode 100644
index 0000000..3e2ec78
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/app.css
@@ -0,0 +1,196 @@
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#root {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/app.tsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/app.tsx
new file mode 100644
index 0000000..ea79489
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/app.tsx
@@ -0,0 +1,104 @@
+import { useState } from 'preact/hooks'
+import preactLogo from './assets/preact.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './app.css'
+
+export function App() {
+ const [count, setCount] = useState(0)
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Get started
+
+ Edit src/app.tsx and save to test HMR
+
+
+ setCount((count) => count + 1)}
+ >
+ Count is {count}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/preact.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/preact.svg
new file mode 100644
index 0000000..908f17d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/preact.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/index.css
new file mode 100644
index 0000000..2bdd44f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/index.css
@@ -0,0 +1,111 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/main.tsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/main.tsx
new file mode 100644
index 0000000..bfb172e
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/src/main.tsx
@@ -0,0 +1,5 @@
+import { render } from 'preact'
+import './index.css'
+import { App } from './app.tsx'
+
+render( , document.getElementById('app')!)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.app.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.app.json
new file mode 100644
index 0000000..3b144be
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.app.json
@@ -0,0 +1,30 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "es2023",
+ "module": "esnext",
+ "lib": ["ES2023", "DOM"],
+ "types": ["vite/client"],
+ "skipLibCheck": true,
+ "paths": {
+ "react": ["./node_modules/preact/compat/"],
+ "react-dom": ["./node_modules/preact/compat/"]
+ },
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "react-jsx",
+ "jsxImportSource": "preact",
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.json
new file mode 100644
index 0000000..1ffef60
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.node.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.node.json
new file mode 100644
index 0000000..d3c52ea
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "es2023",
+ "lib": ["ES2023"],
+ "module": "esnext",
+ "types": ["node"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/vite.config.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/vite.config.ts
new file mode 100644
index 0000000..b995c32
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact-ts/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import preact from '@preact/preset-vite'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [preact()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/index.html
new file mode 100644
index 0000000..d06ca44
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Preact
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/package.json
new file mode 100644
index 0000000..e53cea8
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "vite-preact-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "preact": "^10.29.1"
+ },
+ "devDependencies": {
+ "@preact/preset-vite": "^2.10.5",
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/app.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/app.css
new file mode 100644
index 0000000..3e2ec78
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/app.css
@@ -0,0 +1,196 @@
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#root {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/app.jsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/app.jsx
new file mode 100644
index 0000000..9088c55
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/app.jsx
@@ -0,0 +1,104 @@
+import { useState } from 'preact/hooks'
+import preactLogo from './assets/preact.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './app.css'
+
+export function App() {
+ const [count, setCount] = useState(0)
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Get started
+
+ Edit src/app.jsx and save to test HMR
+
+
+ setCount((count) => count + 1)}
+ >
+ Count is {count}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/preact.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/preact.svg
new file mode 100644
index 0000000..908f17d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/preact.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/index.css
new file mode 100644
index 0000000..2bdd44f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/index.css
@@ -0,0 +1,111 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/main.jsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/main.jsx
new file mode 100644
index 0000000..26b0467
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/src/main.jsx
@@ -0,0 +1,5 @@
+import { render } from 'preact'
+import './index.css'
+import { App } from './app.jsx'
+
+render( , document.getElementById('app'))
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/vite.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/vite.config.js
new file mode 100644
index 0000000..b995c32
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-preact/vite.config.js
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import preact from '@preact/preset-vite'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [preact()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/README.md
new file mode 100644
index 0000000..c1aaa6b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/README.md
@@ -0,0 +1,38 @@
+# Qwik + Vite
+
+## Qwik in CSR mode
+
+This starter is using a pure CSR (Client-Side Rendering) mode. This means, that the application is fully bootstrapped in the browser. Most of Qwik innovations however take advantage of SSR (Server-Side Rendering) mode.
+
+```ts
+export default defineConfig({
+ plugins: [
+ qwikVite({
+ csr: true,
+ }),
+ ],
+})
+```
+
+Use `npm create qwik@latest` to create a full production ready Qwik application, using SSR and [QwikCity](https://qwik.dev/docs/qwikcity/), our server-side meta-framework.
+
+## Usage
+
+```bash
+$ npm install # or pnpm install or yarn install
+```
+
+Learn more on the [Qwik Website](https://qwik.dev) and join our community on our [Discord](https://qwik.dev/chat)
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm run dev`
+
+Runs the app in the development mode.
+Open [http://localhost:5173](http://localhost:5173) to view it in the browser.
+
+### `npm run build`
+
+Builds the app for production to the `dist` folder.
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/index.html
new file mode 100644
index 0000000..78dd6f4
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Qwik + TS
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/package.json
new file mode 100644
index 0000000..4f65e7d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "vite-qwik",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc -b && vite build",
+ "preview": "serve dist"
+ },
+ "devDependencies": {
+ "@types/node": "^24.12.3",
+ "serve": "^14.2.6",
+ "typescript": "~6.0.2",
+ "vite": "^8.0.12"
+ },
+ "dependencies": {
+ "@builder.io/qwik": "^1.19.2"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/app.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/app.css
new file mode 100644
index 0000000..3e2ec78
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/app.css
@@ -0,0 +1,196 @@
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#root {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/app.tsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/app.tsx
new file mode 100644
index 0000000..350813e
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/app.tsx
@@ -0,0 +1,101 @@
+import { component$, useSignal } from '@builder.io/qwik'
+
+import qwikLogo from './assets/qwik.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './app.css'
+
+export const App = component$(() => {
+ const count = useSignal(0)
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Get started
+
+ Edit src/app.tsx and save to test HMR
+
+
+ count.value++}>
+ Count is {count.value}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/qwik.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/qwik.svg
new file mode 100644
index 0000000..08a46e2
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/qwik.svg
@@ -0,0 +1,5 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/index.css
new file mode 100644
index 0000000..2bdd44f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/index.css
@@ -0,0 +1,111 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/main.tsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/main.tsx
new file mode 100644
index 0000000..3ab6fcc
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/src/main.tsx
@@ -0,0 +1,7 @@
+import '@builder.io/qwik/qwikloader.js'
+
+import { render } from '@builder.io/qwik'
+import './index.css'
+import { App } from './app.tsx'
+
+render(document.getElementById('app') as HTMLElement, )
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.app.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.app.json
new file mode 100644
index 0000000..8e60c4d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.app.json
@@ -0,0 +1,26 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "es2023",
+ "module": "esnext",
+ "lib": ["ES2023", "DOM"],
+ "types": ["vite/client"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "react-jsx",
+ "jsxImportSource": "@builder.io/qwik",
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.json
new file mode 100644
index 0000000..1ffef60
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.node.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.node.json
new file mode 100644
index 0000000..d3c52ea
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "es2023",
+ "lib": ["ES2023"],
+ "module": "esnext",
+ "types": ["node"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/vite.config.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/vite.config.ts
new file mode 100644
index 0000000..8c07d8f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik-ts/vite.config.ts
@@ -0,0 +1,11 @@
+import { defineConfig } from 'vite'
+import { qwikVite } from '@builder.io/qwik/optimizer'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [
+ qwikVite({
+ csr: true,
+ }),
+ ],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/README.md
new file mode 100644
index 0000000..c1aaa6b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/README.md
@@ -0,0 +1,38 @@
+# Qwik + Vite
+
+## Qwik in CSR mode
+
+This starter is using a pure CSR (Client-Side Rendering) mode. This means, that the application is fully bootstrapped in the browser. Most of Qwik innovations however take advantage of SSR (Server-Side Rendering) mode.
+
+```ts
+export default defineConfig({
+ plugins: [
+ qwikVite({
+ csr: true,
+ }),
+ ],
+})
+```
+
+Use `npm create qwik@latest` to create a full production ready Qwik application, using SSR and [QwikCity](https://qwik.dev/docs/qwikcity/), our server-side meta-framework.
+
+## Usage
+
+```bash
+$ npm install # or pnpm install or yarn install
+```
+
+Learn more on the [Qwik Website](https://qwik.dev) and join our community on our [Discord](https://qwik.dev/chat)
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm run dev`
+
+Runs the app in the development mode.
+Open [http://localhost:5173](http://localhost:5173) to view it in the browser.
+
+### `npm run build`
+
+Builds the app for production to the `dist` folder.
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/index.html
new file mode 100644
index 0000000..764c7c8
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Qwik
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/package.json
new file mode 100644
index 0000000..739ccfd
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "vite-qwik",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "serve dist"
+ },
+ "devDependencies": {
+ "serve": "^14.2.6",
+ "vite": "^8.0.12"
+ },
+ "dependencies": {
+ "@builder.io/qwik": "^1.19.2"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/app.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/app.css
new file mode 100644
index 0000000..3e2ec78
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/app.css
@@ -0,0 +1,196 @@
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#root {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/app.jsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/app.jsx
new file mode 100644
index 0000000..d6b8a64
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/app.jsx
@@ -0,0 +1,101 @@
+import { component$, useSignal } from '@builder.io/qwik'
+
+import qwikLogo from './assets/qwik.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './app.css'
+
+export const App = component$(() => {
+ const count = useSignal(0)
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Get started
+
+ Edit src/app.jsx and save to test HMR
+
+
+ count.value++}>
+ Count is {count.value}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/qwik.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/qwik.svg
new file mode 100644
index 0000000..08a46e2
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/qwik.svg
@@ -0,0 +1,5 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/index.css
new file mode 100644
index 0000000..2bdd44f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/index.css
@@ -0,0 +1,111 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/main.jsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/main.jsx
new file mode 100644
index 0000000..d2dcca9
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/src/main.jsx
@@ -0,0 +1,7 @@
+import '@builder.io/qwik/qwikloader.js'
+
+import { render } from '@builder.io/qwik'
+import './index.css'
+import { App } from './app.jsx'
+
+render(document.getElementById('app'), )
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/vite.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/vite.config.js
new file mode 100644
index 0000000..8c07d8f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-qwik/vite.config.js
@@ -0,0 +1,11 @@
+import { defineConfig } from 'vite'
+import { qwikVite } from '@builder.io/qwik/optimizer'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [
+ qwikVite({
+ csr: true,
+ }),
+ ],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/README.md
new file mode 100644
index 0000000..7dbf7eb
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/README.md
@@ -0,0 +1,73 @@
+# React + TypeScript + Vite
+
+This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
+
+Currently, two official plugins are available:
+
+- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
+- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
+
+## React Compiler
+
+The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
+
+## Expanding the ESLint configuration
+
+If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
+
+```js
+export default defineConfig([
+ globalIgnores(['dist']),
+ {
+ files: ['**/*.{ts,tsx}'],
+ extends: [
+ // Other configs...
+
+ // Remove tseslint.configs.recommended and replace with this
+ tseslint.configs.recommendedTypeChecked,
+ // Alternatively, use this for stricter rules
+ tseslint.configs.strictTypeChecked,
+ // Optionally, add this for stylistic rules
+ tseslint.configs.stylisticTypeChecked,
+
+ // Other configs...
+ ],
+ languageOptions: {
+ parserOptions: {
+ project: ['./tsconfig.node.json', './tsconfig.app.json'],
+ tsconfigRootDir: import.meta.dirname,
+ },
+ // other options...
+ },
+ },
+])
+```
+
+You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
+
+```js
+// eslint.config.js
+import reactX from 'eslint-plugin-react-x'
+import reactDom from 'eslint-plugin-react-dom'
+
+export default defineConfig([
+ globalIgnores(['dist']),
+ {
+ files: ['**/*.{ts,tsx}'],
+ extends: [
+ // Other configs...
+ // Enable lint rules for React
+ reactX.configs['recommended-typescript'],
+ // Enable lint rules for React DOM
+ reactDom.configs.recommended,
+ ],
+ languageOptions: {
+ parserOptions: {
+ project: ['./tsconfig.node.json', './tsconfig.app.json'],
+ tsconfigRootDir: import.meta.dirname,
+ },
+ // other options...
+ },
+ },
+])
+```
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/eslint.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/eslint.config.js
new file mode 100644
index 0000000..ef614d2
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/eslint.config.js
@@ -0,0 +1,22 @@
+import js from '@eslint/js'
+import globals from 'globals'
+import reactHooks from 'eslint-plugin-react-hooks'
+import reactRefresh from 'eslint-plugin-react-refresh'
+import tseslint from 'typescript-eslint'
+import { defineConfig, globalIgnores } from 'eslint/config'
+
+export default defineConfig([
+ globalIgnores(['dist']),
+ {
+ files: ['**/*.{ts,tsx}'],
+ extends: [
+ js.configs.recommended,
+ tseslint.configs.recommended,
+ reactHooks.configs.flat.recommended,
+ reactRefresh.configs.vite,
+ ],
+ languageOptions: {
+ globals: globals.browser,
+ },
+ },
+])
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/index.html
new file mode 100644
index 0000000..3d38e14
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + React + TS
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/package.json
new file mode 100644
index 0000000..c64e820
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "vite-react-typescript-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc -b && vite build",
+ "lint": "eslint .",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "react": "^19.2.6",
+ "react-dom": "^19.2.6"
+ },
+ "devDependencies": {
+ "@eslint/js": "^10.0.1",
+ "@types/node": "^24.12.3",
+ "@types/react": "^19.2.14",
+ "@types/react-dom": "^19.2.3",
+ "@vitejs/plugin-react": "^6.0.1",
+ "eslint": "^10.3.0",
+ "eslint-plugin-react-hooks": "^7.1.1",
+ "eslint-plugin-react-refresh": "^0.5.2",
+ "globals": "^17.6.0",
+ "typescript": "~6.0.2",
+ "typescript-eslint": "^8.59.2",
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/App.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/App.css
new file mode 100644
index 0000000..f90339d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/App.css
@@ -0,0 +1,184 @@
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/App.tsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/App.tsx
new file mode 100644
index 0000000..a66b5ef
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/App.tsx
@@ -0,0 +1,122 @@
+import { useState } from 'react'
+import reactLogo from './assets/react.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './App.css'
+
+function App() {
+ const [count, setCount] = useState(0)
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Get started
+
+ Edit src/App.tsx and save to test HMR
+
+
+ setCount((count) => count + 1)}
+ >
+ Count is {count}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default App
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/react.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/react.svg
new file mode 100644
index 0000000..6c87de9
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/index.css
new file mode 100644
index 0000000..5fb3313
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/index.css
@@ -0,0 +1,111 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+#root {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+body {
+ margin: 0;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/main.tsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/main.tsx
new file mode 100644
index 0000000..bef5202
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/src/main.tsx
@@ -0,0 +1,10 @@
+import { StrictMode } from 'react'
+import { createRoot } from 'react-dom/client'
+import './index.css'
+import App from './App.tsx'
+
+createRoot(document.getElementById('root')!).render(
+
+
+ ,
+)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.app.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.app.json
new file mode 100644
index 0000000..7f42e5f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.app.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "es2023",
+ "lib": ["ES2023", "DOM"],
+ "module": "esnext",
+ "types": ["vite/client"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "react-jsx",
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.json
new file mode 100644
index 0000000..1ffef60
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.node.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.node.json
new file mode 100644
index 0000000..d3c52ea
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "es2023",
+ "lib": ["ES2023"],
+ "module": "esnext",
+ "types": ["node"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/vite.config.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/vite.config.ts
new file mode 100644
index 0000000..8b0f57b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react-ts/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [react()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/README.md
new file mode 100644
index 0000000..a36934d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/README.md
@@ -0,0 +1,16 @@
+# React + Vite
+
+This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
+
+Currently, two official plugins are available:
+
+- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
+- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
+
+## React Compiler
+
+The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
+
+## Expanding the ESLint configuration
+
+If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/eslint.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/eslint.config.js
new file mode 100644
index 0000000..ea36dd3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/eslint.config.js
@@ -0,0 +1,21 @@
+import js from '@eslint/js'
+import globals from 'globals'
+import reactHooks from 'eslint-plugin-react-hooks'
+import reactRefresh from 'eslint-plugin-react-refresh'
+import { defineConfig, globalIgnores } from 'eslint/config'
+
+export default defineConfig([
+ globalIgnores(['dist']),
+ {
+ files: ['**/*.{js,jsx}'],
+ extends: [
+ js.configs.recommended,
+ reactHooks.configs.flat.recommended,
+ reactRefresh.configs.vite,
+ ],
+ languageOptions: {
+ globals: globals.browser,
+ parserOptions: { ecmaFeatures: { jsx: true } },
+ },
+ },
+])
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/index.html
new file mode 100644
index 0000000..594488a
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + React
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/package.json
new file mode 100644
index 0000000..073e0d8
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "vite-react-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "lint": "eslint .",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "react": "^19.2.6",
+ "react-dom": "^19.2.6"
+ },
+ "devDependencies": {
+ "@eslint/js": "^10.0.1",
+ "@types/react": "^19.2.14",
+ "@types/react-dom": "^19.2.3",
+ "@vitejs/plugin-react": "^6.0.1",
+ "eslint": "^10.3.0",
+ "eslint-plugin-react-hooks": "^7.1.1",
+ "eslint-plugin-react-refresh": "^0.5.2",
+ "globals": "^17.6.0",
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/App.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/App.css
new file mode 100644
index 0000000..f90339d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/App.css
@@ -0,0 +1,184 @@
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/App.jsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/App.jsx
new file mode 100644
index 0000000..4f03aa1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/App.jsx
@@ -0,0 +1,122 @@
+import { useState } from 'react'
+import reactLogo from './assets/react.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './App.css'
+
+function App() {
+ const [count, setCount] = useState(0)
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Get started
+
+ Edit src/App.jsx and save to test HMR
+
+
+ setCount((count) => count + 1)}
+ >
+ Count is {count}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default App
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/react.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/react.svg
new file mode 100644
index 0000000..6c87de9
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/index.css
new file mode 100644
index 0000000..2c84af0
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/index.css
@@ -0,0 +1,111 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+#root {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/main.jsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/main.jsx
new file mode 100644
index 0000000..b9a1a6d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/src/main.jsx
@@ -0,0 +1,10 @@
+import { StrictMode } from 'react'
+import { createRoot } from 'react-dom/client'
+import './index.css'
+import App from './App.jsx'
+
+createRoot(document.getElementById('root')).render(
+
+
+ ,
+)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/vite.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/vite.config.js
new file mode 100644
index 0000000..8b0f57b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-react/vite.config.js
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [react()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/README.md
new file mode 100644
index 0000000..167c567
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/README.md
@@ -0,0 +1,28 @@
+## Usage
+
+```bash
+$ npm install # or pnpm install or yarn install
+```
+
+### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs)
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm run dev`
+
+Runs the app in the development mode.
+Open [http://localhost:5173](http://localhost:5173) to view it in the browser.
+
+### `npm run build`
+
+Builds the app for production to the `dist` folder.
+It correctly bundles Solid in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.
+Your app is ready to be deployed!
+
+## Deployment
+
+Learn more about deploying your application with the [documentations](https://vite.dev/guide/static-deploy.html)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/index.html
new file mode 100644
index 0000000..51addad
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Solid + TS
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/package.json
new file mode 100644
index 0000000..cbeb5d6
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "vite-solid-typescript-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc -b && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "solid-js": "^1.9.12"
+ },
+ "devDependencies": {
+ "@types/node": "^24.12.3",
+ "typescript": "~6.0.2",
+ "vite": "^8.0.12",
+ "vite-plugin-solid": "^2.11.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/App.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/App.css
new file mode 100644
index 0000000..f90339d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/App.css
@@ -0,0 +1,184 @@
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/App.tsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/App.tsx
new file mode 100644
index 0000000..d9148cf
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/App.tsx
@@ -0,0 +1,106 @@
+import { createSignal } from 'solid-js'
+import solidLogo from './assets/solid.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './App.css'
+
+function App() {
+ const [count, setCount] = createSignal(0)
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Get started
+
+ Edit src/App.tsx and save to test HMR
+
+
+ setCount((count) => count + 1)}
+ >
+ Count is {count()}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default App
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/solid.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/solid.svg
new file mode 100644
index 0000000..025aa30
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/solid.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/index.css
new file mode 100644
index 0000000..2c84af0
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/index.css
@@ -0,0 +1,111 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+#root {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/index.tsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/index.tsx
new file mode 100644
index 0000000..f67cd20
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/src/index.tsx
@@ -0,0 +1,8 @@
+/* @refresh reload */
+import { render } from 'solid-js/web'
+import './index.css'
+import App from './App.tsx'
+
+const root = document.getElementById('root')
+
+render(() => , root!)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.app.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.app.json
new file mode 100644
index 0000000..e8a00e4
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.app.json
@@ -0,0 +1,26 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "es2023",
+ "module": "esnext",
+ "lib": ["ES2023", "DOM"],
+ "types": ["vite/client"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "preserve",
+ "jsxImportSource": "solid-js",
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.json
new file mode 100644
index 0000000..1ffef60
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.node.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.node.json
new file mode 100644
index 0000000..d3c52ea
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "es2023",
+ "lib": ["ES2023"],
+ "module": "esnext",
+ "types": ["node"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/vite.config.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/vite.config.ts
new file mode 100644
index 0000000..4095d9b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid-ts/vite.config.ts
@@ -0,0 +1,6 @@
+import { defineConfig } from 'vite'
+import solid from 'vite-plugin-solid'
+
+export default defineConfig({
+ plugins: [solid()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/README.md
new file mode 100644
index 0000000..167c567
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/README.md
@@ -0,0 +1,28 @@
+## Usage
+
+```bash
+$ npm install # or pnpm install or yarn install
+```
+
+### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs)
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm run dev`
+
+Runs the app in the development mode.
+Open [http://localhost:5173](http://localhost:5173) to view it in the browser.
+
+### `npm run build`
+
+Builds the app for production to the `dist` folder.
+It correctly bundles Solid in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.
+Your app is ready to be deployed!
+
+## Deployment
+
+Learn more about deploying your application with the [documentations](https://vite.dev/guide/static-deploy.html)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/index.html
new file mode 100644
index 0000000..2ce5efa
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Solid
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/package.json
new file mode 100644
index 0000000..efbd526
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "vite-solid-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "solid-js": "^1.9.12"
+ },
+ "devDependencies": {
+ "vite": "^8.0.12",
+ "vite-plugin-solid": "^2.11.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/App.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/App.css
new file mode 100644
index 0000000..f90339d
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/App.css
@@ -0,0 +1,184 @@
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/App.jsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/App.jsx
new file mode 100644
index 0000000..c0f673b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/App.jsx
@@ -0,0 +1,106 @@
+import { createSignal } from 'solid-js'
+import solidLogo from './assets/solid.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import './App.css'
+
+function App() {
+ const [count, setCount] = createSignal(0)
+
+ return (
+ <>
+
+
+
+
+
+
+
+ Get started
+
+ Edit src/App.jsx and save to test HMR
+
+
+ setCount((count) => count + 1)}
+ >
+ Count is {count()}
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
+
+export default App
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/solid.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/solid.svg
new file mode 100644
index 0000000..025aa30
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/solid.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/index.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/index.css
new file mode 100644
index 0000000..2c84af0
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/index.css
@@ -0,0 +1,111 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+#root {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/index.jsx b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/index.jsx
new file mode 100644
index 0000000..a80d6d7
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/src/index.jsx
@@ -0,0 +1,8 @@
+/* @refresh reload */
+import { render } from 'solid-js/web'
+import './index.css'
+import App from './App.jsx'
+
+const root = document.getElementById('root')
+
+render(() => , root)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/vite.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/vite.config.js
new file mode 100644
index 0000000..4095d9b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-solid/vite.config.js
@@ -0,0 +1,6 @@
+import { defineConfig } from 'vite'
+import solid from 'vite-plugin-solid'
+
+export default defineConfig({
+ plugins: [solid()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/.vscode/extensions.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/.vscode/extensions.json
new file mode 100644
index 0000000..bdef820
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["svelte.svelte-vscode"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/README.md
new file mode 100644
index 0000000..e6cd94f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/README.md
@@ -0,0 +1,47 @@
+# Svelte + TS + Vite
+
+This template should help get you started developing with Svelte and TypeScript in Vite.
+
+## Recommended IDE Setup
+
+[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
+
+## Need an official Svelte framework?
+
+Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
+
+## Technical considerations
+
+**Why use this over SvelteKit?**
+
+- It brings its own routing solution which might not be preferable for some users.
+- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
+
+This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
+
+Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
+
+**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
+
+Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
+
+**Why include `.vscode/extensions.json`?**
+
+Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
+
+**Why enable `allowJs` in the TS template?**
+
+While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
+
+**Why is HMR not preserving my local component state?**
+
+HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
+
+If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
+
+```ts
+// store.ts
+// An extremely simple external store
+import { writable } from 'svelte/store'
+export default writable(0)
+```
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/index.html
new file mode 100644
index 0000000..bbb64ff
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Svelte + TS
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/package.json
new file mode 100644
index 0000000..38a3d9e
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "vite-svelte-ts-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview",
+ "check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json"
+ },
+ "devDependencies": {
+ "@sveltejs/vite-plugin-svelte": "^7.1.2",
+ "@tsconfig/svelte": "^5.0.8",
+ "@types/node": "^24.12.3",
+ "svelte": "^5.55.5",
+ "svelte-check": "^4.4.8",
+ "typescript": "~6.0.2",
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/App.svelte b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/App.svelte
new file mode 100644
index 0000000..dafc575
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/App.svelte
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+ Get started
+ Edit src/App.svelte and save to test HMR
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/app.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/app.css
new file mode 100644
index 0000000..527d4fb
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/app.css
@@ -0,0 +1,296 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
+
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/svelte.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/svelte.svg
new file mode 100644
index 0000000..c5e0848
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/svelte.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/lib/Counter.svelte b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/lib/Counter.svelte
new file mode 100644
index 0000000..5f046bd
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/lib/Counter.svelte
@@ -0,0 +1,10 @@
+
+
+
+ Count is {count}
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/main.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/main.ts
new file mode 100644
index 0000000..664a057
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/src/main.ts
@@ -0,0 +1,9 @@
+import { mount } from 'svelte'
+import './app.css'
+import App from './App.svelte'
+
+const app = mount(App, {
+ target: document.getElementById('app')!,
+})
+
+export default app
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/svelte.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/svelte.config.js
new file mode 100644
index 0000000..0cf7db3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/svelte.config.js
@@ -0,0 +1,2 @@
+/** @type {import("@sveltejs/vite-plugin-svelte").SvelteConfig} */
+export default {}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.app.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.app.json
new file mode 100644
index 0000000..d774b20
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.app.json
@@ -0,0 +1,20 @@
+{
+ "extends": "@tsconfig/svelte/tsconfig.json",
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "es2023",
+ "module": "esnext",
+ "types": ["svelte", "vite/client"],
+ "noEmit": true,
+ /**
+ * Typecheck JS in `.svelte` and `.js` files by default.
+ * Disable checkJs if you'd like to use dynamic types in JS.
+ * Note that setting allowJs false does not prevent the use
+ * of JS in `.svelte` files.
+ */
+ "allowJs": true,
+ "checkJs": true,
+ "moduleDetection": "force"
+ },
+ "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.json
new file mode 100644
index 0000000..1ffef60
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.node.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.node.json
new file mode 100644
index 0000000..d3c52ea
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "es2023",
+ "lib": ["ES2023"],
+ "module": "esnext",
+ "types": ["node"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/vite.config.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/vite.config.ts
new file mode 100644
index 0000000..d32eba1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte-ts/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import { svelte } from '@sveltejs/vite-plugin-svelte'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [svelte()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/.vscode/extensions.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/.vscode/extensions.json
new file mode 100644
index 0000000..bdef820
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["svelte.svelte-vscode"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/README.md
new file mode 100644
index 0000000..54a2631
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/README.md
@@ -0,0 +1,43 @@
+# Svelte + Vite
+
+This template should help get you started developing with Svelte in Vite.
+
+## Recommended IDE Setup
+
+[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
+
+## Need an official Svelte framework?
+
+Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
+
+## Technical considerations
+
+**Why use this over SvelteKit?**
+
+- It brings its own routing solution which might not be preferable for some users.
+- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
+
+This template contains as little as possible to get started with Vite + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
+
+Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
+
+**Why include `.vscode/extensions.json`?**
+
+Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
+
+**Why enable `checkJs` in the JS template?**
+
+It is likely that most cases of changing variable types in runtime are likely to be accidental, rather than deliberate. This provides advanced typechecking out of the box. Should you like to take advantage of the dynamically-typed nature of JavaScript, it is trivial to change the configuration.
+
+**Why is HMR not preserving my local component state?**
+
+HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/sveltejs/svelte-hmr/tree/master/packages/svelte-hmr#preservation-of-local-state).
+
+If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
+
+```js
+// store.js
+// An extremely simple external store
+import { writable } from 'svelte/store'
+export default writable(0)
+```
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/index.html
new file mode 100644
index 0000000..d6eb7c8
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Svelte
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/jsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/jsconfig.json
new file mode 100644
index 0000000..c7a0b10
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/jsconfig.json
@@ -0,0 +1,33 @@
+{
+ "compilerOptions": {
+ "moduleResolution": "bundler",
+ "target": "ESNext",
+ "module": "ESNext",
+ /**
+ * svelte-preprocess cannot figure out whether you have
+ * a value or a type, so tell TypeScript to enforce using
+ * `import type` instead of `import` for Types.
+ */
+ "verbatimModuleSyntax": true,
+ "isolatedModules": true,
+ "resolveJsonModule": true,
+ /**
+ * To have warnings / errors of the Svelte compiler at the
+ * correct position, enable source maps by default.
+ */
+ "sourceMap": true,
+ "esModuleInterop": true,
+ "types": ["vite/client"],
+ "skipLibCheck": true,
+ /**
+ * Typecheck JS in `.svelte` and `.js` files by default.
+ * Disable this if you'd like to use dynamic types.
+ */
+ "checkJs": true
+ },
+ /**
+ * Use global.d.ts instead of compilerOptions.types
+ * to avoid limiting type declarations.
+ */
+ "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/package.json
new file mode 100644
index 0000000..6804657
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "vite-svelte-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "devDependencies": {
+ "@sveltejs/vite-plugin-svelte": "^7.1.2",
+ "svelte": "^5.55.5",
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/App.svelte b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/App.svelte
new file mode 100644
index 0000000..dafc575
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/App.svelte
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+ Get started
+ Edit src/App.svelte and save to test HMR
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/app.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/app.css
new file mode 100644
index 0000000..527d4fb
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/app.css
@@ -0,0 +1,296 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
+
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/svelte.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/svelte.svg
new file mode 100644
index 0000000..c5e0848
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/svelte.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/lib/Counter.svelte b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/lib/Counter.svelte
new file mode 100644
index 0000000..20bf4c9
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/lib/Counter.svelte
@@ -0,0 +1,5 @@
+
+
+ count++}>Count is {count}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/main.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/main.js
new file mode 100644
index 0000000..458c7a8
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/src/main.js
@@ -0,0 +1,9 @@
+import { mount } from 'svelte'
+import './app.css'
+import App from './App.svelte'
+
+const app = mount(App, {
+ target: document.getElementById('app'),
+})
+
+export default app
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/svelte.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/svelte.config.js
new file mode 100644
index 0000000..0cf7db3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/svelte.config.js
@@ -0,0 +1,2 @@
+/** @type {import("@sveltejs/vite-plugin-svelte").SvelteConfig} */
+export default {}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/vite.config.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/vite.config.js
new file mode 100644
index 0000000..d32eba1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-svelte/vite.config.js
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import { svelte } from '@sveltejs/vite-plugin-svelte'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [svelte()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/index.html
new file mode 100644
index 0000000..727cca2
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + TS
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/package.json
new file mode 100644
index 0000000..ef5d889
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "vite-typescript-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "devDependencies": {
+ "typescript": "~6.0.2",
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/typescript.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/typescript.svg
new file mode 100644
index 0000000..6c9d69c
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/typescript.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/counter.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/counter.ts
new file mode 100644
index 0000000..9f629e8
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/counter.ts
@@ -0,0 +1,9 @@
+export function setupCounter(element: HTMLButtonElement) {
+ let counter = 0
+ const setCounter = (count: number) => {
+ counter = count
+ element.innerHTML = `Count is ${counter}`
+ }
+ element.addEventListener('click', () => setCounter(counter + 1))
+ setCounter(0)
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/main.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/main.ts
new file mode 100644
index 0000000..d72bbca
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/main.ts
@@ -0,0 +1,60 @@
+import './style.css'
+import typescriptLogo from './assets/typescript.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import { setupCounter } from './counter.ts'
+
+document.querySelector('#app')!.innerHTML = `
+
+
+
+
+
+
+
+ Get started
+ Edit src/main.ts and save to test HMR
+
+
+
+
+
+
+
+
+
+
+
+
+
+`
+
+setupCounter(document.querySelector('#counter')!)
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/style.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/style.css
new file mode 100644
index 0000000..527d4fb
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/src/style.css
@@ -0,0 +1,296 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
+
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/tsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/tsconfig.json
new file mode 100644
index 0000000..1ab38c8
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla-ts/tsconfig.json
@@ -0,0 +1,23 @@
+{
+ "compilerOptions": {
+ "target": "es2023",
+ "module": "esnext",
+ "lib": ["ES2023", "DOM"],
+ "types": ["vite/client"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/_gitignore b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/_gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/_gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/index.html b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/index.html
new file mode 100644
index 0000000..265516b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + JS
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/package.json
new file mode 100644
index 0000000..97130a6
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "vite-starter",
+ "version": "0.0.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "devDependencies": {
+ "vite": "^8.0.12"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/public/favicon.svg
new file mode 100644
index 0000000..0906f9c
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/public/favicon.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/javascript.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/javascript.svg
new file mode 100644
index 0000000..bebbfc1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/javascript.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/counter.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/counter.js
new file mode 100644
index 0000000..12bf115
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/counter.js
@@ -0,0 +1,9 @@
+export function setupCounter(element) {
+ let counter = 0
+ const setCounter = (count) => {
+ counter = count
+ element.innerHTML = `Count is ${counter}`
+ }
+ element.addEventListener('click', () => setCounter(counter + 1))
+ setCounter(0)
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/main.js b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/main.js
new file mode 100644
index 0000000..a6ace3e
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/main.js
@@ -0,0 +1,60 @@
+import './style.css'
+import javascriptLogo from './assets/javascript.svg'
+import viteLogo from './assets/vite.svg'
+import heroImg from './assets/hero.png'
+import { setupCounter } from './counter.js'
+
+document.querySelector('#app').innerHTML = `
+
+
+
+
+
+
+
+ Get started
+ Edit src/main.js and save to test HMR
+
+
+
+
+
+
+
+
+
+
+
+
+
+`
+
+setupCounter(document.querySelector('#counter'))
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/style.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/style.css
new file mode 100644
index 0000000..527d4fb
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vanilla/src/style.css
@@ -0,0 +1,296 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
+
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/.vscode/extensions.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/.vscode/extensions.json
new file mode 100644
index 0000000..a7cea0b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/README.md
new file mode 100644
index 0000000..33895ab
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/README.md
@@ -0,0 +1,5 @@
+# Vue 3 + TypeScript + Vite
+
+This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/package.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/package.json
new file mode 100644
index 0000000..55c5ea4
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "vite-vue-typescript-starter",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vue-tsc -b && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "vue": "^3.5.34"
+ },
+ "devDependencies": {
+ "@types/node": "^24.12.3",
+ "@vitejs/plugin-vue": "^6.0.6",
+ "@vue/tsconfig": "^0.9.1",
+ "typescript": "~6.0.2",
+ "vite": "^8.0.12",
+ "vue-tsc": "^3.2.8"
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/public/favicon.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/public/favicon.svg
new file mode 100644
index 0000000..6893eb1
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/public/favicon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/public/icons.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/public/icons.svg
new file mode 100644
index 0000000..e952219
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/public/icons.svg
@@ -0,0 +1,24 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/App.vue b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/App.vue
new file mode 100644
index 0000000..388b05e
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/App.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/hero.png b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/hero.png
new file mode 100644
index 0000000..02251f4
Binary files /dev/null and b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/hero.png differ
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/vite.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/vite.svg
new file mode 100644
index 0000000..5101b67
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/vite.svg
@@ -0,0 +1 @@
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/vue.svg b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/vue.svg
new file mode 100644
index 0000000..770e9d3
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/assets/vue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/components/HelloWorld.vue b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/components/HelloWorld.vue
new file mode 100644
index 0000000..c232865
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/components/HelloWorld.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+ Get started
+ Edit src/App.vue and save to test HMR
+
+
+ Count is {{ count }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/main.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/main.ts
new file mode 100644
index 0000000..2425c0f
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/main.ts
@@ -0,0 +1,5 @@
+import { createApp } from 'vue'
+import './style.css'
+import App from './App.vue'
+
+createApp(App).mount('#app')
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/style.css b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/style.css
new file mode 100644
index 0000000..527d4fb
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/src/style.css
@@ -0,0 +1,296 @@
+:root {
+ --text: #6b6375;
+ --text-h: #08060d;
+ --bg: #fff;
+ --border: #e5e4e7;
+ --code-bg: #f4f3ec;
+ --accent: #aa3bff;
+ --accent-bg: rgba(170, 59, 255, 0.1);
+ --accent-border: rgba(170, 59, 255, 0.5);
+ --social-bg: rgba(244, 243, 236, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
+
+ --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
+ --mono: ui-monospace, Consolas, monospace;
+
+ font: 18px/145% var(--sans);
+ letter-spacing: 0.18px;
+ color-scheme: light dark;
+ color: var(--text);
+ background: var(--bg);
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ @media (max-width: 1024px) {
+ font-size: 16px;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --text: #9ca3af;
+ --text-h: #f3f4f6;
+ --bg: #16171d;
+ --border: #2e303a;
+ --code-bg: #1f2028;
+ --accent: #c084fc;
+ --accent-bg: rgba(192, 132, 252, 0.15);
+ --accent-border: rgba(192, 132, 252, 0.5);
+ --social-bg: rgba(47, 48, 58, 0.5);
+ --shadow:
+ rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
+ }
+
+ #social .button-icon {
+ filter: invert(1) brightness(2);
+ }
+}
+
+body {
+ margin: 0;
+}
+
+h1,
+h2 {
+ font-family: var(--heading);
+ font-weight: 500;
+ color: var(--text-h);
+}
+
+h1 {
+ font-size: 56px;
+ letter-spacing: -1.68px;
+ margin: 32px 0;
+ @media (max-width: 1024px) {
+ font-size: 36px;
+ margin: 20px 0;
+ }
+}
+h2 {
+ font-size: 24px;
+ line-height: 118%;
+ letter-spacing: -0.24px;
+ margin: 0 0 8px;
+ @media (max-width: 1024px) {
+ font-size: 20px;
+ }
+}
+p {
+ margin: 0;
+}
+
+code,
+.counter {
+ font-family: var(--mono);
+ display: inline-flex;
+ border-radius: 4px;
+ color: var(--text-h);
+}
+
+code {
+ font-size: 15px;
+ line-height: 135%;
+ padding: 4px 8px;
+ background: var(--code-bg);
+}
+
+.counter {
+ font-size: 16px;
+ padding: 5px 10px;
+ border-radius: 5px;
+ color: var(--accent);
+ background: var(--accent-bg);
+ border: 2px solid transparent;
+ transition: border-color 0.3s;
+ margin-bottom: 24px;
+
+ &:hover {
+ border-color: var(--accent-border);
+ }
+ &:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ }
+}
+
+.hero {
+ position: relative;
+
+ .base,
+ .framework,
+ .vite {
+ inset-inline: 0;
+ margin: 0 auto;
+ }
+
+ .base {
+ width: 170px;
+ position: relative;
+ z-index: 0;
+ }
+
+ .framework,
+ .vite {
+ position: absolute;
+ }
+
+ .framework {
+ z-index: 1;
+ top: 34px;
+ height: 28px;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
+ scale(1.4);
+ }
+
+ .vite {
+ z-index: 0;
+ top: 107px;
+ height: 26px;
+ width: auto;
+ transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
+ scale(0.8);
+ }
+}
+
+#app {
+ width: 1126px;
+ max-width: 100%;
+ margin: 0 auto;
+ text-align: center;
+ border-inline: 1px solid var(--border);
+ min-height: 100svh;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#center {
+ display: flex;
+ flex-direction: column;
+ gap: 25px;
+ place-content: center;
+ place-items: center;
+ flex-grow: 1;
+
+ @media (max-width: 1024px) {
+ padding: 32px 20px 24px;
+ gap: 18px;
+ }
+}
+
+#next-steps {
+ display: flex;
+ border-top: 1px solid var(--border);
+ text-align: left;
+
+ & > div {
+ flex: 1 1 0;
+ padding: 32px;
+ @media (max-width: 1024px) {
+ padding: 24px 20px;
+ }
+ }
+
+ .icon {
+ margin-bottom: 16px;
+ width: 22px;
+ height: 22px;
+ }
+
+ @media (max-width: 1024px) {
+ flex-direction: column;
+ text-align: center;
+ }
+}
+
+#docs {
+ border-right: 1px solid var(--border);
+
+ @media (max-width: 1024px) {
+ border-right: none;
+ border-bottom: 1px solid var(--border);
+ }
+}
+
+#next-steps ul {
+ list-style: none;
+ padding: 0;
+ display: flex;
+ gap: 8px;
+ margin: 32px 0 0;
+
+ .logo {
+ height: 18px;
+ }
+
+ a {
+ color: var(--text-h);
+ font-size: 16px;
+ border-radius: 6px;
+ background: var(--social-bg);
+ display: flex;
+ padding: 6px 12px;
+ align-items: center;
+ gap: 8px;
+ text-decoration: none;
+ transition: box-shadow 0.3s;
+
+ &:hover {
+ box-shadow: var(--shadow);
+ }
+ .button-icon {
+ height: 18px;
+ width: 18px;
+ }
+ }
+
+ @media (max-width: 1024px) {
+ margin-top: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ li {
+ flex: 1 1 calc(50% - 8px);
+ }
+
+ a {
+ width: 100%;
+ justify-content: center;
+ box-sizing: border-box;
+ }
+ }
+}
+
+#spacer {
+ height: 88px;
+ border-top: 1px solid var(--border);
+ @media (max-width: 1024px) {
+ height: 48px;
+ }
+}
+
+.ticks {
+ position: relative;
+ width: 100%;
+
+ &::before,
+ &::after {
+ content: '';
+ position: absolute;
+ top: -4.5px;
+ border: 5px solid transparent;
+ }
+
+ &::before {
+ left: 0;
+ border-left-color: var(--border);
+ }
+ &::after {
+ right: 0;
+ border-right-color: var(--border);
+ }
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.app.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.app.json
new file mode 100644
index 0000000..5c750c5
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.app.json
@@ -0,0 +1,14 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "types": ["vite/client"],
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.json
new file mode 100644
index 0000000..1ffef60
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.node.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.node.json
new file mode 100644
index 0000000..d3c52ea
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "es2023",
+ "lib": ["ES2023"],
+ "module": "esnext",
+ "types": ["node"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "verbatimModuleSyntax": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "erasableSyntaxOnly": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/vite.config.ts b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/vite.config.ts
new file mode 100644
index 0000000..bbcf80c
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue-ts/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [vue()],
+})
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue/.vscode/extensions.json b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue/.vscode/extensions.json
new file mode 100644
index 0000000..a7cea0b
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar"]
+}
diff --git a/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue/README.md b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue/README.md
new file mode 100644
index 0000000..1511959
--- /dev/null
+++ b/TicTacToe-Compare/ministral-3-14b/node_modules/create-vite/template-vue/README.md
@@ -0,0 +1,5 @@
+# Vue 3 + Vite
+
+This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `
+
Connect with us
+Join the Vite community
++-
+
+
+ GitHub
+
+
+ -
+
+
+ Discord
+
+
+ -
+
+
+ X.com
+
+
+ -
+
+
+ Bluesky
+
+
+
+