spacetime-studio 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -0
- package/dist/spacetime-studio +41 -0
- package/dist/studio/client/assets/chunks/chunk-9U2RGXGQ.js +3 -0
- package/dist/studio/client/assets/chunks/chunk-CFncNr_j.js +7 -0
- package/dist/studio/client/assets/chunks/chunk-CLzc1euR.js +1 -0
- package/dist/studio/client/assets/chunks/chunk-D5ho-8Wh.js +575 -0
- package/dist/studio/client/assets/chunks/chunk-DHOLzkJl.js +30 -0
- package/dist/studio/client/assets/chunks/chunk-mZKhtkdl.js +1 -0
- package/dist/studio/client/assets/chunks/chunk-yx3zcEsC.js +1 -0
- package/dist/studio/client/assets/entries/entry-client-routing.CnEZcQPI.js +2 -0
- package/dist/studio/client/assets/entries/src_pages_error.C8MbyvXi.js +1 -0
- package/dist/studio/client/assets/entries/src_pages_index.B-1wxvh7.js +54 -0
- package/dist/studio/client/assets/entries/src_pages_schemas.CkPCXSOz.js +1 -0
- package/dist/studio/client/assets/entries/src_pages_tables.zNfRu6YP.js +1 -0
- package/dist/studio/client/assets/static/src_lib_solid-flow_flow-7f378cfa.fSGGAtkx.css +1 -0
- package/dist/studio/client/assets/static/src_lib_solid-tippy_tippy-31f66de0.DjDCmi8m.css +1 -0
- package/dist/studio/client/assets/static/src_styles_app-79a3ce9a.DwvfEWUn.css +1 -0
- package/dist/studio/client/icon-logo-dark.svg +11 -0
- package/dist/studio/client/icon-logo-light.svg +11 -0
- package/dist/studio/server.mjs +75787 -0
- package/package.json +7 -4
- package/CHANGELOG.md +0 -7
- package/src/cli.ts +0 -313
- package/tsconfig.json +0 -18
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"../chunks/chunk-mZKhtkdl.js";import{At as t,Ct as n,Dt as r,Ft as i,It as a,N as o,Nt as s,Ot as c,Pt as l,Tt as u,_t as d,bt as f,c as p,gt as m,ht as h,i as g,j as _,lt as v,mt as y,n as b,r as x,s as S,t as C,vt as w,xt as T,yt as E,zt as D}from"../chunks/chunk-D5ho-8Wh.js";import"../chunks/chunk-9U2RGXGQ.js";import{l as O,p as k,u as A}from"../chunks/chunk-CLzc1euR.js";/* empty css *//* empty css */import{i as j,r as M,t as N}from"../chunks/chunk-yx3zcEsC.js";/* empty css */function P(e){let t=e.data,n=3+(t.columns||[]).length,r=Math.max(80,n*20+16),i=t.name?.length||10;return{width:Math.max(160,Math.min(350,i*10+40)),height:r}}function F(e,t,n){let{horizontalSpacing:r=300,verticalSpacing:i=100,direction:a=`TB`}=n||{};if(e.length===0)return e;let o=new Map;for(let t of e)o.set(t.id,{...t,_depth:0,_visited:!1});let s=new Map,c=new Map;e.forEach(e=>{s.set(e.id,0),c.set(e.id,[])});for(let e of t){let t=s.get(e.target)||0;s.set(e.target,t+1);let n=c.get(e.source)||[];n.push(e.target),c.set(e.source,n)}let l=new Map;function u(e,t){let n=o.get(e);if(!n||n._visited&&(n._depth??0)>=t)return;n._visited=!0,n._depth=t;let r=l.get(t)||[];r.includes(e)||(r.push(e),l.set(t,r));let i=c.get(e)||[];for(let e of i)u(e,t+1)}e.forEach(e=>{(s.get(e.id)||0)===0&&u(e.id,0)}),o.forEach((e,t)=>{e._visited||u(t,0)});let d=Math.max(...Array.from(l.keys()),0),f=new Map,p=new Map;for(let e=0;e<=d;e++){let t=l.get(e)||[];f.set(e,0),t.forEach(t=>{p.set(t,f.get(e)||0),f.set(e,(f.get(e)||0)+1)})}return e.map(e=>{let t=o.get(e.id)?._depth??0,n=p.get(e.id)??0,s=f.get(t)||1,c=i+P(e).height;return a===`LR`?{...e,position:{x:t*r,y:n*c-(s-1)*c/2}}:{...e,position:{x:n*c-(s-1)*c/2,y:r*.8*t}}})}function I(e,t,n=180,r=100){let i=e.find(e=>e.id===t.source),a=e.find(e=>e.id===t.target);if(!i||!a)return null;let o=P(i),s=P(a);return{sourceX:i.position.x+(o.width||n)/2,sourceY:i.position.y+(o.height||r),targetX:a.position.x+(s.width||n)/2,targetY:a.position.y}}function L(e,t,n,r=50){if(e.length===0)return{offset:{x:0,y:0},zoom:1};let i=1/0,a=1/0,o=-1/0,s=-1/0;e.forEach(e=>{let t=P(e);i=Math.min(i,e.position.x),a=Math.min(a,e.position.y),o=Math.max(o,e.position.x+t.width),s=Math.max(s,e.position.y+t.height)});let c=o-i,l=s-a,u=(t-r*2)/c,d=(n-r*2)/l,f=Math.min(u,d,1),p=i+c/2,m=a+l/2;return{offset:{x:t/2-p*f,y:n/2-m*f},zoom:f}}var R=u(`<svg><g class=edge-group role=button tabindex=0><path fill=none></path><!$><!/></svg>`,!1,!0,!1),z=u(`<svg><g><circle r=10 class=edge-delete-circle></circle><text text-anchor=middle dominant-baseline=central class=edge-delete-x>×</svg>`,!1,!0,!1),B=u(`<div role=button tabindex=0><div class=node-header><span class=node-type-icon>📋</span><span class=node-title></span></div><!$><!/>`),V=u(`<div class=node-columns>`),H=u(`<div class=node-column><span class=column-name></span><span class=column-type></span><!$><!/>`),U=u(`<span class=column-primary>PK`),W=u(`<div role=application aria-label="Schema diagram"><div class=flow-background><svg class=edges-layer><defs><marker id=arrow markerWidth=10 markerHeight=7 refX=9 refY=3.5 orient=auto><polygon points="0 0, 10 3.5, 0 7"class=edge-arrow-marker></polygon></marker><marker id=arrow-selected markerWidth=10 markerHeight=7 refX=9 refY=3.5 orient=auto><polygon points="0 0, 10 3.5, 0 7"class="edge-arrow-marker selected"></polygon></marker></defs><!$><!/></svg><div class=nodes-layer>`);function G(){let e=e=>{let t=()=>(e.sourcePos.x+e.targetPos.x)/2,n=()=>(e.sourcePos.y+e.targetPos.y)/2,r=()=>e.sourcePos.y+Math.abs(e.targetPos.y-e.sourcePos.y)*.5,a=()=>e.targetPos.y-Math.abs(e.targetPos.y-e.sourcePos.y)*.5;return(()=>{var o=m(R),s=o.firstChild,c=s.nextSibling,[l,u]=d(c.nextSibling);return o.$$keydown=t=>t.key===`Enter`&&e.onClick?.(),o.$$click=()=>e.onClick?.(),w(o,(()=>{var r=E(()=>!!e.selected);return()=>r()&&(()=>{var e=m(z);return i(()=>T(e,`transform`,`translate(${t()}, ${n()})`)),e})()})(),l,u),i(t=>{var n=`edge-path ${e.selected?`selected`:``}`,i=`M ${e.sourcePos.x} ${e.sourcePos.y} C ${e.sourcePos.x} ${r()}, ${e.targetPos.x} ${a()}, ${e.targetPos.x} ${e.targetPos.y}`,o=e.selected?`url(#arrow-selected)`:`url(#arrow)`;return n!==t.e&&T(s,`class`,t.e=n),i!==t.t&&T(s,`d`,t.t=i),o!==t.a&&T(s,`marker-end`,t.a=o),t},{e:void 0,t:void 0,a:void 0}),f(),o})()},o=e=>{let a=()=>e.node.data,o=()=>a().columns||[];return(()=>{var s=m(B),c=s.firstChild,l=c.firstChild.nextSibling,u=c.nextSibling,[p,h]=d(u.nextSibling);return s.$$mousedown=t=>{t.stopPropagation(),e.onDragStart?.(t)},s.$$keydown=t=>t.key===`Enter`&&e.onClick?.(),s.$$click=()=>e.onClick?.(),w(l,()=>a().name),w(s,(()=>{var e=E(()=>o().length>0);return()=>e()&&(()=>{var e=m(V);return w(e,t(r,{get each(){return o()},children:e=>(()=>{var t=m(H),n=t.firstChild,r=n.nextSibling,i=r.nextSibling,[a,o]=d(i.nextSibling);return w(n,()=>e.name),w(r,()=>e.type),w(t,(()=>{var t=E(()=>!!e.primary);return()=>t()&&m(U)})(),a,o),t})()})),e})()})(),p,h),i(t=>{var r=`flow-node ${e.selected?`selected`:``}`,i=`translate(${e.node.position.x}px, ${e.node.position.y}px)`;return r!==t.e&&y(s,t.e=r),i!==t.t&&n(s,`transform`,t.t=i),t},{e:void 0,t:void 0}),f(),s})()};return function(u){let[p,h]=a(null),[g,_]=a(null),[v,b]=a({x:50,y:50,zoom:1}),[x,S]=a(!1),[C,T]=a({x:0,y:0}),[E,O]=a(!1),[k,A]=a(null),[j,M]=a({x:0,y:0}),[N,P]=a(new Map),[R,z]=a([]);s(D(()=>[u.nodes,u.edges],()=>{if(u.nodes.length>0){let e=F(u.nodes,u.edges,{direction:`TB`});z(e);let t=new Map;for(let n of e)t.set(n.id,{...n.position});P(t)}},{defer:!1}));let B=()=>{let e=N();return R().map(t=>({...t,position:e.get(t.id)||t.position}))};s(D(R,e=>{u.fitView&&e.length>0&&queueMicrotask(()=>{let t=document.querySelector(`.flow-container`);if(t){let n=t.getBoundingClientRect(),{offset:r,zoom:i}=L(e,n.width,n.height,100);b({x:r.x,y:r.y,zoom:i})}})}));let V=l(()=>{let e=new Map,t=B();for(let n of u.edges){let r=I(t,n);r&&e.set(n.id,{source:{x:r.sourceX,y:r.sourceY},target:{x:r.targetX,y:r.targetY}})}return e}),H=e=>{let t=e.target;(e.target===e.currentTarget||t.classList.contains(`flow-background`))&&(S(!0),T({x:e.clientX-v().x,y:e.clientY-v().y}),h(null),_(null))},U=e=>{if(E()&&k()){let t=v().zoom,n=e.clientX-j().x,r=e.clientY-j().y;P(e=>{let i=new Map(e);return R().find(e=>e.id===k())&&i.set(k(),{x:(n-v().x)/t,y:(r-v().y)/t}),i})}else x()&&b(t=>({...t,x:e.clientX-C().x,y:e.clientY-C().y}))},G=()=>{S(!1),O(!1),A(null)},K=(e,t)=>{t.stopPropagation(),O(!0),A(e);let n=B().find(t=>t.id===e);if(n){let e=v().zoom;M({x:t.clientX-(n.position.x*e+v().x),y:t.clientY-(n.position.y*e+v().y)})}h(e)},q=e=>{e.preventDefault();let t=e.deltaY>0?.9:1.1;b(e=>({...e,zoom:Math.max(.1,Math.min(3,e.zoom*t))}))};return(()=>{var a=m(W),s=a.firstChild,l=s.firstChild,b=l.firstChild.nextSibling,[x,S]=d(b.nextSibling),C=l.nextSibling;return a.addEventListener(`wheel`,q),a.addEventListener(`mouseleave`,G),a.$$mouseup=G,a.$$mousemove=U,a.$$mousedown=H,w(l,t(r,{get each(){return u.edges},children:n=>{let r=()=>V().get(n.id);return t(c,{get when(){return r()},children:r=>t(e,{edge:n,get sourcePos(){return r().source},get targetPos(){return r().target},get selected(){return g()===n.id},onClick:()=>{_(n.id),u.onEdgeClick?.(n)}})})}}),x,S),w(C,t(r,{get each(){return B()},children:e=>t(o,{node:e,get selected(){return p()===e.id},onClick:()=>{h(e.id),u.onNodeClick?.(e)},onDragStart:t=>K(e.id,t)})})),i(e=>{var t=`flow-container ${u.class||``}`,r=`translate(${v().x}px, ${v().y}px) scale(${v().zoom})`;return t!==e.e&&y(a,e.e=t),r!==e.t&&n(s,`transform`,e.t=r),e},{e:void 0,t:void 0}),f(),a})()}}h([`click`,`keydown`,`mousedown`,`mousemove`,`mouseup`]);var K=e({default:()=>Ce}),q=u(`<svg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><rect width=14 height=14 x=8 y=8 rx=2 ry=2></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2">`),J=u(`<svg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M20 6 9 17l-5-5">`),ee=u(`<div class="mr-4 hidden items-center gap-3 text-muted-foreground text-xs sm:flex"><span><!$><!/> tables</span><span><!$><!/> reducers`),te=u(`<span class=ml-1>`),ne=u(`<div class="m-4 rounded-md border border-red-500/50 bg-red-500/10 p-4"><p class="text-red-400 text-sm">`),re=u(`<div class=text-center><!$><!/><p class="text-muted-foreground text-sm">Loading schema...`),Y=u(`<div class="flex flex-1 items-center justify-center">`),ie=u(`<div class=text-center><!$><!/><h2 class="mb-2 font-medium text-lg">No database selected</h2><p class="text-muted-foreground text-sm">Click the database indicator above to set a database`),ae=u(`<button type=button class="absolute top-3 right-3 flex items-center gap-1.5 rounded-md border border-border bg-card px-2.5 py-1.5 text-xs shadow-md transition-colors hover:bg-accent"title="Show reducers panel"><svg xmlns=http://www.w3.org/2000/svg width=12 height=12 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><rect width=18 height=18 x=3 y=3 rx=2></rect><path d="M15 3v18"></path></svg>Reducers`),oe=u(`<div class="relative min-w-0 flex-1"><!$><!/><!$><!/>`),se=u(`<div class="border-border border-b p-3"><div class="mb-2 text-[10px] text-muted-foreground uppercase tracking-wider">User Defined</div><div class=space-y-1>`),ce=u(`<div class=p-3><div class="mb-2 text-[10px] text-muted-foreground uppercase tracking-wider">Lifecycle Hooks</div><div class=space-y-1>`),le=u(`<div class="border-border border-t bg-accent/50 p-3"><div class="mb-2 flex items-center justify-between"><h4 class="font-medium font-mono text-sm"></h4><button type=button class="text-muted-foreground hover:text-foreground"><svg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><!$><!/><!$><!/><!$><!/>`),ue=u(`<div class="w-64 shrink-0 overflow-y-auto border-border border-l bg-card lg:w-72"><div class="flex items-center justify-between border-border border-b p-3"><div><h3 class="font-semibold text-sm">Reducers</h3><p class="mt-0.5 text-muted-foreground text-xs"><!$><!/> total</p></div><button type=button class="-mr-1 rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"title="Collapse reducers panel"><svg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="m9 18 6-6-6-6"></path></svg></button></div><!$><!/><!$><!/><!$><!/>`),de=u(`<div class="flex-1 overflow-auto p-4"><pre class="bg-muted/30 p-4 font-mono text-[13px] leading-relaxed"><code class=text-foreground/90>`),fe=u(`<div class="flex min-w-0 flex-1 overflow-hidden"><!$><!/><!$><!/>`),pe=u(`<div class="schemas-page flex h-full flex-col overflow-hidden bg-background"><!$><!/><main class="flex min-h-0 flex-1 overflow-hidden"><!$><!/><!$><!/><!$><!/><!$><!/>`),me=u(`<button type=button class="w-full rounded p-2 text-left transition-colors hover:bg-accent"><div class="font-mono text-foreground text-xs"></div><div class="mt-0.5 text-[10px] text-muted-foreground"><!$><!/> parameter<!$><!/>`),he=u(`<button type=button class="w-full rounded p-2 text-left transition-colors hover:bg-accent"><div class="flex items-center gap-2"><span class="font-mono text-foreground text-xs"></span><span class="rounded bg-blue-500/20 px-1.5 py-0.5 text-[9px] text-blue-400"></span></div><div class="mt-0.5 text-[10px] text-muted-foreground"><!$><!/> parameter<!$><!/>`),ge=u(`<div class=mb-2><span class="rounded bg-blue-500/20 px-1.5 py-0.5 text-[10px] text-blue-400">`),_e=u(`<div class=space-y-1><div class="text-[10px] text-muted-foreground uppercase tracking-wider">Parameters</div><!$><!/>`),ve=u(`<div class="flex justify-between text-xs"><span class=text-muted-foreground></span><span class="font-mono text-emerald-400">`),ye=u(`<div class="text-muted-foreground text-xs">No parameters`),be=G(),xe=()=>m(q),Se=()=>m(J);function X(e){let t=[],n=[],r=new Map;e.tables.forEach(n=>{if(!(`User`in n.table_type))return;let i=e.typespace.types[n.product_type_ref],a=[];if(i&&`Product`in i){let t=n.primary_key||[],o=new Set(t.map(e=>i.Product.elements[e]?.name?.some).filter(Boolean));for(let t of i.Product.elements){let n=t.name?.some||`_`,r=Q(t.algebraic_type,e.types,e.typespace.types);a.push({name:n,type:r,primary:o.has(n)})}let s=t[0]===void 0?void 0:i.Product.elements[t[0]]?.name?.some;s&&r.set(n.name,s)}t.push({id:`table-${n.name}`,type:`table`,position:{x:0,y:0},data:{name:n.name,columns:a}})});for(let e of t){let i=e.data.name,a=e.data.columns;for(let o of a){if(o.primary||!o.name.endsWith(`_id`))continue;let a=o.name.slice(0,-3),s=`table-${a}`;if(!t.find(e=>e.id===s))continue;let c=r.get(a);n.push({id:`fk-${a}-${i}-${o.name}`,source:s,target:e.id,type:`reference`,sourceColumn:c,targetColumn:o.name})}}return{nodes:t,edges:n}}function Z(e){return e.reducers.map(t=>{let n=[];for(let r of t.params.elements){let t=r.name?.some||`_`,i=Q(r.algebraic_type,e.types,e.typespace.types);n.push({name:t,type:i})}let r;if(`some`in t.lifecycle){let e=t.lifecycle.some;`Init`in e?r=`Init`:`OnConnect`in e?r=`OnConnect`:`OnDisconnect`in e&&(r=`OnDisconnect`)}return{name:t.name,params:n,lifecycle:r}})}function Q(e,t,n){if(typeof e!=`object`||!e)return`unknown`;let r=e;if(`String`in r)return`string`;if(`I8`in r)return`i8`;if(`U8`in r)return`u8`;if(`I16`in r)return`i16`;if(`U16`in r)return`u16`;if(`I32`in r)return`i32`;if(`U32`in r)return`u32`;if(`I64`in r)return`i64`;if(`U64`in r)return`u64`;if(`I128`in r)return`i128`;if(`U128`in r)return`u128`;if(`F32`in r)return`f32`;if(`F64`in r)return`f64`;if(`Bool`in r)return`bool`;if(`Bytes`in r)return`bytes`;if(`Identity`in r)return`Identity`;if(`Address`in r)return`Address`;if(`Timestamp`in r)return`Timestamp`;if(`Duration`in r)return`Duration`;if(`Array`in r)return`${Q(r.Array[0],t,n)}[]`;if(`Option`in r)return`${Q(r.Option[0],t,n)}?`;if(`Product`in r&&(r.Product.elements?.[0])?.name?.some===`__uuid__`)return`uuid`;if(`Ref`in r){let e=r.Ref[0],i=t.find(t=>t.ty===e);if(i?.name.name)return i.name.name;let a=n[e];return a&&`Product`in a&&(a.Product.elements?.[0])?.name?.some===`__uuid__`?`uuid`:`Ref<${e}>`}return`unknown`}function Ce(){_({title:b(`Schemas`),description:`SpacetimeDB Studio - View database schema definitions`});let{database:e,setDatabase:n,loading:i}=p(),[u,h]=a(null),[v,y]=a(null),[C,T]=a(!1),[D,P]=a(`graph`),[F,I]=a(!1),[L,R]=a(null),[z,B]=a(!0),V=async()=>{let t=e();if(t){I(!0),y(null);try{let e=await(await S.spacetime.describe.$get({query:{db:t}})).json();e.success&&e.data?h(e.data):y(`Failed to load schema`)}catch(e){y(e instanceof Error?e.message:`Failed to load schema`)}finally{I(!1)}}};s(()=>{e()&&V()});let H=l(()=>{let e=u();return e?X(e):{nodes:[],edges:[]}}),U=l(()=>{let e=u();return e?Z(e):[]}),W=()=>{let e=u();return e?JSON.stringify(e,null,2):``},G=async()=>{let e=W();await navigator.clipboard.writeText(e),T(!0),setTimeout(()=>T(!1),2e3)},K=()=>{V()},q=e=>{n(e),h(null);let t=new URL(window.location.href);t.searchParams.set(`db`,e),window.history.replaceState({},``,t)},J=()=>U().filter(e=>!e.lifecycle),Q=()=>U().filter(e=>e.lifecycle),Ce=()=>u()?.tables.filter(e=>`User`in e.table_type).length||0,$=l(()=>{let e=L();return e?U().find(t=>t.name===e):null});return(()=>{var n=m(pe),a=n.firstChild,[s,l]=d(a.nextSibling),p=s.nextSibling,h=p.firstChild,[_,y]=d(h.nextSibling),b=_.nextSibling,[S,T]=d(b.nextSibling),I=S.nextSibling,[L,V]=d(I.nextSibling),X=L.nextSibling,[Z,we]=d(X.nextSibling);return w(n,t(k,{title:`Schemas`,get database(){return e()},get loading(){return i()},onDatabaseChange:q,get children(){return t(c,{get when(){return u()},get children(){return[(()=>{var e=m(ee),t=e.firstChild,n=t.firstChild,[r,i]=d(n.nextSibling);r.nextSibling;var a=t.nextSibling,o=a.firstChild,[s,c]=d(o.nextSibling);return s.nextSibling,w(t,Ce,r,i),w(a,()=>U().length,s,c),e})(),t(N,{get value(){return D()},onChange:e=>P(e),class:`mr-2`,get children(){return t(M,{class:`h-7`,get children(){return[t(j,{value:`graph`,class:`px-3 py-1 text-xs`,children:`Graph`}),t(j,{value:`json`,class:`px-3 py-1 text-xs`,children:`JSON`})]}})}}),t(o,{variant:`ghost`,size:`sm`,onClick:K,get disabled(){return F()},get children(){return[t(g,{get class(){return`mr-1 size-3 ${F()?`animate-spin`:``}`}}),`Refresh`]}}),t(o,{variant:`ghost`,size:`sm`,onClick:G,get children(){return[E(()=>E(()=>!!C())()?t(Se,{}):t(xe,{})),(()=>{var e=m(te);return w(e,()=>C()?`Copied`:`Copy JSON`),e})()]}})]}})}}),s,l),w(p,t(c,{get when(){return v()},get children(){var e=m(ne),t=e.firstChild;return w(t,v),e}}),_,y),w(p,t(c,{get when(){return E(()=>!!i())()&&!u()},get children(){var e=m(Y);return w(e,t(O,{get children(){return t(A,{class:`py-8`,get children(){var e=m(re),n=e.firstChild,[r,i]=d(n.nextSibling);return r.nextSibling,w(e,t(x,{class:`mx-auto mb-4 size-12 text-muted-foreground/50`}),r,i),e}})}})),e}}),S,T),w(p,t(c,{get when(){return E(()=>!e())()&&!i()},get children(){var e=m(Y);return w(e,t(O,{get children(){return t(A,{class:`py-8`,get children(){var e=m(ie),n=e.firstChild,[r,i]=d(n.nextSibling);return r.nextSibling,w(e,t(x,{class:`mx-auto mb-4 size-12 text-muted-foreground/50`}),r,i),e}})}})),e}}),L,V),w(p,t(c,{get when(){return u()},get children(){var e=m(fe),n=e.firstChild,[i,a]=d(n.nextSibling),o=i.nextSibling,[s,l]=d(o.nextSibling);return w(e,t(c,{get when(){return D()===`graph`},get children(){return[(()=>{var e=m(oe),n=e.firstChild,[r,i]=d(n.nextSibling),a=r.nextSibling,[o,s]=d(a.nextSibling);return w(e,t(be,{get nodes(){return H().nodes},get edges(){return H().edges},fitView:!0}),r,i),w(e,t(c,{get when(){return!z()},get children(){var e=m(ae);return e.$$click=()=>B(!0),f(),e}}),o,s),e})(),t(c,{get when(){return z()},get children(){var e=m(ue),n=e.firstChild,i=n.firstChild,a=i.firstChild.nextSibling,o=a.firstChild,[s,l]=d(o.nextSibling);s.nextSibling;var u=i.nextSibling,p=n.nextSibling,[h,g]=d(p.nextSibling),_=h.nextSibling,[v,y]=d(_.nextSibling),b=v.nextSibling,[x,S]=d(b.nextSibling);return w(a,()=>U().length,s,l),u.$$click=()=>B(!1),w(e,t(c,{get when(){return J().length>0},get children(){var e=m(se),n=e.firstChild.nextSibling;return w(n,t(r,{get each(){return J()},children:e=>(()=>{var t=m(me),n=t.firstChild,r=n.nextSibling,i=r.firstChild,[a,o]=d(i.nextSibling),s=a.nextSibling.nextSibling,[c,l]=d(s.nextSibling);return t.$$click=()=>R(e.name),w(n,()=>e.name),w(r,()=>e.params.length,a,o),w(r,()=>e.params.length===1?``:`s`,c,l),f(),t})()})),e}}),h,g),w(e,t(c,{get when(){return Q().length>0},get children(){var e=m(ce),n=e.firstChild.nextSibling;return w(n,t(r,{get each(){return Q()},children:e=>(()=>{var t=m(he),n=t.firstChild,r=n.firstChild,i=r.nextSibling,a=n.nextSibling,o=a.firstChild,[s,c]=d(o.nextSibling),l=s.nextSibling.nextSibling,[u,p]=d(l.nextSibling);return t.$$click=()=>R(e.name),w(r,()=>e.name),w(i,()=>e.lifecycle),w(a,()=>e.params.length,s,c),w(a,()=>e.params.length===1?``:`s`,u,p),f(),t})()})),e}}),v,y),w(e,t(c,{get when(){return $()},get children(){var e=m(le),n=e.firstChild,i=n.firstChild,a=i.nextSibling,o=n.nextSibling,[s,c]=d(o.nextSibling),l=s.nextSibling,[u,p]=d(l.nextSibling),h=u.nextSibling,[g,_]=d(h.nextSibling);return w(i,()=>$()?.name),a.$$click=()=>R(null),w(e,(()=>{var e=E(()=>!!$()?.lifecycle);return()=>e()&&(()=>{var e=m(ge),t=e.firstChild;return w(t,()=>$()?.lifecycle),e})()})(),s,c),w(e,(()=>{var e=E(()=>!!($()?.params&&$().params.length>0));return()=>e()&&(()=>{var e=m(_e),n=e.firstChild.nextSibling,[i,a]=d(n.nextSibling);return w(e,t(r,{get each(){return $()?.params},children:e=>(()=>{var t=m(ve),n=t.firstChild,r=n.nextSibling;return w(n,()=>e.name),w(r,()=>e.type),t})()}),i,a),e})()})(),u,p),w(e,(()=>{var e=E(()=>$()?.params.length===0);return()=>e()&&m(ye)})(),g,_),f(),e}}),x,S),f(),e}})]}}),i,a),w(e,t(c,{get when(){return D()===`json`},get children(){var e=m(de),t=e.firstChild.firstChild;return w(t,W),e}}),s,l),e}}),Z,we),n})()}h([`click`]);var $={hasServerOnlyHook:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:!1}},isClientRuntimeLoaded:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:!0}},onBeforeRenderEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:null}},dataEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:null}},guardEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:null}},onRenderClient:{type:`standard`,definedAtData:{filePathToShowToUser:`vike-solid/__internal/integration/onRenderClient`,fileExportPathToShowToUser:[]},valueSerialized:{type:`pointer-import`,value:v}},Page:{type:`standard`,definedAtData:{filePathToShowToUser:`/src/pages/schemas/+Page.tsx`,fileExportPathToShowToUser:[]},valueSerialized:{type:`plus-file`,exportValues:K}},hydrationCanBeAborted:{type:`standard`,definedAtData:{filePathToShowToUser:`vike-solid/config`,fileExportPathToShowToUser:[`default`,`hydrationCanBeAborted`]},valueSerialized:{type:`js-serialized`,value:!0}},Layout:{type:`cumulative`,definedAtData:[{filePathToShowToUser:`/src/pages/+Layout.tsx`,fileExportPathToShowToUser:[]}],valueSerialized:[{type:`plus-file`,exportValues:C}]}};export{$ as configValuesSerialized};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"../chunks/chunk-mZKhtkdl.js";import{At as t,Bt as n,Ft as r,It as i,M as a,Nt as o,Ot as s,Tt as c,_t as l,a as u,bt as d,c as f,gt as p,ht as m,j as h,l as g,lt as _,mt as v,n as y,o as b,s as x,t as S,vt as C,yt as w}from"../chunks/chunk-D5ho-8Wh.js";import"../chunks/chunk-9U2RGXGQ.js";import{l as T,p as E,u as D}from"../chunks/chunk-CLzc1euR.js";/* empty css *//* empty css */import{n as O,t as k}from"../chunks/chunk-CFncNr_j.js";var A=c(`<div>`),j=c(`<div class="flex items-center justify-center py-12 text-muted-foreground"><span class=text-sm>No rows returned`),ee=e=>t(s,{get when(){return e.rows.length>0},get fallback(){return p(j)},get children(){var n=p(A);return C(n,t(O,{get columns(){return e.columns},get rows(){return e.rows},get tableName(){return e.tableName},get primaryKeyColumns(){return e.primaryKeyColumns},get onSave(){return e.onSave},get onDeleteRow(){return e.onDeleteRow}})),r(()=>v(n,`overflow-auto ${e.class??``}`)),n}}),M=e({default:()=>J}),N=c(`<div class="flex flex-col gap-1"><span>Executing update...</span><button type=button class="cursor-default text-left text-muted-foreground text-xs">`),P=c(`<button type=button class="cursor-pointer text-left text-muted-foreground text-xs underline decoration-dotted hover:text-foreground">`),F=c(`<div class="flex flex-col gap-1"><span>Row updated successfully</span><!$><!/>`),I=c(`<code class="whitespace-pre-wrap text-xs">`),L=c(`<button type=button class="cursor-pointer text-left text-muted-foreground/70 text-xs underline decoration-dotted hover:text-foreground">`),R=c(`<div class="flex flex-col gap-1"><span></span><!$><!/>`),te=c(`<div class="flex flex-col gap-1"><span>Deleting <!$><!/> row<!$><!/>...</span><button type=button class="cursor-default text-left text-muted-foreground text-xs">`),ne=c(`<div class="flex flex-col gap-1"><span><!$><!/> row<!$><!/> deleted successfully</span><!$><!/>`),re=c(`<div class=text-center><!$><!/><h2 class="mb-2 font-medium text-lg">No database selected</h2><p class="text-muted-foreground text-sm">Select a database from the header above to view tables`),ie=c(`<div class=text-center><!$><!/><h2 class="mb-2 font-medium text-lg">Select a table</h2><p class="text-muted-foreground text-sm">Choose a table from the sidebar to view its contents`),z=c(`<div class="mb-3 flex shrink-0 items-center gap-1.5 rounded bg-green-500/10 px-2 py-1 text-green-600 text-xs dark:bg-green-500/20 dark:text-green-400"><svg xmlns=http://www.w3.org/2000/svg width=12 height=12 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=1.5 stroke-linecap=round><path d="M5 15h1.394c.786 0 1.18 0 1.511.177c.332.178.55.505.986 1.159l.16.24c.422.633.633.95.92.933c.286-.017.459-.356.803-1.036l1.966-3.877c.359-.706.538-1.06.831-1.071c.293-.012.5.326.914 1.001l.637 1.04c.43.701.644 1.051.985 1.243c.342.19.752.19 1.573.19H19"></path><path d="M2 12c0-4.714 0-7.071 1.464-8.536C4.93 2 7.286 2 12 2s7.071 0 8.535 1.464C22 4.93 22 7.286 22 12s0 7.071-1.465 8.535C19.072 22 16.714 22 12 22s-7.071 0-8.536-1.465C2 19.072 2 16.714 2 12Z"></path></svg><span>Real-time sync enabled`),B=c(`<div class="flex items-center gap-2 text-destructive"><span class=font-medium>Error:</span><span class="font-mono text-sm">`),V=c(`<div class="text-center text-muted-foreground">Loading table data...`),H=c(`<span class="ml-2 inline-flex items-center gap-1 text-green-600 dark:text-green-400"><span class="relative flex size-1.5"><span class="absolute inline-flex size-full animate-ping rounded-full bg-green-500 opacity-75"></span><span class="relative inline-flex size-1.5 rounded-full bg-green-500"></span></span>live`),U=c(`<div class="shrink-0 border-border border-t px-4 py-2 text-muted-foreground text-xs"><!$><!/> rows<!$><!/>`),W=c(`<div class="flex h-full flex-col overflow-hidden"><!$><!/><!$><!/><!$><!/><!$><!/>`),G=c(`<div class="flex h-full flex-col overflow-hidden bg-background"><!$><!/><main class="flex-1 overflow-hidden p-4"><!$><!/><!$><!/><!$><!/>`);function K(e){return e==null?`NULL`:typeof e==`bigint`?e.toString():typeof e==`string`?`'${e.replace(/\\/g,`\\\\`).replace(/'/g,`''`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`)}'`:typeof e==`boolean`?e?`true`:`false`:typeof e==`number`?String(e):`'${String(e).replace(/\\/g,`\\\\`).replace(/'/g,`''`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`)}'`}function q(e){function t(e){if(typeof e==`bigint`)return e.toString();if(e&&typeof e==`object`&&!Array.isArray(e)){let n={};for(let r of Object.keys(e))n[r]=t(e[r]);return n}return Array.isArray(e)?e.map(t):e}let n={};for(let r of Object.keys(e))n[r]=t(e[r]);return JSON.stringify(n)}function J(){h({title:y(`Tables`),description:`SpacetimeDB Studio - View and browse tables`});let{database:e,setDatabase:r,selectedTable:c,loading:m}=f(),_=b(),v=k(()=>e()??void 0),[S,O]=i(null),[A,j]=i(!1),[M,J]=i(null),[Y,X]=i(!1),[Z,Q]=i(null),$=()=>{let e=c();return e?v().get(e)?.primaryKeyColumns??[]:[]},ae=e=>{r(e);let t=new URL(window.location.href);t.searchParams.set(`db`,e),window.history.replaceState({},``,t)};o(()=>{let t=e(),n=Z(),r=_.isConnected();t&&n!==t&&!r&&(Q(t),J(null),_.connect(t).catch(e=>{console.error(`Failed to connect to SpacetimeDB:`,e),J(e instanceof Error?e.message:`Connection failed`),Q(null)})),r&&n&&Q(null)}),o(()=>{let e=c(),t=_.isConnected(),r=_.getConnectionState();if(!e){O(null),X(!1);return}if(!t){r===`error`&&(J(_.connectionError()),j(!1));return}let i=null;j(!0),J(null),O(null),i=_.subscribeToTable(e,{onApplied:e=>{j(!0),X(!0),e.length>0?O({rows:e,columns:Object.keys(e[0]),numRows:e.length}):O({rows:[],columns:[],numRows:0}),j(!1)},onInsert:e=>{O(t=>{let n=Object.keys(e);if(!t)return{rows:[e],columns:n,numRows:1};let r=q(e);return t.rows.some(e=>q(e)===r)?t:{...t,columns:t.columns.length>0?t.columns:n,rows:[...t.rows,e],numRows:t.numRows+1}})},onDelete:e=>{O(t=>{if(!t)return t;let n=q(e);return{...t,rows:t.rows.filter(e=>q(e)!==n),numRows:Math.max(0,t.numRows-1)}})},onUpdate:(e,t)=>{O(n=>{if(!n)return n;let r=q(e);return{...n,rows:n.rows.map(e=>q(e)===r?t:e)}})}}),n(()=>{i?.()})});let oe=async n=>{let{tableName:r,primaryKeyColumns:i,columnId:o,newValue:s,row:c}=n;if(!r||i.length===0){a.error(`Cannot save: No primary key found for this table`);return}let u=`UPDATE ${r} SET ${`${o} = ${K(s)}`} WHERE ${i.map(e=>`${e} = ${K(c[e])}`).join(` AND `)};`,f=async()=>{try{await navigator.clipboard.writeText(u),a.success(`SQL copied to clipboard`)}catch{a.error(`Failed to copy`)}},m=a.loading((()=>{var e=p(N),t=e.firstChild.nextSibling;return C(t,(()=>{var e=w(()=>u.length>50);return()=>e()?`${u.slice(0,50)}...`:u})()),e})());try{let n=await(await x.spacetime.sql.$post({json:{sql:u,database:e()}})).json();if(n.results?.[0]?.success)a.success((()=>{var e=p(F),n=e.firstChild.nextSibling,[r,i]=l(n.nextSibling);return C(e,t(g,{get content(){return(()=>{var e=p(I);return C(e,u),e})()},props:{placement:`bottom`,zIndex:9999999999},get children(){var e=p(P);return e.$$click=f,C(e,(()=>{var e=w(()=>u.length>50);return()=>e()?`${u.slice(0,50)}...`:u})()),d(),e}}),r,i),e})(),{id:m});else{let e=n.results?.[0]?.error||`Update failed`;a.error((()=>{var n=p(R),r=n.firstChild,i=r.nextSibling,[a,o]=l(i.nextSibling);return C(r,e),C(n,t(g,{get content(){return(()=>{var e=p(I);return C(e,u),e})()},props:{placement:`bottom`,zIndex:9999999999},get children(){var e=p(L);return e.$$click=f,C(e,(()=>{var e=w(()=>u.length>50);return()=>e()?`${u.slice(0,50)}...`:u})()),d(),e}}),a,o),n})(),{id:m})}}catch(e){let n=e instanceof Error?e.message:`Failed to execute update`;a.error((()=>{var e=p(R),r=e.firstChild,i=r.nextSibling,[a,o]=l(i.nextSibling);return C(r,n),C(e,t(g,{get content(){return(()=>{var e=p(I);return C(e,u),e})()},props:{placement:`bottom`,zIndex:9999999999},get children(){var e=p(L);return e.$$click=f,C(e,(()=>{var e=w(()=>u.length>50);return()=>e()?`${u.slice(0,50)}...`:u})()),d(),e}}),a,o),e})(),{id:m})}},se=async n=>{let r=c(),i=$();if(!r||i.length===0){a.error(`Cannot delete: No primary key found for this table`);return}let o=`DELETE FROM ${r} WHERE ${n.map(e=>i.length===1?`${i[0]} = ${K(e[i[0]])}`:`(${i.map(t=>`${t} = ${K(e[t])}`).join(` AND `)})`).join(` OR `)};`,s=async()=>{try{await navigator.clipboard.writeText(o),a.success(`SQL copied to clipboard`)}catch{a.error(`Failed to copy`)}},u=a.loading((()=>{var e=p(te),t=e.firstChild,r=t.firstChild.nextSibling,[i,a]=l(r.nextSibling),s=i.nextSibling.nextSibling,[c,u]=l(s.nextSibling);c.nextSibling;var d=t.nextSibling;return C(t,()=>n.length,i,a),C(t,()=>n.length===1?``:`s`,c,u),C(d,(()=>{var e=w(()=>o.length>50);return()=>e()?`${o.slice(0,50)}...`:o})()),e})());try{let r=await(await x.spacetime.sql.$post({json:{sql:o,database:e()}})).json();if(r.results?.[0]?.success)a.success((()=>{var e=p(ne),r=e.firstChild,i=r.firstChild,[a,c]=l(i.nextSibling),u=a.nextSibling.nextSibling,[f,m]=l(u.nextSibling);f.nextSibling;var h=r.nextSibling,[_,v]=l(h.nextSibling);return C(r,()=>n.length,a,c),C(r,()=>n.length===1?``:`s`,f,m),C(e,t(g,{get content(){return(()=>{var e=p(I);return C(e,o),e})()},props:{placement:`bottom`,zIndex:9999999999},get children(){var e=p(P);return e.$$click=s,C(e,(()=>{var e=w(()=>o.length>50);return()=>e()?`${o.slice(0,50)}...`:o})()),d(),e}}),_,v),e})(),{id:u});else{let e=r.results?.[0]?.error||`Delete failed`;a.error((()=>{var n=p(R),r=n.firstChild,i=r.nextSibling,[a,c]=l(i.nextSibling);return C(r,e),C(n,t(g,{get content(){return(()=>{var e=p(I);return C(e,o),e})()},props:{placement:`bottom`,zIndex:9999999999},get children(){var e=p(L);return e.$$click=s,C(e,(()=>{var e=w(()=>o.length>50);return()=>e()?`${o.slice(0,50)}...`:o})()),d(),e}}),a,c),n})(),{id:u})}}catch(e){let n=e instanceof Error?e.message:`Failed to execute delete`;a.error((()=>{var e=p(R),r=e.firstChild,i=r.nextSibling,[a,c]=l(i.nextSibling);return C(r,n),C(e,t(g,{get content(){return(()=>{var e=p(I);return C(e,o),e})()},props:{placement:`bottom`,zIndex:9999999999},get children(){var e=p(L);return e.$$click=s,C(e,(()=>{var e=w(()=>o.length>50);return()=>e()?`${o.slice(0,50)}...`:o})()),d(),e}}),a,c),e})(),{id:u})}};return(()=>{var n=p(G),r=n.firstChild,[i,a]=l(r.nextSibling),o=i.nextSibling,d=o.firstChild,[f,h]=l(d.nextSibling),g=f.nextSibling,[_,v]=l(g.nextSibling),y=_.nextSibling,[b,x]=l(y.nextSibling);return C(n,t(E,{get title(){return c()||`Tables`},get database(){return e()},get loading(){return m()},onDatabaseChange:ae}),i,a),C(o,t(s,{get when(){return!e()},get children(){return t(T,{get children(){return t(D,{class:`py-8`,get children(){var e=p(re),n=e.firstChild,[r,i]=l(n.nextSibling);return r.nextSibling,C(e,t(u,{class:`mx-auto mb-4 size-12 text-muted-foreground/50`}),r,i),e}})}})}}),f,h),C(o,t(s,{get when(){return w(()=>!!e())()&&!c()},get children(){return t(T,{get children(){return t(D,{class:`py-8`,get children(){var e=p(ie),n=e.firstChild,[r,i]=l(n.nextSibling);return r.nextSibling,C(e,t(u,{class:`mx-auto mb-4 size-12 text-muted-foreground/50`}),r,i),e}})}})}}),_,v),C(o,t(s,{get when(){return w(()=>!!e())()&&c()},get children(){var e=p(W),n=e.firstChild,[r,i]=l(n.nextSibling),a=r.nextSibling,[o,u]=l(a.nextSibling),d=o.nextSibling,[f,m]=l(d.nextSibling),h=f.nextSibling,[g,_]=l(h.nextSibling);return C(e,t(s,{get when(){return Y()},get children(){return p(z)}}),r,i),C(e,t(s,{get when(){return M()},get children(){return t(T,{class:`mb-4`,get children(){return t(D,{class:`py-4`,get children(){var e=p(B),t=e.firstChild.nextSibling;return C(t,M),e}})}})}}),o,u),C(e,t(s,{get when(){return A()},get children(){return t(T,{class:`flex-1`,get children(){return t(D,{class:`flex h-full items-center justify-center py-8`,get children(){return p(V)}})}})}}),f,m),C(e,t(s,{get when(){return w(()=>!!S())()&&!A()},get children(){return t(T,{class:`flex min-h-0 flex-1 flex-col overflow-hidden`,get children(){return t(D,{class:`flex min-h-0 flex-1 flex-col overflow-hidden p-0`,get children(){return[t(ee,{get columns(){return S()?.columns??[]},get rows(){return S()?.rows??[]},get tableName(){return c()},get primaryKeyColumns(){return $()},onSave:oe,onDeleteRow:se,class:`flex-1`}),t(s,{get when(){return(S()?.rows?.length??0)>0},get children(){var e=p(U),n=e.firstChild,[r,i]=l(n.nextSibling),a=r.nextSibling.nextSibling,[o,c]=l(a.nextSibling);return C(e,()=>S()?.rows?.length??0,r,i),C(e,t(s,{get when(){return Y()},get children(){return p(H)}}),o,c),e}})]}})}})}}),g,_),e}}),b,x),n})()}m([`click`]);var Y={hasServerOnlyHook:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:!1}},isClientRuntimeLoaded:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:!0}},onBeforeRenderEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:null}},dataEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:null}},guardEnv:{type:`computed`,definedAtData:null,valueSerialized:{type:`js-serialized`,value:null}},onRenderClient:{type:`standard`,definedAtData:{filePathToShowToUser:`vike-solid/__internal/integration/onRenderClient`,fileExportPathToShowToUser:[]},valueSerialized:{type:`pointer-import`,value:_}},Page:{type:`standard`,definedAtData:{filePathToShowToUser:`/src/pages/tables/+Page.tsx`,fileExportPathToShowToUser:[]},valueSerialized:{type:`plus-file`,exportValues:M}},hydrationCanBeAborted:{type:`standard`,definedAtData:{filePathToShowToUser:`vike-solid/config`,fileExportPathToShowToUser:[`default`,`hydrationCanBeAborted`]},valueSerialized:{type:`js-serialized`,value:!0}},Layout:{type:`cumulative`,definedAtData:[{filePathToShowToUser:`/src/pages/+Layout.tsx`,fileExportPathToShowToUser:[]}],valueSerialized:[{type:`plus-file`,exportValues:S}]}};export{Y as configValuesSerialized};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.flow-container{width:100%;height:100%;overflow:hidden;position:relative;background-color:var(--flow-bg, #f8fafc);cursor:grab}:root.dark .flow-container{--flow-bg: #1a1a2e}.flow-container:active{cursor:grabbing}.flow-background{position:absolute;top:0;left:0;width:10000px;height:10000px;transform-origin:0 0;background-image:radial-gradient(circle,var(--flow-grid-dot, #cbd5e1) 1px,transparent 1px);background-size:20px 20px}:root.dark .flow-background{--flow-grid-dot: #333}.edges-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.edge-group{pointer-events:all;cursor:pointer}.edge-path{stroke:var(--flow-edge-color, #94a3b8);stroke-width:2;fill:none;transition:stroke .2s,stroke-width .2s}:root.dark .edge-path{--flow-edge-color: #666}.edge-path:hover,.edge-path.selected{stroke:var(--flow-edge-selected, #f97316);stroke-width:3}:root.dark .edge-path:hover,:root.dark .edge-path.selected{--flow-edge-selected: #e38b29}.edge-arrow-marker{fill:var(--flow-edge-color, #94a3b8)}:root.dark .edge-arrow-marker{fill:#666}.edge-arrow-marker.selected{fill:var(--flow-edge-selected, #f97316)}:root.dark .edge-arrow-marker.selected{fill:#e38b29}.edge-delete-circle{fill:var(--flow-delete-bg, #dc2626);cursor:pointer}:root.dark .edge-delete-circle{--flow-delete-bg: #a11111}.edge-delete-x{fill:#fff;font-size:14px;font-weight:700;pointer-events:all;cursor:pointer}.nodes-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.flow-node{position:absolute;pointer-events:all;cursor:pointer;min-width:160px;max-width:320px;background:var(--flow-node-bg, #ffffff);border:1px solid var(--flow-node-border, #e2e8f0);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;transition:border-color .2s,box-shadow .2s;font-family:ui-monospace,SF Mono,Menlo,Monaco,Cascadia Mono,monospace}:root.dark .flow-node{--flow-node-bg: #16213e;--flow-node-border: #0f3460;box-shadow:0 4px 6px -1px #0000004d}.flow-node:hover{border-color:var(--flow-node-hover-border, #f97316);box-shadow:0 8px 12px -2px #00000026}:root.dark .flow-node:hover{--flow-node-hover-border: #e38b29;box-shadow:0 8px 12px -2px #0006}.flow-node.selected{border-color:var(--flow-node-selected-border, #f97316);box-shadow:0 0 0 2px var(--flow-node-selected-glow, rgba(249, 115, 22, .2))}:root.dark .flow-node.selected{--flow-node-selected-border: #e38b29;--flow-node-selected-glow: rgba(227, 139, 41, .3)}.flow-node.reducer{border-color:var(--flow-reducer-border, #3b82f6)}.flow-node.reducer:hover,.flow-node.reducer.selected{border-color:var(--flow-reducer-selected, #60a5fa)}:root.dark .flow-node.reducer{--flow-reducer-border: #4a9eff}:root.dark .flow-node.reducer:hover,:root.dark .flow-node.reducer.selected{--flow-reducer-selected: #6bb3ff}.node-header{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--flow-node-border, #e2e8f0);background:var(--flow-node-header-bg, #f8fafc);border-radius:7px 7px 0 0}:root.dark .node-header{--flow-node-header-bg: #1a1a2e;--flow-node-border: #0f3460}.node-type-icon{font-size:14px}.node-title{font-size:13px;font-weight:600;color:var(--flow-node-title, #1e293b)}:root.dark .node-title{--flow-node-title: #fff}.node-columns,.node-params{padding:8px 0}.node-column,.node-param{display:flex;align-items:center;gap:8px;padding:4px 12px;font-size:12px}.column-name,.param-name{color:var(--flow-column-name, #0369a1);flex:1}:root.dark .column-name,:root.dark .param-name{--flow-column-name: #a8dadc}.column-type,.param-type{color:var(--flow-column-type, #475569);font-size:11px}:root.dark .column-type,:root.dark .param-type{--flow-column-type: #98c1d9}.column-primary{background:var(--flow-primary-bg, #f97316);color:var(--flow-primary-text, #fff);font-size:9px;font-weight:600;padding:1px 4px;border-radius:3px}:root.dark .column-primary{--flow-primary-bg: #e38b29;--flow-primary-text: #000}.node-param{gap:12px}.param-type{font-family:ui-monospace,monospace}.flow-node.reducer .node-header{border-bottom-color:var(--flow-reducer-border, #3b82f6)}:root.dark .flow-node.reducer .node-header{--flow-reducer-border: #4a9eff}.flow-node.reducer .node-params{padding:6px 0}.flow-node.reducer .node-param{font-size:11px;padding:3px 12px}.flow-node.reducer .param-name{color:var(--flow-param-name, #ca8a04)}:root.dark .flow-node.reducer .param-name{--flow-param-name: #ffd166}.flow-node.reducer .param-type{color:var(--flow-param-type, #0369a1)}:root.dark .flow-node.reducer .param-type{--flow-param-type: #a8dadc}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-animation=scale-subtle][data-placement^=top]{transform-origin:bottom}.tippy-box[data-animation=scale-subtle][data-placement^=bottom]{transform-origin:top}.tippy-box[data-animation=scale-subtle][data-placement^=left]{transform-origin:right}.tippy-box[data-animation=scale-subtle][data-placement^=right]{transform-origin:left}.tippy-box[data-animation=scale-subtle][data-state=hidden]{transform:scale(.8);opacity:0}.tippy-box[data-theme~=custom]{background-color:var(--color-foreground);color:var(--color-card);border:0px solid var(--color-border);border-radius:0;box-shadow:var(--shadow-md)}.tippy-box[data-theme~=custom][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--color-foreground)}.tippy-box[data-theme~=custom][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--color-foreground)}.tippy-box[data-theme~=custom][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--color-foreground)}.tippy-box[data-theme~=custom][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--color-foreground)}.tippy-box[data-theme~=custom] .tippy-content{color:var(--color-card);font-size:12px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-x-reverse:0}}}@layer theme{:root,:host{--font-sans:"Inter";--font-mono:"Source Code Pro", "JetBrains Mono", "Fira Code", Consolas, monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-amber-400:oklch(82.8% .189 84.429);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:0rem;--radius-md:0rem;--radius-lg:0rem;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-card-foreground:var(--card-foreground);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-primary:var(--primary);--color-primary-foreground:var(--primary-foreground);--color-secondary:var(--secondary);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-destructive:var(--destructive);--color-destructive-foreground:var(--destructive-foreground);--color-border:var(--border);--color-input:var(--input);--color-ring:var(--ring);--animate-fadeIn:fadeIn .2s ease-out forwards;--animate-fadeOut:fadeOut .2s ease-in forwards;--animate-flyUpAndScale:flyUpAndScale .35s cubic-bezier(.05, .7, .1, 1) forwards;--animate-flyUpAndScaleExit:flyUpAndScaleExit .2s cubic-bezier(.3, 0, .8, .15) forwards}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}*,:after,:before,::backdrop{border-color:var(--border,currentColor)}::file-selector-button{border-color:var(--border,currentColor)}:root{--background:#0a0a0a;--foreground:#fafafa;--card:#111;--card-foreground:#fafafa;--popover:#111;--popover-foreground:#fafafa;--primary:#e5e5e5;--primary-foreground:#0a0a0a;--secondary:#1a1a1a;--secondary-foreground:#e5e5e5;--muted:#1a1a1a;--muted-foreground:#737373;--accent:#1f1f1f;--accent-foreground:#fafafa;--destructive:#ef4444;--destructive-foreground:#fafafa;--border:#262626;--input:#1a1a1a;--ring:#e5e5e5;--radius:0rem}.light{--background:#fafafa;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#171717;--primary-foreground:#fafafa;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--accent:#e5e5e5;--accent-foreground:#171717;--destructive:#ef4444;--destructive-foreground:#fafafa;--border:#e5e5e5;--input:#f5f5f5;--ring:#171717}}@layer components;@layer utilities{.collapse{visibility:collapse}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-4{margin:calc(var(--spacing) * 4)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-4{margin-right:calc(var(--spacing) * 4)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-20{height:calc(var(--spacing) * 20)}.h-\[33px\]{height:33px}.h-\[50px\]{height:50px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[300px\]{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-12{width:calc(var(--spacing) * 12)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.w-px{width:1px}.max-w-\[50\%\]{max-width:50%}.max-w-\[160px\]{max-width:160px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-32{min-width:calc(var(--spacing) * 32)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\[var\(--kb-menu-content-transform-origin\)\]{transform-origin:var(--kb-menu-content-transform-origin)}.origin-\[var\(--kb-popover-content-transform-origin\)\]{transform-origin:var(--kb-popover-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-fadeOut{animation:var(--animate-fadeOut)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-cell{cursor:cell}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.resize-none{resize:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-border,.border-border\/30{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\/30{border-color:color-mix(in oklab,var(--color-border) 30%,transparent)}}.border-border\/50{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--color-border) 50%,transparent)}}.border-destructive,.border-destructive\/30{border-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--color-destructive) 30%,transparent)}}.border-input{border-color:var(--color-input)}.border-muted-foreground\/30{border-color:var(--color-muted-foreground)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/30{border-color:color-mix(in oklab,var(--color-muted-foreground) 30%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.border-transparent{border-color:#0000}.border-t-primary{border-top-color:var(--color-primary)}.border-l-primary{border-left-color:var(--color-primary)}.border-l-transparent{border-left-color:#0000}.bg-\[\#282C34\]{background-color:#282c34}.bg-accent,.bg-accent\/50{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/50{background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.bg-background,.bg-background\/80{background-color:var(--color-background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/80{background-color:color-mix(in oklab,var(--color-background) 80%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive,.bg-destructive\/10{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--color-destructive) 10%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500) 10%,transparent)}}.bg-foreground{background-color:var(--color-foreground)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-muted-foreground\/50{background-color:var(--color-muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/50{background-color:color-mix(in oklab,var(--color-muted-foreground) 50%,transparent)}}.bg-muted\/10{background-color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/10{background-color:color-mix(in oklab,var(--color-muted) 10%,transparent)}}.bg-muted\/20{background-color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--color-muted) 20%,transparent)}}.bg-muted\/30{background-color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--color-muted) 30%,transparent)}}.bg-popover{background-color:var(--color-popover)}.bg-primary,.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary) 10%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-7{padding-inline:calc(var(--spacing) * 7)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-foreground{color:var(--color-accent-foreground)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab,red,red)){.text-amber-400\/80{color:color-mix(in oklab,var(--color-amber-400) 80%,transparent)}}.text-blue-400{color:var(--color-blue-400)}.text-card-foreground{color:var(--color-card-foreground)}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-400\/80{color:#00d294cc}@supports (color:color-mix(in lab,red,red)){.text-emerald-400\/80{color:color-mix(in oklab,var(--color-emerald-400) 80%,transparent)}}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground,.text-foreground\/50{color:var(--color-foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.text-foreground\/90{color:var(--color-foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,var(--color-foreground) 90%,transparent)}}.text-green-600{color:var(--color-green-600)}.text-muted-foreground,.text-muted-foreground\/50{color:var(--color-muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--color-muted-foreground) 50%,transparent)}}.text-muted-foreground\/60{color:var(--color-muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--color-muted-foreground) 60%,transparent)}}.text-muted-foreground\/70{color:var(--color-muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--color-muted-foreground) 70%,transparent)}}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground,.text-primary-foreground\/50{color:var(--color-primary-foreground)}@supports (color:color-mix(in lab,red,red)){.text-primary-foreground\/50{color:color-mix(in oklab,var(--color-primary-foreground) 50%,transparent)}}.text-primary\/50{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/50{color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-sky-400{color:var(--color-sky-400)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-25{opacity:.25}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-primary\/50{--tw-ring-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.ring-primary\/50{--tw-ring-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur-none{--tw-blur: ;filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[animation-duration\:80ms\]{animation-duration:80ms}.ring-inset{--tw-ring-inset:inset}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing) * 1)}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}@media(hover:hover){.hover\:bg-accent:hover,.hover\:bg-accent\/30:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.hover\:bg-accent\/50:hover{background-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--color-destructive) 90%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--color-secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--color-secondary) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:text-destructive:focus{color:var(--color-destructive)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-0:focus{outline-style:var(--tw-outline-style);outline-width:0}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.not-disabled\:active\:scale-95:not(:disabled):active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-progress:disabled{cursor:progress}.disabled\:opacity-50:disabled{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:var(--color-accent)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:var(--color-accent-foreground)}.data-expanded\:animate-fadeIn[data-expanded]{animation:var(--animate-fadeIn)}.data-\[closed\]\:animate-fadeOut[data-closed]{animation:var(--animate-fadeOut)}.data-\[closed\]\:animate-flyUpAndScaleExit[data-closed]{animation:var(--animate-flyUpAndScaleExit)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[expanded\]\:animate-fadeIn[data-expanded]{animation:var(--animate-fadeIn)}.data-\[expanded\]\:animate-flyUpAndScale[data-expanded]{animation:var(--animate-flyUpAndScale)}.data-\[expanded\]\:bg-accent[data-expanded]{background-color:var(--color-accent)}.data-\[expanded\]\:text-muted-foreground[data-expanded]{color:var(--color-muted-foreground)}.data-\[orientation\=vertical\]\:h-px[data-orientation=vertical]{height:1px}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[orientation\=vertical\]\:after\:left-0[data-orientation=vertical]:after{content:var(--tw-content);left:calc(var(--spacing) * 0)}.data-\[orientation\=vertical\]\:after\:h-1[data-orientation=vertical]:after{content:var(--tw-content);height:calc(var(--spacing) * 1)}.data-\[orientation\=vertical\]\:after\:w-full[data-orientation=vertical]:after{content:var(--tw-content);width:100%}.data-\[orientation\=vertical\]\:after\:translate-x-0[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[orientation\=vertical\]\:after\:-translate-y-1\/2[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[selected\]\:border-primary[data-selected]{border-color:var(--color-primary)}.data-\[selected\]\:text-foreground[data-selected]{color:var(--color-foreground)}@media(min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:gap-x-5{column-gap:calc(var(--spacing) * 5)}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media(min-width:64rem){.lg\:w-72{width:calc(var(--spacing) * 72)}}@media(prefers-color-scheme:dark){.dark\:bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.dark\:text-green-400{color:var(--color-green-400)}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--color-muted-foreground)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing) * 0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:size-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:size-5 [cmdk-item] svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\[data-orientation\=vertical\]\>div\]\:rotate-90[data-orientation=vertical]>div{rotate:90deg}}body{background-color:var(--background);color:var(--foreground);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.icon-light{display:none}:root:not(.light) .icon-dark{display:inline}:root:not(.light) .icon-light,:root.light .icon-dark{display:none}:root.light .icon-light{display:inline}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes flyUpAndScale{0%{opacity:0;transform:translateY(100px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes flyUpAndScaleExit{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translateY(50px)scale(.97)}}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg width="640" height="640" viewBox="0 0 640 640" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_1593_1925)">
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M514.832 308.261C510.567 208.836 529.176 151.399 622 45L470.805 197.793L457.45 211.29C445.419 223.447 444.68 242.492 452.167 257.87C478.81 312.596 469.606 380.633 424.553 426.162C379.691 471.498 312.743 480.913 258.708 454.407C243.11 446.756 223.705 447.505 211.485 459.854L198.573 472.903L198.7 473.01L144.099 528.589C185.326 504.458 248.988 511.382 287.392 515.558C298.029 516.715 306.728 517.661 312.476 517.678C365.084 520.293 418.548 501.3 458.727 460.697C500.074 418.912 518.776 362.908 514.832 308.261ZM326.524 122.322C332.272 122.339 340.971 123.285 351.608 124.442C390.012 128.619 453.674 135.542 494.901 111.412L440.3 166.99L440.427 167.097L427.515 180.146C415.295 192.495 395.89 193.245 380.292 185.593C326.257 159.087 259.309 168.502 214.447 213.838C169.394 259.367 160.19 327.404 186.833 382.131C194.32 397.509 193.581 416.553 181.55 428.71L168.195 442.207L17 595C109.824 488.601 128.433 431.164 124.168 331.74C120.224 277.092 138.926 221.088 180.273 179.304C220.452 138.701 273.916 119.707 326.524 122.322ZM435.847 320C435.847 384.935 383.757 437.576 319.5 437.576C255.243 437.576 203.153 384.935 203.153 320C203.153 255.064 255.243 202.423 319.5 202.423C383.757 202.423 435.847 255.064 435.847 320ZM444.797 320C444.797 389.93 388.7 446.621 319.5 446.621C250.3 446.621 194.203 389.93 194.203 320C194.203 250.069 250.3 193.378 319.5 193.378C388.7 193.378 444.797 250.069 444.797 320Z" fill="#F4F6FC"/>
|
|
4
|
+
<path d="M439.25 320C439.25 386.136 385.636 439.75 319.5 439.75C253.364 439.75 199.75 386.136 199.75 320C199.75 253.864 253.364 200.25 319.5 200.25C385.636 200.25 439.25 253.864 439.25 320Z" stroke="#F4F6FC" stroke-width="8"/>
|
|
5
|
+
</g>
|
|
6
|
+
<defs>
|
|
7
|
+
<clipPath id="clip0_1593_1925">
|
|
8
|
+
<rect width="640" height="640" fill="white"/>
|
|
9
|
+
</clipPath>
|
|
10
|
+
</defs>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg width="640" height="640" viewBox="0 0 640 640" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_1593_1941)">
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M514.832 308.261C510.567 208.836 529.176 151.399 622 45L470.805 197.793L457.45 211.29C445.419 223.447 444.68 242.492 452.167 257.87C478.81 312.596 469.606 380.633 424.553 426.162C379.691 471.498 312.743 480.913 258.708 454.407C243.11 446.756 223.705 447.505 211.485 459.854L198.573 472.903L198.7 473.01L144.099 528.589C185.326 504.458 248.988 511.382 287.392 515.558C298.029 516.715 306.728 517.661 312.476 517.678C365.084 520.293 418.548 501.3 458.727 460.697C500.074 418.912 518.776 362.908 514.832 308.261ZM326.524 122.322C332.272 122.339 340.971 123.285 351.608 124.442C390.012 128.619 453.674 135.542 494.901 111.412L440.3 166.99L440.427 167.097L427.515 180.146C415.295 192.495 395.89 193.245 380.292 185.593C326.257 159.087 259.309 168.502 214.447 213.838C169.394 259.367 160.19 327.404 186.833 382.131C194.32 397.509 193.581 416.553 181.55 428.71L168.195 442.207L17 595C109.824 488.601 128.433 431.164 124.168 331.74C120.224 277.092 138.926 221.088 180.273 179.304C220.452 138.701 273.916 119.707 326.524 122.322ZM435.847 320C435.847 384.935 383.757 437.576 319.5 437.576C255.243 437.576 203.153 384.935 203.153 320C203.153 255.064 255.243 202.423 319.5 202.423C383.757 202.423 435.847 255.064 435.847 320ZM444.797 320C444.797 389.93 388.7 446.621 319.5 446.621C250.3 446.621 194.203 389.93 194.203 320C194.203 250.069 250.3 193.378 319.5 193.378C388.7 193.378 444.797 250.069 444.797 320Z" fill="#060606"/>
|
|
4
|
+
<path d="M439.25 320C439.25 386.136 385.636 439.75 319.5 439.75C253.364 439.75 199.75 386.136 199.75 320C199.75 253.864 253.364 200.25 319.5 200.25C385.636 200.25 439.25 253.864 439.25 320Z" stroke="#060606" stroke-width="8"/>
|
|
5
|
+
</g>
|
|
6
|
+
<defs>
|
|
7
|
+
<clipPath id="clip0_1593_1941">
|
|
8
|
+
<rect width="640" height="640" fill="white"/>
|
|
9
|
+
</clipPath>
|
|
10
|
+
</defs>
|
|
11
|
+
</svg>
|