From d37070bed5ecf8f5c973fe6a653165d832ccfee1 Mon Sep 17 00:00:00 2001 From: vwh Date: Tue, 13 Aug 2024 10:39:00 +0300 Subject: [PATCH] Updates --- .../{index-CdfIWGO4.js => index-CPvICklA.js} | 6 +++--- assets/index-CPvICklA.js.gz | Bin 0 -> 14656 bytes assets/index-CdfIWGO4.js.gz | Bin 14615 -> 0 bytes ...{index-3WB_jjc1.css => index-z8HxNPN9.css} | 2 +- ...-3WB_jjc1.css.gz => index-z8HxNPN9.css.gz} | Bin 6927 -> 6931 bytes index.html | 4 ++-- index.html.gz | Bin 1828 -> 1828 bytes sw.js | 2 +- 8 files changed, 7 insertions(+), 7 deletions(-) rename assets/{index-CdfIWGO4.js => index-CPvICklA.js} (60%) create mode 100644 assets/index-CPvICklA.js.gz delete mode 100644 assets/index-CdfIWGO4.js.gz rename assets/{index-3WB_jjc1.css => index-z8HxNPN9.css} (97%) rename assets/{index-3WB_jjc1.css.gz => index-z8HxNPN9.css.gz} (96%) diff --git a/assets/index-CdfIWGO4.js b/assets/index-CPvICklA.js similarity index 60% rename from assets/index-CdfIWGO4.js rename to assets/index-CPvICklA.js index 49d873c..aa20845 100644 --- a/assets/index-CdfIWGO4.js +++ b/assets/index-CPvICklA.js @@ -1,5 +1,5 @@ -import{r as n,j as e,R as k}from"./react-DmpIMwDM.js";import{c as Ct}from"./react-dom-tIxIBQuZ.js";import{c as Et}from"./zustand-BpWCCnYR.js";import{i as vt}from"./sql.js-Ch_tM77n.js";import{F as ce}from"./file-saver-DhbZvGod.js";import{S as Rt,c as de,I as Tt,d as me,e as ue,f as St,g as fe,V as At,L as xe,h as pe,i as Dt,j as Lt,k as he,l as It,G as Ft,m as kt,n as ge,o as Ot,p as Pt,q as Mt,r as be,s as Bt,t as Ut,u as ye,v as Qt,w as $t,x as je,y as Ht,z as Ne,A as we,B as Ce,E as Ee,F as qt,H as ve,J as Re,K as Te,M as Se,N as Ae,Q as De,U as Vt,W as zt}from"./@radix-ui-E10elJI3.js";import{c as Y}from"./class-variance-authority-Bb4qSo10.js";import{c as Gt}from"./clsx-B-dksMZM.js";import{t as _t}from"./tailwind-merge-BkWO730n.js";import{C as Wt,a as Kt,b as Le,c as Yt,d as Xt,A as Jt,e as Zt,f as es,K as ts,g as ss,h as as,i as Ie,T as rs,H as os,j as ns,k as ls,I as is,l as cs,L as ds,m as ms,F as us,P as fs,n as xs,o as ps,M as hs,p as gs,q as bs,R as ys,r as js,s as Ns,S as Fe,t as ws,u as Cs,G as Es,v as vs,Z as Rs,w as Ts,x as Ss,y as As}from"./lucide-react-C1VID-M1.js";import{f as Ds,a as X}from"./date-fns-fqmN70Xj.js";import{f as Ls}from"./sql-formatter-BoZ82dp4.js";import{G as Is,I as Fs,t as ks}from"./@codemirror-CCjSF3Vf.js";import{R as Os,n as Ps}from"./@uiw-CvcbIrPa.js";import{u as Ms}from"./react-dropzone-D-IBOhIS.js";import{J as $,T as Bs}from"./sonner-BJG0sXho.js";import{D as T}from"./vaul-LE4MEETp.js";import"./attr-accept-BWI1aNlo.js";import"./scheduler-CzFDRTuY.js";import"./use-sync-external-store-ByYeed7R.js";import"./aria-hidden-DQ5UC2Eg.js";import"./react-remove-scroll-BOyN_WUU.js";import"./tslib-CuZy2iRz.js";import"./react-remove-scroll-bar-DZjhPxUV.js";import"./react-style-singleton-CpxBwIWS.js";import"./get-nonce-C-Z93AgS.js";import"./use-sidecar-D8_hMcUG.js";import"./use-callback-ref-DRzK4jWO.js";import"./@floating-ui-DdUjdMBw.js";import"./nearley-CG12bGQB.js";import"./@lezer-DgLl1T_N.js";import"./crelt-C8TCjufn.js";import"./style-mod-Bc2inJdb.js";import"./w3c-keyname-Vcq4gwWv.js";import"./@babel-BjXSgPXB.js";import"./prop-types-psm7UO16.js";import"./file-selector-CBHVlu32.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const i of l.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function a(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerPolicy&&(l.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?l.credentials="include":o.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(o){if(o.ep)return;o.ep=!0;const l=a(o);fetch(o.href,l)}})();const Us="/sql.wasm",Qs=async t=>{try{const[s,a]=await Promise.all([t.arrayBuffer(),vt({locateFile:()=>Us})]);return new a.Database(new Uint8Array(s))}catch(s){throw console.error("Failed to load database:",s),s}},J=t=>{var s;try{return((s=t.exec("SELECT name FROM sqlite_master WHERE type='table';")[0])==null?void 0:s.values.flat())||[]}catch(a){return console.error("Failed to get table names:",a),[]}},$s=async(t,s)=>{try{const[a,r]=t.exec(` +import{r as l,j as e,R as k}from"./react-DmpIMwDM.js";import{c as Ct}from"./react-dom-tIxIBQuZ.js";import{c as Et}from"./zustand-BpWCCnYR.js";import{i as vt}from"./sql.js-Ch_tM77n.js";import{F as ce}from"./file-saver-DhbZvGod.js";import{S as Rt,c as de,I as Tt,d as ue,e as me,f as St,g as fe,V as At,L as xe,h as pe,i as Dt,j as Lt,k as he,l as It,G as Ft,m as kt,n as ge,o as Ot,p as Pt,q as Mt,r as be,s as Bt,t as Ut,u as ye,v as Qt,w as $t,x as je,y as Ht,z as Ne,A as we,B as Ce,E as Ee,F as qt,H as ve,J as Re,K as Te,M as Se,N as Ae,Q as De,U as Vt,W as zt}from"./@radix-ui-E10elJI3.js";import{c as Y}from"./class-variance-authority-Bb4qSo10.js";import{c as Gt}from"./clsx-B-dksMZM.js";import{t as Wt}from"./tailwind-merge-BkWO730n.js";import{C as _t,a as Kt,b as Le,c as Yt,d as Xt,A as Jt,e as Zt,f as es,K as ts,g as ss,h as as,i as Ie,T as rs,H as os,j as ls,k as ns,I as is,l as cs,L as ds,m as us,F as ms,P as fs,n as xs,o as ps,M as hs,p as gs,q as bs,R as ys,r as js,s as Ns,S as Fe,t as ws,u as Cs,G as Es,v as vs,Z as Rs,w as Ts,x as Ss,y as As}from"./lucide-react-C1VID-M1.js";import{f as Ds,a as X}from"./date-fns-fqmN70Xj.js";import{f as Ls}from"./sql-formatter-BoZ82dp4.js";import{G as Is,I as Fs,t as ks}from"./@codemirror-CCjSF3Vf.js";import{R as Os,n as Ps}from"./@uiw-CvcbIrPa.js";import{u as Ms}from"./react-dropzone-D-IBOhIS.js";import{J as $,T as Bs}from"./sonner-BJG0sXho.js";import{D as T}from"./vaul-LE4MEETp.js";import"./attr-accept-BWI1aNlo.js";import"./scheduler-CzFDRTuY.js";import"./use-sync-external-store-ByYeed7R.js";import"./aria-hidden-DQ5UC2Eg.js";import"./react-remove-scroll-BOyN_WUU.js";import"./tslib-CuZy2iRz.js";import"./react-remove-scroll-bar-DZjhPxUV.js";import"./react-style-singleton-CpxBwIWS.js";import"./get-nonce-C-Z93AgS.js";import"./use-sidecar-D8_hMcUG.js";import"./use-callback-ref-DRzK4jWO.js";import"./@floating-ui-DdUjdMBw.js";import"./nearley-CG12bGQB.js";import"./@lezer-DgLl1T_N.js";import"./crelt-C8TCjufn.js";import"./style-mod-Bc2inJdb.js";import"./w3c-keyname-Vcq4gwWv.js";import"./@babel-BjXSgPXB.js";import"./prop-types-psm7UO16.js";import"./file-selector-CBHVlu32.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const i of n.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function a(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function r(o){if(o.ep)return;o.ep=!0;const n=a(o);fetch(o.href,n)}})();const Us="/sql.wasm",Qs=async t=>{try{const[s,a]=await Promise.all([t.arrayBuffer(),vt({locateFile:()=>Us})]);return new a.Database(new Uint8Array(s))}catch(s){throw console.error("Failed to load database:",s),s}},J=t=>{var s;try{return((s=t.exec("SELECT name FROM sqlite_master WHERE type='table';")[0])==null?void 0:s.values.flat())||[]}catch(a){return console.error("Failed to get table names:",a),[]}},$s=async(t,s)=>{try{const[a,r]=t.exec(` PRAGMA table_info("${s}"); PRAGMA foreign_key_list("${s}"); - `),o=a.values.reduce((l,i)=>(l[i[1]]={type:i[2]?i[2].toUpperCase():i[2],isPrimaryKey:i[5]===1,isForeignKey:!1,nullable:i[3]===0},l),{});return r==null||r.values.forEach(l=>{const i=l[3];o[i]&&(o[i].isForeignKey=!0)}),o}catch(a){throw console.error(`Failed to get schema for table "${s}":`,a),a}},_=t=>{if(t.length===0)return{data:[],columns:[]};const{columns:s,values:a}=t[0];return{data:a.map(o=>Object.fromEntries(s.map((l,i)=>[l,o[i]]))),columns:s}},Hs=t=>{try{const s=t.export(),a=new Blob([s],{type:"application/x-sqlite3"});ce.saveAs(a,"database.sqlite")}catch(s){throw console.error("Failed to export database:",s),s}},qs=(t,s)=>{const a=t.map(o=>`"${o}"`).join(","),r=s.map(o=>t.map(l=>`"${o[l]??""}"`).join(","));return[a,...r].join(` -`)},Z=(t,s,a)=>{try{const r=s.exec(t);if(r.length===0)throw new Error(`Query "${t}" returned no results.`);const{data:o,columns:l}=_(r),i=qs(l,o),m=new Blob([i],{type:"text/csv;charset=utf-8;"});ce.saveAs(m,`${a}.csv`)}catch(r){throw console.error(`Failed to get CSV for query "${t}":`,r),r}},Vs=(t,s)=>{const r=J(t)[s],o=`SELECT * FROM "${r}"`;Z(o,t,r)},zs=t=>{J(t).forEach(s=>{const a=`SELECT * FROM "${s}"`;Z(a,t,s)})},Gs=(t,s)=>{Z(s,t,"custom_query")},j=Et((t,s)=>({db:null,isLoading:!1,loadDatabase:async a=>{t({isLoading:!0,queryError:null});try{const r=await Qs(a),o=J(r),l=await Promise.all(o.map(async c=>{const f=r.exec(`SELECT COUNT(*) FROM "${c}"`),x=parseInt(f[0].values[0][0],10),p=await $s(r,c);return{name:c,count:x,schema:p}})),i=l.map(({name:c,count:f})=>({name:c,count:f})),m=l.reduce((c,{name:f,schema:x})=>(c[f]=x,c),{});t({db:r,tables:i,tableSchemas:m,isLoading:!1})}catch(r){throw console.error("Failed to load database:",r),t({isLoading:!1,queryError:"Failed to load database"}),r}},tables:[],setTables:a=>t({tables:a}),selectedTable:"0",setSelectedTable:a=>t({selectedTable:a}),tableSchemas:{},customQuery:"",setIsCustomQuery:a=>t({isCustomQuery:a}),setCustomQuery:a=>t({customQuery:a}),isCustomQuery:!1,queryError:null,setQueryError:a=>t({queryError:a}),query:a=>{const{db:r}=s();return r?r.exec(a):(console.warn("Database is not loaded."),[])},rowPerPageOrAuto:"auto",setRowPerPageOrAuto:a=>t({rowPerPageOrAuto:a}),queryHistory:[],unShiftToQueryHistory:a=>t(r=>({queryHistory:[a,...r.queryHistory]})),expandPage:!1,setExpandPage:a=>t({expandPage:a}),dateFormatValue:"formatDateFormatted",setDateFormatValue:a=>t({dateFormatValue:a}),filters:{},setFilters:a=>t({filters:a}),appendToFilters:(a,r)=>t(o=>({filters:{...o.filters,[a]:r}})),filtersNeedClear:!1,setFiltersNeedClear:a=>t({filtersNeedClear:a}),totalRows:0,setTotalRows:a=>t({totalRows:a}),orderBy:null,setOrderBy:a=>t({orderBy:a}),orderByDirection:"ASC",setOrderByDirection:a=>t({orderByDirection:a})}));function _s(t,s,a){const{db:r,setQueryError:o,setIsCustomQuery:l,query:i,unShiftToQueryHistory:m,customQuery:c,setCustomQuery:f,filters:x,totalRows:p,setTotalRows:g,orderBy:u,orderByDirection:h,selectedTable:w,tables:C}=j(),[N,E]=n.useState([]),[L,v]=n.useState([]),[S,D]=n.useState(!0),I=n.useMemo(()=>Object.fromEntries(Object.entries(x).filter(([,b])=>b!=="")),[x]),A=n.useMemo(()=>Object.entries(I).map(([b,R])=>`LOWER(${b}) LIKE LOWER('%${R}%')`).join(" AND "),[I]);n.useEffect(()=>{if(!r||!t)return;(async()=>{D(!0);try{const R=`PRAGMA table_info("${t}");`,U=i(R)[0].values.map(F=>({name:F[1],type:F[2]})).map(F=>F.type.toUpperCase()==="BLOB"?`hex(${F.name}) as ${F.name}`:F.name).join(", "),bt=`SELECT COUNT(*) as count FROM "${t}"${A?` WHERE ${A}`:""}`,yt=i(bt)[0].values[0][0];g(yt);let O=`SELECT ${U} FROM "${t}"`;A&&(O+=` WHERE ${A}`),u&&(O+=` ORDER BY "${u}" ${h}`),O+=` LIMIT ${s} OFFSET ${a};`;const jt=i(O),{data:Nt,columns:wt}=_(jt);v(wt),E(Nt),o(null),f(O),m(O)}catch(R){R instanceof Error&&o(R.message)}finally{D(!1)}})()},[r,t,a,s,A,h]);const z=n.useCallback(()=>{if(c.trim()===""){o(null);return}D(!0);try{const b=C[parseInt(w)].name,R=i(c.replace("@",`"${b}"`)),{data:M,columns:B}=_(R);v(B),E(M),l(!0),o(null)}catch(b){b instanceof Error&&o(b.message)}finally{D(!1)}},[c,i,o,l,C,w]);return{data:N,columns:L,customQuery:c,setCustomQuery:f,isQueryLoading:S,handleCustomQuery:z,totalRows:p}}function Ws(t){const{setIsCustomQuery:s}=j(),[a,r]=n.useState(0);n.useEffect(()=>{r(0),s(!1)},[s]);const o=n.useMemo(()=>{if(t!=="auto")return t;const l=window.innerHeight,f=Math.min(2e3,40+l*.03),x=Math.max(1,Math.floor(l/f));return Math.min(Math.max(x,5),50)},[t]);return{page:a,setPage:r,rowsPerPage:o}}const ee=Y("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}});function d(...t){return _t(Gt(t))}const y=n.forwardRef(({className:t,variant:s,size:a,asChild:r=!1,...o},l)=>{const i=r?Rt:"button";return e.jsx(i,{className:d(ee({variant:s,size:a,className:t})),ref:l,...o})});y.displayName="Button";function Ks({page:t,setPage:s,rowsPerPage:a}){const{totalRows:r}=j(),o=n.useMemo(()=>Math.ceil(r/a),[r,a]),l=n.useMemo(()=>Math.ceil(t/a)+1,[t,a]),i=l1,c=n.useCallback(()=>{i&&s(x=>x+a)},[i,a,s]),f=n.useCallback(()=>{m&&s(x=>x-a)},[m,a,s]);return e.jsx("section",{className:"fixed bottom-2 left-1/2 z-10 w-[270px] -translate-x-1/2 transform",children:e.jsxs("div",{className:"flex justify-between gap-2 rounded border bg-secondary p-[6px]",children:[e.jsx(y,{onClick:f,title:"Previous page",disabled:!m,children:e.jsx(Wt,{className:"h-4 w-4"})}),e.jsxs("span",{className:"flex items-center justify-center text-sm",children:["Page ",l," of ",o]}),e.jsx(y,{onClick:c,title:"Next page",disabled:!i,children:e.jsx(Kt,{className:"h-4 w-4"})})]})})}const Ys=It,Xs=Ft,Js=kt,ke=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(de,{ref:r,className:d("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...a,children:[s,e.jsx(Tt,{asChild:!0,children:e.jsx(Le,{className:"h-4 w-4 opacity-50"})})]}));ke.displayName=de.displayName;const Oe=n.forwardRef(({className:t,...s},a)=>e.jsx(me,{ref:a,className:d("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(Yt,{className:"h-4 w-4"})}));Oe.displayName=me.displayName;const Pe=n.forwardRef(({className:t,...s},a)=>e.jsx(ue,{ref:a,className:d("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(Le,{className:"h-4 w-4"})}));Pe.displayName=ue.displayName;const Me=n.forwardRef(({className:t,children:s,position:a="popper",...r},o)=>e.jsx(St,{children:e.jsxs(fe,{ref:o,className:d("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,...r,children:[e.jsx(Oe,{}),e.jsx(At,{className:d("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s}),e.jsx(Pe,{})]})}));Me.displayName=fe.displayName;const Be=n.forwardRef(({className:t,...s},a)=>e.jsx(xe,{ref:a,className:d("py-1.5 pl-8 pr-2 text-sm font-semibold",t),...s}));Be.displayName=xe.displayName;const Ue=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(pe,{ref:r,className:d("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...a,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Dt,{children:e.jsx(Xt,{className:"h-4 w-4"})})}),e.jsx(Lt,{children:s})]}));Ue.displayName=pe.displayName;const Zs=n.forwardRef(({className:t,...s},a)=>e.jsx(he,{ref:a,className:d("-mx-1 my-1 h-px bg-muted",t),...s}));Zs.displayName=he.displayName;const ea=Y("inline-flex items-center rounded border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function H({className:t,variant:s,...a}){return e.jsx("div",{className:d(ea({variant:s}),t),...a,children:e.jsx("span",{className:"w-full",children:a.children})})}function ta(){const{tables:t,selectedTable:s,setSelectedTable:a,setIsCustomQuery:r}=j(),o=n.useMemo(()=>{var c;const m=parseInt(s);return isNaN(m)?0:((c=t[m])==null?void 0:c.count)||0},[t,s]),l=n.useMemo(()=>t.map((m,c)=>e.jsx(Ue,{value:`${c}`,children:m.name[0].toUpperCase()+m.name.slice(1)},m.name)),[t]);function i(m){r(!1),a(m)}return e.jsxs("section",{className:"flex grow items-center justify-center gap-1",children:[e.jsxs(Ys,{value:s,onValueChange:i,children:[e.jsx(ke,{className:"grow",children:e.jsx(Js,{placeholder:"Select a table"})}),e.jsx(Me,{children:e.jsxs(Xs,{children:[e.jsx(Be,{children:"Tables"}),l]})})]}),e.jsx(H,{title:"Rows",className:"hidden min-w-[100px] grow bg-background py-2 text-center text-sm md:block md:min-w-[200px]",variant:"outline",children:e.jsx("span",{className:"w-full text-center",children:o})})]})}const V=t=>t instanceof Date&&!isNaN(t.getTime()),sa=t=>{const s=new Date(t);return V(s)?Ds(s,{addSuffix:!0}):t},aa=t=>{const s=new Date(t);return V(s)?X(s,"MMMM do, yyyy"):t},ra=t=>{const s=new Date(t);return V(s)?X(s,"MM/dd/yyyy"):t},oa=t=>{const s=new Date(t);return V(s)?X(s,"yyyy/dd/MM"):t},W={formatDateRelative:{label:"Over 56 years ago",func:sa},formatDateFormatted:{label:"January 9th, 1968",func:aa},formatDateLong:{label:"1968/09/01",func:oa},formatDateShort:{label:"01/09/1968",func:ra}},Qe=t=>t.includes("DATE")||t==="TIMESTAMP",na=t=>t==="BLOB",la=t=>t.includes("CHAR")||t.includes("TEXT")||t==="CLOB"||t.includes("VARCHAR"),ia=t=>t.includes("INT"),ca=t=>t.includes("REAL")||t.includes("FLOAT")||t.includes("DOUBLE")||t.includes("DECIMAL"),da=t=>t.includes("NUMERIC"),ma=t=>ia(t)||ca(t)||da(t),ua=t=>t.includes("BOOL"),$e=Ot,He=Pt,te=n.forwardRef(({className:t,align:s="start",side:a="bottom",sideOffset:r=4,...o},l)=>e.jsx(ge,{ref:l,align:s,side:a,sideOffset:r,className:d("z-50 w-64 text-balance break-words rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...o}));te.displayName=ge.displayName;const qe=n.forwardRef(({className:t,...s},a)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:a,className:d("w-full caption-bottom text-sm",t),...s})}));qe.displayName="Table";const Ve=n.forwardRef(({className:t,...s},a)=>e.jsx("thead",{ref:a,className:d("[&_tr]:border-b",t),...s}));Ve.displayName="TableHeader";const ze=n.forwardRef(({className:t,...s},a)=>e.jsx("tbody",{ref:a,className:d("[&_tr:last-child]:border-0",t),...s}));ze.displayName="TableBody";const fa=n.forwardRef(({className:t,...s},a)=>e.jsx("tfoot",{ref:a,className:d("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...s}));fa.displayName="TableFooter";const K=n.forwardRef(({className:t,...s},a)=>e.jsx("tr",{ref:a,className:d("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...s}));K.displayName="TableRow";const Ge=n.forwardRef(({className:t,...s},a)=>e.jsx("th",{ref:a,className:d("h-12 min-w-[150px] px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",t),...s}));Ge.displayName="TableHead";const xa=t=>{const s=new Uint8Array(t.match(/.{1,2}/g).map(r=>parseInt(r,16))),a=new Blob([s],{type:"image/jpeg"});return URL.createObjectURL(a)},_e=n.forwardRef(({className:t,children:s,dataType:a,...r},o)=>{const l=(a==null?void 0:a.toUpperCase())==="BLOB",i=n.useMemo(()=>typeof s=="string"&&s.length>40?s.slice(0,40)+"...":s,[s]);return e.jsx("td",{ref:o,className:d("max-w-[200px] overflow-hidden truncate text-ellipsis whitespace-nowrap p-4 align-middle [&:has([role=checkbox])]:pr-0",t),...r,children:e.jsxs($e,{children:[e.jsx(He,{asChild:!0,children:e.jsx("span",{className:"cursor-pointer hover:underline",children:l?e.jsx("span",{className:"italic opacity-40",children:"BLOB"}):i})}),e.jsx(te,{side:"bottom",align:"start",children:e.jsxs("div",{className:"flex flex-col justify-center gap-1",children:[l&&typeof s=="string"?e.jsxs(e.Fragment,{children:[e.jsx("img",{src:xa(s),alt:"BLOB content",className:"flex max-h-40 flex-col items-center justify-center gap-2 rounded object-contain",onError:m=>{m.currentTarget.style.display="none"}}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Blob length: ",s.length]})]}):e.jsx("span",{className:"max-w-full break-words",children:s}),e.jsx(H,{className:"w-full self-start text-center text-xs font-semibold",children:a||"Unknown"})]})})]})})});_e.displayName="TableCell";const pa=n.forwardRef(({className:t,...s},a)=>e.jsx("caption",{ref:a,className:d("mt-4 text-sm text-muted-foreground",t),...s}));pa.displayName="TableCaption";const se=n.forwardRef(({className:t,type:s,...a},r)=>e.jsx("input",{type:s,className:d("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:r,...a}));se.displayName="Input";function ha({columnName:t}){const{appendToFilters:s,selectedTable:a,filtersNeedClear:r,setFiltersNeedClear:o}=j(),[l,i]=n.useState("");n.useEffect(()=>{i("")},[a]),n.useEffect(()=>{r&&(i(""),o(!1))},[r]);const m=n.useCallback(c=>{const f=c.target.value;i(f),s(t,f)},[s,t]);return e.jsx(se,{value:l,onChange:m,className:"mt-[2px] max-h-7 w-full text-xs",placeholder:"Filter"})}function ga({columnName:t}){const{orderBy:s,setOrderBy:a,orderByDirection:r,setOrderByDirection:o}=j(),l=n.useCallback(()=>{s===t?r==="ASC"?o("DESC"):r==="DESC"?(a(null),o("ASC")):(a(t),o("ASC")):(a(t),o("ASC"))},[s,r,t,a,o]);return e.jsx("div",{onClick:l,className:"flex items-center",children:s===t?r==="ASC"?e.jsx("button",{title:"Descending",children:e.jsx(Jt,{className:"h-4 w-4"})}):e.jsx("button",{title:"Ascending",children:e.jsx(Zt,{className:"h-4 w-4"})}):e.jsx("button",{title:"Sort column",children:e.jsx(es,{className:"h-4 w-4"})})})}const ba=k.memo(({columnSchema:t})=>e.jsxs(e.Fragment,{children:[(t==null?void 0:t.isPrimaryKey)&&e.jsx("p",{className:"text-sm font-semibold text-yellow-600",children:"(Primary)"}),(t==null?void 0:t.isForeignKey)&&e.jsx("p",{className:"text-sm font-semibold text-purple-600",children:"(Foreign)"})]})),ya=k.memo(({columnSchema:t})=>{const{type:s,isPrimaryKey:a,isForeignKey:r}=t;if(a)return e.jsx(ts,{className:"h-4 w-4 text-yellow-500"});if(r)return e.jsx(ss,{className:"h-4 w-4 text-purple-500"});if(s){if(na(s))return e.jsx(as,{className:"h-4 w-4 text-green-500"});if(Qe(s))return e.jsx(Ie,{className:"h-4 w-4 text-blue-500"});if(la(s))return e.jsx(rs,{className:"h-4 w-4 text-indigo-500"});if(ma(s))return e.jsx(os,{className:"h-4 w-4 text-red-500"});if(ua(s))return e.jsx(ns,{className:"h-4 w-4 text-pink-500"})}return e.jsx(ls,{className:"h-4 w-4 text-gray-500"})}),ja=k.memo(({columnName:t,columnSchema:s})=>e.jsxs(Ge,{className:"bg-gray-100 py-2 dark:bg-gray-700",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(ga,{columnName:t}),e.jsxs($e,{children:[e.jsx(He,{asChild:!0,children:e.jsxs("div",{className:"flex cursor-pointer items-center space-x-1",children:[e.jsx("span",{className:"max-w-[200px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:t}),s&&e.jsx(ya,{columnSchema:s})]})}),e.jsxs(te,{className:"w-64",children:[e.jsxs("div",{className:"mb-1 flex items-center space-x-1",children:[e.jsx("p",{className:"text-sm font-medium",children:t}),e.jsx(ba,{columnSchema:s})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(H,{className:"w-full self-start text-center text-xs font-semibold",children:(s==null?void 0:s.type)||"Unknown"}),(s==null?void 0:s.nullable)&&e.jsx(H,{className:"w-full self-start text-center text-xs font-semibold",children:"NULLABLE"})]})]})]})]}),e.jsx(ha,{columnName:t})]})),Na=k.memo(({value:t,dataType:s})=>{const{dateFormatValue:a}=j(),r=()=>t?s&&Qe(s)&&W[a]?W[a].func(t):t:e.jsx("span",{className:"italic text-gray-400",children:"NULL"});return e.jsx(_e,{dataType:s,className:"px-5 py-[11px] text-sm",children:r()})});function wa({data:t,columns:s,tableName:a,tableSchemas:r}){const{filters:o,setFiltersNeedClear:l,setFilters:i}=j(),m=n.useMemo(()=>e.jsx(Ve,{children:e.jsx(K,{children:s.map((x,p)=>e.jsx(ja,{columnName:x,columnSchema:r[a][x]},p))})}),[s,r,a]),c=n.useMemo(()=>e.jsx(ze,{children:t.map((x,p)=>e.jsx(K,{children:s.map((g,u)=>{var h;return e.jsx(Na,{value:x[g],dataType:(h=r[a][g])==null?void 0:h.type},u)})},p))}),[t,s,r,a]),f=n.useCallback(()=>{l(!0),i({})},[l,i]);return e.jsxs("div",{className:"overflow-x-auto",children:[e.jsxs(qe,{children:[m,t.length>0&&c]}),t.length===0&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"w-full p-4 text-center font-medium",children:["No data available for ",a]}),Object.keys(o).length>0&&e.jsx(y,{className:"w-full rounded-none",variant:"outline",onClick:f,children:"Clear filters"})]})]})}function Q({type:t,children:s,className:a=""}){const r="flex items-center p-4 rounded-lg shadow-md";let o,l;switch(t){case"error":o=e.jsx(ms,{className:"mr-3 h-6 w-6 text-red-500"}),l="bg-red-100 text-red-800 border-l-4 border-red-500";break;case"loading":o=e.jsx(ds,{className:"mr-3 h-6 w-6 animate-spin text-blue-500"}),l="bg-blue-100 text-blue-800 border-l-4 border-blue-500";break;case"success":o=e.jsx(cs,{className:"mr-3 h-6 w-6 text-green-500"}),l="bg-green-100 text-green-800 border-l-4 border-green-500";break;case"info":o=e.jsx(is,{className:"mr-3 h-6 w-6 text-yellow-500"}),l="bg-yellow-100 text-yellow-800 border-l-4 border-yellow-500";break;default:o=null,l=""}return e.jsxs("div",{className:`${r} ${l} ${a}`,children:[o,e.jsx("span",{className:"font-medium",children:s})]})}const Ca=Bt,Ea=Ut,We=n.forwardRef(({className:t,align:s="center",sideOffset:a=4,...r},o)=>e.jsx(Mt,{children:e.jsx(be,{ref:o,align:s,sideOffset:a,className:d("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...r})}));We.displayName=be.displayName;function va(){const{selectedTable:t,tables:s,customQuery:a,db:r}=j(),o=n.useCallback((i,m,c,f)=>e.jsx(y,{className:f,onClick:i,title:c,children:e.jsx("span",{className:"ml-2",children:m})}),[]),l=n.useMemo(()=>{var i;return r&&e.jsxs("div",{className:"flex flex-col gap-1",children:[o(()=>Hs(r),"Export as SQLite","Download database as SQLite"),o(()=>Vs(r,parseInt(t)),`Export ${((i=s[parseInt(t)])==null?void 0:i.name)||"selected"} table as CSV`,"Export selected table as CSV"),o(()=>zs(r),"Export all tables as CSV","Export all tables as CSV"),o(()=>Gs(r,a),"Export custom query as CSV","Export the result of the custom query as CSV")]})},[r,o,t,s,a]);return e.jsxs(Ca,{children:[e.jsx(Ea,{asChild:!0,children:e.jsx(y,{title:"Open export options",children:e.jsx(us,{className:"h-5 w-5"})})}),e.jsx(We,{align:"end",className:"w-80",children:l})]})}function Ra(){const[t,s]=n.useState(()=>document.body.classList.contains("dark"));return n.useEffect(()=>{const a=new MutationObserver(()=>{s(document.body.classList.contains("dark"))});return a.observe(document.body,{attributes:!0,attributeFilter:["class"]}),()=>a.disconnect()},[]),t}const Ta=["ABORT","ACTION","ADD","AFTER","ALL","ALTER","ANALYZE","AND","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FOR","FOREIGN","FROM","FULL","GLOB","GROUP","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LEFT","LIKE","LIMIT","MATCH","NATURAL","NO","NOT","NOTNULL","NULL","OF","OFFSET","ON","OR","ORDER","OUTER","PLAN","PRAGMA","PRIMARY","QUERY","RAISE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RIGHT","ROLLBACK","ROW","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TO","TRANSACTION","TRIGGER","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WITH","WITHOUT"];function Sa({columnNames:t}){const{customQuery:s,setCustomQuery:a,queryHistory:r,tables:o}=j(),l=Ra();n.useEffect(()=>{a(re(s))},[r]);const i=n.useCallback(x=>{const p=x.matchBefore(/\w*/);if(!p||p.from===p.to&&!x.explicit)return null;const g=[...Ta.map(u=>({label:u,type:"keyword"})),...o.map(u=>({label:u.name,type:"table"})),...t.map(u=>({label:u,type:"column"}))];return{from:p.from,to:p.to,options:g}},[o,t]),m=n.useCallback(()=>{a(re(s))},[s,a]),c=n.useCallback(x=>{a(x)},[a]),f=n.useMemo(()=>[Is,Fs(),ks({override:[i]})],[i]);return e.jsx(Os,{value:s,height:"126px",extensions:f,onChange:c,onBlur:m,className:"rounded-md border",theme:l?Ps:"light"})}function re(t){return Ls(t,{language:"sqlite",useTabs:!1,keywordCase:"upper",tabWidth:2,expressionWidth:100,linesBetweenQueries:1})}function Aa(){const{tables:t,selectedTable:s,tableSchemas:a,queryError:r,setQueryError:o,rowPerPageOrAuto:l,isCustomQuery:i,setIsCustomQuery:m,customQuery:c,setCustomQuery:f,expandPage:x,setExpandPage:p,filters:g,setFilters:u,setOrderBy:h,setFiltersNeedClear:w}=j(),{page:C,setPage:N,rowsPerPage:E}=Ws(l),L=n.useMemo(()=>{var U;return(U=t[parseInt(s)])==null?void 0:U.name},[t,s]),{data:v,columns:S,isQueryLoading:D,handleCustomQuery:I}=_s(L,E,C),[A,z]=n.useState([]);n.useEffect(()=>{S.length>0&&z(S)},[L,S]);const b=n.useCallback(()=>{o(null),f(""),m(!1),u({}),w(!0)},[m,o,f]),R=n.useCallback(()=>{N(0),b()},[b,N]);n.useEffect(()=>{N(0),u({}),h(null)},[s]),n.useEffect(()=>{N(0)},[g]);const M=n.useMemo(()=>e.jsxs("div",{className:"flex flex-col gap-1 md:flex-row",children:[e.jsx("div",{className:"flex-grow",children:e.jsx(Sa,{columnNames:A})}),e.jsxs("div",{className:"flex flex-row gap-1 md:flex-col",children:[e.jsx(y,{className:"grow",onClick:I,title:"Run custom query",children:e.jsx(fs,{className:"h-5 w-5"})}),e.jsx(y,{className:"grow",onClick:b,title:"Remove query",children:e.jsx(xs,{className:"h-5 w-5"})}),e.jsx(y,{className:"grow",onClick:R,title:"Reset to first page",disabled:C===0,children:e.jsx(ps,{className:"h-5 w-5"})})]})]}),[c,I,b,R,C]),B=n.useMemo(()=>D?e.jsxs(Q,{type:"loading",children:["Loading ",L]}):e.jsx("div",{className:"mb-[40px] overflow-hidden rounded-lg border border-gray-200 dark:border dark:border-gray-700",children:e.jsx(wa,{data:v,columns:A.length>0?A:S,tableName:L,tableSchemas:a})}),[D,v,S,L,a,g,A]);return e.jsxs("div",{className:"flex flex-col gap-3 pb-8",children:[e.jsxs("section",{className:"rounded-lg bg-gray-100 p-4 shadow-sm dark:bg-gray-700",children:[e.jsxs("div",{className:"mb-[5px] flex items-center justify-between gap-1",children:[e.jsx(ta,{}),e.jsxs("div",{className:"flex items-center justify-center gap-1",children:[e.jsx(va,{}),e.jsx(y,{className:"hidden expand:block",onClick:()=>p(!x),title:"Toggle page size",children:x?e.jsx(hs,{className:"h-5 w-5"}):e.jsx(gs,{className:"h-5 w-5"})})]})]}),M,r&&e.jsx("p",{className:"mt-2 text-center text-sm text-red-500 dark:text-red-400",children:r})]}),B,!i&&e.jsx(Ks,{page:C,setPage:N,rowsPerPage:E})]})}const Ke=(t,s)=>localStorage.getItem(t)||s,Ye=(t,s)=>localStorage.setItem(t,s),oe=(t,s)=>{const[a,r]=n.useState(()=>Ke(t,s));return n.useEffect(()=>{Ye(t,a)},[t,a]),[a,r]},Xe=({shouldScaleBackground:t=!0,...s})=>e.jsx(T.Root,{shouldScaleBackground:t,...s});Xe.displayName="Drawer";const Da=T.Trigger,La=T.Portal,Ia=T.Close,Je=n.forwardRef(({className:t,...s},a)=>e.jsx(T.Overlay,{ref:a,className:d("fixed inset-0 z-50 bg-black/80",t),...s}));Je.displayName=T.Overlay.displayName;const Ze=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(La,{children:[e.jsx(Je,{}),e.jsxs(T.Content,{ref:r,className:d("fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",t),...a,children:[e.jsx("div",{className:"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted"}),s]})]}));Ze.displayName="DrawerContent";const et=({className:t,...s})=>e.jsx("div",{className:d("grid gap-1.5 p-4 text-center sm:text-left",t),...s});et.displayName="DrawerHeader";const tt=({className:t,...s})=>e.jsx("div",{className:d("mt-auto flex flex-col gap-2 pb-4",t),...s});tt.displayName="DrawerFooter";const st=n.forwardRef(({className:t,...s},a)=>e.jsx(T.Title,{ref:a,className:d("text-lg font-semibold leading-none tracking-tight",t),...s}));st.displayName=T.Title.displayName;const at=n.forwardRef(({className:t,...s},a)=>e.jsx(T.Description,{ref:a,className:d("text-sm text-muted-foreground",t),...s}));at.displayName=T.Description.displayName;const rt=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(ye,{ref:r,className:d("relative overflow-hidden",t),...a,children:[e.jsx(Qt,{className:"h-full w-full rounded-[inherit]",children:s}),e.jsx(ot,{}),e.jsx($t,{})]}));rt.displayName=ye.displayName;const ot=n.forwardRef(({className:t,orientation:s="vertical",...a},r)=>e.jsx(je,{ref:r,orientation:s,className:d("flex touch-none select-none transition-colors",s==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",s==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...a,children:e.jsx(Ht,{className:"relative flex-1 rounded-full bg-border"})}));ot.displayName=je.displayName;const nt=n.forwardRef(({className:t,orientation:s="horizontal",decorative:a=!0,...r},o)=>e.jsx(Ne,{ref:o,decorative:a,orientation:s,className:d("shrink-0 bg-border",s==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",t),...r}));nt.displayName=Ne.displayName;const Fa=Y("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),lt=n.forwardRef(({className:t,...s},a)=>e.jsx(we,{ref:a,className:d(Fa(),t),...s}));lt.displayName=we.displayName;const ae=n.forwardRef(({className:t,...s},a)=>e.jsx(Ce,{className:d("grid gap-2",t),...s,ref:a}));ae.displayName=Ce.displayName;const it=n.forwardRef(({className:t,...s},a)=>e.jsx(Ee,{ref:a,className:d("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),...s,children:e.jsx(qt,{className:"flex items-center justify-center",children:e.jsx(bs,{className:"h-2.5 w-2.5 fill-current text-current"})})}));it.displayName=Ee.displayName;const q=({value:t,label:s})=>e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(it,{value:t,id:`r-${t}`}),e.jsx(lt,{htmlFor:`r-${t}`,children:s})]}),ka=({rowsPerPage:t,onRowsPerPageChange:s})=>{const a=t==="auto";return e.jsxs("div",{className:"flex h-full grow flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(ys,{className:"h-4 w-4"}),e.jsx("p",{className:"text-sm font-medium",children:"Rows Per Page"})]}),e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-1 rounded border p-2",children:[e.jsx(se,{id:"rowsPerPage",value:a?"":t,onChange:r=>s(r.target.value),placeholder:"Number of rows",type:"number",className:"w-full",autoFocus:!1}),e.jsx(y,{variant:a?"secondary":"outline",onClick:()=>s("auto"),className:"w-full whitespace-nowrap",children:"Auto Calculate"})]})]})},Oa=({dateFormatValue:t,onDateFormatChange:s})=>e.jsxs("div",{className:"flex h-full grow flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Ie,{className:"h-4 w-4"}),e.jsx("p",{className:"text-sm font-medium",children:"Date Format"})]}),e.jsx("div",{className:"h-full rounded border p-2",children:e.jsxs(ae,{className:"flex h-full flex-col gap-2",name:"dateType",value:t,onValueChange:s,children:[e.jsx(q,{value:"default",label:"Default"}),Object.entries(W).map(([a,{label:r}])=>e.jsx(q,{value:a,label:r},a))]})})]}),Pa=({themeColor:t,onThemeColorChange:s,themeColors:a})=>e.jsxs("div",{className:"flex grow flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(js,{className:"h-4 w-4"}),e.jsx("p",{className:"text-sm font-medium",children:"Theme Color"})]}),e.jsxs(ae,{className:"flex flex-col gap-2 rounded border p-2",name:"themeColor",value:t,onValueChange:s,children:[e.jsx(q,{value:"default",label:"Default"}),a.map(r=>e.jsx(q,{value:r,label:r[0].toUpperCase()+r.slice(1)},r))]})]}),Ma=({queryHistory:t})=>e.jsxs("div",{className:"flex grow flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Ns,{className:"h-4 w-4"}),e.jsxs("p",{className:"text-sm font-medium",children:["Query History (",t.length,")"]})]}),e.jsx(rt,{className:"h-[155px] rounded-md border font-medium",children:e.jsx("div",{className:"p-4",children:t.map((s,a)=>e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-normal",children:s}),e.jsx(nt,{className:"my-2"})]},a))})})]}),Ba="rowsPerPage",ne="dateFormat",Ua="theme-color",le=["nord","zinc"];function Qa(){const{setRowPerPageOrAuto:t,setIsCustomQuery:s,queryHistory:a,dateFormatValue:r,setDateFormatValue:o}=j(),[l,i]=oe(Ba,"auto"),[m,c]=oe(Ua,"default"),f=l==="auto";n.useEffect(()=>{t(f?"auto":Number(l))},[l,t]),n.useEffect(()=>{o(Ke(ne,"default"))},[o]),n.useEffect(()=>{le.forEach(u=>{var h;return(h=document.body)==null?void 0:h.classList.toggle(u,u===m)})},[m]);const x=n.useCallback(u=>{s(!1),u==="auto"||Number(u)>0?i(u):$.error("Please provide a positive number of rows per page or set it to auto.")},[s,i]),p=n.useCallback(u=>{o(u),Ye(ne,u)},[o]),g=n.useCallback(u=>{c(u)},[c]);return e.jsxs(Xe,{children:[e.jsx(Da,{asChild:!0,children:e.jsx(y,{className:"grow",title:"Open settings drawer",children:e.jsx(Fe,{className:"h-5 w-5"})})}),e.jsxs(Ze,{children:[e.jsxs(et,{className:"hidden",children:[e.jsx(st,{children:"Settings"}),e.jsx(at,{children:"Change settings."})]}),e.jsxs("div",{className:"mx-auto flex w-full max-w-sm flex-col gap-3",children:[e.jsx(ka,{rowsPerPage:l,onRowsPerPageChange:x}),e.jsx(Pa,{themeColor:m,onThemeColorChange:g,themeColors:le}),e.jsx(Oa,{dateFormatValue:r,onDateFormatChange:p}),e.jsx(Ma,{queryHistory:a}),e.jsx(tt,{children:e.jsx(Ia,{asChild:!0,children:e.jsx(y,{variant:"outline",children:"Cancel"})})})]})]})]})}const G="theme-mode",ie="animate-circular-reveal";function ct(){const[t,s]=n.useState(()=>{const o=localStorage.getItem(G),l=window.matchMedia("(prefers-color-scheme: dark)").matches;return o||(l?"dark":"light")}),a=n.useCallback(o=>{s(o),document.body.classList.remove("light","dark"),document.body.classList.add(o),localStorage.setItem(G,o),document.body.classList.add(ie),setTimeout(()=>{document.body.classList.remove(ie)},500)},[]);n.useEffect(()=>{const o=i=>{localStorage.getItem(G)||a(i.matches?"dark":"light")},l=window.matchMedia("(prefers-color-scheme: dark)");return l.addEventListener("change",o),a(t),()=>{l.removeEventListener("change",o)}},[a,t]);const r=n.useCallback(()=>{a(t==="light"?"dark":"light")},[t,a]);return e.jsx(y,{className:"relative grow",onClick:r,title:t==="dark"?"Enable light mode":"Enable dark mode",children:t==="dark"?e.jsx(ws,{className:"h-5 w-5"}):e.jsx(Cs,{className:"h-5 w-5"})})}const $a={"application/vnd.sqlite3":[".sqlite",".sqlite3"],"application/x-sqlite3":[".sqlite",".sqlite3"],"application/octet-stream":[".db"],"application/sql":[".sql"]};function Ha(){const{loadDatabase:t,setTables:s,setSelectedTable:a,db:r,setCustomQuery:o}=j(),[l,i]=n.useState([]),m=n.useCallback(async(u,h)=>{if(h.length>0){const w=h.flatMap(C=>C.errors);i(w);return}if(i([]),s([]),o(""),a("0"),u.length>0)try{await t(u[0])}catch(w){return w instanceof Error?$(w.message,{position:"bottom-right"}):$("Failed to load database",{position:"bottom-right"})}},[t,s,a]),{getRootProps:c,getInputProps:f,isDragActive:x}=Ms({onDrop:m,multiple:!1,accept:$a}),p=n.useCallback(u=>e.jsxs("div",{className:"flex w-full items-center justify-between gap-2",children:[e.jsxs("div",{...c(),className:`flex w-full grow transform cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed p-6 transition-colors duration-300 ease-in-out hover:bg-secondary ${x?"border-blue-500 bg-blue-50 dark:bg-blue-900/20":"border-primary dark:border-gray-700"} ${u?"py-7":"py-12"}`,children:[e.jsx("input",{id:"file-upload",...f()}),e.jsx("label",{htmlFor:"file-upload",className:"sr-only",children:"Upload SQLite File"}),e.jsxs("div",{className:"text-center text-sm md:text-base",children:[e.jsx("span",{className:"hidden sm:block lg:text-lg",children:"Drag and drop file here, or click to select one"}),e.jsx("div",{className:"block sm:hidden",children:u?e.jsx("span",{className:"font-medium",children:"Click to select a file"}):e.jsx("span",{className:"font-medium",children:"Click to select a SQLite file"})})]})]}),u&&e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(ct,{}),e.jsx(Qa,{})]})]}),[c,f,x,r]),g=n.useMemo(()=>p(!!r),[p,r]);return e.jsxs("section",{className:"mx-auto w-full",children:[g,e.jsx(qa,{errors:l})]})}const qa=k.memo(({errors:t})=>(k.useEffect(()=>{t==null||t.forEach(s=>$(s.message,{position:"bottom-right"}))},[t]),null));function Va(){return e.jsx("header",{className:"rounded bg-gradient-to-r shadow-md dark:from-gray-800 dark:to-indigo-900",children:e.jsx("div",{className:"mx-auto max-w-4xl px-4 py-8 sm:py-12",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("h1",{className:"mb-2 text-2xl font-bold sm:text-3xl",children:"SQLite Viewer"}),e.jsx("p",{className:"max-w-md text-sm sm:text-base",children:"Explore and analyze your SQLite databases directly in your browser"})]})})})}const za=zt,Ga=Vt,dt=n.forwardRef(({className:t,...s},a)=>e.jsx(ve,{className:d("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...s,ref:a}));dt.displayName=ve.displayName;const mt=n.forwardRef(({className:t,...s},a)=>e.jsxs(Ga,{children:[e.jsx(dt,{}),e.jsx(Re,{ref:a,className:d("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...s})]}));mt.displayName=Re.displayName;const ut=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col space-y-2 text-center sm:text-left",t),...s});ut.displayName="AlertDialogHeader";const ft=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s});ft.displayName="AlertDialogFooter";const xt=n.forwardRef(({className:t,...s},a)=>e.jsx(Te,{ref:a,className:d("text-lg font-semibold",t),...s}));xt.displayName=Te.displayName;const pt=n.forwardRef(({className:t,...s},a)=>e.jsx(Se,{ref:a,className:d("text-sm text-muted-foreground",t),...s}));pt.displayName=Se.displayName;const ht=n.forwardRef(({className:t,...s},a)=>e.jsx(Ae,{ref:a,className:d(ee(),t),...s}));ht.displayName=Ae.displayName;const gt=n.forwardRef(({className:t,...s},a)=>e.jsx(De,{ref:a,className:d(ee({variant:"outline"}),"mt-2 sm:mt-0",t),...s}));gt.displayName=De.displayName;function _a({showDialog:t,setShowDialog:s,fn:a}){const r=n.useCallback(()=>{s(!1)},[s]);return e.jsx(za,{open:t,onOpenChange:s,children:e.jsxs(mt,{children:[e.jsxs(ut,{children:[e.jsx(xt,{children:"Retry using a proxy?"}),e.jsx(pt,{children:"Failed to load the database from the provided URL due to possible CORS restrictions."})]}),e.jsx("div",{className:"text-sm font-semibold",children:"Using the proxy may expose your database to corsproxy.io services."}),e.jsxs(ft,{children:[e.jsx(gt,{onClick:r,children:"Cancel"}),e.jsx(ht,{onClick:a,children:"Confirm"})]})]})})}function Wa(){return e.jsx("footer",{className:"fixed bottom-0 left-0 right-0 border-t bg-background shadow-md",children:e.jsx("div",{className:"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex items-center justify-between py-4 md:py-6",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sms hidden sm:block",children:"No file will be uploaded to server. Using JavaScript, sql.js"}),e.jsx("p",{className:"text-sm sm:hidden",children:"No file uploads to server."})]}),e.jsxs("a",{href:"https://github.com/vwh/sqlite-viewer",target:"_blank",rel:"noopener noreferrer",className:"flex items-center space-x-2 text-blue-500",title:"Star on GitHub",children:[e.jsx(Es,{className:"h-5 w-5"}),e.jsx("span",{className:"text-sm font-medium hover:underline",children:"Star us on GitHub"})]})]}),e.jsx("div",{className:"flex items-center space-x-4",children:e.jsx(ct,{})})]})})})}function P({icon:t,title:s,description:a}){return e.jsxs("div",{className:"flex items-start space-x-3",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(t,{className:"h-6 w-6 text-blue-500"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-medium",children:s}),e.jsx("p",{className:"mt-1 text-sm",children:a})]})]})}function Ka(){return e.jsxs(e.Fragment,{children:[e.jsx("section",{className:"rounded bg-gradient-to-r py-6 shadow-md dark:from-gray-800 dark:to-indigo-900 md:py-10",children:e.jsx("div",{className:"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",children:e.jsx("div",{children:e.jsxs("div",{className:"grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsx(P,{icon:vs,title:"Browser Based",description:"No installation required. Access and analyze your SQLite databases directly in your web browser."}),e.jsx(P,{icon:Rs,title:"Lightning Fast",description:"Powered by WebAssembly (WASM) for near-native performance, even with large databases."}),e.jsx(P,{icon:Ts,title:"100% Secure",description:"Your data never leaves your device. All processing happens client-side, ensuring complete privacy."}),e.jsx(P,{icon:Fe,title:"Customizable Interface",description:"Different themes and settings. Adjust the look and feel of your interface to suit your preferences and workflow."}),e.jsx(P,{icon:Ss,title:"Offline Capable",description:"Work on your databases without an internet connection. Perfect for sensitive data or remote work."}),e.jsx(P,{icon:As,title:"PWA Support",description:"Install the app on your desktop or mobile device for a genuine native experience. Enjoy robust offline functionality."})]})})})}),e.jsx("div",{className:"pb-[72px] md:pb-0"})]})}function Ya(){const{db:t,tables:s,isLoading:a,loadDatabase:r,expandPage:o}=j(),[l,i]=n.useState(null),[m,c]=n.useState(!1),[f,x]=n.useState(null),[p,g]=n.useState(!1),u=n.useRef(!1),h=n.useCallback(async(N,E=!1)=>{if(!/^(https?:\/\/(?:www\.)?[a-zA-Z0-9-]{1,256}\.[a-zA-Z]{2,6}(?:\/[^\s]*)?)$/i.test(N)){i("Invalid URL");return}try{g(!0);const v=E?`https://cors.eu.org/${encodeURIComponent(N)}`:N,S=await fetch(v);if(!S.ok)throw new Error("URL not found or invalid");const D=await S.blob(),I=new File([D],"database.sqlite");await r(I),i(null)}catch(v){E?i(`Error whilefetching, ${v instanceof Error?v.message:String(v)}`):(x(N),c(!0))}finally{g(!1)}},[r]);n.useEffect(()=>{if(u.current)return;const E=new URLSearchParams(window.location.search).get("url");E&&(h(decodeURIComponent(E)),u.current=!0)},[h]);const w=n.useCallback(()=>{f&&(h(f,!0),c(!1))},[f,h]),C=()=>a||p?e.jsxs(Q,{type:"loading",children:[p?"Fetching":"Loading"," SQLite file"]}):l&&!t?e.jsx(Q,{type:"error",children:l}):t?s.length>0?e.jsx(Aa,{}):e.jsx(Q,{type:"info",children:"Your database is empty, no tables found"}):null;return e.jsxs("main",{id:"main",className:`mx-auto flex h-screen flex-col ${t?"gap-3":"gap-4"} p-4 ${o?"w-full":"container"}`,children:[!t&&e.jsx(Va,{}),e.jsx(Ha,{}),C(),!t&&e.jsxs(e.Fragment,{children:[e.jsx(Ka,{})," ",e.jsx(Wa,{})]}),e.jsx(_a,{showDialog:m,setShowDialog:c,fn:w})]})}const Xa=({...t})=>e.jsx(Bs,{className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-primary group-[.toaster]:text-background group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...t});Ct.createRoot(document.getElementById("root")).render(e.jsxs(k.StrictMode,{children:[e.jsx(Ya,{}),e.jsx(Xa,{})]})); + `),o=a.values.reduce((n,i)=>(n[i[1]]={type:i[2]?i[2].toUpperCase():i[2],isPrimaryKey:i[5]===1,isForeignKey:!1,nullable:i[3]===0},n),{});return r==null||r.values.forEach(n=>{const i=n[3];o[i]&&(o[i].isForeignKey=!0)}),o}catch(a){throw console.error(`Failed to get schema for table "${s}":`,a),a}},W=t=>{if(t.length===0)return{data:[],columns:[]};const{columns:s,values:a}=t[0];return{data:a.map(o=>Object.fromEntries(s.map((n,i)=>[n,o[i]]))),columns:s}},Hs=t=>{try{const s=t.export(),a=new Blob([s],{type:"application/x-sqlite3"});ce.saveAs(a,"database.sqlite")}catch(s){throw console.error("Failed to export database:",s),s}},qs=(t,s)=>{const a=t.map(o=>`"${o}"`).join(","),r=s.map(o=>t.map(n=>`"${o[n]??""}"`).join(","));return[a,...r].join(` +`)},Z=(t,s,a)=>{try{const r=s.exec(t);if(r.length===0)throw new Error(`Query "${t}" returned no results.`);const{data:o,columns:n}=W(r),i=qs(n,o),u=new Blob([i],{type:"text/csv;charset=utf-8;"});ce.saveAs(u,`${a}.csv`)}catch(r){throw console.error(`Failed to get CSV for query "${t}":`,r),r}},Vs=(t,s)=>{const r=J(t)[s],o=`SELECT * FROM "${r}"`;Z(o,t,r)},zs=t=>{J(t).forEach(s=>{const a=`SELECT * FROM "${s}"`;Z(a,t,s)})},Gs=(t,s)=>{Z(s,t,"custom_query")},j=Et((t,s)=>({db:null,isLoading:!1,loadDatabase:async a=>{t({isLoading:!0,queryError:null});try{const r=await Qs(a),o=J(r),n=await Promise.all(o.map(async c=>{const f=r.exec(`SELECT COUNT(*) FROM "${c}"`),x=parseInt(f[0].values[0][0],10),p=await $s(r,c);return{name:c,count:x,schema:p}})),i=n.map(({name:c,count:f})=>({name:c,count:f})),u=n.reduce((c,{name:f,schema:x})=>(c[f]=x,c),{});t({db:r,tables:i,tableSchemas:u,isLoading:!1})}catch(r){throw console.error("Failed to load database:",r),t({isLoading:!1,queryError:"Failed to load database"}),r}},tables:[],setTables:a=>t({tables:a}),selectedTable:"0",setSelectedTable:a=>t({selectedTable:a}),tableSchemas:{},customQuery:"",setIsCustomQuery:a=>t({isCustomQuery:a}),setCustomQuery:a=>t({customQuery:a}),isCustomQuery:!1,queryError:null,setQueryError:a=>t({queryError:a}),query:a=>{const{db:r}=s();return r?r.exec(a):(console.warn("Database is not loaded."),[])},rowPerPageOrAuto:"auto",setRowPerPageOrAuto:a=>t({rowPerPageOrAuto:a}),queryHistory:[],unShiftToQueryHistory:a=>t(r=>({queryHistory:[a,...r.queryHistory]})),expandPage:!1,setExpandPage:a=>t({expandPage:a}),dateFormatValue:"formatDateFormatted",setDateFormatValue:a=>t({dateFormatValue:a}),filters:{},setFilters:a=>t({filters:a}),appendToFilters:(a,r)=>t(o=>({filters:{...o.filters,[a]:r}})),filtersNeedClear:!1,setFiltersNeedClear:a=>t({filtersNeedClear:a}),totalRows:0,setTotalRows:a=>t({totalRows:a}),orderBy:null,setOrderBy:a=>t({orderBy:a}),orderByDirection:"ASC",setOrderByDirection:a=>t({orderByDirection:a})}));function Ws(t,s,a){const{db:r,setQueryError:o,setIsCustomQuery:n,query:i,unShiftToQueryHistory:u,customQuery:c,setCustomQuery:f,filters:x,totalRows:p,setTotalRows:g,orderBy:m,orderByDirection:h,selectedTable:w,tables:C}=j(),[N,E]=l.useState([]),[L,v]=l.useState([]),[S,D]=l.useState(!0),I=l.useMemo(()=>Object.fromEntries(Object.entries(x).filter(([,b])=>b!=="")),[x]),A=l.useMemo(()=>Object.entries(I).map(([b,R])=>`LOWER(${b}) LIKE LOWER('%${R}%')`).join(" AND "),[I]);l.useEffect(()=>{if(!r||!t)return;(async()=>{D(!0);try{const R=`PRAGMA table_info("${t}");`,U=i(R)[0].values.map(F=>({name:F[1],type:F[2]})).map(F=>F.type.toUpperCase()==="BLOB"?`hex(${F.name}) as ${F.name}`:F.name).join(", "),bt=`SELECT COUNT(*) as count FROM "${t}"${A?` WHERE ${A}`:""}`,yt=i(bt)[0].values[0][0];g(yt);let O=`SELECT ${U} FROM "${t}"`;A&&(O+=` WHERE ${A}`),m&&(O+=` ORDER BY "${m}" ${h}`),O+=` LIMIT ${s} OFFSET ${a};`;const jt=i(O),{data:Nt,columns:wt}=W(jt);v(wt),E(Nt),o(null),f(O),u(O)}catch(R){R instanceof Error&&o(R.message)}finally{D(!1)}})()},[r,t,a,s,A,h]);const z=l.useCallback(()=>{if(c.trim()===""){o(null);return}D(!0);try{const b=C[parseInt(w)].name,R=i(c.replace("@",`"${b}"`)),{data:M,columns:B}=W(R);v(B),E(M),n(!0),o(null)}catch(b){b instanceof Error&&o(b.message)}finally{D(!1)}},[c,i,o,n,C,w]);return{data:N,columns:L,customQuery:c,setCustomQuery:f,isQueryLoading:S,handleCustomQuery:z,totalRows:p}}function _s(t){const{setIsCustomQuery:s}=j(),[a,r]=l.useState(0);l.useEffect(()=>{r(0),s(!1)},[s]);const o=l.useMemo(()=>{if(t!=="auto")return t;const n=window.innerHeight,f=Math.min(2e3,40+n*.03),x=Math.max(1,Math.floor(n/f));return Math.min(Math.max(x,5),50)},[t]);return{page:a,setPage:r,rowsPerPage:o}}const ee=Y("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}});function d(...t){return Wt(Gt(t))}const y=l.forwardRef(({className:t,variant:s,size:a,asChild:r=!1,...o},n)=>{const i=r?Rt:"button";return e.jsx(i,{className:d(ee({variant:s,size:a,className:t})),ref:n,...o})});y.displayName="Button";function Ks({page:t,setPage:s,rowsPerPage:a}){const{totalRows:r}=j(),o=l.useMemo(()=>Math.ceil(r/a),[r,a]),n=l.useMemo(()=>Math.ceil(t/a)+1,[t,a]),i=n1,c=l.useCallback(()=>{i&&s(x=>x+a)},[i,a,s]),f=l.useCallback(()=>{u&&s(x=>x-a)},[u,a,s]);return e.jsx("section",{className:"fixed bottom-2 left-1/2 z-10 w-[270px] -translate-x-1/2 transform",children:e.jsxs("div",{className:"flex justify-between gap-2 rounded border bg-secondary p-[6px]",children:[e.jsx(y,{onClick:f,title:"Previous page",disabled:!u,children:e.jsx(_t,{className:"h-4 w-4"})}),e.jsxs("span",{className:"flex items-center justify-center text-sm",children:["Page ",n," of ",o]}),e.jsx(y,{onClick:c,title:"Next page",disabled:!i,children:e.jsx(Kt,{className:"h-4 w-4"})})]})})}const Ys=It,Xs=Ft,Js=kt,ke=l.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(de,{ref:r,className:d("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...a,children:[s,e.jsx(Tt,{asChild:!0,children:e.jsx(Le,{className:"h-4 w-4 opacity-50"})})]}));ke.displayName=de.displayName;const Oe=l.forwardRef(({className:t,...s},a)=>e.jsx(ue,{ref:a,className:d("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(Yt,{className:"h-4 w-4"})}));Oe.displayName=ue.displayName;const Pe=l.forwardRef(({className:t,...s},a)=>e.jsx(me,{ref:a,className:d("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(Le,{className:"h-4 w-4"})}));Pe.displayName=me.displayName;const Me=l.forwardRef(({className:t,children:s,position:a="popper",...r},o)=>e.jsx(St,{children:e.jsxs(fe,{ref:o,className:d("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,...r,children:[e.jsx(Oe,{}),e.jsx(At,{className:d("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s}),e.jsx(Pe,{})]})}));Me.displayName=fe.displayName;const Be=l.forwardRef(({className:t,...s},a)=>e.jsx(xe,{ref:a,className:d("py-1.5 pl-8 pr-2 text-sm font-semibold",t),...s}));Be.displayName=xe.displayName;const Ue=l.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(pe,{ref:r,className:d("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...a,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Dt,{children:e.jsx(Xt,{className:"h-4 w-4"})})}),e.jsx(Lt,{children:s})]}));Ue.displayName=pe.displayName;const Zs=l.forwardRef(({className:t,...s},a)=>e.jsx(he,{ref:a,className:d("-mx-1 my-1 h-px bg-muted",t),...s}));Zs.displayName=he.displayName;const ea=Y("inline-flex items-center rounded border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function H({className:t,variant:s,...a}){return e.jsx("div",{className:d(ea({variant:s}),t),...a,children:e.jsx("span",{className:"w-full",children:a.children})})}function ta(){const{tables:t,selectedTable:s,setSelectedTable:a,setIsCustomQuery:r}=j(),o=l.useMemo(()=>{var c;const u=parseInt(s);return isNaN(u)?0:((c=t[u])==null?void 0:c.count)||0},[t,s]),n=l.useMemo(()=>t.map((u,c)=>e.jsx(Ue,{value:`${c}`,children:u.name[0].toUpperCase()+u.name.slice(1)},u.name)),[t]);function i(u){r(!1),a(u)}return e.jsxs("section",{className:"flex grow items-center justify-center gap-1",children:[e.jsxs(Ys,{value:s,onValueChange:i,children:[e.jsx(ke,{className:"grow",children:e.jsx(Js,{placeholder:"Select a table"})}),e.jsx(Me,{children:e.jsxs(Xs,{children:[e.jsx(Be,{children:"Tables"}),n]})})]}),e.jsx(H,{title:"Rows",className:"hidden min-w-[100px] grow bg-background py-2 text-center text-sm md:block md:min-w-[200px]",variant:"outline",children:e.jsx("span",{className:"w-full text-center",children:o})})]})}const V=t=>t instanceof Date&&!isNaN(t.getTime()),sa=t=>{const s=new Date(t);return V(s)?Ds(s,{addSuffix:!0}):t},aa=t=>{const s=new Date(t);return V(s)?X(s,"MMMM do, yyyy"):t},ra=t=>{const s=new Date(t);return V(s)?X(s,"MM/dd/yyyy"):t},oa=t=>{const s=new Date(t);return V(s)?X(s,"yyyy/dd/MM"):t},_={formatDateRelative:{label:"Over 56 years ago",func:sa},formatDateFormatted:{label:"January 9th, 1968",func:aa},formatDateLong:{label:"1968/09/01",func:oa},formatDateShort:{label:"01/09/1968",func:ra}},Qe=t=>t.includes("DATE")||t==="TIMESTAMP",la=t=>t==="BLOB",na=t=>t.includes("CHAR")||t.includes("TEXT")||t==="CLOB"||t.includes("VARCHAR"),ia=t=>t.includes("INT"),ca=t=>t.includes("REAL")||t.includes("FLOAT")||t.includes("DOUBLE")||t.includes("DECIMAL"),da=t=>t.includes("NUMERIC"),ua=t=>ia(t)||ca(t)||da(t),ma=t=>t.includes("BOOL"),$e=Ot,He=Pt,te=l.forwardRef(({className:t,align:s="start",side:a="bottom",sideOffset:r=4,...o},n)=>e.jsx(ge,{ref:n,align:s,side:a,sideOffset:r,className:d("z-50 w-64 text-balance break-words rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...o}));te.displayName=ge.displayName;const qe=l.forwardRef(({className:t,...s},a)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:a,className:d("w-full caption-bottom text-sm",t),...s})}));qe.displayName="Table";const Ve=l.forwardRef(({className:t,...s},a)=>e.jsx("thead",{ref:a,className:d("[&_tr]:border-b",t),...s}));Ve.displayName="TableHeader";const ze=l.forwardRef(({className:t,...s},a)=>e.jsx("tbody",{ref:a,className:d("[&_tr:last-child]:border-0",t),...s}));ze.displayName="TableBody";const fa=l.forwardRef(({className:t,...s},a)=>e.jsx("tfoot",{ref:a,className:d("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...s}));fa.displayName="TableFooter";const K=l.forwardRef(({className:t,...s},a)=>e.jsx("tr",{ref:a,className:d("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...s}));K.displayName="TableRow";const Ge=l.forwardRef(({className:t,...s},a)=>e.jsx("th",{ref:a,className:d("h-12 min-w-[150px] px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",t),...s}));Ge.displayName="TableHead";const xa=t=>{const s=new Uint8Array(t.match(/.{1,2}/g).map(r=>parseInt(r,16))),a=new Blob([s],{type:"image/jpeg"});return URL.createObjectURL(a)},We=l.forwardRef(({className:t,children:s,dataType:a,...r},o)=>{const n=(a==null?void 0:a.toUpperCase())==="BLOB",i=l.useMemo(()=>typeof s=="string"&&s.length>40?s.slice(0,40)+"...":s,[s]);return e.jsx("td",{ref:o,className:d("max-w-[200px] overflow-hidden truncate text-ellipsis whitespace-nowrap p-4 align-middle [&:has([role=checkbox])]:pr-0",t),...r,children:e.jsxs($e,{children:[e.jsx(He,{asChild:!0,children:e.jsx("span",{className:"cursor-pointer hover:underline",children:n?e.jsx("span",{className:"italic opacity-40",children:"BLOB"}):i})}),e.jsx(te,{side:"bottom",align:"start",children:e.jsxs("div",{className:"flex flex-col justify-center gap-1",children:[n&&typeof s=="string"?e.jsxs(e.Fragment,{children:[e.jsx("img",{src:xa(s),alt:"BLOB content",className:"flex max-h-40 flex-col items-center justify-center gap-2 rounded object-contain",onError:u=>{u.currentTarget.style.display="none"}}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Blob length: ",s.length]})]}):e.jsx("span",{className:"max-w-full break-words",children:s}),e.jsx(H,{className:"w-full self-start text-center text-xs font-semibold",children:a||"Unknown"})]})})]})})});We.displayName="TableCell";const pa=l.forwardRef(({className:t,...s},a)=>e.jsx("caption",{ref:a,className:d("mt-4 text-sm text-muted-foreground",t),...s}));pa.displayName="TableCaption";const se=l.forwardRef(({className:t,type:s,...a},r)=>e.jsx("input",{type:s,className:d("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:r,...a}));se.displayName="Input";function ha({columnName:t}){const{appendToFilters:s,selectedTable:a,filtersNeedClear:r,setFiltersNeedClear:o}=j(),[n,i]=l.useState("");l.useEffect(()=>{i("")},[a]),l.useEffect(()=>{r&&(i(""),o(!1))},[r]);const u=l.useCallback(c=>{const f=c.target.value;i(f),s(t,f)},[s,t]);return e.jsx(se,{value:n,onChange:u,className:"mt-[2px] max-h-7 w-full text-xs",placeholder:"Filter"})}function ga({columnName:t}){const{orderBy:s,setOrderBy:a,orderByDirection:r,setOrderByDirection:o}=j(),n=l.useCallback(()=>{s===t?r==="ASC"?o("DESC"):r==="DESC"?(a(null),o("ASC")):(a(t),o("ASC")):(a(t),o("ASC"))},[s,r,t,a,o]);return e.jsx("div",{onClick:n,className:"flex items-center",children:s===t?r==="ASC"?e.jsx("button",{title:"Descending",children:e.jsx(Jt,{className:"h-4 w-4"})}):e.jsx("button",{title:"Ascending",children:e.jsx(Zt,{className:"h-4 w-4"})}):e.jsx("button",{title:"Sort column",children:e.jsx(es,{className:"h-4 w-4"})})})}const ba=k.memo(({columnSchema:t})=>e.jsxs(e.Fragment,{children:[(t==null?void 0:t.isPrimaryKey)&&e.jsx("p",{className:"text-sm font-semibold text-yellow-600",children:"(Primary)"}),(t==null?void 0:t.isForeignKey)&&e.jsx("p",{className:"text-sm font-semibold text-purple-600",children:"(Foreign)"})]})),ya=k.memo(({columnSchema:t})=>{const{type:s,isPrimaryKey:a,isForeignKey:r}=t;if(a)return e.jsx(ts,{className:"h-4 w-4 text-yellow-500"});if(r)return e.jsx(ss,{className:"h-4 w-4 text-purple-500"});if(s){if(la(s))return e.jsx(as,{className:"h-4 w-4 text-green-500"});if(Qe(s))return e.jsx(Ie,{className:"h-4 w-4 text-blue-500"});if(na(s))return e.jsx(rs,{className:"h-4 w-4 text-indigo-500"});if(ua(s))return e.jsx(os,{className:"h-4 w-4 text-red-500"});if(ma(s))return e.jsx(ls,{className:"h-4 w-4 text-pink-500"})}return e.jsx(ns,{className:"h-4 w-4 text-gray-500"})}),ja=k.memo(({columnName:t,columnSchema:s})=>e.jsxs(Ge,{className:"bg-gray-100 py-2 dark:bg-gray-700",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(ga,{columnName:t}),e.jsxs($e,{children:[e.jsx(He,{asChild:!0,children:e.jsxs("div",{className:"flex cursor-pointer items-center space-x-1",children:[e.jsx("span",{className:"max-w-[200px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:t}),s&&e.jsx(ya,{columnSchema:s})]})}),e.jsxs(te,{className:"w-64",children:[e.jsxs("div",{className:"mb-1 flex items-center space-x-1",children:[e.jsx("p",{className:"text-sm font-medium",children:t}),e.jsx(ba,{columnSchema:s})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(H,{className:"w-full self-start text-center text-xs font-semibold",children:(s==null?void 0:s.type)||"Unknown"}),(s==null?void 0:s.nullable)&&e.jsx(H,{className:"w-full self-start text-center text-xs font-semibold",children:"NULLABLE"})]})]})]})]}),e.jsx(ha,{columnName:t})]})),Na=k.memo(({value:t,dataType:s})=>{const{dateFormatValue:a}=j(),r=()=>t?s&&Qe(s)&&_[a]?_[a].func(t):t:e.jsx("span",{className:"italic text-gray-400",children:"NULL"});return e.jsx(We,{dataType:s,className:"px-5 py-[11px] text-sm",children:r()})});function wa({data:t,columns:s,tableName:a,tableSchemas:r}){const{filters:o,setFiltersNeedClear:n,setFilters:i}=j(),u=l.useMemo(()=>e.jsx(Ve,{children:e.jsx(K,{children:s.map((x,p)=>e.jsx(ja,{columnName:x,columnSchema:r[a][x]},p))})}),[s,r,a]),c=l.useMemo(()=>e.jsx(ze,{children:t.map((x,p)=>e.jsx(K,{children:s.map((g,m)=>{var h;return e.jsx(Na,{value:x[g],dataType:(h=r[a][g])==null?void 0:h.type},m)})},p))}),[t,s,r,a]),f=l.useCallback(()=>{n(!0),i({})},[n,i]);return e.jsxs("div",{className:"overflow-x-auto",children:[e.jsxs(qe,{children:[u,t.length>0&&c]}),t.length===0&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"w-full p-4 text-center font-medium",children:["No data available for ",a]}),Object.keys(o).length>0&&e.jsx(y,{className:"w-full rounded-none",variant:"outline",onClick:f,children:"Clear filters"})]})]})}function Q({type:t,children:s,className:a=""}){const r="flex items-center p-4 rounded-lg shadow-md";let o,n;switch(t){case"error":o=e.jsx(us,{className:"mr-3 h-6 w-6 text-red-500"}),n="bg-red-100 text-red-800 border-l-4 border-red-500";break;case"loading":o=e.jsx(ds,{className:"mr-3 h-6 w-6 animate-spin text-blue-500"}),n="bg-blue-100 text-blue-800 border-l-4 border-blue-500";break;case"success":o=e.jsx(cs,{className:"mr-3 h-6 w-6 text-green-500"}),n="bg-green-100 text-green-800 border-l-4 border-green-500";break;case"info":o=e.jsx(is,{className:"mr-3 h-6 w-6 text-yellow-500"}),n="bg-yellow-100 text-yellow-800 border-l-4 border-yellow-500";break;default:o=null,n=""}return e.jsxs("div",{className:`${r} ${n} ${a}`,children:[o,e.jsx("span",{className:"font-medium",children:s})]})}const Ca=Bt,Ea=Ut,_e=l.forwardRef(({className:t,align:s="center",sideOffset:a=4,...r},o)=>e.jsx(Mt,{children:e.jsx(be,{ref:o,align:s,sideOffset:a,className:d("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...r})}));_e.displayName=be.displayName;function va(){const{selectedTable:t,tables:s,customQuery:a,db:r}=j(),o=l.useCallback((i,u,c,f)=>e.jsx(y,{className:f,onClick:i,title:c,children:e.jsx("span",{className:"ml-2",children:u})}),[]),n=l.useMemo(()=>{var i;return r&&e.jsxs("div",{className:"flex flex-col gap-1",children:[o(()=>Hs(r),"Export as SQLite","Download database as SQLite"),o(()=>Vs(r,parseInt(t)),`Export ${((i=s[parseInt(t)])==null?void 0:i.name)||"selected"} table as CSV`,"Export selected table as CSV"),o(()=>zs(r),"Export all tables as CSV","Export all tables as CSV"),o(()=>Gs(r,a),"Export custom query as CSV","Export the result of the custom query as CSV")]})},[r,o,t,s,a]);return e.jsxs(Ca,{children:[e.jsx(Ea,{asChild:!0,children:e.jsx(y,{title:"Open export options",children:e.jsx(ms,{className:"h-5 w-5"})})}),e.jsx(_e,{align:"end",className:"w-80",children:n})]})}function Ra(){const[t,s]=l.useState(()=>document.body.classList.contains("dark"));return l.useEffect(()=>{const a=new MutationObserver(()=>{s(document.body.classList.contains("dark"))});return a.observe(document.body,{attributes:!0,attributeFilter:["class"]}),()=>a.disconnect()},[]),t}const Ta=["ABORT","ACTION","ADD","AFTER","ALL","ALTER","ANALYZE","AND","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FOR","FOREIGN","FROM","FULL","GLOB","GROUP","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LEFT","LIKE","LIMIT","MATCH","NATURAL","NO","NOT","NOTNULL","NULL","OF","OFFSET","ON","OR","ORDER","OUTER","PLAN","PRAGMA","PRIMARY","QUERY","RAISE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RIGHT","ROLLBACK","ROW","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TO","TRANSACTION","TRIGGER","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WITH","WITHOUT"];function Sa({columnNames:t}){const{customQuery:s,setCustomQuery:a,queryHistory:r,tables:o}=j(),n=Ra();l.useEffect(()=>{a(re(s))},[r]);const i=l.useCallback(x=>{const p=x.matchBefore(/\w*/);if(!p||p.from===p.to&&!x.explicit)return null;const g=[...Ta.map(m=>({label:m,type:"keyword"})),...o.map(m=>({label:m.name,type:"table"})),...t.map(m=>({label:m,type:"column"}))];return{from:p.from,to:p.to,options:g}},[o,t]),u=l.useCallback(()=>{a(re(s))},[s,a]),c=l.useCallback(x=>{a(x)},[a]),f=l.useMemo(()=>[Is,Fs(),ks({override:[i]})],[i]);return e.jsx(Os,{value:s,height:"126px",extensions:f,onChange:c,onBlur:u,className:"rounded-md border",theme:n?Ps:"light"})}function re(t){return Ls(t,{language:"sqlite",useTabs:!1,keywordCase:"upper",tabWidth:2,expressionWidth:100,linesBetweenQueries:1})}function Aa(){const{tables:t,selectedTable:s,tableSchemas:a,queryError:r,setQueryError:o,rowPerPageOrAuto:n,isCustomQuery:i,setIsCustomQuery:u,customQuery:c,setCustomQuery:f,expandPage:x,setExpandPage:p,filters:g,setFilters:m,setOrderBy:h,setFiltersNeedClear:w}=j(),{page:C,setPage:N,rowsPerPage:E}=_s(n),L=l.useMemo(()=>{var U;return(U=t[parseInt(s)])==null?void 0:U.name},[t,s]),{data:v,columns:S,isQueryLoading:D,handleCustomQuery:I}=Ws(L,E,C),[A,z]=l.useState([]);l.useEffect(()=>{S.length>0&&z(S)},[L,S]);const b=l.useCallback(()=>{o(null),f(""),u(!1),m({}),w(!0)},[u,o,f]),R=l.useCallback(()=>{N(0),b()},[b,N]);l.useEffect(()=>{N(0),m({}),h(null)},[s]),l.useEffect(()=>{N(0)},[g]);const M=l.useMemo(()=>e.jsxs("div",{className:"flex flex-col gap-1 md:flex-row",children:[e.jsx("div",{className:"flex-grow",children:e.jsx(Sa,{columnNames:A})}),e.jsxs("div",{className:"flex flex-row gap-1 md:flex-col",children:[e.jsx(y,{className:"grow",onClick:I,title:"Run custom query",children:e.jsx(fs,{className:"h-5 w-5"})}),e.jsx(y,{className:"grow",onClick:b,title:"Remove query",children:e.jsx(xs,{className:"h-5 w-5"})}),e.jsx(y,{className:"grow",onClick:R,title:"Reset to first page",disabled:C===0,children:e.jsx(ps,{className:"h-5 w-5"})})]})]}),[c,I,b,R,C]),B=l.useMemo(()=>D?e.jsxs(Q,{type:"loading",children:["Loading ",L]}):e.jsx("div",{className:"mb-[40px] overflow-hidden rounded-lg border border-gray-200 dark:border dark:border-gray-700",children:e.jsx(wa,{data:v,columns:A.length>0?A:S,tableName:L,tableSchemas:a})}),[D,v,S,L,a,g,A]);return e.jsxs("div",{className:"flex flex-col gap-3 pb-8",children:[e.jsxs("section",{className:"rounded-lg bg-gray-100 p-4 shadow-sm dark:bg-gray-700",children:[e.jsxs("div",{className:"mb-[5px] flex items-center justify-between gap-1",children:[e.jsx(ta,{}),e.jsxs("div",{className:"flex items-center justify-center gap-1",children:[e.jsx(va,{}),e.jsx(y,{className:"hidden expand:block",onClick:()=>p(!x),title:"Toggle page size",children:x?e.jsx(hs,{className:"h-5 w-5"}):e.jsx(gs,{className:"h-5 w-5"})})]})]}),M,r&&e.jsx("p",{className:"mt-2 text-center text-sm text-red-500 dark:text-red-400",children:r})]}),B,!i&&e.jsx(Ks,{page:C,setPage:N,rowsPerPage:E})]})}const Ke=(t,s)=>localStorage.getItem(t)||s,Ye=(t,s)=>localStorage.setItem(t,s),oe=(t,s)=>{const[a,r]=l.useState(()=>Ke(t,s));return l.useEffect(()=>{Ye(t,a)},[t,a]),[a,r]},Xe=({shouldScaleBackground:t=!0,...s})=>e.jsx(T.Root,{shouldScaleBackground:t,...s});Xe.displayName="Drawer";const Da=T.Trigger,La=T.Portal,Ia=T.Close,Je=l.forwardRef(({className:t,...s},a)=>e.jsx(T.Overlay,{ref:a,className:d("fixed inset-0 z-50 bg-black/80",t),...s}));Je.displayName=T.Overlay.displayName;const Ze=l.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(La,{children:[e.jsx(Je,{}),e.jsxs(T.Content,{ref:r,className:d("fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",t),...a,children:[e.jsx("div",{className:"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted"}),s]})]}));Ze.displayName="DrawerContent";const et=({className:t,...s})=>e.jsx("div",{className:d("grid gap-1.5 p-4 text-center sm:text-left",t),...s});et.displayName="DrawerHeader";const tt=({className:t,...s})=>e.jsx("div",{className:d("mt-auto flex flex-col gap-2 pb-4",t),...s});tt.displayName="DrawerFooter";const st=l.forwardRef(({className:t,...s},a)=>e.jsx(T.Title,{ref:a,className:d("text-lg font-semibold leading-none tracking-tight",t),...s}));st.displayName=T.Title.displayName;const at=l.forwardRef(({className:t,...s},a)=>e.jsx(T.Description,{ref:a,className:d("text-sm text-muted-foreground",t),...s}));at.displayName=T.Description.displayName;const rt=l.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(ye,{ref:r,className:d("relative overflow-hidden",t),...a,children:[e.jsx(Qt,{className:"h-full w-full rounded-[inherit]",children:s}),e.jsx(ot,{}),e.jsx($t,{})]}));rt.displayName=ye.displayName;const ot=l.forwardRef(({className:t,orientation:s="vertical",...a},r)=>e.jsx(je,{ref:r,orientation:s,className:d("flex touch-none select-none transition-colors",s==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",s==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...a,children:e.jsx(Ht,{className:"relative flex-1 rounded-full bg-border"})}));ot.displayName=je.displayName;const lt=l.forwardRef(({className:t,orientation:s="horizontal",decorative:a=!0,...r},o)=>e.jsx(Ne,{ref:o,decorative:a,orientation:s,className:d("shrink-0 bg-border",s==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",t),...r}));lt.displayName=Ne.displayName;const Fa=Y("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),nt=l.forwardRef(({className:t,...s},a)=>e.jsx(we,{ref:a,className:d(Fa(),t),...s}));nt.displayName=we.displayName;const ae=l.forwardRef(({className:t,...s},a)=>e.jsx(Ce,{className:d("grid gap-2",t),...s,ref:a}));ae.displayName=Ce.displayName;const it=l.forwardRef(({className:t,...s},a)=>e.jsx(Ee,{ref:a,className:d("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),...s,children:e.jsx(qt,{className:"flex items-center justify-center",children:e.jsx(bs,{className:"h-2.5 w-2.5 fill-current text-current"})})}));it.displayName=Ee.displayName;const q=({value:t,label:s})=>e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(it,{value:t,id:`r-${t}`}),e.jsx(nt,{htmlFor:`r-${t}`,children:s})]}),ka=({rowsPerPage:t,onRowsPerPageChange:s})=>{const a=t==="auto";return e.jsxs("div",{className:"flex h-full grow flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(ys,{className:"h-4 w-4"}),e.jsx("p",{className:"text-sm font-medium",children:"Rows Per Page"})]}),e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-1 rounded border p-2",children:[e.jsx(se,{id:"rowsPerPage",value:a?"":t,onChange:r=>s(r.target.value),placeholder:"Number of rows",type:"number",className:"w-full",autoFocus:!1}),e.jsx(y,{variant:a?"secondary":"outline",onClick:()=>s("auto"),className:"w-full whitespace-nowrap",children:"Auto Calculate"})]})]})},Oa=({dateFormatValue:t,onDateFormatChange:s})=>e.jsxs("div",{className:"flex h-full grow flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Ie,{className:"h-4 w-4"}),e.jsx("p",{className:"text-sm font-medium",children:"Date Format"})]}),e.jsx("div",{className:"h-full rounded border p-2",children:e.jsxs(ae,{className:"flex h-full flex-col gap-2",name:"dateType",value:t,onValueChange:s,children:[e.jsx(q,{value:"default",label:"Default"}),Object.entries(_).map(([a,{label:r}])=>e.jsx(q,{value:a,label:r},a))]})})]}),Pa=({themeColor:t,onThemeColorChange:s,themeColors:a})=>e.jsxs("div",{className:"flex grow flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(js,{className:"h-4 w-4"}),e.jsx("p",{className:"text-sm font-medium",children:"Theme Color"})]}),e.jsxs(ae,{className:"flex flex-col gap-2 rounded border p-2",name:"themeColor",value:t,onValueChange:s,children:[e.jsx(q,{value:"default",label:"Default"}),a.map(r=>e.jsx(q,{value:r,label:r[0].toUpperCase()+r.slice(1)},r))]})]}),Ma=({queryHistory:t})=>e.jsxs("div",{className:"flex grow flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Ns,{className:"h-4 w-4"}),e.jsxs("p",{className:"text-sm font-medium",children:["Query History (",t.length,")"]})]}),e.jsx(rt,{className:"h-[155px] rounded-md border font-medium",children:e.jsx("div",{className:"p-4",children:t.map((s,a)=>e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-normal",children:s}),e.jsx(lt,{className:"my-2"})]},a))})})]}),Ba="rowsPerPage",le="dateFormat",Ua="theme-color",ne=["nord","zinc"];function Qa(){const{setRowPerPageOrAuto:t,setIsCustomQuery:s,queryHistory:a,dateFormatValue:r,setDateFormatValue:o}=j(),[n,i]=oe(Ba,"auto"),[u,c]=oe(Ua,"default"),f=n==="auto";l.useEffect(()=>{t(f?"auto":Number(n))},[n,t]),l.useEffect(()=>{o(Ke(le,"default"))},[o]),l.useEffect(()=>{ne.forEach(m=>{var h;return(h=document.body)==null?void 0:h.classList.toggle(m,m===u)})},[u]);const x=l.useCallback(m=>{s(!1),m==="auto"||Number(m)>0?i(m):$.error("Please provide a positive number of rows per page or set it to auto.")},[s,i]),p=l.useCallback(m=>{o(m),Ye(le,m)},[o]),g=l.useCallback(m=>{c(m)},[c]);return e.jsxs(Xe,{children:[e.jsx(Da,{asChild:!0,children:e.jsx(y,{className:"grow",title:"Open settings drawer",children:e.jsx(Fe,{className:"h-5 w-5"})})}),e.jsxs(Ze,{children:[e.jsxs(et,{className:"hidden",children:[e.jsx(st,{children:"Settings"}),e.jsx(at,{children:"Change settings."})]}),e.jsxs("div",{className:"mx-auto flex w-full max-w-sm flex-col gap-3",children:[e.jsx(ka,{rowsPerPage:n,onRowsPerPageChange:x}),e.jsx(Pa,{themeColor:u,onThemeColorChange:g,themeColors:ne}),e.jsx(Oa,{dateFormatValue:r,onDateFormatChange:p}),e.jsx(Ma,{queryHistory:a}),e.jsx(tt,{children:e.jsx(Ia,{asChild:!0,children:e.jsx(y,{variant:"outline",children:"Cancel"})})})]})]})]})}const G="theme-mode",ie="animate-circular-reveal";function ct(){const[t,s]=l.useState(()=>{const o=localStorage.getItem(G),n=window.matchMedia("(prefers-color-scheme: dark)").matches;return o||(n?"dark":"light")}),a=l.useCallback(o=>{s(o),document.body.classList.remove("light","dark"),document.body.classList.add(o),localStorage.setItem(G,o),document.body.classList.add(ie),setTimeout(()=>{document.body.classList.remove(ie)},500)},[]);l.useEffect(()=>{const o=i=>{localStorage.getItem(G)||a(i.matches?"dark":"light")},n=window.matchMedia("(prefers-color-scheme: dark)");return n.addEventListener("change",o),a(t),()=>{n.removeEventListener("change",o)}},[a,t]);const r=l.useCallback(()=>{a(t==="light"?"dark":"light")},[t,a]);return e.jsx(y,{className:"relative grow",onClick:r,title:t==="dark"?"Enable light mode":"Enable dark mode",children:t==="dark"?e.jsx(ws,{className:"h-5 w-5"}):e.jsx(Cs,{className:"h-5 w-5"})})}const $a={"application/vnd.sqlite3":[".sqlite",".sqlite3"],"application/x-sqlite3":[".sqlite",".sqlite3"],"application/octet-stream":[".db"],"application/sql":[".sql"]};function Ha(){const{loadDatabase:t,setTables:s,setSelectedTable:a,db:r,setCustomQuery:o}=j(),[n,i]=l.useState([]),u=l.useCallback(async(m,h)=>{if(h.length>0){const w=h.flatMap(C=>C.errors);i(w);return}if(i([]),s([]),o(""),a("0"),m.length>0)try{await t(m[0])}catch(w){return w instanceof Error?$(w.message,{position:"bottom-right"}):$("Failed to load database",{position:"bottom-right"})}},[t,s,a]),{getRootProps:c,getInputProps:f,isDragActive:x}=Ms({onDrop:u,multiple:!1,accept:$a}),p=l.useCallback(m=>e.jsxs("div",{className:"flex w-full items-center justify-between gap-2",children:[e.jsxs("div",{...c(),className:`flex w-full grow transform cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed p-6 transition-colors duration-300 ease-in-out hover:bg-secondary ${x?"border-blue-500 bg-blue-50 dark:bg-blue-900/20":"border-primary dark:border-gray-700"} ${m?"py-7":"py-12"}`,children:[e.jsx("input",{id:"file-upload",...f()}),e.jsx("label",{htmlFor:"file-upload",className:"sr-only",children:"Upload SQLite File"}),e.jsxs("div",{className:"text-center text-sm md:text-base",children:[e.jsx("span",{className:"hidden sm:block lg:text-lg",children:"Drag and drop file here, or click to select one"}),e.jsx("div",{className:"block sm:hidden",children:m?e.jsx("span",{className:"font-medium",children:"Click to select a file"}):e.jsx("span",{className:"font-medium",children:"Click to select a SQLite file"})})]})]}),m&&e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(ct,{}),e.jsx(Qa,{})]})]}),[c,f,x,r]),g=l.useMemo(()=>p(!!r),[p,r]);return e.jsxs("section",{className:"mx-auto w-full",children:[g,e.jsx(qa,{errors:n})]})}const qa=k.memo(({errors:t})=>(k.useEffect(()=>{t==null||t.forEach(s=>$(s.message,{position:"bottom-right"}))},[t]),null));function Va(){return e.jsx("header",{className:"rounded bg-gradient-to-r shadow-md dark:from-gray-800 dark:to-indigo-900",children:e.jsx("div",{className:"mx-auto max-w-4xl px-4 py-8 sm:py-12",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("h1",{className:"mb-2 text-2xl font-bold sm:text-3xl",children:"SQLite Viewer"}),e.jsx("p",{className:"max-w-md text-sm sm:text-base",children:"Explore and analyze your SQLite databases directly in your browser"})]})})})}const za=zt,Ga=Vt,dt=l.forwardRef(({className:t,...s},a)=>e.jsx(ve,{className:d("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...s,ref:a}));dt.displayName=ve.displayName;const ut=l.forwardRef(({className:t,...s},a)=>e.jsxs(Ga,{children:[e.jsx(dt,{}),e.jsx(Re,{ref:a,className:d("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...s})]}));ut.displayName=Re.displayName;const mt=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col space-y-2",t),...s});mt.displayName="AlertDialogHeader";const ft=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s});ft.displayName="AlertDialogFooter";const xt=l.forwardRef(({className:t,...s},a)=>e.jsx(Te,{ref:a,className:d("text-lg font-semibold",t),...s}));xt.displayName=Te.displayName;const pt=l.forwardRef(({className:t,...s},a)=>e.jsx(Se,{ref:a,className:d("text-sm text-muted-foreground",t),...s}));pt.displayName=Se.displayName;const ht=l.forwardRef(({className:t,...s},a)=>e.jsx(Ae,{ref:a,className:d(ee(),t),...s}));ht.displayName=Ae.displayName;const gt=l.forwardRef(({className:t,...s},a)=>e.jsx(De,{ref:a,className:d(ee({variant:"outline"}),"mt-2 sm:mt-0",t),...s}));gt.displayName=De.displayName;function Wa({showDialog:t,setShowDialog:s,onConfirm:a}){const r=l.useCallback(()=>{s(!1)},[s]);return e.jsx(za,{open:t,onOpenChange:s,children:e.jsxs(ut,{children:[e.jsxs(mt,{children:[e.jsx(xt,{children:"Use Proxy to Load Database?"}),e.jsx(pt,{children:"We couldn't load the database from the provided URL due to CORS restrictions. Would you like to try using a proxy?"})]}),e.jsx("div",{className:"font-semibold text-yellow-600 md:text-left",children:"Warning: Using the proxy will route your database traffic through cors.eu.org."}),e.jsxs(ft,{children:[e.jsx(gt,{onClick:r,children:"Cancel"}),e.jsx(ht,{onClick:a,children:"Use Proxy"})]})]})})}function _a(){return e.jsx("footer",{className:"fixed bottom-0 left-0 right-0 border-t bg-background shadow-md",children:e.jsx("div",{className:"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex items-center justify-between py-4 md:py-6",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sms hidden sm:block",children:"No file will be uploaded to server. Using JavaScript, sql.js"}),e.jsx("p",{className:"text-sm sm:hidden",children:"No file uploads to server."})]}),e.jsxs("a",{href:"https://github.com/vwh/sqlite-viewer",target:"_blank",rel:"noopener noreferrer",className:"flex items-center space-x-2 text-blue-500",title:"Star on GitHub",children:[e.jsx(Es,{className:"h-5 w-5"}),e.jsx("span",{className:"text-sm font-medium hover:underline",children:"Star us on GitHub"})]})]}),e.jsx("div",{className:"flex items-center space-x-4",children:e.jsx(ct,{})})]})})})}function P({icon:t,title:s,description:a}){return e.jsxs("div",{className:"flex items-start space-x-3",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(t,{className:"h-6 w-6 text-blue-500"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-medium",children:s}),e.jsx("p",{className:"mt-1 text-sm",children:a})]})]})}function Ka(){return e.jsxs(e.Fragment,{children:[e.jsx("section",{className:"rounded bg-gradient-to-r py-6 shadow-md dark:from-gray-800 dark:to-indigo-900 md:py-10",children:e.jsx("div",{className:"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",children:e.jsx("div",{children:e.jsxs("div",{className:"grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsx(P,{icon:vs,title:"Browser Based",description:"No installation required. Access and analyze your SQLite databases directly in your web browser."}),e.jsx(P,{icon:Rs,title:"Lightning Fast",description:"Powered by WebAssembly (WASM) for near-native performance, even with large databases."}),e.jsx(P,{icon:Ts,title:"100% Secure",description:"Your data never leaves your device. All processing happens client-side, ensuring complete privacy."}),e.jsx(P,{icon:Fe,title:"Customizable Interface",description:"Different themes and settings. Adjust the look and feel of your interface to suit your preferences and workflow."}),e.jsx(P,{icon:Ss,title:"Offline Capable",description:"Work on your databases without an internet connection. Perfect for sensitive data or remote work."}),e.jsx(P,{icon:As,title:"PWA Support",description:"Install the app on your desktop or mobile device for a genuine native experience. Enjoy robust offline functionality."})]})})})}),e.jsx("div",{className:"pb-[72px] md:pb-0"})]})}function Ya(){const{db:t,tables:s,isLoading:a,loadDatabase:r,expandPage:o}=j(),[n,i]=l.useState(null),[u,c]=l.useState(!1),[f,x]=l.useState(null),[p,g]=l.useState(!1),m=l.useRef(!1),h=l.useCallback(async(N,E=!1)=>{if(!/^(https?:\/\/(?:www\.)?[a-zA-Z0-9-]{1,256}\.[a-zA-Z]{2,6}(?:\/[^\s]*)?)$/i.test(N)){i("Invalid URL");return}try{g(!0);const v=E?`https://cors.eu.org/${encodeURIComponent(N)}`:N,S=await fetch(v);if(!S.ok)throw new Error("URL not found or invalid");const D=await S.blob(),I=new File([D],"database.sqlite");await r(I),i(null)}catch(v){E?i(`Error whilefetching, ${v instanceof Error?v.message:String(v)}`):(x(N),c(!0))}finally{g(!1)}},[r]);l.useEffect(()=>{if(m.current)return;const E=new URLSearchParams(window.location.search).get("url");E&&(h(decodeURIComponent(E)),m.current=!0)},[h]);const w=l.useCallback(()=>{f&&(h(f,!0),c(!1))},[f,h]),C=()=>a||p?e.jsxs(Q,{type:"loading",children:[p?"Fetching":"Loading"," SQLite file"]}):n&&!t?e.jsx(Q,{type:"error",children:n}):t?s.length>0?e.jsx(Aa,{}):e.jsx(Q,{type:"info",children:"Your database is empty, no tables found"}):null;return e.jsxs("main",{id:"main",className:`mx-auto flex h-screen flex-col ${t?"gap-3":"gap-4"} p-4 ${o?"w-full":"container"}`,children:[!t&&e.jsx(Va,{}),e.jsx(Ha,{}),C(),!t&&e.jsxs(e.Fragment,{children:[e.jsx(Ka,{})," ",e.jsx(_a,{})]}),e.jsx(Wa,{showDialog:u,setShowDialog:c,onConfirm:w})]})}const Xa=({...t})=>e.jsx(Bs,{className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-primary group-[.toaster]:text-background group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...t});Ct.createRoot(document.getElementById("root")).render(e.jsxs(k.StrictMode,{children:[e.jsx(Ya,{}),e.jsx(Xa,{})]})); diff --git a/assets/index-CPvICklA.js.gz b/assets/index-CPvICklA.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..207bb6314b52cedb66fd48f3ce9841214a78785d GIT binary patch literal 14656 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 C&1CTa literal 0 HcmV?d00001 diff --git a/assets/index-CdfIWGO4.js.gz b/assets/index-CdfIWGO4.js.gz deleted file mode 100644 index 3c485e77903a64cf15df011e646ff6bc2d58857f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14615 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:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity))}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.p-\[6px\]{padding:6px}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[11px\]{padding-top:11px;padding-bottom:11px}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pb-\[72px\]{padding-bottom:72px}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity))}.text-current{color:currentColor}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity))}.underline-offset-4{text-underline-offset:4px}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{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-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.cm-focused{outline:none!important}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary,.group.toaster .group-\[\.toaster\]\:bg-primary{background-color:hsl(var(--primary))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-background{color:hsl(var(--background))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.dark\:border:is(.dark *){border-width:1px}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:from-gray-800:is(.dark *){--tw-gradient-from: #1f2937 var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-indigo-900:is(.dark *){--tw-gradient-to: #312e81 var(--tw-gradient-to-position)}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:text-left{text-align:left}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width: 768px){.md\:block{display:block}.md\:min-w-\[200px\]{min-width:200px}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.md\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.md\:pb-0{padding-bottom:0}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width: 1430px){.expand\:block{display:block}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px} +.nord.light{--background: 208 36% 100%;--foreground: 208 51% 1%;--muted: 208 40% 85%;--muted-foreground: 208 10% 35%;--popover: 208 36% 100%;--popover-foreground: 208 51% 1%;--card: 0 0% 99%;--card-foreground: 208 51% 0%;--border: 220 13% 91%;--input: 220 13% 91%;--primary: 208 67% 75%;--primary-foreground: 208 67% 30%;--secondary: 208 15% 91%;--secondary-foreground: 208 15% 31%;--accent: 208 15% 91%;--accent-foreground: 208 15% 31%;--destructive: 4 99% 32%;--destructive-foreground: 4 99% 92%;--ring: 208 67% 90%}.nord.dark{--background: 208 57% 0%;--foreground: 208 21% 99%;--muted: 208 40% 15%;--muted-foreground: 208 10% 65%;--popover: 208 57% 0%;--popover-foreground: 208 21% 99%;--card: 0 0% 1%;--card-foreground: 0 0% 100%;--border: 215 27.9% 16.9%;--input: 215 27.9% 16.9%;--primary: 208 67% 90%;--primary-foreground: 208 67% 30%;--secondary: 208 6% 10%;--secondary-foreground: 208 6% 70%;--accent: 208 6% 10%;--accent-foreground: 208 6% 70%;--destructive: 4 99% 46%;--destructive-foreground: 0 0% 100%;--ring: 208 67% 90%}.old.light{--background: 116 35% 99%;--foreground: 116 62% 1%;--muted: 116 10% 85%;--muted-foreground: 116 14% 28%;--popover: 116 35% 99%;--popover-foreground: 116 62% 1%;--card: 116 35% 98%;--card-foreground: 116 62% 0%;--border: 220 13% 91%;--input: 220 13% 91%;--primary: 116 21% 73%;--primary-foreground: 116 21% 13%;--secondary: 116 9% 80%;--secondary-foreground: 116 9% 20%;--accent: 116 18% 72%;--accent-foreground: 116 18% 12%;--destructive: 7 98% 22%;--destructive-foreground: 7 98% 82%;--ring: 116 21% 73%;--radius: .5rem}.old.dark{--background: 116 52% 3%;--foreground: 116 39% 98%;--muted: 116 10% 15%;--muted-foreground: 116 14% 72%;--popover: 116 52% 3%;--popover-foreground: 116 39% 98%;--card: 116 52% 4%;--card-foreground: 116 39% 99%;--border: 215 27.9% 16.9%;--input: 215 27.9% 16.9%;--primary: 116 21% 73%;--primary-foreground: 116 21% 13%;--secondary: 116 3% 19%;--secondary-foreground: 116 3% 79%;--accent: 116 11% 24%;--accent-foreground: 116 11% 84%;--destructive: 7 98% 46%;--destructive-foreground: 0 0% 100%;--ring: 116 21% 73%}.zinc.light{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--card-foreground: 240 10% 3.9%;--popover: 0 0% 100%;--popover-foreground: 240 10% 3.9%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--accent-foreground: 240 5.9% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 240 5.9% 90%;--input: 240 5.9% 90%;--ring: 240 5.9% 10%}.zinc.dark{--background: 240 10% 3.9%;--foreground: 0 0% 98%;--card: 240 10% 3.9%;--card-foreground: 0 0% 98%;--popover: 240 10% 3.9%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 240 5.9% 10%;--secondary: 240 3.7% 15.9%;--secondary-foreground: 0 0% 98%;--muted: 240 3.7% 15.9%;--muted-foreground: 240 5% 64.9%;--accent: 240 3.7% 15.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 240 3.7% 15.9%;--input: 240 3.7% 15.9%;--ring: 240 4.9% 83.9%}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 210 40% 98%;--primary-foreground: 222.2 47.4% 11.2%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 212.7 26.8% 83.9}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"rlig" 1,"calt" 1}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}:root{--scrollbar-track: hsl(var(--secondary));--scrollbar-thumb: hsl(var(--muted-foreground) / .5);--scrollbar-thumb-hover: hsl(var(--muted-foreground) / .7)}.dark{--scrollbar-track: hsl(var(--secondary));--scrollbar-thumb: hsl(var(--muted-foreground) / .5);--scrollbar-thumb-hover: hsl(var(--muted-foreground) / .7)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-\[40px\]{margin-bottom:40px}.mb-\[5px\]{margin-bottom:5px}.ml-2{margin-left:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-\[2px\]{margin-top:2px}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.h-\[155px\]{height:155px}.h-\[1px\]{height:1px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-7{max-height:1.75rem}.max-h-96{max-height:24rem}.w-10{width:2.5rem}.w-2\.5{width:.625rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-80{width:20rem}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-\[270px\]{width:270px}.w-full{width:100%}.min-w-\[100px\]{min-width:100px}.min-w-\[150px\]{min-width:150px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.-translate-x-1\/2,.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes circular-reveal{0%{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(150% at 50% 50%)}}.animate-circular-reveal{animation:circular-reveal .3s ease-in-out}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity))}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.p-\[6px\]{padding:6px}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[11px\]{padding-top:11px;padding-bottom:11px}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pb-\[72px\]{padding-bottom:72px}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity))}.text-current{color:currentColor}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-pink-500{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity))}.underline-offset-4{text-underline-offset:4px}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{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-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.cm-focused{outline:none!important}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary,.group.toaster .group-\[\.toaster\]\:bg-primary{background-color:hsl(var(--primary))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-background{color:hsl(var(--background))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.dark\:border:is(.dark *){border-width:1px}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:from-gray-800:is(.dark *){--tw-gradient-from: #1f2937 var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-indigo-900:is(.dark *){--tw-gradient-to: #312e81 var(--tw-gradient-to-position)}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:text-left{text-align:left}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width: 768px){.md\:block{display:block}.md\:min-w-\[200px\]{min-width:200px}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.md\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.md\:pb-0{padding-bottom:0}.md\:text-left{text-align:left}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width: 1430px){.expand\:block{display:block}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px} diff --git a/assets/index-3WB_jjc1.css.gz b/assets/index-z8HxNPN9.css.gz similarity index 96% rename from assets/index-3WB_jjc1.css.gz rename to assets/index-z8HxNPN9.css.gz index 63ab9b46211d04c8595505fffd1459e0d4438ade..e26fbf3f1f4a2dacef0e91be9632d90e99b14aea 100644 GIT binary patch delta 208 zcmV;>05AWKHj_56Od5YR&`1*fGwcod$73>hzEgX6JlwTEaR7=3_N!Y28U_(v z{eVmRJ@j!}tB|Ve9DczUJWYbY&dUTs8}VQb{$e}jXL#EeCk{yY`)nkxm5etbSgAFI zU2_Z>%Q!tKjsS1H&+-jWSZ}IRw?G;H10oc9CEy>xA(n!%q;?2?<&ePXDG!%a|M0&9 KRBCfNd;kDEXklUi delta 204 zcmV;-05kuSHjg&2Od5ana}5d!#$&Q*zEit!JluujP8UY@H{9w$@;6?1us^>Uvym)) zh4*=TeB$auSn{7> - + @@ -131,7 +131,7 @@ - +
diff --git a/index.html.gz b/index.html.gz index 03900491a77c7c0b4bc721a360b725362078f382..9b2619e4e2737d67032c6a7b1cd6d507f2f3fa7c 100644 GIT binary patch delta 1819 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 URL(l+".js",r).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(r,i)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let u={};const t=s=>l(s,n),o={module:{uri:n},exports:u,require:t};e[n]=Promise.all(r.map((s=>o[s]||t(s)))).then((s=>(i(...s),u)))}}define(["./workbox-3e911b1d"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/@babel-BjXSgPXB.js",revision:null},{url:"assets/@codemirror-CCjSF3Vf.js",revision:null},{url:"assets/@floating-ui-DdUjdMBw.js",revision:null},{url:"assets/@lezer-DgLl1T_N.js",revision:null},{url:"assets/@radix-ui-E10elJI3.js",revision:null},{url:"assets/@uiw-CvcbIrPa.js",revision:null},{url:"assets/aria-hidden-DQ5UC2Eg.js",revision:null},{url:"assets/attr-accept-BWI1aNlo.js",revision:null},{url:"assets/class-variance-authority-Bb4qSo10.js",revision:null},{url:"assets/clsx-B-dksMZM.js",revision:null},{url:"assets/crelt-C8TCjufn.js",revision:null},{url:"assets/date-fns-fqmN70Xj.js",revision:null},{url:"assets/detect-node-es-l0sNRNKZ.js",revision:null},{url:"assets/file-saver-DhbZvGod.js",revision:null},{url:"assets/file-selector-CBHVlu32.js",revision:null},{url:"assets/get-nonce-C-Z93AgS.js",revision:null},{url:"assets/index-3WB_jjc1.css",revision:null},{url:"assets/index-CdfIWGO4.js",revision:null},{url:"assets/lucide-react-C1VID-M1.js",revision:null},{url:"assets/nearley-CG12bGQB.js",revision:null},{url:"assets/prop-types-psm7UO16.js",revision:null},{url:"assets/react-DmpIMwDM.js",revision:null},{url:"assets/react-dom-tIxIBQuZ.js",revision:null},{url:"assets/react-dropzone-D-IBOhIS.js",revision:null},{url:"assets/react-remove-scroll-bar-DZjhPxUV.js",revision:null},{url:"assets/react-remove-scroll-BOyN_WUU.js",revision:null},{url:"assets/react-style-singleton-CpxBwIWS.js",revision:null},{url:"assets/scheduler-CzFDRTuY.js",revision:null},{url:"assets/sonner-BJG0sXho.js",revision:null},{url:"assets/sql-formatter-BoZ82dp4.js",revision:null},{url:"assets/sql.js-Ch_tM77n.js",revision:null},{url:"assets/style-mod-Bc2inJdb.js",revision:null},{url:"assets/tailwind-merge-BkWO730n.js",revision:null},{url:"assets/tslib-CuZy2iRz.js",revision:null},{url:"assets/use-callback-ref-DRzK4jWO.js",revision:null},{url:"assets/use-sidecar-D8_hMcUG.js",revision:null},{url:"assets/use-sync-external-store-ByYeed7R.js",revision:null},{url:"assets/vaul-LE4MEETp.js",revision:null},{url:"assets/w3c-keyname-Vcq4gwWv.js",revision:null},{url:"assets/zustand-BpWCCnYR.js",revision:null},{url:"index.html",revision:"251220cf68196e42073ab407ba510e72"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"sql.wasm",revision:"f6ad6454f4630b310eb8473858eb33bb"},{url:"manifest.webmanifest",revision:"662c9ac5fe5300a257a596b0ad6130ea"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))})); +if(!self.define){let s,e={};const l=(l,r)=>(l=new URL(l+".js",r).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s})));self.define=(r,i)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let u={};const t=s=>l(s,n),o={module:{uri:n},exports:u,require:t};e[n]=Promise.all(r.map((s=>o[s]||t(s)))).then((s=>(i(...s),u)))}}define(["./workbox-3e911b1d"],(function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"assets/@babel-BjXSgPXB.js",revision:null},{url:"assets/@codemirror-CCjSF3Vf.js",revision:null},{url:"assets/@floating-ui-DdUjdMBw.js",revision:null},{url:"assets/@lezer-DgLl1T_N.js",revision:null},{url:"assets/@radix-ui-E10elJI3.js",revision:null},{url:"assets/@uiw-CvcbIrPa.js",revision:null},{url:"assets/aria-hidden-DQ5UC2Eg.js",revision:null},{url:"assets/attr-accept-BWI1aNlo.js",revision:null},{url:"assets/class-variance-authority-Bb4qSo10.js",revision:null},{url:"assets/clsx-B-dksMZM.js",revision:null},{url:"assets/crelt-C8TCjufn.js",revision:null},{url:"assets/date-fns-fqmN70Xj.js",revision:null},{url:"assets/detect-node-es-l0sNRNKZ.js",revision:null},{url:"assets/file-saver-DhbZvGod.js",revision:null},{url:"assets/file-selector-CBHVlu32.js",revision:null},{url:"assets/get-nonce-C-Z93AgS.js",revision:null},{url:"assets/index-CPvICklA.js",revision:null},{url:"assets/index-z8HxNPN9.css",revision:null},{url:"assets/lucide-react-C1VID-M1.js",revision:null},{url:"assets/nearley-CG12bGQB.js",revision:null},{url:"assets/prop-types-psm7UO16.js",revision:null},{url:"assets/react-DmpIMwDM.js",revision:null},{url:"assets/react-dom-tIxIBQuZ.js",revision:null},{url:"assets/react-dropzone-D-IBOhIS.js",revision:null},{url:"assets/react-remove-scroll-bar-DZjhPxUV.js",revision:null},{url:"assets/react-remove-scroll-BOyN_WUU.js",revision:null},{url:"assets/react-style-singleton-CpxBwIWS.js",revision:null},{url:"assets/scheduler-CzFDRTuY.js",revision:null},{url:"assets/sonner-BJG0sXho.js",revision:null},{url:"assets/sql-formatter-BoZ82dp4.js",revision:null},{url:"assets/sql.js-Ch_tM77n.js",revision:null},{url:"assets/style-mod-Bc2inJdb.js",revision:null},{url:"assets/tailwind-merge-BkWO730n.js",revision:null},{url:"assets/tslib-CuZy2iRz.js",revision:null},{url:"assets/use-callback-ref-DRzK4jWO.js",revision:null},{url:"assets/use-sidecar-D8_hMcUG.js",revision:null},{url:"assets/use-sync-external-store-ByYeed7R.js",revision:null},{url:"assets/vaul-LE4MEETp.js",revision:null},{url:"assets/w3c-keyname-Vcq4gwWv.js",revision:null},{url:"assets/zustand-BpWCCnYR.js",revision:null},{url:"index.html",revision:"3eddf0f41f7ec2d87dd6d878479a2de5"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"sql.wasm",revision:"f6ad6454f4630b310eb8473858eb33bb"},{url:"manifest.webmanifest",revision:"662c9ac5fe5300a257a596b0ad6130ea"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));