@kitn.ai/cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,538 @@
1
+ (function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))t(l);new MutationObserver(l=>{for(const a of l)if(a.type==="childList")for(const c of a.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&t(c)}).observe(document,{childList:!0,subtree:!0});function r(l){const a={};return l.integrity&&(a.integrity=l.integrity),l.referrerPolicy&&(a.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?a.credentials="include":l.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function t(l){if(l.ep)return;l.ep=!0;const a=r(l);fetch(l.href,a)}})();const l0=!1,a0=(e,o)=>e===o,Lo=Symbol("solid-proxy"),ht=typeof Proxy=="function",c0=Symbol("solid-track"),Mo={equals:a0};let ut=mt;const $e=1,Io=2,kt={owned:null,cleanups:null,context:null,owner:null};var G=null;let Zo=null,i0=null,H=null,oe=null,ye=null,Bo=0;function uo(e,o){const r=H,t=G,l=e.length===0,a=o===void 0?t:o,c=l?kt:{owned:null,cleanups:null,context:a?a.context:null,owner:a},n=l?e:()=>e(()=>xe(()=>ko(c)));G=c,H=null;try{return Ve(n,!0)}finally{H=r,G=t}}function L(e,o){o=o?Object.assign({},Mo,o):Mo;const r={value:e,observers:null,observerSlots:null,comparator:o.equals||void 0},t=l=>(typeof l=="function"&&(l=l(r.value)),pt(r,l));return[ft.bind(r),t]}function O(e,o,r){const t=ur(e,o,!1,$e);go(t)}function Do(e,o,r){ut=k0;const t=ur(e,o,!1,$e);(!r||!r.render)&&(t.user=!0),ye?ye.push(t):go(t)}function Pe(e,o,r){r=r?Object.assign({},Mo,r):Mo;const t=ur(e,o,!0,0);return t.observers=null,t.observerSlots=null,t.comparator=r.equals||void 0,go(t),ft.bind(t)}function xe(e){if(H===null)return e();const o=H;H=null;try{return e()}finally{H=o}}function s0(e){Do(()=>xe(e))}function ze(e){return G===null||(G.cleanups===null?G.cleanups=[e]:G.cleanups.push(e)),e}function gt(){return G}function d0(e,o){const r=G,t=H;G=e,H=null;try{return Ve(o,!0)}catch(l){kr(l)}finally{G=r,H=t}}function ft(){if(this.sources&&this.state)if(this.state===$e)go(this);else{const e=oe;oe=null,Ve(()=>Ro(this),!1),oe=e}if(H){const e=this.observers;if(!e||e[e.length-1]!==H){const o=e?e.length:0;H.sources?(H.sources.push(this),H.sourceSlots.push(o)):(H.sources=[this],H.sourceSlots=[o]),e?(e.push(H),this.observerSlots.push(H.sources.length-1)):(this.observers=[H],this.observerSlots=[H.sources.length-1])}}return this.value}function pt(e,o,r){let t=e.value;return(!e.comparator||!e.comparator(t,o))&&(e.value=o,e.observers&&e.observers.length&&Ve(()=>{for(let l=0;l<e.observers.length;l+=1){const a=e.observers[l],c=Zo&&Zo.running;c&&Zo.disposed.has(a),(c?!a.tState:!a.state)&&(a.pure?oe.push(a):ye.push(a),a.observers&&bt(a)),c||(a.state=$e)}if(oe.length>1e6)throw oe=[],new Error},!1)),o}function go(e){if(!e.fn)return;ko(e);const o=Bo;h0(e,e.value,o)}function h0(e,o,r){let t;const l=G,a=H;H=G=e;try{t=e.fn(o)}catch(c){return e.pure&&(e.state=$e,e.owned&&e.owned.forEach(ko),e.owned=null),e.updatedAt=r+1,kr(c)}finally{H=a,G=l}(!e.updatedAt||e.updatedAt<=r)&&(e.updatedAt!=null&&"observers"in e?pt(e,t):e.value=t,e.updatedAt=r)}function ur(e,o,r,t=$e,l){const a={fn:e,state:t,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:o,owner:G,context:G?G.context:null,pure:r};return G===null||G!==kt&&(G.owned?G.owned.push(a):G.owned=[a]),a}function Po(e){if(e.state===0)return;if(e.state===Io)return Ro(e);if(e.suspense&&xe(e.suspense.inFallback))return e.suspense.effects.push(e);const o=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<Bo);)e.state&&o.push(e);for(let r=o.length-1;r>=0;r--)if(e=o[r],e.state===$e)go(e);else if(e.state===Io){const t=oe;oe=null,Ve(()=>Ro(e,o[0]),!1),oe=t}}function Ve(e,o){if(oe)return e();let r=!1;o||(oe=[]),ye?r=!0:ye=[],Bo++;try{const t=e();return u0(r),t}catch(t){r||(ye=null),oe=null,kr(t)}}function u0(e){if(oe&&(mt(oe),oe=null),e)return;const o=ye;ye=null,o.length&&Ve(()=>ut(o),!1)}function mt(e){for(let o=0;o<e.length;o++)Po(e[o])}function k0(e){let o,r=0;for(o=0;o<e.length;o++){const t=e[o];t.user?e[r++]=t:Po(t)}for(o=0;o<r;o++)Po(e[o])}function Ro(e,o){e.state=0;for(let r=0;r<e.sources.length;r+=1){const t=e.sources[r];if(t.sources){const l=t.state;l===$e?t!==o&&(!t.updatedAt||t.updatedAt<Bo)&&Po(t):l===Io&&Ro(t,o)}}}function bt(e){for(let o=0;o<e.observers.length;o+=1){const r=e.observers[o];r.state||(r.state=Io,r.pure?oe.push(r):ye.push(r),r.observers&&bt(r))}}function ko(e){let o;if(e.sources)for(;e.sources.length;){const r=e.sources.pop(),t=e.sourceSlots.pop(),l=r.observers;if(l&&l.length){const a=l.pop(),c=r.observerSlots.pop();t<l.length&&(a.sourceSlots[c]=t,l[t]=a,r.observerSlots[t]=c)}}if(e.tOwned){for(o=e.tOwned.length-1;o>=0;o--)ko(e.tOwned[o]);delete e.tOwned}if(e.owned){for(o=e.owned.length-1;o>=0;o--)ko(e.owned[o]);e.owned=null}if(e.cleanups){for(o=e.cleanups.length-1;o>=0;o--)e.cleanups[o]();e.cleanups=null}e.state=0}function g0(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function kr(e,o=G){throw g0(e)}const f0=Symbol("fallback");function zr(e){for(let o=0;o<e.length;o++)e[o]()}function p0(e,o,r={}){let t=[],l=[],a=[],c=0,n=o.length>1?[]:null;return ze(()=>zr(a)),()=>{let s=e()||[],m=s.length,f,k;return s[c0],xe(()=>{let D,F,z,Z,ne,re,Q,te,de;if(m===0)c!==0&&(zr(a),a=[],t=[],l=[],c=0,n&&(n=[])),r.fallback&&(t=[f0],l[0]=uo(Re=>(a[0]=Re,r.fallback())),c=1);else if(c===0){for(l=new Array(m),k=0;k<m;k++)t[k]=s[k],l[k]=uo(A);c=m}else{for(z=new Array(m),Z=new Array(m),n&&(ne=new Array(m)),re=0,Q=Math.min(c,m);re<Q&&t[re]===s[re];re++);for(Q=c-1,te=m-1;Q>=re&&te>=re&&t[Q]===s[te];Q--,te--)z[te]=l[Q],Z[te]=a[Q],n&&(ne[te]=n[Q]);for(D=new Map,F=new Array(te+1),k=te;k>=re;k--)de=s[k],f=D.get(de),F[k]=f===void 0?-1:f,D.set(de,k);for(f=re;f<=Q;f++)de=t[f],k=D.get(de),k!==void 0&&k!==-1?(z[k]=l[f],Z[k]=a[f],n&&(ne[k]=n[f]),k=F[k],D.set(de,k)):a[f]();for(k=re;k<m;k++)k in z?(l[k]=z[k],a[k]=Z[k],n&&(n[k]=ne[k],n[k](k))):l[k]=uo(A);l=l.slice(0,c=m),t=s.slice(0)}return l});function A(D){if(a[k]=D,n){const[F,z]=L(k);return n[k]=z,o(s[k],F)}return o(s[k])}}}function g(e,o){return xe(()=>e(o||{}))}function So(){return!0}const lr={get(e,o,r){return o===Lo?r:e.get(o)},has(e,o){return o===Lo?!0:e.has(o)},set:So,deleteProperty:So,getOwnPropertyDescriptor(e,o){return{configurable:!0,enumerable:!0,get(){return e.get(o)},set:So,deleteProperty:So}},ownKeys(e){return e.keys()}};function Jo(e){return(e=typeof e=="function"?e():e)?e:{}}function m0(){for(let e=0,o=this.length;e<o;++e){const r=this[e]();if(r!==void 0)return r}}function we(...e){let o=!1;for(let c=0;c<e.length;c++){const n=e[c];o=o||!!n&&Lo in n,e[c]=typeof n=="function"?(o=!0,Pe(n)):n}if(ht&&o)return new Proxy({get(c){for(let n=e.length-1;n>=0;n--){const s=Jo(e[n])[c];if(s!==void 0)return s}},has(c){for(let n=e.length-1;n>=0;n--)if(c in Jo(e[n]))return!0;return!1},keys(){const c=[];for(let n=0;n<e.length;n++)c.push(...Object.keys(Jo(e[n])));return[...new Set(c)]}},lr);const r={},t=Object.create(null);for(let c=e.length-1;c>=0;c--){const n=e[c];if(!n)continue;const s=Object.getOwnPropertyNames(n);for(let m=s.length-1;m>=0;m--){const f=s[m];if(f==="__proto__"||f==="constructor")continue;const k=Object.getOwnPropertyDescriptor(n,f);if(!t[f])t[f]=k.get?{enumerable:!0,configurable:!0,get:m0.bind(r[f]=[k.get.bind(n)])}:k.value!==void 0?k:void 0;else{const A=r[f];A&&(k.get?A.push(k.get.bind(n)):k.value!==void 0&&A.push(()=>k.value))}}}const l={},a=Object.keys(t);for(let c=a.length-1;c>=0;c--){const n=a[c],s=t[n];s&&s.get?Object.defineProperty(l,n,s):l[n]=s?s.value:void 0}return l}function b0(e,...o){const r=o.length;if(ht&&Lo in e){const l=r>1?o.flat():o[0],a=o.map(c=>new Proxy({get(n){return c.includes(n)?e[n]:void 0},has(n){return c.includes(n)&&n in e},keys(){return c.filter(n=>n in e)}},lr));return a.push(new Proxy({get(c){return l.includes(c)?void 0:e[c]},has(c){return l.includes(c)?!1:c in e},keys(){return Object.keys(e).filter(c=>!l.includes(c))}},lr)),a}const t=[];for(let l=0;l<=r;l++)t[l]={};for(const l of Object.getOwnPropertyNames(e)){let a=r;for(let s=0;s<o.length;s++)if(o[s].includes(l)){a=s;break}const c=Object.getOwnPropertyDescriptor(e,l);!c.get&&!c.set&&c.enumerable&&c.writable&&c.configurable?t[a][l]=c.value:Object.defineProperty(t[a],l,c)}return t}const v0=e=>`Stale read from <${e}>.`;function q(e){const o="fallback"in e&&{fallback:()=>e.fallback};return Pe(p0(()=>e.each,e.children,o||void 0))}function U(e){const o=e.keyed,r=Pe(()=>e.when,void 0,void 0),t=o?r:Pe(r,void 0,{equals:(l,a)=>!l==!a});return Pe(()=>{const l=t();if(l){const a=e.children;return typeof a=="function"&&a.length>0?xe(()=>a(o?l:()=>{if(!xe(t))throw v0("Show");return r()})):a}return e.fallback},void 0,void 0)}const y0=new Set(["innerHTML","textContent","innerText","children"]),x0=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),w0=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),S0={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},so=e=>Pe(()=>e());function _0(e,o,r){let t=r.length,l=o.length,a=t,c=0,n=0,s=o[l-1].nextSibling,m=null;for(;c<l||n<a;){if(o[c]===r[n]){c++,n++;continue}for(;o[l-1]===r[a-1];)l--,a--;if(l===c){const f=a<t?n?r[n-1].nextSibling:r[a-n]:s;for(;n<a;)e.insertBefore(r[n++],f)}else if(a===n)for(;c<l;)(!m||!m.has(o[c]))&&o[c].remove(),c++;else if(o[c]===r[a-1]&&r[n]===o[l-1]){const f=o[--l].nextSibling;e.insertBefore(r[n++],o[c++].nextSibling),e.insertBefore(r[--a],f),o[l]=r[a]}else{if(!m){m=new Map;let k=n;for(;k<a;)m.set(r[k],k++)}const f=m.get(o[c]);if(f!=null)if(n<f&&f<a){let k=c,A=1,D;for(;++k<l&&k<a&&!((D=m.get(o[k]))==null||D!==f+A);)A++;if(A>f-n){const F=o[c];for(;n<f;)e.insertBefore(r[n++],F)}else e.replaceChild(r[n++],o[c++])}else c++;else o[c++].remove()}}}const Wr="_$DX_DELEGATE";function C0(e,o,r,t={}){let l;return uo(a=>{l=a,o===document?e():h(o,e(),o.firstChild?null:void 0,r)},t.owner),()=>{l(),o.textContent=""}}function b(e,o,r,t){let l;const a=()=>{const n=t?document.createElementNS("http://www.w3.org/1998/Math/MathML","template"):document.createElement("template");return n.innerHTML=e,r?n.content.firstChild.firstChild:t?n.firstChild:n.content.firstChild},c=o?()=>xe(()=>document.importNode(l||(l=a()),!0)):()=>(l||(l=a())).cloneNode(!0);return c.cloneNode=c,c}function vt(e,o=window.document){const r=o[Wr]||(o[Wr]=new Set);for(let t=0,l=e.length;t<l;t++){const a=e[t];r.has(a)||(r.add(a),o.addEventListener(a,M0))}}function j(e,o,r){r==null?e.removeAttribute(o):e.setAttribute(o,r)}function $0(e,o,r,t){t==null?e.removeAttributeNS(o,r):e.setAttributeNS(o,r,t)}function T0(e,o,r){r?e.setAttribute(o,""):e.removeAttribute(o)}function E0(e,o){o==null?e.removeAttribute("class"):e.className=o}function ar(e,o,r,t){if(t)Array.isArray(r)?(e[`$$${o}`]=r[0],e[`$$${o}Data`]=r[1]):e[`$$${o}`]=r;else if(Array.isArray(r)){const l=r[0];e.addEventListener(o,r[0]=a=>l.call(e,r[1],a))}else e.addEventListener(o,r,typeof r!="function"&&r)}function fe(e,o,r={}){const t=Object.keys(o||{}),l=Object.keys(r);let a,c;for(a=0,c=l.length;a<c;a++){const n=l[a];!n||n==="undefined"||o[n]||(Vr(e,n,!1),delete r[n])}for(a=0,c=t.length;a<c;a++){const n=t[a],s=!!o[n];!n||n==="undefined"||r[n]===s||!s||(Vr(e,n,!0),r[n]=s)}return r}function cr(e,o,r){if(!o)return r?j(e,"style"):o;const t=e.style;if(typeof o=="string")return t.cssText=o;typeof r=="string"&&(t.cssText=r=void 0),r||(r={}),o||(o={});let l,a;for(a in r)o[a]==null&&t.removeProperty(a),delete r[a];for(a in o)l=o[a],l!==r[a]&&(t.setProperty(a,l),r[a]=l);return r}function Se(e,o,r){r!=null?e.style.setProperty(o,r):e.style.removeProperty(o)}function A0(e,o={},r,t){const l={};return O(()=>typeof o.ref=="function"&&ho(o.ref,e)),O(()=>O0(e,o,r,!0,l,!0)),l}function ho(e,o,r){return xe(()=>e(o,r))}function h(e,o,r,t){if(r!==void 0&&!t&&(t=[]),typeof o!="function")return No(e,o,t,r);O(l=>No(e,o(),l,r),t)}function O0(e,o,r,t,l={},a=!1){o||(o={});for(const c in l)if(!(c in o)){if(c==="children")continue;l[c]=Kr(e,c,null,l[c],r,a,o)}for(const c in o){if(c==="children")continue;const n=o[c];l[c]=Kr(e,c,n,l[c],r,a,o)}}function L0(e){return e.toLowerCase().replace(/-([a-z])/g,(o,r)=>r.toUpperCase())}function Vr(e,o,r){const t=o.trim().split(/\s+/);for(let l=0,a=t.length;l<a;l++)e.classList.toggle(t[l],r)}function Kr(e,o,r,t,l,a,c){let n,s,m,f;if(o==="style")return cr(e,r,t);if(o==="classList")return fe(e,r,t);if(r===t)return t;if(o==="ref")a||r(e);else if(o.slice(0,3)==="on:"){const k=o.slice(3);t&&e.removeEventListener(k,t,typeof t!="function"&&t),r&&e.addEventListener(k,r,typeof r!="function"&&r)}else if(o.slice(0,10)==="oncapture:"){const k=o.slice(10);t&&e.removeEventListener(k,t,!0),r&&e.addEventListener(k,r,!0)}else if(o.slice(0,2)==="on"){const k=o.slice(2).toLowerCase(),A=w0.has(k);if(!A&&t){const D=Array.isArray(t)?t[0]:t;e.removeEventListener(k,D)}(A||r)&&(ar(e,k,r,A),A&&vt([k]))}else if(o.slice(0,5)==="attr:")j(e,o.slice(5),r);else if(o.slice(0,5)==="bool:")T0(e,o.slice(5),r);else if((f=o.slice(0,5)==="prop:")||(m=y0.has(o))||(n=e.nodeName.includes("-")||"is"in c))f&&(o=o.slice(5),s=!0),o==="class"||o==="className"?E0(e,r):n&&!s&&!m?e[L0(o)]=r:e[o]=r;else{const k=o.indexOf(":")>-1&&S0[o.split(":")[0]];k?$0(e,k,o,r):j(e,x0[o]||o,r)}return r}function M0(e){let o=e.target;const r=`$$${e.type}`,t=e.target,l=e.currentTarget,a=s=>Object.defineProperty(e,"target",{configurable:!0,value:s}),c=()=>{const s=o[r];if(s&&!o.disabled){const m=o[`${r}Data`];if(m!==void 0?s.call(o,m,e):s.call(o,e),e.cancelBubble)return}return o.host&&typeof o.host!="string"&&!o.host._$host&&o.contains(e.target)&&a(o.host),!0},n=()=>{for(;c()&&(o=o._$host||o.parentNode||o.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return o||document}}),e.composedPath){const s=e.composedPath();a(s[0]);for(let m=0;m<s.length-2&&(o=s[m],!!c());m++){if(o._$host){o=o._$host,n();break}if(o.parentNode===l)break}}else n();a(t)}function No(e,o,r,t,l){for(;typeof r=="function";)r=r();if(o===r)return r;const a=typeof o,c=t!==void 0;if(e=c&&r[0]&&r[0].parentNode||e,a==="string"||a==="number"){if(a==="number"&&(o=o.toString(),o===r))return r;if(c){let n=r[0];n&&n.nodeType===3?n.data!==o&&(n.data=o):n=document.createTextNode(o),r=He(e,r,t,n)}else r!==""&&typeof r=="string"?r=e.firstChild.data=o:r=e.textContent=o}else if(o==null||a==="boolean")r=He(e,r,t);else{if(a==="function")return O(()=>{let n=o();for(;typeof n=="function";)n=n();r=No(e,n,r,t)}),()=>r;if(Array.isArray(o)){const n=[],s=r&&Array.isArray(r);if(ir(n,o,r,l))return O(()=>r=No(e,n,r,t,!0)),()=>r;if(n.length===0){if(r=He(e,r,t),c)return r}else s?r.length===0?qr(e,n,t):_0(e,r,n):(r&&He(e),qr(e,n));r=n}else if(o.nodeType){if(Array.isArray(r)){if(c)return r=He(e,r,t,o);He(e,r,null,o)}else r==null||r===""||!e.firstChild?e.appendChild(o):e.replaceChild(o,e.firstChild);r=o}}return r}function ir(e,o,r,t){let l=!1;for(let a=0,c=o.length;a<c;a++){let n=o[a],s=r&&r[e.length],m;if(!(n==null||n===!0||n===!1))if((m=typeof n)=="object"&&n.nodeType)e.push(n);else if(Array.isArray(n))l=ir(e,n,s)||l;else if(m==="function")if(t){for(;typeof n=="function";)n=n();l=ir(e,Array.isArray(n)?n:[n],Array.isArray(s)?s:[s])||l}else e.push(n),l=!0;else{const f=String(n);s&&s.nodeType===3&&s.data===f?e.push(s):e.push(document.createTextNode(f))}}return l}function qr(e,o,r=null){for(let t=0,l=o.length;t<l;t++)e.insertBefore(o[t],r)}function He(e,o,r,t){if(r===void 0)return e.textContent="";const l=t||document.createTextNode("");if(o.length){let a=!1;for(let c=o.length-1;c>=0;c--){const n=o[c];if(l!==n){const s=n.parentNode===e;!a&&!c?s?e.replaceChild(l,n):e.insertBefore(l,r):s&&n.remove()}else a=!0}}else e.insertBefore(l,r);return[l]}const I0="http://www.w3.org/2000/svg";function D0(e,o=!1,r=void 0){return o?document.createElementNS(I0,e):document.createElement(e,{is:r})}function P0(e){const{useShadow:o}=e,r=document.createTextNode(""),t=()=>e.mount||document.body,l=gt();let a;return Do(()=>{a||(a=d0(l,()=>Pe(()=>e.children)));const c=t();if(c instanceof HTMLHeadElement){const[n,s]=L(!1),m=()=>s(!0);uo(f=>h(c,()=>n()?f():a(),null)),ze(m)}else{const n=D0(e.isSVG?"g":"div",e.isSVG),s=o&&n.attachShadow?n.attachShadow({mode:"open"}):n;Object.defineProperty(n,"_$host",{get(){return r.parentNode},configurable:!0}),h(s,a),c.appendChild(n),e.ref&&e.ref(n),ze(()=>c.removeChild(n))}},void 0,{render:!0}),r}const R0="modulepreload",N0=function(e,o){return new URL(e,o).href},Zr={},B0=function(o,r,t){let l=Promise.resolve();if(r&&r.length>0){let c=function(f){return Promise.all(f.map(k=>Promise.resolve(k).then(A=>({status:"fulfilled",value:A}),A=>({status:"rejected",reason:A}))))};const n=document.getElementsByTagName("link"),s=document.querySelector("meta[property=csp-nonce]"),m=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));l=c(r.map(f=>{if(f=N0(f,t),f in Zr)return;Zr[f]=!0;const k=f.endsWith(".css"),A=k?'[rel="stylesheet"]':"";if(!!t)for(let z=n.length-1;z>=0;z--){const Z=n[z];if(Z.href===f&&(!k||Z.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${A}`))return;const F=document.createElement("link");if(F.rel=k?"stylesheet":R0,k||(F.as="script"),F.crossOrigin="",F.href=f,m&&F.setAttribute("nonce",m),document.head.appendChild(F),k)return new Promise((z,Z)=>{F.addEventListener("load",z),F.addEventListener("error",()=>Z(new Error(`Unable to preload CSS for ${f}`)))})}))}function a(c){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=c,window.dispatchEvent(n),!n.defaultPrevented)throw c}return l.then(c=>{for(const n of c||[])n.status==="rejected"&&a(n.reason);return o().catch(a)})};let Jr;function j0(){return Jr??(Jr=B0(()=>import("/theme-studio/kit/kai.es.js"),[],import.meta.url).then(async e=>(await customElements.whenDefined("kai-chat"),e))),Jr}var F0=b('<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round>'),U0=b('<svg><path d="M20 6 9 17l-5-5"></svg>',!1,!0,!1),H0=b("<svg><rect width=14 height=14 x=8 y=8 rx=2 ry=2></svg>",!1,!0,!1),G0=b('<svg><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></svg>',!1,!0,!1),z0=b('<svg><path d="M15 2H9a1 1 0 0 0-1 1v2c0 .6.4 1 1 1h6c.6 0 1-.4 1-1V3c0-.6-.4-1-1-1Z"></svg>',!1,!0,!1),W0=b('<svg><path d="M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2M16 4h2a2 2 0 0 1 2 2v2M11 14h10"></svg>',!1,!0,!1),V0=b('<svg><path d="m17 10 4 4-4 4"></svg>',!1,!0,!1),K0=b('<svg><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></svg>',!1,!0,!1),q0=b('<svg><path d="M3 3v5h5"></svg>',!1,!0,!1),Z0=b('<svg><path d="m9 18 6-6-6-6"></svg>',!1,!0,!1),J0=b('<svg><polyline points="16 18 22 12 16 6"></svg>',!1,!0,!1),Y0=b('<svg><polyline points="8 6 2 12 8 18"></svg>',!1,!0,!1),X0=b('<svg><path d="m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z"></svg>',!1,!0,!1),Q0=b('<svg><path d="M18 6 6 18"></svg>',!1,!0,!1),en=b('<svg><path d="m6 6 12 12"></svg>',!1,!0,!1);function Te(e){const[o,r]=b0(e,["name","class","children"]);return(()=>{var t=F0();return A0(t,we({get class(){return`lucide lucide-icon lucide-${o.name}${o.class?` ${o.class}`:""}`}},r),!0),h(t,()=>o.children),t})()}const Yr=e=>g(Te,we(e,{name:"check",get children(){return U0()}})),on=e=>g(Te,we(e,{name:"copy",get children(){return[H0(),G0()]}})),rn=e=>g(Te,we(e,{name:"clipboard-paste",get children(){return[z0(),W0(),V0()]}})),tn=e=>g(Te,we(e,{name:"rotate-ccw",get children(){return[K0(),q0()]}})),Xr=e=>g(Te,we(e,{name:"chevron-right",get children(){return Z0()}})),nn=e=>g(Te,we(e,{name:"code",get children(){return[J0(),Y0()]}})),ln=e=>g(Te,we(e,{name:"bookmark",get children(){return X0()}})),sr=e=>g(Te,we(e,{name:"x",get children(){return[Q0(),en()]}})),gr=[{name:"Amber Minimal",radius:.375,fontBase:"Inter, sans-serif",fontCode:"JetBrains Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(1.0000 0 0)",foreground:"oklch(0.2686 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.2686 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.2686 0 0)",primary:"oklch(0.7686 0.1647 70.0804)","primary-foreground":"oklch(0 0 0)",secondary:"oklch(0.9670 0.0029 264.5419)","secondary-foreground":"oklch(0.4461 0.0263 256.8018)",muted:"oklch(0.9846 0.0017 247.8389)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.9869 0.0214 95.2774)","accent-foreground":"oklch(0.4732 0.1247 46.2007)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9276 0.0058 264.5313)",input:"oklch(0.9276 0.0058 264.5313)",ring:"oklch(0.7686 0.1647 70.0804)",sidebar:"oklch(0.9846 0.0017 247.8389)"},dark:{background:"oklch(0.2046 0 0)",foreground:"oklch(0.9219 0 0)",card:"oklch(0.2686 0 0)","card-foreground":"oklch(0.9219 0 0)",popover:"oklch(0.2686 0 0)","popover-foreground":"oklch(0.9219 0 0)",primary:"oklch(0.7686 0.1647 70.0804)","primary-foreground":"oklch(0 0 0)",secondary:"oklch(0.2686 0 0)","secondary-foreground":"oklch(0.9219 0 0)",muted:"oklch(0.2393 0 0)","muted-foreground":"oklch(0.7155 0 0)",accent:"oklch(0.4732 0.1247 46.2007)","accent-foreground":"oklch(0.9243 0.1151 95.7459)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3715 0 0)",input:"oklch(0.3715 0 0)",ring:"oklch(0.7686 0.1647 70.0804)",sidebar:"oklch(0.1684 0 0)"}},{name:"Amethyst Haze",radius:.5,fontBase:"Geist, sans-serif",fontCode:'"Fira Code", "Courier New", monospace',shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9777 0.0041 301.4256)",foreground:"oklch(0.3651 0.0325 287.0807)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3651 0.0325 287.0807)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3651 0.0325 287.0807)",primary:"oklch(0.6104 0.0767 299.7335)","primary-foreground":"oklch(0.9777 0.0041 301.4256)",secondary:"oklch(0.8957 0.0265 300.2416)","secondary-foreground":"oklch(0.3651 0.0325 287.0807)",muted:"oklch(0.8906 0.0139 299.7754)","muted-foreground":"oklch(0.5288 0.0375 290.7895)",accent:"oklch(0.7889 0.0802 359.9375)","accent-foreground":"oklch(0.3394 0.0441 1.7583)",destructive:"oklch(0.6332 0.1578 22.6734)","destructive-foreground":"oklch(0.9777 0.0041 301.4256)",border:"oklch(0.8447 0.0226 300.1421)",input:"oklch(0.9329 0.0124 301.2783)",ring:"oklch(0.6104 0.0767 299.7335)",sidebar:"oklch(0.9554 0.0082 301.3541)"},dark:{background:"oklch(0.2166 0.0215 292.8474)",foreground:"oklch(0.9053 0.0245 293.5570)",card:"oklch(0.2544 0.0301 292.7315)","card-foreground":"oklch(0.9053 0.0245 293.5570)",popover:"oklch(0.2544 0.0301 292.7315)","popover-foreground":"oklch(0.9053 0.0245 293.5570)",primary:"oklch(0.7058 0.0777 302.0489)","primary-foreground":"oklch(0.2166 0.0215 292.8474)",secondary:"oklch(0.4604 0.0472 295.5578)","secondary-foreground":"oklch(0.9053 0.0245 293.5570)",muted:"oklch(0.2560 0.0320 294.8380)","muted-foreground":"oklch(0.6974 0.0282 300.0614)",accent:"oklch(0.3181 0.0321 308.6149)","accent-foreground":"oklch(0.8391 0.0692 2.6681)",destructive:"oklch(0.6875 0.1420 21.4566)","destructive-foreground":"oklch(0.2166 0.0215 292.8474)",border:"oklch(0.3063 0.0359 293.3367)",input:"oklch(0.2847 0.0346 291.2726)",ring:"oklch(0.7058 0.0777 302.0489)",sidebar:"oklch(0.1985 0.0200 293.6639)"}},{name:"Bold Tech",radius:.625,fontBase:"Roboto, sans-serif",fontCode:"Fira Code, monospace",shadow:"hsl(255 86% 66%)",light:{background:"oklch(1.0000 0 0)",foreground:"oklch(0.3588 0.1354 278.6973)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3588 0.1354 278.6973)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3588 0.1354 278.6973)",primary:"oklch(0.6056 0.2189 292.7172)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9618 0.0202 295.1913)","secondary-foreground":"oklch(0.4568 0.2146 277.0229)",muted:"oklch(0.9691 0.0161 293.7558)","muted-foreground":"oklch(0.5413 0.2466 293.0090)",accent:"oklch(0.9319 0.0316 255.5855)","accent-foreground":"oklch(0.4244 0.1809 265.6377)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9299 0.0334 272.7879)",input:"oklch(0.9299 0.0334 272.7879)",ring:"oklch(0.6056 0.2189 292.7172)",sidebar:"oklch(0.9691 0.0161 293.7558)"},dark:{background:"oklch(0.2077 0.0398 265.7549)",foreground:"oklch(0.9299 0.0334 272.7879)",card:"oklch(0.2573 0.0861 281.2883)","card-foreground":"oklch(0.9299 0.0334 272.7879)",popover:"oklch(0.2573 0.0861 281.2883)","popover-foreground":"oklch(0.9299 0.0334 272.7879)",primary:"oklch(0.6056 0.2189 292.7172)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.2573 0.0861 281.2883)","secondary-foreground":"oklch(0.9299 0.0334 272.7879)",muted:"oklch(0.2329 0.0919 279.1398)","muted-foreground":"oklch(0.8112 0.1013 293.5712)",accent:"oklch(0.4568 0.2146 277.0229)","accent-foreground":"oklch(0.9299 0.0334 272.7879)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.2827 0.1351 291.0894)",input:"oklch(0.2827 0.1351 291.0894)",ring:"oklch(0.6056 0.2189 292.7172)",sidebar:"oklch(0.2077 0.0398 265.7549)"}},{name:"Bubblegum",radius:.4,fontBase:"Poppins, sans-serif",fontCode:"Fira Code, monospace",shadow:"hsl(325.78 58.18% 56.86% / 0.5)",light:{background:"oklch(0.9399 0.0203 345.6985)",foreground:"oklch(0.4712 0 0)",card:"oklch(0.9498 0.0500 86.8891)","card-foreground":"oklch(0.4712 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.4712 0 0)",primary:"oklch(0.6209 0.1801 348.1385)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.8095 0.0694 198.1863)","secondary-foreground":"oklch(0.3211 0 0)",muted:"oklch(0.8800 0.0504 212.0952)","muted-foreground":"oklch(0.5795 0 0)",accent:"oklch(0.9195 0.0801 87.6670)","accent-foreground":"oklch(0.3211 0 0)",destructive:"oklch(0.7091 0.1697 21.9551)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.6209 0.1801 348.1385)",input:"oklch(0.9189 0 0)",ring:"oklch(0.7002 0.1597 350.7532)",sidebar:"oklch(0.9140 0.0424 343.0913)"},dark:{background:"oklch(0.2497 0.0305 234.1628)",foreground:"oklch(0.9306 0.0197 349.0785)",card:"oklch(0.2902 0.0299 233.5352)","card-foreground":"oklch(0.9306 0.0197 349.0785)",popover:"oklch(0.2902 0.0299 233.5352)","popover-foreground":"oklch(0.9306 0.0197 349.0785)",primary:"oklch(0.9195 0.0801 87.6670)","primary-foreground":"oklch(0.2497 0.0305 234.1628)",secondary:"oklch(0.7794 0.0803 4.1330)","secondary-foreground":"oklch(0.2497 0.0305 234.1628)",muted:"oklch(0.2713 0.0086 255.5780)","muted-foreground":"oklch(0.7794 0.0803 4.1330)",accent:"oklch(0.6699 0.0988 356.9762)","accent-foreground":"oklch(0.9306 0.0197 349.0785)",destructive:"oklch(0.6702 0.1806 350.3599)","destructive-foreground":"oklch(0.2497 0.0305 234.1628)",border:"oklch(0.3907 0.0399 242.2181)",input:"oklch(0.3093 0.0305 232.0027)",ring:"oklch(0.6998 0.0896 201.8672)",sidebar:"oklch(0.2303 0.0270 235.9743)"}},{name:"Caffeine",radius:.5,fontBase:"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",fontCode:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',shadow:"oklch(0 0 0)",light:{background:"oklch(0.9821 0 0)",foreground:"oklch(0.2435 0 0)",card:"oklch(0.9911 0 0)","card-foreground":"oklch(0.2435 0 0)",popover:"oklch(0.9911 0 0)","popover-foreground":"oklch(0.2435 0 0)",primary:"oklch(0.4341 0.0392 41.9938)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9200 0.0651 74.3695)","secondary-foreground":"oklch(0.3499 0.0685 40.8288)",muted:"oklch(0.9521 0 0)","muted-foreground":"oklch(0.5032 0 0)",accent:"oklch(0.9310 0 0)","accent-foreground":"oklch(0.2435 0 0)",destructive:"oklch(0.6271 0.1936 33.3390)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8822 0 0)",input:"oklch(0.8822 0 0)",ring:"oklch(0.4341 0.0392 41.9938)",sidebar:"oklch(0.9881 0 0)"},dark:{background:"oklch(0.1776 0 0)",foreground:"oklch(0.9491 0 0)",card:"oklch(0.2134 0 0)","card-foreground":"oklch(0.9491 0 0)",popover:"oklch(0.2134 0 0)","popover-foreground":"oklch(0.9491 0 0)",primary:"oklch(0.9247 0.0524 66.1732)","primary-foreground":"oklch(0.2029 0.0240 200.1962)",secondary:"oklch(0.3163 0.0190 63.6992)","secondary-foreground":"oklch(0.9247 0.0524 66.1732)",muted:"oklch(0.2520 0 0)","muted-foreground":"oklch(0.7699 0 0)",accent:"oklch(0.2850 0 0)","accent-foreground":"oklch(0.9491 0 0)",destructive:"oklch(0.6271 0.1936 33.3390)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.2351 0.0115 91.7467)",input:"oklch(0.4017 0 0)",ring:"oklch(0.9247 0.0524 66.1732)",sidebar:"oklch(0.2103 0.0059 285.8852)"}},{name:"Candyland",radius:.5,fontBase:"Poppins, sans-serif",fontCode:"Roboto Mono, monospace",shadow:"oklch(0 0 0)",light:{background:"oklch(0.9809 0.0025 228.7836)",foreground:"oklch(0.3211 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3211 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3211 0 0)",primary:"oklch(0.8677 0.0735 7.0855)","primary-foreground":"oklch(0 0 0)",secondary:"oklch(0.8148 0.0819 225.7537)","secondary-foreground":"oklch(0 0 0)",muted:"oklch(0.8828 0.0285 98.1033)","muted-foreground":"oklch(0.5382 0 0)",accent:"oklch(0.9680 0.2110 109.7692)","accent-foreground":"oklch(0 0 0)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8699 0 0)",input:"oklch(0.8699 0 0)",ring:"oklch(0.8677 0.0735 7.0855)",sidebar:"oklch(0.9809 0.0025 228.7836)"},dark:{background:"oklch(0.2303 0.0125 264.2926)",foreground:"oklch(0.9219 0 0)",card:"oklch(0.3210 0.0078 223.6661)","card-foreground":"oklch(0.9219 0 0)",popover:"oklch(0.3210 0.0078 223.6661)","popover-foreground":"oklch(0.9219 0 0)",primary:"oklch(0.8027 0.1355 349.2347)","primary-foreground":"oklch(0 0 0)",secondary:"oklch(0.7395 0.2268 142.8504)","secondary-foreground":"oklch(0 0 0)",muted:"oklch(0.3867 0 0)","muted-foreground":"oklch(0.7155 0 0)",accent:"oklch(0.8148 0.0819 225.7537)","accent-foreground":"oklch(0 0 0)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3867 0 0)",input:"oklch(0.3867 0 0)",ring:"oklch(0.8027 0.1355 349.2347)",sidebar:"oklch(0.2303 0.0125 264.2926)"}},{name:"Catppuccin",radius:.35,fontBase:"Montserrat, sans-serif",fontCode:"Fira Code, monospace",shadow:"hsl(240 30% 25%)",light:{background:"oklch(0.9578 0.0058 264.5321)",foreground:"oklch(0.4355 0.0430 279.3250)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.4355 0.0430 279.3250)",popover:"oklch(0.8575 0.0145 268.4756)","popover-foreground":"oklch(0.4355 0.0430 279.3250)",primary:"oklch(0.5547 0.2503 297.0156)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.8575 0.0145 268.4756)","secondary-foreground":"oklch(0.4355 0.0430 279.3250)",muted:"oklch(0.9060 0.0117 264.5071)","muted-foreground":"oklch(0.5471 0.0343 279.0837)",accent:"oklch(0.6820 0.1448 235.3822)","accent-foreground":"oklch(1.0000 0 0)",destructive:"oklch(0.5505 0.2155 19.8095)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8083 0.0174 271.1982)",input:"oklch(0.8575 0.0145 268.4756)",ring:"oklch(0.5547 0.2503 297.0156)",sidebar:"oklch(0.9335 0.0087 264.5206)"},dark:{background:"oklch(0.2155 0.0254 284.0647)",foreground:"oklch(0.8787 0.0426 272.2767)",card:"oklch(0.2429 0.0304 283.9110)","card-foreground":"oklch(0.8787 0.0426 272.2767)",popover:"oklch(0.4037 0.0320 280.1520)","popover-foreground":"oklch(0.8787 0.0426 272.2767)",primary:"oklch(0.7871 0.1187 304.7693)","primary-foreground":"oklch(0.2429 0.0304 283.9110)",secondary:"oklch(0.4765 0.0340 278.6430)","secondary-foreground":"oklch(0.8787 0.0426 272.2767)",muted:"oklch(0.2973 0.0294 276.2144)","muted-foreground":"oklch(0.7510 0.0396 273.9320)",accent:"oklch(0.8467 0.0833 210.2545)","accent-foreground":"oklch(0.2429 0.0304 283.9110)",destructive:"oklch(0.7556 0.1297 2.7642)","destructive-foreground":"oklch(0.2429 0.0304 283.9110)",border:"oklch(0.3240 0.0319 281.9784)",input:"oklch(0.3240 0.0319 281.9784)",ring:"oklch(0.7871 0.1187 304.7693)",sidebar:"oklch(0.1828 0.0204 284.2039)"}},{name:"Claude",radius:.5,fontBase:"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",fontCode:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',shadow:"oklch(0 0 0)",light:{background:"oklch(0.9818 0.0054 95.0986)",foreground:"oklch(0.3438 0.0269 95.7226)",card:"oklch(0.9818 0.0054 95.0986)","card-foreground":"oklch(0.1908 0.0020 106.5859)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.2671 0.0196 98.9390)",primary:"oklch(0.6171 0.1375 39.0427)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9245 0.0138 92.9892)","secondary-foreground":"oklch(0.4334 0.0177 98.6048)",muted:"oklch(0.9341 0.0153 90.2390)","muted-foreground":"oklch(0.6059 0.0075 97.4233)",accent:"oklch(0.9245 0.0138 92.9892)","accent-foreground":"oklch(0.2671 0.0196 98.9390)",destructive:"oklch(0.1908 0.0020 106.5859)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8847 0.0069 97.3627)",input:"oklch(0.7621 0.0156 98.3528)",ring:"oklch(0.6171 0.1375 39.0427)",sidebar:"oklch(0.9663 0.0080 98.8792)"},dark:{background:"oklch(0.2679 0.0036 106.6427)",foreground:"oklch(0.8074 0.0142 93.0137)",card:"oklch(0.2679 0.0036 106.6427)","card-foreground":"oklch(0.9818 0.0054 95.0986)",popover:"oklch(0.3085 0.0035 106.6039)","popover-foreground":"oklch(0.9211 0.0040 106.4781)",primary:"oklch(0.6724 0.1308 38.7559)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9818 0.0054 95.0986)","secondary-foreground":"oklch(0.3085 0.0035 106.6039)",muted:"oklch(0.2213 0.0038 106.7070)","muted-foreground":"oklch(0.7713 0.0169 99.0657)",accent:"oklch(0.2130 0.0078 95.4245)","accent-foreground":"oklch(0.9663 0.0080 98.8792)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3618 0.0101 106.8928)",input:"oklch(0.4336 0.0113 100.2195)",ring:"oklch(0.6724 0.1308 38.7559)",sidebar:"oklch(0.2357 0.0024 67.7077)"}},{name:"Claymorphism",radius:1.25,fontBase:"Plus Jakarta Sans, sans-serif",fontCode:"Roboto Mono, monospace",shadow:"hsl(240 4% 60%)",light:{background:"oklch(0.9232 0.0026 48.7171)",foreground:"oklch(0.2795 0.0368 260.0310)",card:"oklch(0.9699 0.0013 106.4238)","card-foreground":"oklch(0.2795 0.0368 260.0310)",popover:"oklch(0.9699 0.0013 106.4238)","popover-foreground":"oklch(0.2795 0.0368 260.0310)",primary:"oklch(0.5854 0.2041 277.1173)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.8687 0.0043 56.3660)","secondary-foreground":"oklch(0.4461 0.0263 256.8018)",muted:"oklch(0.9232 0.0026 48.7171)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.9376 0.0260 321.9388)","accent-foreground":"oklch(0.3729 0.0306 259.7328)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8687 0.0043 56.3660)",input:"oklch(0.8687 0.0043 56.3660)",ring:"oklch(0.5854 0.2041 277.1173)",sidebar:"oklch(0.8687 0.0043 56.3660)"},dark:{background:"oklch(0.2244 0.0074 67.4370)",foreground:"oklch(0.9288 0.0126 255.5078)",card:"oklch(0.2801 0.0080 59.3379)","card-foreground":"oklch(0.9288 0.0126 255.5078)",popover:"oklch(0.2801 0.0080 59.3379)","popover-foreground":"oklch(0.9288 0.0126 255.5078)",primary:"oklch(0.6801 0.1583 276.9349)","primary-foreground":"oklch(0.2244 0.0074 67.4370)",secondary:"oklch(0.3359 0.0077 59.4197)","secondary-foreground":"oklch(0.8717 0.0093 258.3382)",muted:"oklch(0.2287 0.0074 67.4469)","muted-foreground":"oklch(0.7137 0.0192 261.3246)",accent:"oklch(0.3896 0.0074 59.4734)","accent-foreground":"oklch(0.8717 0.0093 258.3382)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(0.2244 0.0074 67.4370)",border:"oklch(0.3359 0.0077 59.4197)",input:"oklch(0.3359 0.0077 59.4197)",ring:"oklch(0.6801 0.1583 276.9349)",sidebar:"oklch(0.3359 0.0077 59.4197)"}},{name:"Clean Slate",radius:.5,fontBase:"Inter, sans-serif",fontCode:"JetBrains Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9842 0.0034 247.8575)",foreground:"oklch(0.2795 0.0368 260.0310)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.2795 0.0368 260.0310)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.2795 0.0368 260.0310)",primary:"oklch(0.5854 0.2041 277.1173)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9276 0.0058 264.5313)","secondary-foreground":"oklch(0.3729 0.0306 259.7328)",muted:"oklch(0.9670 0.0029 264.5419)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.9299 0.0334 272.7879)","accent-foreground":"oklch(0.3729 0.0306 259.7328)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8717 0.0093 258.3382)",input:"oklch(0.8717 0.0093 258.3382)",ring:"oklch(0.5854 0.2041 277.1173)",sidebar:"oklch(0.9670 0.0029 264.5419)"},dark:{background:"oklch(0.2077 0.0398 265.7549)",foreground:"oklch(0.9288 0.0126 255.5078)",card:"oklch(0.2795 0.0368 260.0310)","card-foreground":"oklch(0.9288 0.0126 255.5078)",popover:"oklch(0.2795 0.0368 260.0310)","popover-foreground":"oklch(0.9288 0.0126 255.5078)",primary:"oklch(0.6801 0.1583 276.9349)","primary-foreground":"oklch(0.2077 0.0398 265.7549)",secondary:"oklch(0.3351 0.0331 260.9120)","secondary-foreground":"oklch(0.8717 0.0093 258.3382)",muted:"oklch(0.2427 0.0381 259.9437)","muted-foreground":"oklch(0.7137 0.0192 261.3246)",accent:"oklch(0.3729 0.0306 259.7328)","accent-foreground":"oklch(0.8717 0.0093 258.3382)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(0.2077 0.0398 265.7549)",border:"oklch(0.4461 0.0263 256.8018)",input:"oklch(0.4461 0.0263 256.8018)",ring:"oklch(0.6801 0.1583 276.9349)",sidebar:"oklch(0.2795 0.0368 260.0310)"}},{name:"Cosmic Night",radius:.5,fontBase:"Inter, sans-serif",fontCode:"JetBrains Mono, monospace",shadow:"hsl(240 30% 25%)",light:{background:"oklch(0.9730 0.0133 286.1503)",foreground:"oklch(0.3015 0.0572 282.4176)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3015 0.0572 282.4176)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3015 0.0572 282.4176)",primary:"oklch(0.5417 0.1790 288.0332)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9174 0.0435 292.6901)","secondary-foreground":"oklch(0.4143 0.1039 288.1742)",muted:"oklch(0.9580 0.0133 286.1454)","muted-foreground":"oklch(0.5426 0.0465 284.7435)",accent:"oklch(0.9221 0.0373 262.1410)","accent-foreground":"oklch(0.3015 0.0572 282.4176)",destructive:"oklch(0.6861 0.2061 14.9941)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9115 0.0216 285.9625)",input:"oklch(0.9115 0.0216 285.9625)",ring:"oklch(0.5417 0.1790 288.0332)",sidebar:"oklch(0.9580 0.0133 286.1454)"},dark:{background:"oklch(0.1743 0.0227 283.7998)",foreground:"oklch(0.9185 0.0257 285.8834)",card:"oklch(0.2284 0.0384 282.9324)","card-foreground":"oklch(0.9185 0.0257 285.8834)",popover:"oklch(0.2284 0.0384 282.9324)","popover-foreground":"oklch(0.9185 0.0257 285.8834)",primary:"oklch(0.7162 0.1597 290.3962)","primary-foreground":"oklch(0.1743 0.0227 283.7998)",secondary:"oklch(0.3139 0.0736 283.4591)","secondary-foreground":"oklch(0.8367 0.0849 285.9111)",muted:"oklch(0.2710 0.0621 281.4377)","muted-foreground":"oklch(0.7166 0.0462 285.1741)",accent:"oklch(0.3354 0.0828 280.9705)","accent-foreground":"oklch(0.9185 0.0257 285.8834)",destructive:"oklch(0.6861 0.2061 14.9941)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3261 0.0597 282.5832)",input:"oklch(0.3261 0.0597 282.5832)",ring:"oklch(0.7162 0.1597 290.3962)",sidebar:"oklch(0.2284 0.0384 282.9324)"}},{name:"Cyberpunk",radius:.5,fontBase:"Outfit, sans-serif",fontCode:"Fira Code, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9816 0.0017 247.8390)",foreground:"oklch(0.1649 0.0352 281.8285)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.1649 0.0352 281.8285)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.1649 0.0352 281.8285)",primary:"oklch(0.6726 0.2904 341.4084)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9595 0.0200 286.0164)","secondary-foreground":"oklch(0.1649 0.0352 281.8285)",muted:"oklch(0.9595 0.0200 286.0164)","muted-foreground":"oklch(0.1649 0.0352 281.8285)",accent:"oklch(0.8903 0.1739 171.2690)","accent-foreground":"oklch(0.1649 0.0352 281.8285)",destructive:"oklch(0.6535 0.2348 34.0370)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9205 0.0086 225.0878)",input:"oklch(0.9205 0.0086 225.0878)",ring:"oklch(0.6726 0.2904 341.4084)",sidebar:"oklch(0.9595 0.0200 286.0164)"},dark:{background:"oklch(0.1649 0.0352 281.8285)",foreground:"oklch(0.9513 0.0074 260.7315)",card:"oklch(0.2542 0.0611 281.1423)","card-foreground":"oklch(0.9513 0.0074 260.7315)",popover:"oklch(0.2542 0.0611 281.1423)","popover-foreground":"oklch(0.9513 0.0074 260.7315)",primary:"oklch(0.6726 0.2904 341.4084)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.2542 0.0611 281.1423)","secondary-foreground":"oklch(0.9513 0.0074 260.7315)",muted:"oklch(0.2123 0.0522 280.9917)","muted-foreground":"oklch(0.6245 0.0500 278.1046)",accent:"oklch(0.8903 0.1739 171.2690)","accent-foreground":"oklch(0.1649 0.0352 281.8285)",destructive:"oklch(0.6535 0.2348 34.0370)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3279 0.0832 280.7890)",input:"oklch(0.3279 0.0832 280.7890)",ring:"oklch(0.6726 0.2904 341.4084)",sidebar:"oklch(0.1649 0.0352 281.8285)"}},{name:"Darkmatter",radius:.75,fontBase:"Geist Mono, ui-monospace, monospace",fontCode:"JetBrains Mono, monospace",shadow:"#000000",light:{background:"oklch(1.0000 0 0)",foreground:"oklch(0.2101 0.0318 264.6645)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.2101 0.0318 264.6645)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.2101 0.0318 264.6645)",primary:"oklch(0.6716 0.1368 48.5130)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.5360 0.0398 196.0280)","secondary-foreground":"oklch(1.0000 0 0)",muted:"oklch(0.9670 0.0029 264.5419)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.9491 0 0)","accent-foreground":"oklch(0.2101 0.0318 264.6645)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(0.9851 0 0)",border:"oklch(0.9276 0.0058 264.5313)",input:"oklch(0.9276 0.0058 264.5313)",ring:"oklch(0.6716 0.1368 48.5130)",sidebar:"oklch(0.9670 0.0029 264.5419)"},dark:{background:"oklch(0.1797 0.0043 308.1928)",foreground:"oklch(0.8109 0 0)",card:"oklch(0.1822 0 0)","card-foreground":"oklch(0.8109 0 0)",popover:"oklch(0.1797 0.0043 308.1928)","popover-foreground":"oklch(0.8109 0 0)",primary:"oklch(0.7214 0.1337 49.9802)","primary-foreground":"oklch(0.1797 0.0043 308.1928)",secondary:"oklch(0.5940 0.0443 196.0233)","secondary-foreground":"oklch(0.1797 0.0043 308.1928)",muted:"oklch(0.2520 0 0)","muted-foreground":"oklch(0.6268 0 0)",accent:"oklch(0.3211 0 0)","accent-foreground":"oklch(0.8109 0 0)",destructive:"oklch(0.5940 0.0443 196.0233)","destructive-foreground":"oklch(0.1797 0.0043 308.1928)",border:"oklch(0.2520 0 0)",input:"oklch(0.2520 0 0)",ring:"oklch(0.7214 0.1337 49.9802)",sidebar:"oklch(0.1822 0 0)"}},{name:"Doom 64",radius:0,fontBase:'"Oxanium", sans-serif',fontCode:'"Source Code Pro", monospace',shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.8452 0 0)",foreground:"oklch(0.2393 0 0)",card:"oklch(0.7572 0 0)","card-foreground":"oklch(0.2393 0 0)",popover:"oklch(0.7572 0 0)","popover-foreground":"oklch(0.2393 0 0)",primary:"oklch(0.5016 0.1887 27.4816)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.4955 0.0896 126.1858)","secondary-foreground":"oklch(1.0000 0 0)",muted:"oklch(0.7826 0 0)","muted-foreground":"oklch(0.4091 0 0)",accent:"oklch(0.5880 0.0993 245.7394)","accent-foreground":"oklch(1.0000 0 0)",destructive:"oklch(0.7076 0.1975 46.4558)","destructive-foreground":"oklch(0 0 0)",border:"oklch(0.4313 0 0)",input:"oklch(0.4313 0 0)",ring:"oklch(0.5016 0.1887 27.4816)",sidebar:"oklch(0.7572 0 0)"},dark:{background:"oklch(0.2178 0 0)",foreground:"oklch(0.9067 0 0)",card:"oklch(0.2850 0 0)","card-foreground":"oklch(0.9067 0 0)",popover:"oklch(0.2850 0 0)","popover-foreground":"oklch(0.9067 0 0)",primary:"oklch(0.6083 0.2090 27.0276)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.6423 0.1467 133.0145)","secondary-foreground":"oklch(0 0 0)",muted:"oklch(0.2645 0 0)","muted-foreground":"oklch(0.7058 0 0)",accent:"oklch(0.7482 0.1235 244.7492)","accent-foreground":"oklch(0 0 0)",destructive:"oklch(0.7839 0.1719 68.0943)","destructive-foreground":"oklch(0 0 0)",border:"oklch(0.4091 0 0)",input:"oklch(0.4091 0 0)",ring:"oklch(0.6083 0.2090 27.0276)",sidebar:"oklch(0.1913 0 0)"}},{name:"Elegant Luxury",radius:.375,fontBase:"Poppins, sans-serif",fontCode:"IBM Plex Mono, monospace",shadow:"hsl(0 63% 18%)",light:{background:"oklch(0.9779 0.0042 56.3756)",foreground:"oklch(0.2178 0 0)",card:"oklch(0.9779 0.0042 56.3756)","card-foreground":"oklch(0.2178 0 0)",popover:"oklch(0.9779 0.0042 56.3756)","popover-foreground":"oklch(0.2178 0 0)",primary:"oklch(0.4650 0.1470 24.9381)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9625 0.0385 89.0943)","secondary-foreground":"oklch(0.4847 0.1022 75.1153)",muted:"oklch(0.9431 0.0068 53.4442)","muted-foreground":"oklch(0.4444 0.0096 73.6390)",accent:"oklch(0.9619 0.0580 95.6174)","accent-foreground":"oklch(0.3958 0.1331 25.7230)",destructive:"oklch(0.4437 0.1613 26.8994)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9355 0.0324 80.9937)",input:"oklch(0.9355 0.0324 80.9937)",ring:"oklch(0.4650 0.1470 24.9381)",sidebar:"oklch(0.9431 0.0068 53.4442)"},dark:{background:"oklch(0.2161 0.0061 56.0434)",foreground:"oklch(0.9699 0.0013 106.4238)",card:"oklch(0.2685 0.0063 34.2976)","card-foreground":"oklch(0.9699 0.0013 106.4238)",popover:"oklch(0.2685 0.0063 34.2976)","popover-foreground":"oklch(0.9699 0.0013 106.4238)",primary:"oklch(0.5054 0.1905 27.5181)","primary-foreground":"oklch(0.9779 0.0042 56.3756)",secondary:"oklch(0.4732 0.1247 46.2007)","secondary-foreground":"oklch(0.9619 0.0580 95.6174)",muted:"oklch(0.2291 0.0060 56.0708)","muted-foreground":"oklch(0.8687 0.0043 56.3660)",accent:"oklch(0.5553 0.1455 48.9975)","accent-foreground":"oklch(0.9619 0.0580 95.6174)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3741 0.0087 67.5582)",input:"oklch(0.3741 0.0087 67.5582)",ring:"oklch(0.5054 0.1905 27.5181)",sidebar:"oklch(0.2161 0.0061 56.0434)"}},{name:"Graphite",radius:.35,fontBase:"Inter, sans-serif",fontCode:"Fira Code, monospace",shadow:"hsl(0 0% 20% / 0.1)",light:{background:"oklch(0.9551 0 0)",foreground:"oklch(0.3211 0 0)",card:"oklch(0.9702 0 0)","card-foreground":"oklch(0.3211 0 0)",popover:"oklch(0.9702 0 0)","popover-foreground":"oklch(0.3211 0 0)",primary:"oklch(0.4891 0 0)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9067 0 0)","secondary-foreground":"oklch(0.3211 0 0)",muted:"oklch(0.8853 0 0)","muted-foreground":"oklch(0.5103 0 0)",accent:"oklch(0.8078 0 0)","accent-foreground":"oklch(0.3211 0 0)",destructive:"oklch(0.5594 0.1900 25.8625)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8576 0 0)",input:"oklch(0.9067 0 0)",ring:"oklch(0.4891 0 0)",sidebar:"oklch(0.9370 0 0)"},dark:{background:"oklch(0.2178 0 0)",foreground:"oklch(0.8853 0 0)",card:"oklch(0.2435 0 0)","card-foreground":"oklch(0.8853 0 0)",popover:"oklch(0.2435 0 0)","popover-foreground":"oklch(0.8853 0 0)",primary:"oklch(0.7058 0 0)","primary-foreground":"oklch(0.2178 0 0)",secondary:"oklch(0.3092 0 0)","secondary-foreground":"oklch(0.8853 0 0)",muted:"oklch(0.2850 0 0)","muted-foreground":"oklch(0.5999 0 0)",accent:"oklch(0.3715 0 0)","accent-foreground":"oklch(0.8853 0 0)",destructive:"oklch(0.6591 0.1530 22.1703)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3290 0 0)",input:"oklch(0.3092 0 0)",ring:"oklch(0.7058 0 0)",sidebar:"oklch(0.2393 0 0)"}},{name:"Kodama Grove",radius:.425,fontBase:"Merriweather, serif",fontCode:"JetBrains Mono, monospace",shadow:"hsl(88 22% 35% / 0.15)",light:{background:"oklch(0.8798 0.0534 91.7893)",foreground:"oklch(0.4265 0.0310 59.2153)",card:"oklch(0.8937 0.0395 87.5676)","card-foreground":"oklch(0.4265 0.0310 59.2153)",popover:"oklch(0.9378 0.0331 89.8515)","popover-foreground":"oklch(0.4265 0.0310 59.2153)",primary:"oklch(0.6657 0.1050 118.9078)","primary-foreground":"oklch(0.9882 0.0069 88.6415)",secondary:"oklch(0.8532 0.0631 91.1493)","secondary-foreground":"oklch(0.4265 0.0310 59.2153)",muted:"oklch(0.8532 0.0631 91.1493)","muted-foreground":"oklch(0.5761 0.0259 60.9323)",accent:"oklch(0.8361 0.0713 90.3269)","accent-foreground":"oklch(0.4265 0.0310 59.2153)",destructive:"oklch(0.7136 0.0981 29.9827)","destructive-foreground":"oklch(0.9790 0.0082 91.4818)",border:"oklch(0.6918 0.0440 59.8448)",input:"oklch(0.8361 0.0713 90.3269)",ring:"oklch(0.7350 0.0564 130.8494)",sidebar:"oklch(0.8631 0.0645 90.5161)"},dark:{background:"oklch(0.3303 0.0214 88.0737)",foreground:"oklch(0.9217 0.0235 82.1191)",card:"oklch(0.3583 0.0165 82.3257)","card-foreground":"oklch(0.9217 0.0235 82.1191)",popover:"oklch(0.3583 0.0165 82.3257)","popover-foreground":"oklch(0.9217 0.0235 82.1191)",primary:"oklch(0.6762 0.0567 132.4479)","primary-foreground":"oklch(0.2686 0.0105 61.0213)",secondary:"oklch(0.4448 0.0239 84.5498)","secondary-foreground":"oklch(0.9217 0.0235 82.1191)",muted:"oklch(0.3892 0.0197 82.7084)","muted-foreground":"oklch(0.7096 0.0171 73.6179)",accent:"oklch(0.6540 0.0723 90.7629)","accent-foreground":"oklch(0.2686 0.0105 61.0213)",destructive:"oklch(0.6287 0.0821 31.2958)","destructive-foreground":"oklch(0.9357 0.0201 84.5907)",border:"oklch(0.4448 0.0239 84.5498)",input:"oklch(0.4448 0.0239 84.5498)",ring:"oklch(0.6762 0.0567 132.4479)",sidebar:"oklch(0.3303 0.0214 88.0737)"}},{name:"Midnight Bloom",radius:.5,fontBase:"Montserrat, sans-serif",fontCode:"Source Code Pro, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9821 0 0)",foreground:"oklch(0.3211 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3211 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3211 0 0)",primary:"oklch(0.5676 0.2021 283.0838)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.8214 0.0720 249.3482)","secondary-foreground":"oklch(0.3211 0 0)",muted:"oklch(0.8202 0.0213 91.6163)","muted-foreground":"oklch(0.5382 0 0)",accent:"oklch(0.6475 0.0642 117.4260)","accent-foreground":"oklch(1.0000 0 0)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8699 0 0)",input:"oklch(0.8699 0 0)",ring:"oklch(0.5676 0.2021 283.0838)",sidebar:"oklch(0.9821 0 0)"},dark:{background:"oklch(0.2303 0.0125 264.2926)",foreground:"oklch(0.9219 0 0)",card:"oklch(0.3210 0.0078 223.6661)","card-foreground":"oklch(0.9219 0 0)",popover:"oklch(0.3210 0.0078 223.6661)","popover-foreground":"oklch(0.9219 0 0)",primary:"oklch(0.5676 0.2021 283.0838)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.3390 0.1793 301.6848)","secondary-foreground":"oklch(0.9219 0 0)",muted:"oklch(0.3867 0 0)","muted-foreground":"oklch(0.7155 0 0)",accent:"oklch(0.6746 0.1414 261.3380)","accent-foreground":"oklch(0.9219 0 0)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3867 0 0)",input:"oklch(0.3867 0 0)",ring:"oklch(0.5676 0.2021 283.0838)",sidebar:"oklch(0.2303 0.0125 264.2926)"}},{name:"Mocha Mousse",radius:.5,fontBase:"DM Sans, sans-serif",fontCode:"Menlo, monospace",shadow:"hsl(20 18% 51% / 0.4)",light:{background:"oklch(0.9529 0.0146 102.4597)",foreground:"oklch(0.4063 0.0255 40.3627)",card:"oklch(0.9529 0.0146 102.4597)","card-foreground":"oklch(0.4063 0.0255 40.3627)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.4063 0.0255 40.3627)",primary:"oklch(0.6083 0.0623 44.3588)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.7473 0.0387 80.5476)","secondary-foreground":"oklch(1.0000 0 0)",muted:"oklch(0.8502 0.0389 49.0874)","muted-foreground":"oklch(0.5416 0.0512 37.2132)",accent:"oklch(0.8502 0.0389 49.0874)","accent-foreground":"oklch(0.4063 0.0255 40.3627)",destructive:"oklch(0.2225 0.0098 52.9636)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.7473 0.0387 80.5476)",input:"oklch(0.7473 0.0387 80.5476)",ring:"oklch(0.6083 0.0623 44.3588)",sidebar:"oklch(0.8903 0.0278 49.5658)"},dark:{background:"oklch(0.2721 0.0141 48.1783)",foreground:"oklch(0.9529 0.0146 102.4597)",card:"oklch(0.3291 0.0156 50.8936)","card-foreground":"oklch(0.9529 0.0146 102.4597)",popover:"oklch(0.3291 0.0156 50.8936)","popover-foreground":"oklch(0.9529 0.0146 102.4597)",primary:"oklch(0.7272 0.0539 52.3320)","primary-foreground":"oklch(0.2721 0.0141 48.1783)",secondary:"oklch(0.5416 0.0512 37.2132)","secondary-foreground":"oklch(0.9529 0.0146 102.4597)",muted:"oklch(0.4063 0.0255 40.3627)","muted-foreground":"oklch(0.7575 0.0380 50.8610)",accent:"oklch(0.7473 0.0387 80.5476)","accent-foreground":"oklch(0.2721 0.0141 48.1783)",destructive:"oklch(0.6875 0.1420 21.4566)","destructive-foreground":"oklch(0.2721 0.0141 48.1783)",border:"oklch(0.4063 0.0255 40.3627)",input:"oklch(0.4063 0.0255 40.3627)",ring:"oklch(0.7272 0.0539 52.3320)",sidebar:"oklch(0.2225 0.0098 52.9636)"}},{name:"Modern Minimal",radius:.375,fontBase:"Inter, sans-serif",fontCode:"JetBrains Mono, monospace",shadow:"oklch(0 0 0)",light:{background:"oklch(1.0000 0 0)",foreground:"oklch(0.3211 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3211 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3211 0 0)",primary:"oklch(0.6231 0.1880 259.8145)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9670 0.0029 264.5419)","secondary-foreground":"oklch(0.4461 0.0263 256.8018)",muted:"oklch(0.9846 0.0017 247.8389)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.9514 0.0250 236.8242)","accent-foreground":"oklch(0.3791 0.1378 265.5222)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9276 0.0058 264.5313)",input:"oklch(0.9276 0.0058 264.5313)",ring:"oklch(0.6231 0.1880 259.8145)",sidebar:"oklch(0.9846 0.0017 247.8389)"},dark:{background:"oklch(0.2046 0 0)",foreground:"oklch(0.9219 0 0)",card:"oklch(0.2686 0 0)","card-foreground":"oklch(0.9219 0 0)",popover:"oklch(0.2686 0 0)","popover-foreground":"oklch(0.9219 0 0)",primary:"oklch(0.6231 0.1880 259.8145)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.2686 0 0)","secondary-foreground":"oklch(0.9219 0 0)",muted:"oklch(0.2393 0 0)","muted-foreground":"oklch(0.7155 0 0)",accent:"oklch(0.3791 0.1378 265.5222)","accent-foreground":"oklch(0.8823 0.0571 254.1284)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3715 0 0)",input:"oklch(0.3715 0 0)",ring:"oklch(0.6231 0.1880 259.8145)",sidebar:"oklch(0.2046 0 0)"}},{name:"Mono",radius:0,fontBase:"Geist Mono, monospace",fontCode:"Geist Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(1.0000 0 0)",foreground:"oklch(0.1448 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.1448 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.1448 0 0)",primary:"oklch(0.5555 0 0)","primary-foreground":"oklch(0.9851 0 0)",secondary:"oklch(0.9702 0 0)","secondary-foreground":"oklch(0.2046 0 0)",muted:"oklch(0.9702 0 0)","muted-foreground":"oklch(0.5486 0 0)",accent:"oklch(0.9702 0 0)","accent-foreground":"oklch(0.2046 0 0)",destructive:"oklch(0.5830 0.2387 28.4765)","destructive-foreground":"oklch(0.9702 0 0)",border:"oklch(0.9219 0 0)",input:"oklch(0.9219 0 0)",ring:"oklch(0.7090 0 0)",sidebar:"oklch(0.9851 0 0)"},dark:{background:"oklch(0.1448 0 0)",foreground:"oklch(0.9851 0 0)",card:"oklch(0.2134 0 0)","card-foreground":"oklch(0.9851 0 0)",popover:"oklch(0.2686 0 0)","popover-foreground":"oklch(0.9851 0 0)",primary:"oklch(0.5555 0 0)","primary-foreground":"oklch(0.9851 0 0)",secondary:"oklch(0.2686 0 0)","secondary-foreground":"oklch(0.9851 0 0)",muted:"oklch(0.2686 0 0)","muted-foreground":"oklch(0.7090 0 0)",accent:"oklch(0.3715 0 0)","accent-foreground":"oklch(0.9851 0 0)",destructive:"oklch(0.7022 0.1892 22.2279)","destructive-foreground":"oklch(0.2686 0 0)",border:"oklch(0.3407 0 0)",input:"oklch(0.4386 0 0)",ring:"oklch(0.5555 0 0)",sidebar:"oklch(0.2046 0 0)"}},{name:"Nature",radius:.5,fontBase:"Montserrat, sans-serif",fontCode:"Source Code Pro, monospace",shadow:"oklch(0 0 0)",light:{background:"oklch(0.9711 0.0074 80.7211)",foreground:"oklch(0.3000 0.0358 30.2042)",card:"oklch(0.9711 0.0074 80.7211)","card-foreground":"oklch(0.3000 0.0358 30.2042)",popover:"oklch(0.9711 0.0074 80.7211)","popover-foreground":"oklch(0.3000 0.0358 30.2042)",primary:"oklch(0.5234 0.1347 144.1672)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9571 0.0210 147.6360)","secondary-foreground":"oklch(0.4254 0.1159 144.3078)",muted:"oklch(0.9370 0.0142 74.4218)","muted-foreground":"oklch(0.4495 0.0486 39.2110)",accent:"oklch(0.8952 0.0504 146.0366)","accent-foreground":"oklch(0.4254 0.1159 144.3078)",destructive:"oklch(0.5386 0.1937 26.7249)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8805 0.0208 74.6428)",input:"oklch(0.8805 0.0208 74.6428)",ring:"oklch(0.5234 0.1347 144.1672)",sidebar:"oklch(0.9370 0.0142 74.4218)"},dark:{background:"oklch(0.2683 0.0279 150.7681)",foreground:"oklch(0.9423 0.0097 72.6595)",card:"oklch(0.3327 0.0271 146.9867)","card-foreground":"oklch(0.9423 0.0097 72.6595)",popover:"oklch(0.3327 0.0271 146.9867)","popover-foreground":"oklch(0.9423 0.0097 72.6595)",primary:"oklch(0.6731 0.1624 144.2083)","primary-foreground":"oklch(0.2157 0.0453 145.7256)",secondary:"oklch(0.3942 0.0265 142.9926)","secondary-foreground":"oklch(0.8970 0.0166 142.5518)",muted:"oklch(0.2926 0.0212 147.7496)","muted-foreground":"oklch(0.8579 0.0174 76.0955)",accent:"oklch(0.5752 0.1446 144.1813)","accent-foreground":"oklch(0.9423 0.0097 72.6595)",destructive:"oklch(0.5386 0.1937 26.7249)","destructive-foreground":"oklch(0.9423 0.0097 72.6595)",border:"oklch(0.3942 0.0265 142.9926)",input:"oklch(0.3942 0.0265 142.9926)",ring:"oklch(0.6731 0.1624 144.2083)",sidebar:"oklch(0.2683 0.0279 150.7681)"}},{name:"Neo Brutalism",radius:0,fontBase:"DM Sans, sans-serif",fontCode:"Space Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(1.0000 0 0)",foreground:"oklch(0 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0 0 0)",primary:"oklch(0.6489 0.2370 26.9728)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9680 0.2110 109.7692)","secondary-foreground":"oklch(0 0 0)",muted:"oklch(0.9551 0 0)","muted-foreground":"oklch(0.3211 0 0)",accent:"oklch(0.5635 0.2408 260.8178)","accent-foreground":"oklch(1.0000 0 0)",destructive:"oklch(0 0 0)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0 0 0)",input:"oklch(0 0 0)",ring:"oklch(0.6489 0.2370 26.9728)",sidebar:"oklch(0.9551 0 0)"},dark:{background:"oklch(0 0 0)",foreground:"oklch(1.0000 0 0)",card:"oklch(0.3211 0 0)","card-foreground":"oklch(1.0000 0 0)",popover:"oklch(0.3211 0 0)","popover-foreground":"oklch(1.0000 0 0)",primary:"oklch(0.7044 0.1872 23.1858)","primary-foreground":"oklch(0 0 0)",secondary:"oklch(0.9691 0.2005 109.6228)","secondary-foreground":"oklch(0 0 0)",muted:"oklch(0.2178 0 0)","muted-foreground":"oklch(0.8452 0 0)",accent:"oklch(0.6755 0.1765 252.2592)","accent-foreground":"oklch(0 0 0)",destructive:"oklch(1.0000 0 0)","destructive-foreground":"oklch(0 0 0)",border:"oklch(1.0000 0 0)",input:"oklch(1.0000 0 0)",ring:"oklch(0.7044 0.1872 23.1858)",sidebar:"oklch(0 0 0)"}},{name:"Northern Lights",radius:.5,fontBase:"Plus Jakarta Sans, sans-serif",fontCode:"JetBrains Mono, monospace",shadow:"oklch(0 0 0)",light:{background:"oklch(0.9824 0.0013 286.3757)",foreground:"oklch(0.3211 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3211 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3211 0 0)",primary:"oklch(0.6487 0.1538 150.3071)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.6746 0.1414 261.3380)","secondary-foreground":"oklch(1.0000 0 0)",muted:"oklch(0.8828 0.0285 98.1033)","muted-foreground":"oklch(0.5382 0 0)",accent:"oklch(0.8269 0.1080 211.9627)","accent-foreground":"oklch(0.3211 0 0)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8699 0 0)",input:"oklch(0.8699 0 0)",ring:"oklch(0.6487 0.1538 150.3071)",sidebar:"oklch(0.9824 0.0013 286.3757)"},dark:{background:"oklch(0.2303 0.0125 264.2926)",foreground:"oklch(0.9219 0 0)",card:"oklch(0.3210 0.0078 223.6661)","card-foreground":"oklch(0.9219 0 0)",popover:"oklch(0.3210 0.0078 223.6661)","popover-foreground":"oklch(0.9219 0 0)",primary:"oklch(0.6487 0.1538 150.3071)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.5880 0.0993 245.7394)","secondary-foreground":"oklch(0.9219 0 0)",muted:"oklch(0.3867 0 0)","muted-foreground":"oklch(0.7155 0 0)",accent:"oklch(0.6746 0.1414 261.3380)","accent-foreground":"oklch(0.9219 0 0)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3867 0 0)",input:"oklch(0.3867 0 0)",ring:"oklch(0.6487 0.1538 150.3071)",sidebar:"oklch(0.2303 0.0125 264.2926)"}},{name:"Notebook",radius:.625,fontBase:"Architects Daughter, sans-serif",fontCode:'"Fira Code", "Courier New", monospace',shadow:"#000000",light:{background:"oklch(0.9821 0 0)",foreground:"oklch(0.3485 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3485 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3485 0 0)",primary:"oklch(0.4891 0 0)","primary-foreground":"oklch(0.9551 0 0)",secondary:"oklch(0.9006 0 0)","secondary-foreground":"oklch(0.3485 0 0)",muted:"oklch(0.9158 0 0)","muted-foreground":"oklch(0.4313 0 0)",accent:"oklch(0.9354 0.0456 94.8549)","accent-foreground":"oklch(0.4015 0.0436 37.9587)",destructive:"oklch(0.6627 0.0978 20.0041)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.5538 0.0025 17.2320)",input:"oklch(1.0000 0 0)",ring:"oklch(0.7058 0 0)",sidebar:"oklch(0.9551 0 0)"},dark:{background:"oklch(0.2891 0 0)",foreground:"oklch(0.8945 0 0)",card:"oklch(0.3211 0 0)","card-foreground":"oklch(0.8945 0 0)",popover:"oklch(0.3211 0 0)","popover-foreground":"oklch(0.8945 0 0)",primary:"oklch(0.7572 0 0)","primary-foreground":"oklch(0.2891 0 0)",secondary:"oklch(0.4676 0 0)","secondary-foreground":"oklch(0.8078 0 0)",muted:"oklch(0.3904 0 0)","muted-foreground":"oklch(0.7058 0 0)",accent:"oklch(0.9067 0 0)","accent-foreground":"oklch(0.3211 0 0)",destructive:"oklch(0.7915 0.0491 18.2410)","destructive-foreground":"oklch(0.2891 0 0)",border:"oklch(0.4276 0 0)",input:"oklch(0.3211 0 0)",ring:"oklch(0.8078 0 0)",sidebar:"oklch(0.2478 0 0)"}},{name:"Ocean Breeze",radius:.5,fontBase:"DM Sans, sans-serif",fontCode:"IBM Plex Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9751 0.0127 244.2507)",foreground:"oklch(0.3729 0.0306 259.7328)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3729 0.0306 259.7328)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3729 0.0306 259.7328)",primary:"oklch(0.7227 0.1920 149.5793)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9514 0.0250 236.8242)","secondary-foreground":"oklch(0.4461 0.0263 256.8018)",muted:"oklch(0.9670 0.0029 264.5419)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.9505 0.0507 163.0508)","accent-foreground":"oklch(0.3729 0.0306 259.7328)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9276 0.0058 264.5313)",input:"oklch(0.9276 0.0058 264.5313)",ring:"oklch(0.7227 0.1920 149.5793)",sidebar:"oklch(0.9514 0.0250 236.8242)"},dark:{background:"oklch(0.2077 0.0398 265.7549)",foreground:"oklch(0.8717 0.0093 258.3382)",card:"oklch(0.2795 0.0368 260.0310)","card-foreground":"oklch(0.8717 0.0093 258.3382)",popover:"oklch(0.2795 0.0368 260.0310)","popover-foreground":"oklch(0.8717 0.0093 258.3382)",primary:"oklch(0.7729 0.1535 163.2231)","primary-foreground":"oklch(0.2077 0.0398 265.7549)",secondary:"oklch(0.3351 0.0331 260.9120)","secondary-foreground":"oklch(0.7118 0.0129 286.0665)",muted:"oklch(0.2463 0.0275 259.9628)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.3729 0.0306 259.7328)","accent-foreground":"oklch(0.7118 0.0129 286.0665)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(0.2077 0.0398 265.7549)",border:"oklch(0.4461 0.0263 256.8018)",input:"oklch(0.4461 0.0263 256.8018)",ring:"oklch(0.7729 0.1535 163.2231)",sidebar:"oklch(0.2795 0.0368 260.0310)"}},{name:"Pastel Dreams",radius:1.5,fontBase:"Open Sans, sans-serif",fontCode:"IBM Plex Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9689 0.0090 314.7819)",foreground:"oklch(0.3729 0.0306 259.7328)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3729 0.0306 259.7328)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3729 0.0306 259.7328)",primary:"oklch(0.7090 0.1592 293.5412)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9073 0.0530 306.0902)","secondary-foreground":"oklch(0.4461 0.0263 256.8018)",muted:"oklch(0.9464 0.0327 307.1745)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.9376 0.0260 321.9388)","accent-foreground":"oklch(0.3729 0.0306 259.7328)",destructive:"oklch(0.8077 0.1035 19.5706)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9073 0.0530 306.0902)",input:"oklch(0.9073 0.0530 306.0902)",ring:"oklch(0.7090 0.1592 293.5412)",sidebar:"oklch(0.9073 0.0530 306.0902)"},dark:{background:"oklch(0.2161 0.0061 56.0434)",foreground:"oklch(0.9299 0.0334 272.7879)",card:"oklch(0.2805 0.0309 307.2326)","card-foreground":"oklch(0.9299 0.0334 272.7879)",popover:"oklch(0.2805 0.0309 307.2326)","popover-foreground":"oklch(0.9299 0.0334 272.7879)",primary:"oklch(0.7874 0.1179 295.7538)","primary-foreground":"oklch(0.2161 0.0061 56.0434)",secondary:"oklch(0.3416 0.0444 308.8496)","secondary-foreground":"oklch(0.8717 0.0093 258.3382)",muted:"oklch(0.2283 0.0375 302.9006)","muted-foreground":"oklch(0.7137 0.0192 261.3246)",accent:"oklch(0.3858 0.0509 304.6383)","accent-foreground":"oklch(0.8717 0.0093 258.3382)",destructive:"oklch(0.8077 0.1035 19.5706)","destructive-foreground":"oklch(0.2161 0.0061 56.0434)",border:"oklch(0.3416 0.0444 308.8496)",input:"oklch(0.3416 0.0444 308.8496)",ring:"oklch(0.7874 0.1179 295.7538)",sidebar:"oklch(0.3416 0.0444 308.8496)"}},{name:"Perpetuity",radius:.125,fontBase:"Source Code Pro, monospace",fontCode:"Source Code Pro, monospace",shadow:"hsl(185 70% 30% / 0.15)",light:{background:"oklch(0.9491 0.0085 197.0126)",foreground:"oklch(0.3772 0.0619 212.6640)",card:"oklch(0.9724 0.0053 197.0692)","card-foreground":"oklch(0.3772 0.0619 212.6640)",popover:"oklch(0.9724 0.0053 197.0692)","popover-foreground":"oklch(0.3772 0.0619 212.6640)",primary:"oklch(0.5624 0.0947 203.2755)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9244 0.0181 196.8450)","secondary-foreground":"oklch(0.3772 0.0619 212.6640)",muted:"oklch(0.9295 0.0107 196.9723)","muted-foreground":"oklch(0.5428 0.0594 201.5662)",accent:"oklch(0.9021 0.0297 201.8915)","accent-foreground":"oklch(0.3772 0.0619 212.6640)",destructive:"oklch(0.5732 0.1901 25.5409)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8931 0.0205 204.4136)",input:"oklch(0.9244 0.0181 196.8450)",ring:"oklch(0.5624 0.0947 203.2755)",sidebar:"oklch(0.9280 0.0183 205.3151)"},dark:{background:"oklch(0.2068 0.0247 224.4533)",foreground:"oklch(0.8520 0.1269 195.0354)",card:"oklch(0.2293 0.0276 216.0674)","card-foreground":"oklch(0.8520 0.1269 195.0354)",popover:"oklch(0.2293 0.0276 216.0674)","popover-foreground":"oklch(0.8520 0.1269 195.0354)",primary:"oklch(0.8520 0.1269 195.0354)","primary-foreground":"oklch(0.2068 0.0247 224.4533)",secondary:"oklch(0.3775 0.0564 216.5010)","secondary-foreground":"oklch(0.8520 0.1269 195.0354)",muted:"oklch(0.2894 0.0412 218.8153)","muted-foreground":"oklch(0.6611 0.0975 195.0526)",accent:"oklch(0.3775 0.0564 216.5010)","accent-foreground":"oklch(0.8520 0.1269 195.0354)",destructive:"oklch(0.6168 0.2086 25.8088)","destructive-foreground":"oklch(0.9612 0 0)",border:"oklch(0.3775 0.0564 216.5010)",input:"oklch(0.3775 0.0564 216.5010)",ring:"oklch(0.8520 0.1269 195.0354)",sidebar:"oklch(0.2068 0.0247 224.4533)"}},{name:"Quantum Rose",radius:.5,fontBase:"Quicksand, sans-serif",fontCode:"Space Mono, monospace",shadow:"hsl(330 70% 30% / 0.12)",light:{background:"oklch(0.9692 0.0192 343.9344)",foreground:"oklch(0.4426 0.1653 352.3762)",card:"oklch(0.9837 0.0107 339.3288)","card-foreground":"oklch(0.4426 0.1653 352.3762)",popover:"oklch(0.9837 0.0107 339.3288)","popover-foreground":"oklch(0.4426 0.1653 352.3762)",primary:"oklch(0.6002 0.2414 0.1348)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9230 0.0701 326.1273)","secondary-foreground":"oklch(0.4426 0.1653 352.3762)",muted:"oklch(0.9429 0.0363 344.2604)","muted-foreground":"oklch(0.5740 0.1732 352.0544)",accent:"oklch(0.8766 0.0828 344.8849)","accent-foreground":"oklch(0.4426 0.1653 352.3762)",destructive:"oklch(0.5831 0.1911 6.3410)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8881 0.0747 344.3866)",input:"oklch(0.9230 0.0701 326.1273)",ring:"oklch(0.6002 0.2414 0.1348)",sidebar:"oklch(0.9629 0.0227 345.7485)"},dark:{background:"oklch(0.1808 0.0535 313.7159)",foreground:"oklch(0.8624 0.1307 326.6356)",card:"oklch(0.2398 0.0661 313.2337)","card-foreground":"oklch(0.8624 0.1307 326.6356)",popover:"oklch(0.2398 0.0661 313.2337)","popover-foreground":"oklch(0.8624 0.1307 326.6356)",primary:"oklch(0.7543 0.2319 332.0212)","primary-foreground":"oklch(0.1608 0.0493 327.5673)",secondary:"oklch(0.3184 0.0915 319.6465)","secondary-foreground":"oklch(0.8624 0.1307 326.6356)",muted:"oklch(0.2701 0.0770 312.3525)","muted-foreground":"oklch(0.7116 0.1623 327.1132)",accent:"oklch(0.3558 0.1201 325.7655)","accent-foreground":"oklch(0.8624 0.1307 326.6356)",destructive:"oklch(0.6539 0.2441 7.1740)","destructive-foreground":"oklch(0.9821 0 0)",border:"oklch(0.3280 0.1202 313.5393)",input:"oklch(0.3184 0.0915 319.6465)",ring:"oklch(0.7543 0.2319 332.0212)",sidebar:"oklch(0.1941 0.0504 311.3983)"}},{name:"Retro Arcade",radius:.25,fontBase:"Outfit, sans-serif",fontCode:"Space Mono, monospace",shadow:"hsl(196 83% 10%)",light:{background:"oklch(0.9735 0.0261 90.0953)",foreground:"oklch(0.3092 0.0518 219.6516)",card:"oklch(0.9306 0.0260 92.4020)","card-foreground":"oklch(0.3092 0.0518 219.6516)",popover:"oklch(0.9306 0.0260 92.4020)","popover-foreground":"oklch(0.3092 0.0518 219.6516)",primary:"oklch(0.5924 0.2025 355.8943)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.6437 0.1019 187.3840)","secondary-foreground":"oklch(1.0000 0 0)",muted:"oklch(0.6979 0.0159 196.7940)","muted-foreground":"oklch(0.3092 0.0518 219.6516)",accent:"oklch(0.5808 0.1732 39.5003)","accent-foreground":"oklch(1.0000 0 0)",destructive:"oklch(0.5863 0.2064 27.1172)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.6537 0.0197 205.2618)",input:"oklch(0.6537 0.0197 205.2618)",ring:"oklch(0.5924 0.2025 355.8943)",sidebar:"oklch(0.9735 0.0261 90.0953)"},dark:{background:"oklch(0.2673 0.0486 219.8169)",foreground:"oklch(0.6979 0.0159 196.7940)",card:"oklch(0.3092 0.0518 219.6516)","card-foreground":"oklch(0.6979 0.0159 196.7940)",popover:"oklch(0.3092 0.0518 219.6516)","popover-foreground":"oklch(0.6979 0.0159 196.7940)",primary:"oklch(0.5924 0.2025 355.8943)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.6437 0.1019 187.3840)","secondary-foreground":"oklch(1.0000 0 0)",muted:"oklch(0.5230 0.0283 219.1365)","muted-foreground":"oklch(0.6979 0.0159 196.7940)",accent:"oklch(0.5808 0.1732 39.5003)","accent-foreground":"oklch(1.0000 0 0)",destructive:"oklch(0.5863 0.2064 27.1172)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.5230 0.0283 219.1365)",input:"oklch(0.5230 0.0283 219.1365)",ring:"oklch(0.5924 0.2025 355.8943)",sidebar:"oklch(0.2673 0.0486 219.8169)"}},{name:"Sage Garden",radius:.35,fontBase:"Antic, ui-sans-serif, sans-serif, system-ui",fontCode:"JetBrains Mono, Courier New, monospace",shadow:"#1a1f2e",light:{background:"oklch(0.9761 0.0041 91.4461)",foreground:"oklch(0.2417 0.0298 269.8827)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.2417 0.0298 269.8827)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.2417 0.0298 269.8827)",primary:"oklch(0.6333 0.0309 154.9039)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.8596 0.0291 119.9919)","secondary-foreground":"oklch(0.2417 0.0298 269.8827)",muted:"oklch(0.9251 0.0071 88.6450)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.8242 0.0221 136.6092)","accent-foreground":"oklch(0.2417 0.0298 269.8827)",destructive:"oklch(0.5624 0.1743 26.1433)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9251 0.0071 88.6450)",input:"oklch(1.0000 0 0)",ring:"oklch(0.6333 0.0309 154.9039)",sidebar:"oklch(0.9845 0.0026 106.4477)"},dark:{background:"oklch(0.1448 0 0)",foreground:"oklch(0.9702 0 0)",card:"oklch(0.1822 0 0)","card-foreground":"oklch(0.9702 0 0)",popover:"oklch(0.1822 0 0)","popover-foreground":"oklch(0.9702 0 0)",primary:"oklch(0.6333 0.0309 154.9039)","primary-foreground":"oklch(0 0 0)",secondary:"oklch(0.2178 0 0)","secondary-foreground":"oklch(0.9702 0 0)",muted:"oklch(0.2178 0 0)","muted-foreground":"oklch(0.7058 0 0)",accent:"oklch(0.3709 0.0248 153.9823)","accent-foreground":"oklch(0.9702 0 0)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.2850 0 0)",input:"oklch(0.1822 0 0)",ring:"oklch(0.6333 0.0309 154.9039)",sidebar:"oklch(0.1684 0 0)"}},{name:"Soft Pop",radius:1,fontBase:"DM Sans, sans-serif",fontCode:"Space Mono, monospace",shadow:"#1a1a1a",light:{background:"oklch(0.9789 0.0082 121.6272)",foreground:"oklch(0 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0 0 0)",primary:"oklch(0.5106 0.2301 276.9656)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.7038 0.1230 182.5025)","secondary-foreground":"oklch(1.0000 0 0)",muted:"oklch(0.9551 0 0)","muted-foreground":"oklch(0.3211 0 0)",accent:"oklch(0.7686 0.1647 70.0804)","accent-foreground":"oklch(0 0 0)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0 0 0)",input:"oklch(0.5555 0 0)",ring:"oklch(0.7853 0.1041 274.7134)",sidebar:"oklch(0.9789 0.0082 121.6272)"},dark:{background:"oklch(0 0 0)",foreground:"oklch(1.0000 0 0)",card:"oklch(0.2455 0.0217 257.2823)","card-foreground":"oklch(1.0000 0 0)",popover:"oklch(0.2455 0.0217 257.2823)","popover-foreground":"oklch(1.0000 0 0)",primary:"oklch(0.6801 0.1583 276.9349)","primary-foreground":"oklch(0 0 0)",secondary:"oklch(0.7845 0.1325 181.9120)","secondary-foreground":"oklch(0 0 0)",muted:"oklch(0.3211 0 0)","muted-foreground":"oklch(0.8452 0 0)",accent:"oklch(0.8790 0.1534 91.6054)","accent-foreground":"oklch(0 0 0)",destructive:"oklch(0.7106 0.1661 22.2162)","destructive-foreground":"oklch(0 0 0)",border:"oklch(0.4459 0 0)",input:"oklch(1.0000 0 0)",ring:"oklch(0.6801 0.1583 276.9349)",sidebar:"oklch(0 0 0)"}},{name:"Solar Dusk",radius:.3,fontBase:"Oxanium, sans-serif",fontCode:"Fira Code, monospace",shadow:"hsl(28 18% 25%)",light:{background:"oklch(0.9885 0.0057 84.5659)",foreground:"oklch(0.3660 0.0251 49.6085)",card:"oklch(0.9686 0.0091 78.2818)","card-foreground":"oklch(0.3660 0.0251 49.6085)",popover:"oklch(0.9686 0.0091 78.2818)","popover-foreground":"oklch(0.3660 0.0251 49.6085)",primary:"oklch(0.5553 0.1455 48.9975)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.8276 0.0752 74.4400)","secondary-foreground":"oklch(0.4444 0.0096 73.6390)",muted:"oklch(0.9363 0.0218 83.2637)","muted-foreground":"oklch(0.5534 0.0116 58.0708)",accent:"oklch(0.9000 0.0500 74.9889)","accent-foreground":"oklch(0.4444 0.0096 73.6390)",destructive:"oklch(0.4437 0.1613 26.8994)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8866 0.0404 89.6994)",input:"oklch(0.8866 0.0404 89.6994)",ring:"oklch(0.5553 0.1455 48.9975)",sidebar:"oklch(0.9363 0.0218 83.2637)"},dark:{background:"oklch(0.2161 0.0061 56.0434)",foreground:"oklch(0.9699 0.0013 106.4238)",card:"oklch(0.2685 0.0063 34.2976)","card-foreground":"oklch(0.9699 0.0013 106.4238)",popover:"oklch(0.2685 0.0063 34.2976)","popover-foreground":"oklch(0.9699 0.0013 106.4238)",primary:"oklch(0.7049 0.1867 47.6044)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.4444 0.0096 73.6390)","secondary-foreground":"oklch(0.9232 0.0026 48.7171)",muted:"oklch(0.2330 0.0073 67.4563)","muted-foreground":"oklch(0.7161 0.0091 56.2590)",accent:"oklch(0.3598 0.0497 229.3202)","accent-foreground":"oklch(0.9232 0.0026 48.7171)",destructive:"oklch(0.5771 0.2152 27.3250)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3741 0.0087 67.5582)",input:"oklch(0.3741 0.0087 67.5582)",ring:"oklch(0.7049 0.1867 47.6044)",sidebar:"oklch(0.2685 0.0063 34.2976)"}},{name:"Starry Night",radius:.5,fontBase:"Libre Baskerville, serif",fontCode:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',shadow:"oklch(0 0 0)",light:{background:"oklch(0.9755 0.0045 258.3245)",foreground:"oklch(0.2558 0.0433 268.0662)",card:"oklch(0.9341 0.0132 251.5628)","card-foreground":"oklch(0.2558 0.0433 268.0662)",popover:"oklch(0.9856 0.0278 98.0540)","popover-foreground":"oklch(0.2558 0.0433 268.0662)",primary:"oklch(0.4815 0.1178 263.3758)","primary-foreground":"oklch(0.9856 0.0278 98.0540)",secondary:"oklch(0.8567 0.1164 81.0092)","secondary-foreground":"oklch(0.2558 0.0433 268.0662)",muted:"oklch(0.9202 0.0080 106.5563)","muted-foreground":"oklch(0.4815 0.1178 263.3758)",accent:"oklch(0.6896 0.0714 234.0387)","accent-foreground":"oklch(0.9856 0.0278 98.0540)",destructive:"oklch(0.2611 0.0376 322.5267)","destructive-foreground":"oklch(0.9856 0.0278 98.0540)",border:"oklch(0.7791 0.0156 251.1926)",input:"oklch(0.6896 0.0714 234.0387)",ring:"oklch(0.8567 0.1164 81.0092)",sidebar:"oklch(0.9341 0.0132 251.5628)"},dark:{background:"oklch(0.2204 0.0198 275.8439)",foreground:"oklch(0.9366 0.0129 266.6974)",card:"oklch(0.2703 0.0407 281.3036)","card-foreground":"oklch(0.9366 0.0129 266.6974)",popover:"oklch(0.2703 0.0407 281.3036)","popover-foreground":"oklch(0.9097 0.1440 95.1120)",primary:"oklch(0.4815 0.1178 263.3758)","primary-foreground":"oklch(0.9097 0.1440 95.1120)",secondary:"oklch(0.9097 0.1440 95.1120)","secondary-foreground":"oklch(0.2703 0.0407 281.3036)",muted:"oklch(0.2424 0.0324 281.0890)","muted-foreground":"oklch(0.6243 0.0412 262.0375)",accent:"oklch(0.8469 0.0524 264.7751)","accent-foreground":"oklch(0.2204 0.0198 275.8439)",destructive:"oklch(0.5280 0.1200 357.1130)","destructive-foreground":"oklch(0.9097 0.1440 95.1120)",border:"oklch(0.3072 0.0287 281.7681)",input:"oklch(0.4815 0.1178 263.3758)",ring:"oklch(0.9097 0.1440 95.1120)",sidebar:"oklch(0.2703 0.0407 281.3036)"}},{name:"Sunset Horizon",radius:.625,fontBase:"Montserrat, sans-serif",fontCode:"Ubuntu Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9856 0.0084 56.3169)",foreground:"oklch(0.3353 0.0132 2.7676)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3353 0.0132 2.7676)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3353 0.0132 2.7676)",primary:"oklch(0.7357 0.1641 34.7091)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9596 0.0200 28.9029)","secondary-foreground":"oklch(0.5587 0.1294 32.7364)",muted:"oklch(0.9656 0.0176 39.4009)","muted-foreground":"oklch(0.5534 0.0116 58.0708)",accent:"oklch(0.8278 0.1131 57.9984)","accent-foreground":"oklch(0.3353 0.0132 2.7676)",destructive:"oklch(0.6122 0.2082 22.2410)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9296 0.0370 38.6868)",input:"oklch(0.9296 0.0370 38.6868)",ring:"oklch(0.7357 0.1641 34.7091)",sidebar:"oklch(0.9656 0.0176 39.4009)"},dark:{background:"oklch(0.2569 0.0169 352.4042)",foreground:"oklch(0.9397 0.0119 51.3156)",card:"oklch(0.3184 0.0176 341.4465)","card-foreground":"oklch(0.9397 0.0119 51.3156)",popover:"oklch(0.3184 0.0176 341.4465)","popover-foreground":"oklch(0.9397 0.0119 51.3156)",primary:"oklch(0.7357 0.1641 34.7091)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.3637 0.0203 342.2664)","secondary-foreground":"oklch(0.9397 0.0119 51.3156)",muted:"oklch(0.2848 0.0159 343.6554)","muted-foreground":"oklch(0.8378 0.0237 52.6346)",accent:"oklch(0.8278 0.1131 57.9984)","accent-foreground":"oklch(0.2569 0.0169 352.4042)",destructive:"oklch(0.6122 0.2082 22.2410)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3637 0.0203 342.2664)",input:"oklch(0.3637 0.0203 342.2664)",ring:"oklch(0.7357 0.1641 34.7091)",sidebar:"oklch(0.2569 0.0169 352.4042)"}},{name:"Supabase",radius:.5,fontBase:"Outfit, sans-serif",fontCode:"monospace",shadow:"#000000",light:{background:"oklch(0.9911 0 0)",foreground:"oklch(0.2046 0 0)",card:"oklch(0.9911 0 0)","card-foreground":"oklch(0.2046 0 0)",popover:"oklch(0.9911 0 0)","popover-foreground":"oklch(0.4386 0 0)",primary:"oklch(0.8348 0.1302 160.9080)","primary-foreground":"oklch(0.2626 0.0147 166.4589)",secondary:"oklch(0.9940 0 0)","secondary-foreground":"oklch(0.2046 0 0)",muted:"oklch(0.9461 0 0)","muted-foreground":"oklch(0.2435 0 0)",accent:"oklch(0.9461 0 0)","accent-foreground":"oklch(0.2435 0 0)",destructive:"oklch(0.5523 0.1927 32.7272)","destructive-foreground":"oklch(0.9934 0.0032 17.2118)",border:"oklch(0.9037 0 0)",input:"oklch(0.9731 0 0)",ring:"oklch(0.8348 0.1302 160.9080)",sidebar:"oklch(0.9911 0 0)"},dark:{background:"oklch(0.1822 0 0)",foreground:"oklch(0.9288 0.0126 255.5078)",card:"oklch(0.2046 0 0)","card-foreground":"oklch(0.9288 0.0126 255.5078)",popover:"oklch(0.2603 0 0)","popover-foreground":"oklch(0.7348 0 0)",primary:"oklch(0.4365 0.1044 156.7556)","primary-foreground":"oklch(0.9213 0.0135 167.1556)",secondary:"oklch(0.2603 0 0)","secondary-foreground":"oklch(0.9851 0 0)",muted:"oklch(0.2393 0 0)","muted-foreground":"oklch(0.7122 0 0)",accent:"oklch(0.3132 0 0)","accent-foreground":"oklch(0.9851 0 0)",destructive:"oklch(0.3123 0.0852 29.7877)","destructive-foreground":"oklch(0.9368 0.0045 34.3092)",border:"oklch(0.2809 0 0)",input:"oklch(0.2603 0 0)",ring:"oklch(0.8003 0.1821 151.7110)",sidebar:"oklch(0.1822 0 0)"}},{name:"T3 Chat",radius:.5,fontBase:"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",fontCode:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',shadow:"oklch(0 0 0)",light:{background:"oklch(0.9754 0.0084 325.6414)",foreground:"oklch(0.3257 0.1161 325.0372)",card:"oklch(0.9754 0.0084 325.6414)","card-foreground":"oklch(0.3257 0.1161 325.0372)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3257 0.1161 325.0372)",primary:"oklch(0.5316 0.1409 355.1999)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.8696 0.0675 334.8991)","secondary-foreground":"oklch(0.4448 0.1341 324.7991)",muted:"oklch(0.9395 0.0260 331.5454)","muted-foreground":"oklch(0.4924 0.1244 324.4523)",accent:"oklch(0.8696 0.0675 334.8991)","accent-foreground":"oklch(0.4448 0.1341 324.7991)",destructive:"oklch(0.5248 0.1368 20.8317)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8568 0.0829 328.9110)",input:"oklch(0.8517 0.0558 336.6002)",ring:"oklch(0.5916 0.2180 0.5844)",sidebar:"oklch(0.9360 0.0288 320.5788)"},dark:{background:"oklch(0.2409 0.0201 307.5346)",foreground:"oklch(0.8398 0.0387 309.5391)",card:"oklch(0.2803 0.0232 307.5413)","card-foreground":"oklch(0.8456 0.0302 341.4597)",popover:"oklch(0.1548 0.0132 338.9015)","popover-foreground":"oklch(0.9647 0.0091 341.8035)",primary:"oklch(0.4607 0.1853 4.0994)","primary-foreground":"oklch(0.8560 0.0618 346.3684)",secondary:"oklch(0.3137 0.0306 310.0610)","secondary-foreground":"oklch(0.8483 0.0382 307.9613)",muted:"oklch(0.2634 0.0219 309.4748)","muted-foreground":"oklch(0.7940 0.0372 307.1032)",accent:"oklch(0.3649 0.0508 308.4911)","accent-foreground":"oklch(0.9647 0.0091 341.8035)",destructive:"oklch(0.2258 0.0524 12.6119)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3286 0.0154 343.4461)",input:"oklch(0.3387 0.0195 332.8347)",ring:"oklch(0.5916 0.2180 0.5844)",sidebar:"oklch(0.1893 0.0163 331.0475)"}},{name:"Tangerine",radius:.75,fontBase:"Inter, sans-serif",fontCode:"JetBrains Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9383 0.0042 236.4993)",foreground:"oklch(0.3211 0 0)",card:"oklch(1.0000 0 0)","card-foreground":"oklch(0.3211 0 0)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.3211 0 0)",primary:"oklch(0.6397 0.1720 36.4421)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9670 0.0029 264.5419)","secondary-foreground":"oklch(0.4461 0.0263 256.8018)",muted:"oklch(0.9846 0.0017 247.8389)","muted-foreground":"oklch(0.5510 0.0234 264.3637)",accent:"oklch(0.9119 0.0222 243.8174)","accent-foreground":"oklch(0.3791 0.1378 265.5222)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9022 0.0052 247.8822)",input:"oklch(0.9700 0.0029 264.5420)",ring:"oklch(0.6397 0.1720 36.4421)",sidebar:"oklch(0.9030 0.0046 258.3257)"},dark:{background:"oklch(0.2598 0.0306 262.6666)",foreground:"oklch(0.9219 0 0)",card:"oklch(0.3106 0.0301 268.6365)","card-foreground":"oklch(0.9219 0 0)",popover:"oklch(0.2900 0.0249 268.3986)","popover-foreground":"oklch(0.9219 0 0)",primary:"oklch(0.6397 0.1720 36.4421)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.3095 0.0266 266.7132)","secondary-foreground":"oklch(0.9219 0 0)",muted:"oklch(0.3095 0.0266 266.7132)","muted-foreground":"oklch(0.7155 0 0)",accent:"oklch(0.3380 0.0589 267.5867)","accent-foreground":"oklch(0.8823 0.0571 254.1284)",destructive:"oklch(0.6368 0.2078 25.3313)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3843 0.0301 269.7337)",input:"oklch(0.3843 0.0301 269.7337)",ring:"oklch(0.6397 0.1720 36.4421)",sidebar:"oklch(0.3100 0.0283 267.7408)"}},{name:"Twitter",radius:1.3,fontBase:"Open Sans, sans-serif",fontCode:"Menlo, monospace",shadow:"rgba(29,161,242,0.15)",light:{background:"oklch(1.0000 0 0)",foreground:"oklch(0.1884 0.0128 248.5103)",card:"oklch(0.9784 0.0011 197.1387)","card-foreground":"oklch(0.1884 0.0128 248.5103)",popover:"oklch(1.0000 0 0)","popover-foreground":"oklch(0.1884 0.0128 248.5103)",primary:"oklch(0.6723 0.1606 244.9955)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.1884 0.0128 248.5103)","secondary-foreground":"oklch(1.0000 0 0)",muted:"oklch(0.9222 0.0013 286.3737)","muted-foreground":"oklch(0.1884 0.0128 248.5103)",accent:"oklch(0.9392 0.0166 250.8453)","accent-foreground":"oklch(0.6723 0.1606 244.9955)",destructive:"oklch(0.6188 0.2376 25.7658)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9317 0.0118 231.6594)",input:"oklch(0.9809 0.0025 228.7836)",ring:"oklch(0.6818 0.1584 243.3540)",sidebar:"oklch(0.9784 0.0011 197.1387)"},dark:{background:"oklch(0 0 0)",foreground:"oklch(0.9328 0.0025 228.7857)",card:"oklch(0.2097 0.0080 274.5332)","card-foreground":"oklch(0.8853 0 0)",popover:"oklch(0 0 0)","popover-foreground":"oklch(0.9328 0.0025 228.7857)",primary:"oklch(0.6692 0.1607 245.0110)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9622 0.0035 219.5331)","secondary-foreground":"oklch(0.1884 0.0128 248.5103)",muted:"oklch(0.2090 0 0)","muted-foreground":"oklch(0.5637 0.0078 247.9662)",accent:"oklch(0.1928 0.0331 242.5459)","accent-foreground":"oklch(0.6692 0.1607 245.0110)",destructive:"oklch(0.6188 0.2376 25.7658)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.2674 0.0047 248.0045)",input:"oklch(0.3020 0.0288 244.8244)",ring:"oklch(0.6818 0.1584 243.3540)",sidebar:"oklch(0.2097 0.0080 274.5332)"}},{name:"Vercel",radius:.5,fontBase:"Geist, sans-serif",fontCode:"Geist Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9900 0 0)",foreground:"oklch(0 0 0)",card:"oklch(1 0 0)","card-foreground":"oklch(0 0 0)",popover:"oklch(0.9900 0 0)","popover-foreground":"oklch(0 0 0)",primary:"oklch(0 0 0)","primary-foreground":"oklch(1 0 0)",secondary:"oklch(0.9400 0 0)","secondary-foreground":"oklch(0 0 0)",muted:"oklch(0.9700 0 0)","muted-foreground":"oklch(0.4400 0 0)",accent:"oklch(0.9400 0 0)","accent-foreground":"oklch(0 0 0)",destructive:"oklch(0.6300 0.1900 23.0300)","destructive-foreground":"oklch(1 0 0)",border:"oklch(0.9200 0 0)",input:"oklch(0.9400 0 0)",ring:"oklch(0 0 0)",sidebar:"oklch(0.9900 0 0)"},dark:{background:"oklch(0 0 0)",foreground:"oklch(1 0 0)",card:"oklch(0.1400 0 0)","card-foreground":"oklch(1 0 0)",popover:"oklch(0.1800 0 0)","popover-foreground":"oklch(1 0 0)",primary:"oklch(1 0 0)","primary-foreground":"oklch(0 0 0)",secondary:"oklch(0.2500 0 0)","secondary-foreground":"oklch(1 0 0)",muted:"oklch(0.2300 0 0)","muted-foreground":"oklch(0.7200 0 0)",accent:"oklch(0.3200 0 0)","accent-foreground":"oklch(1 0 0)",destructive:"oklch(0.6900 0.2000 23.9100)","destructive-foreground":"oklch(0 0 0)",border:"oklch(0.2600 0 0)",input:"oklch(0.3200 0 0)",ring:"oklch(0.7200 0 0)",sidebar:"oklch(0.1800 0 0)"}},{name:"Vintage Paper",radius:.25,fontBase:"Libre Baskerville, serif",fontCode:"IBM Plex Mono, monospace",shadow:"hsl(28 13% 20%)",light:{background:"oklch(0.9582 0.0152 90.2357)",foreground:"oklch(0.3760 0.0225 64.3434)",card:"oklch(0.9914 0.0098 87.4695)","card-foreground":"oklch(0.3760 0.0225 64.3434)",popover:"oklch(0.9914 0.0098 87.4695)","popover-foreground":"oklch(0.3760 0.0225 64.3434)",primary:"oklch(0.6180 0.0778 65.5444)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.8846 0.0302 85.5655)","secondary-foreground":"oklch(0.4313 0.0300 64.9288)",muted:"oklch(0.9239 0.0190 83.0636)","muted-foreground":"oklch(0.5391 0.0387 71.1655)",accent:"oklch(0.8348 0.0426 88.8064)","accent-foreground":"oklch(0.3760 0.0225 64.3434)",destructive:"oklch(0.5471 0.1438 32.9149)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.8606 0.0321 84.5881)",input:"oklch(0.8606 0.0321 84.5881)",ring:"oklch(0.6180 0.0778 65.5444)",sidebar:"oklch(0.9239 0.0190 83.0636)"},dark:{background:"oklch(0.2747 0.0139 57.6523)",foreground:"oklch(0.9239 0.0190 83.0636)",card:"oklch(0.3237 0.0155 59.0603)","card-foreground":"oklch(0.9239 0.0190 83.0636)",popover:"oklch(0.3237 0.0155 59.0603)","popover-foreground":"oklch(0.9239 0.0190 83.0636)",primary:"oklch(0.7264 0.0581 66.6967)","primary-foreground":"oklch(0.2747 0.0139 57.6523)",secondary:"oklch(0.3795 0.0181 57.1280)","secondary-foreground":"oklch(0.9239 0.0190 83.0636)",muted:"oklch(0.2939 0.0125 62.1298)","muted-foreground":"oklch(0.7982 0.0243 82.1078)",accent:"oklch(0.4186 0.0281 56.3404)","accent-foreground":"oklch(0.9239 0.0190 83.0636)",destructive:"oklch(0.5471 0.1438 32.9149)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3795 0.0181 57.1280)",input:"oklch(0.3795 0.0181 57.1280)",ring:"oklch(0.7264 0.0581 66.6967)",sidebar:"oklch(0.2747 0.0139 57.6523)"}},{name:"Violet Bloom",radius:1.4,fontBase:"Plus Jakarta Sans, sans-serif",fontCode:"IBM Plex Mono, monospace",shadow:"hsl(0 0% 0%)",light:{background:"oklch(0.9940 0 0)",foreground:"oklch(0 0 0)",card:"oklch(0.9940 0 0)","card-foreground":"oklch(0 0 0)",popover:"oklch(0.9911 0 0)","popover-foreground":"oklch(0 0 0)",primary:"oklch(0.5393 0.2713 286.7462)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.9540 0.0063 255.4755)","secondary-foreground":"oklch(0.1344 0 0)",muted:"oklch(0.9702 0 0)","muted-foreground":"oklch(0.4386 0 0)",accent:"oklch(0.9393 0.0288 266.3680)","accent-foreground":"oklch(0.5445 0.1903 259.4848)",destructive:"oklch(0.6290 0.1902 23.0704)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.9300 0.0094 286.2156)",input:"oklch(0.9401 0 0)",ring:"oklch(0 0 0)",sidebar:"oklch(0.9777 0.0051 247.8763)"},dark:{background:"oklch(0.2223 0.0060 271.1393)",foreground:"oklch(0.9551 0 0)",card:"oklch(0.2568 0.0076 274.6528)","card-foreground":"oklch(0.9551 0 0)",popover:"oklch(0.2568 0.0076 274.6528)","popover-foreground":"oklch(0.9551 0 0)",primary:"oklch(0.6132 0.2294 291.7437)","primary-foreground":"oklch(1.0000 0 0)",secondary:"oklch(0.2940 0.0130 272.9312)","secondary-foreground":"oklch(0.9551 0 0)",muted:"oklch(0.2940 0.0130 272.9312)","muted-foreground":"oklch(0.7058 0 0)",accent:"oklch(0.2795 0.0368 260.0310)","accent-foreground":"oklch(0.7857 0.1153 246.6596)",destructive:"oklch(0.7106 0.1661 22.2162)","destructive-foreground":"oklch(1.0000 0 0)",border:"oklch(0.3289 0.0092 268.3843)",input:"oklch(0.3289 0.0092 268.3843)",ring:"oklch(0.6132 0.2294 291.7437)",sidebar:"oklch(0.2011 0.0039 286.0396)"}}],an={background:"--kai-color-background",foreground:"--kai-color-foreground",card:"--kai-color-card","card-foreground":"--kai-color-card-foreground",popover:"--kai-color-popover","popover-foreground":"--kai-color-popover-foreground",primary:"--kai-color-primary","primary-foreground":"--kai-color-primary-foreground",secondary:"--kai-color-secondary","secondary-foreground":"--kai-color-secondary-foreground",muted:"--kai-color-muted","muted-foreground":"--kai-color-muted-foreground",accent:"--kai-color-accent","accent-foreground":"--kai-color-accent-foreground",destructive:"--kai-color-destructive","destructive-foreground":"--kai-color-destructive-foreground",border:"--kai-color-border",input:"--kai-color-input",ring:"--kai-color-ring",sidebar:"--kai-color-sidebar"},Ao=e=>"data:image/svg+xml;utf8,"+encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="120" height="80"><rect width="120" height="80" fill="${e}"/></svg>`),cn=[{id:"1",type:"file",filename:"mountain-landscape.jpg",mediaType:"image/jpeg",url:Ao("#3b6ea5")},{id:"2",type:"file",filename:"sunset-beach.png",mediaType:"image/png",url:Ao("#e8915b")},{id:"3",type:"file",filename:"forest-trail.jpg",mediaType:"image/jpeg",url:Ao("#3f7d5b")}],sn=[{id:"1",type:"file",filename:"mountain-landscape.jpg",mediaType:"image/jpeg",url:Ao("#3b6ea5")},{id:"2",type:"file",filename:"architecture.pdf",mediaType:"application/pdf"},{id:"3",type:"file",filename:"podcast.mp3",mediaType:"audio/mpeg"},{id:"4",type:"file",filename:"demo.mp4",mediaType:"video/mp4"},{id:"5",type:"source-document",title:"kitn.dev",filename:"kitn.dev"},{id:"6",type:"file",filename:"data.bin",mediaType:"application/octet-stream"}],dn={sample:{items:sn},named:{images:{items:cn}}},hn=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"})),un=[{label:"Understand the request",content:"The user wants a composable set of web components."},{label:"Design the API",content:"Route 1: variant + flags + events; rich data via properties."},{label:"Build & verify"}],kn=[{label:"Read the diff",content:"Fetched the latest pull request diff from GitHub — 14 files changed, +312 / −87 lines."},{label:"Identify affected areas",content:"Changes touch the auth middleware, the user profile API, and three React components."},{label:"Check for regressions",content:"Running the test suite against the changed modules — 48 tests pass, 0 fail."},{label:"Review security implications",content:"The new session token rotation logic looks correct; no CSRF surface added."},{label:"Write summary"}],gn=[{label:"Parse the query",content:"Tokenised the natural-language query and matched it against the schema."},{label:"Generate SQL",content:"SELECT id, name, created_at FROM users WHERE active = true ORDER BY created_at DESC LIMIT 20;"}],fn={sample:{steps:un},named:{agentPlan:{steps:kn},short:{steps:gn}}},pn=Object.freeze(Object.defineProperty({__proto__:null,default:fn},Symbol.toStringTag,{value:"Module"})),mn={prompt:"Which plan fits your team?",options:[{id:"free",label:"Free",description:"For trying things out",meta:"$0"},{id:"pro",label:"Pro",description:"For growing teams",meta:"$12/seat",recommended:!0,payload:{plan:"pro"}},{id:"enterprise",label:"Enterprise",description:"SSO, audit log, SLA",meta:"Contact us"},{id:"legacy",label:"Legacy",description:"No longer available",disabled:!0}]},bn={prompt:"Pick a workspace template.",submitLabel:"Create workspace",options:[{id:"blank",label:"Blank",description:"Start from scratch",media:{image:"https://placehold.co/80x80/png?text=Blank",imageAlt:"A blank canvas"}},{id:"kanban",label:"Kanban",description:"Board with columns",recommended:!0,media:{image:"https://placehold.co/80x80/png?text=Kanban",imageAlt:"A kanban board"},payload:{template:"kanban"}},{id:"docs",label:"Docs",description:"Wiki-style pages",media:{image:"https://placehold.co/80x80/png?text=Docs",imageAlt:"A document page"}}]},vn={prompt:"How did this answer land?",options:[{id:"great",label:"That solved it",payload:{sentiment:"positive"}},{id:"partly",label:"Partly — needs more",payload:{sentiment:"neutral"}},{id:"no",label:"Not what I meant",payload:{sentiment:"negative"}}],allowOther:{label:"Something else…",placeholder:"Tell me what you expected"}},yn={prompt:"Which plan?",options:[{id:"free",label:"Free",meta:"$0"},{id:"pro",label:"Pro",meta:"$20/mo"}]},xn={options:[]},wn={sample:{data:mn},named:{templates:{data:bn},quickReplies:{data:vn},resolved:{data:yn,resolution:{kind:"action",action:"pro"}},error:{data:xn}}},Sn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Qr=`export function add(a: number, b: number): number {
2
+ return a + b;
3
+ }
4
+
5
+ const result = add(2, 3);
6
+ console.log(result); // 5`,_n="async function fetchUser(id) {\n const res = await fetch(`/api/users/${id}`);\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n return res.json();\n}\n\nfetchUser(42).then((user) => console.log(user.name));",Cn=`def fib(n):
7
+ """Return the nth Fibonacci number."""
8
+ a, b = 0, 1
9
+ for _ in range(n):
10
+ a, b = b, a + b
11
+ return a
12
+
13
+ print([fib(i) for i in range(10)])`,$n=`#!/usr/bin/env bash
14
+ set -euo pipefail
15
+
16
+ for file in src/**/*.ts; do
17
+ echo "Checking \${file}…"
18
+ npx tsc --noEmit --strict "\${file}"
19
+ done
20
+ echo "All files pass type-check."`,Tn=`This is plain text — no syntax highlighting.
21
+ Useful for log output, terminal traces, or
22
+ any content where colour would be distracting.`,En={sample:{code:Qr,language:"ts"},named:{typescript:{code:Qr,language:"ts"},javascript:{code:_n,language:"js"},python:{code:Cn,language:"python"},bash:{code:$n,language:"bash"},plaintext:{code:Tn}}},An=Object.freeze(Object.defineProperty({__proto__:null,default:En},Symbol.toStringTag,{value:"Module"})),On={body:"This will apply 3 pending migrations to production. This cannot be undone.",tone:"warning",actions:[{id:"approve",label:"Run migration",style:"primary",default:!0},{id:"reject",label:"Cancel"}]},Ln={body:"Permanently delete 12 files from the workspace? This cannot be undone.",tone:"danger",actions:[{id:"delete",label:"Delete files",style:"destructive",default:!0},{id:"cancel",label:"Keep them"}]},Mn={heading:"Where should I deploy?",body:"Pick a target environment for this build.",actions:[{id:"staging",label:"Staging",default:!0},{id:"preview",label:"Preview"},{id:"prod",label:"Production",style:"primary"}]},In={body:"Send the drafted email to the customer?",dismissible:!0,actions:[{id:"send",label:"Send",style:"primary",default:!0},{id:"edit",label:"Edit first"}]},Dn={body:"Apply 3 pending migrations to production?",tone:"warning",actions:[{id:"approve",label:"Run migration",style:"primary"},{id:"reject",label:"Cancel"}]},Pn={actions:[]},Rn={sample:{data:On},named:{destructive:{data:Ln},choiceSet:{data:Mn},dismissible:{data:In},resolved:{data:Dn,resolution:{kind:"action",action:"approve"}},errorState:{data:Pn}}},Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"})),Bn={usedTokens:48200,maxTokens:2e5,inputTokens:31e3,outputTokens:17200,reasoningTokens:4200,cacheTokens:8e3,estimatedCost:.42},jn={usedTokens:15e4,maxTokens:2e5,inputTokens:98e3,outputTokens:52e3,estimatedCost:1.24},Fn={usedTokens:184e3,maxTokens:2e5,inputTokens:12e4,outputTokens:64e3,estimatedCost:1.87},Un={usedTokens:11e4,maxTokens:2e5,inputTokens:7e4,outputTokens:4e4,estimatedCost:.65},Hn={sample:{context:Bn},named:{warn:{context:jn},danger:{context:Fn},customThresholds:{context:Un,warnThreshold:.5,dangerThreshold:.75}}},Gn=Object.freeze(Object.defineProperty({__proto__:null,default:Hn},Symbol.toStringTag,{value:"Module"})),et=[{id:"c-1",title:"Web component architecture",scope:{type:"collection"},messageCount:12,lastMessageAt:"2026-06-16T10:00:00.000Z",updatedAt:"2026-06-16T10:00:00.000Z"},{id:"c-2",title:"Theming with CSS custom properties",scope:{type:"collection"},messageCount:7,lastMessageAt:"2026-06-16T08:30:00.000Z",updatedAt:"2026-06-16T08:30:00.000Z"},{id:"c-3",title:"Publishing pipeline review",scope:{type:"collection"},messageCount:5,lastMessageAt:"2026-06-15T14:00:00.000Z",updatedAt:"2026-06-15T14:00:00.000Z"},{id:"c-4",title:"API migration notes",scope:{type:"collection"},messageCount:9,lastMessageAt:"2026-06-14T11:00:00.000Z",updatedAt:"2026-06-14T11:00:00.000Z"},{id:"c-5",title:"Q2 launch plan",scope:{type:"collection"},messageCount:3,lastMessageAt:"2026-06-10T09:00:00.000Z",updatedAt:"2026-06-10T09:00:00.000Z"}],zn=[{id:"g-work",name:"Work",sortOrder:0,createdAt:"2026-06-01T09:00:00.000Z"},{id:"g-personal",name:"Personal",sortOrder:1,createdAt:"2026-06-02T09:00:00.000Z"}],Wn=[{id:"c-1",title:"Q2 launch plan",groupId:"g-work",scope:{type:"collection"},messageCount:12,lastMessageAt:"2026-06-09T14:20:00.000Z",updatedAt:"2026-06-09T14:20:00.000Z"},{id:"c-2",title:"API migration notes",groupId:"g-work",scope:{type:"collection"},messageCount:5,lastMessageAt:"2026-06-08T11:05:00.000Z",updatedAt:"2026-06-08T11:05:00.000Z"},{id:"c-3",title:"Weekend trip ideas",groupId:"g-personal",scope:{type:"collection"},messageCount:8,lastMessageAt:"2026-06-07T19:42:00.000Z",updatedAt:"2026-06-07T19:42:00.000Z"},{id:"c-4",title:"Recipe experiments",groupId:"g-personal",scope:{type:"collection"},messageCount:4,lastMessageAt:"2026-06-06T21:00:00.000Z",updatedAt:"2026-06-06T21:00:00.000Z"}],Vn={sample:{conversations:et},named:{withActive:{conversations:et,activeId:"c-1"},withGroups:{groups:zn,conversations:Wn,activeId:"c-1"},empty:{conversations:[]},declarative:{html:'<kai-conversation id="c-1">Q2 launch plan</kai-conversation><kai-conversation id="c-2">API migration notes</kai-conversation><kai-conversation id="c-3">Weekend trip ideas</kai-conversation>'}}},Kn=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"})),qn={sample:{},named:{withCategories:{categories:["Inaccurate","Not helpful","Unsafe","Other"]}}},Zn=Object.freeze(Object.defineProperty({__proto__:null,default:qn},Symbol.toStringTag,{value:"Module"})),Jn=[{path:"index.html",type:"html"},{path:"about.html",type:"html"},{path:"css/site.css",type:"other",language:"css"},{path:"src/app.ts",type:"other",language:"ts"},{path:"src/lib/format.ts",type:"other",language:"ts"},{path:"src/lib/parse.ts",type:"other",language:"ts"},{path:"assets/logo.svg",type:"image"},{path:"assets/report.pdf",type:"pdf"}],Yn=[{path:"src/components/Button.tsx",type:"other",language:"tsx"},{path:"src/components/Card.tsx",type:"other",language:"tsx"},{path:"src/components/Modal.tsx",type:"other",language:"tsx"},{path:"src/hooks/useTheme.ts",type:"other",language:"ts"},{path:"src/hooks/useDebounce.ts",type:"other",language:"ts"},{path:"src/lib/api.ts",type:"other",language:"ts"},{path:"src/lib/utils.ts",type:"other",language:"ts"},{path:"public/favicon.ico",type:"image"},{path:"public/og-image.png",type:"image"},{path:"docs/getting-started.md",type:"other",language:"md"},{path:"docs/api-reference.md",type:"other",language:"md"}],Xn=[{path:"tokens/colors.json",type:"other",language:"json"},{path:"tokens/typography.json",type:"other",language:"json"},{path:"icons/logo.svg",type:"image"},{path:"icons/avatar-placeholder.svg",type:"image"},{path:"fonts/inter-regular.woff2",type:"other"},{path:"docs/overview.pdf",type:"pdf"},{path:"preview/index.html",type:"html"},{path:"preview/styles.css",type:"other",language:"css"}],Qn=[{path:"src/index.ts",type:"other",language:"ts"},{path:"src/server.ts",type:"other",language:"ts"},{path:"src/routes/auth.ts",type:"other",language:"ts"},{path:"src/routes/users.ts",type:"other",language:"ts"},{path:"src/routes/posts.ts",type:"other",language:"ts"},{path:"src/middleware/logger.ts",type:"other",language:"ts"},{path:"src/middleware/cors.ts",type:"other",language:"ts"},{path:"tests/auth.test.ts",type:"other",language:"ts"},{path:"tests/users.test.ts",type:"other",language:"ts"}],el={sample:{files:Jn,activeFile:"src/app.ts"},named:{nested:{files:Yn,activeFile:"src/components/Button.tsx"},mixedTypes:{files:Xn,activeFile:void 0},collapsed:{files:Qn,defaultExpanded:["src"],activeFile:"src/index.ts"}}},ol=Object.freeze(Object.defineProperty({__proto__:null,default:el},Symbol.toStringTag,{value:"Module"})),rl={type:"object",title:"How did we do?",description:"Two quick questions.",required:["rating","contactOk"],"x-kai-order":["rating","comments","plan","contactOk"],"x-kai-submitLabel":"Send feedback","x-kai-actions":[{id:"skip",label:"Skip",variant:"ghost"}],properties:{rating:{type:"integer",title:"Overall rating",minimum:1,maximum:5,"x-kai-widget":"rating"},comments:{type:"string",title:"Comments",maxLength:500,"x-kai-widget":"textarea","x-kai-placeholder":"What worked, what didn't…"},plan:{type:"string",title:"Your plan",enum:["free","pro","team"],default:"free"},contactOk:{type:"boolean",title:"OK to contact me about this",default:!1}}},tl={type:"object",title:"Every widget","x-kai-submitLabel":"Submit all",properties:{name:{type:"string",title:"Name"},bio:{type:"string",title:"Bio",maxLength:300},email:{type:"string",title:"Email",format:"email"},website:{type:"string",title:"Website",format:"uri"},birthday:{type:"string",title:"Birthday",format:"date"},secret:{type:"string",title:"Password","x-kai-widget":"password"},size:{type:"string",title:"Size",enum:["S","M","L"]},country:{type:"string",title:"Country",enum:["US","UK","DE","FR","JP"]},age:{type:"integer",title:"Age",minimum:0,maximum:120},volume:{type:"integer",title:"Volume",minimum:0,maximum:11,"x-kai-widget":"slider"},stars:{type:"integer",title:"Stars",minimum:1,maximum:5,"x-kai-widget":"rating"},notify:{type:"boolean",title:"Email me updates"},agree:{type:"boolean",title:"I agree","x-kai-widget":"checkbox"},tags:{type:"array",title:"Tags",items:{type:"string"}},topics:{type:"array",title:"Topics",items:{enum:["news","sports","tech"]}},contacts:{type:"array",title:"Contacts",items:{type:"object",properties:{label:{type:"string",title:"Label"},phone:{type:"string",title:"Phone"}}}},address:{type:"object",title:"Address",properties:{street:{type:"string",title:"Street"},city:{type:"string",title:"City"}}}}},nl={type:"object",title:"Create account",required:["username","email","age"],properties:{username:{type:"string",title:"Username",minLength:3,maxLength:12},email:{type:"string",title:"Email",format:"email"},age:{type:"integer",title:"Age",minimum:13,maximum:120}}},ll={type:"object",title:"Book a demo","x-kai-order":["name","optIn"],properties:{name:{type:"string",title:"Full name"},optIn:{type:"boolean",title:"Email me"}}},al={type:"array"},cl={sample:{data:rl},named:{allWidgets:{data:tl},validation:{data:nl},resolved:{data:ll,resolution:{kind:"submit",data:{name:"Jane Cooper",optIn:!0}}},invalidEnvelope:{data:al}}},il=Object.freeze(Object.defineProperty({__proto__:null,default:cl},Symbol.toStringTag,{value:"Module"})),sl={sample:{data:{url:"https://example.com/blog/generative-ui",title:"Generative UI, explained",description:"How agents render typed, themed cards in the chat — across native components and provider iframes.",image:"https://placehold.co/1200x630/6366f1/ffffff/png?text=Generative+UI",imageAlt:"Diagram of the card contract",favicon:"https://example.com/favicon.ico",siteName:"Example Blog",domain:"example.com"}},named:{noImage:{data:{url:"https://docs.example.com/guide",title:"API Guide",description:"Reference for the public endpoints, auth, and rate limits.",siteName:"Example Docs",domain:"docs.example.com"}},bareUrl:{data:{url:"https://example.com/bare"}},invalidLink:{data:{url:"not-a-valid-url"}}}},dl=Object.freeze(Object.defineProperty({__proto__:null,default:sl},Symbol.toStringTag,{value:"Module"})),hl={sample:{}},ul=Object.freeze(Object.defineProperty({__proto__:null,default:hl},Symbol.toStringTag,{value:"Module"})),kl={sample:{models:[{id:"claude-opus",name:"Claude Opus",provider:"Anthropic"},{id:"claude-sonnet",name:"Claude Sonnet",provider:"Anthropic"},{id:"claude-haiku",name:"Claude Haiku",provider:"Anthropic"}]},named:{multiProvider:{models:[{id:"claude-sonnet",name:"Claude Sonnet",provider:"Anthropic"},{id:"claude-haiku",name:"Claude Haiku",provider:"Anthropic"},{id:"gpt-4o",name:"GPT-4o",provider:"OpenAI"},{id:"gpt-4o-mini",name:"GPT-4o mini",provider:"OpenAI"}]},preselected:{models:[{id:"claude-opus",name:"Claude Opus",provider:"Anthropic"},{id:"claude-sonnet",name:"Claude Sonnet",provider:"Anthropic"},{id:"claude-haiku",name:"Claude Haiku",provider:"Anthropic"}]}}},gl=Object.freeze(Object.defineProperty({__proto__:null,default:kl},Symbol.toStringTag,{value:"Module"}));function fr(e,o){const r=`<svg xmlns="http://www.w3.org/2000/svg" width="96" height="96"><rect width="96" height="96" rx="12" fill="${e}"/><text x="48" y="60" font-size="42" text-anchor="middle" fill="white">${o}</text></svg>`;return"data:image/svg+xml;utf8,"+encodeURIComponent(r)}const _o=["Summarize this thread","Draft a reply","Explain like I am five"],fl=[{id:"a1",type:"file",filename:"architecture.png",mediaType:"image/png",url:fr("#7c3aed","◆")},{id:"a2",type:"file",filename:"spec.pdf",mediaType:"application/pdf"}],ot=[{char:"/",kind:"skill",items:[{id:"summarize",label:"Summarize",description:"Summarize the thread",promptText:"Summarize the thread."},{id:"translate",label:"Translate",description:"Translate to English",promptText:"Translate to English."},{id:"rewrite",label:"Rewrite",description:"Rewrite for clarity",promptText:"Rewrite this for clarity."}]},{char:"@",kind:"agent",items:[{id:"documents",label:"Documents",kind:"plugin",group:"Plugins",icon:fr("#2563eb","D"),description:"Create and edit documents",data:{plugin:"documents"}},{id:"code-reviewer",label:"Code Reviewer",group:"Agents",description:"Reviews diffs for bugs",promptText:"Hand this to the Code Reviewer agent."},{id:"researcher",label:"Researcher",group:"Agents",description:"Deep multi-source research"}]}],pl=[{type:"text",text:"Review "},{type:"entity",entity:{kind:"skill",id:"summarize",label:"Summarize",promptText:"Summarize the thread."}},{type:"text",text:" then ask "},{type:"entity",entity:{kind:"agent",id:"code-reviewer",label:"Code Reviewer"}},{type:"text",text:" to use "},{type:"entity",entity:{kind:"plugin",id:"documents",label:"Documents",icon:fr("#2563eb","D"),data:{plugin:"documents"}}},{type:"text",text:"."}],ml={sample:{suggestions:_o},named:{withSuggestions:{suggestions:_o},withAttachments:{attachments:fl,suggestions:_o},loading:{suggestions:_o},withEntityPills:{triggers:ot},prefilledDoc:{triggers:ot,value:pl}}},bl=Object.freeze(Object.defineProperty({__proto__:null,default:ml},Symbol.toStringTag,{value:"Module"})),vl="First I parse the request to understand what the user needs. Then I identify any ambiguities and resolve them against context from earlier in the conversation. Next I plan the steps: break the task into sub-goals, estimate complexity, and order them by dependency. Finally I draft a response, verify it against the original intent, and trim anything redundant before replying.",yl=`**Step 1 — Understand the request.**
23
+ The user asked for a refactor of the authentication module. Key constraints: keep the public API surface identical, add unit tests, and do not introduce new dependencies.
24
+
25
+ **Step 2 — Analyse the current code.**
26
+ The module has three concerns tangled together: token generation, storage, and validation. Separating these into their own functions will make each testable in isolation.
27
+
28
+ **Step 3 — Draft the refactor.**
29
+ \`generateToken(payload)\` → pure function, no side effects.
30
+ \`storeToken(token, store)\` → accepts an injected store interface.
31
+ \`validateToken(token, secret)\` → returns a typed result object.
32
+
33
+ **Step 4 — Verify the plan.**
34
+ All existing callers use the top-level \`auth()\` wrapper, so the internal split is non-breaking. Ready to proceed.`,xl={sample:{text:vl},named:{markdown:{text:yl}}},wl=Object.freeze(Object.defineProperty({__proto__:null,default:xl},Symbol.toStringTag,{value:"Module"})),Sl={mode:"select",selectAll:!0,confirmLabel:"Run selected",tasks:[{id:"lint",label:"Run linter",checked:!0},{id:"test",label:"Run unit tests",checked:!0},{id:"build",label:"Build production bundle"},{id:"deploy",label:"Deploy to staging",description:"Reversible; staging only"}]},_l={confirmLabel:"Apply",allowEmpty:!1,tasks:[{id:"cache",label:"Clear the CDN cache"},{id:"reindex",label:"Rebuild the search index"},{id:"restart",label:"Restart the workers"}]},Cl={confirmLabel:"Request review",min:1,max:2,tasks:[{id:"ana",label:"Ana"},{id:"ben",label:"Ben"},{id:"cat",label:"Cat"},{id:"dan",label:"Dan"}]},$l={selectAll:!0,confirmLabel:"Run cleanup",tasks:[{id:"tmp",label:"Delete temp files",description:"Frees ~2.1 GB; safe to remove"},{id:"logs",label:"Rotate logs",description:"Archives logs older than 30 days"},{id:"orphans",label:"Prune orphaned blobs",description:"Unreferenced uploads only"}]},Tl={tasks:[]},El={confirmLabel:"Export",tasks:[{id:"sum",label:"Executive summary"},{id:"data",label:"Raw data"},{id:"charts",label:"Charts"}]},Al={sample:{data:Sl},named:{requireOne:{data:_l},bounded:{data:Cl},withDescriptions:{data:$l},resolved:{data:El,resolution:{kind:"submit",data:{selected:["sum","charts"]}}},error:{data:Tl}}},Ol=Object.freeze(Object.defineProperty({__proto__:null,default:Al},Symbol.toStringTag,{value:"Module"})),Ll={type:"database_query",state:"output-available",input:{table:"users",limit:10},output:{rows:10,ms:42}},Ml={type:"search",state:"input-available",input:{query:"kitn docs"}},Il={type:"send_email",state:"output-error",input:{to:"team@example.com",subject:"Weekly digest"},errorText:"SMTP connection refused — check your mail server config."},Dl={type:"code_interpreter",state:"input-streaming",input:{language:"python"}},Pl={sample:{tool:Ll},named:{running:{tool:Ml},error:{tool:Il},streaming:{tool:Dl}}},Rl=Object.freeze(Object.defineProperty({__proto__:null,default:Pl},Symbol.toStringTag,{value:"Module"})),rt=Object.assign({"./samples/kai-attachments.ts":hn,"./samples/kai-chain-of-thought.ts":pn,"./samples/kai-choice.ts":Sn,"./samples/kai-code-block.ts":An,"./samples/kai-confirm.ts":Nn,"./samples/kai-context.ts":Gn,"./samples/kai-conversations.ts":Kn,"./samples/kai-feedback-bar.ts":Zn,"./samples/kai-file-tree.ts":ol,"./samples/kai-form.ts":il,"./samples/kai-link-preview.ts":dl,"./samples/kai-loader.ts":ul,"./samples/kai-model-switcher.ts":gl,"./samples/kai-prompt-input.ts":bl,"./samples/kai-reasoning.ts":wl,"./samples/kai-tasks.ts":Ol,"./samples/kai-tool.ts":Rl}),yt={};for(const e in rt){const o=e.split("/").pop().replace(/\.ts$/,""),r=rt[e].default;r!=null&&r.sample&&(yt[o]=r.sample)}function Nl(e){return yt[e]??{}}const Bl=`/* @kitn.ai/ui design system — import after \`@import "tailwindcss"\`.
35
+ Defines the shadcn-style (--color-*) tokens, component keyframes, animation
36
+ utilities, and the .chat-markdown styles. Contains NO global base/reset rules,
37
+ so importing it restyles nothing on its own — a host opts in via the kit's
38
+ components + classes. Rebrand by overriding the --color-* values (optionally
39
+ scoped to a subtree).
40
+ NOTE: This file is Tailwind-v4 source (requires tailwindcss as a peer). For
41
+ bundler-based apps that don't use Tailwind, import @kitn.ai/ui/theme.tokens.css
42
+ instead — it is plain compiled CSS with no toolchain requirements.
43
+
44
+ THIS FILE IS MERGED INTO THE CONSUMER'S TAILWIND BUILD when they @import it,
45
+ so everything at global scope here lands in THEIR namespace. What it changes
46
+ for them (documented in apps/docs/.../guides/theming.mdx, keep the two in sync):
47
+ - \`@custom-variant dark\` below switches their \`dark:\` utilities from
48
+ prefers-color-scheme to the \`.dark\` class.
49
+ - the \`--color-*\` names merge into their @theme (last import wins).
50
+ - \`--radius-sm/md/lg/xl/2xl/3xl\` re-point Tailwind's stock radius scale at
51
+ --radius. The ladder must be COMPLETE: Tailwind's \`--radius-2xl\`/\`-3xl\` are
52
+ separate stock values that read no kit token, so a component using
53
+ \`rounded-2xl\` ignores the radius knob entirely and looks like a bug in the
54
+ knob. \`rounded-full\` is the one radius Tailwind hardcodes
55
+ (\`3.40282e38px\`), so it can never follow it -- which is why the kit adds
56
+ its own \`--radius-pill\` rung for the shapes that are rounded RECTANGLES
57
+ with round caps (badges, chips, switch tracks). See the note above the
58
+ radius block.
59
+ - \`--code-radius\` is the code surface's own corner, deliberately separate
60
+ from the ladder: a code block wants its own value, not the card's.
61
+ - \`--spacing\` re-points Tailwind's whole spacing scale at --kai-density
62
+ (stock Tailwind's 0.25rem is the fallback, so nothing moves until a
63
+ --kai-density token is set). Every numeric spacing utility is
64
+ \`calc(var(--spacing) * N)\`, so this ONE line moves p-*, m-*, gap-*, h-*,
65
+ size-*, space-y-* and the offsets (top-*, -mt-*, translate-*) together:
66
+ density, not merely padding. size-* is the one to think about — icons
67
+ follow it, so a much denser theme needs them re-sized per call site.
68
+ - \`--text-xs/sm/base/lg\` are aliased onto the kit's type scale (defaults
69
+ equal stock Tailwind, so nothing moves until a --kai-text-* token is set).
70
+ Everything else global carries a \`kai-\` prefix so it cannot clash by name:
71
+ every @keyframes is \`kai-<name>\`, the scrollbar utility is \`.kai-scrollbar-thin\`.
72
+ The one unprefixed global class is \`.chat-markdown\` (public; renaming it is a
73
+ breaking change). tests/web-components/theme-globals.test.ts pins the prefix rule
74
+ and that every animation reference in src/ resolves to a keyframe here. */
75
+
76
+ @custom-variant dark (&:is(.dark *));
77
+
78
+ @theme {
79
+ --color-background: var(--kai-color-background, hsl(0 0% 100%));
80
+ --color-foreground: var(--kai-color-foreground, hsl(240 10% 3.9%));
81
+ --color-card: var(--kai-color-card, hsl(0 0% 100%));
82
+ --color-card-foreground: var(--kai-color-card-foreground, hsl(240 10% 3.9%));
83
+ --color-popover: var(--kai-color-popover, hsl(0 0% 100%));
84
+ --color-popover-foreground: var(--kai-color-popover-foreground, hsl(240 10% 3.9%));
85
+ --color-primary: var(--kai-color-primary, hsl(240 5.9% 10%));
86
+ --color-primary-foreground: var(--kai-color-primary-foreground, hsl(0 0% 98%));
87
+ --color-secondary: var(--kai-color-secondary, hsl(240 4.8% 95.9%));
88
+ --color-secondary-foreground: var(--kai-color-secondary-foreground, hsl(240 5.9% 10%));
89
+ --color-muted: var(--kai-color-muted, hsl(240 4.8% 95.9%));
90
+ --color-muted-foreground: var(--kai-color-muted-foreground, hsl(240 3.8% 43%));
91
+ /* Subtle SURFACE — an opaque "muted panel" for things that sit OVER content
92
+ (the prompt input, message bubbles, artifact/card headers, chips). CALCULATED
93
+ from existing tokens — \`--color-muted\` blended 40% onto \`--color-background\`
94
+ — so it tracks the theme (incl. dark) automatically and needs no hand-picked
95
+ value. SOLID (no alpha), so nothing behind it bleeds through. This replaces
96
+ ad-hoc \`bg-muted/40\` surfaces. Retint via the --kai-color-surface knob (or a
97
+ bare value); --color-surface-strong is the stronger step (hover/raised) and
98
+ --color-surface-sunken is recessed BELOW the base surface (wells, or a banner
99
+ that sits behind a card). Sunken is theme-specific: "darker than the card"
100
+ means a LOWER muted% in dark but a HIGHER one in light, so the two scopes
101
+ can't share a number — see the .dark block. */
102
+ --color-surface: var(--kai-color-surface, color-mix(in srgb, var(--color-muted) 40%, var(--color-background)));
103
+ --color-surface-strong: var(--kai-color-surface-strong, color-mix(in srgb, var(--color-muted) 60%, var(--color-background)));
104
+ --color-surface-sunken: var(--kai-color-surface-sunken, color-mix(in srgb, var(--color-muted) 85%, var(--color-background)));
105
+ --color-accent: var(--kai-color-accent, hsl(240 4.8% 95.9%));
106
+ --color-accent-foreground: var(--kai-color-accent-foreground, hsl(240 5.9% 10%));
107
+ --color-destructive: var(--kai-color-destructive, hsl(0 72% 45%));
108
+ --color-destructive-foreground: var(--kai-color-destructive-foreground, hsl(0 0% 98%));
109
+ /* Error TEXT. Its own token rather than a reuse of --color-destructive, because
110
+ a FILL and TEXT need different values in dark: the dark fill is deliberately
111
+ low-lightness so a light foreground reads on it, which leaves it 1.79:1 as
112
+ text on the dark background and 1.64:1 on a dark card — unreadable, and the
113
+ reason eight call sites reached past the palette for \`dark:text-red-400\`.
114
+ This is the text member of the destructive family: light is the destructive
115
+ value exactly (5.81:1 on white, 4.94:1 on the \`destructive/10\` callout tint,
116
+ 5.60:1 on --color-surface), dark is the bright red --color-tool-red already
117
+ flips to (6.36:1 on the dark background, 5.84:1 on a dark card, 5.52:1 on the
118
+ \`destructive/20\` tint). Use text-destructive-text for error copy — never
119
+ text-destructive, which is the fill. Override via --kai-color-destructive-text. */
120
+ --color-destructive-text: var(--kai-color-destructive-text, hsl(0 72% 45%));
121
+ /* Semantic status colors - solid fills with a legible foreground, matched to
122
+ the kit's tool-green / -amber / -blue hues so they read on-brand. Use
123
+ bg-success / bg-warning / bg-info with the matching -foreground for badges,
124
+ banners, and buttons; or text-success / -warning / -info on a soft tint
125
+ (below). destructive (above) is the danger/error member of the same family.
126
+ Light uses darker hues so the color carries a light foreground AND stays
127
+ legible as text on a pale tint; dark (see .dark) flips to brighter hues over
128
+ a near-black foreground. Override via --kai-color-success / -warning / -info
129
+ (+ -foreground). */
130
+ --color-success: var(--kai-color-success, hsl(142 71% 30%));
131
+ --color-success-foreground: var(--kai-color-success-foreground, hsl(0 0% 98%));
132
+ --color-warning: var(--kai-color-warning, hsl(38 92% 30%));
133
+ --color-warning-foreground: var(--kai-color-warning-foreground, hsl(0 0% 98%));
134
+ --color-info: var(--kai-color-info, hsl(217 91% 42%));
135
+ --color-info-foreground: var(--kai-color-info-foreground, hsl(0 0% 98%));
136
+ /* Soft tinted status surfaces - OPAQUE, theme-tracking fills derived as ~14% of
137
+ the status hue blended onto the background. Use these for subtle callouts /
138
+ banners instead of an eyeballed bg-success/10; pair with text-success /
139
+ -warning / -info / -destructive. Derived, so declared in BOTH light and dark
140
+ (a color-mix resolves where it's declared - see the surface tokens above). A
141
+ bare bg- utility for a color-mix token is added at the bottom (see bg-surface). */
142
+ --color-success-soft: var(--kai-color-success-soft, color-mix(in oklab, var(--color-success) 14%, var(--color-background)));
143
+ --color-warning-soft: var(--kai-color-warning-soft, color-mix(in oklab, var(--color-warning) 14%, var(--color-background)));
144
+ --color-info-soft: var(--kai-color-info-soft, color-mix(in oklab, var(--color-info) 14%, var(--color-background)));
145
+ --color-destructive-soft: var(--kai-color-destructive-soft, color-mix(in oklab, var(--color-destructive) 14%, var(--color-background)));
146
+ /* Interaction-state backgrounds - opaque, theme-tracking fills for row/control
147
+ states so consumers stop eyeballing /10 opacities. --color-hover is a subtle
148
+ neutral (a little --color-muted on the background); --color-selected is a
149
+ faint --color-primary tint so a selected row tracks the brand. Use bg-hover /
150
+ bg-selected. Derived, so declared in BOTH light and dark; bare bg- utilities
151
+ added at the bottom. */
152
+ --color-hover: var(--kai-color-hover, color-mix(in oklab, var(--color-muted) 60%, var(--color-background)));
153
+ --color-selected: var(--kai-color-selected, color-mix(in oklab, var(--color-primary) 8%, var(--color-background)));
154
+ /* UNREAD indicator — a dedicated token (owner ruling, 2026-08-26), not a
155
+ reuse of --color-destructive: unread is notification semantics, not
156
+ error, so a consumer re-theming "danger" red must not also move every
157
+ unread dot. Used identically by all three places an unread conversation
158
+ surfaces: the list-row trailing dot (ConversationPanel), the header
159
+ toggle's badge (ChatThread), and Dock's own closed-launcher badge.
160
+ A vivid "messenger red" (Tailwind red-500 territory, the Intercom/iOS
161
+ badge convention) rather than the darker --color-destructive hue: the
162
+ first pass at this token picked a color that read as legible-on-paper
163
+ but visually flat/dark next to the launcher's near-black ring. This one
164
+ value is used in BOTH light and dark (no .dark override below) because
165
+ it independently clears 3:1 (WCAG 1.4.11, non-text) against every real
166
+ surface an unread dot sits on in EITHER mode: light row/card background
167
+ (white) 3.78:1, light Dock-launcher ring (--color-primary, near-black)
168
+ 4.68:1, dark row/card background (near-black) 4.73–4.35:1, dark
169
+ Dock-launcher ring (--color-primary, near-white) 3.62:1. (Measured via
170
+ the WCAG relative-luminance formula against this file's own light/dark
171
+ --color-background/-card/-primary values — see
172
+ .superpowers/sdd/2026-08-26-conversations/rework-report.md Round 4 for
173
+ the worked numbers.) Override via --kai-color-unread; a construct author
174
+ can also set it per-widget through \`theme.unreadColor\` (construct
175
+ vocabulary — see agent-tooling/construct/schema.ts). */
176
+ --color-unread: var(--kai-color-unread, hsl(0 84% 60%));
177
+ /* MARKED text — the fill behind a keyword the app has flagged (the composer's
178
+ \`highlights\` rules, decorated through the CSS Custom Highlight API). This is
179
+ \`<mark>\`, not a selection and not a status: a warm yellow, the convention
180
+ every browser already ships for <mark> and every reader already reads as
181
+ "someone marked this". Deliberately NOT derived from --color-primary — that
182
+ token is a NEUTRAL near-black in light and near-white in dark, so any tint of
183
+ it is grey, which is why the highlight used to be invisible. Also not blue
184
+ (the browser's own ::selection is blue — a highlight must not read as a
185
+ selection), not red (error) and not the skill/agent pill hues (blue/violet).
186
+ OPAQUE, so it composites predictably over whichever field it lands on.
187
+ Override via --kai-color-highlight. Light: near-black text over it is 15.6:1;
188
+ dark: near-white text over it is 6.7:1 — both well clear of WCAG AA. */
189
+ --color-highlight: var(--kai-color-highlight, hsl(45 96% 78%));
190
+ /* SELECTED text — the kit's own ::selection fill, applied inside every kai-*
191
+ shadow root (see src/web-components/styles.css for the scoping rationale). The kit
192
+ owns this because leaving it to the UA meant the browser's blue outranked the
193
+ kit's own deliberate emphasis: a marked keyword was LESS prominent than an
194
+ incidental drag-select. Stays in the cool/blue family the UA trained everyone
195
+ to read as "selected", so it can never be confused with the warm --color-highlight
196
+ mark above; OPAQUE, so a selection over a mark composites cleanly (selection
197
+ paints on top of a custom highlight) instead of muddying into a third colour.
198
+ The FOREGROUND is set too, and that is not cosmetic: without it the selected
199
+ glyph keeps its own colour, and the kit's coloured text — muted text (3.8:1),
200
+ the skill/agent pill hues (3.6:1 / 4.0:1), inline code (4.7:1) — lands at or
201
+ under WCAG AA on this fill. Forcing the foreground token makes the guarantee
202
+ hold for every glyph regardless of what colour it had. Light 13.99:1,
203
+ dark 8.87:1. Override via --kai-color-selection(-foreground). */
204
+ --color-selection: var(--kai-color-selection, hsl(213 94% 87%));
205
+ --color-selection-foreground: var(--kai-color-selection-foreground, hsl(240 10% 3.9%));
206
+ --color-border: var(--kai-color-border, hsl(240 5.9% 90%));
207
+ /* CONTROL boundary — the visible edge of an interactive form control (text
208
+ input, textarea, select, the radio/checkbox ring). WCAG 2.1 SC 1.4.11
209
+ Non-text Contrast requires >=3:1 against the adjacent surface for exactly
210
+ this: a control whose boundary you cannot see is not perceivable. That is
211
+ why this is NOT --color-border: a divider or a card outline is decorative
212
+ and may sit below 3:1, a control's edge may not. Do NOT use border-input
213
+ for list wrappers or panel outlines — use border-border there.
214
+ Contrast is the requirement; a thicker border does not satisfy 1.4.11. */
215
+ --color-input: var(--kai-color-input, hsl(240 5% 53%));
216
+ /* Focus ring — a deliberate blue (not a neutral) so keyboard focus is always
217
+ obvious and on-brand in both modes. Light uses a strong blue; dark uses a
218
+ brighter one for contrast on dark surfaces. Both clear WCAG 2.1 non-text
219
+ contrast (≥3:1) against the kit's backgrounds. Override via --kai-color-ring. */
220
+ --color-ring: var(--kai-color-ring, hsl(217 91% 53%));
221
+ /* Custom scrollbars — thin, rounded, subtle; thumb strengthens on hover. A
222
+ consistent cross-platform look (the kit styles its OWN scroll regions inside
223
+ the shadow root; the track stays transparent so nothing is forced where no
224
+ scrollbar is needed). Override via --kai-color-scrollbar-thumb(-hover). */
225
+ --color-scrollbar-thumb: var(--kai-color-scrollbar-thumb, hsl(240 5% 80%));
226
+ --color-scrollbar-thumb-hover: var(--kai-color-scrollbar-thumb-hover, hsl(240 4% 64%));
227
+ --color-sidebar: var(--kai-color-sidebar, hsl(0 0% 100%));
228
+
229
+ /* Inline \`code\` accent. Blue text on a translucent blue chip. */
230
+ --color-code-foreground: var(--kai-color-code-foreground, hsl(224.3 76.3% 48%));
231
+
232
+ /* Tool/status chip hues. Each chip is hue text over a 15% translucent fill of
233
+ the SAME hue (set in tool.tsx). The bare hue is too light to reach WCAG AA
234
+ (4.5:1) on the faint fill in LIGHT mode, so the light values are darkened;
235
+ dark mode keeps brighter hues for AA on the dark fill. Override via
236
+ --kai-color-tool-* to retheme. */
237
+ --color-tool-blue: var(--kai-color-tool-blue, hsl(217 91% 38%));
238
+ --color-tool-amber: var(--kai-color-tool-amber, hsl(38 92% 28%));
239
+ --color-tool-green: var(--kai-color-tool-green, hsl(142 71% 26%));
240
+ --color-tool-red: var(--kai-color-tool-red, hsl(0 72% 42%));
241
+
242
+ /* Every rung derives from --radius. A rung left at Tailwind's stock value is a
243
+ component that silently ignores the knob (\`rounded-2xl\` did, before these).
244
+ \`rounded-full\` cannot be here: it compiles to a literal 3.40282e38px. */
245
+ /* Elevation is ONE multiplier, not seven tokens: "flat" is one value, and seven
246
+ knobs for one decision invite incoherent themes. Defaults are copied from
247
+ tailwindcss/theme.css, so at strength 1 nothing moves. */
248
+ --shadow-2xs: 0 calc(1px * var(--kai-shadow-strength, 1)) rgb(0 0 0 / 0.05);
249
+ --shadow-xs: 0 calc(1px * var(--kai-shadow-strength, 1)) calc(2px * var(--kai-shadow-strength, 1)) 0 rgb(0 0 0 / 0.05);
250
+ --shadow-sm: 0 calc(1px * var(--kai-shadow-strength, 1)) calc(3px * var(--kai-shadow-strength, 1)) 0 rgb(0 0 0 / 0.1), 0 calc(1px * var(--kai-shadow-strength, 1)) calc(2px * var(--kai-shadow-strength, 1)) -1px rgb(0 0 0 / 0.1);
251
+ /* Bare \`shadow\` reads this key, not \`--shadow-sm\` — 82 call sites, so it is
252
+ declared separately even though the values are equal. */
253
+ --shadow: 0 calc(1px * var(--kai-shadow-strength, 1)) calc(3px * var(--kai-shadow-strength, 1)) 0 rgb(0 0 0 / 0.1), 0 calc(1px * var(--kai-shadow-strength, 1)) calc(2px * var(--kai-shadow-strength, 1)) -1px rgb(0 0 0 / 0.1);
254
+ --shadow-md: 0 calc(4px * var(--kai-shadow-strength, 1)) calc(6px * var(--kai-shadow-strength, 1)) -1px rgb(0 0 0 / 0.1), 0 calc(2px * var(--kai-shadow-strength, 1)) calc(4px * var(--kai-shadow-strength, 1)) -2px rgb(0 0 0 / 0.1);
255
+ --shadow-lg: 0 calc(10px * var(--kai-shadow-strength, 1)) calc(15px * var(--kai-shadow-strength, 1)) -3px rgb(0 0 0 / 0.1), 0 calc(4px * var(--kai-shadow-strength, 1)) calc(6px * var(--kai-shadow-strength, 1)) -4px rgb(0 0 0 / 0.1);
256
+ --shadow-xl: 0 calc(20px * var(--kai-shadow-strength, 1)) calc(25px * var(--kai-shadow-strength, 1)) -5px rgb(0 0 0 / 0.1), 0 calc(8px * var(--kai-shadow-strength, 1)) calc(10px * var(--kai-shadow-strength, 1)) -6px rgb(0 0 0 / 0.1);
257
+ --shadow-2xl: 0 calc(25px * var(--kai-shadow-strength, 1)) calc(50px * var(--kai-shadow-strength, 1)) -12px rgb(0 0 0 / 0.25);
258
+
259
+ /* One knob per weight rung: wanting a heavier semibold rarely means wanting a
260
+ heavier normal. Defaults are Tailwind's. */
261
+ --font-weight-normal: var(--kai-weight-normal, 400);
262
+ --font-weight-medium: var(--kai-weight-medium, 500);
263
+ --font-weight-semibold: var(--kai-weight-semibold, 600);
264
+ --font-weight-bold: var(--kai-weight-bold, 700);
265
+
266
+ --radius: var(--kai-radius, 0.6rem);
267
+ --radius-sm: calc(var(--radius) - 4px);
268
+ --radius-md: calc(var(--radius) - 2px);
269
+ --radius-lg: var(--radius);
270
+ --radius-xl: calc(var(--radius) + 4px);
271
+ --radius-2xl: calc(var(--radius) + 8px);
272
+ --radius-3xl: calc(var(--radius) + 12px);
273
+
274
+ /* \`rounded-full\` cannot read a token, so badges/chips/tracks read this rung and
275
+ Tailwind generates \`rounded-pill\` from the namespace. 4rem not Tailwind's
276
+ 3.4e38: radius clamps to half the box, so 4rem is fully round to 8rem tall
277
+ (covers caller-sized pills), and the editor needs a rem literal it can drag. */
278
+ --radius-pill: var(--kai-radius-pill, 4rem);
279
+
280
+ /* Its own corner rather than a rung: a code block inside a card wants a value of
281
+ its own. The token existed but theme.css never named it, so nothing could set it. */
282
+ --code-radius: var(--kai-code-radius, 0.75rem);
283
+
284
+ /* Every padding, margin, gap and size utility is \`calc(var(--spacing) * N)\`, so
285
+ this one token moves the whole kit's density. Declared here because Tailwind
286
+ emits the @theme block as \`:root,:host{...}\` — a consumer's own
287
+ \`:root{--spacing}\` loses to the sheet's \`:host\` declaration in a shadow root.
288
+ Fallback is Tailwind's default, so nothing moves unless it is set. */
289
+ --spacing: var(--kai-density, 0.25rem);
290
+
291
+ /* Typography scale — ONE scale for the whole kit. Each semantic name
292
+ (text-micro / text-caption / text-meta / text-compact / text-body /
293
+ text-title / text-lg)
294
+ resolves through a namespaced --kai-text-* token, so overriding that token
295
+ on :root restyles the kit globally — it pierces the Shadow DOM via the
296
+ var() fallback, exactly like the --kai-color-* tokens. The bare --text-*
297
+ names stay internal so a host's own --text-* can't collide.
298
+
299
+ Tailwind's OWN scale is re-pointed at the same tokens: in Tailwind v4 the
300
+ \`text-xs\` / \`text-sm\` / \`text-base\` / \`text-lg\` utilities are generated FROM
301
+ --text-xs/sm/base/lg in this very @theme block, so aliasing them makes
302
+ text-xs ≡ text-meta, text-sm ≡ text-body, text-base ≡ text-title and
303
+ text-lg ≡ text-lg. That matters because the vast majority of the kit's call
304
+ sites spell the Tailwind name; without the alias the --kai-text-* knobs
305
+ reached ~12% of them and the "globally" promise in the theming guide was
306
+ false. Defaults are byte-identical to stock Tailwind, so nothing moves
307
+ until a consumer actually sets a --kai-text-* token — including in a
308
+ consumer's own Tailwind build that imports this file, which is the point:
309
+ one scale everywhere, kit and app moving together.
310
+
311
+ Line-heights are UNITLESS RATIOS (Tailwind's own), never fixed rem. A fixed
312
+ leading does not scale: --kai-text-body: 1.25rem under the old 1.45rem
313
+ leading gave 20px text on 23.2px leading — near solid-set — which made the
314
+ themable token unsafe to actually theme.
315
+ (Message/markdown reading size also scales with the \`proseSize\` prop; these
316
+ tokens cover the fixed chrome & controls.) */
317
+ --text-micro: var(--kai-text-micro, 0.625rem); --text-micro--line-height: calc(0.875 / 0.625); /* 10px — badges, pills, uppercase eyebrows */
318
+ --text-caption: var(--kai-text-caption, 0.6875rem); --text-caption--line-height: calc(1 / 0.6875); /* 11px — micro labels, sub-counts, xs code */
319
+ --text-meta: var(--kai-text-meta, 0.75rem); --text-meta--line-height: calc(1 / 0.75); /* 12px — controls, toggles, switchers, captions */
320
+ --text-xs: var(--kai-text-meta, 0.75rem); --text-xs--line-height: calc(1 / 0.75); /* ≡ text-meta */
321
+ --text-compact: var(--kai-text-compact, 0.8125rem); --text-compact--line-height: calc(1.21875 / 0.8125); /* 13px — dense chrome & code: a notch below body */
322
+ --text-body: var(--kai-text-body, 0.875rem); --text-body--line-height: calc(1.25 / 0.875); /* 14px — primary reading text */
323
+ --text-sm: var(--kai-text-body, 0.875rem); --text-sm--line-height: calc(1.25 / 0.875); /* ≡ text-body */
324
+ --text-title: var(--kai-text-title, 1rem); --text-title--line-height: calc(1.5 / 1); /* 16px — emphasis / headers */
325
+ --text-base: var(--kai-text-title, 1rem); --text-base--line-height: calc(1.5 / 1); /* ≡ text-title */
326
+ --text-lg: var(--kai-text-lg, 1.125rem); --text-lg--line-height: calc(1.75 / 1.125); /* 18px — section headings, lg prose */
327
+
328
+ @keyframes kai-typing { 0%,100% { transform: translateY(0); opacity: .5 } 50% { transform: translateY(-2px); opacity: 1 } }
329
+ @keyframes kai-loading-dots { 0%,100% { opacity: 0 } 50% { opacity: 1 } }
330
+ @keyframes kai-wave { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.6) } }
331
+ @keyframes kai-blink { 0%,100% { opacity: 1 } 50% { opacity: 0 } }
332
+ @keyframes kai-text-blink { 0%,100% { color: var(--color-primary) } 50% { color: var(--color-muted-foreground) } }
333
+ @keyframes kai-bounce-dots { 0%,100% { transform: scale(.8); opacity: .5 } 50% { transform: scale(1.2); opacity: 1 } }
334
+ @keyframes kai-thin-pulse { 0%,100% { transform: scale(.95); opacity: .8 } 50% { transform: scale(1.05); opacity: .4 } }
335
+ @keyframes kai-pulse-dot { 0%,100% { transform: scale(1); opacity: .8 } 50% { transform: scale(1.5); opacity: 1 } }
336
+ @keyframes kai-shimmer-text { 0% { background-position: 150% center } 100% { background-position: -150% center } }
337
+ @keyframes kai-wave-bars { 0%,100% { transform: scaleY(1); opacity: .5 } 50% { transform: scaleY(.6); opacity: 1 } }
338
+ @keyframes kai-shimmer { 0% { background-position: 200% 50% } 100% { background-position: -200% 50% } }
339
+ @keyframes kai-spinner-fade { 0% { opacity: 0 } 100% { opacity: 1 } }
340
+ }
341
+
342
+ .dark {
343
+ --color-background: var(--kai-color-background, hsl(50 2% 9%));
344
+ --color-foreground: var(--kai-color-foreground, hsl(0 0% 98%));
345
+ --color-card: var(--kai-color-card, hsl(45 4% 12%));
346
+ --color-card-foreground: var(--kai-color-card-foreground, hsl(0 0% 98%));
347
+ --color-popover: var(--kai-color-popover, hsl(45 4% 12%));
348
+ --color-popover-foreground: var(--kai-color-popover-foreground, hsl(0 0% 98%));
349
+ --color-primary: var(--kai-color-primary, hsl(0 0% 98%));
350
+ --color-primary-foreground: var(--kai-color-primary-foreground, hsl(45 4% 11%));
351
+ --color-secondary: var(--kai-color-secondary, hsl(45 4% 17%));
352
+ --color-secondary-foreground: var(--kai-color-secondary-foreground, hsl(0 0% 98%));
353
+ --color-muted: var(--kai-color-muted, hsl(45 4% 17%));
354
+ --color-muted-foreground: var(--kai-color-muted-foreground, hsl(45 4% 64%));
355
+ /* Re-declared in the dark scope so the color-mix recomputes with the DARK
356
+ muted/background (a derived token is computed where it's declared, not where
357
+ it's used — see the light --color-surface for the full note). */
358
+ --color-surface: var(--kai-color-surface, color-mix(in srgb, var(--color-muted) 40%, var(--color-background)));
359
+ --color-surface-strong: var(--kai-color-surface-strong, color-mix(in srgb, var(--color-muted) 60%, var(--color-background)));
360
+ /* Sunken: in dark a LOWER muted% is darker (blends toward the dark background). */
361
+ --color-surface-sunken: var(--kai-color-surface-sunken, color-mix(in srgb, var(--color-muted) 18%, var(--color-background)));
362
+ --color-accent: var(--kai-color-accent, hsl(45 4% 17%));
363
+ --color-accent-foreground: var(--kai-color-accent-foreground, hsl(0 0% 98%));
364
+ --color-destructive: var(--kai-color-destructive, hsl(0 62.8% 30.6%));
365
+ --color-destructive-foreground: var(--kai-color-destructive-foreground, hsl(0 0% 98%));
366
+ /* Error TEXT — dark. The brighter red for the reason in the light block: the
367
+ dark --color-destructive fill is a fill, and 1.79:1 as text. */
368
+ --color-destructive-text: var(--kai-color-destructive-text, hsl(0 84% 70%));
369
+ /* Semantic status colors - dark mode flips to the brighter tool-* dark hues
370
+ (matching the chip values) carried over a near-black foreground, so the color
371
+ both reads as text on a dark soft tint AND backs a legible foreground. See
372
+ the light @theme note. */
373
+ --color-success: var(--kai-color-success, hsl(142 71% 45%));
374
+ --color-success-foreground: var(--kai-color-success-foreground, hsl(45 4% 11%));
375
+ --color-warning: var(--kai-color-warning, hsl(38 92% 50%));
376
+ --color-warning-foreground: var(--kai-color-warning-foreground, hsl(45 4% 11%));
377
+ --color-info: var(--kai-color-info, hsl(217 91% 70%));
378
+ --color-info-foreground: var(--kai-color-info-foreground, hsl(45 4% 11%));
379
+ /* Soft status surfaces + interaction states - re-declared so each color-mix
380
+ recomputes with the DARK hues/background (a derived token resolves where it's
381
+ declared; see the light block for the full note). */
382
+ --color-success-soft: var(--kai-color-success-soft, color-mix(in oklab, var(--color-success) 14%, var(--color-background)));
383
+ --color-warning-soft: var(--kai-color-warning-soft, color-mix(in oklab, var(--color-warning) 14%, var(--color-background)));
384
+ --color-info-soft: var(--kai-color-info-soft, color-mix(in oklab, var(--color-info) 14%, var(--color-background)));
385
+ --color-destructive-soft: var(--kai-color-destructive-soft, color-mix(in oklab, var(--color-destructive) 14%, var(--color-background)));
386
+ --color-hover: var(--kai-color-hover, color-mix(in oklab, var(--color-muted) 60%, var(--color-background)));
387
+ --color-selected: var(--kai-color-selected, color-mix(in oklab, var(--color-primary) 8%, var(--color-background)));
388
+ /* Unread indicator — dark. Same value as light (see the light block for the
389
+ full contrast note): one vivid red independently clears 3:1 against both
390
+ modes' real surfaces, so there is nothing to flip here. Still redeclared
391
+ for override symmetry with every other semantic color in this file. */
392
+ --color-unread: var(--kai-color-unread, hsl(0 84% 60%));
393
+ /* Marked text — dark. A deep warm amber rather than the light yellow: a pale
394
+ highlighter on a near-black field would blow out and force the text to flip
395
+ colour. See the light block for the full note. */
396
+ --color-highlight: var(--kai-color-highlight, hsl(40 75% 26%));
397
+ /* Selected text — dark. A deep blue rather than the light one, for the same
398
+ reason the mark darkens. See the light block for the full note. */
399
+ --color-selection: var(--kai-color-selection, hsl(217 60% 32%));
400
+ --color-selection-foreground: var(--kai-color-selection-foreground, hsl(0 0% 98%));
401
+ --color-border: var(--kai-color-border, hsl(45 4% 17%));
402
+ /* Control boundary — see the light block. Lifted to clear 3:1 (SC 1.4.11)
403
+ against the dark background and card surfaces. */
404
+ --color-input: var(--kai-color-input, hsl(45 4% 48%));
405
+ --color-ring: var(--kai-color-ring, hsl(217 91% 68%));
406
+ --color-scrollbar-thumb: var(--kai-color-scrollbar-thumb, hsl(45 3% 30%));
407
+ --color-scrollbar-thumb-hover: var(--kai-color-scrollbar-thumb-hover, hsl(45 3% 42%));
408
+ --color-sidebar: var(--kai-color-sidebar, hsl(50 2% 7%));
409
+ --color-code-foreground: var(--kai-color-code-foreground, hsl(213 94% 78%));
410
+
411
+ /* Tool/status chip hues — dark mode. Brighter hues reach AA on the dark fill. */
412
+ --color-tool-blue: var(--kai-color-tool-blue, hsl(217 91% 70%));
413
+ --color-tool-amber: var(--kai-color-tool-amber, hsl(38 92% 50%));
414
+ --color-tool-green: var(--kai-color-tool-green, hsl(142 71% 45%));
415
+ --color-tool-red: var(--kai-color-tool-red, hsl(0 84% 70%));
416
+ }
417
+
418
+ /* Self-contained markdown styling — replaces the typography plugin's \`prose\`.
419
+ Keyed on --color-* tokens so it themes with the rest of the kit. */
420
+ .chat-markdown { color: var(--color-foreground); line-height: 1.6; }
421
+ .chat-markdown > div:first-child > :first-child { margin-top: 0; }
422
+ .chat-markdown > div:last-child > :last-child { margin-bottom: 0; }
423
+ .chat-markdown p { margin: 0 0 0.75em; }
424
+ .chat-markdown p:last-child { margin-bottom: 0; }
425
+ .chat-markdown h1, .chat-markdown h2, .chat-markdown h3, .chat-markdown h4 {
426
+ margin: 1.2em 0 0.5em; font-weight: 600; line-height: 1.3; color: var(--color-foreground);
427
+ }
428
+ .chat-markdown h1 { font-size: 1.4em; } .chat-markdown h2 { font-size: 1.25em; }
429
+ .chat-markdown h3 { font-size: 1.1em; } .chat-markdown h4 { font-size: 1em; }
430
+ .chat-markdown ul, .chat-markdown ol { margin: 0 0 0.75em; padding-left: 1.4em; }
431
+ .chat-markdown li { margin: 0.2em 0; }
432
+ .chat-markdown ul { list-style: disc; } .chat-markdown ol { list-style: decimal; }
433
+ .chat-markdown a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; }
434
+ .chat-markdown strong { font-weight: 600; color: var(--color-foreground); }
435
+ .chat-markdown em { font-style: italic; }
436
+ .chat-markdown blockquote {
437
+ margin: 0 0 0.75em; padding-left: 0.9em; border-left: 2px solid var(--color-border);
438
+ color: var(--color-muted-foreground);
439
+ }
440
+ .chat-markdown hr { margin: 1em 0; border: 0; border-top: 1px solid var(--color-border); }
441
+ .chat-markdown code:not(pre code) {
442
+ background: color-mix(in oklab, var(--color-code-foreground) 15%, transparent);
443
+ color: var(--color-code-foreground);
444
+ border-radius: 4px; padding: 0.1em 0.35em; font-size: 0.875em;
445
+ font-family: var(--kai-font-code, ui-monospace, "SF Mono", Menlo, monospace);
446
+ }
447
+ .chat-markdown table { width: 100%; border-collapse: collapse; margin: 0 0 0.75em; font-size: 0.9em; }
448
+ .chat-markdown th, .chat-markdown td { border: 1px solid var(--color-border); padding: 0.4em 0.6em; text-align: left; }
449
+ .chat-markdown th { font-weight: 600; background: color-mix(in oklab, var(--color-muted-foreground) 8%, transparent); }
450
+
451
+ /* Lifted surfaces (cards, popovers, dropdowns). Hand-written so the shadow COLOR
452
+ stays a token; geometry scaled by --kai-shadow-strength like the rungs, or the
453
+ Elevation control would do nothing here. Focus rings are deliberately not scaled:
454
+ a flat theme still has to show where focus is. */
455
+ .kai-elevation {
456
+ box-shadow:
457
+ 0 calc(4px * var(--kai-shadow-strength, 1)) calc(12px * var(--kai-shadow-strength, 1)) -2px color-mix(in oklab, var(--kai-shadow-color, oklch(0 0 0)) 14%, transparent),
458
+ 0 calc(2px * var(--kai-shadow-strength, 1)) calc(6px * var(--kai-shadow-strength, 1)) -2px color-mix(in oklab, var(--kai-shadow-color, oklch(0 0 0)) 10%, transparent);
459
+ }
460
+ .kai-elevation-sm {
461
+ box-shadow: 0 calc(1px * var(--kai-shadow-strength, 1)) calc(2px * var(--kai-shadow-strength, 1)) 0 color-mix(in oklab, var(--kai-shadow-color, oklch(0 0 0)) 8%, transparent);
462
+ }
463
+
464
+ /* Cross-platform thin scrollbar utility (Firefox + WebKit). Used by ScrollArea
465
+ and any scroll region in the SolidJS-component build (web components also get
466
+ this globally inside their shadow root — see src/web-components/styles.css).
467
+ \`kai-\` prefixed because this file is merged into a consumer's Tailwind build
468
+ and \`.scrollbar-thin\` is a name they may well own (no consumer-facing doc ever
469
+ named the old unprefixed class, so no alias is kept). */
470
+ .kai-scrollbar-thin {
471
+ scrollbar-width: thin;
472
+ scrollbar-color: var(--color-scrollbar-thumb) transparent;
473
+ }
474
+ .kai-scrollbar-thin::-webkit-scrollbar { width: 8px; height: 8px; }
475
+ .kai-scrollbar-thin::-webkit-scrollbar-track { background: transparent; }
476
+ .kai-scrollbar-thin::-webkit-scrollbar-thumb {
477
+ background-color: var(--color-scrollbar-thumb);
478
+ border-radius: 9999px;
479
+ border: 2px solid transparent;
480
+ background-clip: padding-box;
481
+ }
482
+ .kai-scrollbar-thin::-webkit-scrollbar-thumb:hover { background-color: var(--color-scrollbar-thumb-hover); }
483
+ .kai-scrollbar-thin::-webkit-scrollbar-corner { background: transparent; }
484
+
485
+ /* Surface utilities — \`bg-surface\` / \`bg-surface-strong\` paint the opaque,
486
+ theme-derived surface tokens (see --color-surface above). Defined explicitly
487
+ because a color-mix-valued @theme token does NOT emit a bare \`bg-\` utility on
488
+ its own (only opacity variants). Use these for panels that sit OVER content
489
+ instead of \`bg-muted/NN\`. */
490
+ @utility bg-surface {
491
+ background-color: var(--color-surface);
492
+ }
493
+ @utility bg-surface-strong {
494
+ background-color: var(--color-surface-strong);
495
+ }
496
+ @utility bg-surface-sunken {
497
+ background-color: var(--color-surface-sunken);
498
+ }
499
+
500
+ /* Soft-status + interaction-state utilities. Same reason as bg-surface above: a
501
+ color-mix-valued @theme token does NOT emit a bare \`bg-\` utility on its own, so
502
+ bg-success-soft / bg-warning-soft / bg-info-soft / bg-destructive-soft and
503
+ bg-hover / bg-selected are declared here. (The SOLID tokens - success / warning
504
+ / info + their -foreground - are plain hsl values, so bg-success / text-success
505
+ etc. ARE auto-generated by @theme and need no explicit utility.) */
506
+ @utility bg-success-soft {
507
+ background-color: var(--color-success-soft);
508
+ }
509
+ @utility bg-warning-soft {
510
+ background-color: var(--color-warning-soft);
511
+ }
512
+ @utility bg-info-soft {
513
+ background-color: var(--color-info-soft);
514
+ }
515
+ @utility bg-destructive-soft {
516
+ background-color: var(--color-destructive-soft);
517
+ }
518
+ @utility bg-hover {
519
+ background-color: var(--color-hover);
520
+ }
521
+ @utility bg-selected {
522
+ background-color: var(--color-selected);
523
+ }
524
+ `,dr=[{name:"Surfaces",tokens:[{token:"--kai-color-background",label:"Background",hint:"App / chat surface"},{token:"--kai-color-foreground",label:"Foreground",hint:"Default text"},{token:"--kai-color-card",label:"Card",hint:"Bubbles, panels, cards"},{token:"--kai-color-card-foreground",label:"Card text",hint:"Text on cards"},{token:"--kai-color-popover",label:"Popover",hint:"Menus & popovers"},{token:"--kai-color-popover-foreground",label:"Popover text",hint:"Text in popovers"},{token:"--kai-color-sidebar",label:"Sidebar",hint:"Conversation sidebar"},{token:"--kai-color-surface",label:"Surface",hint:"Composer, chips, card headers"},{token:"--kai-color-surface-strong",label:"Surface strong",hint:"Raised / hover step of surface"},{token:"--kai-color-surface-sunken",label:"Surface sunken",hint:"Wells, recessed below surface"}]},{name:"Brand & actions",tokens:[{token:"--kai-color-primary",label:"Primary",hint:"Buttons, accents, send"},{token:"--kai-color-primary-foreground",label:"On primary",hint:"Text on primary"},{token:"--kai-color-ring",label:"Focus ring",hint:"Keyboard-focus outline"},{token:"--kai-color-accent",label:"Accent",hint:"Hover / accent surface"},{token:"--kai-color-accent-foreground",label:"On accent",hint:"Text on accent"},{token:"--kai-color-secondary",label:"Secondary",hint:"Secondary surface"},{token:"--kai-color-secondary-foreground",label:"On secondary",hint:"Text on secondary"}]},{name:"Muted text",tokens:[{token:"--kai-color-muted",label:"Muted",hint:"Subtle fills"},{token:"--kai-color-muted-foreground",label:"Muted text",hint:"Secondary text"}]},{name:"Inputs & borders",tokens:[{token:"--kai-color-border",label:"Border",hint:"Dividers & card outlines"},{token:"--kai-color-input",label:"Input",hint:"Control edge: inputs, selects, checks"}]},{name:"Status",tokens:[{token:"--kai-color-destructive",label:"Destructive",hint:"Danger / delete"},{token:"--kai-color-destructive-foreground",label:"On destructive",hint:"Text on danger"},{token:"--kai-color-destructive-text",label:"Destructive text",hint:"Error text — legible in both modes"},{token:"--kai-color-destructive-soft",label:"Destructive soft",hint:"Tinted danger callout"},{token:"--kai-color-success",label:"Success",hint:"Done / confirmed"},{token:"--kai-color-success-foreground",label:"On success",hint:"Text on success"},{token:"--kai-color-success-soft",label:"Success soft",hint:"Tinted success callout"},{token:"--kai-color-warning",label:"Warning",hint:"Caution / unsendable"},{token:"--kai-color-warning-foreground",label:"On warning",hint:"Text on warning"},{token:"--kai-color-warning-soft",label:"Warning soft",hint:"Tinted warning callout"},{token:"--kai-color-info",label:"Info",hint:"Informational toasts"},{token:"--kai-color-info-foreground",label:"On info",hint:"Text on info"},{token:"--kai-color-info-soft",label:"Info soft",hint:"Tinted info callout"}]},{name:"Interaction",tokens:[{token:"--kai-color-hover",label:"Hover",hint:"Row / control hover fill"},{token:"--kai-color-selected",label:"Selected",hint:"Selected row fill"},{token:"--kai-color-unread",label:"Unread",hint:"Unread dot & badge"},{token:"--kai-color-highlight",label:"Highlight",hint:"Marked keywords (composer highlights)"},{token:"--kai-color-selection",label:"Selection",hint:"Selected-text background"},{token:"--kai-color-selection-foreground",label:"On selection",hint:"Selected-text colour"}]},{name:"Code & tools",tokens:[{token:"--kai-color-code-foreground",label:"Code",hint:"Inline code accent"},{token:"--kai-color-tool-blue",label:"Tool blue",hint:"Tool / status chip"},{token:"--kai-color-tool-amber",label:"Tool amber",hint:"Tool / status chip"},{token:"--kai-color-tool-green",label:"Tool green",hint:"Tool / status chip"},{token:"--kai-color-tool-red",label:"Tool red",hint:"Tool / status chip"}]},{name:"Scrollbar",tokens:[{token:"--kai-color-scrollbar-thumb",label:"Scrollbar",hint:"Scrollbar thumb"},{token:"--kai-color-scrollbar-thumb-hover",label:"Scrollbar hover",hint:"Thumb on hover"}]}],pr=dr.flatMap(e=>e.tokens),Ce=[{token:"--kai-text-micro",label:"Micro",hint:"Badges, pills, eyebrows",min:.5,max:1},{token:"--kai-text-caption",label:"Caption",hint:"Sub-counts, xs code",min:.5,max:1.125},{token:"--kai-text-meta",label:"Meta",hint:"Controls, toggles, switchers",min:.5,max:1.25},{token:"--kai-text-compact",label:"Compact",hint:"Dense chrome & code",min:.5625,max:1.3125},{token:"--kai-text-body",label:"Body (default)",hint:"Primary reading text",min:.625,max:1.375},{token:"--kai-text-title",label:"Title",hint:"Emphasis & headers",min:.75,max:1.625},{token:"--kai-text-lg",label:"Large",hint:"Section headings, lg prose",min:.875,max:2}];function jl(e){const o=new Set;for(const r of e.matchAll(/var\(\s*(--kai-[a-zA-Z0-9-]+)\s*[,)]/g))o.add(r[1]);return o}function Fl(e){const o=e.search(/^\.dark\s*\{/m);let r=-1;o!==-1&&(r=e.indexOf(`
525
+ }`,o),r===-1&&(r=e.length));const t=new Map,l=new Map,a=/var\(\s*(--kai-[a-zA-Z0-9-]+)\s*,/g;let c;for(;c=a.exec(e);){let s=a.lastIndex,m=1;for(;s<e.length&&m>0;){const D=e[s];D==="("?m++:D===")"&&m--,m>0&&s++}const f=e.slice(a.lastIndex,s).trim(),A=o!==-1&&c.index>o&&c.index<r?l:t;A.has(c[1])||A.set(c[1],f)}const n=new Map;for(const s of jl(e)){const m=t.get(s),f=l.get(s);if(m===void 0&&f===void 0)throw new Error(`theme.css declares ${s} with no fallback value; the theme editor cannot seed it.`);n.set(s,{light:m??f,dark:f??m})}return n}function fo(e){const o=e.match(/^([\d.]+)rem$/);if(!o)throw new Error(`Expected a rem value, got "${e}"`);return parseFloat(o[1])}var Ul=b('<div class="fixed inset-0 z-[300] flex items-center justify-center p-4"><div class="absolute inset-0 bg-black/40"aria-hidden=true></div><div class="relative z-10 flex max-h-[85vh] w-full flex-col overflow-hidden rounded-xl border border-line bg-surface shadow-2xl"><div class="flex items-center justify-between border-b border-line px-4 py-3"><h2 class="text-sm font-bold text-ink"></h2><button type=button aria-label=Close class="flex size-7 cursor-pointer appearance-none items-center justify-center rounded-md border-0 bg-transparent text-ink-3 transition-colors hover:bg-ink/5 hover:text-ink"></button></div><div class="min-h-0 flex-1 overflow-auto p-4">'),Hl=b('<div class="flex items-center gap-2.5 text-sm"><span class="w-[5.5rem] shrink-0 whitespace-nowrap text-ink-2"></span><input type=range class="min-w-0 flex-1"style=accent-color:var(--kai-ink-3)><input type=number class="w-16 shrink-0 rounded-md border border-line bg-surface px-1.5 py-1 text-right text-xs tabular-nums text-ink [appearance:textfield] [&amp;::-webkit-inner-spin-button]:appearance-none [&amp;::-webkit-outer-spin-button]:appearance-none"><span class="w-7 shrink-0 text-xs text-ink-3">'),Gl=b('<span class="rounded-md border border-line px-2 py-1 text-xs text-ink-2"aria-live=polite>Custom — '),zl=b('<div class="flex items-start gap-2.5 text-sm"><span class="w-[5.5rem] shrink-0 whitespace-nowrap pt-1 text-ink-2"></span><div class="flex min-w-0 flex-wrap gap-1"><div class="flex overflow-hidden rounded-md border border-line">'),Wl=b('<button type=button class="px-2 py-1 text-xs transition-colors">'),Vl=b('<div class="flex flex-col gap-1"><div class="flex items-baseline justify-between gap-2"><span class="shrink-0 text-sm font-medium text-ink"></span><span class="truncate text-[11px] text-ink/55"></span></div><div class="flex items-center gap-2.5"><input type=range step=0.0625 class="min-w-0 flex-1"style=accent-color:var(--kai-ink-3)><input type=number step=0.0625 class="w-16 shrink-0 rounded-md border border-line bg-surface px-1.5 py-1 text-right text-xs tabular-nums text-ink [appearance:textfield] [&amp;::-webkit-inner-spin-button]:appearance-none [&amp;::-webkit-outer-spin-button]:appearance-none"><span class="w-[5.5rem] shrink-0 text-right text-xs tabular-nums text-ink-3">rem · '),Kl=b("<span class=text-[11px] style=color:var(--kai-color-muted-foreground)>"),ql=b('<div class="flex flex-col gap-1.5 rounded-xl border p-3"style=border-color:var(--kai-color-border)><div class="flex items-baseline justify-between gap-2"><span class="text-xs font-semibold"style=color:var(--kai-color-foreground)></span></div><div>'),Zl=b('<div class="px-2.5 pb-1 pt-2 text-[11px] font-semibold uppercase tracking-wide text-ink/45">Your themes'),Jl=b('<div class="mx-2.5 my-1 border-t border-line/60">'),Yl=b('<div class="px-2.5 py-3 text-center text-xs text-ink/55">No themes match.'),Xl=b('<div class="absolute left-0 top-full z-50 mt-1 w-[300px] max-w-[80vw] overflow-hidden rounded-lg border border-line bg-surface shadow-xl"><div class="border-b border-line p-2"><input placeholder="Search themes…"class="w-full rounded-md border border-line bg-surface px-2 py-1 text-sm text-ink"></div><div class="max-h-[60vh] overflow-auto">'),Ql=b('<button type=button class="flex items-center gap-1.5 rounded-md bg-ink px-2.5 py-1 text-xs font-semibold text-bg transition-opacity hover:opacity-90">Apply'),ea=b('<button type=button class="flex items-center gap-1.5 rounded-md border border-line px-2.5 py-1 text-xs text-ink-2 transition-colors hover:bg-ink/5 hover:text-ink">Cancel'),oa=b('<p class="border-b border-line/60 px-3 py-2 text-xs text-ink/55">A global HSL adjustment is active — swatches show base colors. Reset it in <span class="font-medium text-ink-2">Other</span> to edit them directly.'),tt=b("<option> (theme)"),ra=b('<div class="px-3 py-3"><label class="mb-2.5 flex flex-col gap-1"><span class="text-sm font-medium text-ink">Body font</span><select class="rounded-md border border-line bg-surface px-2 py-1.5 text-sm text-ink"></select></label><label class="mb-2.5 flex flex-col gap-1"><span class="text-sm font-medium text-ink">Code font</span><select class="rounded-md border border-line bg-surface px-2 py-1.5 text-sm text-ink">'),nt=b('<button type=button class="rounded px-1.5 py-0.5 text-[11px] text-ink-3 transition-colors hover:bg-ink/5 hover:text-ink">Reset'),ta=b('<div class="border-t border-line/60 px-3 py-3"><div class="mb-1 flex items-center justify-between gap-2"><span class="text-xs font-semibold uppercase tracking-wide text-ink-2">Type size</span></div><p class="mb-3 text-xs text-ink/55">One semantic scale for the whole kit — each rung is a <span class="font-mono text-ink-2">--kai-text-*</span> token, so moving it moves every component that sits on that rung. Body is the medium rung the rest step off.</p><div class="flex flex-col gap-3"><div class="mt-3 flex items-center gap-2.5 text-sm"><span class="w-[5.5rem] shrink-0 whitespace-nowrap text-ink-2">Weights</span><div class="flex min-w-0 flex-wrap gap-2">'),na=b('<div class="px-3 py-3"><div class="mb-2 flex items-center justify-between gap-2"><span class="text-xs font-semibold uppercase tracking-wide text-ink-2">HSL adjustment</span></div><p class="mb-2.5 text-xs text-ink/55">Nudge the whole palette at once. Layered over your colors — reset to leave them untouched.</p><div class="flex flex-col gap-2.5">'),la=b('<div class="border-t border-line/60 px-3 py-3"><div class="mb-2 text-xs font-semibold uppercase tracking-wide text-ink-2">Shape</div><div class="flex flex-col gap-2.5">'),aa=b('<div class="border-t border-line/60 px-3 py-3"><div class="mb-2 text-xs font-semibold uppercase tracking-wide text-ink-2">Shadow</div><div class="flex flex-col gap-2.5"><label class="flex items-center gap-2.5"><input type=color class="h-7 w-7 shrink-0 cursor-pointer rounded-md border border-line bg-transparent p-0"aria-label="Shadow color"><span class="flex min-w-0 flex-col leading-tight"><span class="truncate text-sm font-medium text-ink">Color'),ca=b('<div class="absolute inset-0 z-20 grid place-items-center text-sm text-ink/55">Loading preview…'),ia=b(`<div class="relative min-w-0 flex-1 overflow-auto"><div class="sticky top-0 z-10 flex items-center gap-1 border-b px-4 py-2"style=border-color:var(--kai-color-border);background:var(--kai-color-background)></div><div class="mx-auto max-w-4xl p-4"><div><p class="mb-2 text-xs"style=color:var(--kai-color-muted-foreground)>A full chat — messages, model switcher, context meter, suggestions, the composer, and the base font.</p><div class="h-[460px] overflow-hidden rounded-xl border"style=border-color:var(--kai-color-border)><kai-chat style=display:block;height:100%></kai-chat></div></div><div><p class="mb-3 text-xs"style=color:var(--kai-color-muted-foreground)>Generative-UI cards — surfaces + elevation, primary / secondary / destructive buttons, accents, and inputs.</p><div class="grid gap-4 lg:grid-cols-2"></div></div><div class="flex flex-col gap-4"><p class=text-xs style=color:var(--kai-color-muted-foreground)>A cross-section of the kit — see your colors, fonts, and shadow across the components you'll actually ship.</p><div class="grid gap-3 sm:grid-cols-2"></div><div class="flex flex-col gap-2 rounded-xl border p-3"style=border-color:var(--kai-color-border);color:var(--kai-color-foreground)><div class="flex flex-wrap items-center gap-2"><span class="mr-1 text-xs"style=color:var(--kai-color-muted-foreground)>Status:</span></div><div class="flex flex-wrap items-center gap-2"><span class="mr-1 text-xs"style=color:var(--kai-color-muted-foreground)>Interaction:</span><span data-token=--kai-color-hover class="rounded-md px-2.5 py-1 text-xs"style=background:var(--kai-color-hover)>Hover</span><span data-token=--kai-color-selected class="rounded-md px-2.5 py-1 text-xs"style=background:var(--kai-color-selected)>Selected</span><span class="flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs"style="background:var(--kai-color-card);border:1px solid var(--kai-color-border)">Unread <span data-token=--kai-color-unread class="size-2 rounded-full"style=background:var(--kai-color-unread)></span></span><span class="rounded-md px-2.5 py-1 text-xs font-medium"style=background:var(--kai-color-secondary);color:var(--kai-color-secondary-foreground)>Secondary</span><span class="rounded-md px-2.5 py-1 text-xs font-medium"style="background:var(--kai-color-popover);color:var(--kai-color-popover-foreground);border:1px solid var(--kai-color-border)">Popover</span><code class="rounded px-1.5 py-0.5 text-xs"style="color:var(--kai-color-code-foreground);background:color-mix(in oklab, var(--kai-color-code-foreground) 15%, transparent)">inline code</code><span class="ml-1 flex items-center gap-1"><span class="h-3.5 w-3.5 rounded-full"style=background:var(--kai-color-tool-blue)></span><span class="h-3.5 w-3.5 rounded-full"style=background:var(--kai-color-tool-amber)></span><span class="h-3.5 w-3.5 rounded-full"style=background:var(--kai-color-tool-green)></span><span class="h-3.5 w-3.5 rounded-full"style=background:var(--kai-color-tool-red)></span></span></div><div class="flex flex-wrap items-center gap-2 rounded-lg p-2"style="background:var(--kai-color-card);border:1px solid var(--kai-color-border)"><span class="mr-1 text-xs"style=color:var(--kai-color-muted-foreground)>Surfaces on card:</span><span data-token=--kai-color-surface class="rounded-md px-2.5 py-1 text-xs"style=background:var(--kai-color-surface)>Surface</span><span data-token=--kai-color-surface-strong class="rounded-md px-2.5 py-1 text-xs"style=background:var(--kai-color-surface-strong)>Strong</span><span data-token=--kai-color-surface-sunken class="rounded-md px-2.5 py-1 text-xs"style=background:var(--kai-color-surface-sunken)>Sunken</span><span class="rounded-md px-2.5 py-1 text-xs"style="background:var(--kai-color-card);border:1px solid var(--kai-color-input)">Input edge`,!0,!1,!1),sa=b('<p class="mb-3 text-xs text-ink-2">Drop this on <code class="rounded bg-ink/5 px-1">:root</code> to rebrand every <code class="rounded bg-ink/5 px-1">kai-*</code> element; the <code class="rounded bg-ink/5 px-1">.dark</code> block holds the dark overrides.'),da=b('<div class=relative><button type=button class="absolute right-2 top-2 flex items-center gap-1.5 rounded-md border border-line bg-surface px-2.5 py-1 text-xs font-medium text-ink transition-colors hover:bg-ink/5"></button><pre class="max-h-[62vh] overflow-auto rounded-lg border border-line bg-surface-2 p-3 pr-20 font-mono text-xs leading-relaxed text-ink"><code>'),ha=b('<p class="mb-2 text-xs text-ink-2">Paste a <code class="rounded bg-ink/5 px-1">:root</code> / <code class="rounded bg-ink/5 px-1">.dark</code> block of <code class="rounded bg-ink/5 px-1">--kai-color-*</code> tokens. Any CSS color works, including one with alpha.'),ua=b(`<textarea placeholder=":root {
526
+ --kai-color-primary: #7c3aed;
527
+ }
528
+ .dark {
529
+ --kai-color-primary: #a78bfa;
530
+ }"class="h-48 w-full resize-none rounded-md border border-line bg-surface p-2 font-mono text-xs text-ink">`),ka=b('<p class="mt-1 text-xs text-red-500">'),ga=b('<div class="mt-3 flex justify-end gap-2"><button type=button class="rounded-md border border-line px-3 py-1.5 text-xs text-ink-2 transition-colors hover:bg-ink/5">Cancel</button><button type=button class="rounded-md bg-ink px-3 py-1.5 text-xs font-semibold text-bg transition-opacity hover:opacity-90">Apply'),fa=b('<label class="flex flex-col gap-1"><span class="text-sm font-medium text-ink">Theme name</span><input autofocus placeholder="e.g. Acme brand"class="w-full rounded-md border border-line bg-surface px-2.5 py-1.5 text-sm text-ink">'),pa=b('<p class="mt-1.5 text-xs text-ink-3">A saved theme named “<!>” will be overwritten.'),ma=b('<p class="mt-1.5 text-xs text-red-500">'),ba=b('<p class="mt-2 text-xs text-ink-3">Stored in your browser (localStorage), so it sticks around on this device.'),va=b('<div class="mt-4 flex justify-end gap-2"><button type=button class="rounded-md border border-line px-3 py-1.5 text-xs text-ink-2 transition-colors hover:bg-ink/5">Cancel</button><button type=button class="rounded-md bg-ink px-3 py-1.5 text-xs font-semibold text-bg transition-opacity hover:opacity-90">Save theme'),ya=b('<div class="theme-studio-root not-content flex flex-col overflow-hidden border-line bg-surface"><div class="flex items-center justify-between gap-3 border-b border-line px-3 py-2.5"><div class=relative><button type=button aria-haspopup=listbox class="flex w-[260px] max-w-[60vw] items-center gap-2 rounded-md border border-line px-2.5 py-1.5 text-sm text-ink transition-colors hover:bg-ink/5"><span class="flex items-center gap-0.5"></span><span class="truncate font-medium"></span></button></div><div class="flex items-center gap-1.5"><div class="inline-flex overflow-hidden rounded-md border border-line text-xs"><button type=button class="px-2.5 py-1 transition-colors">Light</button><button type=button class="px-2.5 py-1 transition-colors">Dark</button></div><button type=button class="flex items-center gap-1.5 rounded-md border border-line px-2.5 py-1 text-xs text-ink-2 transition-colors hover:bg-ink/5"><span class="hidden sm:inline">Import</span></button><button type=button class="flex items-center gap-1.5 rounded-md border border-line px-2.5 py-1 text-xs text-ink-2 transition-colors hover:bg-ink/5"><span class="hidden sm:inline">Reset</span></button><button type=button class="flex items-center gap-1.5 rounded-md border border-line px-2.5 py-1 text-xs text-ink-2 transition-colors hover:bg-ink/5"><span class="hidden sm:inline">Save</span></button><button type=button class="flex items-center gap-1.5 rounded-md border border-line px-2.5 py-1 text-xs font-medium text-ink transition-colors hover:bg-ink/5">Code</button></div></div><div class="flex min-h-0 flex-1 flex-col lg:flex-row"><div class="flex w-full flex-col overflow-auto"><div class="sticky top-0 z-10 flex items-center gap-1 border-b border-line bg-surface px-3 py-2">'),Yo=b('<span class="size-2.5 rounded-full ring-1 ring-black/10">'),xa=b('<div class="group flex w-full items-center gap-2 px-2.5 py-1.5 text-sm transition-colors hover:bg-ink/5"><button type=button class="flex min-w-0 flex-1 items-center gap-2 text-left"><span class="flex items-center gap-0.5"></span><span class=truncate></span></button><button type=button class="shrink-0 rounded p-0.5 text-ink-3 transition-colors hover:bg-ink/10 hover:text-ink">'),wa=b('<button type=button class="flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-sm transition-colors hover:bg-ink/5"><span class="flex items-center gap-0.5"></span><span class=truncate>'),Sa=b('<button type=button class="rounded-md px-2.5 py-1 text-sm transition-colors">'),_a=b('<div class="flex flex-col gap-2 px-3 pb-3 pt-0.5">'),Ca=b('<div class="border-b border-line/60 last:border-0"><button type=button class="flex w-full items-center gap-2 px-3 py-2.5 text-left transition-colors hover:bg-ink/[0.03]"><span class="text-xs font-semibold uppercase tracking-wide text-ink-2"></span><span class="ml-auto flex items-center gap-1">'),$a=b('<span class="size-3 rounded-full ring-1 ring-black/10">'),Ta=b('<label class="flex items-center gap-2.5"><input type=color class="h-7 w-7 shrink-0 cursor-pointer rounded-md border border-line bg-transparent p-0"><span class="flex min-w-0 flex-col leading-tight"><span class="truncate text-sm font-medium text-ink"></span><span class="truncate text-xs text-ink/55">'),Xo=b("<option>"),Ea=b('<label class="flex items-center gap-1 text-xs text-ink-2"><span></span><select class="rounded-md border border-line bg-surface px-1 py-0.5 text-xs text-ink">'),Aa=b('<button type=button class="rounded-md px-3 py-1 text-sm transition-colors">'),Oa=b('<span class="rounded-md px-2.5 py-1 text-xs font-medium capitalize">'),La=b('<span class="rounded-md px-2.5 py-1 text-xs font-medium capitalize"> soft'),Ma=b(`<p class="text-sm text-ink-2">Delete the saved theme <strong class=text-ink>“<!>”</strong>? This can't be undone.`),Ia=b('<div class="mt-4 flex justify-end gap-2"><button type=button class="rounded-md border border-line px-3 py-1.5 text-xs text-ink-2 transition-colors hover:bg-ink/5">Cancel</button><button type=button class="rounded-md bg-red-600 px-3 py-1.5 text-xs font-semibold text-white transition-opacity hover:opacity-90">Delete');function Da(e,o,r){const t=Nl(o),l=document.createElement(o);l.style.display="block",l.setAttribute("theme",r),typeof t.html=="string"&&(l.innerHTML=t.html),e.replaceChildren(l),typeof customElements<"u"&&customElements.upgrade(l);for(const[a,c]of Object.entries(t))a==="html"||a==="previewHeight"||(l[a]=c);return l}const Pa=[{tag:"kai-confirm",label:"Confirm",note:"Approve / decline — primary + secondary"},{tag:"kai-choice",label:"Choice",note:"Pick one — accent marks the pick"},{tag:"kai-tasks",label:"Tasks",note:"Selectable plan — checkboxes + confirm"},{tag:"kai-form",label:"Form",note:"Inputs, selects, submit"},{tag:"kai-link-preview",label:"Link preview",note:"Surface + muted text"}],Ra=[{tag:"kai-model-switcher",label:"Model switcher"},{tag:"kai-context",label:"Context meter"},{tag:"kai-tool",label:"Tool call",note:"Tool hues"},{tag:"kai-reasoning",label:"Reasoning"},{tag:"kai-chain-of-thought",label:"Chain of thought"},{tag:"kai-code-block",label:"Code block",note:"Code font + accent"},{tag:"kai-loader",label:"Loader",note:"Primary"},{tag:"kai-feedback-bar",label:"Feedback bar"},{tag:"kai-prompt-input",label:"Composer",note:"Base font + input"},{tag:"kai-conversations",label:"Conversations",h:"15rem"},{tag:"kai-file-tree",label:"File tree",h:"15rem"},{tag:"kai-attachments",label:"Attachments"}];function Co(e){return g(P0,{get children(){var o=Ul(),r=o.firstChild,t=r.nextSibling,l=t.firstChild,a=l.firstChild,c=a.nextSibling,n=l.nextSibling;return ar(r,"click",e.onClose,!0),h(a,()=>e.title),ar(c,"click",e.onClose,!0),h(c,g(sr,{class:"size-4"})),h(n,()=>e.children),O(s=>{var m=!!e.wide,f=!e.wide;return m!==s.e&&t.classList.toggle("max-w-3xl",s.e=m),f!==s.t&&t.classList.toggle("max-w-lg",s.t=f),s},{e:void 0,t:void 0}),o}})}const Na=Fl(Bl),Ee=(e,o)=>{const r=Na.get(e);if(!r)throw new Error(`theme.css declares no ${e}; the theme editor lists a knob that would theme nothing.`);return r[o]},Qo=fo(Ee("--kai-radius","light")),$o=fo(Ee("--kai-density","light")),er=fo(Ee("--kai-radius-pill","light")),or=fo(Ee("--kai-code-radius","light")),rr=Number.parseFloat(Ee("--kai-shadow-strength","light")),De=[{name:"normal",token:"--kai-weight-normal",label:"Normal"},{name:"medium",token:"--kai-weight-medium",label:"Medium"},{name:"semibold",token:"--kai-weight-semibold",label:"Semibold"},{name:"bold",token:"--kai-weight-bold",label:"Bold"}],xt=e=>Number.parseFloat(Ee(`--kai-weight-${e}`,"light")),lt=()=>Object.fromEntries(De.map(e=>[e.name,xt(e.name)])),Ba=[100,200,300,400,500,600,700,800,900],ja=[{label:"Very tight",value:.1875},{label:"Tight",value:.21875},{label:"Default",value:.25},{label:"Loose",value:.28125},{label:"Very loose",value:.3125}],Fa=[{label:"Flat",value:0},{label:"Subtle",value:.5},{label:"Default",value:1},{label:"Raised",value:1.5},{label:"Dramatic",value:2}],Ie=e=>fo(Ee(e.token,"light")),Oo=()=>Object.fromEntries(Ce.map(e=>[e.token,Ie(e)])),at=e=>({...Oo(),...e??{}}),Ua=e=>`${Math.round(e*16*100)/100}px`;let To;function We(e){if(/^#[0-9a-fA-F]{6}$/.test(e))return e.toLowerCase();To??(To=document.createElement("canvas")),To.width=To.height=1;const o=To.getContext("2d");if(!o)return"#000000";o.clearRect(0,0,1,1),o.fillStyle="#000000",o.fillStyle=e,o.fillRect(0,0,1,1);const[r,t,l]=o.getImageData(0,0,1,1).data;return"#"+[r,t,l].map(a=>a.toString(16).padStart(2,"0")).join("")}const Eo={h:0,s:1,l:1},wt=e=>e.h===0&&e.s===1&&e.l===1;function Ha(e){const o=parseInt(e.slice(1),16),r=(o>>16&255)/255,t=(o>>8&255)/255,l=(o&255)/255,a=Math.max(r,t,l),c=Math.min(r,t,l),n=a-c;let s=0;n&&(a===r?s=(t-l)/n%6:a===t?s=(l-r)/n+2:s=(r-t)/n+4,s=s*60,s<0&&(s+=360));const m=(a+c)/2,f=n===0?0:n/(1-Math.abs(2*m-1));return[s,f,m]}function Ga(e,o,r){e=(e%360+360)%360,o=Math.min(1,Math.max(0,o)),r=Math.min(1,Math.max(0,r));const t=(1-Math.abs(2*r-1))*o,l=t*(1-Math.abs(e/60%2-1)),a=r-t/2;let c=0,n=0,s=0;e<60?(c=t,n=l):e<120?(c=l,n=t):e<180?(n=t,s=l):e<240?(n=l,s=t):e<300?(c=l,s=t):(c=t,s=l);const m=f=>Math.round((f+a)*255).toString(16).padStart(2,"0");return"#"+m(c)+m(n)+m(s)}function za(e,o){const r=/^#[0-9a-fA-F]{6}$/.test(e)?e:We(e),[t,l,a]=Ha(r);return Ga(t+o.h,l*o.s,a*o.l)}function ct(e,o){return wt(o)?e:Object.fromEntries(Object.entries(e).map(([r,t])=>[r,za(t,o)]))}let Me;function hr(e){return/^#[0-9a-fA-F]{6}$/.test(e)?e.toLowerCase():/color-mix\(|var\(/.test(e)?(Me||(Me=document.createElement("div"),Me.style.cssText="position:absolute;width:0;height:0;pointer-events:none;visibility:hidden",document.body.appendChild(Me)),Me.style.backgroundColor="",Me.style.backgroundColor=e,We(getComputedStyle(Me).backgroundColor)):We(e)}function Ge(e,o={}){const r={},t=new Set,l=a=>{if(r[a])return r[a];if(o[a])return r[a]=hr(o[a]);if(t.has(a))return"#000000";t.add(a);const c=Ee(a,e).replace(/var\(\s*--color-([a-z0-9-]+)\s*\)/g,(n,s)=>l(`--kai-color-${s}`));return r[a]=hr(c),t.delete(a),r[a]};for(const a of pr)l(a.token);return r}const Wa=["Default",...gr.map(e=>e.name)];function Va(e){const o=gr.find(r=>r.name===e);return o?[o.light.primary,o.light.accent,o.light.secondary,o.light.background,o.light.foreground].map(We):["#18181b","#f4f4f5","#e5e7eb","#ffffff","#3f3f46"]}const tr=[{label:"System default",value:""},{label:"Inter",value:"Inter, sans-serif"},{label:"Geist",value:"Geist, sans-serif"},{label:"Roboto",value:"Roboto, sans-serif"},{label:"Open Sans",value:'"Open Sans", sans-serif'},{label:"Lato",value:"Lato, sans-serif"},{label:"Poppins",value:"Poppins, sans-serif"},{label:"Montserrat",value:"Montserrat, sans-serif"},{label:"Nunito",value:"Nunito, sans-serif"},{label:"Work Sans",value:'"Work Sans", sans-serif'},{label:"Space Grotesk",value:'"Space Grotesk", sans-serif'},{label:"DM Sans",value:'"DM Sans", sans-serif'},{label:"Merriweather (serif)",value:"Merriweather, serif"},{label:"Lora (serif)",value:"Lora, serif"},{label:"Playfair Display (serif)",value:'"Playfair Display", serif'},{label:"Libre Baskerville (serif)",value:'"Libre Baskerville", serif'},{label:"Source Serif 4 (serif)",value:'"Source Serif 4", serif'},{label:"Architects Daughter (hand)",value:'"Architects Daughter", cursive'}],nr=[{label:"System mono",value:""},{label:"JetBrains Mono",value:'"JetBrains Mono", monospace'},{label:"Fira Code",value:'"Fira Code", monospace'},{label:"IBM Plex Mono",value:'"IBM Plex Mono", monospace'},{label:"Source Code Pro",value:'"Source Code Pro", monospace'},{label:"Space Mono",value:'"Space Mono", monospace'},{label:"Geist Mono",value:'"Geist Mono", monospace'}];function _e(e){if(!e)return;const o=e.split(",")[0].trim().replace(/["']/g,"");if(!o||/^(ui-|system-ui|-apple|sans-serif|serif|monospace|cursive|Arial|Helvetica|Georgia|Times|Menlo|Consolas|Courier|Monaco)/i.test(o))return;const r="kai-gf-"+o.replace(/\s+/g,"-").toLowerCase();if(typeof document>"u"||document.getElementById(r))return;const t=document.createElement("link");t.id=r,t.rel="stylesheet",t.href=`https://fonts.googleapis.com/css2?family=${encodeURIComponent(o)}:wght@400;500;600;700&display=swap`,document.head.appendChild(t)}function it(e,o){if(!e)return"";const r=e.split(",")[0].trim().replace(/["']/g,"").toLowerCase(),t=o.find(l=>l.value.split(",")[0].trim().replace(/["']/g,"").toLowerCase()===r);return t?t.value:""}const Ka=[{id:"m1",role:"user",parts:[{type:"text",text:"Can I match the chat to my brand?"}]},{id:"m2",role:"assistant",parts:[{type:"text",text:"Every color is a `--kai-color-*` token, so a handful of overrides reskins the whole UI. Set `--kai-color-primary` for your accent and `--kai-color-ring` for the focus outline, then drag the radius. Watch it all reskin live."}],actions:["copy","like"]}],qa="Drop these tokens on `:root` to rebrand every `kai-*` element, or scope them to one wrapper to theme a single section. Same block, light and dark — `:root` for light, `.dark` for the dark overrides.";let Za=0;const st=()=>`s${++Za}`,Ja=()=>typeof window<"u"&&(new URLSearchParams(window.location.search).has("embed")||window.parent!==window),Ya=()=>typeof window<"u"&&new URLSearchParams(window.location.search).has("embed");function dt(e,o,r){const t=[` --kai-radius: ${r.radius}rem;`,` --kai-density: ${r.density}rem;`,` --kai-radius-pill: ${r.pill}rem;`,` --kai-code-radius: ${r.codeRadius}rem;`,` --kai-shadow-strength: ${r.elevation};`,...De.map(a=>` ${a.token}: ${r.weights[a.name]};`),...Ce.map(a=>` ${a.token}: ${r.text[a.token]??Ie(a)}rem;`),r.fontBase?` --kai-font-base: ${r.fontBase};`:"",r.fontCode?` --kai-font-code: ${r.fontCode};`:"",r.tracking?` --kai-tracking: ${r.tracking}em;`:"",r.shadow?` --kai-shadow-color: ${r.shadow};`:""].filter(Boolean).join(`
531
+ `),l=(a,c="")=>[...pr.map(n=>` ${n.token}: ${a[n.token]};`),c].filter(Boolean).join(`
532
+ `);return`:root {
533
+ ${l(e,t)}
534
+ }
535
+
536
+ .dark {
537
+ ${l(o)}
538
+ }`}function Xa(e){const o=A=>{var Z;const D=new RegExp(`${A}\\s*\\{([^}]*)\\}`),F=((Z=e.match(D))==null?void 0:Z[1])??"",z={};for(const ne of F.matchAll(/(--kai-color-[a-z-]+)\s*:\s*([^;]+);/g))z[ne[1]]=ne[2].trim();return z},r=o(":root"),t=o("\\.dark"),l=/--kai-(?:text-[a-z-]+|density|radius-pill|code-radius|weight-[a-z]+|shadow-strength)\s*:\s*[\d.]+/.test(e);if(!Object.keys(r).length&&!Object.keys(t).length&&!l)return null;const a=e.match(/--kai-radius\s*:\s*([\d.]+)rem/),c=e.match(/--kai-density\s*:\s*([\d.]+)rem/),n=e.match(/--kai-radius-pill\s*:\s*([\d.]+)rem/),s=e.match(/--kai-code-radius\s*:\s*([\d.]+)rem/),m=e.match(/--kai-shadow-strength\s*:\s*([\d.]+)/),f={};for(const A of De){const D=e.match(new RegExp(`${A.token}\\s*:\\s*(\\d+)`));D&&(f[A.name]=Number.parseInt(D[1],10))}const k={};for(const A of e.matchAll(/(--kai-text-[a-z-]+)\s*:\s*([\d.]+)rem/g))Ce.some(D=>D.token===A[1])&&(k[A[1]]=parseFloat(A[2]));return{light:r,dark:t,radius:a?parseFloat(a[1]):void 0,density:c?parseFloat(c[1]):void 0,pill:n?parseFloat(n[1]):void 0,codeRadius:s?parseFloat(s[1]):void 0,elevation:m?parseFloat(m[1]):void 0,weights:Object.keys(f).length?f:void 0,text:k}}function Qa(){let e,o,r;const t=[],l=(i,u)=>{i&&t.push({el:i,tag:u})},[a,c]=L(!1),[n,s]=L("light"),[m,f]=L({}),[k,A]=L({}),[D,F]=L(Qo),[z,Z]=L($o),[ne,re]=L(er),[Q,te]=L(or),[de,Re]=L(rr),[Ke,po]=L(lt()),[he,qe]=L(""),[ue,Ze]=L(""),[Ne,Je]=L(0),[Be,je]=L(Oo()),[Ye,Xe]=L("#000000"),[Fe,Ue]=L({...Eo}),[ke,W]=L("Default"),mr="kai-theme-studio-presets",[pe,br]=L([]),vr=i=>{br(i);try{localStorage.setItem(mr,JSON.stringify(i))}catch{}},[mo,St]=L("chat"),[Qe,_t]=L("colors"),[yr,xr]=L(!1),[wr,jo]=L(!1),[Sr,eo]=L(!1),[_r,oo]=L(!1),[ro,Cr]=L(""),[$r,Fo]=L(""),[Tr,to]=L(null),[Er,Ar]=L(""),[Or,bo]=L(""),[no,lo]=L(!1),[ao,Uo]=L("");let vo;const Lr=()=>Wa.filter(i=>i.toLowerCase().includes(ao().toLowerCase())),[Ho,Ct]=L(Object.fromEntries(dr.map((i,u)=>[i.name,u<2]))),$t=i=>Ct(u=>({...u,[i]:!u[i]})),Go=()=>n()==="light"?m():k(),Mr=()=>({radius:D(),density:z(),pill:ne(),codeRadius:Q(),elevation:de(),weights:Ke(),fontBase:he(),fontCode:ue(),tracking:Ne(),shadow:Ye(),text:Be()}),co=()=>ct(m(),Fe()),io=()=>ct(k(),Fe()),Tt=()=>n()==="light"?co():io(),Ir=()=>!wt(Fe()),yo=Ja(),me=Ya(),[Et,At]=L(!me),zo=()=>{const i={},u=Be();for(const p of Ce)i[p.token]=`${u[p.token]??Ie(p)}rem`;i["--kai-density"]=`${z()}rem`,i["--kai-radius-pill"]=`${ne()}rem`,i["--kai-code-radius"]=`${Q()}rem`,i["--kai-shadow-strength"]=String(de());const y=Ke();for(const p of De)i[p.token]=String(y[p.name]);Ne()&&(i["--kai-tracking"]=`${Ne()}em`),i["--kai-shadow-color"]=Ye();const E={};return he()&&(E["--kai-font-base"]=he()),ue()&&(E["--kai-font-code"]=ue()),{light:{...co(),...i},dark:{...io()},radius:`${D()}rem`,...Object.keys(E).length?{fonts:E}:{}}},Ot=i=>{window.parent.postMessage({type:i,...zo()},window.location.origin)},Lt=()=>{window.parent.postMessage({type:"kai-theme-close"},window.location.origin)};let Wo=!1,Dr,Vo=!1;yo&&Do(()=>{const i=zo();if(!(!a()||!Et()||Wo)){if(!Vo){if(JSON.stringify(i)===Dr)return;Vo=!0}window.parent.postMessage({type:"kai-theme-change",...i},window.location.origin)}});const Mt=i=>{var I,V,K,P,J,le,ee,ae,be,Oe;Wo=!0;const u=i.light||i.dark||i.radius||i.fonts?i:i.tokens&&(i.tokens.light||i.tokens.dark||i.tokens.radius||i.tokens.fonts)?i.tokens:i.accent?{light:{"--kai-color-primary":i.accent}}:{};Ue({...Eo});const y=Le=>Object.fromEntries(Object.entries(Le??{}).filter(([ge])=>ge.startsWith("--kai-color-")));f(Ge("light",y(u.light))),A(Ge("dark",y(u.dark)));const E={};for(const Le of Ce){const ge=(V=(I=u.light)==null?void 0:I[Le.token])==null?void 0:V.match(/^([\d.]+)rem$/);ge&&(E[Le.token]=parseFloat(ge[1]))}je(at(Object.keys(E).length?E:void 0));const p=(P=(K=u.light)==null?void 0:K["--kai-density"])==null?void 0:P.match(/^([\d.]+)rem$/);Z(p?parseFloat(p[1]):$o);const _=(J=u.radius)==null?void 0:J.match(/^([\d.]+)rem$/);F(_?parseFloat(_[1]):Qo);const T=(ee=(le=u.light)==null?void 0:le["--kai-tracking"])==null?void 0:ee.match(/^(-?[\d.]+)em$/);Je(T?parseFloat(T[1]):0);const x=(ae=u.light)==null?void 0:ae["--kai-shadow-color"];Xe(x?We(x):"#000000"),qe(((be=u.fonts)==null?void 0:be["--kai-font-base"])??""),Ze(((Oe=u.fonts)==null?void 0:Oe["--kai-font-code"])??""),_e(he()),_e(ue()),W("Custom"),Dr=JSON.stringify(zo()),Vo=!1,Wo=!1,At(!0)};Do(()=>{if(!o||!Object.keys(Go()).length)return;const i=Tt();for(const p of pr)o.style.setProperty(p.token,i[p.token]);o.style.setProperty("--kai-radius",`${D()}rem`),o.style.setProperty("--kai-density",`${z()}rem`),o.style.setProperty("--kai-radius-pill",`${ne()}rem`),o.style.setProperty("--kai-code-radius",`${Q()}rem`),o.style.setProperty("--kai-shadow-strength",String(de()));const u=Ke();for(const p of De)o.style.setProperty(p.token,String(u[p.name]));o.style.background=i["--kai-color-background"];const y=(p,_)=>_?o.style.setProperty(p,_):o.style.removeProperty(p);y("--kai-font-base",he()),y("--kai-font-code",ue()),o.style.setProperty("--kai-tracking",`${Ne()}em`);const E=Be();for(const p of Ce)o.style.setProperty(p.token,`${E[p.token]??Ie(p)}rem`);o.style.setProperty("--kai-shadow-color",Ye()),_e(he()),_e(ue()),o.querySelectorAll("*").forEach(p=>{p.tagName.toLowerCase().startsWith("kai-")&&p.setAttribute("theme",n())})});const It=(i,u)=>{(n()==="light"?f:A)(y=>({...y,[i]:u})),W("Custom")},xo=i=>{Ue({...Eo});const u=pe().find(_=>_.name===i);if(u){f(Ge("light",u.light)),A(Ge("dark",u.dark)),F(u.radius),Z(typeof u.density=="number"&&Number.isFinite(u.density)?u.density:$o),re(typeof u.pill=="number"&&Number.isFinite(u.pill)?u.pill:er),te(typeof u.codeRadius=="number"&&Number.isFinite(u.codeRadius)?u.codeRadius:or),Re(typeof u.elevation=="number"&&Number.isFinite(u.elevation)?u.elevation:rr),po(Object.fromEntries(De.map(_=>{var x;const T=(x=u.weights)==null?void 0:x[_.name];return[_.name,typeof T=="number"&&Number.isFinite(T)?T:xt(_.name)]}))),qe(u.fontBase),Ze(u.fontCode),Je(u.tracking),Xe(u.shadow),je(at(u.text)),_e(u.fontBase),_e(u.fontCode),W(i);return}const y={},E={};je(Oo()),Z($o),re(er),te(or),Re(rr),po(lt());const p=gr.find(_=>_.name===i);if(p){for(const[_,T]of Object.entries(an))p.light[_]&&(y[T]=p.light[_]),p.dark[_]&&(E[T]=p.dark[_]);p.light.ring&&(y["--kai-color-code-foreground"]=p.light.ring),p.dark.ring&&(E["--kai-color-code-foreground"]=p.dark.ring),F(p.radius),qe(it(p.fontBase,tr)||p.fontBase||""),Ze(it(p.fontCode,nr)||p.fontCode||""),Je(p.tracking&&parseFloat(p.tracking)||0),Xe(p.shadow?We(p.shadow):"#000000")}else F(Qo),qe(""),Ze(""),Je(0),Xe("#000000");f(Ge("light",y)),A(Ge("dark",E)),W(i)},Dt=()=>xo("Default"),Pt=()=>{Cr(ke()==="Custom"||pe().some(i=>i.name===ke())?ke()==="Custom"?"":ke():""),Fo(""),oo(!0)},Pr=()=>{const i=ro().trim();if(!i){Fo("Give the theme a name.");return}const u={name:i,light:co(),dark:io(),radius:D(),density:z(),pill:ne(),codeRadius:Q(),elevation:de(),weights:Ke(),fontBase:he(),fontCode:ue(),tracking:Ne(),shadow:Ye(),text:Be()};vr([...pe().filter(y=>y.name!==i),u]),W(i),oo(!1)},Rt=i=>vr(pe().filter(u=>u.name!==i)),Ko=i=>{const u=pe().find(y=>y.name===i);return u?["--kai-color-primary","--kai-color-accent","--kai-color-secondary","--kai-color-background","--kai-color-foreground"].map(y=>u.light[y]||"#888888"):Va(i)},Nt=async()=>{try{await navigator.clipboard.writeText(dt(co(),io(),Mr())),xr(!0),setTimeout(()=>xr(!1),1600)}catch{}},Bt=()=>{const i=Xa(Er());if(!i){bo("No --kai-color-*, --kai-text-*, --kai-density, --kai-radius-pill, --kai-code-radius, --kai-shadow-strength or --kai-weight-* token found. Paste a :root / .dark block.");return}f(u=>({...u,...i.light})),A(u=>({...u,...i.dark})),i.radius!==void 0&&F(i.radius),i.density!==void 0&&Z(i.density),i.pill!==void 0&&re(i.pill),i.codeRadius!==void 0&&te(i.codeRadius),i.elevation!==void 0&&Re(i.elevation),i.weights&&po(u=>({...u,...i.weights})),Object.keys(i.text).length&&je(u=>({...u,...i.text})),W("Custom"),eo(!1),Ar(""),bo("")},Rr=i=>{var T,x;const u=(x=(T=i.detail)==null?void 0:T.value)==null?void 0:x.trim();if(!u||!e)return;const y=st();e.messages=[...e.messages??[],{id:st(),role:"user",parts:[{type:"text",text:u}]},{id:y,role:"assistant",parts:[]}],e.loading=!0;const E=qa.split(/(\s+)/);let p=0;const _=()=>{p+=2;const I=E.slice(0,p).join(""),V=p>=E.length;e.messages=(e.messages??[]).map(K=>K.id===y?{...K,parts:[{type:"text",text:I}],...V?{actions:["copy","like"]}:{}}:K),V?e.loading=!1:r=window.setTimeout(_,38)};clearTimeout(r),r=window.setTimeout(_,240)};s0(async()=>{try{br(JSON.parse(localStorage.getItem(mr)||"[]"))}catch{}xo("Default");const i=T=>{no()&&vo&&!vo.contains(T.target)&&lo(!1)},u=T=>{T.key==="Escape"&&(Tr()?to(null):_r()?oo(!1):wr()?jo(!1):Sr()?eo(!1):no()&&lo(!1))},y=document,E=window,p=E.removeEventListener.bind(E);y.addEventListener("pointerdown",i),y.addEventListener("keydown",u);const _=T=>{if(T.origin!==E.location.origin)return;const x=T.data;!x||x.type!=="kai-theme-init"||typeof x.theme!="object"||x.theme===null||Mt(x.theme)};if(yo&&E.addEventListener("message",_),ze(()=>{y.removeEventListener("pointerdown",i),y.removeEventListener("keydown",u),yo&&p("message",_)}),me){c(!0),ze(()=>clearTimeout(r));return}await j0(),e&&(customElements.upgrade(e),e.messages=Ka,e.chatTitle="Brand assistant",e.placeholder="Ask how theming works…",e.suggestions=["Which tokens matter most?","Does this hold in dark mode?"],e.models=[{id:"sonnet",name:"Claude Sonnet",provider:"Anthropic"},{id:"opus",name:"Claude Opus",provider:"Anthropic"}],e.currentModel="sonnet",e.context={usedTokens:18500,maxTokens:2e5},e.addEventListener("kai-submit",Rr));for(const T of t)try{Da(T.el,T.tag,n())}catch{}c(!0),ze(()=>{clearTimeout(r),e==null||e.removeEventListener("kai-submit",Rr)})});const Ae=i=>{const u=y=>Math.min(i.max,Math.max(i.min,y));return(()=>{var y=Hl(),E=y.firstChild,p=E.nextSibling,_=p.nextSibling,T=_.nextSibling;return h(E,()=>i.label),p.$$input=x=>i.onInput(parseFloat(x.currentTarget.value)),_.addEventListener("change",x=>{const I=parseFloat(x.currentTarget.value);if(Number.isNaN(I)){x.currentTarget.value=String(i.value);return}i.onInput(u(I))}),h(T,()=>i.unit??""),O(x=>{var I=i.min,V=i.max,K=i.step,P=i.label,J=i.min,le=i.max,ee=i.step,ae=`${i.label} value`;return I!==x.e&&j(p,"min",x.e=I),V!==x.t&&j(p,"max",x.t=V),K!==x.a&&j(p,"step",x.a=K),P!==x.o&&j(p,"aria-label",x.o=P),J!==x.i&&j(_,"min",x.i=J),le!==x.n&&j(_,"max",x.n=le),ee!==x.s&&j(_,"step",x.s=ee),ae!==x.h&&j(_,"aria-label",x.h=ae),x},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),O(()=>p.value=i.value),O(()=>_.value=i.value),y})()},Nr=i=>{const u=()=>i.choices.find(y=>Math.abs(y.value-i.value)<1e-9);return(()=>{var y=zl(),E=y.firstChild,p=E.nextSibling,_=p.firstChild;return h(E,()=>i.label),h(_,g(q,{get each(){return i.choices},children:T=>(()=>{var x=Wl();return x.$$click=()=>i.onInput(T.value),h(x,()=>T.label),O(I=>{var le,ee,ae;var V=((le=u())==null?void 0:le.label)===T.label,K=`${i.label}: ${T.label}`,P=String(T.value),J={"bg-ink text-bg":((ee=u())==null?void 0:ee.label)===T.label,"text-ink-2 hover:bg-ink/5":((ae=u())==null?void 0:ae.label)!==T.label};return V!==I.e&&j(x,"aria-pressed",I.e=V),K!==I.t&&j(x,"aria-label",I.t=K),P!==I.a&&j(x,"data-value",I.a=P),I.o=fe(x,J,I.o),I},{e:void 0,t:void 0,a:void 0,o:void 0}),x})()})),h(p,g(U,{get when(){return!u()},get children(){var T=Gl();return T.firstChild,h(T,()=>i.value,null),h(T,()=>i.unit??"",null),T}}),null),y})()},jt=i=>{const u=()=>Be()[i.r.token]??Ie(i.r),y=E=>{const p=Math.min(i.r.max,Math.max(i.r.min,E));je(_=>({..._,[i.r.token]:p})),W("Custom")};return(()=>{var E=Vl(),p=E.firstChild,_=p.firstChild,T=_.nextSibling,x=p.nextSibling,I=x.firstChild,V=I.nextSibling,K=V.nextSibling;return K.firstChild,h(_,()=>i.r.label),h(T,()=>i.r.hint),I.$$input=P=>y(parseFloat(P.currentTarget.value)),V.addEventListener("change",P=>{const J=parseFloat(P.currentTarget.value);if(Number.isNaN(J)){P.currentTarget.value=String(u());return}y(J)}),h(K,()=>Ua(u()),null),O(P=>{var J=i.r.min,le=i.r.max,ee=`${i.r.label} size`,ae=i.r.min,be=i.r.max,Oe=`${i.r.label} size in rem`;return J!==P.e&&j(I,"min",P.e=J),le!==P.t&&j(I,"max",P.t=le),ee!==P.a&&j(I,"aria-label",P.a=ee),ae!==P.o&&j(V,"min",P.o=ae),be!==P.i&&j(V,"max",P.i=be),Oe!==P.n&&j(V,"aria-label",P.n=Oe),P},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),O(()=>I.value=u()),O(()=>V.value=u()),E})()},Ft=()=>Ce.every(i=>(Be()[i.token]??Ie(i))===Ie(i)),Br=i=>(()=>{var u=ql(),y=u.firstChild,E=y.firstChild,p=y.nextSibling;return h(E,()=>i.s.label),h(y,g(U,{get when(){return i.s.note},get children(){var _=Kl();return h(_,()=>i.s.note),_}}),null),ho(_=>l(_,i.s.tag),p),O(_=>cr(p,i.s.h?{height:i.s.h,overflow:"auto"}:void 0,_)),u})();return(()=>{var i=ya(),u=i.firstChild,y=u.firstChild,E=y.firstChild,p=E.firstChild,_=p.nextSibling,T=y.nextSibling,x=T.firstChild,I=x.firstChild,V=I.nextSibling,K=x.nextSibling,P=K.firstChild,J=K.nextSibling,le=J.firstChild,ee=J.nextSibling,ae=ee.firstChild,be=ee.nextSibling,Oe=be.firstChild,Le=u.nextSibling,ge=Le.firstChild,Ut=ge.firstChild;u.classList.toggle("flex-wrap",!!me);var jr=vo;return typeof jr=="function"?ho(jr,y):vo=y,E.$$click=()=>lo(d=>!d),h(p,g(q,{get each(){return Ko(ke())},children:d=>(()=>{var v=Yo();return Se(v,"background",d),v})()})),h(_,ke),h(E,g(Xr,{class:"ml-auto h-3.5 w-3.5 shrink-0 text-ink-3 transition-transform",get classList(){return{"rotate-90":no()}}}),null),h(y,g(U,{get when(){return no()},get children(){var d=Xl(),v=d.firstChild,S=v.firstChild,C=v.nextSibling;return S.$$input=$=>Uo($.currentTarget.value),h(C,g(U,{get when(){return pe().filter($=>$.name.toLowerCase().includes(ao().toLowerCase())).length},get children(){return[Zl(),g(q,{get each(){return pe().filter($=>$.name.toLowerCase().includes(ao().toLowerCase()))},children:$=>(()=>{var M=xa(),R=M.firstChild,w=R.firstChild,N=w.nextSibling,ce=R.nextSibling;return R.$$click=()=>{xo($.name),lo(!1),Uo("")},h(w,g(q,{get each(){return Ko($.name)},children:Y=>(()=>{var ie=Yo();return Se(ie,"background",Y),ie})()})),h(N,()=>$.name),ce.$$click=()=>to($.name),h(ce,g(sr,{class:"size-3.5"})),O(Y=>{var ie={"bg-ink/[0.07] font-semibold text-ink":ke()===$.name,"text-ink-2":ke()!==$.name},se=`Delete ${$.name}`;return Y.e=fe(M,ie,Y.e),se!==Y.t&&j(ce,"aria-label",Y.t=se),Y},{e:void 0,t:void 0}),M})()}),Jl()]}}),null),h(C,g(q,{get each(){return Lr()},children:$=>(()=>{var M=wa(),R=M.firstChild,w=R.nextSibling;return M.$$click=()=>{xo($),lo(!1),Uo("")},h(R,g(q,{get each(){return Ko($)},children:N=>(()=>{var ce=Yo();return Se(ce,"background",N),ce})()})),h(w,$),O(N=>fe(M,{"bg-ink/[0.07] font-semibold text-ink":ke()===$,"text-ink-2":ke()!==$},N)),M})()}),null),h(C,g(U,{get when(){return so(()=>!Lr().length)()&&!pe().filter($=>$.name.toLowerCase().includes(ao().toLowerCase())).length},get children(){return Yl()}}),null),O(()=>S.value=ao()),d}}),null),I.$$click=()=>s("light"),V.$$click=()=>s("dark"),K.$$click=()=>eo(!0),h(K,g(rn,{class:"h-3.5 w-3.5"}),P),J.$$click=Dt,h(J,g(tn,{class:"h-3.5 w-3.5"}),le),ee.$$click=Pt,h(ee,g(ln,{class:"h-3.5 w-3.5"}),ae),be.$$click=()=>jo(!0),h(be,g(nn,{class:"h-3.5 w-3.5"}),Oe),h(T,g(U,{when:yo,get children(){return[(()=>{var d=Ql(),v=d.firstChild;return d.$$click=()=>Ot("kai-theme-apply"),h(d,g(Yr,{class:"h-3.5 w-3.5"}),v),d})(),(()=>{var d=ea(),v=d.firstChild;return d.$$click=Lt,h(d,g(sr,{class:"h-3.5 w-3.5"}),v),d})()]}}),null),h(Ut,g(q,{each:[["colors","Colors"],["typography","Typography"],["other","Other"]],children:([d,v])=>(()=>{var S=Sa();return S.$$click=()=>_t(d),h(S,v),O(C=>fe(S,{"bg-ink/[0.07] font-semibold text-ink":Qe()===d,"text-ink-3 hover:text-ink":Qe()!==d},C)),S})()})),h(ge,g(U,{get when(){return Qe()==="colors"},get children(){return[g(U,{get when(){return Ir()},get children(){return oa()}}),g(q,{each:dr,children:d=>(()=>{var v=Ca(),S=v.firstChild,C=S.firstChild,$=C.nextSibling;return S.$$click=()=>$t(d.name),h(S,g(Xr,{class:"h-3.5 w-3.5 shrink-0 text-ink-3 transition-transform",get classList(){return{"rotate-90":Ho()[d.name]}}}),C),h(C,()=>d.name),h($,g(q,{get each(){return d.tokens.slice(0,5)},children:M=>(()=>{var R=$a();return O(w=>Se(R,"background",Go()[M.token]??"transparent")),R})()})),h(v,g(U,{get when(){return Ho()[d.name]},get children(){var M=_a();return h(M,g(q,{get each(){return d.tokens},children:R=>(()=>{var w=Ta(),N=w.firstChild,ce=N.nextSibling,Y=ce.firstChild,ie=Y.nextSibling;return N.$$input=se=>It(R.token,se.currentTarget.value),h(Y,()=>R.label),h(ie,()=>R.hint),O(()=>j(N,"aria-label",R.label)),O(()=>N.value=hr(Go()[R.token]??"#000000")),w})()})),M}}),null),O(()=>j(S,"aria-expanded",Ho()[d.name])),v})()})]}}),null),h(ge,g(U,{get when(){return Qe()==="typography"},get children(){return[(()=>{var d=ra(),v=d.firstChild,S=v.firstChild,C=S.nextSibling,$=v.nextSibling,M=$.firstChild,R=M.nextSibling;return C.addEventListener("change",w=>{qe(w.currentTarget.value),_e(w.currentTarget.value),W("Custom")}),h(C,g(q,{each:tr,children:w=>(()=>{var N=Xo();return h(N,()=>w.label),O(()=>N.value=w.value),N})()}),null),h(C,g(U,{get when(){return so(()=>!!he())()&&!tr.some(w=>w.value===he())},get children(){var w=tt(),N=w.firstChild;return h(w,()=>he().split(",")[0].replace(/["']/g,""),N),O(()=>w.value=he()),w}}),null),R.addEventListener("change",w=>{Ze(w.currentTarget.value),_e(w.currentTarget.value),W("Custom")}),h(R,g(q,{each:nr,children:w=>(()=>{var N=Xo();return h(N,()=>w.label),O(()=>N.value=w.value),N})()}),null),h(R,g(U,{get when(){return so(()=>!!ue())()&&!nr.some(w=>w.value===ue())},get children(){var w=tt(),N=w.firstChild;return h(w,()=>ue().split(",")[0].replace(/["']/g,""),N),O(()=>w.value=ue()),w}}),null),h(d,g(Ae,{label:"Tracking",get value(){return Ne()},min:-.05,max:.2,step:.005,unit:"em",onInput:w=>{Je(w),W("Custom")}}),null),O(()=>C.value=he()),O(()=>R.value=ue()),d})(),(()=>{var d=ta(),v=d.firstChild;v.firstChild;var S=v.nextSibling,C=S.nextSibling,$=C.firstChild,M=$.firstChild,R=M.nextSibling;return h(v,g(U,{get when(){return!Ft()},get children(){var w=nt();return w.$$click=()=>{je(Oo()),W("Custom")},w}}),null),h(C,g(q,{each:Ce,children:w=>g(jt,{r:w})}),$),h(R,g(q,{each:De,children:w=>(()=>{var N=Ea(),ce=N.firstChild,Y=ce.nextSibling;return h(ce,()=>w.label),Y.addEventListener("change",ie=>{po(se=>({...se,[w.name]:Number.parseInt(ie.currentTarget.value,10)})),W("Custom")}),h(Y,g(q,{each:Ba,children:ie=>(()=>{var se=Xo();return h(se,ie),O(()=>se.value=String(ie)),se})()})),O(()=>j(Y,"aria-label",`${w.label} weight`)),O(()=>Y.value=String(Ke()[w.name])),N})()})),d})()]}}),null),h(ge,g(U,{get when(){return Qe()==="other"},get children(){return[(()=>{var d=na(),v=d.firstChild;v.firstChild;var S=v.nextSibling,C=S.nextSibling;return h(v,g(U,{get when(){return Ir()},get children(){var $=nt();return $.$$click=()=>{Ue({...Eo}),W("Custom")},$}}),null),h(C,g(Ae,{label:"Hue",get value(){return Fe().h},min:-180,max:180,step:1,unit:"deg",onInput:$=>{Ue(M=>({...M,h:$})),W("Custom")}}),null),h(C,g(Ae,{label:"Saturation",get value(){return Fe().s},min:0,max:2,step:.05,unit:"x",onInput:$=>{Ue(M=>({...M,s:$})),W("Custom")}}),null),h(C,g(Ae,{label:"Lightness",get value(){return Fe().l},min:0,max:2,step:.05,unit:"x",onInput:$=>{Ue(M=>({...M,l:$})),W("Custom")}}),null),d})(),(()=>{var d=la(),v=d.firstChild,S=v.nextSibling;return h(S,g(Ae,{label:"Radius",get value(){return D()},min:0,max:1.4,step:.05,unit:"rem",onInput:C=>{F(C),W("Custom")}}),null),h(S,g(Nr,{label:"Density",get value(){return z()},choices:ja,unit:"rem",onInput:C=>{Z(C),W("Custom")}}),null),h(S,g(Ae,{label:"Pill",get value(){return ne()},min:0,max:4,step:.0625,unit:"rem",onInput:C=>{re(C),W("Custom")}}),null),h(S,g(Ae,{label:"Code",get value(){return Q()},min:0,max:1.4,step:.05,unit:"rem",onInput:C=>{te(C),W("Custom")}}),null),d})(),(()=>{var d=aa(),v=d.firstChild,S=v.nextSibling,C=S.firstChild,$=C.firstChild;return $.$$input=M=>{Xe(M.currentTarget.value),W("Custom")},h(S,g(Nr,{label:"Elevation",get value(){return de()},choices:Fa,onInput:M=>{Re(M),W("Custom")}}),null),O(()=>$.value=Ye()),d})()]}}),null),h(Le,g(U,{when:!me,get children(){var d=ia(),v=d.firstChild,S=v.nextSibling,C=S.firstChild,$=C.firstChild,M=$.nextSibling,R=M.firstChild,w=C.nextSibling,N=w.firstChild,ce=N.nextSibling,Y=w.nextSibling,ie=Y.firstChild,se=ie.nextSibling,Ht=se.nextSibling,qo=Ht.firstChild;qo.firstChild;var Fr=qo.nextSibling,Gt=Fr.firstChild,zt=Gt.nextSibling,Wt=zt.nextSibling,Ur=Wt.nextSibling,Vt=Ur.firstChild;Vt.nextSibling;var Kt=Ur.nextSibling,qt=Kt.nextSibling,Zt=qt.nextSibling,Jt=Zt.nextSibling,Yt=Jt.firstChild,Xt=Yt.nextSibling,Qt=Xt.nextSibling;Qt.nextSibling;var e0=Fr.nextSibling,o0=e0.firstChild,r0=o0.nextSibling,t0=r0.nextSibling,n0=t0.nextSibling;n0.nextSibling;var Hr=o;return typeof Hr=="function"?ho(Hr,d):o=d,h(d,g(U,{get when(){return!a()},get children(){return ca()}}),v),h(v,g(q,{each:[["chat","Chat"],["cards","Cards"],["components","Components"]],children:([B,X])=>(()=>{var ve=Aa();return ve.$$click=()=>St(B),h(ve,X),O(wo=>cr(ve,mo()===B?{background:"color-mix(in oklab, var(--kai-color-foreground) 9%, transparent)",color:"var(--kai-color-foreground)","font-weight":"600"}:{color:"var(--kai-color-muted-foreground)"},wo)),ve})()})),ho(B=>e=B,R),R._$owner=gt(),h(ce,g(q,{each:Pa,children:B=>g(Br,{s:B})})),h(se,g(q,{each:Ra,children:B=>g(Br,{s:B})})),h(qo,g(q,{each:["success","warning","info","destructive"],children:B=>[(()=>{var X=Oa();return j(X,"data-token",`--kai-color-${B}`),Se(X,"background",`var(--kai-color-${B})`),Se(X,"color",`var(--kai-color-${B}-foreground)`),h(X,B),X})(),(()=>{var X=La(),ve=X.firstChild;return j(X,"data-token",`--kai-color-${B}-soft`),Se(X,"background",`var(--kai-color-${B}-soft)`),Se(X,"color",`var(--kai-color-${B})`),h(X,B,ve),X})()]}),null),O(B=>{var X=n()==="dark",ve=mo()!=="chat",wo=mo()!=="cards",Gr=mo()!=="components";return X!==B.e&&d.classList.toggle("dark",B.e=X),ve!==B.t&&C.classList.toggle("hidden",B.t=ve),wo!==B.a&&w.classList.toggle("hidden",B.a=wo),Gr!==B.o&&Y.classList.toggle("hidden",B.o=Gr),B},{e:void 0,t:void 0,a:void 0,o:void 0}),d}}),null),h(i,g(U,{get when(){return wr()},get children(){return g(Co,{title:"Theme CSS",wide:!0,onClose:()=>jo(!1),get children(){return[sa(),(()=>{var d=da(),v=d.firstChild,S=v.nextSibling,C=S.firstChild;return v.$$click=Nt,h(v,(()=>{var $=so(()=>!!yr());return()=>$()?g(Yr,{class:"h-3.5 w-3.5"}):g(on,{class:"h-3.5 w-3.5"})})(),null),h(v,()=>yr()?"Copied":"Copy",null),h(C,()=>dt(co(),io(),Mr())),d})()]}})}}),null),h(i,g(U,{get when(){return Sr()},get children(){return g(Co,{title:"Import theme",onClose:()=>{eo(!1),bo("")},get children(){return[ha(),(()=>{var d=ua();return d.$$input=v=>Ar(v.currentTarget.value),O(()=>d.value=Er()),d})(),g(U,{get when(){return Or()},get children(){var d=ka();return h(d,Or),d}}),(()=>{var d=ga(),v=d.firstChild,S=v.nextSibling;return v.$$click=()=>{eo(!1),bo("")},S.$$click=Bt,d})()]}})}}),null),h(i,g(U,{get when(){return _r()},get children(){return g(Co,{title:"Save theme",onClose:()=>oo(!1),get children(){return[(()=>{var d=fa(),v=d.firstChild,S=v.nextSibling;return S.$$keydown=C=>{C.key==="Enter"&&Pr()},S.$$input=C=>{Cr(C.currentTarget.value),Fo("")},O(()=>S.value=ro()),d})(),g(U,{get when(){return so(()=>!!ro().trim())()&&pe().some(d=>d.name===ro().trim())},get children(){var d=pa(),v=d.firstChild,S=v.nextSibling;return S.nextSibling,h(d,()=>ro().trim(),S),d}}),g(U,{get when(){return $r()},get children(){var d=ma();return h(d,$r),d}}),ba(),(()=>{var d=va(),v=d.firstChild,S=v.nextSibling;return v.$$click=()=>oo(!1),S.$$click=Pr,d})()]}})}}),null),h(i,g(U,{get when(){return Tr()},children:d=>g(Co,{title:"Delete theme",onClose:()=>to(null),get children(){return[(()=>{var v=Ma(),S=v.firstChild,C=S.nextSibling,$=C.firstChild,M=$.nextSibling;return M.nextSibling,h(C,d,M),v})(),(()=>{var v=Ia(),S=v.firstChild,C=S.nextSibling;return S.$$click=()=>to(null),C.$$click=()=>{Rt(d()),to(null)},v})()]}})}),null),O(d=>{var v={"my-4 rounded-xl border lg:h-[82vh] lg:min-h-[660px]":!me,"h-dvh":me},S=no(),C={"flex-wrap justify-end":me},$={"bg-ink text-bg":n()==="light","text-ink-2":n()!=="light"},M={"bg-ink text-bg":n()==="dark","text-ink-2":n()!=="dark"},R={"shrink-0 border-b border-line lg:w-[380px] lg:border-b-0 lg:border-r":!me,"min-h-0 flex-1":me};return d.e=fe(i,v,d.e),S!==d.t&&j(E,"aria-expanded",d.t=S),d.a=fe(T,C,d.a),d.o=fe(I,$,d.o),d.i=fe(V,M,d.i),d.n=fe(ge,R,d.n),d},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),i})()}vt(["click","input","keydown"]);new URLSearchParams(window.location.search).get("theme")==="light"&&(document.documentElement.dataset.theme="light");C0(()=>g(Qa,{}),document.getElementById("root"));