From b47e753d59416cf975e1fe6b0e5ff1effb44e3e5 Mon Sep 17 00:00:00 2001 From: vwh Date: Wed, 31 Jul 2024 19:50:03 +0300 Subject: [PATCH] Updates --- assets/index-BIG7Mclk.js | 5 ----- assets/index-BIG7Mclk.js.gz | Bin 11712 -> 0 bytes assets/index-C6RQFSoa.js | 5 +++++ assets/index-C6RQFSoa.js.gz | Bin 0 -> 11749 bytes ...{index-CSFft99D.css => index-CR9ThQaM.css} | 2 +- ...-CSFft99D.css.gz => index-CR9ThQaM.css.gz} | Bin 5198 -> 5245 bytes index.html | 4 ++-- index.html.gz | Bin 1741 -> 1740 bytes sw.js | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 assets/index-BIG7Mclk.js delete mode 100644 assets/index-BIG7Mclk.js.gz create mode 100644 assets/index-C6RQFSoa.js create mode 100644 assets/index-C6RQFSoa.js.gz rename assets/{index-CSFft99D.css => index-CR9ThQaM.css} (62%) rename assets/{index-CSFft99D.css.gz => index-CR9ThQaM.css.gz} (72%) diff --git a/assets/index-BIG7Mclk.js b/assets/index-BIG7Mclk.js deleted file mode 100644 index 84e3c88..0000000 --- a/assets/index-BIG7Mclk.js +++ /dev/null @@ -1,5 +0,0 @@ -import{r as n,j as e,R as F}from"./react-DmpIMwDM.js";import{c as ft}from"./react-dom-tIxIBQuZ.js";import{c as pt}from"./zustand-B1IM3DrU.js";import{i as xt}from"./sql.js-lzln2bbd.js";import{F as ae}from"./file-saver-DhbZvGod.js";import{c as ht}from"./clsx-B-dksMZM.js";import{t as gt}from"./tailwind-merge-BkWO730n.js";import{S as bt,c as re,I as yt,d as oe,e as ne,f as jt,g as le,V as wt,L as ie,h as ce,i as Nt,j as vt,k as de,l as Ct,G as Rt,m as St,n as ue,o as Et,p as Tt,q as Dt,r as me,s as Lt,t as Pt,u as fe,v as kt,w as Ft,x as pe,y as Ot,z as xe,A as he,B as ge,E as be,F as At,H as ye,J as je,K as we,M as Ne,N as ve,Q as Ce,U as It,W as Mt}from"./@radix-ui-Dtk-Z1Mr.js";import{c as _}from"./class-variance-authority-Bb4qSo10.js";import{C as $t,a as Qt,b as Re,c as Ht,d as qt,T as Bt,K as zt,e as Ut,f as Vt,g as _t,L as Kt,D as Gt,P as Wt,h as Jt,i as Yt,M as Zt,j as Xt,k as es,S as ts,l as ss,m as as,G as rs}from"./lucide-react-UOeYhQAl.js";import{f as os,a as M}from"./date-fns-fqmN70Xj.js";import{u as ns}from"./react-dropzone-D-IBOhIS.js";import{J as B,T as ls}from"./sonner-BJG0sXho.js";import{D as C}from"./vaul-Bkmv171v.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-DGkE6due.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 is="/sql.wasm",cs=async t=>{try{const[s,a]=await Promise.all([t.arrayBuffer(),xt({locateFile:()=>is})]);return new a.Database(new Uint8Array(s))}catch(s){throw console.error("Failed to load database:",s),s}},K=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),[]}},ds=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],isPrimaryKey:i[5]===1,isForeignKey:!1},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}},z=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}},us=t=>{try{const s=t.export(),a=new Blob([s],{type:"application/x-sqlite3"});ae.saveAs(a,"database.sqlite")}catch(s){throw console.error("Failed to export database:",s),s}},ms=(t,s)=>{const a=t.map(o=>`"${o}"`).join(","),r=s.map(o=>t.map(l=>`"${o[l]??""}"`).join(","));return[a,...r].join(` -`)},G=(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}=z(r),i=ms(l,o),c=new Blob([i],{type:"text/csv;charset=utf-8;"});ae.saveAs(c,`${a}.csv`)}catch(r){throw console.error(`Failed to get CSV for query "${t}":`,r),r}},fs=(t,s)=>{const r=K(t)[s],o=`SELECT * FROM "${r}"`;G(o,t,r)},ps=t=>{K(t).forEach(s=>{const a=`SELECT * FROM "${s}"`;G(a,t,s)})},xs=(t,s)=>{G(s,t,"custom_query")},R=pt((t,s)=>({db:null,isLoading:!1,queryError:null,tables:[],selectedTable:"0",tableSchemas:{},rowPerPageOrAuto:"auto",isCustomQuery:!1,loadDatabase:async a=>{t({isLoading:!0,queryError:null});try{const r=await cs(a),o=K(r),l=await Promise.all(o.map(async u=>{const m=r.exec(`SELECT COUNT(*) FROM "${u}"`),x=parseInt(m[0].values[0][0],10),f=await ds(r,u);return{name:u,count:x,schema:f}})),i=l.map(({name:u,count:m})=>({name:u,count:m})),c=l.reduce((u,{name:m,schema:x})=>(u[m]=x,u),{});t({db:r,tables:i,tableSchemas:c,isLoading:!1})}catch(r){console.error("Failed to load database:",r),t({isLoading:!1,queryError:"Failed to load database"})}},query:a=>{const{db:r}=s();return r?r.exec(a):(console.warn("Database is not loaded."),[])},setQueryError:a=>t({queryError:a}),setTables:a=>t({tables:a}),setSelectedTable:a=>t({selectedTable:a}),setRowPerPageOrAuto:a=>t({rowPerPageOrAuto:a}),customQuery:"",setIsCustomQuery:a=>t({isCustomQuery:a}),setCustomQuery:a=>t({customQuery:a}),queryHestory:[],unShiftToQueryHestory:a=>t(r=>({queryHestory:[a,...r.queryHestory]})),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}})),totalRows:0,setTotalRows:a=>t({totalRows:a})}));function hs(t,s,a,r){const{db:o,setQueryError:l,setIsCustomQuery:i,query:c,unShiftToQueryHestory:u,customQuery:m,setCustomQuery:x,filters:f,totalRows:w,setTotalRows:p}=R(),[h,j]=n.useState([]),[P,b]=n.useState([]),[S,N]=n.useState(!0);n.useEffect(()=>{o&&t&&!r&&(N(!0),(async()=>{try{const g=`PRAGMA table_info("${t}");`,L=c(g)[0].values.map(v=>({name:v[1],type:v[2]})).map(v=>v.type.toUpperCase()==="BLOB"?`hex(${v.name}) as ${v.name}`:v.name).join(", ");let O=`SELECT COUNT(*) as count FROM "${t}"`;if(Object.keys(f).length>0){const v=Object.entries(f).map(([H,q])=>`LOWER(${H}) LIKE LOWER('%${q}%')`).join(" AND ");O=`SELECT COUNT(*) as count FROM "${t}" WHERE ${v}`}const Q=c(O)[0].values[0][0];p(Q);let T=`SELECT ${L} FROM "${t}" LIMIT ${s} OFFSET ${a};`;if(Object.keys(f).length>0){const v=Object.entries(f).map(([H,q])=>`LOWER(${H}) LIKE LOWER('%${q}%')`).join(" AND ");T=`SELECT ${L} FROM "${t}" WHERE ${v} LIMIT ${s} OFFSET ${a};`}const dt=c(T),{data:ut,columns:mt}=z(dt);b(mt),j(ut),l(null),x(T),u(T)}catch(g){g instanceof Error&&l(g.message)}finally{N(!1)}})())},[o,t,a,s,r,l,c,x,u,f,p]);const E=n.useCallback(()=>{if(m.trim()===""){l(null);return}N(!0),(async()=>{try{const g=c(m),{data:D,columns:k}=z(g);b(k),j(D),i(!0),l(null)}catch(g){g instanceof Error&&l(g.message)}finally{N(!1)}})()},[m,c,l,i]);return{data:h,columns:P,customQuery:m,setCustomQuery:x,isQueryLoading:S,handleCustomQuery:E,totalRows:w}}function gs(t){const{setIsCustomQuery:s}=R(),[a,r]=n.useState(0);n.useEffect(()=>{r(0),s(!1)},[s]);let o=30;if(t==="auto"){const l=window.innerHeight,i=[{height:1700,rowHeight:65},{height:1300,rowHeight:70},{height:1200,rowHeight:75},{height:1100,rowHeight:75},{height:1e3,rowHeight:80},{height:950,rowHeight:85},{height:900,rowHeight:90},{height:850,rowHeight:95},{height:800,rowHeight:100},{height:750,rowHeight:105},{height:700,rowHeight:110},{height:600,rowHeight:120},{height:550,rowHeight:150},{height:500,rowHeight:190},{height:0,rowHeight:280}];let u=120;for(const m of i)if(l>m.height){u=m.rowHeight;break}o=Math.max(1,Math.floor(l/u))}else o=t;return{page:a,setPage:r,rowsPerPage:o}}function d(...t){return gt(ht(t))}const $=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}));$.displayName="Input";const W=_("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"}}),y=n.forwardRef(({className:t,variant:s,size:a,asChild:r=!1,...o},l)=>{const i=r?bt:"button";return e.jsx(i,{className:d(W({variant:s,size:a,className:t})),ref:l,...o})});y.displayName="Button";function bs({page:t,setPage:s,rowsPerPage:a}){const{totalRows:r}=R(),o=Math.ceil(r/a),l=Math.floor(t/a)+1,i=()=>{l{l>1&&s(t-a)};return e.jsx("section",{className:"fixed bottom-[8px] left-0 right-0 z-10 mx-auto w-[270px]",children:e.jsxs("div",{className:"flex justify-between gap-2 rounded border bg-secondary p-[6px]",children:[e.jsx(y,{onClick:c,title:"Previous page",disabled:l===1,children:e.jsx($t,{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:i,title:"Next page",disabled:l>=o,children:e.jsx(Qt,{className:"h-4 w-4"})})]})})}const ys=Ct,js=Rt,ws=St,Se=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(re,{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(yt,{asChild:!0,children:e.jsx(Re,{className:"h-4 w-4 opacity-50"})})]}));Se.displayName=re.displayName;const Ee=n.forwardRef(({className:t,...s},a)=>e.jsx(oe,{ref:a,className:d("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(Ht,{className:"h-4 w-4"})}));Ee.displayName=oe.displayName;const Te=n.forwardRef(({className:t,...s},a)=>e.jsx(ne,{ref:a,className:d("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(Re,{className:"h-4 w-4"})}));Te.displayName=ne.displayName;const De=n.forwardRef(({className:t,children:s,position:a="popper",...r},o)=>e.jsx(jt,{children:e.jsxs(le,{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(Ee,{}),e.jsx(wt,{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(Te,{})]})}));De.displayName=le.displayName;const Le=n.forwardRef(({className:t,...s},a)=>e.jsx(ie,{ref:a,className:d("py-1.5 pl-8 pr-2 text-sm font-semibold",t),...s}));Le.displayName=ie.displayName;const Pe=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(ce,{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(Nt,{children:e.jsx(qt,{className:"h-4 w-4"})})}),e.jsx(vt,{children:s})]}));Pe.displayName=ce.displayName;const Ns=n.forwardRef(({className:t,...s},a)=>e.jsx(de,{ref:a,className:d("-mx-1 my-1 h-px bg-muted",t),...s}));Ns.displayName=de.displayName;const vs=_("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 ke({className:t,variant:s,...a}){return e.jsx("div",{className:d(vs({variant:s}),t),...a})}function Cs(){const{tables:t,selectedTable:s,setSelectedTable:a,setIsCustomQuery:r}=R(),o=n.useMemo(()=>{var u;const c=parseInt(s);return isNaN(c)?0:((u=t[c])==null?void 0:u.count)||0},[t,s]),l=n.useMemo(()=>t.map((c,u)=>e.jsx(Pe,{value:`${u}`,children:c.name},c.name)),[t]);function i(c){r(!1),a(c)}return e.jsxs("section",{className:"flex grow items-center justify-center gap-1",children:[e.jsxs(ys,{value:s,onValueChange:i,children:[e.jsx(Se,{className:"grow",children:e.jsx(ws,{placeholder:"Select a table"})}),e.jsx(De,{children:e.jsxs(js,{children:[e.jsx(Le,{children:"Tables"}),l]})})]}),e.jsx(ke,{title:"Rows",className:"min-w-[100px] grow py-2 text-sm md:min-w-[200px]",variant:"outline",children:e.jsx("span",{className:"w-full text-center",children:o})})]})}const A=t=>t instanceof Date&&!isNaN(t.getTime()),Rs=t=>{const s=new Date(t);return A(s)?os(s,{addSuffix:!0}):t},Ss=t=>{const s=new Date(t);return A(s)?M(s,"MMMM do, yyyy"):t},Es=t=>{const s=new Date(t);return A(s)?M(s,"hh:mm a"):t},Ts=t=>{const s=new Date(t);return A(s)?M(s,"MM/dd/yyyy"):t},Ds=t=>{const s=new Date(t);return A(s)?M(s,"EEEE, MMMM do, yyyy"):t},I={formatDateRelative:{label:"over 56 years ago",func:Rs},formatDateFormatted:{label:"January 9th, 1968",func:Ss},formatTime:{label:"12:00 am",func:Es},formatDateShort:{label:"01/09/1968",func:Ts},formatDateLong:{label:"Monday, January 9th, 1968",func:Ds}},Fe=Et,Oe=Tt,J=n.forwardRef(({className:t,align:s="start",side:a="bottom",sideOffset:r=4,...o},l)=>e.jsx(ue,{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}));J.displayName=ue.displayName;const Ae=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})}));Ae.displayName="Table";const Ie=n.forwardRef(({className:t,...s},a)=>e.jsx("thead",{ref:a,className:d("[&_tr]:border-b",t),...s}));Ie.displayName="TableHeader";const Me=n.forwardRef(({className:t,...s},a)=>e.jsx("tbody",{ref:a,className:d("[&_tr:last-child]:border-0",t),...s}));Me.displayName="TableBody";const Ls=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}));Ls.displayName="TableFooter";const U=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}));U.displayName="TableRow";const $e=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}));$e.displayName="TableHead";const Ps=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)},Qe=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(Fe,{children:[e.jsx(Oe,{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(J,{side:"bottom",align:"start",children:e.jsxs("div",{className:"flex flex-col justify-center gap-2",children:[l&&typeof s=="string"?e.jsxs(e.Fragment,{children:[e.jsx("img",{src:Ps(s),alt:"BLOB content",className:"flex max-h-40 flex-col items-center justify-center gap-2 rounded object-contain",onError:c=>{c.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}),a&&e.jsx(ke,{className:"w-full self-start text-xs font-semibold",children:a})]})})]})})});Qe.displayName="TableCell";const ks=n.forwardRef(({className:t,...s},a)=>e.jsx("caption",{ref:a,className:d("mt-4 text-sm text-muted-foreground",t),...s}));ks.displayName="TableCaption";function V({children:t}){return e.jsxs("div",{className:"flex items-center justify-center gap-4 rounded border p-4",children:[e.jsx(Bt,{className:"h-6 w-6"}),e.jsx("span",{className:"font-semibold",children:t})]})}const Fs=F.memo(({columnSchema:t})=>{var s;return t!=null&&t.isPrimaryKey?e.jsx(zt,{className:"h-4 w-4"}):t!=null&&t.isForeignKey?e.jsx(Ut,{className:"h-4 w-4"}):(t==null?void 0:t.type)==="BLOB"?e.jsx(Vt,{className:"h-4 w-4"}):(s=t==null?void 0:t.type)!=null&&s.includes("DATE")?e.jsx(_t,{className:"h-4 w-4"}):null}),Os=F.memo(({col:t,columnSchema:s,children:a})=>e.jsx($e,{className:"py-2",children:e.jsxs(Fe,{children:[e.jsx(Oe,{asChild:!0,children:e.jsxs("span",{className:"cursor-pointer hover:underline",children:[e.jsxs("div",{className:"flex gap-1",children:[t,e.jsx(Fs,{columnSchema:s})]}),a]})}),e.jsx(J,{side:"bottom",align:"start",children:(s==null?void 0:s.type)||"Unknown"})]})})),As=F.memo(({value:t,dataType:s})=>{const{dateFormatValue:a}=R(),r=s==="DATE"||s==="DATETIME",o=()=>t?r&&I[a]?I[a].func(t):t:e.jsx("span",{className:"italic opacity-40",children:"NULL"});return e.jsx(Qe,{dataType:s,children:o()})});function Is({col:t}){const{appendToFilters:s,selectedTable:a}=R(),[r,o]=n.useState(""),l=i=>{o(i.target.value),s(t,i.target.value)};return n.useEffect(()=>{o("")},[a]),e.jsx($,{value:r,onChange:l,className:"w-full",placeholder:"Filter"})}function Ms({data:t,columns:s,tableName:a,tableSchemas:r}){const o=n.useMemo(()=>e.jsx(Ie,{children:e.jsx(U,{children:s.map((i,c)=>e.jsx(Os,{col:i,columnSchema:r[a][i],children:e.jsx(Is,{col:i})},c))})}),[s,r,a]),l=n.useMemo(()=>e.jsx(Me,{children:t.map((i,c)=>e.jsx(U,{children:s.map((u,m)=>{var x;return e.jsx(As,{value:i[u],dataType:(x=r[a][u])==null?void 0:x.type},m)})},c))}),[t,s,r,a]);return e.jsxs(e.Fragment,{children:[e.jsxs(Ae,{children:[o,t.length>0&&l]}),t.length===0&&e.jsxs(V,{children:[a," return no data"]})]})}function He({children:t}){return e.jsxs("div",{className:"flex items-center justify-center gap-4 rounded border p-4",children:[e.jsx(Kt,{className:"h-6 w-6 animate-spin"}),e.jsx("span",{className:"font-semibold",children:t})]})}const $s=Lt,Qs=Pt,qe=n.forwardRef(({className:t,align:s="center",sideOffset:a=4,...r},o)=>e.jsx(Dt,{children:e.jsx(me,{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})}));qe.displayName=me.displayName;function Hs(){const{selectedTable:t,tables:s,customQuery:a,db:r}=R(),o=n.useCallback((i,c,u,m)=>e.jsx(y,{className:m,onClick:i,title:u,children:e.jsx("span",{className:"ml-2",children:c})}),[]),l=n.useMemo(()=>{var i;return r&&e.jsxs("div",{className:"flex flex-col gap-1",children:[o(()=>us(r),"Export as SQLite","Download database as SQLite"),o(()=>fs(r,parseInt(t)),`Export ${((i=s[parseInt(t)])==null?void 0:i.name)||"selected"} table as CSV`,"Export selected table as CSV"),o(()=>ps(r),"Export all tables as CSV","Export all tables as CSV"),o(()=>xs(r,a),"Export custom query as CSV","Export the result of the custom query as CSV")]})},[r,o,t,s,a]);return e.jsxs($s,{children:[e.jsx(Qs,{asChild:!0,children:e.jsx(y,{title:"Open export options",children:e.jsx(Gt,{className:"h-5 w-5"})})}),e.jsx(qe,{align:"end",className:"w-80",children:l})]})}function qs(){const{tables:t,selectedTable:s,tableSchemas:a,queryError:r,setQueryError:o,rowPerPageOrAuto:l,isCustomQuery:i,setIsCustomQuery:c,customQuery:u,setCustomQuery:m,expandPage:x,setExpandPage:f,filters:w,setFilters:p}=R(),{page:h,setPage:j,rowsPerPage:P}=gs(l),b=n.useMemo(()=>{var T;return(T=t[parseInt(s)])==null?void 0:T.name},[t,s]),{data:S,columns:N,isQueryLoading:E,handleCustomQuery:g}=hs(b,P,h,i),[D,k]=n.useState([]);n.useEffect(()=>{N.length>0&&k(N)},[b,N]);const L=n.useCallback(()=>{o(null),m(""),c(!1)},[c,o,m]),O=n.useCallback(()=>{j(0),L()},[L,j]);n.useEffect(()=>{j(0),p({})},[s]);const Y=n.useMemo(()=>e.jsxs("div",{className:"flex flex-col gap-2 md:flex-row",children:[e.jsx($,{type:"text",value:u,onChange:T=>m(T.target.value),placeholder:"Enter your custom query",className:"w-full"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(y,{className:"w-full",onClick:g,title:"Run custom query",children:e.jsx(Wt,{className:"h-5 w-5"})}),e.jsx(y,{className:"w-full",onClick:L,title:"Reset query",children:e.jsx(Jt,{className:"h-5 w-5"})}),e.jsx(y,{className:"w-full",onClick:O,title:"Reset to first page",disabled:h===0,children:e.jsx(Yt,{className:"h-5 w-5"})})]})]}),[u,g,L,O,h]),Q=n.useMemo(()=>E?e.jsxs(He,{children:["Loading ",b]}):e.jsx("div",{className:"rounded border",children:e.jsx(Ms,{data:S,columns:D.length>0?D:N,tableName:b,tableSchemas:a})}),[E,S,N,b,a,w,D]);return e.jsxs("div",{className:"flex flex-col gap-3 pb-8",children:[e.jsxs("section",{className:"flex flex-col gap-2 rounded border p-3 pb-2",children:[e.jsxs("div",{className:"flex h-full gap-1",children:[e.jsx(Cs,{}),e.jsxs("div",{className:"ml-1 flex gap-1",children:[e.jsx(Hs,{}),e.jsx(y,{className:"hidden expand:block",onClick:()=>f(!x),title:"Toggle page size",children:x?e.jsx(Zt,{className:"h-5 w-5"}):e.jsx(Xt,{className:"h-5 w-5"})})]})]}),Y,r&&e.jsx("p",{className:"text-center text-xs capitalize text-red-500",children:r})]}),Q,!i&&e.jsx(bs,{page:h,setPage:j,rowsPerPage:P})]})}const Be=({shouldScaleBackground:t=!0,...s})=>e.jsx(C.Root,{shouldScaleBackground:t,...s});Be.displayName="Drawer";const Bs=C.Trigger,zs=C.Portal,Us=C.Close,ze=n.forwardRef(({className:t,...s},a)=>e.jsx(C.Overlay,{ref:a,className:d("fixed inset-0 z-50 bg-black/80",t),...s}));ze.displayName=C.Overlay.displayName;const Ue=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(zs,{children:[e.jsx(ze,{}),e.jsxs(C.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]})]}));Ue.displayName="DrawerContent";const Ve=({className:t,...s})=>e.jsx("div",{className:d("grid gap-1.5 p-4 text-center sm:text-left",t),...s});Ve.displayName="DrawerHeader";const _e=({className:t,...s})=>e.jsx("div",{className:d("mt-auto flex flex-col gap-2 p-4",t),...s});_e.displayName="DrawerFooter";const Ke=n.forwardRef(({className:t,...s},a)=>e.jsx(C.Title,{ref:a,className:d("text-lg font-semibold leading-none tracking-tight",t),...s}));Ke.displayName=C.Title.displayName;const Ge=n.forwardRef(({className:t,...s},a)=>e.jsx(C.Description,{ref:a,className:d("text-sm text-muted-foreground",t),...s}));Ge.displayName=C.Description.displayName;const We=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(fe,{ref:r,className:d("relative overflow-hidden",t),...a,children:[e.jsx(kt,{className:"h-full w-full rounded-[inherit]",children:s}),e.jsx(Je,{}),e.jsx(Ft,{})]}));We.displayName=fe.displayName;const Je=n.forwardRef(({className:t,orientation:s="vertical",...a},r)=>e.jsx(pe,{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(Ot,{className:"relative flex-1 rounded-full bg-border"})}));Je.displayName=pe.displayName;const Ye=n.forwardRef(({className:t,orientation:s="horizontal",decorative:a=!0,...r},o)=>e.jsx(xe,{ref:o,decorative:a,orientation:s,className:d("shrink-0 bg-border",s==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",t),...r}));Ye.displayName=xe.displayName;const Vs=_("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Ze=n.forwardRef(({className:t,...s},a)=>e.jsx(he,{ref:a,className:d(Vs(),t),...s}));Ze.displayName=he.displayName;const Xe=n.forwardRef(({className:t,...s},a)=>e.jsx(ge,{className:d("grid gap-2",t),...s,ref:a}));Xe.displayName=ge.displayName;const et=n.forwardRef(({className:t,...s},a)=>e.jsx(be,{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(At,{className:"flex items-center justify-center",children:e.jsx(es,{className:"h-2.5 w-2.5 fill-current text-current"})})}));et.displayName=be.displayName;const Z="rowsPerPage",X="dateFormat";function _s(){const{setRowPerPageOrAuto:t,setIsCustomQuery:s,queryHestory:a,dateFormatValue:r,setDateFormatValue:o}=R(),[l,i]=n.useState(null),[c,u]=n.useState(!1);n.useEffect(()=>{const p=localStorage.getItem(Z),h=localStorage.getItem(X);if(p)if(p==="auto")u(!0);else{const j=Number(p);i(j),t(j)}h&&o(h)},[t,o]);const m=n.useCallback(p=>{const h=Number(p.target.value);isNaN(h)||(i(h),u(!1))},[]),x=n.useCallback(()=>{u(p=>!p)},[]),f=n.useCallback(()=>{if(s(!1),l===null){B.error("Please provide a number of rows per page or set it to auto.");return}if(l<1){B.error("Please provide a positive number of rows per page.");return}const p=c?"auto":l.toString();localStorage.setItem(Z,p),t(c?"auto":l)},[l,c,s,t]),w=p=>{o(p),localStorage.setItem(X,p)};return e.jsxs(Be,{children:[e.jsx(Bs,{asChild:!0,children:e.jsx(y,{className:"grow",title:"Open settings drawer",children:e.jsx(ts,{className:"h-5 w-5"})})}),e.jsx(Ue,{children:e.jsxs("div",{className:"mx-auto w-full max-w-md",children:[e.jsxs(Ve,{children:[e.jsx(Ke,{children:"Settings"}),e.jsx(Ge,{children:"Personalize your site experience here."})]}),e.jsxs("div",{className:"flex flex-col gap-4 p-4 pb-0",children:[e.jsx(Ks,{selectedRowsPerPage:l,isAutoRowsPerPage:c,handleInputChange:m,toggleAutoRowsPerPage:x,handleRowsPerPageSave:f}),e.jsx(Gs,{dateFormatValue:r,handleDateFormatChange:w}),e.jsx(Ws,{queryHestory:a})]}),e.jsx(_e,{children:e.jsx(Us,{asChild:!0,children:e.jsx(y,{title:"Close settings drawer",variant:"outline",children:"Close"})})})]})})]})}function Ks({selectedRowsPerPage:t,isAutoRowsPerPage:s,handleInputChange:a,toggleAutoRowsPerPage:r,handleRowsPerPageSave:o}){return e.jsxs("div",{children:[e.jsx("p",{className:"mb-1 text-sm text-muted-foreground",children:"Rows Per Page"}),e.jsxs("div",{className:"flex items-center justify-center gap-1 rounded border p-2",children:[e.jsx($,{value:t||"",onChange:a,disabled:s,placeholder:"Number of rows",type:"number",name:"rowsPerPage"}),e.jsx("span",{className:"h-full text-center text-sm text-muted-foreground",children:"OR"}),e.jsx(y,{className:s?"border border-primary":"",onClick:r,title:"Toggle auto rows per page",variant:"outline",children:"Auto Calculate"})]}),e.jsx(y,{className:"mt-2 w-full",onClick:o,title:"Save rows per page settings",variant:"outline",children:e.jsx("span",{children:"Save"})})]})}function Gs({dateFormatValue:t,handleDateFormatChange:s}){return e.jsxs("div",{children:[e.jsx("p",{className:"mb-1 text-sm text-muted-foreground",children:"Date type format"}),e.jsxs(Xe,{className:"flex flex-col gap-2",name:"dateType",value:t,onValueChange:s,children:[e.jsx(ee,{value:"default",label:"Default"}),Object.keys(I).map(a=>e.jsx(ee,{value:a,label:I[a].label},a))]})]})}function ee({value:t,label:s}){return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(et,{value:t,id:`r-${t}`}),e.jsx(Ze,{htmlFor:`r-${t}`,children:s})]})}function Ws({queryHestory:t}){return e.jsxs("div",{children:[e.jsxs("p",{className:"mb-1 text-sm text-muted-foreground",children:["Query History (",t.length,")"]}),e.jsx(We,{className:"h-48 rounded-md border",children:e.jsx("div",{className:"p-4",children:t.map((s,a)=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs",children:s}),e.jsx(Ye,{className:"my-2"})]},a))})})]})}const te="darkMode",se="animate-circular-reveal";function tt(){const[t,s]=n.useState(!1),a=n.useCallback(o=>{s(o),document.body.classList.toggle("dark",o),localStorage.setItem(te,o.toString()),document.body.classList.add(se),setTimeout(()=>{document.body.classList.remove(se)},500)},[]);n.useEffect(()=>{const o=localStorage.getItem(te),l=o!==null?o==="true":window.matchMedia("(prefers-color-scheme: dark)").matches;a(l);const i=u=>{a(u.matches)},c=window.matchMedia("(prefers-color-scheme: dark)");return c.addEventListener("change",i),()=>{c.removeEventListener("change",i)}},[a]);const r=n.useCallback(()=>{a(!t)},[t,a]);return e.jsx(y,{className:"relative grow",onClick:r,title:t?"Enable light mode":"Enable dark mode",children:t?e.jsx(ss,{className:"h-5 w-5"}):e.jsx(as,{className:"h-5 w-5"})})}const Js={"application/vnd.sqlite3":[".sqlite",".sqlite3"],"application/x-sqlite3":[".sqlite",".sqlite3"],"application/octet-stream":[".db"],"application/sql":[".sql"]},Ys={CHINOOK:"https://github.com/vwh/sqlite-viewer/raw/main/db_examples/chinook.db"};function Zs(){const{loadDatabase:t,setTables:s,setSelectedTable:a,db:r}=R(),[o,l]=n.useState([]),i=n.useCallback(async(f,w)=>{if(l([]),s([]),a("0"),f.length>0&&await t(f[0]),w.length>0){const p=w.flatMap(h=>h.errors);l(p)}},[t,s,a]),{getRootProps:c,getInputProps:u}=ns({onDrop:i,multiple:!1,accept:Js}),m=n.useCallback(f=>e.jsxs("div",{className:`flex h-full items-center justify-center gap-2 ${f?"px-[10px]":"px-0"}`,children:[e.jsxs("div",{...c(),className:`flex h-full grow cursor-pointer flex-col items-center justify-center rounded border p-6 text-center ${f?"py-0":"py-32"}`,children:[e.jsx("input",{id:"file-upload",...u()}),e.jsx("label",{htmlFor:"file-upload",className:"sr-only",children:"Upload SQLite File"}),e.jsx("p",{className:"hidden sm:block",children:"Drag and drop a SQLite file here, or click to select one"}),e.jsx("p",{className:"block sm:hidden",children:f?"Click to select a file":"Click to select a SQLite file"}),!f&&e.jsx("a",{href:Ys.CHINOOK,className:"text-sm text-link hover:underline",title:"Download sample file",children:"Or download & try this sample file"})]}),f&&e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(tt,{}),e.jsx(_s,{})]})]}),[c,u]),x=n.useMemo(()=>m(!!r),[m,r]);return e.jsxs("section",{children:[x,e.jsx(Xs,{errors:o})]})}const Xs=F.memo(({errors:t})=>(F.useEffect(()=>{t==null||t.forEach(s=>B(s.message,{position:"bottom-right"}))},[t]),null));function ea(){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}function ta(){const s=ea()?"/sqlite-dark.webp":"/sqlite-light.webp";return e.jsx("section",{className:"flex justify-center rounded border py-3",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("img",{id:"logo",title:"SQLite Logo",src:s,alt:"SQLite Logo",width:"170",height:"80",draggable:"false"}),e.jsx("p",{className:"text-sm",children:"View SQLite files in the browser"})]})})}const sa=Mt,aa=It,st=n.forwardRef(({className:t,...s},a)=>e.jsx(ye,{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}));st.displayName=ye.displayName;const at=n.forwardRef(({className:t,...s},a)=>e.jsxs(aa,{children:[e.jsx(st,{}),e.jsx(je,{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})]}));at.displayName=je.displayName;const rt=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col space-y-2 text-left",t),...s});rt.displayName="AlertDialogHeader";const ot=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s});ot.displayName="AlertDialogFooter";const nt=n.forwardRef(({className:t,...s},a)=>e.jsx(we,{ref:a,className:d("text-lg font-semibold",t),...s}));nt.displayName=we.displayName;const lt=n.forwardRef(({className:t,...s},a)=>e.jsx(Ne,{ref:a,className:d("text-sm",t),...s}));lt.displayName=Ne.displayName;const it=n.forwardRef(({className:t,...s},a)=>e.jsx(ve,{ref:a,className:d(W(),t),...s}));it.displayName=ve.displayName;const ct=n.forwardRef(({className:t,...s},a)=>e.jsx(Ce,{ref:a,className:d(W({variant:"outline"}),"mt-2 sm:mt-0",t),...s}));ct.displayName=Ce.displayName;function ra({showDialog:t,setShowDialog:s,fn:a}){return e.jsx(sa,{open:t,onOpenChange:s,children:e.jsxs(at,{children:[e.jsxs(rt,{children:[e.jsx(nt,{children:"Retry using a proxy?"}),e.jsx(lt,{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(ot,{children:[e.jsx(ct,{onClick:()=>s(!1),children:"Cancel"}),e.jsx(it,{onClick:a,children:"Confirm"})]})]})})}const oa="https://github.com/vwh/sqlite-viewer";function na(){return e.jsxs("footer",{className:"flex items-center justify-between rounded border p-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"hidden text-xs sm:block",children:"No file will be uploaded to server. using JavaScript, sql.js"}),e.jsx("p",{className:"block text-xs sm:hidden",children:"No file uploads to server."}),e.jsxs("a",{href:oa,target:"_blank",className:"flex items-center gap-1 text-sm text-link hover:underline",title:"Star on GitHub",children:[e.jsx(rs,{className:"h-4 w-4"}),e.jsx("span",{children:"Star us on GitHub"})]})]}),e.jsx("div",{className:"flex gap-1",children:e.jsx(tt,{})})]})}function la(){const{db:t,tables:s,isLoading:a,loadDatabase:r,expandPage:o}=R(),[l,i]=n.useState(null),[c,u]=n.useState(!1),[m,x]=n.useState(null),[f,w]=n.useState(!1),p=n.useRef(!1),h=n.useCallback(async(b,S=!1)=>{if(!/^(https?:\/\/(?:www\.)?[a-zA-Z0-9-]{1,256}\.[a-zA-Z]{2,6}(?:\/[^\s]*)?)$/i.test(b)){i("Invalid URL");return}try{w(!0);const E=S?`https://corsproxy.io/?${encodeURIComponent(b)}`:b,g=await fetch(E);if(!g.ok)throw new Error("URL not found or invalid");const D=await g.blob(),k=new File([D],"database.sqlite");await r(k),i(null)}catch(E){S?i(`Error whilefetching, ${E instanceof Error?E.message:String(E)}`):(x(b),u(!0))}finally{w(!1)}},[r]);n.useEffect(()=>{if(p.current)return;const S=new URLSearchParams(window.location.search).get("url");S&&(h(decodeURIComponent(S)),p.current=!0)},[h]);const j=n.useCallback(()=>{m&&(h(m,!0),u(!1))},[m,h]),P=()=>a||f?e.jsxs(He,{children:[f?"Fetching":"Loading"," SQLite file"]}):l&&!t?e.jsx(V,{children:l}):t?s.length>0?e.jsx(qs,{}):e.jsx(V,{children:"Your database is empty, no tables found"}):null;return e.jsxs("main",{className:`mx-auto flex h-screen flex-col gap-3 p-4 ${o?"w-full":"container"}`,children:[!t&&e.jsx(ta,{}),e.jsx(Zs,{}),P(),e.jsx(ra,{showDialog:c,setShowDialog:u,fn:j}),!t&&e.jsx(na,{})]})}const ia=({...t})=>e.jsx(ls,{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});ft.createRoot(document.getElementById("root")).render(e.jsxs(F.StrictMode,{children:[e.jsx(la,{}),e.jsx(ia,{})]})); diff --git a/assets/index-BIG7Mclk.js.gz b/assets/index-BIG7Mclk.js.gz deleted file mode 100644 index f69032a3baa1c612b8ecd4c0884813d0d0643df1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11712 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

5hUB?+Izi0F~_TZl+fLSPYYFVlIXWklCL zv@o9QxD$Cf8dqw&n!N49Z&YabRi~(0X{NZBWgm@FNb_1)Nu8@EG#xxj=t;3oh>C2mghbaO8CqB^yH4LR0pW!gZz;x zHsDPl{h312uvbQetc~Ou4Ng5Wc9u3oa(=fV(z`>t(Ar+!oLP55U5J)JklIGdvJ zHh#jfYJ}rDz--aoDeCgl#(N^Wd6h+u~K9M2ZI z6+q#Jdjr^l4rRWOTnxy)BHjwD{d0?nR$wBdk|V=co~)ICm}M~s$Kc2tLZ=gXoh4}r zr*0DCw{wqxlwfCcB`%5(8J-8Rl*)*ODiDavCKs3`nT6 zNBz`O!lNl8jq^8N*A#&*iX^0j(8cf{EhVHbty~fZ)t4y>#mG;hi!8ws1>N)zL9=FQ zC7|^GyxXnT{|LiU_k(Loopf0uwP&jSOP!TQ?xRO=a>cb3anTjX@a9STxz>$;MdOM} zko=voNMDV>BK=;*z`1YoEP_ZbX%yx?Z<};ip}JuM{w7IYLml~~Jijqn@|?tQq$1J? z^YOif%og>zh^f)Bs9bYZ)#}2ao#Ym}(z|VC3GUvzmn@peD_l)0D?@>Ui=PAJ*~Ym6 z9Zvd7xs~EnldVhEn>zPMJKv@IrU9?k=88;k5T0>~Fiq8llN@yfQT@vAOt6QNXOewT z5AT)h+RR72fDYbJvh#;VK3jxV`ky&$K@c;M$}pmgK8XOYcK@DyMj_5zg*RKzWpYX+ z?18b4>B}=5nY#@{ZJ;js>*I3VJBU>=N44`A%!5gMaDDw)I(2tQpCE0tW=?7DHTS{! zc}-mQ&L3nqyUE+_?siQ2cLk1=*bupGT)HVUE_n}`3tWNd6{SIL62)`>4reYIFw%Oq z^0#({0#VdAIf2p^YU#q^p7wxQZ0QV}_;%WJISOVEFe)uNKe7%JVX; zjKza}wrrZFltpPKy1d_5Y{THZ4&kPpXZ+=a;3O zf3e*_0=wJGvTnN%>UL{Ex3hw}8#Gm^&w(KLv|V1iHeg!|;^$&dx(Qz?v{7>MarT?D zz6|}h(~fcwdD`GopG`;Upg!fU-7>d?0akn`MrmyJGJ*{)O>oo2PYrePDCCQtl zUGK|e=YvSe$yWjSGWiuHxGS7el0{wP;(PDXJC^RItb%Dkhrg1ajeZMqblS1%kQ@D( z=FL=0jwo*c`I$7FAK)g(7sb3l1y((0UAR+>hMWewCCp)gcsK17dHk3!$R@%Tn%k&F z++LG4n##kA_Eu?7h$&p>j4@#qtSq#Fg|ZX% zfT%wG9G0pPJM0+OJZVkhqvij0<;L4+{B!xA%kDgwvB_3B2;tKGh?eP5})sK^z6Woq;!g@5Q zM;BFfnLSDCJIbqw2r%84-IokFlv06$%Sk}k)@=>y9ZD2eWfxM|C(W4K+J|lgQ!2|b5 z>BqHF&F&q&QumG`7P!m;LoR4ZHm$0fZaup){gTsYsW~oHDYx2YU-ahk^yxe zW%?NJk3ah5k#x}iz0tD>ZH3-tun}0QJ_@lzYNAJpZNp5N5mGj#4W5O~>7Zq)FKZOb zJKwBB6RJCZG!e+bi+me8?z^w@t*gXFc|F=l<~cL9+KG3SRyHGqfXZaFQ@LB_=ucueG(btgc4L82+>_K_-Az}hvj}Y6TJc%}95s?*THKz5 zpmHzRKoQgmt@nk_VM!*NOtXj`y%YNMb@OJIVoE3hD=ruZE@7tJB!O1_STdw!>n^f6 Wp^0dLmxhG=$NvB$0Bxf%lK=qQu}u{K diff --git a/assets/index-C6RQFSoa.js b/assets/index-C6RQFSoa.js new file mode 100644 index 0000000..1cd3264 --- /dev/null +++ b/assets/index-C6RQFSoa.js @@ -0,0 +1,5 @@ +import{r as n,j as e,R as O}from"./react-DmpIMwDM.js";import{c as pt}from"./react-dom-tIxIBQuZ.js";import{c as xt}from"./zustand-B1IM3DrU.js";import{i as ht}from"./sql.js-lzln2bbd.js";import{F as re}from"./file-saver-DhbZvGod.js";import{c as gt}from"./clsx-B-dksMZM.js";import{t as bt}from"./tailwind-merge-BkWO730n.js";import{S as yt,c as oe,I as jt,d as ne,e as le,f as wt,g as ie,V as Nt,L as ce,h as de,i as vt,j as Ct,k as ue,l as Rt,G as St,m as Et,n as me,o as Tt,p as Dt,q as Lt,r as fe,s as Pt,t as Ft,u as pe,v as kt,w as Ot,x as xe,y as At,z as he,A as ge,B as be,E as ye,F as It,H as je,J as we,K as Ne,M as ve,N as Ce,Q as Re,U as Mt,W as $t}from"./@radix-ui-Dtk-Z1Mr.js";import{c as K}from"./class-variance-authority-Bb4qSo10.js";import{C as Qt,a as Ht,b as Se,c as qt,d as Bt,T as zt,K as Ut,e as Vt,f as _t,g as Kt,L as Gt,D as Wt,P as Jt,h as Yt,i as Zt,M as Xt,j as es,k as ts,S as ss,l as as,m as rs,G as os}from"./lucide-react-UOeYhQAl.js";import{f as ns,a as Q}from"./date-fns-fqmN70Xj.js";import{u as ls}from"./react-dropzone-D-IBOhIS.js";import{J as z,T as is}from"./sonner-BJG0sXho.js";import{D as C}from"./vaul-Bkmv171v.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-DGkE6due.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 cs="/sql.wasm",ds=async t=>{try{const[s,a]=await Promise.all([t.arrayBuffer(),ht({locateFile:()=>cs})]);return new a.Database(new Uint8Array(s))}catch(s){throw console.error("Failed to load database:",s),s}},G=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),[]}},us=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],isPrimaryKey:i[5]===1,isForeignKey:!1},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}},U=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}},ms=t=>{try{const s=t.export(),a=new Blob([s],{type:"application/x-sqlite3"});re.saveAs(a,"database.sqlite")}catch(s){throw console.error("Failed to export database:",s),s}},fs=(t,s)=>{const a=t.map(o=>`"${o}"`).join(","),r=s.map(o=>t.map(l=>`"${o[l]??""}"`).join(","));return[a,...r].join(` +`)},W=(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}=U(r),i=fs(l,o),c=new Blob([i],{type:"text/csv;charset=utf-8;"});re.saveAs(c,`${a}.csv`)}catch(r){throw console.error(`Failed to get CSV for query "${t}":`,r),r}},ps=(t,s)=>{const r=G(t)[s],o=`SELECT * FROM "${r}"`;W(o,t,r)},xs=t=>{G(t).forEach(s=>{const a=`SELECT * FROM "${s}"`;W(a,t,s)})},hs=(t,s)=>{W(s,t,"custom_query")},R=xt((t,s)=>({db:null,isLoading:!1,queryError:null,tables:[],selectedTable:"0",tableSchemas:{},rowPerPageOrAuto:"auto",isCustomQuery:!1,loadDatabase:async a=>{t({isLoading:!0,queryError:null});try{const r=await ds(a),o=G(r),l=await Promise.all(o.map(async u=>{const m=r.exec(`SELECT COUNT(*) FROM "${u}"`),x=parseInt(m[0].values[0][0],10),p=await us(r,u);return{name:u,count:x,schema:p}})),i=l.map(({name:u,count:m})=>({name:u,count:m})),c=l.reduce((u,{name:m,schema:x})=>(u[m]=x,u),{});t({db:r,tables:i,tableSchemas:c,isLoading:!1})}catch(r){console.error("Failed to load database:",r),t({isLoading:!1,queryError:"Failed to load database"})}},query:a=>{const{db:r}=s();return r?r.exec(a):(console.warn("Database is not loaded."),[])},setQueryError:a=>t({queryError:a}),setTables:a=>t({tables:a}),setSelectedTable:a=>t({selectedTable:a}),setRowPerPageOrAuto:a=>t({rowPerPageOrAuto:a}),customQuery:"",setIsCustomQuery:a=>t({isCustomQuery:a}),setCustomQuery:a=>t({customQuery:a}),queryHestory:[],unShiftToQueryHestory:a=>t(r=>({queryHestory:[a,...r.queryHestory]})),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}})),totalRows:0,setTotalRows:a=>t({totalRows:a})}));function gs(t,s,a,r){const{db:o,setQueryError:l,setIsCustomQuery:i,query:c,unShiftToQueryHestory:u,customQuery:m,setCustomQuery:x,filters:p,totalRows:N,setTotalRows:f}=R(),[h,j]=n.useState([]),[P,b]=n.useState([]),[S,v]=n.useState(!0);n.useEffect(()=>{o&&t&&!r&&(v(!0),(async()=>{try{const g=`PRAGMA table_info("${t}");`,D=c(g)[0].values.map(w=>({name:w[1],type:w[2]})).map(w=>w.type.toUpperCase()==="BLOB"?`hex(${w.name}) as ${w.name}`:w.name).join(", "),L=Object.fromEntries(Object.entries(p).filter(([,w])=>w!==""));let I=`SELECT COUNT(*) as count FROM "${t}"`;if(Object.keys(L).length>0){const w=Object.entries(L).map(([q,B])=>`LOWER(${q}) LIKE LOWER('%${B}%')`).join(" AND ");I=`SELECT COUNT(*) as count FROM "${t}" WHERE ${w}`}const k=c(I)[0].values[0][0];f(k);let M=`SELECT ${D} FROM "${t}" LIMIT ${s} OFFSET ${a};`;if(Object.keys(L).length>0){const w=Object.entries(L).map(([q,B])=>`LOWER(${q}) LIKE LOWER('%${B}%')`).join(" AND ");M=`SELECT ${D} FROM "${t}" WHERE ${w} LIMIT ${s} OFFSET ${a};`}const ut=c(M),{data:mt,columns:ft}=U(ut);b(ft),j(mt),l(null),x(M),u(M)}catch(g){g instanceof Error&&l(g.message)}finally{v(!1)}})())},[o,t,a,s,r,l,c,x,u,p,f]);const E=n.useCallback(()=>{if(m.trim()===""){l(null);return}v(!0),(async()=>{try{const g=c(m),{data:T,columns:F}=U(g);b(F),j(T),i(!0),l(null)}catch(g){g instanceof Error&&l(g.message)}finally{v(!1)}})()},[m,c,l,i]);return{data:h,columns:P,customQuery:m,setCustomQuery:x,isQueryLoading:S,handleCustomQuery:E,totalRows:N}}function bs(t){const{setIsCustomQuery:s}=R(),[a,r]=n.useState(0);n.useEffect(()=>{r(0),s(!1)},[s]);let o=30;if(t==="auto"){const l=window.innerHeight,i=[{height:1700,rowHeight:65},{height:1300,rowHeight:70},{height:1200,rowHeight:75},{height:1100,rowHeight:75},{height:1e3,rowHeight:80},{height:950,rowHeight:85},{height:900,rowHeight:90},{height:850,rowHeight:95},{height:800,rowHeight:100},{height:750,rowHeight:105},{height:700,rowHeight:110},{height:600,rowHeight:120},{height:550,rowHeight:150},{height:500,rowHeight:190},{height:0,rowHeight:280}];let u=120;for(const m of i)if(l>m.height){u=m.rowHeight;break}o=Math.max(1,Math.floor(l/u))}else o=t;return{page:a,setPage:r,rowsPerPage:o}}function d(...t){return bt(gt(t))}const H=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}));H.displayName="Input";const J=K("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"}}),y=n.forwardRef(({className:t,variant:s,size:a,asChild:r=!1,...o},l)=>{const i=r?yt:"button";return e.jsx(i,{className:d(J({variant:s,size:a,className:t})),ref:l,...o})});y.displayName="Button";function ys({page:t,setPage:s,rowsPerPage:a}){const{totalRows:r}=R(),o=Math.ceil(r/a),l=Math.floor(t/a)+1,i=()=>{l{l>1&&s(t-a)};return e.jsx("section",{className:"fixed bottom-[8px] left-0 right-0 z-10 mx-auto w-[270px]",children:e.jsxs("div",{className:"flex justify-between gap-2 rounded border bg-secondary p-[6px]",children:[e.jsx(y,{onClick:c,title:"Previous page",disabled:l===1,children:e.jsx(Qt,{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:i,title:"Next page",disabled:l>=o,children:e.jsx(Ht,{className:"h-4 w-4"})})]})})}const js=Rt,ws=St,Ns=Et,Ee=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(oe,{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(jt,{asChild:!0,children:e.jsx(Se,{className:"h-4 w-4 opacity-50"})})]}));Ee.displayName=oe.displayName;const Te=n.forwardRef(({className:t,...s},a)=>e.jsx(ne,{ref:a,className:d("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(qt,{className:"h-4 w-4"})}));Te.displayName=ne.displayName;const De=n.forwardRef(({className:t,...s},a)=>e.jsx(le,{ref:a,className:d("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(Se,{className:"h-4 w-4"})}));De.displayName=le.displayName;const Le=n.forwardRef(({className:t,children:s,position:a="popper",...r},o)=>e.jsx(wt,{children:e.jsxs(ie,{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(Te,{}),e.jsx(Nt,{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(De,{})]})}));Le.displayName=ie.displayName;const Pe=n.forwardRef(({className:t,...s},a)=>e.jsx(ce,{ref:a,className:d("py-1.5 pl-8 pr-2 text-sm font-semibold",t),...s}));Pe.displayName=ce.displayName;const Fe=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(de,{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(vt,{children:e.jsx(Bt,{className:"h-4 w-4"})})}),e.jsx(Ct,{children:s})]}));Fe.displayName=de.displayName;const vs=n.forwardRef(({className:t,...s},a)=>e.jsx(ue,{ref:a,className:d("-mx-1 my-1 h-px bg-muted",t),...s}));vs.displayName=ue.displayName;const Cs=K("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 ke({className:t,variant:s,...a}){return e.jsx("div",{className:d(Cs({variant:s}),t),...a})}function Rs(){const{tables:t,selectedTable:s,setSelectedTable:a,setIsCustomQuery:r}=R(),o=n.useMemo(()=>{var u;const c=parseInt(s);return isNaN(c)?0:((u=t[c])==null?void 0:u.count)||0},[t,s]),l=n.useMemo(()=>t.map((c,u)=>e.jsx(Fe,{value:`${u}`,children:c.name},c.name)),[t]);function i(c){r(!1),a(c)}return e.jsxs("section",{className:"flex grow items-center justify-center gap-1",children:[e.jsxs(js,{value:s,onValueChange:i,children:[e.jsx(Ee,{className:"grow",children:e.jsx(Ns,{placeholder:"Select a table"})}),e.jsx(Le,{children:e.jsxs(ws,{children:[e.jsx(Pe,{children:"Tables"}),l]})})]}),e.jsx(ke,{title:"Rows",className:"min-w-[100px] grow py-2 text-sm md:min-w-[200px]",variant:"outline",children:e.jsx("span",{className:"w-full text-center",children:o})})]})}const A=t=>t instanceof Date&&!isNaN(t.getTime()),Ss=t=>{const s=new Date(t);return A(s)?ns(s,{addSuffix:!0}):t},Es=t=>{const s=new Date(t);return A(s)?Q(s,"MMMM do, yyyy"):t},Ts=t=>{const s=new Date(t);return A(s)?Q(s,"hh:mm a"):t},Ds=t=>{const s=new Date(t);return A(s)?Q(s,"MM/dd/yyyy"):t},Ls=t=>{const s=new Date(t);return A(s)?Q(s,"EEEE, MMMM do, yyyy"):t},$={formatDateRelative:{label:"over 56 years ago",func:Ss},formatDateFormatted:{label:"January 9th, 1968",func:Es},formatTime:{label:"12:00 am",func:Ts},formatDateShort:{label:"01/09/1968",func:Ds},formatDateLong:{label:"Monday, January 9th, 1968",func:Ls}},Oe=Tt,Ae=Dt,Y=n.forwardRef(({className:t,align:s="start",side:a="bottom",sideOffset:r=4,...o},l)=>e.jsx(me,{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}));Y.displayName=me.displayName;const Ie=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})}));Ie.displayName="Table";const Me=n.forwardRef(({className:t,...s},a)=>e.jsx("thead",{ref:a,className:d("[&_tr]:border-b",t),...s}));Me.displayName="TableHeader";const $e=n.forwardRef(({className:t,...s},a)=>e.jsx("tbody",{ref:a,className:d("[&_tr:last-child]:border-0",t),...s}));$e.displayName="TableBody";const Ps=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}));Ps.displayName="TableFooter";const V=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}));V.displayName="TableRow";const Qe=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}));Qe.displayName="TableHead";const Fs=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)},He=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(Oe,{children:[e.jsx(Ae,{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(Y,{side:"bottom",align:"start",children:e.jsxs("div",{className:"flex flex-col justify-center gap-2",children:[l&&typeof s=="string"?e.jsxs(e.Fragment,{children:[e.jsx("img",{src:Fs(s),alt:"BLOB content",className:"flex max-h-40 flex-col items-center justify-center gap-2 rounded object-contain",onError:c=>{c.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}),a&&e.jsx(ke,{className:"w-full self-start text-xs font-semibold",children:a})]})})]})})});He.displayName="TableCell";const ks=n.forwardRef(({className:t,...s},a)=>e.jsx("caption",{ref:a,className:d("mt-4 text-sm text-muted-foreground",t),...s}));ks.displayName="TableCaption";function _({children:t}){return e.jsxs("div",{className:"flex items-center justify-center gap-4 rounded border p-4",children:[e.jsx(zt,{className:"h-6 w-6"}),e.jsx("span",{className:"font-semibold",children:t})]})}const Os=O.memo(({columnSchema:t})=>{var s;return t!=null&&t.isPrimaryKey?e.jsx(Ut,{className:"h-4 w-4"}):t!=null&&t.isForeignKey?e.jsx(Vt,{className:"h-4 w-4"}):(t==null?void 0:t.type)==="BLOB"?e.jsx(_t,{className:"h-4 w-4"}):(s=t==null?void 0:t.type)!=null&&s.includes("DATE")?e.jsx(Kt,{className:"h-4 w-4"}):null}),As=O.memo(({col:t,columnSchema:s,children:a})=>e.jsx(Qe,{className:"py-2",children:e.jsxs(Oe,{children:[e.jsx(Ae,{asChild:!0,children:e.jsxs("span",{className:"cursor-pointer hover:underline",children:[e.jsxs("div",{className:"flex gap-1",children:[t,e.jsx(Os,{columnSchema:s})]}),a]})}),e.jsx(Y,{side:"bottom",align:"start",children:(s==null?void 0:s.type)||"Unknown"})]})})),Is=O.memo(({value:t,dataType:s})=>{const{dateFormatValue:a}=R(),r=s==="DATE"||s==="DATETIME",o=()=>t?r&&$[a]?$[a].func(t):t:e.jsx("span",{className:"italic opacity-40",children:"NULL"});return e.jsx(He,{dataType:s,children:o()})});function Ms({col:t}){const{appendToFilters:s,selectedTable:a}=R(),[r,o]=n.useState(""),l=i=>{o(i.target.value),s(t,i.target.value)};return n.useEffect(()=>{o("")},[a]),e.jsx(H,{value:r,onChange:l,className:"w-full",placeholder:"Filter"})}function $s({data:t,columns:s,tableName:a,tableSchemas:r}){const o=n.useMemo(()=>e.jsx(Me,{children:e.jsx(V,{children:s.map((i,c)=>e.jsx(As,{col:i,columnSchema:r[a][i],children:e.jsx(Ms,{col:i})},c))})}),[s,r,a]),l=n.useMemo(()=>e.jsx($e,{children:t.map((i,c)=>e.jsx(V,{children:s.map((u,m)=>{var x;return e.jsx(Is,{value:i[u],dataType:(x=r[a][u])==null?void 0:x.type},m)})},c))}),[t,s,r,a]);return e.jsxs(e.Fragment,{children:[e.jsxs(Ie,{children:[o,t.length>0&&l]}),t.length===0&&e.jsxs(_,{children:[a," return no data"]})]})}function qe({children:t}){return e.jsxs("div",{className:"flex items-center justify-center gap-4 rounded border p-4",children:[e.jsx(Gt,{className:"h-6 w-6 animate-spin"}),e.jsx("span",{className:"font-semibold",children:t})]})}const Qs=Pt,Hs=Ft,Be=n.forwardRef(({className:t,align:s="center",sideOffset:a=4,...r},o)=>e.jsx(Lt,{children:e.jsx(fe,{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})}));Be.displayName=fe.displayName;function qs(){const{selectedTable:t,tables:s,customQuery:a,db:r}=R(),o=n.useCallback((i,c,u,m)=>e.jsx(y,{className:m,onClick:i,title:u,children:e.jsx("span",{className:"ml-2",children:c})}),[]),l=n.useMemo(()=>{var i;return r&&e.jsxs("div",{className:"flex flex-col gap-1",children:[o(()=>ms(r),"Export as SQLite","Download database as SQLite"),o(()=>ps(r,parseInt(t)),`Export ${((i=s[parseInt(t)])==null?void 0:i.name)||"selected"} table as CSV`,"Export selected table as CSV"),o(()=>xs(r),"Export all tables as CSV","Export all tables as CSV"),o(()=>hs(r,a),"Export custom query as CSV","Export the result of the custom query as CSV")]})},[r,o,t,s,a]);return e.jsxs(Qs,{children:[e.jsx(Hs,{asChild:!0,children:e.jsx(y,{title:"Open export options",children:e.jsx(Wt,{className:"h-5 w-5"})})}),e.jsx(Be,{align:"end",className:"w-80",children:l})]})}function Bs(){const{tables:t,selectedTable:s,tableSchemas:a,queryError:r,setQueryError:o,rowPerPageOrAuto:l,isCustomQuery:i,setIsCustomQuery:c,customQuery:u,setCustomQuery:m,expandPage:x,setExpandPage:p,filters:N,setFilters:f}=R(),{page:h,setPage:j,rowsPerPage:P}=bs(l),b=n.useMemo(()=>{var k;return(k=t[parseInt(s)])==null?void 0:k.name},[t,s]),{data:S,columns:v,isQueryLoading:E,handleCustomQuery:g}=gs(b,P,h,i),[T,F]=n.useState([]);n.useEffect(()=>{v.length>0&&F(v)},[b,v]);const D=n.useCallback(()=>{o(null),m(""),c(!1)},[c,o,m]),L=n.useCallback(()=>{j(0),D()},[D,j]);n.useEffect(()=>{j(0),f({})},[s]),n.useEffect(()=>{j(0)},[N]);const I=n.useMemo(()=>e.jsxs("div",{className:"flex flex-col gap-2 md:flex-row",children:[e.jsx(H,{type:"text",value:u,onChange:k=>m(k.target.value),placeholder:"Enter your custom query",className:"w-full"}),e.jsxs("div",{className:"flex gap-1",children:[e.jsx(y,{className:"w-full",onClick:g,title:"Run custom query",children:e.jsx(Jt,{className:"h-5 w-5"})}),e.jsx(y,{className:"w-full",onClick:D,title:"Reset query",children:e.jsx(Yt,{className:"h-5 w-5"})}),e.jsx(y,{className:"w-full",onClick:L,title:"Reset to first page",disabled:h===0,children:e.jsx(Zt,{className:"h-5 w-5"})})]})]}),[u,g,D,L,h]),Z=n.useMemo(()=>E?e.jsxs(qe,{children:["Loading ",b]}):e.jsx("div",{className:"rounded border",children:e.jsx($s,{data:S,columns:T.length>0?T:v,tableName:b,tableSchemas:a})}),[E,S,v,b,a,N,T]);return e.jsxs("div",{className:"flex flex-col gap-3 pb-8",children:[e.jsxs("section",{className:"flex flex-col gap-2 rounded border p-3 pb-2",children:[e.jsxs("div",{className:"flex h-full gap-1",children:[e.jsx(Rs,{}),e.jsxs("div",{className:"ml-1 flex gap-1",children:[e.jsx(qs,{}),e.jsx(y,{className:"hidden expand:block",onClick:()=>p(!x),title:"Toggle page size",children:x?e.jsx(Xt,{className:"h-5 w-5"}):e.jsx(es,{className:"h-5 w-5"})})]})]}),I,r&&e.jsx("p",{className:"text-center text-xs capitalize text-red-500",children:r})]}),Z,!i&&e.jsx(ys,{page:h,setPage:j,rowsPerPage:P})]})}const ze=({shouldScaleBackground:t=!0,...s})=>e.jsx(C.Root,{shouldScaleBackground:t,...s});ze.displayName="Drawer";const zs=C.Trigger,Us=C.Portal,Vs=C.Close,Ue=n.forwardRef(({className:t,...s},a)=>e.jsx(C.Overlay,{ref:a,className:d("fixed inset-0 z-50 bg-black/80",t),...s}));Ue.displayName=C.Overlay.displayName;const Ve=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(Us,{children:[e.jsx(Ue,{}),e.jsxs(C.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]})]}));Ve.displayName="DrawerContent";const _e=({className:t,...s})=>e.jsx("div",{className:d("grid gap-1.5 p-4 text-center sm:text-left",t),...s});_e.displayName="DrawerHeader";const Ke=({className:t,...s})=>e.jsx("div",{className:d("mt-auto flex flex-col gap-2 p-4",t),...s});Ke.displayName="DrawerFooter";const Ge=n.forwardRef(({className:t,...s},a)=>e.jsx(C.Title,{ref:a,className:d("text-lg font-semibold leading-none tracking-tight",t),...s}));Ge.displayName=C.Title.displayName;const We=n.forwardRef(({className:t,...s},a)=>e.jsx(C.Description,{ref:a,className:d("text-sm text-muted-foreground",t),...s}));We.displayName=C.Description.displayName;const Je=n.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(pe,{ref:r,className:d("relative overflow-hidden",t),...a,children:[e.jsx(kt,{className:"h-full w-full rounded-[inherit]",children:s}),e.jsx(Ye,{}),e.jsx(Ot,{})]}));Je.displayName=pe.displayName;const Ye=n.forwardRef(({className:t,orientation:s="vertical",...a},r)=>e.jsx(xe,{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(At,{className:"relative flex-1 rounded-full bg-border"})}));Ye.displayName=xe.displayName;const Ze=n.forwardRef(({className:t,orientation:s="horizontal",decorative:a=!0,...r},o)=>e.jsx(he,{ref:o,decorative:a,orientation:s,className:d("shrink-0 bg-border",s==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",t),...r}));Ze.displayName=he.displayName;const _s=K("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Xe=n.forwardRef(({className:t,...s},a)=>e.jsx(ge,{ref:a,className:d(_s(),t),...s}));Xe.displayName=ge.displayName;const et=n.forwardRef(({className:t,...s},a)=>e.jsx(be,{className:d("grid gap-2",t),...s,ref:a}));et.displayName=be.displayName;const tt=n.forwardRef(({className:t,...s},a)=>e.jsx(ye,{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(It,{className:"flex items-center justify-center",children:e.jsx(ts,{className:"h-2.5 w-2.5 fill-current text-current"})})}));tt.displayName=ye.displayName;const X="rowsPerPage",ee="dateFormat";function Ks(){const{setRowPerPageOrAuto:t,setIsCustomQuery:s,queryHestory:a,dateFormatValue:r,setDateFormatValue:o}=R(),[l,i]=n.useState(null),[c,u]=n.useState(!1);n.useEffect(()=>{const f=localStorage.getItem(X),h=localStorage.getItem(ee);if(f)if(f==="auto")u(!0);else{const j=Number(f);i(j),t(j)}h&&o(h)},[t,o]);const m=n.useCallback(f=>{const h=Number(f.target.value);isNaN(h)||(i(h),u(!1))},[]),x=n.useCallback(()=>{u(f=>!f)},[]),p=n.useCallback(()=>{if(s(!1),l===null){z.error("Please provide a number of rows per page or set it to auto.");return}if(l<1){z.error("Please provide a positive number of rows per page.");return}const f=c?"auto":l.toString();localStorage.setItem(X,f),t(c?"auto":l)},[l,c,s,t]),N=f=>{o(f),localStorage.setItem(ee,f)};return e.jsxs(ze,{children:[e.jsx(zs,{asChild:!0,children:e.jsx(y,{className:"grow",title:"Open settings drawer",children:e.jsx(ss,{className:"h-5 w-5"})})}),e.jsx(Ve,{children:e.jsxs("div",{className:"mx-auto w-full max-w-md",children:[e.jsxs(_e,{children:[e.jsx(Ge,{children:"Settings"}),e.jsx(We,{children:"Personalize your site experience here."})]}),e.jsxs("div",{className:"flex flex-col gap-4 p-4 pb-0",children:[e.jsx(Gs,{selectedRowsPerPage:l,isAutoRowsPerPage:c,handleInputChange:m,toggleAutoRowsPerPage:x,handleRowsPerPageSave:p}),e.jsx(Ws,{dateFormatValue:r,handleDateFormatChange:N}),e.jsx(Js,{queryHestory:a})]}),e.jsx(Ke,{children:e.jsx(Vs,{asChild:!0,children:e.jsx(y,{title:"Close settings drawer",variant:"outline",children:"Close"})})})]})})]})}function Gs({selectedRowsPerPage:t,isAutoRowsPerPage:s,handleInputChange:a,toggleAutoRowsPerPage:r,handleRowsPerPageSave:o}){return e.jsxs("div",{children:[e.jsx("p",{className:"mb-1 text-sm text-muted-foreground",children:"Rows Per Page"}),e.jsxs("div",{className:"flex items-center justify-center gap-1 rounded border p-2",children:[e.jsx(H,{value:t||"",onChange:a,disabled:s,placeholder:"Number of rows",type:"number",name:"rowsPerPage"}),e.jsx("span",{className:"h-full text-center text-sm text-muted-foreground",children:"OR"}),e.jsx(y,{className:s?"border border-primary":"",onClick:r,title:"Toggle auto rows per page",variant:"outline",children:"Auto Calculate"})]}),e.jsx(y,{className:"mt-2 w-full",onClick:o,title:"Save rows per page settings",variant:"outline",children:e.jsx("span",{children:"Save"})})]})}function Ws({dateFormatValue:t,handleDateFormatChange:s}){return e.jsxs("div",{children:[e.jsx("p",{className:"mb-1 text-sm text-muted-foreground",children:"Date type format"}),e.jsxs(et,{className:"flex flex-col gap-2",name:"dateType",value:t,onValueChange:s,children:[e.jsx(te,{value:"default",label:"Default"}),Object.keys($).map(a=>e.jsx(te,{value:a,label:$[a].label},a))]})]})}function te({value:t,label:s}){return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(tt,{value:t,id:`r-${t}`}),e.jsx(Xe,{htmlFor:`r-${t}`,children:s})]})}function Js({queryHestory:t}){return e.jsxs("div",{children:[e.jsxs("p",{className:"mb-1 text-sm text-muted-foreground",children:["Query History (",t.length,")"]}),e.jsx(Je,{className:"h-48 rounded-md border",children:e.jsx("div",{className:"p-4",children:t.map((s,a)=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs",children:s}),e.jsx(Ze,{className:"my-2"})]},a))})})]})}const se="darkMode",ae="animate-circular-reveal";function st(){const[t,s]=n.useState(!1),a=n.useCallback(o=>{s(o),document.body.classList.toggle("dark",o),localStorage.setItem(se,o.toString()),document.body.classList.add(ae),setTimeout(()=>{document.body.classList.remove(ae)},500)},[]);n.useEffect(()=>{const o=localStorage.getItem(se),l=o!==null?o==="true":window.matchMedia("(prefers-color-scheme: dark)").matches;a(l);const i=u=>{a(u.matches)},c=window.matchMedia("(prefers-color-scheme: dark)");return c.addEventListener("change",i),()=>{c.removeEventListener("change",i)}},[a]);const r=n.useCallback(()=>{a(!t)},[t,a]);return e.jsx(y,{className:"relative grow",onClick:r,title:t?"Enable light mode":"Enable dark mode",children:t?e.jsx(as,{className:"h-5 w-5"}):e.jsx(rs,{className:"h-5 w-5"})})}const Ys={"application/vnd.sqlite3":[".sqlite",".sqlite3"],"application/x-sqlite3":[".sqlite",".sqlite3"],"application/octet-stream":[".db"],"application/sql":[".sql"]},Zs={CHINOOK:"https://github.com/vwh/sqlite-viewer/raw/main/db_examples/chinook.db"};function Xs(){const{loadDatabase:t,setTables:s,setSelectedTable:a,db:r}=R(),[o,l]=n.useState([]),i=n.useCallback(async(p,N)=>{if(l([]),s([]),a("0"),p.length>0&&await t(p[0]),N.length>0){const f=N.flatMap(h=>h.errors);l(f)}},[t,s,a]),{getRootProps:c,getInputProps:u}=ls({onDrop:i,multiple:!1,accept:Ys}),m=n.useCallback(p=>e.jsxs("div",{className:`flex h-full items-center justify-center gap-2 ${p?"px-[10px]":"px-0"}`,children:[e.jsxs("div",{...c(),className:`flex h-full grow cursor-pointer flex-col items-center justify-center rounded border p-6 text-center ${p?"py-0":"py-32"}`,children:[e.jsx("input",{id:"file-upload",...u()}),e.jsx("label",{htmlFor:"file-upload",className:"sr-only",children:"Upload SQLite File"}),e.jsx("p",{className:"hidden sm:block",children:"Drag and drop a SQLite file here, or click to select one"}),e.jsx("p",{className:"block sm:hidden",children:p?"Click to select a file":"Click to select a SQLite file"}),!p&&e.jsx("a",{href:Zs.CHINOOK,className:"text-sm text-link hover:underline",title:"Download sample file",children:"Or download & try this sample file"})]}),p&&e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(st,{}),e.jsx(Ks,{})]})]}),[c,u]),x=n.useMemo(()=>m(!!r),[m,r]);return e.jsxs("section",{children:[x,e.jsx(ea,{errors:o})]})}const ea=O.memo(({errors:t})=>(O.useEffect(()=>{t==null||t.forEach(s=>z(s.message,{position:"bottom-right"}))},[t]),null));function ta(){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}function sa(){const s=ta()?"/sqlite-dark.webp":"/sqlite-light.webp";return e.jsx("section",{className:"flex justify-center rounded border py-3",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("img",{id:"logo",title:"SQLite Logo",src:s,alt:"SQLite Logo",width:"170",height:"80",draggable:"false"}),e.jsx("p",{className:"text-sm",children:"View SQLite files in the browser"})]})})}const aa=$t,ra=Mt,at=n.forwardRef(({className:t,...s},a)=>e.jsx(je,{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}));at.displayName=je.displayName;const rt=n.forwardRef(({className:t,...s},a)=>e.jsxs(ra,{children:[e.jsx(at,{}),e.jsx(we,{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})]}));rt.displayName=we.displayName;const ot=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col space-y-2 text-left",t),...s});ot.displayName="AlertDialogHeader";const nt=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s});nt.displayName="AlertDialogFooter";const lt=n.forwardRef(({className:t,...s},a)=>e.jsx(Ne,{ref:a,className:d("text-lg font-semibold",t),...s}));lt.displayName=Ne.displayName;const it=n.forwardRef(({className:t,...s},a)=>e.jsx(ve,{ref:a,className:d("text-sm",t),...s}));it.displayName=ve.displayName;const ct=n.forwardRef(({className:t,...s},a)=>e.jsx(Ce,{ref:a,className:d(J(),t),...s}));ct.displayName=Ce.displayName;const dt=n.forwardRef(({className:t,...s},a)=>e.jsx(Re,{ref:a,className:d(J({variant:"outline"}),"mt-2 sm:mt-0",t),...s}));dt.displayName=Re.displayName;function oa({showDialog:t,setShowDialog:s,fn:a}){return e.jsx(aa,{open:t,onOpenChange:s,children:e.jsxs(rt,{children:[e.jsxs(ot,{children:[e.jsx(lt,{children:"Retry using a proxy?"}),e.jsx(it,{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(nt,{children:[e.jsx(dt,{onClick:()=>s(!1),children:"Cancel"}),e.jsx(ct,{onClick:a,children:"Confirm"})]})]})})}const na="https://github.com/vwh/sqlite-viewer";function la(){return e.jsxs("footer",{className:"flex items-center justify-between rounded border p-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"hidden text-xs sm:block",children:"No file will be uploaded to server. using JavaScript, sql.js"}),e.jsx("p",{className:"block text-xs sm:hidden",children:"No file uploads to server."}),e.jsxs("a",{href:na,target:"_blank",className:"flex items-center gap-1 text-sm text-link hover:underline",title:"Star on GitHub",children:[e.jsx(os,{className:"h-4 w-4"}),e.jsx("span",{children:"Star us on GitHub"})]})]}),e.jsx("div",{className:"flex gap-1",children:e.jsx(st,{})})]})}function ia(){const{db:t,tables:s,isLoading:a,loadDatabase:r,expandPage:o}=R(),[l,i]=n.useState(null),[c,u]=n.useState(!1),[m,x]=n.useState(null),[p,N]=n.useState(!1),f=n.useRef(!1),h=n.useCallback(async(b,S=!1)=>{if(!/^(https?:\/\/(?:www\.)?[a-zA-Z0-9-]{1,256}\.[a-zA-Z]{2,6}(?:\/[^\s]*)?)$/i.test(b)){i("Invalid URL");return}try{N(!0);const E=S?`https://corsproxy.io/?${encodeURIComponent(b)}`:b,g=await fetch(E);if(!g.ok)throw new Error("URL not found or invalid");const T=await g.blob(),F=new File([T],"database.sqlite");await r(F),i(null)}catch(E){S?i(`Error whilefetching, ${E instanceof Error?E.message:String(E)}`):(x(b),u(!0))}finally{N(!1)}},[r]);n.useEffect(()=>{if(f.current)return;const S=new URLSearchParams(window.location.search).get("url");S&&(h(decodeURIComponent(S)),f.current=!0)},[h]);const j=n.useCallback(()=>{m&&(h(m,!0),u(!1))},[m,h]),P=()=>a||p?e.jsxs(qe,{children:[p?"Fetching":"Loading"," SQLite file"]}):l&&!t?e.jsx(_,{children:l}):t?s.length>0?e.jsx(Bs,{}):e.jsx(_,{children:"Your database is empty, no tables found"}):null;return e.jsxs("main",{className:`mx-auto flex h-screen flex-col gap-3 p-4 ${o?"w-full":"container"}`,children:[!t&&e.jsx(sa,{}),e.jsx(Xs,{}),P(),e.jsx(oa,{showDialog:c,setShowDialog:u,fn:j}),!t&&e.jsx(la,{})]})}const ca=({...t})=>e.jsx(is,{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});pt.createRoot(document.getElementById("root")).render(e.jsxs(O.StrictMode,{children:[e.jsx(ia,{}),e.jsx(ca,{})]})); diff --git a/assets/index-C6RQFSoa.js.gz b/assets/index-C6RQFSoa.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c49ac510b9afdf5df3efe9cf2933ad4fd43c72e7 GIT binary patch literal 11749 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 Hj*|cYwCgay literal 0 HcmV?d00001 diff --git a/assets/index-CSFft99D.css b/assets/index-CR9ThQaM.css similarity index 62% rename from assets/index-CSFft99D.css rename to assets/index-CR9ThQaM.css index 7bb89b1..2f1dd60 100644 --- a/assets/index-CSFft99D.css +++ b/assets/index-CR9ThQaM.css @@ -1 +1 @@ -*,: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% 87%;--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% 80%;--input: 240 5.9% 80%;--link: 198, 100%, 16%;--ring: 240 5.9% 10%;--radius: .5rem}.dark{--background: 0 0% 5.9%;--foreground: 0 0% 98%;--card: 0 0% 3.9%;--card-foreground: 0 0% 98%;--popover: 0 0% 3.9%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 0 0% 9%;--secondary: 0 0% 14.9%;--secondary-foreground: 0 0% 98%;--muted: 0 0% 14.9%;--muted-foreground: 0 0% 63.9%;--accent: 0 0% 14.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 0 0% 14.9%;--input: 0 0% 14.9%;--link: 198, 100%, 60%;--ring: 0 0% 83.1%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}*,: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-\[8px\]{bottom:8px}.left-0{left:0}.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}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.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-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.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-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-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.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))}@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}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.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}.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-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}.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-md{border-radius:calc(var(--radius) - 2px)}.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-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:transparent}.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-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.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-secondary{background-color:hsl(var(--secondary))}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.p-\[6px\]{padding:6px}.px-0{padding-left:0;padding-right:0}.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-8{padding-left:2rem;padding-right:2rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.py-0{padding-top:0;padding-bottom:0}.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-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-32{padding-top:8rem;padding-bottom:8rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-8{padding-bottom:2rem}.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-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-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-current{color:currentColor}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-link{color:hsl(var(--link))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.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)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.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}@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}.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\/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%}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:hidden{display:none}.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\:text-left{text-align:left}}@media (min-width: 768px){.md\:min-w-\[200px\]{min-width:200px}.md\:flex-row{flex-direction:row}}@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} +*,: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% 87%;--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% 80%;--input: 240 5.9% 80%;--link: 198, 100%, 16%;--ring: 240 5.9% 10%;--radius: .5rem}.dark{--background: 0 0% 5.9%;--foreground: 0 0% 98%;--card: 0 0% 3.9%;--card-foreground: 0 0% 98%;--popover: 0 0% 3.9%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 0 0% 9%;--secondary: 0 0% 14.9%;--secondary-foreground: 0 0% 98%;--muted: 0 0% 14.9%;--muted-foreground: 0 0% 63.9%;--accent: 0 0% 14.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 0 0% 14.9%;--input: 0 0% 14.9%;--link: 198, 100%, 60%;--ring: 0 0% 83.1%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}*,: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-\[8px\]{bottom:8px}.left-0{left:0}.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}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.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-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.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-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-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.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))}@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}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.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}.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-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}.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-md{border-radius:calc(var(--radius) - 2px)}.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-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:transparent}.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-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.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-secondary{background-color:hsl(var(--secondary))}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.p-\[6px\]{padding:6px}.px-0{padding-left:0;padding-right:0}.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-8{padding-left:2rem;padding-right:2rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.py-0{padding-top:0;padding-bottom:0}.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-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-32{padding-top:8rem;padding-bottom:8rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-8{padding-bottom:2rem}.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-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-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-current{color:currentColor}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-link{color:hsl(var(--link))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.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)}.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}@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}.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\/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%}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:hidden{display:none}.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\:text-left{text-align:left}}@media (min-width: 768px){.md\:min-w-\[200px\]{min-width:200px}.md\:flex-row{flex-direction:row}}@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-CSFft99D.css.gz b/assets/index-CR9ThQaM.css.gz similarity index 72% rename from assets/index-CSFft99D.css.gz rename to assets/index-CR9ThQaM.css.gz index 6a8a5fd9c04a8e98bd4c53ac2243427504fb3916..f496f36a428cf1d868fc4f798e3cf7e715bc7d78 100644 GIT binary patch delta 1382 zcmV-s1)2KJDE%m~DGz@FLRZ}F`2Tgbz?yr1)qn<& zbpbjED+07{tp-Boi0R^)cd=?U2$a_pApa5)%IydBu73D)d(V&r6k~dNhxEo)n&cX) zcEGqhNRRN8UbBIMm<{^^kA|MdGq`XcPh4f9LTF#)uZMyNjP1JbMhvs=oPa~I zT}UMBMmQ%mW}SyNI4AYHOn~&aEns5r7yt=v-Fygc={@3&&YOOsvgoFp;Pho{`MlE) zLwe1^bJmbD7w>;r%wi8*Sp?f&PgmSxzVqZr3KBu=4G9m1wp^4JwcZn_$FkZZ5~0eV zEPVJ}<&lW&5y9`3dBE6>OfQPl4_`}da5|G$i)S$p^mQS6-Uc_>$CD)xL#pDt0<(};hcDF^QlxIp{3+ucV6w}Q97 zg%L^-;c*Y1|LI;wfXBQ}@ZQj!3wlU*AxIC31pE6#BO!|dor#cgvoh3-+^Fho_^wFR9-a)3KI9NF44)>T|-Iz?jqmfB0Zyau41w4eV6G;GF|8PDCsUF zUwW=(1%L;)qFG&WCsOY~O{BQL?|4N`0bKAx{toU6;egqHLaO0(&MsBZap*Y%dJGRm z32-oipAq1nkYrv<(E8K5`#BE%w(a)yj3#m*ki>tz=N9GxVPYe6AM49|uUo#Rz_(}6 z9+LdcxvxizA+D*_Y5e|G-Xjvfr=Y%;WGNUVF631F8-05BCc1Tg-xnh1{ELn@VJnFfw?_Zi^?!yn@M;Ea zp{svw7y}8cg^<5JTTmL#bPUrLL|`+nv99>pyV8uc~hseoOm1@}=^Y$FGYSfBRY;*WnRgS84^) zFkumFebI*q>&rVtP-(MzH`A5W1BibU$eMTjfvkT0JMjR5Q~pENsDs|J(ihHxW_7Sp z7|dyJ7dhER>}9c}5j(8GInB z*3WDDy)T$=2ey5KgCscZhz?kI%>@+C{P(~l8is37l}OTl2i7Eyr+ncyghC)gh@WC%76e!pKDlsxe2ll=3uw?lEYoWpD#+`1|M!p?!am1|A9`Ft+Qy8!=2? za{>;qj^0HWfp zk;B6_YYfG&;_WyQh7BtH!4JGxvi+qcV^o-iMip8$?U8X0=be-Fy zq`Q!OFu8x07wH~cE@pMbok%^WG?C&OyyF#D^KefJX)w5QgL7K{C8mbcIlB{g$Dtp+ z=}kG@?L(b1yvFCBkgHuw(E8K5`&A45((3jthbD3$ki@;`GUEYZVk2}P>&ts@Exx9} zwVb{Ta;7rZ}jQio9Nd0eP4*2^DkPK z?FHYq))9=CqWffBlRgreB>Hq?W#Xc+Zf^ZEzb7Dn((1_qE(l2kg{`toT)zBcm(dy4 zz#9&@!C_=C-YhBROU(NK;$5aY3uo?2oqRJ%GRYL41Ev=P7nlGdr;L4Wk zg3Re^nDY!BEW}Lk2djEHMk_`>1hb%wxpEiZHQMj+Hq9$;F4<)`rs#d<1jAlK?(Zv| z){>lk^;BZfhOqazmjbVp8;ud@K1ou6F3r81#7sjM@u>NUs-x+@f z4-y^}&!6ATmRRrqXbU)^v*pt*ud`Uaum8XWzpB1n_$}@4$d}4n-jFV4{0V7wT!%+| zq^Q*y!-Pe!^%!~+OU`43s@4SLIhSvU)t zMYcwLEvLO*D`Xq7m&KAs>B-yg;IN5lTCc*=c(o#A%}V!H!e$8h%j zXYhfjT0gJpXR~0w9oY5_4wB%sBRXK=H5X7k^Pkm{Xc(?RaUV(h9axh*p7Mp;6n=cs z3kW!<5SQA>*B1DrquSr_qXhVK1?soP6t0tuRYJVgnhx(NCLUC_2NXwuw>>W;X$%zB tl4LS5%J?4;q0wt;BOg+s8pd+HC;7EhlXIgzETR0TzXPluZS#Uv003bOqrLzD diff --git a/index.html b/index.html index fbcf22b..eaadd74 100644 --- a/index.html +++ b/index.html @@ -90,7 +90,7 @@ as="image" type="image/webp" /> - + @@ -119,7 +119,7 @@ - +

diff --git a/index.html.gz b/index.html.gz index 74b0230c0b70e055a3d058add309dfeffd3c04ea..97c34ad300da398217c13bab5f6e6d28fd29c5cb 100644 GIT binary patch literal 1740 zcmV;-1~d5|iwFP!000021I=0MbKAHP|9*c3j-6gURFFhDi4#Y1FOuw>uT^}uqWI!3 z9*A6tut9(ZKt0^)|K0^366IIh&^L4Ap#*`uzkOhLv4FcjhAOb@1W06Kari^meG$Rr zyyt=R4u2q|8vzU50EaPHMuLcG1GeW)z8uqc9%)ryN)|)UTX0w=N?VTvN?MReyyT&c zdLb-$05tp2AY5|GnV=?M0(yS4y#*6o-VhC<=fzC&85qQhG|YOQ;TD=pm~Q7EQ6M%f zNdym=+@9sczn<%l8N#YTW=aUP ze9WwXNhMK1QQ8$*o0x-E%iIdIaIdK(5<_dtYq=G0I6nI)z9wJM!=SsZd@?8aky3KZ z(7{R)CPU%|hEV!IwtG>Eo#hNo{P2j21biK{IkZ+ZCwr*6b1hJ-(jY2m48H@@^Za-1 z6+R{OeY$2M=a1p#7**LBVF9|=S?zW1X-l)o@5A%ouKc(6@v_N>c-e?lP>YHC*u``y z;eBU?PdQsSLxx)MkOq-f7+eKSbHiO<>>Izc!sl7B1bIp18Cs1#M#9#bg$Ew<+i~DIzsQz$r6eFx?4e7MW_bG@y6oKM-^S>!s46c_1Z+ zZDfi%+(wZL4bsnn8{`6}~JhY!AS|y3-ZPA@Kwdc~eh;%y zt`=7~L0(P9-ec>u!}mwV#jd0*{3{ARQ8yC}ZWr3k>4#{k7XKaVIRKZF)ol)@&i{{Z zD@$%I=!1aiu)<=}IA(f%C77PWRbk#U?Egn#>||8Q|A#KsuBh5;mBX>rMmt;aVi|cm zrRx~q+}rA^MHB@H#lqdvSSmAfyv?~%a{(;jrWvTX6&Ta``;5h0tb4~?v%ig$R0qp> zWPg6$Zhv@#&wji8Q$aCKSO7T*w@frLx^}}+wi`(I!OzCN8~+q?lL)r%nI%g~jTqK% zW7oK@&u#`8iHQL0pVyQaLe8Aax!h=p>x}MqjTP#Y6TD(VyxO%^syr|c3$Cj9Pdebw z=z`Lq)~-caqz*LpyjWw&U_9OiY-U$!_f&;z@~@43&LWztc0fF*K5@Ev4HDy*ams!u zi2q%DH>IN2rh;K%WhoPUE)Ph6DFph%<{cKFIhWX{B?qL_{_7K1k$+z$*LEO>hIp5y z+p1XezolYP5GX1bS=Zd}Bt~9E9_fL$gr&!GcNavl3e&7oYGsVl9IYfq2PlpiJiwS% z)}+(H+w-&Iv0}|@;~k>%)fKB8Lo%>Z`yI@}h60pXt0@ZtNG$DNocQdsP#N@hBWhrQ zrNcNm87+sSdRQiiz>#V?xH}%6e@VZ+gl?gVsXbYp^v}}EdU&Y;YSuEK7_gwFI~-#B z1hl{Y1`zI_*F(Qcjm6!K_WhI5-cV0!`tnvF02OyacBa#?9@q@esMN3puFNo+UM@bV znt*{YE83^wjTv3m3>wS0SYoo!7_dd5{hN!^{k^uV2g)>OG~!_hk`B+_Oa`5!c}+Eq z;8QwCFV`J@epe4`4wm8p9q%dz^z!}Q$NBgr@+2#aSU4qaP8N@ygJjiTo?N^LHr8Ra zKyaiJf=(I6(dBjY+iLRl1u~L{5IDqlSJ5b#e5#L#JD`}d;0D#6(c$^sKVDy7oW8sp z`lsv9R~M6-iT?8pDJ-rUO*tKYx;c6qrce`7vyiVcJbObg{gJMl?Kq$dmsBoj^NyL@ zHSJGd-;R~vt_LsD07HQ0E}opix9IGns0WFM3ZOG-=>rZ66lbg^iQLcn(1$pl(=j3fBn=pzehED zjRi|FYi{C&zwa*|g{rjR&)^iT)%p7`(HR>xu>sF7lb^oVZIu%{m%E2$OUFZZt&Aa) zh}5;K$&wvtm~(?|0yTKWns;{P)c9hzo$I#BYwWITuM4X}zQ};JQchG0e?N5=aim$2 z^}MVh_6|4Qa5wS~e`O0c&NV%U+mvevQKVlXO15KyH%hNG5OkfpUYe%ZvEs>yRPL$_s@BwyH7ytki9$KIP literal 1741 zcmV;;1~T~{iwFP!000021I<}&bK5o&{@!1KvUAOc3X&)%apFk6Mw0ESJ;k*Z#f`ss zAQBQ`fdCDFlIWZJ@3-KKMB1`@7rHYY4x&bA=9l$W8h9EB>N>kHwrk_voI|sGOF9iu{&sj0Lj-)aU@}w|S0P&jn zCg}Ne#XO4B9}UC=GmLPoJ;G_vZMJt{oQWk;l=qyF2sWo0umVNrJx4P`n`=7T&F@hl z)Fg^H^N3+m;LnWHf#gz^^!cHE(mrw9d$~+j`Iawd%~5i{Y_O#{s( z=W@NzERP5&KtW#E6&MrgqgG4baj@{9DFqPI){fUO!|Czl;$QF@eE|y8Nv4$ zqf-J7mI4vsBRkLt<43aXi$d%?V`##MgKQ+g>yRvHYlAbg$EsV`Qfy@G1v!mo_f+>B z_g#AfPXYaqt{I8NKD-R0EITF4K@U2cgU$nOaXR^Jc<$Sc`}QGTI{6qc9ib9xKJgGc zpDrZ4?`+^HW^-o^4K^)uiGx}r1mF^U>ig&iRp69JwJ0i{tWw`IwHpQlN;{dr*x$?$gK zGMXK1AwKooM?rX^nchO2_{_+ifSnGH?MIQ45mhGXIdXB7X14Rt?p&Jl45KZOH`a;Y z!pxr$hN=n1Oq~H^EGg8#dHkF1aL|GYH2K#nOolGLdpfFBx1Vh$*|>V-TCL7gp4P>Q>MsIV=3g( zdJ&kPU$@&I-oSI%ZvU85Od{gZjD#7&8!278VJX`Up!?vaW7m#<^qG!0NqTxsqCz7A z^;??+*7e!VASKZOrRMKzN=SW1tjn3$Y6BAmafS}SB0n8!I++59IR z@ON}UVNk1TQ5vZO1wAj+STvYSb^)8(RoFd~euDnJwa;3FGu4ieW7S7iH>ZI@_|jI{ z4>|FF^6#dQ_*R!N4BZ$^I9rG#toh$kF)s)h6by`Q?kkCrRgpbC(2lV1c;@b$D3pGjR!SwcmWqLuNGlJ-5e)|z z-AbEu+#j7Cjy=9?-fHIjSq%uTGN+z8~`xC=b|&4`Srl&a7M+NtYBq^!R&f< zCTjwETtjSQf2qgUHG{?w#@CQ6IHb^`;QsRJ{P3VH>VXo)2o9LEFJ$)cv3 znzI=m#MeoOUEbHjT2O=GfDU&R1AP7d;NxQQ5_ysqMkt&DHYWqe&Ox;4uSZuef(><8 zt^ge9IL9*raddqf{Jxofd4Y^%KJ_f(yPII_P0#8h!Vbu1#9M;eb3DAf|Lyhd)%nZ2 zp?{uyy1AOxO!S}UKw)6jaLn-VY{}I&e zHC7~stXYOD_t0JKg(|h+&){UO)nIZuH}BsMo6vw~m&s4x>$ZxC%H{5H(b6&BUMoY$ zL_D_bYP2RtiY}OjHUVq6V$C|cVrp_#ZRfhJ;u^ba+w0sapRH10C8ZVBg5OV_MJ#EW zWIZQsh@InYH{1=}<6p^&OfpR`>0Qhe^+BXtB8qln1UE{r6h+`Vd%ZM^p<{)U5h~qT zgO5@ajY`NyqIoPl`@V$b0SW{uPnzg=IP<`b6cuE~X_*t&Cy}u#4({m@KMMwXo-ct# j&{sEiO1HLJmz`5N*K}K%L&4niUkLvN?`I~XQy2gMlZ(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-7cfec069"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/@floating-ui-DGkE6due.js",revision:null},{url:"assets/@radix-ui-Dtk-Z1Mr.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/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-BIG7Mclk.js",revision:null},{url:"assets/index-CSFft99D.css",revision:null},{url:"assets/lucide-react-UOeYhQAl.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.js-lzln2bbd.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-Bkmv171v.js",revision:null},{url:"assets/zustand-B1IM3DrU.js",revision:null},{url:"index.html",revision:"83d360fc2773664aa8f44a25474e282b"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"sql.wasm",revision:"8f5029a1d3545424d4f25647673e5e32"},{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-7cfec069"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/@floating-ui-DGkE6due.js",revision:null},{url:"assets/@radix-ui-Dtk-Z1Mr.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/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-C6RQFSoa.js",revision:null},{url:"assets/index-CR9ThQaM.css",revision:null},{url:"assets/lucide-react-UOeYhQAl.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.js-lzln2bbd.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-Bkmv171v.js",revision:null},{url:"assets/zustand-B1IM3DrU.js",revision:null},{url:"index.html",revision:"00271fab0d1c3a1139310a7499c53f7f"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"sql.wasm",revision:"8f5029a1d3545424d4f25647673e5e32"},{url:"manifest.webmanifest",revision:"662c9ac5fe5300a257a596b0ad6130ea"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));