db-studio 1.7.3 → 1.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core-dist/assets/_pathlessLayout-7XOLasgU.js +2 -0
- package/dist/core-dist/assets/_pathlessLayout-BgaXE7MD.js +1 -0
- package/dist/core-dist/assets/_queryId-DHd3r8hS.js +1 -0
- package/dist/core-dist/assets/_table-BrQjEEkt.js +8 -0
- package/dist/core-dist/assets/_table-C6uuIAjA.js +1 -0
- package/dist/core-dist/assets/bundle-mjs-DkNbwow-.js +1 -0
- package/dist/core-dist/assets/cdoe-editor--A2X22TE.js +9 -0
- package/dist/core-dist/assets/chat-sidebar-Dq5zKCoF.js +2 -0
- package/dist/core-dist/assets/chunk-BO2N2NFS-CtrFqJix.js +131 -0
- package/dist/core-dist/assets/css.worker-CCg9Iwze.js +40646 -0
- package/dist/core-dist/assets/dist-C-W9v39G.js +1 -0
- package/dist/core-dist/assets/dist-CWf64aZV.js +1 -0
- package/dist/core-dist/assets/format-cell-value-DyKHFyYf.js +1 -0
- package/dist/core-dist/assets/highlighted-body-OFNGDK62-Dqw8vrq4.js +1 -0
- package/dist/core-dist/assets/html.worker-BBXyX7jd.js +22115 -0
- package/dist/core-dist/assets/icons-CAZJbhBz.js +1 -0
- package/dist/core-dist/assets/index-Cw94sGcz.js +57 -0
- package/dist/core-dist/assets/index-hsgkD-V0.css +2 -0
- package/dist/core-dist/assets/indexes-B2pdcOTa.js +1 -0
- package/dist/core-dist/assets/json.worker-D3YLuqJL.js +15158 -0
- package/dist/core-dist/assets/logs-DItnmo1m.js +1 -0
- package/dist/core-dist/assets/mermaid-GHXKKRXX--wNt23Qo.js +1 -0
- package/dist/core-dist/assets/monaco-editor-B6TxHuqP.js +1230 -0
- package/dist/core-dist/assets/monaco-editor-DVSAlpqy.css +1 -0
- package/dist/core-dist/assets/queries.store-B8yJ67Tq.js +1 -0
- package/dist/core-dist/assets/radix-ui-B93Y7STU.js +51 -0
- package/dist/core-dist/assets/react-dom-KMIgB9GW.js +9 -0
- package/dist/core-dist/assets/rolldown-runtime-Bnw7wDfq.js +1 -0
- package/dist/core-dist/assets/runner-DGQg7j15.js +1 -0
- package/dist/core-dist/assets/runner-tab-JuHyhE5I.js +9 -0
- package/dist/core-dist/assets/schema-B1a8u8dT.js +1 -0
- package/dist/core-dist/assets/scroll-area-DIT4iXSA.js +1 -0
- package/dist/core-dist/assets/table-Bq-YbPAX.js +1 -0
- package/dist/core-dist/assets/tanstack-COAHM0pn.js +9 -0
- package/dist/core-dist/assets/tooltip-BPnX8rwL.js +1 -0
- package/dist/core-dist/assets/{ts.worker-BfwyojP3.js → ts.worker-EBDMY3hW.js} +124292 -247
- package/dist/core-dist/assets/use-delete-column-DfaGMfjR.js +1 -0
- package/dist/core-dist/assets/use-rate-limit-JM72I-Qe.js +1 -0
- package/dist/core-dist/assets/visualizer-CQk0bfHO.js +1 -0
- package/dist/core-dist/index.html +10 -8
- package/dist/index.js +67 -67
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/core-dist/assets/_pathlessLayout-C4T813nc.js +0 -1
- package/dist/core-dist/assets/_queryId-CzDXQjlo.js +0 -1
- package/dist/core-dist/assets/_table-Bu3xLCnw.js +0 -39
- package/dist/core-dist/assets/_table-CxQw9Zgt.js +0 -8
- package/dist/core-dist/assets/cdoe-editor-Cez2GFq-.js +0 -9
- package/dist/core-dist/assets/css.worker-NZNbQL3P.js +0 -93
- package/dist/core-dist/assets/dialog-DR7r4hKq.js +0 -1
- package/dist/core-dist/assets/format-cell-value-Cn3RA9a1.js +0 -1
- package/dist/core-dist/assets/html.worker-eZJr__P7.js +0 -470
- package/dist/core-dist/assets/icons-B2mES2Qq.js +0 -1
- package/dist/core-dist/assets/index-B1s9iEHF.js +0 -1
- package/dist/core-dist/assets/index-BZXeXns-.css +0 -1
- package/dist/core-dist/assets/index-C7KJNEv-.js +0 -1
- package/dist/core-dist/assets/index-CTFnCamQ.js +0 -1
- package/dist/core-dist/assets/index-DQOVykiS.js +0 -1
- package/dist/core-dist/assets/index-YjvhQnuu.js +0 -1
- package/dist/core-dist/assets/index-xtX-qDgL.js +0 -57
- package/dist/core-dist/assets/indexes-DESnDRwn.js +0 -1
- package/dist/core-dist/assets/json.worker-C838mOW9.js +0 -58
- package/dist/core-dist/assets/logs-DKdQRaOz.js +0 -1
- package/dist/core-dist/assets/monaco-editor-BMj4E99D.js +0 -1230
- package/dist/core-dist/assets/monaco-editor-Ck3IbhyB.css +0 -1
- package/dist/core-dist/assets/queries.store-DGrjGe-g.js +0 -1
- package/dist/core-dist/assets/radix-ui-c-7GrHMM.js +0 -51
- package/dist/core-dist/assets/react-dom-BcUZDRtY.js +0 -9
- package/dist/core-dist/assets/runner-tab-CsEKHazt.js +0 -9
- package/dist/core-dist/assets/scroll-area-B80EsjFm.js +0 -1
- package/dist/core-dist/assets/tanstack-BaWakKkc.js +0 -7
- package/dist/core-dist/assets/tooltip-DBQw-B98.js +0 -1
- package/dist/core-dist/assets/use-delete-column-c-7ogRF5.js +0 -1
- package/dist/core-dist/assets/visualizer-CQGMZpWZ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as ve}from"./rolldown-runtime-Bnw7wDfq.js";import{i as je,n as X,r as Se,t as ee,v as k,x as L}from"./tanstack-COAHM0pn.js";import{_ as Te,i as ze,k as De,m as we,n as Ae,p as qe,tt as Re,x as Ee}from"./icons-CAZJbhBz.js";import{Ot as Ie}from"./radix-ui-B93Y7STU.js";import{$ as ae,A as Pe,At as Ve,C as Ke,Ct as v,D as Fe,Dt as U,E as Oe,I as _e,L as se,M as ke,Mt as ne,Nt as Le,O as Ue,Ot as le,Pt as Me,Q as te,R,St as re,T as ie,Tt as M,X as oe,Y as O,Z as ce,_ as s,_t as $e,b as me,c as Be,d as D,et as de,f as g,g as I,gt as S,h as o,ht as p,j as K,jt as ue,k as Qe,kt as He,l as Ye,m as E,n as Ge,nt as Je,ot as $,p as h,rt as w,st as B,tt as he,u as N,v as xe,w as pe,y as Ze}from"./index-Cw94sGcz.js";import{i as fe,n as ye,t as be}from"./tooltip-BPnX8rwL.js";import{t as We}from"./use-delete-column-DfaGMfjR.js";function _(a){return He(Ye,a)}var C=ve(Re(),1),e=Ie(),Xe=({columnVirtualizer:a,row:n,rowVirtualizer:c,virtualPaddingLeft:t,virtualPaddingRight:u,virtualRow:i})=>{const m=n.getVisibleCells(),l=a.getVirtualItems();return(0,e.jsxs)("tr",{"data-index":i.index,ref:r=>c.measureElement(r),className:"flex absolute w-fit border-b items-center text-sm hover:bg-accent/20 data-[state=open]:bg-accent/40 [&_svg]:size-4",style:{transform:`translateY(${i.start}px)`},children:[t?(0,e.jsx)("td",{style:{display:"flex",width:t}}):null,l.map(r=>{const d=m[r.index];return(0,e.jsx)("td",{className:M("flex border-r border-zinc-800 h-8 items-center px-3 truncate"),style:{width:d.column.getSize()},children:X(d.column.columnDef.cell,d.getContext())},d.id)}),u?(0,e.jsx)("td",{style:{display:"flex",width:u}}):null]},n.id)},ea=({columnVirtualizer:a,table:n,tableContainerRef:c,virtualPaddingLeft:t,virtualPaddingRight:u})=>{const{rows:i}=n.getRowModel(),m=ee({count:i.length,estimateSize:()=>33,getScrollElement:()=>c.current,measureElement:typeof window<"u"&&navigator.userAgent.indexOf("Firefox")===-1?r=>r?.getBoundingClientRect().height:void 0,overscan:5}),l=m.getVirtualItems();return(0,e.jsx)("tbody",{style:{display:"grid",height:`${m.getTotalSize()}px`,position:"relative"},children:l.map(r=>{const d=i[r.index];return(0,e.jsx)(Xe,{columnVirtualizer:a,row:d,rowVirtualizer:m,virtualPaddingLeft:t,virtualPaddingRight:u,virtualRow:r},d.id)})})};function aa({header:a,table:n,label:c}){const t=n._getDefaultColumnDef(),u=(0,C.useCallback)(()=>{n.setColumnSizing(i=>{const m={...i};return delete m[a.column.id],m})},[a.column.id,n]);return(0,e.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":`Resize ${c} column`,"aria-valuenow":a.column.getSize(),"aria-valuemin":t.minSize,"aria-valuemax":t.maxSize,tabIndex:0,className:M("after:-translate-x-1/2 -right-px absolute top-0 z-50 h-full w-0.5 cursor-ew-resize touch-none select-none bg-border transition-opacity after:absolute after:inset-y-0 after:left-1/2 after:h-full after:w-[18px] after:content-[''] hover:bg-primary focus:bg-primary focus:outline-none",a.column.getIsResizing()?"bg-primary":"opacity-0 hover:opacity-100"),onDoubleClick:u,onMouseDown:a.getResizeHandler(),onTouchStart:a.getResizeHandler()})}var sa=(0,C.memo)(aa,(a,n)=>{const c=a.header.column,t=n.header.column;return!(c.getIsResizing()!==t.getIsResizing()||c.getSize()!==t.getSize()||a.label!==n.label)}),na=({columnVirtualizer:a,table:n,virtualPaddingLeft:c,virtualPaddingRight:t})=>{const u=a.getVirtualItems(),i=n.getState().columnSizingInfo.isResizingColumn;return(0,e.jsx)("thead",{className:"h-9 grid sticky top-0 z-10",children:n.getHeaderGroups().map(m=>(0,e.jsxs)("tr",{className:M("flex w-fit bg-black border-b border-zinc-800 items-center text-sm [&_svg]:size-4",i&&"pointer-events-none"),children:[c?(0,e.jsx)("th",{style:{display:"flex",width:c}}):null,u.map(l=>{const r=m.headers[l.index];return(0,e.jsxs)("th",{className:"relative h-full flex items-center border-r border-zinc-800 text-xs font-medium text-zinc-500",style:{width:r.getSize()},children:[(0,e.jsx)("div",{className:"flex w-full h-full items-center px-3",children:X(r.column.columnDef.header,r.getContext())}),r.column.getCanResize()&&(0,e.jsx)(sa,{header:r,table:n,label:r.column.id})]},r.id)}),t?(0,e.jsx)("th",{style:{display:"flex",width:t}}):null]},m.id))})},la=({table:a})=>{const n=a.getVisibleLeafColumns(),c=(0,C.useRef)(null),t=ee({count:n.length,estimateSize:l=>n[l].getSize(),getScrollElement:()=>c.current,horizontal:!0,overscan:3}),u=t.getVirtualItems();let i,m;return t&&u?.length&&(i=u[0]?.start??0,m=t.getTotalSize()-(u[u.length-1]?.end??0)),(0,e.jsx)("div",{className:"w-full flex-1 overflow-auto",ref:c,style:{position:"relative"},children:(0,e.jsxs)("table",{style:{display:"grid"},children:[(0,e.jsx)(na,{columnVirtualizer:t,table:a,virtualPaddingLeft:i,virtualPaddingRight:m}),(0,e.jsx)(ea,{columnVirtualizer:t,table:a,tableContainerRef:c,virtualPaddingLeft:i,virtualPaddingRight:m})]})})},ta=({columns:a,data:n})=>(0,e.jsx)(la,{table:Se({data:n,columns:a,getCoreRowModel:je(),enableColumnResizing:!0,columnResizeMode:"onChange"})}),y=o({db:s("Database name is required")}),ra=["pg","mysql","mssql","mongodb"],Q=N(ra,{message:"Invalid database type"}),Ua=y.extend({dbType:Q}),Ma=o({dbType:Q}),ia=o({tableName:s("Table name is required")}),f=o({columnName:s("Column name is required"),columnType:s("Column type is required"),defaultValue:s().optional(),isPrimaryKey:h().default(!1),isNullable:h().default(!1),isUnique:h().default(!1),isIdentity:h().default(!1),isArray:h().default(!1)}),$a=o({db:y.shape.db,tableName:ia.shape.tableName,columnName:f.shape.columnName,columnType:f.shape.columnType,defaultValue:f.shape.defaultValue,isPrimaryKey:f.shape.isPrimaryKey,isNullable:f.shape.isNullable,isUnique:f.shape.isUnique,isIdentity:f.shape.isIdentity,isArray:f.shape.isArray}),Ba=o({tableName:s("Table name is required"),data:I(s("Column name is required"),D())}),Qa=y.extend({cascade:s().optional().transform(a=>a==="true")}),j=o({tableName:s("Table name is required"),columnName:s("Column name is required")}),Ha=o({db:y.shape.db,tableName:j.shape.tableName,columnName:j.shape.columnName,cascade:h().optional()}),Ya=o({message:s("Message is required"),tableName:s("Table name is required"),columnName:s("Column name is required"),deletedCount:E("Deleted count is required").default(0)}),z=o({columnType:s("Column type is required"),isNullable:h(),defaultValue:s().nullable().optional()}),Ga=o({db:y.shape.db,tableName:j.shape.tableName,columnName:j.shape.columnName,columnType:z.shape.columnType,isNullable:z.shape.isNullable,defaultValue:z.shape.defaultValue}),Ja=o({tableName:s().min(1,"Table name is required"),records:g(I(s(),D())).min(1,"At least one record is required")}),Za=o({messages:g(o({role:N(["user","assistant","system","tool"]),content:s().nullable()})),data:o({conversationId:s().optional(),db:y.shape.db})}),oa=["text","boolean","number","enum","json","date","array"],ca=N(oa),ma=["int","bigint","smallint","numeric","float","double","money","tinyint","mediumint","bit","boolean","text","varchar","char","tinytext","mediumtext","longtext","json","jsonb","xml","uuid","date","time","timestamp","timestamptz","interval","datetime","year","bytea","inet","cidr","macaddr","macaddr8","point","line","polygon","binary","varbinary","blob","tinyblob","mediumblob","longblob","array","enum","set"],da=N(ma),Wa=o({columnName:s(),dataType:ca,dataTypeLabel:da,isNullable:h(),columnDefault:s().nullable(),isPrimaryKey:h(),isForeignKey:h(),referencedTable:s().nullable(),referencedColumn:s().nullable(),enumValues:g(s()).nullable()}),ua=["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"],W=N(ua),ha=o({columnName:s("Column name is required"),columnType:s("Column type is required"),defaultValue:s().optional(),isPrimaryKey:h().default(!1),isNullable:h().default(!1),isUnique:h().default(!1),isIdentity:h().default(!1),isArray:h().default(!1)}),xa=o({columnName:s("Column name is required"),referencedTable:s("Referenced table is required"),referencedColumn:s("Referenced column is required"),onUpdate:W.default("NO ACTION"),onDelete:W.default("NO ACTION")}),Xa=o({tableName:s("Table name is required"),fields:g(ha).min(1,"At least one field is required"),foreignKeys:g(xa).optional()}),pa=o({name:s("Name is required"),size:s("Size is required"),owner:s("Owner is required"),encoding:s("Encoding is required")}),es=o({databases:g(pa),dbType:Q}),as=o({version:s("Version is required"),database:s("Database is required"),user:s("User is required"),host:s("Host is required").nullable(),port:E("Port is required").nullable(),active_connections:_("Active connections is required"),max_connections:_("Max connections is required")}),ss=o({tableName:s("Table name is required"),primaryKeys:g(o({columnName:s("Column name is required"),value:D()})).min(1,"At least one primary key is required")}),ns=y.extend({cascade:s().optional().transform(a=>a==="true")}),ls=o({query:s("Query is required")}),fa=["csv","xlsx","json"],ts=y.extend({format:N(fa,{message:"Invalid format. Supported formats: csv, xlsx, json"})}),ya=o({newColumnName:s("New column name is required")}),rs=o({db:y.shape.db,tableName:j.shape.tableName,columnName:j.shape.columnName,newColumnName:ya.shape.newColumnName}),is=o({columnName:s(),operator:s(),value:s()}),q=["asc","desc"],os=o({columnName:s(),direction:N(q)}),ba=o({limit:E(),total:E(),hasNextPage:h(),hasPreviousPage:h(),nextCursor:s().nullable(),prevCursor:s().nullable()}),cs=o({data:g(I(s(),Ze())),meta:ba}),ms=o({db:y.shape.db,cursor:s().optional(),limit:s().optional().default("50").transform(Number),direction:N(q).optional().default(q[0]),sort:s().optional().transform(a=>{if(!a)return"";try{const n=JSON.parse(a);return Array.isArray(n)?n:a}catch{return a}}),order:N(q).optional(),filters:s().optional().transform(a=>{if(!a)return[];try{return JSON.parse(a)}catch{return[]}})}),ds=o({tableName:s("Table name is required"),schemaName:s().optional(),rowCount:_("Row count is required")}),us=o({schema:s()}),hs=o({tableName:s("Table name is required"),primaryKey:s("Primary key is required").default("id"),updates:g(o({rowData:I(s("Column name is required"),D()),columnName:s("Column name is required"),value:D()},{message:"Each update must have a row data, column name, and value."})).min(1,"At least one update is required")}),Ca=a=>({...a,defaultValue:a.defaultValue?.trim()?a.defaultValue.trim():void 0}),ga=({tableName:a})=>{const n=L(),{closeSheet:c}=S(),{selectedDatabase:t}=$(),{mutateAsync:u,isPending:i}=k({mutationFn:async l=>{const r=new URLSearchParams({db:t??""});return(await B.post(`/tables/${encodeURIComponent(a)}/columns`,Ca(l),{params:r})).data.data},onSuccess:async()=>{await Promise.all([n.invalidateQueries({queryKey:[w.CACHE_KEYS.TABLE_COLUMNS,a],exact:!1}),n.invalidateQueries({queryKey:[w.CACHE_KEYS.TABLE_DATA,a],exact:!1})]),c("add-column")},onError:l=>{console.error("Error adding column:",l)}});return{addColumn:async(l,r)=>U.promise(u(l,r),{loading:"Adding column...",success:d=>d||"Column added successfully",error:d=>typeof d.details=="string"&&d.details||d.message||"Failed to add column"}),isAddingColumn:i}},Na=o({fields:xe([o({columnName:f.shape.columnName,columnType:f.shape.columnType,defaultValue:s(),isPrimaryKey:h(),isNullable:h(),isUnique:h(),isIdentity:h(),isArray:h()})])}),F={fields:[{columnName:"",columnType:"",defaultValue:"",isPrimaryKey:!1,isNullable:!0,isUnique:!1,isIdentity:!1,isArray:!1}]},va=()=>{const a=Me({control:Le().control,name:"fields.0.isPrimaryKey"});return(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{className:"grid grid-cols-4 px-2",children:[(0,e.jsx)(p,{className:"text-xs",children:"Column Name"}),(0,e.jsx)(p,{className:"text-xs",children:"Column Type"}),(0,e.jsx)(p,{className:"text-xs",children:"Default Value"}),(0,e.jsx)(p,{className:"text-xs",children:"Primary"})]}),(0,e.jsx)("div",{className:"px-2 py-3",children:(0,e.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,e.jsx)(Oe,{index:0,showForeignKeyButton:!1}),(0,e.jsx)(ie,{index:0}),(0,e.jsx)(pe,{index:0,isRequired:!1}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(Ke,{index:0}),(0,e.jsx)(Fe,{index:0,isDisabled:!!a})]})]})})]})},ja=({tableName:a})=>{const{closeSheet:n,isSheetOpen:c}=S(),{addColumn:t,isAddingColumn:u}=ga({tableName:a}),i=ne({mode:"onSubmit",defaultValues:F,resolver:le(Na)}),m=()=>{i.reset(F),n("add-column")},l=async r=>{await t(r.fields[0]),i.reset(F)};return(0,e.jsx)(me,{title:"Add column",description:`Add a new column to "${a}".`,open:c("add-column"),onOpenChange:r=>{r||m()},children:(0,e.jsx)(ue,{...i,children:(0,e.jsxs)("form",{onSubmit:i.handleSubmit(l),className:"space-y-6",children:[(0,e.jsx)(va,{}),(0,e.jsx)(re,{onCancel:m,isLoading:u})]})})})},H=$e()(a=>({editingColumn:null,setEditingColumn:n=>a({editingColumn:n})})),Sa=a=>({...a,defaultValue:a.defaultValue?.trim()?a.defaultValue.trim():null}),Ta=({tableName:a,columnName:n})=>{const c=L(),{closeSheet:t}=S(),{setEditingColumn:u}=H(),{selectedDatabase:i}=$(),{mutateAsync:m,isPending:l}=k({mutationFn:async d=>{const x=new URLSearchParams({db:i??""});return(await B.patch(`/tables/${encodeURIComponent(a)}/columns/${encodeURIComponent(n)}`,Sa(d),{params:x})).data.data},onSuccess:async()=>{await c.invalidateQueries({queryKey:[w.CACHE_KEYS.TABLE_COLUMNS,a],exact:!1}),u(null),t("edit-column")},onError:d=>{console.error("Error altering column:",d)}});return{alterColumn:async(d,x)=>U.promise(m(d,x),{loading:"Updating column...",success:b=>b||"Column updated successfully",error:b=>typeof b.details=="string"&&b.details||b.message||"Failed to update column"}),isAlteringColumn:l}},za=o({fields:xe([o({columnName:s(),columnType:z.shape.columnType,defaultValue:s(),isPrimaryKey:h(),isNullable:z.shape.isNullable,isUnique:h(),isIdentity:h(),isArray:h()})])}),A=a=>({fields:[{columnName:a?.columnName??"",columnType:a?.dataTypeLabel??"",defaultValue:a?.columnDefault??"",isPrimaryKey:!1,isNullable:a?.isNullable??!0,isUnique:!1,isIdentity:!1,isArray:a?.dataType==="array"}]}),Da=({tableName:a})=>{const{closeSheet:n,isSheetOpen:c}=S(),{editingColumn:t,setEditingColumn:u}=H(),i=ne({mode:"onSubmit",defaultValues:A(null),resolver:le(za)}),{alterColumn:m,isAlteringColumn:l}=Ta({tableName:a,columnName:t?.columnName??""});(0,C.useEffect)(()=>{i.reset(A(t))},[t,i]);const r=()=>{u(null),i.reset(A(null)),n("edit-column")},d=async x=>{await m({columnType:x.fields[0].columnType,isNullable:x.fields[0].isNullable,defaultValue:x.fields[0].defaultValue}),i.reset(A(null))};return(0,e.jsx)(me,{title:t?`Edit ${t.columnName}`:"Edit column",description:t?`Update the type, nullability, and default value for "${t.columnName}".`:"Update the selected column.",open:c("edit-column"),onOpenChange:x=>{x||r()},children:(0,e.jsx)(ue,{...i,children:(0,e.jsxs)("form",{onSubmit:i.handleSubmit(d),className:"space-y-6",children:[(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(p,{htmlFor:"edit-column-name",children:"Column name"}),(0,e.jsx)(O,{id:"edit-column-name",value:t?.columnName??"",readOnly:!0,disabled:!0})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(p,{children:"Column type"}),(0,e.jsx)(ie,{index:0})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(p,{children:"Default value"}),(0,e.jsx)(pe,{index:0,isRequired:!1})]}),(0,e.jsx)(Ve,{control:i.control,name:"fields.0.isNullable",render:({field:x})=>(0,e.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-zinc-800 px-3 py-3",children:[(0,e.jsx)(se,{id:"edit-column-nullable",checked:!!x.value,onCheckedChange:b=>x.onChange(b===!0)}),(0,e.jsxs)("div",{className:"space-y-1",children:[(0,e.jsx)(p,{htmlFor:"edit-column-nullable",className:"cursor-pointer",children:"Nullable"}),(0,e.jsx)("p",{className:"text-xs text-muted-foreground",children:"Allow this column to store NULL values."})]})]})})]}),(0,e.jsx)(re,{onCancel:r,isLoading:l})]})})})},wa=({tableName:a,columnName:n})=>{const c=L(),{selectedDatabase:t}=$(),{mutateAsync:u,isPending:i}=k({mutationFn:async l=>{const r=new URLSearchParams({db:t??""});return(await B.patch(`/tables/${encodeURIComponent(a)}/columns/${encodeURIComponent(n)}/rename`,l,{params:r})).data.data},onSuccess:async()=>{await Promise.all([c.invalidateQueries({queryKey:[w.CACHE_KEYS.TABLE_COLUMNS,a],exact:!1}),c.invalidateQueries({queryKey:[w.CACHE_KEYS.TABLE_DATA,a],exact:!1})])},onError:l=>{console.error("Error renaming column:",l)}});return{renameColumn:async(l,r)=>U.promise(u(l,r),{loading:"Renaming column...",success:d=>d||"Column renamed successfully",error:d=>typeof d.details=="string"&&d.details||d.message||"Failed to rename column"}),isRenamingColumn:i}},Aa=({col:a,tableName:n})=>{const{openSheet:c}=S(),{setEditingColumn:t}=H(),{renameColumn:u,isRenamingColumn:i}=wa({tableName:n,columnName:a.columnName}),{deleteColumn:m,isDeletingColumn:l}=We(),[r,d]=(0,C.useState)(!1),[x,b]=(0,C.useState)(!1),[Y,G]=(0,C.useState)(a.columnName),[J,Z]=(0,C.useState)(!1),Ce=()=>{t(a),c("edit-column")},P=T=>{d(T),T||G(a.columnName)},V=T=>{b(T),T||Z(!1)},ge=async()=>{await u({newColumnName:Y.trim()}),P(!1)},Ne=async()=>{await m({db:"",tableName:n,columnName:a.columnName,cascade:J}),V(!1)};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(Ue,{children:[(0,e.jsx)(_e,{asChild:!0,children:(0,e.jsx)(v,{variant:"ghost",size:"icon-sm",children:(0,e.jsx)(De,{className:"size-4"})})}),(0,e.jsx)(Qe,{align:"end",className:"w-48",children:(0,e.jsxs)(Pe,{children:[(0,e.jsxs)(K,{onClick:Ce,children:[(0,e.jsx)(Te,{className:"size-4"}),"Edit Column"]}),(0,e.jsxs)(K,{onClick:()=>P(!0),children:[(0,e.jsx)(Ae,{className:"size-4"}),"Rename Column"]}),(0,e.jsx)(ke,{}),(0,e.jsxs)(K,{variant:"destructive",onClick:()=>V(!0),children:[(0,e.jsx)(ze,{className:"size-4"}),"Drop Column"]})]})})]}),(0,e.jsx)(qa,{columnName:a.columnName,newColumnName:Y,setNewColumnName:G,isOpen:r,onOpenChange:P,onRename:ge,isRenaming:i}),(0,e.jsx)(Ra,{columnName:a.columnName,isOpen:x,onOpenChange:V,cascadeDelete:J,setCascadeDelete:Z,onDrop:Ne,isDropping:l})]})},qa=({columnName:a,newColumnName:n,setNewColumnName:c,isOpen:t,onOpenChange:u,onRename:i,isRenaming:m})=>{const l=!n.trim()||n.trim()===a;return(0,e.jsx)(oe,{open:t,onOpenChange:u,children:(0,e.jsxs)(ce,{className:"max-w-md",children:[(0,e.jsxs)(de,{children:[(0,e.jsx)(he,{children:"Rename Column"}),(0,e.jsx)(te,{children:"Update the column name while keeping the rest of the schema unchanged."})]}),(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(p,{htmlFor:"current-column-name",children:"Current name"}),(0,e.jsx)(O,{id:"current-column-name",value:a,readOnly:!0,disabled:!0})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)(p,{htmlFor:"new-column-name",children:"New name"}),(0,e.jsx)(O,{id:"new-column-name",value:n,onChange:r=>c(r.target.value),placeholder:"column_name",autoFocus:!0})]})]}),(0,e.jsxs)(ae,{className:"gap-2",children:[(0,e.jsx)(v,{variant:"outline",onClick:()=>u(!1),disabled:m,children:"Cancel"}),(0,e.jsx)(v,{onClick:i,disabled:l||m,children:m?"Renaming...":"Rename Column"})]})]})})},Ra=({columnName:a,isOpen:n,onOpenChange:c,cascadeDelete:t,setCascadeDelete:u,onDrop:i,isDropping:m})=>(0,e.jsx)(oe,{open:n,onOpenChange:c,children:(0,e.jsxs)(ce,{className:"max-w-md",children:[(0,e.jsxs)(de,{children:[(0,e.jsx)(he,{children:"Drop Column"}),(0,e.jsxs)(te,{children:["Are you sure you want to drop the column"," ",(0,e.jsxs)("span",{className:"font-semibold text-foreground",children:['"',a,'"']}),"? This action cannot be undone and permanently removes the data stored in it."]})]}),(0,e.jsxs)("div",{className:"flex gap-3 rounded-lg border border-zinc-800 px-3 py-3",children:[(0,e.jsx)(se,{id:`drop-column-cascade-${a}`,checked:t,onCheckedChange:l=>u(l===!0)}),(0,e.jsxs)("div",{className:"space-y-1",children:[(0,e.jsx)(p,{htmlFor:`drop-column-cascade-${a}`,className:"cursor-pointer",children:"Drop with CASCADE"}),(0,e.jsx)("p",{className:"text-xs text-muted-foreground",children:"Also remove dependent indexes, constraints, and foreign key references."})]})]}),(0,e.jsxs)(ae,{className:"gap-2",children:[(0,e.jsx)(v,{variant:"outline",onClick:()=>c(!1),disabled:m,children:"Cancel"}),(0,e.jsx)(v,{variant:"destructive",onClick:i,disabled:m,children:m?"Dropping...":"Drop Column"})]})]})}),Ea=({tableName:a,refetch:n,isRefetching:c=!1})=>{const{openSheet:t}=S();return(0,e.jsxs)("header",{className:"max-h-8 overflow-hidden border-b border-zinc-800 w-full flex items-center bg-black sticky top-0 left-0 right-0 z-0",children:[(0,e.jsx)(v,{type:"button",variant:"ghost",className:"size-8! aspect-square border-x-0 border-y-0 border-zinc-800 rounded-none",onClick:()=>{n()},"aria-label":`Refetch schema for ${a}`,disabled:c,children:(0,e.jsx)(qe,{className:"size-4"})}),(0,e.jsxs)(v,{type:"button",variant:"default",className:"h-8! border-l border-y-0 border-r-0 border-zinc-800 rounded-none flex items-center gap-2",onClick:()=>t("add-column"),children:[(0,e.jsx)(we,{className:"size-4"}),"Add Column"]})]})},Ia=({col:a})=>a.dataTypeLabel==="enum"&&a.enumValues&&a.enumValues.length>0?(0,e.jsxs)(be,{children:[(0,e.jsx)(fe,{asChild:!0,children:(0,e.jsx)(R,{variant:"outline",className:"font-mono cursor-default truncate",children:a.dataTypeLabel})}),(0,e.jsx)(ye,{side:"right",children:(0,e.jsxs)("div",{className:"text-xs space-y-0.5",children:[(0,e.jsx)("p",{className:"text-zinc-400 mb-1",children:"Enum values:"}),a.enumValues.map(n=>(0,e.jsx)("p",{className:"font-mono",children:n},n))]})})]}):(0,e.jsx)(R,{variant:"outline",className:"font-mono",children:a.dataTypeLabel}),Pa=({tableName:a})=>{const{tableCols:n,isLoadingTableCols:c,isRefetchingTableCols:t,errorTableCols:u,refetchTableCols:i}=Je({tableName:a}),m=(0,C.useMemo)(()=>[{id:"index",header:"",cell:({row:l})=>(0,e.jsx)("span",{className:"text-xs text-zinc-600",children:l.index+1}),size:47,minSize:47,enableResizing:!1},{id:"columnName",header:"Name",accessorKey:"columnName",cell:({getValue:l})=>(0,e.jsx)("span",{className:"font-mono text-zinc-100 truncate",children:l()}),minSize:100,size:200},{id:"dataTypeLabel",header:"Type",cell:({row:l})=>(0,e.jsx)(Ia,{col:l.original}),size:100,minSize:100},{id:"columnDefault",header:"Default",accessorKey:"columnDefault",cell:({getValue:l})=>{const r=l();return r?(0,e.jsx)("span",{className:"font-mono text-xs text-zinc-400 truncate",children:r}):(0,e.jsx)("span",{className:"text-zinc-600",children:"—"})},minSize:100,size:180},{id:"isNullable",header:"Nullable",accessorKey:"isNullable",cell:({getValue:l})=>l()?(0,e.jsx)("span",{className:"text-xs text-zinc-400",children:"yes"}):(0,e.jsx)("span",{className:"text-xs text-zinc-600",children:"no"}),minSize:100},{id:"key",header:"Key",cell:({row:l})=>{const{isPrimaryKey:r,isForeignKey:d}=l.original;return(0,e.jsxs)("div",{className:"flex items-center gap-1",children:[r&&(0,e.jsx)(R,{variant:"default",className:"text-[0.6rem] px-1.5",children:"PK"}),d&&(0,e.jsx)(R,{variant:"secondary",className:"text-[0.6rem] px-1.5",children:"FK"})]})},minSize:100,size:90},{id:"references",header:"References",cell:({row:l})=>{const{isForeignKey:r,referencedTable:d,referencedColumn:x}=l.original;return!r||!d||!x?(0,e.jsx)("span",{className:"text-zinc-600",children:"—"}):(0,e.jsxs)(be,{children:[(0,e.jsx)(fe,{asChild:!0,children:(0,e.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-zinc-400 cursor-default",children:[(0,e.jsx)(Ee,{className:"size-3 text-zinc-600"}),(0,e.jsxs)("span",{className:"font-mono",children:[d,".",x]})]})}),(0,e.jsx)(ye,{side:"left",children:(0,e.jsxs)("p",{children:["References"," ",(0,e.jsxs)("span",{className:"font-mono font-medium",children:[d,".",x]})]})})]})},size:220,minSize:100},{id:"actions",header:"",cell:({row:l})=>(0,e.jsx)("div",{className:"flex justify-center items-center",children:(0,e.jsx)(Aa,{col:l.original,tableName:a})}),size:50,enableResizing:!1}],[a]);return c?(0,e.jsx)("div",{className:"size-full flex items-center justify-center",children:(0,e.jsx)(Be,{size:"size-7"})}):u?(0,e.jsxs)("div",{className:"size-full flex flex-col items-center justify-center gap-2",children:[(0,e.jsx)("div",{className:"text-sm font-medium",children:"Failed to load schema"}),(0,e.jsx)("div",{className:"text-sm text-muted-foreground",children:u.message})]}):(0,e.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden",children:[(0,e.jsx)(Ea,{tableName:a,refetch:i,isRefetching:t}),(0,e.jsx)(ta,{columns:m,data:n??[]}),(0,e.jsx)(ja,{tableName:a}),(0,e.jsx)(Da,{tableName:a})]})};function xs(){const{table:a}=Ge.useParams();return(0,e.jsx)("main",{className:"flex-1 flex flex-col overflow-hidden",children:(0,e.jsx)(Pa,{tableName:a})})}export{xs as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function ve(e){var t,o,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(t=0;t<n;t++)e[t]&&(o=ve(e[t]))&&(r&&(r+=" "),r+=o)}else for(o in e)e[o]&&(r&&(r+=" "),r+=o);return r}function vr(){for(var e,t,o=0,r="",n=arguments.length;o<n;o++)(e=arguments[o])&&(t=ve(e))&&(r&&(r+=" "),r+=t);return r}var Pe=(e,t)=>{const o=new Array(e.length+t.length);for(let r=0;r<e.length;r++)o[r]=e[r];for(let r=0;r<t.length;r++)o[e.length+r]=t[r];return o},Te=(e,t)=>({classGroupId:e,validator:t}),we=(e=new Map,t=null,o)=>({nextPart:e,validators:t,classGroupId:o}),K="-",ue=[],Oe="arbitrary..",je=e=>{const t=Ne(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return Ee(i);const u=i.split(K);return xe(u,u[0]===""&&u.length>1?1:0,t)},getConflictingClassGroupIds:(i,u)=>{if(u){const l=r[i],f=o[i];return l?f?Pe(f,l):l:f||ue}return o[i]||ue}}},xe=(e,t,o)=>{if(e.length-t===0)return o.classGroupId;const r=e[t],n=o.nextPart.get(r);if(n){const l=xe(e,t+1,n);if(l)return l}const d=o.validators;if(d===null)return;const i=t===0?e.join(K):e.slice(t).join(K),u=d.length;for(let l=0;l<u;l++){const f=d[l];if(f.validator(i))return f.classGroupId}},Ee=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),o=t.indexOf(":"),r=t.slice(0,o);return r?Oe+r:void 0})(),Ne=e=>{const{theme:t,classGroups:o}=e;return Le(o,t)},Le=(e,t)=>{const o=we();for(const r in e){const n=e[r];ae(n,o,r,t)}return o},ae=(e,t,o,r)=>{const n=e.length;for(let d=0;d<n;d++){const i=e[d];Ve(i,t,o,r)}},Ve=(e,t,o,r)=>{if(typeof e=="string"){Fe(e,t,o);return}if(typeof e=="function"){_e(e,t,o,r);return}We(e,t,o,r)},Fe=(e,t,o)=>{const r=e===""?t:ke(t,e);r.classGroupId=o},_e=(e,t,o,r)=>{if(Be(e)){ae(e(r),t,o,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Te(o,e))},We=(e,t,o,r)=>{const n=Object.entries(e),d=n.length;for(let i=0;i<d;i++){const[u,l]=n[i];ae(l,ke(t,u),o,r)}},ke=(e,t)=>{let o=e;const r=t.split(K),n=r.length;for(let d=0;d<n;d++){const i=r[d];let u=o.nextPart.get(i);u||(u=we(),o.nextPart.set(i,u)),o=u}return o},Be=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,$e=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,o=Object.create(null),r=Object.create(null);const n=(d,i)=>{o[d]=i,t++,t>e&&(t=0,r=o,o=Object.create(null))};return{get(d){let i=o[d];if(i!==void 0)return i;if((i=r[d])!==void 0)return n(d,i),i},set(d,i){d in o?o[d]=i:n(d,i)}}},te="!",fe=":",Ue=[],be=(e,t,o,r,n)=>({modifiers:e,hasImportantModifier:t,baseClassName:o,maybePostfixModifierPosition:r,isExternal:n}),De=e=>{const{prefix:t,experimentalParseClassName:o}=e;let r=n=>{const d=[];let i=0,u=0,l=0,f;const v=n.length;for(let k=0;k<v;k++){const w=n[k];if(i===0&&u===0){if(w===fe){d.push(n.slice(l,k)),l=k+1;continue}if(w==="/"){f=k;continue}}w==="["?i++:w==="]"?i--:w==="("?u++:w===")"&&u--}const z=d.length===0?n:n.slice(l);let y=z,M=!1;z.endsWith(te)?(y=z.slice(0,-1),M=!0):z.startsWith(te)&&(y=z.slice(1),M=!0);const I=f&&f>l?f-l:void 0;return be(d,M,y,I)};if(t){const n=t+fe,d=r;r=i=>i.startsWith(n)?d(i.slice(n.length)):be(Ue,!1,i,void 0,!0)}if(o){const n=r;r=d=>o({className:d,parseClassName:n})}return r},Ye=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((o,r)=>{t.set(o,1e6+r)}),o=>{const r=[];let n=[];for(let d=0;d<o.length;d++){const i=o[d],u=i[0]==="[",l=t.has(i);u||l?(n.length>0&&(n.sort(),r.push(...n),n=[]),r.push(i)):n.push(i)}return n.length>0&&(n.sort(),r.push(...n)),r}},qe=e=>({cache:$e(e.cacheSize),parseClassName:De(e),sortModifiers:Ye(e),...je(e)}),Xe=/\s+/,Je=(e,t)=>{const{parseClassName:o,getClassGroupId:r,getConflictingClassGroupIds:n,sortModifiers:d}=t,i=[],u=e.trim().split(Xe);let l="";for(let f=u.length-1;f>=0;f-=1){const v=u[f],{isExternal:z,modifiers:y,hasImportantModifier:M,baseClassName:I,maybePostfixModifierPosition:k}=o(v);if(z){l=v+(l.length>0?" "+l:l);continue}let w=!!k,G=r(w?I.substring(0,k):I);if(!G){if(!w){l=v+(l.length>0?" "+l:l);continue}if(G=r(I),!G){l=v+(l.length>0?" "+l:l);continue}w=!1}const $=y.length===0?"":y.length===1?y[0]:d(y).join(":"),_=M?$+te:$,j=_+G;if(i.indexOf(j)>-1)continue;i.push(j);const E=n(G,w);for(let P=0;P<E.length;++P){const W=E[P];i.push(_+W)}l=v+(l.length>0?" "+l:l)}return l},He=(...e)=>{let t=0,o,r,n="";for(;t<e.length;)(o=e[t++])&&(r=ye(o))&&(n&&(n+=" "),n+=r);return n},ye=e=>{if(typeof e=="string")return e;let t,o="";for(let r=0;r<e.length;r++)e[r]&&(t=ye(e[r]))&&(o&&(o+=" "),o+=t);return o},Ke=(e,...t)=>{let o,r,n,d;const i=l=>(o=qe(t.reduce((f,v)=>v(f),e())),r=o.cache.get,n=o.cache.set,d=u,u(l)),u=l=>{const f=r(l);if(f)return f;const v=Je(l,o);return n(l,v),v};return d=i,(...l)=>d(He(...l))},Qe=[],b=e=>{const t=o=>o[e]||Qe;return t.isThemeGetter=!0,t},ze=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ce=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ze=/^\d+\/\d+$/,er=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,rr=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,or=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,tr=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ar=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,L=e=>Ze.test(e),p=e=>!!e&&!Number.isNaN(Number(e)),R=e=>!!e&&Number.isInteger(Number(e)),re=e=>e.endsWith("%")&&p(e.slice(0,-1)),S=e=>er.test(e),sr=()=>!0,nr=e=>rr.test(e)&&!or.test(e),Ae=()=>!1,ir=e=>tr.test(e),lr=e=>ar.test(e),cr=e=>!a(e)&&!s(e),dr=e=>V(e,Me,Ae),a=e=>ze.test(e),O=e=>V(e,Ie,nr),oe=e=>V(e,br,p),ge=e=>V(e,Se,Ae),mr=e=>V(e,Re,lr),J=e=>V(e,Ge,ir),s=e=>Ce.test(e),B=e=>F(e,Ie),pr=e=>F(e,gr),he=e=>F(e,Se),ur=e=>F(e,Me),fr=e=>F(e,Re),H=e=>F(e,Ge,!0),V=(e,t,o)=>{const r=ze.exec(e);return r?r[1]?t(r[1]):o(r[2]):!1},F=(e,t,o=!1)=>{const r=Ce.exec(e);return r?r[1]?t(r[1]):o:!1},Se=e=>e==="position"||e==="percentage",Re=e=>e==="image"||e==="url",Me=e=>e==="length"||e==="size"||e==="bg-size",Ie=e=>e==="length",br=e=>e==="number",gr=e=>e==="family-name",Ge=e=>e==="shadow",hr=()=>{const e=b("color"),t=b("font"),o=b("text"),r=b("font-weight"),n=b("tracking"),d=b("leading"),i=b("breakpoint"),u=b("container"),l=b("spacing"),f=b("radius"),v=b("shadow"),z=b("inset-shadow"),y=b("text-shadow"),M=b("drop-shadow"),I=b("blur"),k=b("perspective"),w=b("aspect"),G=b("ease"),$=b("animate"),_=()=>["auto","avoid","all","avoid-page","page","left","right","column"],j=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],E=()=>[...j(),s,a],P=()=>["auto","hidden","clip","visible","scroll"],W=()=>["auto","contain","none"],m=()=>[s,a,l],C=()=>[L,"full","auto",...m()],se=()=>[R,"none","subgrid",s,a],ne=()=>["auto",{span:["full",R,s,a]},R,s,a],U=()=>[R,"auto",s,a],ie=()=>["auto","min","max","fr",s,a],Q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],N=()=>["start","end","center","stretch","center-safe","end-safe"],A=()=>["auto",...m()],T=()=>[L,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...m()],c=()=>[e,s,a],le=()=>[...j(),he,ge,{position:[s,a]}],ce=()=>["no-repeat",{repeat:["","x","y","space","round"]}],de=()=>["auto","cover","contain",ur,dr,{size:[s,a]}],Z=()=>[re,B,O],h=()=>["","none","full",f,s,a],x=()=>["",p,B,O],D=()=>["solid","dashed","dotted","double"],me=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],g=()=>[p,re,he,ge],pe=()=>["","none",I,s,a],Y=()=>["none",p,s,a],q=()=>["none",p,s,a],ee=()=>[p,s,a],X=()=>[L,"full",...m()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[S],breakpoint:[S],color:[sr],container:[S],"drop-shadow":[S],ease:["in","out","in-out"],font:[cr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[S],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[S],shadow:[S],spacing:["px",p],text:[S],"text-shadow":[S],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",L,a,s,w]}],container:["container"],columns:[{columns:[p,a,s,u]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:E()}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:W()}],"overscroll-x":[{"overscroll-x":W()}],"overscroll-y":[{"overscroll-y":W()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{start:C()}],end:[{end:C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:["visible","invisible","collapse"],z:[{z:[R,"auto",s,a]}],basis:[{basis:[L,"full","auto",u,...m()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[p,L,"auto","initial","none",a]}],grow:[{grow:["",p,s,a]}],shrink:[{shrink:["",p,s,a]}],order:[{order:[R,"first","last","none",s,a]}],"grid-cols":[{"grid-cols":se()}],"col-start-end":[{col:ne()}],"col-start":[{"col-start":U()}],"col-end":[{"col-end":U()}],"grid-rows":[{"grid-rows":se()}],"row-start-end":[{row:ne()}],"row-start":[{"row-start":U()}],"row-end":[{"row-end":U()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ie()}],"auto-rows":[{"auto-rows":ie()}],gap:[{gap:m()}],"gap-x":[{"gap-x":m()}],"gap-y":[{"gap-y":m()}],"justify-content":[{justify:[...Q(),"normal"]}],"justify-items":[{"justify-items":[...N(),"normal"]}],"justify-self":[{"justify-self":["auto",...N()]}],"align-content":[{content:["normal",...Q()]}],"align-items":[{items:[...N(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...N(),{baseline:["","last"]}]}],"place-content":[{"place-content":Q()}],"place-items":[{"place-items":[...N(),"baseline"]}],"place-self":[{"place-self":["auto",...N()]}],p:[{p:m()}],px:[{px:m()}],py:[{py:m()}],ps:[{ps:m()}],pe:[{pe:m()}],pt:[{pt:m()}],pr:[{pr:m()}],pb:[{pb:m()}],pl:[{pl:m()}],m:[{m:A()}],mx:[{mx:A()}],my:[{my:A()}],ms:[{ms:A()}],me:[{me:A()}],mt:[{mt:A()}],mr:[{mr:A()}],mb:[{mb:A()}],ml:[{ml:A()}],"space-x":[{"space-x":m()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":m()}],"space-y-reverse":["space-y-reverse"],size:[{size:T()}],w:[{w:[u,"screen",...T()]}],"min-w":[{"min-w":[u,"screen","none",...T()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[i]},...T()]}],h:[{h:["screen","lh",...T()]}],"min-h":[{"min-h":["screen","lh","none",...T()]}],"max-h":[{"max-h":["screen","lh",...T()]}],"font-size":[{text:["base",o,B,O]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,s,oe]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",re,a]}],"font-family":[{font:[pr,a,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,s,a]}],"line-clamp":[{"line-clamp":[p,"none",s,oe]}],leading:[{leading:[d,...m()]}],"list-image":[{"list-image":["none",s,a]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",s,a]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:c()}],"text-color":[{text:c()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...D(),"wavy"]}],"text-decoration-thickness":[{decoration:[p,"from-font","auto",s,O]}],"text-decoration-color":[{decoration:c()}],"underline-offset":[{"underline-offset":[p,"auto",s,a]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:m()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",s,a]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",s,a]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:le()}],"bg-repeat":[{bg:ce()}],"bg-size":[{bg:de()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},R,s,a],radial:["",s,a],conic:[R,s,a]},fr,mr]}],"bg-color":[{bg:c()}],"gradient-from-pos":[{from:Z()}],"gradient-via-pos":[{via:Z()}],"gradient-to-pos":[{to:Z()}],"gradient-from":[{from:c()}],"gradient-via":[{via:c()}],"gradient-to":[{to:c()}],rounded:[{rounded:h()}],"rounded-s":[{"rounded-s":h()}],"rounded-e":[{"rounded-e":h()}],"rounded-t":[{"rounded-t":h()}],"rounded-r":[{"rounded-r":h()}],"rounded-b":[{"rounded-b":h()}],"rounded-l":[{"rounded-l":h()}],"rounded-ss":[{"rounded-ss":h()}],"rounded-se":[{"rounded-se":h()}],"rounded-ee":[{"rounded-ee":h()}],"rounded-es":[{"rounded-es":h()}],"rounded-tl":[{"rounded-tl":h()}],"rounded-tr":[{"rounded-tr":h()}],"rounded-br":[{"rounded-br":h()}],"rounded-bl":[{"rounded-bl":h()}],"border-w":[{border:x()}],"border-w-x":[{"border-x":x()}],"border-w-y":[{"border-y":x()}],"border-w-s":[{"border-s":x()}],"border-w-e":[{"border-e":x()}],"border-w-t":[{"border-t":x()}],"border-w-r":[{"border-r":x()}],"border-w-b":[{"border-b":x()}],"border-w-l":[{"border-l":x()}],"divide-x":[{"divide-x":x()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":x()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...D(),"hidden","none"]}],"divide-style":[{divide:[...D(),"hidden","none"]}],"border-color":[{border:c()}],"border-color-x":[{"border-x":c()}],"border-color-y":[{"border-y":c()}],"border-color-s":[{"border-s":c()}],"border-color-e":[{"border-e":c()}],"border-color-t":[{"border-t":c()}],"border-color-r":[{"border-r":c()}],"border-color-b":[{"border-b":c()}],"border-color-l":[{"border-l":c()}],"divide-color":[{divide:c()}],"outline-style":[{outline:[...D(),"none","hidden"]}],"outline-offset":[{"outline-offset":[p,s,a]}],"outline-w":[{outline:["",p,B,O]}],"outline-color":[{outline:c()}],shadow:[{shadow:["","none",v,H,J]}],"shadow-color":[{shadow:c()}],"inset-shadow":[{"inset-shadow":["none",z,H,J]}],"inset-shadow-color":[{"inset-shadow":c()}],"ring-w":[{ring:x()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:c()}],"ring-offset-w":[{"ring-offset":[p,O]}],"ring-offset-color":[{"ring-offset":c()}],"inset-ring-w":[{"inset-ring":x()}],"inset-ring-color":[{"inset-ring":c()}],"text-shadow":[{"text-shadow":["none",y,H,J]}],"text-shadow-color":[{"text-shadow":c()}],opacity:[{opacity:[p,s,a]}],"mix-blend":[{"mix-blend":[...me(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":me()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[p]}],"mask-image-linear-from-pos":[{"mask-linear-from":g()}],"mask-image-linear-to-pos":[{"mask-linear-to":g()}],"mask-image-linear-from-color":[{"mask-linear-from":c()}],"mask-image-linear-to-color":[{"mask-linear-to":c()}],"mask-image-t-from-pos":[{"mask-t-from":g()}],"mask-image-t-to-pos":[{"mask-t-to":g()}],"mask-image-t-from-color":[{"mask-t-from":c()}],"mask-image-t-to-color":[{"mask-t-to":c()}],"mask-image-r-from-pos":[{"mask-r-from":g()}],"mask-image-r-to-pos":[{"mask-r-to":g()}],"mask-image-r-from-color":[{"mask-r-from":c()}],"mask-image-r-to-color":[{"mask-r-to":c()}],"mask-image-b-from-pos":[{"mask-b-from":g()}],"mask-image-b-to-pos":[{"mask-b-to":g()}],"mask-image-b-from-color":[{"mask-b-from":c()}],"mask-image-b-to-color":[{"mask-b-to":c()}],"mask-image-l-from-pos":[{"mask-l-from":g()}],"mask-image-l-to-pos":[{"mask-l-to":g()}],"mask-image-l-from-color":[{"mask-l-from":c()}],"mask-image-l-to-color":[{"mask-l-to":c()}],"mask-image-x-from-pos":[{"mask-x-from":g()}],"mask-image-x-to-pos":[{"mask-x-to":g()}],"mask-image-x-from-color":[{"mask-x-from":c()}],"mask-image-x-to-color":[{"mask-x-to":c()}],"mask-image-y-from-pos":[{"mask-y-from":g()}],"mask-image-y-to-pos":[{"mask-y-to":g()}],"mask-image-y-from-color":[{"mask-y-from":c()}],"mask-image-y-to-color":[{"mask-y-to":c()}],"mask-image-radial":[{"mask-radial":[s,a]}],"mask-image-radial-from-pos":[{"mask-radial-from":g()}],"mask-image-radial-to-pos":[{"mask-radial-to":g()}],"mask-image-radial-from-color":[{"mask-radial-from":c()}],"mask-image-radial-to-color":[{"mask-radial-to":c()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":j()}],"mask-image-conic-pos":[{"mask-conic":[p]}],"mask-image-conic-from-pos":[{"mask-conic-from":g()}],"mask-image-conic-to-pos":[{"mask-conic-to":g()}],"mask-image-conic-from-color":[{"mask-conic-from":c()}],"mask-image-conic-to-color":[{"mask-conic-to":c()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:le()}],"mask-repeat":[{mask:ce()}],"mask-size":[{mask:de()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",s,a]}],filter:[{filter:["","none",s,a]}],blur:[{blur:pe()}],brightness:[{brightness:[p,s,a]}],contrast:[{contrast:[p,s,a]}],"drop-shadow":[{"drop-shadow":["","none",M,H,J]}],"drop-shadow-color":[{"drop-shadow":c()}],grayscale:[{grayscale:["",p,s,a]}],"hue-rotate":[{"hue-rotate":[p,s,a]}],invert:[{invert:["",p,s,a]}],saturate:[{saturate:[p,s,a]}],sepia:[{sepia:["",p,s,a]}],"backdrop-filter":[{"backdrop-filter":["","none",s,a]}],"backdrop-blur":[{"backdrop-blur":pe()}],"backdrop-brightness":[{"backdrop-brightness":[p,s,a]}],"backdrop-contrast":[{"backdrop-contrast":[p,s,a]}],"backdrop-grayscale":[{"backdrop-grayscale":["",p,s,a]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[p,s,a]}],"backdrop-invert":[{"backdrop-invert":["",p,s,a]}],"backdrop-opacity":[{"backdrop-opacity":[p,s,a]}],"backdrop-saturate":[{"backdrop-saturate":[p,s,a]}],"backdrop-sepia":[{"backdrop-sepia":["",p,s,a]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":m()}],"border-spacing-x":[{"border-spacing-x":m()}],"border-spacing-y":[{"border-spacing-y":m()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",s,a]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[p,"initial",s,a]}],ease:[{ease:["linear","initial",G,s,a]}],delay:[{delay:[p,s,a]}],animate:[{animate:["none",$,s,a]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,s,a]}],"perspective-origin":[{"perspective-origin":E()}],rotate:[{rotate:Y()}],"rotate-x":[{"rotate-x":Y()}],"rotate-y":[{"rotate-y":Y()}],"rotate-z":[{"rotate-z":Y()}],scale:[{scale:q()}],"scale-x":[{"scale-x":q()}],"scale-y":[{"scale-y":q()}],"scale-z":[{"scale-z":q()}],"scale-3d":["scale-3d"],skew:[{skew:ee()}],"skew-x":[{"skew-x":ee()}],"skew-y":[{"skew-y":ee()}],transform:[{transform:[s,a,"","none","gpu","cpu"]}],"transform-origin":[{origin:E()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:X()}],"translate-x":[{"translate-x":X()}],"translate-y":[{"translate-y":X()}],"translate-z":[{"translate-z":X()}],"translate-none":["translate-none"],accent:[{accent:c()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:c()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",s,a]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":m()}],"scroll-mx":[{"scroll-mx":m()}],"scroll-my":[{"scroll-my":m()}],"scroll-ms":[{"scroll-ms":m()}],"scroll-me":[{"scroll-me":m()}],"scroll-mt":[{"scroll-mt":m()}],"scroll-mr":[{"scroll-mr":m()}],"scroll-mb":[{"scroll-mb":m()}],"scroll-ml":[{"scroll-ml":m()}],"scroll-p":[{"scroll-p":m()}],"scroll-px":[{"scroll-px":m()}],"scroll-py":[{"scroll-py":m()}],"scroll-ps":[{"scroll-ps":m()}],"scroll-pe":[{"scroll-pe":m()}],"scroll-pt":[{"scroll-pt":m()}],"scroll-pr":[{"scroll-pr":m()}],"scroll-pb":[{"scroll-pb":m()}],"scroll-pl":[{"scroll-pl":m()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",s,a]}],fill:[{fill:["none",...c()]}],"stroke-w":[{stroke:[p,B,O,oe]}],stroke:[{stroke:["none",...c()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},wr=Ke(hr);export{vr as n,wr as t};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{r as L}from"./rolldown-runtime-Bnw7wDfq.js";import{tt as f}from"./icons-CAZJbhBz.js";import{Ot as G}from"./radix-ui-B93Y7STU.js";import{_t as e,gt as g,ht as T,mt as A}from"./monaco-editor-B6TxHuqP.js";import{Dt as p}from"./index-Cw94sGcz.js";var d=L(f(),1),U=["SELECT","FROM","WHERE","INSERT","UPDATE","DELETE","CREATE","DROP","ALTER","TABLE","INDEX","VIEW","DATABASE","SCHEMA","FUNCTION","PROCEDURE","TRIGGER","AND","OR","NOT","IN","BETWEEN","LIKE","IS","NULL","JOIN","LEFT","RIGHT","INNER","OUTER","CROSS","ON","USING","GROUP","BY","HAVING","ORDER","ASC","DESC","LIMIT","OFFSET","UNION","INTERSECT","EXCEPT","AS","DISTINCT","ALL","EXISTS","CASE","WHEN","THEN","ELSE","END","WITH","RECURSIVE","PRIMARY","KEY","FOREIGN","REFERENCES","UNIQUE","CHECK","DEFAULT","CASCADE","RESTRICT","NO","ACTION","SET","CONSTRAINT","BEGIN","COMMIT","ROLLBACK","SAVEPOINT","TRANSACTION","GRANT","REVOKE","PRIVILEGES","TO","RETURNING"],D=["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%",">>","<<","+=","-=","*=","/=","&=","|=","^=","%="],b=["COUNT","SUM","AVG","MIN","MAX","COALESCE","NULLIF","CAST","CONCAT","SUBSTRING","LOWER","UPPER","TRIM","LENGTH","NOW","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","EXTRACT","DATE_TRUNC","AGE","ARRAY_AGG","JSON_BUILD_OBJECT","JSON_AGG","ROW_NUMBER","RANK","DENSE_RANK","LAG","LEAD","FIRST_VALUE","LAST_VALUE","STRING_AGG","GENERATE_SERIES"],M=["INTEGER","INT","SMALLINT","BIGINT","DECIMAL","NUMERIC","REAL","DOUBLE","PRECISION","SERIAL","BIGSERIAL","VARCHAR","CHAR","TEXT","BOOLEAN","BOOL","DATE","TIME","TIMESTAMP","TIMESTAMPTZ","INTERVAL","UUID","JSON","JSONB","ARRAY","BYTEA","INET","CIDR"],_=["SELECT","FROM","WHERE","INSERT INTO","UPDATE","DELETE FROM","CREATE TABLE","DROP TABLE","ALTER TABLE","JOIN","LEFT JOIN","RIGHT JOIN","INNER JOIN","GROUP BY","ORDER BY","HAVING","LIMIT"],B=["COUNT(*)","SUM()","AVG()","MIN()","MAX()","COALESCE()","CONCAT()","NOW()","CURRENT_DATE","CURRENT_TIMESTAMP","STRING_AGG()","ARRAY_AGG()","JSON_AGG()"],P=["INTEGER","VARCHAR","TEXT","BOOLEAN","TIMESTAMP","DATE","JSON","JSONB","UUID","SERIAL","BIGSERIAL"],x=G(),W=({initialQuery:u,queryId:l,savedQuery:R,language:I,onQueryChange:a,onUnsavedChanges:o,onExecuteQuery:S,onSaveQuery:C})=>{const m=(0,d.useRef)(null),O=(0,d.useRef)(null);return(0,d.useEffect)(()=>{if(!m.current)return;const N=[];I==="pgsql"&&(e.register({id:"pgsql"}),N.push(e.registerDocumentFormattingEditProvider("pgsql",{provideDocumentFormattingEdits:t=>{const E=t.getValue().replace(/\s+/g," ").replace(/\s*,\s*/g,`,
|
|
2
|
+
`).replace(/\b(SELECT|FROM|WHERE|JOIN|LEFT JOIN|RIGHT JOIN|INNER JOIN|GROUP BY|ORDER BY|HAVING|LIMIT|OFFSET)\b/gi,`
|
|
3
|
+
$1`).replace(/\b(AND|OR)\b/gi,`
|
|
4
|
+
$1`).trim().split(`
|
|
5
|
+
`).map(s=>{const r=s.trim();return r.startsWith("AND")||r.startsWith("OR")||/^[^A-Z]/.test(r)?` ${r}`:r}).join(`
|
|
6
|
+
`);return[{range:t.getFullModelRange(),text:E}]}})),e.setMonarchTokensProvider("pgsql",{defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,keywords:U,operators:D,builtinFunctions:b,builtinTypes:M,tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinFunctions":"predefined","@builtinTypes":"type","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]]}}),N.push(e.registerCompletionItemProvider("pgsql",{provideCompletionItems:(t,E)=>{const s=t.getWordUntilPosition(E),r={startLineNumber:E.lineNumber,endLineNumber:E.lineNumber,startColumn:s.startColumn,endColumn:s.endColumn};return{suggestions:[..._.map(i=>({label:i,kind:e.CompletionItemKind.Keyword,insertText:i,range:r})),...B.map(i=>({label:i,kind:e.CompletionItemKind.Function,insertText:i.includes("(*)")?i:i.replace("()","($0)"),insertTextRules:e.CompletionItemInsertTextRule.InsertAsSnippet,range:r})),...P.map(i=>({label:i,kind:e.CompletionItemKind.TypeParameter,insertText:i,range:r})),{label:"select-template",kind:e.CompletionItemKind.Snippet,insertText:["SELECT ${1:columns}","FROM ${2:table}","WHERE ${3:condition};"].join(`
|
|
7
|
+
`),insertTextRules:e.CompletionItemInsertTextRule.InsertAsSnippet,documentation:"SELECT statement template",range:r},{label:"create-table-template",kind:e.CompletionItemKind.Snippet,insertText:["CREATE TABLE ${1:table_name} ("," ${2:id} SERIAL PRIMARY KEY,"," ${3:column_name} ${4:VARCHAR(255)} ${5:NOT NULL},"," created_at TIMESTAMP DEFAULT NOW()",");"].join(`
|
|
8
|
+
`),insertTextRules:e.CompletionItemInsertTextRule.InsertAsSnippet,documentation:"CREATE TABLE template",range:r},{label:"insert-template",kind:e.CompletionItemKind.Snippet,insertText:["INSERT INTO ${1:table} (${2:columns})","VALUES (${3:values})","RETURNING *;"].join(`
|
|
9
|
+
`),insertTextRules:e.CompletionItemInsertTextRule.InsertAsSnippet,documentation:"INSERT statement template",range:r}]}}})));const n=g.create(m.current,{value:u,language:I,theme:"vs-dark",fontSize:14,minimap:{enabled:!1},lineNumbers:"on",roundedSelection:!0,scrollBeyondLastLine:!0,scrollbar:{horizontal:"hidden",vertical:"hidden",useShadows:!1,verticalHasArrows:!1,horizontalHasArrows:!1,arrowSize:0},automaticLayout:!0,tabSize:4,insertSpaces:!0,wordWrap:"on",folding:!0,bracketPairColorization:{enabled:!0},suggest:{showKeywords:!0,showSnippets:!0},quickSuggestions:{other:!0,comments:!1,strings:!1}});O.current=n,n.addCommand(T.CtrlCmd|A.Enter,()=>{const t=n.getValue();if(!t.trim()){p.error("Query is empty!");return}S(t)}),n.addCommand(T.CtrlCmd|T.Shift|A.KeyF,()=>{n.trigger("keyboard","editor.action.formatDocument",{}),p.success("Query formatted")}),n.addCommand(T.CtrlCmd|A.KeyS,()=>{C()}),a(n.getValue()),o(l?n.getValue()!==R:!1);const c=n.onDidChangeModelContent(()=>{const t=n.getValue();if(a(t),!l){o(!1);return}o(t!==R)});return()=>{for(const t of N)t.dispose();c.dispose(),n.dispose()}},[u,l,R,I,a,o,S]),(0,x.jsx)("div",{ref:m,className:"flex-1 min-h-0 overflow-y-scroll"})};export{W as CodeEditor};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as ge}from"./rolldown-runtime-Bnw7wDfq.js";import{o as xe,s as ve}from"./tanstack-COAHM0pn.js";import{J as Te,M as be,W as je,b as Se,c as Ce,et as ye,m as we,t as Ne,tt as ke}from"./icons-CAZJbhBz.js";import{Ct as J,F as Re,I as Ee,Ot as Ae,P as Le,Tt as Be}from"./radix-ui-B93Y7STU.js";import{Ct as W,G as De,K as Ie,Tt as w,W as Pe,b as _e,ct as ze,gt as Me,ot as Fe,q as Ue}from"./index-Cw94sGcz.js";import{r as ee}from"./chunk-BO2N2NFS-CtrFqJix.js";import{n as Oe,t as qe}from"./scroll-area-DIT4iXSA.js";import{i as Ge,n as We,t as He}from"./tooltip-BPnX8rwL.js";import{t as te}from"./use-rate-limit-JM72I-Qe.js";var Ke=["Show me all tables in my database","What columns are in the users table?","Write a query to find all active users","How many orders were placed last month?","Find top 5 customers by total spend","Write a JOIN between users and orders","Users who haven't made any purchase yet","Generate monthly revenue summary query","Suggest useful indexes for better performance","Show schema of the products / inventory table","Latest 20 orders with customer names","Help me write a safe UPDATE query"],s=ge(ke(),1),Je={damping:.7,stiffness:.05,mass:1.25},Ve=70,Xe=1e3/60,Ye=350,F=!1;globalThis.document?.addEventListener("mousedown",()=>{F=!0});globalThis.document?.addEventListener("mouseup",()=>{F=!1});globalThis.document?.addEventListener("click",()=>{F=!1});var $e=(r={})=>{const[n,o]=(0,s.useState)(!1),[i,a]=(0,s.useState)(r.initial!==!1),[d,m]=(0,s.useState)(!1),x=(0,s.useRef)(null);x.current=r;const v=(0,s.useCallback)(()=>{if(!F)return!1;const l=window.getSelection();if(!l||!l.rangeCount)return!1;const c=l.getRangeAt(0);return c.commonAncestorContainer.contains(h.current)||h.current?.contains(c.commonAncestorContainer)},[]),T=(0,s.useCallback)(l=>{e.isAtBottom=l,a(l)},[]),C=(0,s.useCallback)(l=>{e.escapedFromLock=l,o(l)},[]),e=(0,s.useMemo)(()=>{let l;return{escapedFromLock:n,isAtBottom:i,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return h.current?.scrollTop??0},set scrollTop(c){h.current&&(h.current.scrollTop=c,e.ignoreScrollToTop=h.current.scrollTop)},get targetScrollTop(){return!h.current||!S.current?0:h.current.scrollHeight-1-h.current.clientHeight},get calculatedTargetScrollTop(){if(!h.current||!S.current)return 0;const{targetScrollTop:c}=this;if(!r.targetScrollTop)return c;if(l?.targetScrollTop===c)return l.calculatedScrollTop;const g=Math.max(Math.min(r.targetScrollTop(c,{scrollElement:h.current,contentElement:S.current}),c),0);return l={targetScrollTop:c,calculatedScrollTop:g},requestAnimationFrame(()=>{l=void 0}),g},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=Ve}}},[]),u=(0,s.useCallback)((l={})=>{typeof l=="string"&&(l={animation:l}),l.preserveScrollPosition||T(!0);const c=Date.now()+(Number(l.wait)||0),g=G(x.current,l.animation),{ignoreEscapes:R=!1}=l;let L,B=e.calculatedTargetScrollTop;l.duration instanceof Promise?l.duration.finally(()=>{L=Date.now()}):L=c+(l.duration??0);const E=async()=>{const _=new Promise(requestAnimationFrame).then(()=>{if(!e.isAtBottom)return e.animation=void 0,!1;const{scrollTop:D}=e,P=performance.now(),U=(P-(e.lastTick??P))/Xe;if(e.animation||(e.animation={behavior:g,promise:_,ignoreEscapes:R}),e.animation.behavior===g&&(e.lastTick=P),v()||c>Date.now())return E();if(D<Math.min(B,e.calculatedTargetScrollTop)){if(e.animation?.behavior===g){if(g==="instant")return e.scrollTop=e.calculatedTargetScrollTop,E();e.velocity=(g.damping*e.velocity+g.stiffness*e.scrollDifference)/g.mass,e.accumulated+=e.velocity*U,e.scrollTop+=e.accumulated,e.scrollTop!==D&&(e.accumulated=0)}return E()}return L>Date.now()?(B=e.calculatedTargetScrollTop,E()):(e.animation=void 0,e.scrollTop<e.calculatedTargetScrollTop?u({animation:G(x.current,x.current.resize),ignoreEscapes:R,duration:Math.max(0,L-Date.now())||void 0}):e.isAtBottom)});return _.then(D=>(requestAnimationFrame(()=>{e.animation||(e.lastTick=void 0,e.velocity=0)}),D))};return l.wait!==!0&&(e.animation=void 0),e.animation?.behavior===g?e.animation.promise:E()},[T,v,e]),N=(0,s.useCallback)(()=>{C(!0),T(!1)},[C,T]),k=(0,s.useCallback)(({target:l})=>{if(l!==h.current)return;const{scrollTop:c,ignoreScrollToTop:g}=e;let{lastScrollTop:R=c}=e;e.lastScrollTop=c,e.ignoreScrollToTop=void 0,g&&g>c&&(R=g),m(e.isNearBottom),setTimeout(()=>{if(e.resizeDifference||c===g)return;if(v()){C(!0),T(!1);return}const L=c>R,B=c<R;if(e.animation?.ignoreEscapes){e.scrollTop=R;return}B&&(C(!0),T(!1)),L&&C(!1),!e.escapedFromLock&&e.isNearBottom&&T(!0)},1)},[C,T,v,e]),f=(0,s.useCallback)(({target:l,deltaY:c})=>{let g=l;for(;!["scroll","auto"].includes(getComputedStyle(g).overflow);){if(!g.parentElement)return;g=g.parentElement}g===h.current&&c<0&&h.current.scrollHeight>h.current.clientHeight&&!e.animation?.ignoreEscapes&&(C(!0),T(!1))},[C,T,e]),h=V(l=>{h.current?.removeEventListener("scroll",k),h.current?.removeEventListener("wheel",f),l?.addEventListener("scroll",k,{passive:!0}),l?.addEventListener("wheel",f,{passive:!0})},[]),S=V(l=>{if(e.resizeObserver?.disconnect(),!l)return;let c;e.resizeObserver=new ResizeObserver(([g])=>{const{height:R}=g.contentRect,L=R-(c??R);if(e.resizeDifference=L,e.scrollTop>e.targetScrollTop&&(e.scrollTop=e.targetScrollTop),m(e.isNearBottom),L>=0){const B=G(x.current,c?x.current.resize:x.current.initial);u({animation:B,wait:!0,preserveScrollPosition:!0,duration:B==="instant"?void 0:Ye})}else e.isNearBottom&&(C(!1),T(!0));c=R,requestAnimationFrame(()=>{setTimeout(()=>{e.resizeDifference===L&&(e.resizeDifference=0)},1)})}),e.resizeObserver?.observe(l)},[]);return{contentRef:S,scrollRef:h,scrollToBottom:u,stopScroll:N,isAtBottom:i||d,isNearBottom:d,escapedFromLock:n,state:e}};function V(r,n){const o=(0,s.useCallback)(i=>(o.current=i,r(i)),n);return o}var q=new Map;function G(...r){const n={...Je};let o=!1;for(const a of r){if(a==="instant"){o=!0;continue}typeof a=="object"&&(o=!1,n.damping=a.damping??n.damping,n.stiffness=a.stiffness??n.stiffness,n.mass=a.mass??n.mass)}const i=JSON.stringify(n);return q.has(i)||q.set(i,Object.freeze(n)),o?"instant":q.get(i)}var t=Ae(),re=(0,s.createContext)(null),Qe=typeof window<"u"?s.useLayoutEffect:s.useEffect;function M({instance:r,children:n,resize:o,initial:i,mass:a,damping:d,stiffness:m,targetScrollTop:x,contextRef:v,...T}){const C=(0,s.useRef)(null),e=$e({mass:a,damping:d,stiffness:m,resize:o,initial:i,targetScrollTop:s.useCallback((g,R)=>(c?.targetScrollTop??x)?.(g,R)??g,[x])}),{scrollRef:u,contentRef:N,scrollToBottom:k,stopScroll:f,isAtBottom:h,escapedFromLock:S,state:l}=r??e,c=(0,s.useMemo)(()=>({scrollToBottom:k,stopScroll:f,scrollRef:u,isAtBottom:h,escapedFromLock:S,contentRef:N,state:l,get targetScrollTop(){return C.current},set targetScrollTop(g){C.current=g}}),[k,h,N,u,f,S,l]);return(0,s.useImperativeHandle)(v,()=>c,[c]),Qe(()=>{u.current&&getComputedStyle(u.current).overflow==="visible"&&(u.current.style.overflow="auto")},[]),(0,t.jsx)(re.Provider,{value:c,children:(0,t.jsx)("div",{...T,children:typeof n=="function"?n(c):n})})}(function(r){function n({children:o,...i}){const a=ne();return(0,t.jsx)("div",{ref:a.scrollRef,style:{height:"100%",width:"100%"},children:(0,t.jsx)("div",{...i,ref:a.contentRef,children:typeof o=="function"?o(a):o})})}r.Content=n})(M||(M={}));function ne(){const r=(0,s.useContext)(re);if(!r)throw new Error("use-stick-to-bottom component context must be used within a StickToBottom component");return r}var Ze=({className:r,...n})=>(0,t.jsx)(M,{className:w("relative flex-1 overflow-y-hidden",r),initial:"smooth",resize:"smooth",role:"log",...n}),et=({className:r,...n})=>(0,t.jsx)(M.Content,{className:w("flex flex-col gap-8 p-4",r),...n}),tt=({className:r,...n})=>{const{isAtBottom:o,scrollToBottom:i}=ne(),a=(0,s.useCallback)(()=>{i()},[i]);return!o&&(0,t.jsx)(W,{className:w("absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full",r),onClick:a,size:"icon",type:"button",variant:"outline",...n,children:(0,t.jsx)(ye,{className:"size-4"})})},X=[{variant:"shine",component:({children:r,className:n,...o})=>(0,t.jsx)("span",{...o,className:w("bg-[linear-gradient(110deg,#bfbfbf,35%,#000,50%,#bfbfbf,75%,#bfbfbf)] dark:bg-[linear-gradient(110deg,#404040,35%,#fff,50%,#404040,75%,#404040)]","bg-size-[200%_100%] bg-clip-text text-transparent","animate-shine",n),children:r})}];function rt({variant:r="shine",className:n,...o}){const i=X.find(a=>a.variant===r)?.component||X[0].component;return(0,t.jsx)(Be,{className:w("font-medium text-sm"),children:(0,t.jsx)(i,{...o,className:n})})}var Y=({className:r,from:n,...o})=>(0,t.jsx)("div",{className:w("group flex w-full max-w-[95%] flex-col gap-2",n==="user"?"is-user ml-auto justify-end":"is-assistant",r),...o}),$=({children:r,className:n,...o})=>(0,t.jsx)("div",{className:w("is-user:dark flex w-fit max-w-full min-w-0 flex-col gap-2 overflow-hidden text-sm","group-[.is-user]:ml-auto group-[.is-user]:rounded-lg group-[.is-user]:bg-secondary group-[.is-user]:px-4 group-[.is-user]:py-3 group-[.is-user]:text-foreground","group-[.is-assistant]:text-foreground",n),...o,children:r}),se=(0,s.createContext)(null),nt=()=>{const r=(0,s.useContext)(se);if(!r)throw new Error("MessageBranch components must be used within MessageBranch");return r},Q=({defaultBranch:r=0,onBranchChange:n,className:o,...i})=>{const[a,d]=(0,s.useState)(r),[m,x]=(0,s.useState)([]),v=u=>{d(u),n?.(u)},T=()=>{v(a>0?a-1:m.length-1)},C=()=>{v(a<m.length-1?a+1:0)},e={currentBranch:a,totalBranches:m.length,goToPrevious:T,goToNext:C,branches:m,setBranches:x};return(0,t.jsx)(se.Provider,{value:e,children:(0,t.jsx)("div",{className:w("grid w-full gap-2 [&>div]:pb-0",o),...i})})},Z=({children:r,...n})=>{const{currentBranch:o,setBranches:i,branches:a}=nt(),d=Array.isArray(r)?r:[r];return(0,s.useEffect)(()=>{a.length!==d.length&&i(d)},[d,a,i]),d.map((m,x)=>(0,t.jsx)("div",{className:w("grid gap-2 overflow-hidden [&>div]:pb-0",x===o?"block":"hidden"),...n,children:m},m.key))},oe=(0,s.memo)(({className:r,...n})=>(0,t.jsx)(ee,{className:w("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",r),...n}),(r,n)=>r.children===n.children);oe.displayName="MessageResponse";var st="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",ot=(r=21)=>{let n="",o=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)n+=st[o[r]&63];return n},at=(0,s.createContext)(null),it=(0,s.createContext)(null),ae=()=>(0,s.useContext)(at),lt=()=>(0,s.useContext)(it),ie=(0,s.createContext)(null),ct=()=>{const r=lt(),n=(0,s.useContext)(ie),o=r??n;if(!o)throw new Error("usePromptInputAttachments must be used within a PromptInput or PromptInputProvider");return o},ut=({className:r,accept:n,multiple:o,globalDrop:i,syncHiddenInput:a,maxFiles:d,maxFileSize:m,onError:x,onSubmit:v,children:T,...C})=>{const e=ae(),u=!!e,N=(0,s.useRef)(null),k=(0,s.useRef)(null),[f,h]=(0,s.useState)([]),S=u?e.attachments.files:f,l=(0,s.useRef)(S);l.current=S;const c=(0,s.useCallback)(()=>{N.current?.click()},[]),g=(0,s.useCallback)(p=>!n||n.trim()===""?!0:n.split(",").map(b=>b.trim()).filter(Boolean).some(b=>{if(b.endsWith("/*")){const j=b.slice(0,-1);return p.type.startsWith(j)}return p.type===b}),[n]),R=(0,s.useCallback)(p=>{const b=Array.from(p),j=b.filter(I=>g(I));if(b.length&&j.length===0){x?.({code:"accept",message:"No files match the accepted types."});return}const y=I=>m?I.size<=m:!0,A=j.filter(y);if(j.length>0&&A.length===0){x?.({code:"max_file_size",message:"All files exceed the maximum size."});return}h(I=>{const z=typeof d=="number"?Math.max(0,d-I.length):void 0,he=typeof z=="number"?A.slice(0,z):A;typeof z=="number"&&A.length>z&&x?.({code:"max_files",message:"Too many files. Some were not added."});const K=[];for(const O of he)K.push({id:ot(),type:"file",url:URL.createObjectURL(O),mediaType:O.type,filename:O.name});return I.concat(K)})},[g,d,m,x]),L=(0,s.useCallback)(p=>h(b=>{const j=b.find(y=>y.id===p);return j?.url&&URL.revokeObjectURL(j.url),b.filter(y=>y.id!==p)}),[]),B=(0,s.useCallback)(()=>h(p=>{for(const b of p)b.url&&URL.revokeObjectURL(b.url);return[]}),[]),E=u?e.attachments.add:R,_=u?e.attachments.remove:L,D=u?e.attachments.clear:B,P=u?e.attachments.openFileDialog:c;(0,s.useEffect)(()=>{u&&e.__registerFileInput(N,()=>N.current?.click())},[u,e]),(0,s.useEffect)(()=>{a&&N.current&&S.length===0&&(N.current.value="")},[S,a]),(0,s.useEffect)(()=>{const p=k.current;if(!p||i)return;const b=y=>{y.dataTransfer?.types?.includes("Files")&&y.preventDefault()},j=y=>{y.dataTransfer?.types?.includes("Files")&&y.preventDefault(),y.dataTransfer?.files&&y.dataTransfer.files.length>0&&E(y.dataTransfer.files)};return p.addEventListener("dragover",b),p.addEventListener("drop",j),()=>{p.removeEventListener("dragover",b),p.removeEventListener("drop",j)}},[E,i]),(0,s.useEffect)(()=>{if(!i)return;const p=j=>{j.dataTransfer?.types?.includes("Files")&&j.preventDefault()},b=j=>{j.dataTransfer?.types?.includes("Files")&&j.preventDefault(),j.dataTransfer?.files&&j.dataTransfer.files.length>0&&E(j.dataTransfer.files)};return document.addEventListener("dragover",p),document.addEventListener("drop",b),()=>{document.removeEventListener("dragover",p),document.removeEventListener("drop",b)}},[E,i]),(0,s.useEffect)(()=>()=>{if(!u)for(const p of l.current)p.url&&URL.revokeObjectURL(p.url)},[u]);const U=p=>{p.currentTarget.files&&E(p.currentTarget.files),p.currentTarget.value=""},de=async p=>{try{const b=await(await fetch(p)).blob();return new Promise(j=>{const y=new FileReader;y.onloadend=()=>j(y.result),y.onerror=()=>j(null),y.readAsDataURL(b)})}catch{return null}},me=(0,s.useMemo)(()=>({files:S.map(p=>({...p,id:p.id})),add:E,remove:_,clear:D,openFileDialog:P,fileInputRef:N}),[S,E,_,D,P]),pe=p=>{p.preventDefault();const b=p.currentTarget,j=u?e.textInput.value:new FormData(b).get("message")||"";u||b.reset(),Promise.all(S.map(async({id:y,...A})=>{if(A.url?.startsWith("blob:")){const I=await de(A.url);return{...A,url:I??A.url}}return A})).then(y=>{try{const A=v({text:j,files:y},p);A instanceof Promise?A.then(()=>{D(),u&&e.textInput.clear()}).catch(()=>{}):(D(),u&&e.textInput.clear())}catch{}}).catch(()=>{})},H=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("input",{accept:n,"aria-label":"Upload files",className:"hidden",multiple:o,onChange:U,ref:N,title:"Upload files",type:"file"}),(0,t.jsx)("form",{className:w("w-full",r),onSubmit:pe,ref:k,...C,children:(0,t.jsx)(Pe,{className:"overflow-hidden",children:T})})]});return u?H:(0,t.jsx)(ie.Provider,{value:me,children:H})},ft=({className:r,...n})=>(0,t.jsx)("div",{className:w("contents",r),...n}),dt=({onChange:r,className:n,placeholder:o="What would you like to know?",...i})=>{const a=ae(),d=ct(),[m,x]=(0,s.useState)(!1),v=e=>{if(e.key==="Enter"){if(m||e.nativeEvent.isComposing||e.shiftKey)return;e.preventDefault();const u=e.currentTarget.form;if(u?.querySelector('button[type="submit"]')?.disabled)return;u?.requestSubmit()}if(e.key==="Backspace"&&e.currentTarget.value===""&&d.files.length>0){e.preventDefault();const u=d.files.at(-1);u&&d.remove(u.id)}},T=e=>{const u=e.clipboardData?.items;if(!u)return;const N=[];for(const k of u)if(k.kind==="file"){const f=k.getAsFile();f&&N.push(f)}N.length>0&&(e.preventDefault(),d.add(N))},C=a?{value:a.textInput.value,onChange:e=>{a.textInput.setInput(e.currentTarget.value),r?.(e)}}:{onChange:r};return(0,t.jsx)(Ue,{className:w("field-sizing-content max-h-48 min-h-16",n),name:"message",onCompositionEnd:()=>x(!1),onCompositionStart:()=>x(!0),onKeyDown:v,onPaste:T,placeholder:o,...i,...C})},mt=({className:r,...n})=>(0,t.jsx)(De,{align:"block-end",className:w("justify-between justify-end gap-1",r),...n}),pt=({className:r,variant:n="default",size:o="icon-sm",status:i,children:a,...d})=>{let m=(0,t.jsx)(be,{className:"size-4"});return i==="submitted"?m=(0,t.jsx)(Se,{className:"size-4 animate-spin"}):i==="streaming"?m=(0,t.jsx)(Ce,{className:"size-4"}):i==="error"&&(m=(0,t.jsx)(Ne,{className:"size-4"})),(0,t.jsx)(Ie,{"aria-label":"Submit",className:w(r),size:o,type:"submit",variant:n,...d,children:a??m})};function ht({...r}){return(0,t.jsx)(Re,{"data-slot":"collapsible",...r})}function gt({...r}){return(0,t.jsx)(Ee,{"data-slot":"collapsible-trigger",...r})}function xt({...r}){return(0,t.jsx)(Le,{"data-slot":"collapsible-content",...r})}var vt=({children:r,as:n="p",className:o,duration:i=2,spread:a=2})=>{const d=(0,s.useMemo)(()=>(r?.length??0)*a,[r,a]);return(0,t.jsx)(n,{className:w("relative inline-block bg-size-[250%_100%,auto] bg-clip-text text-transparent","[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--color-background),#0000_calc(50%+var(--spread)))] [background-repeat:no-repeat,padding-box]","animate-shimmer",o),style:{"--spread":`${d}px`,"--duration":`${i}s`,backgroundImage:"var(--bg), linear-gradient(var(--color-muted-foreground), var(--color-muted-foreground))"},children:r})},Tt=(0,s.memo)(vt),le=(0,s.createContext)(null),bt=()=>{const r=(0,s.useContext)(le);if(!r)throw new Error("Reasoning components must be used within Reasoning");return r},jt=1e3,St=1e3,ce=(0,s.memo)(({className:r,isStreaming:n=!1,open:o,defaultOpen:i=!0,onOpenChange:a,duration:d,children:m,...x})=>{const[v,T]=J({prop:o,defaultProp:i,onChange:a}),[C,e]=J({prop:d,defaultProp:void 0}),[u,N]=(0,s.useState)(!1),[k,f]=(0,s.useState)(null);(0,s.useEffect)(()=>{n?k===null&&f(Date.now()):k!==null&&(e(Math.ceil((Date.now()-k)/St)),f(null))},[n,k,e]),(0,s.useEffect)(()=>{if(i&&!n&&v&&!u){const S=setTimeout(()=>{T(!1),N(!0)},jt);return()=>clearTimeout(S)}},[n,v,i,T,u]);const h=S=>{T(S)};return(0,t.jsx)(le.Provider,{value:{isStreaming:n,isOpen:v,setIsOpen:T,duration:C},children:(0,t.jsx)(ht,{className:w("not-prose mb-4",r),onOpenChange:h,open:v,...x,children:m})})}),Ct=(r,n)=>r||n===0?(0,t.jsx)(Tt,{duration:1,children:"Thinking..."}):n===void 0?(0,t.jsx)("p",{children:"Thought for a few seconds"}):(0,t.jsxs)("p",{children:["Thought for ",n," seconds"]}),ue=(0,s.memo)(({className:r,children:n,getThinkingMessage:o=Ct,...i})=>{const{isStreaming:a,isOpen:d,duration:m}=bt();return(0,t.jsx)(gt,{className:w("flex w-full items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground",r),...i,children:n??(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(Te,{className:"size-4"}),o(a,m),(0,t.jsx)(je,{className:w("size-4 transition-transform",d?"rotate-180":"rotate-0")})]})})}),fe=(0,s.memo)(({className:r,children:n,...o})=>(0,t.jsx)(xt,{className:w("mt-4 text-sm","data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-muted-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",r),...o,children:(0,t.jsx)(ee,{children:n})}));ce.displayName="Reasoning";ue.displayName="ReasoningTrigger";fe.displayName="ReasoningContent";var yt=({className:r,children:n,...o})=>(0,t.jsxs)(qe,{className:"w-full overflow-x-auto whitespace-nowrap",...o,children:[(0,t.jsx)("div",{className:w("flex w-max flex-nowrap items-center gap-2",r),children:n}),(0,t.jsx)(Oe,{className:"hidden",orientation:"horizontal"})]}),wt=({suggestion:r,onClick:n,className:o,variant:i="outline",size:a="sm",children:d,...m})=>{const x=()=>{n?.(r)};return(0,t.jsx)(W,{className:w("cursor-pointer rounded-full px-4",o),onClick:x,size:a,type:"button",variant:i,...m,children:d||r})},Nt=({db:r,onRateLimitRefetch:n,onControllerReady:o})=>{const[i,a]=(0,s.useState)(""),{rateLimit:d}=te(),{messages:m,sendMessage:x,isLoading:v,clear:T,stop:C}=xe({connection:ve(`${ze.BASE_URL}/chat`),body:{db:r},onError:f=>console.error("Error:",f.message),onResponse:f=>console.log("Response:",f),onFinish:f=>{console.log("Finish:",f),n()}});(0,s.useEffect)(()=>{o({clear:()=>{T(),a("")},isLoading:v})},[T,v,o]);const e=f=>{const h=!!f.text,S=!!f.files?.length;!(h||S)||v||(x(f.text),a(""))},u=f=>{x(f),a("")},N=()=>{C(),a("")},k=v?"streaming":"ready";return(0,t.jsxs)("div",{className:"relative flex size-full flex-col divide-y overflow-hidden",children:[(0,t.jsxs)(Ze,{children:[(0,t.jsx)(et,{children:m.length===0?(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground",children:(0,t.jsxs)("div",{className:"text-center space-y-2",children:[(0,t.jsx)("p",{className:"text-lg font-medium",children:"Start a new conversation"}),(0,t.jsx)("p",{className:"text-sm",children:"Ask me anything to get started"})]})}):(0,t.jsxs)(t.Fragment,{children:[m.map(f=>{const h=f.parts.filter(c=>c.type==="thinking"),S=f.parts.filter(c=>c.type==="text").map(c=>c.content).join(""),l=h.length>0;return(0,t.jsx)(Q,{defaultBranch:0,children:(0,t.jsx)(Z,{children:(0,t.jsx)(Y,{from:f.role==="user"?"user":"assistant",children:(0,t.jsxs)("div",{children:[l&&f.role==="assistant"&&(0,t.jsxs)(ce,{duration:0,children:[(0,t.jsx)(ue,{}),(0,t.jsx)(fe,{children:h.map(c=>c.content).join(`
|
|
2
|
+
`)})]}),(0,t.jsx)($,{children:(0,t.jsx)(oe,{children:S})})]})})})},f.id)}),v&&(0,t.jsx)(Q,{defaultBranch:0,children:(0,t.jsx)(Z,{children:(0,t.jsx)(Y,{from:"assistant",children:(0,t.jsx)($,{children:(0,t.jsx)(rt,{children:"Thinking..."})})})})})]})}),(0,t.jsx)(tt,{})]}),(0,t.jsxs)("div",{className:"grid shrink-0 gap-4 pt-3",children:[m.length===0&&(0,t.jsx)(yt,{className:"px-4",children:Ke.map(f=>(0,t.jsx)(wt,{onClick:()=>u(f),suggestion:f,size:"lg",children:f},f))}),(0,t.jsx)("div",{className:"w-full px-4 pb-4",children:(0,t.jsxs)(ut,{globalDrop:!0,multiple:!0,onSubmit:e,children:[(0,t.jsx)(ft,{children:(0,t.jsx)(dt,{onChange:f=>a(f.target.value),value:i,placeholder:"Type a message..."})}),(0,t.jsx)(mt,{children:(0,t.jsx)(pt,{className:"h-8!",status:k,onClick:v?N:void 0,disabled:d&&d.remaining===0})})]})})]})]})},_t=()=>{const{rateLimit:r,refetchRateLimit:n}=te(),{isSheetOpen:o,closeSheet:i}=Me(),{selectedDatabase:a}=Fe(),[d,m]=(0,s.useState)(null),x=(0,s.useRef)(v=>m(v));return(0,t.jsx)(_e,{title:"AI Assistant",cta:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[r&&(0,t.jsxs)(He,{children:[(0,t.jsx)(Ge,{asChild:!0,children:(0,t.jsxs)("span",{className:"text-xs px-2 py-1 cursor-default text-muted-foreground",children:[r.remaining,"/",r.limit]})}),(0,t.jsx)(We,{side:"bottom",children:(0,t.jsxs)("p",{children:[r.remaining," messages remaining"]})})]}),a&&d&&(0,t.jsxs)(W,{type:"button",variant:"outline",size:"lg",onClick:d.clear,disabled:d.isLoading,children:[(0,t.jsx)(we,{className:"h-4 w-4 mr-1"}),"New Chat"]})]}),closeButton:!1,open:o("ai-assistant"),size:"max-w-2xl!",contentClassName:"p-0 flex flex-col h-[calc(100vh-4rem)] flex-1",onOpenChange:v=>{v||i("ai-assistant")},children:a?(0,t.jsx)(Nt,{db:a,onRateLimitRefetch:n,onControllerReady:x.current},a):(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground p-8",children:(0,t.jsxs)("div",{className:"text-center space-y-2",children:[(0,t.jsx)("p",{className:"text-lg font-medium",children:"No database selected"}),(0,t.jsx)("p",{className:"text-sm",children:"Select a database from the sidebar to start chatting."})]})})})};export{_t as ChatSidebar};
|