@prisma/studio-core 0.0.0-dev.202505052106 → 0.0.0-dev.202505052114

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/ui/index.js CHANGED
@@ -17,7 +17,7 @@ import"../chunk-2ZJZX5I7.js";import{D as Me}from"../chunk-P72NBTYE.js";import{B
17
17
  border-radius: .5em;
18
18
  border: 3px solid ${j.backgroundAlt};
19
19
  }
20
- `}}),p.createElement("div",{style:{flex:"1 1 500px",minHeight:"40%",maxHeight:"100%",overflow:"auto",borderRight:`1px solid ${j.grayAlt}`,display:"flex",flexDirection:"column"}},p.createElement("div",{style:{padding:".5em",background:j.backgroundAlt,display:"flex",justifyContent:"space-between",alignItems:"center"}},p.createElement(fo,{"aria-hidden":!0,style:{marginRight:".5em"},onClick:()=>l(!1)}),p.createElement("div",{style:{marginRight:"auto",fontSize:"clamp(.8rem, 2vw, 1.3rem)",fontWeight:"bold"}},"React Table"," ",p.createElement("span",{style:{fontWeight:100}},"Devtools")),p.createElement("div",{style:{display:"flex",flexDirection:"column"}},r?p.createElement(as,{type:"button","aria-label":"Close React Table Devtools",onClick:()=>{l(!1)}},"Close"):null)),p.createElement("div",{style:{display:"flex",flexWrap:"wrap",overflowY:"auto",flex:"1"}},p.createElement("div",{style:{flex:"1 1 auto",padding:".5em"}},p.createElement(Y,{label:"Instance",value:o,defaultExpanded:!1}),p.createElement("div",{style:{height:".5rem"}}),p.createElement(Y,{label:"State",value:o.getState(),defaultExpanded:!1}),p.createElement("div",{style:{height:".5rem"}}),p.createElement(Y,{label:"Columns",value:o.getAllColumns(),defaultExpanded:!1})),p.createElement("div",{style:{flex:"1 1 auto",padding:".5em"}},p.createElement(Y,{label:"Core Model",value:o.getCoreRowModel(),defaultExpanded:!1}),p.createElement(Y,{label:"Filtered Model",value:o.getFilteredRowModel(),defaultExpanded:!1}),p.createElement(Y,{label:"Sorted Model",value:o.getSortedRowModel(),defaultExpanded:!1}),p.createElement(Y,{label:"Grouped Model",value:o.getGroupedRowModel(),defaultExpanded:!1}),p.createElement(Y,{label:"Expanded Model",value:o.getExpandedRowModel(),defaultExpanded:!1}))))))});import{useEffect as ks,useMemo as Rs,useState as rt}from"react";import{flexRender as ps}from"@tanstack/react-table";import*as w from"@radix-ui/react-dropdown-menu";import*as pe from"react";import{jsx as E,jsxs as tt}from"react/jsx-runtime";var co=w.Root,po=w.Trigger;var ss=pe.forwardRef(({className:e,inset:a,children:t,...o},r)=>tt(w.SubTrigger,{ref:r,className:m("ps-flex ps-cursor-default ps-select-none ps-items-center ps-gap-2 ps-rounded-sm ps-px-2 ps-py-1.5 ps-text-sm ps-outline-none focus:ps-bg-accent data-[state=open]:ps-bg-accent [&_svg]:ps-pointer-events-none [&_svg]:ps-size-4 [&_svg]:ps-shrink-0",a&&"ps-pl-8",e),...o,children:[t,E(se,{className:"ps-ml-auto"})]}));ss.displayName=w.SubTrigger.displayName;var us=pe.forwardRef(({className:e,...a},t)=>E(w.SubContent,{ref:t,className:m("ps-z-50 ps-min-w-[8rem] ps-overflow-hidden ps-rounded-md ps-border ps-bg-popover ps-p-1 ps-text-popover-foreground ps-shadow-lg data-[state=open]:ps-animate-in data-[state=closed]:ps-animate-out data-[state=closed]:ps-fade-out-0 data-[state=open]:ps-fade-in-0 data-[state=closed]:ps-zoom-out-95 data-[state=open]:ps-zoom-in-95 data-[side=bottom]:ps-slide-in-from-top-2 data-[side=left]:ps-slide-in-from-right-2 data-[side=right]:ps-slide-in-from-left-2 data-[side=top]:ps-slide-in-from-bottom-2 ps-origin-[--radix-dropdown-menu-content-transform-origin]",e),...a}));us.displayName=w.SubContent.displayName;var at=pe.forwardRef(({className:e,sideOffset:a=4,...t},o)=>E(w.Portal,{children:E(w.Content,{ref:o,sideOffset:a,className:m("ps-z-50 ps-max-h-[var(--radix-dropdown-menu-content-available-height)] ps-min-w-[8rem] ps-overflow-y-auto ps-overflow-x-hidden ps-rounded-md ps-border ps-bg-popover ps-p-1 ps-text-popover-foreground ps-shadow-md","data-[state=open]:ps-animate-in data-[state=closed]:ps-animate-out data-[state=closed]:ps-fade-out-0 data-[state=open]:ps-fade-in-0 data-[state=closed]:ps-zoom-out-95 data-[state=open]:ps-zoom-in-95 data-[side=bottom]:ps-slide-in-from-top-2 data-[side=left]:ps-slide-in-from-right-2 data-[side=right]:ps-slide-in-from-left-2 data-[side=top]:ps-slide-in-from-bottom-2 ps-origin-[--radix-dropdown-menu-content-transform-origin]",e),...t})}));at.displayName=w.Content.displayName;var ha=pe.forwardRef(({className:e,inset:a,...t},o)=>E(w.Item,{ref:o,className:m("ps-relative ps-flex ps-cursor-default ps-select-none ps-items-center ps-gap-2 ps-rounded-sm ps-px-2 ps-py-1.5 ps-text-sm ps-outline-none ps-transition-colors focus:ps-bg-accent focus:ps-text-accent-foreground data-[disabled]:ps-pointer-events-none data-[disabled]:ps-opacity-50 [&>svg]:ps-size-4 [&>svg]:ps-shrink-0",a&&"ps-pl-8",e),...t}));ha.displayName=w.Item.displayName;var ds=pe.forwardRef(({className:e,children:a,checked:t,...o},r)=>tt(w.CheckboxItem,{ref:r,className:m("ps-relative ps-flex ps-cursor-default ps-select-none ps-items-center ps-rounded-sm ps-py-1.5 ps-pl-8 ps-pr-2 ps-text-sm ps-outline-none ps-transition-colors focus:ps-bg-accent focus:ps-text-accent-foreground data-[disabled]:ps-pointer-events-none data-[disabled]:ps-opacity-50",e),checked:t,...o,children:[E("span",{className:"ps-absolute ps-left-2 ps-flex ps-h-3.5 ps-w-3.5 ps-items-center ps-justify-center",children:E(w.ItemIndicator,{children:E(le,{className:"ps-h-4 ps-w-4"})})}),a]}));ds.displayName=w.CheckboxItem.displayName;var ns=pe.forwardRef(({className:e,children:a,...t},o)=>tt(w.RadioItem,{ref:o,className:m("ps-relative ps-flex ps-cursor-default ps-select-none ps-items-center ps-rounded-sm ps-py-1.5 ps-pl-8 ps-pr-2 ps-text-sm ps-outline-none ps-transition-colors focus:ps-bg-accent focus:ps-text-accent-foreground data-[disabled]:ps-pointer-events-none data-[disabled]:ps-opacity-50",e),...t,children:[E("span",{className:"ps-absolute ps-left-2 ps-flex ps-h-3.5 ps-w-3.5 ps-items-center ps-justify-center",children:E(w.ItemIndicator,{children:E(be,{className:"ps-h-2 ps-w-2 ps-fill-current"})})}),a]}));ns.displayName=w.RadioItem.displayName;var fs=pe.forwardRef(({className:e,inset:a,...t},o)=>E(w.Label,{ref:o,className:m("ps-px-2 ps-py-1.5 ps-text-sm ps-font-semibold",a&&"ps-pl-8",e),...t}));fs.displayName=w.Label.displayName;var is=pe.forwardRef(({className:e,...a},t)=>E(w.Separator,{ref:t,className:m("ps--mx-1 ps-my-1 ps-h-px ps-bg-muted",e),...a}));is.displayName=w.Separator.displayName;var cs=({className:e,...a})=>E("span",{className:m("ps-ml-auto ps-text-xs ps-tracking-widest ps-opacity-60",e),...a});cs.displayName="DropdownMenuShortcut";import{Fragment as ot,jsx as q,jsxs as me}from"react/jsx-runtime";function mo(e){let{header:a,className:t}=e;return me("div",{className:m("ps-flex ps-items-center ps-justify-between ps-w-full ps-h-full ps-flex-0",t),children:[me("div",{className:"ps-flex ps-items-center ps-justify-between ps-w-full",children:[q("div",{className:"ps-flex ps-items-center ps-gap-2 ps-overflow-hidden ps-text-ellipsis ps-font-mono ps-text-xs",children:a.isPlaceholder?null:q("span",{className:"ps-flex ps-min-w-0",children:q("span",{className:"ps-min-w-0 ps-overflow-hidden ps-text-ellipsis ps-text-foreground/90",children:ps(a.column.columnDef.header,a.getContext())})})}),q("span",{className:"ps-relative ps-gap-1",children:a.column.getCanPin()&&a.column.id!=="select"&&me(co,{children:[q(po,{asChild:!0,children:q(N,{variant:"ghost",size:"sm",className:"ps-px-0 ps-h-6 ps-w-6",children:q(He,{size:12})})}),me(at,{children:[a.column.getCanSort()&&q(ha,{onClick:()=>a.column.toggleSorting(),children:q("span",{className:"ps-flex ps-items-center ps-gap-2",children:a.column.getNextSortingOrder()==="desc"?me(ot,{children:[q(Ie,{size:16}),"Sort descending"]}):a.column.getNextSortingOrder()==="asc"?me(ot,{children:[q(Ee,{size:16}),"Sort ascending"]}):me(ot,{children:[q(Ze,{size:16}),"Cancel sorting"]})})}),q(ha,{onClick:()=>a.column.pin(a.column.getIsPinned()?!1:"left"),children:a.column.getIsPinned()?me("span",{className:"ps-flex ps-items-center ps-gap-2",children:[q(Qe,{size:16}),"Unpin column"]}):me("span",{className:"ps-flex ps-items-center ps-gap-2",children:[q(_e,{size:16}),"Pin column"]})})]})]})})]}),a.column.getCanResize()&&q("button",{type:"button",tabIndex:0,onMouseDown:o=>{o.stopPropagation(),a.getResizeHandler()(o)},onTouchStart:o=>{o.stopPropagation(),a.getResizeHandler()(o)},onClick:o=>o.stopPropagation(),onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),o.stopPropagation(),a.getResizeHandler()(o))},className:m("ps-absolute ps-right-0 ps-top-0 ps-h-full ps-w-px ps-cursor-col-resize ps-border ps-border-transparent hover:ps-border-table-border"),"aria-label":"Resize column"})]})}import{jsx as xo}from"react/jsx-runtime";function Lo({className:e}){return xo("div",{"data-loading-bar":!0,className:m("ps-h-[2px] ps-w-full ps-overflow-hidden ps-bg-gray-200 ps-z-50",e),children:xo("div",{className:"ps-animate-indeterminate-bar ps-h-full ps-w-1/3 ps-rounded-r-full ps-bg-purple-600"})})}import*as go from"react";import{jsx as ms}from"react/jsx-runtime";var ta=go.forwardRef(({className:e,type:a,...t},o)=>ms("input",{type:a,className:m("ps-flex ps-h-9 ps-w-full ps-rounded-md ps-border ps-border-input ps-bg-transparent ps-px-3 ps-py-1 ps-shadow-sm ps-transition-colors file:ps-border-0 file:ps-bg-transparent file:ps-text-sm file:ps-font-medium file:ps-text-foreground placeholder:ps-text-muted-foreground focus-visible:ps-outline-none focus-visible:ps-ring-1 focus-visible:ps-ring-ring disabled:ps-cursor-not-allowed disabled:ps-opacity-50",e),ref:o,...t}));ta.displayName="Input";import{jsx as H,jsxs as Sa}from"react/jsx-runtime";function Co(e){let{table:a,variant:t="basic"}=e,{pageIndex:o}=a.getState().pagination,r=a.getPageCount();return H("div",{className:"ps-rounded-b-lg ps-overflow-clip ps-sticky ps-bottom-0 ps-left-0 ps-border-t-0 w-full ps-z-20 ps-p-0",children:H("div",{className:"ps-flex ps-items-center ps-justify-between ps-space-x-2 ps-py-2 ps-px-2 ps-border-t ps-border-table-border ps-backdrop-blur-sm ps-bg-table-head/90",children:t==="basic"?Sa("div",{className:"ps-flex ps-items-center ps-space-x-2",children:[H(N,{variant:"outline",size:"sm",className:"ps-h-9",onClick:()=>a.previousPage(),disabled:!a.getCanPreviousPage(),children:"Previous"}),H(N,{variant:"outline",size:"sm",className:"ps-h-9",onClick:()=>a.nextPage(),disabled:!a.getCanNextPage(),children:"Next"})]}):H("div",{className:"ps-flex ps-items-center ps-space-x-2",children:Sa("div",{className:"ps-flex ps-items-center ps-space-x-2",children:[H(N,{variant:"outline",onClick:()=>a.setPageIndex(0),disabled:!a.getCanPreviousPage(),children:H(Ge,{className:"ps-w-4 ps-h-4"})}),H(N,{variant:"outline",onClick:()=>a.previousPage(),disabled:!a.getCanPreviousPage(),children:H(ze,{className:"ps-w-4 ps-h-4"})}),Sa("div",{className:"ps-flex ps-items-center ps-gap-1 ps-text-xs ps-font-medium",children:["Page",H(ta,{type:"number",min:1,max:r,value:o+1,className:"ps-w-16",onChange:l=>{let s=l.target.value?Number(l.target.value)-1:0;a.setPageIndex(s)}}),Sa("span",{className:"ps-shrink-0 ps-w-max",children:["of ",r]})]}),H(N,{variant:"outline",onClick:()=>a.nextPage(),disabled:!a.getCanNextPage(),children:H(se,{className:"ps-w-4 ps-h-4"})}),H(N,{variant:"outline",onClick:()=>a.setPageIndex(r-1),disabled:!a.getCanNextPage(),children:H(Ve,{className:"ps-w-4 ps-h-4"})})]})})})})}function xe(e){let a=e.getIsPinned(),t=a==="right"&&e.getIsFirstColumn("right");return{className:m("ps-group ps-border-r ps-border-b ps-border-table-border last:ps-border-r-0","ps-overflow-hidden ps-whitespace-nowrap ps-text-ellipsis",a&&["ps-sticky ps-bg-background ps-z-20",a==="left"?"ps-left-0":"ps-right-0"],!a&&"ps-relative ps-z-10",a&&t&&"ps-shadow-[-1px_0_0_0_hsl(var(--border))]"),style:{width:e.getSize(),left:a==="left"?`${e.getStart("left")}px`:void 0,right:a==="right"?`${e.getAfter("right")}px`:void 0}}}import{Fragment as Ds,jsx as D,jsxs as ba}from"react/jsx-runtime";var Ms=e=>{let{children:a,className:t,header:o,style:r}=e,{attributes:l,listeners:s,transform:u,transition:d,setNodeRef:n,isDragging:i}=bs({id:o.id});return D(xa,{ref:n,...l,...s,style:{cursor:"grab",touchAction:"none",transform:ws.Transform.toString(u),transition:d,...r,"--dragging-width":`${o.getSize()}px`},className:m(t,"ps-select-none ps-touch-none ps-sticky ps-top-0 ps-z-20 ps-bg-table-head",o.column.getIsPinned()&&"ps-sticky ps-z-30",i&&"!ps-z-50 ps-w-[var(--dragging-width)] ps-border-2 ps-border-violet-500"),children:D("div",{className:"ps-w-full",children:a})})};function ho(e){let{columnDefs:a,getBeforeRows:t,isLoading:o,isProcessing:r,onPaginationChange:l,onRowSelectionChange:s,onSortingChange:u,pageCount:d,paginationState:n,rows:i,rowSelectionState:g,sortingState:c}=e,[y,P]=rt([]),[x,C]=rt({left:["__ps_select"],right:[]}),[L,v]=rt({}),z=Rs(()=>Io(c),[c]),K=o||r;ks(()=>P(a.map(({accessorKey:A})=>A)),[]);function Le({active:A,over:h}){h&&A.id!==h.id&&P(R=>{let S=R.indexOf(A.id),J=R.indexOf(h.id);return Is(R,S,J)})}let ve=gs(Ls,{activationConstraint:{distance:10}}),ke=Cs(ve),V=vs({columnResizeMode:"onChange",columns:a,data:i,defaultColumn:{size:200,minSize:50,maxSize:500},enableColumnPinning:!0,enableColumnResizing:!0,enableRowSelection:!0,enableSorting:!!(u&&c),getCoreRowModel:Ps(),getRowId:({__ps_rowid:A})=>A,manualPagination:!0,manualSorting:!0,onColumnOrderChange:P,onColumnPinningChange:C,onColumnSizingChange:v,onPaginationChange:l,onRowSelectionChange:s,onSortingChange:A=>u?.(h=>(typeof A=="function"&&(A=A(Io(h))),As(A))),pageCount:d,state:{columnOrder:y,columnPinning:x,columnSizing:L,pagination:n,rowSelection:g,sorting:z}});return ba(Ds,{children:[process.env.NODE_ENV==="production"?null:D(io,{table:V}),ba("div",{"data-studio":"content",className:"ps-flex-1 ps-w-0 ps-h-0 ps-min-w-full ps-flex ps-flex-col ps-relative ps-bg-slate-100",children:[D("div",{children:K&&D(Lo,{className:"ps-absolute -ps-top-[1px] ps-left-0 ps-right-0"})}),D(xs,{sensors:ke,onDragEnd:Le,children:ba(Na,{className:"ps-table-fixed ps-border-separate ps-border-spacing-0 ps-box-border",children:[D("colgroup",{children:D("col",{style:{width:"40px",minWidth:0,maxWidth:"40px"}})}),D(Ua,{children:V.getHeaderGroups().map(A=>D(we,{children:D(Ss,{items:A.headers.filter(h=>h.id!=="__ps_select").map(h=>h.id),strategy:hs,children:A.headers.map(h=>h.id==="__ps_select"?D(xa,{style:xe(h.column).style,className:m(xe(h.column).className,"ps-select-none ps-sticky ps-top-0 ps-z-20 ps-bg-table-head ps-p-0 ps-table-cell-select",h.column.getIsPinned()&&"ps-sticky ps-z-30"),children:D("div",{className:"ps-flex ps-items-center ps-justify-center ps-h-full",children:ys(h.column.columnDef.header,h.getContext())})},h.id):D(Ms,{header:h,table:V,...xe(h.column),children:D(mo,{header:h})},h.id))})},A.id))}),ba(Ea,{children:[t?.(V),V.getRowModel().rows?.length?V.getRowModel().rows.map(A=>D(we,{className:m("ps-bg-table-row ps-odd:bg-table-row-odd ps-group [&:last-of-type_td]:ps-border-b-0"),children:A.getVisibleCells().map((h,R)=>{if(h.column.id==="__ps_select")return D(Be,{style:xe(h.column).style,className:m(xe(h.column).className,"ps-table-cell-select"),children:typeof h.column.columnDef.cell=="function"&&(S=>{let J=h.column.columnDef.cell(h.getContext());return D(J,{className:"ps-w-full ps-h-full"})})({className:""})},h.id);if(typeof h.column.columnDef.cell=="function"){let S=h.column.columnDef.cell(h.getContext());return D(S,{...xe(h.column)},R)}return null})},A.id)):D(we,{children:D(Be,{colSpan:a.length,className:"ps-h-24 ps-text-center",children:o?"Loading...":"No results."})})]})]})}),!d||d<2?null:D(Co,{table:V,variant:"numeric"})]})]})}function Io(e){return e?.map(a=>({id:a.column,desc:a.direction==="desc"}))||[]}function As(e){return e.map(a=>({column:a.id,direction:a.desc?"desc":"asc"}))}import*as Z from"@radix-ui/react-tooltip";import*as bo from"react";import{jsx as So}from"react/jsx-runtime";var wo=Z.Provider,yo=Z.Root,Po=Z.Trigger,lt=bo.forwardRef(({className:e,sideOffset:a=4,...t},o)=>So(Z.Portal,{children:So(Z.Content,{ref:o,sideOffset:a,className:m("ps-z-50 ps-overflow-hidden ps-rounded-md ps-bg-primary ps-px-3 ps-py-1.5 ps-text-xs ps-text-primary-foreground ps-animate-in ps-fade-in-0 ps-zoom-in-95 data-[state=closed]:ps-animate-out data-[state=closed]:ps-fade-out-0 data-[state=closed]:ps-zoom-out-95 data-[side=bottom]:ps-slide-in-from-top-2 data-[side=left]:ps-slide-in-from-right-2 data-[side=right]:ps-slide-in-from-left-2 data-[side=top]:ps-slide-in-from-bottom-2 ps-origin-[--radix-tooltip-content-transform-origin]",e),...t})}));lt.displayName=Z.Content.displayName;import{jsx as ye,jsxs as st}from"react/jsx-runtime";function vo({column:e}){return e.isInPrimaryKey?st("span",{className:"ps-flex ps-flex-row ps-font-medium ps-items-center ps-gap-1",children:[ye(wo,{delayDuration:300,children:st(yo,{children:[ye(Po,{asChild:!0,children:ye(Xe,{size:12})}),ye(lt,{children:ye("p",{children:"Primary Key"})})]})}),e.name]}):st("div",{className:"ps-flex ps-flex-row ps-gap-1 ps-items-center",children:[ye("span",{className:"ps-font-medium ps-truncate",children:e.name}),ye("span",{className:"ps-overflow-hidden ps-text-ellipsis ps-text-muted-foreground/70 ps-lowercase ps-truncate",children:e.datatype.name})]})}import{isObjectType as Js}from"remeda";import{motion as Ao}from"motion/react";import qs,{useState as Do}from"react";import*as ut from"@radix-ui/react-label";import{cva as Ts}from"class-variance-authority";import*as ko from"react";import{jsx as Fs}from"react/jsx-runtime";var Bs=Ts("ps-text-sm ps-font-medium ps-leading-none peer-disabled:ps-cursor-not-allowed peer-disabled:ps-opacity-70"),oa=ko.forwardRef(({className:e,...a},t)=>Fs(ut.Root,{ref:t,className:m(Bs(),e),...a}));oa.displayName=ut.Root.displayName;import*as ra from"@radix-ui/react-switch";import*as Mo from"react";import{jsx as Ro}from"react/jsx-runtime";var la=Mo.forwardRef(({className:e,...a},t)=>Ro(ra.Root,{className:m("ps-peer ps-inline-flex ps-h-5 ps-w-9 ps-shrink-0 ps-cursor-pointer ps-items-center ps-rounded-full ps-border-2 ps-border-transparent ps-shadow-sm ps-transition-colors focus-visible:ps-outline-none focus-visible:ps-ring-2 focus-visible:ps-ring-ring focus-visible:ps-ring-offset-2 focus-visible:ps-ring-offset-background disabled:ps-cursor-not-allowed disabled:ps-opacity-50 data-[state=checked]:ps-bg-primary data-[state=unchecked]:ps-bg-input",e),...a,ref:t,children:Ro(ra.Thumb,{className:m("ps-pointer-events-none ps-block ps-h-4 ps-w-4 ps-rounded-full ps-bg-background ps-shadow-lg ps-ring-0 ps-transition-transform data-[state=checked]:ps-translate-x-4 data-[state=unchecked]:ps-translate-x-0")})}));la.displayName=ra.Root.displayName;import{Fragment as Os,jsx as Pe,jsxs as sa}from"react/jsx-runtime";var ee=({onSave:e,onCancel:a,onClose:t,onNullChange:o,isNull:r=!1,readonly:l})=>Pe("div",{className:"ps-flex ps-flex-row ps-gap-1 ps-border-t ps-border-table-border ps-text-xs ps-",children:!l&&sa(Os,{children:[sa("div",{className:"ps-flex ps-flex-col ps-gap-1 ps-p-2 ps-mr-auto",children:[sa("button",{className:"ps-flex ps-flex-row ps-gap-1 ps-items-center ps-cursor-pointer",onClick:()=>{e&&e(),t&&t()},children:[Pe("kbd",{className:"ps-inline-flex ps-justify-center ps-items-center ps-h-6 ps-w-6 ps-rounded-md ps-bg-muted ps-text-muted-foreground",children:Pe(Ke,{size:12,strokeWidth:2})})," ","Save changes"]}),sa("button",{className:"ps-flex ps-flex-row ps-gap-1 ps-items-center ps-cursor-pointer",onClick:()=>{a&&a(),t&&t()},children:[Pe("kbd",{className:"ps-inline-flex ps-justify-center ps-items-center ps-h-6 ps-w-6 ps-rounded-md ps-bg-muted ps-text-muted-foreground ps-text-[8px] ps-leading-none ps-font-semibold",children:"Esc"})," ","Cancel changes"]})]}),o&&Pe("div",{className:"ps-flex ps-flex-col ps-gap-1 ps-p-2",children:sa("label",{className:"ps-flex ps-flex-row ps-gap-1 ps-items-center",htmlFor:"set-nullable",children:[Pe(la,{id:"set-nullable",checked:r,onCheckedChange:n=>{o&&o(n)}}),Pe("span",{children:"Set to NULL"})]})})]})});import{Fragment as Ns,jsx as ua,jsxs as To}from"react/jsx-runtime";function Bo(e){let{value:a,onSubmit:t,column:o,readonly:r}=e,l=o.nullable===!0,[s,u]=Do(a===null?!1:a),[d,n]=Do(a===null),i=a===null?!1:a,g=L=>{u(L)},c=L=>{n(L)},y=qs.useCallback(()=>{let L=d?null:s;return L!==a?(t(L),!0):!1},[s,a,t,d]),P=()=>{u(i),n(a===null)},{handleSave:x,handleCancel:C}=$({onSave:y,onCancel:P,readonly:r});return To(Ns,{children:[To("div",{className:"ps-flex ps-flex-row ps-items-center ps-h-[var(--studio-cell-height)] ps-gap-4 ps-py-0 ps-px-2",children:[ua(oa,{htmlFor:"boolean-input",className:"ps-sr-only",children:"Boolean"}),ua(Ao.div,{className:"ps-flex ps-items-center",initial:{opacity:0},animate:{opacity:1},transition:{duration:.24},children:ua(la,{id:"boolean-input",checked:s,onCheckedChange:g,disabled:d||r})}),ua(Ao.div,{"data-value":!0,className:"ps-inline-flex ps-items-center ps-text-xs ps-text-muted-foreground ps-font-mono",initial:{x:-40,opacity:1},animate:{x:0,opacity:1},transition:{duration:.12,delay:0},children:d?"NULL":String(s)})]}),ua(ee,{onSave:x,onCancel:C,onNullChange:l?c:void 0,isNull:d,readonly:r})]})}import{useCallback as Es,useState as Oo}from"react";import{cva as Us}from"class-variance-authority";import{jsx as Bp}from"react/jsx-runtime";var Fo=Us("ps-inline-flex ps-items-center ps-rounded-md ps-border ps-px-2.5 ps-py-0.5 ps-text-xs ps-font-semibold ps-transition-colors focus:ps-outline-none focus:ps-ring-2 focus:ps-ring-ring focus:ps-ring-offset-2",{variants:{variant:{default:"ps-border-transparent ps-bg-primary ps-text-primary-foreground ps-shadow hover:ps-bg-primary/80",secondary:"ps-border-transparent ps-bg-secondary ps-text-secondary-foreground hover:ps-bg-secondary/80",destructive:"ps-border-transparent ps-bg-destructive ps-text-destructive-foreground ps-shadow hover:ps-bg-destructive/80",outline:"ps-text-foreground"}},defaultVariants:{variant:"default"}});import{Fragment as Hs,jsx as wa,jsxs as zs}from"react/jsx-runtime";function qo(e){let{onSubmit:a,column:t,value:o,options:r=[],readonly:l}=e,s=t.nullable===!0,u=String(o),[d,n]=Oo(u),[i,g]=Oo(o===null),c=v=>{n(v)},y=v=>{g(v)},P=Es(()=>i?o!==null?(a(null),!0):!1:d!==u?(a(d),!0):!1,[d,u,a,i,o]),x=()=>{n(u),g(o===null)},{handleSave:C,handleCancel:L}=$({onSave:P,onCancel:x,readonly:l});return zs(Hs,{children:[wa("div",{className:"ps-flex ps-items-center ps-gap-2 ps-font-mono ps-h-[var(--studio-cell-height)] ps-px-2 ps-py-0 ps-w-full ps-text-xs ps-text-muted-foreground",children:d}),wa("div",{className:"ps-flex ps-flex-row ps-gap-2 ps-p-2",children:r.map(v=>wa("button",{onClick:()=>c(v),className:Fo({variant:v===d?"default":"outline"}),disabled:i||l,children:v},v))}),wa(ee,{onSave:C,onCancel:L,onNullChange:s?y:void 0,isNull:i,readonly:l})]})}import Gs,{useState as No}from"react";import{Fragment as Vs,jsx as dt,jsxs as Ws}from"react/jsx-runtime";function Uo(e){let{value:a,onSubmit:t,column:o,readonly:r}=e,l=o.nullable===!0,s=a===null?"":JSON.stringify(a,null,2),[u,d]=No(s),[n,i]=No(a===null),g=L=>{d(L.target.value)},c=L=>{i(L)},y=Gs.useCallback(()=>{if(n)return a!==null?(t(null),!0):!1;let L=u===""?null:JSON.parse(u);return L!==a?(t(L),!0):!1},[u,a,t,n]),P=()=>{d(s),i(a===null)},{handleSave:x,handleCancel:C}=$({onSave:y,onCancel:P,readonly:r});return Ws(Vs,{children:[dt("div",{className:"ps-flex ps-flex-row ps-items-center ps-gap-4 ps-py-0",children:dt("textarea",{rows:5,value:u,onChange:g,disabled:n||r,className:"ps-cell-input-base ps-appearance-none ps-w-full ps-font-mono ps-border-none ps-outline-none ps-shadow-none ps-bg-transparent focus-visible:ps-ring-0 ps-resize ps-px-[var(--studio-cell-spacing)]",lang:"en_EN"})}),dt(ee,{onSave:x,onCancel:C,onNullChange:l?c:void 0,isNull:n,readonly:r})]})}import Ks,{useState as Eo}from"react";import{Fragment as Xs,jsx as nt,jsxs as Ho}from"react/jsx-runtime";function zo(e){let{value:a,onSubmit:t,column:o,readonly:r}=e,l=o.nullable===!0,[s,u]=Eo(a===null?"":String(a)),[d,n]=Eo(a===null),i=a===null?"":String(a),g=L=>{u(L.target.value)},c=L=>{n(L)},y=Ks.useCallback(()=>{if(d)return a!==null?(t(null),!0):!1;let L=s===""?null:Number(s);return s!==a?(t(L),!0):!1},[s,a,t,d]),P=()=>{u(i),n(a===null)},{handleSave:x,handleCancel:C}=$({onSave:y,onCancel:P,readonly:r});return Ho(Xs,{children:[Ho("div",{className:"ps-flex ps-flex-row ps-items-center ps-h-[var(--studio-cell-height)] ps-gap-4 ps-py-0",children:[nt(oa,{htmlFor:"numeric-input",className:"ps-sr-only",children:"Numeric"}),nt("input",{type:"text",inputMode:"numeric",pattern:"\\d*",value:s,onChange:g,disabled:d||r,className:"ps-cell-input-leading ps-appearance-none ps-w-full ps-font-mono ps-border-none ps-outline-none ps-shadow-none ps-bg-transparent focus-visible:ps-ring-0 ps-resize-none ps-px-[var(--studio-cell-spacing)]",step:"any",lang:"en_EN"})]}),nt(ee,{onSave:x,onCancel:C,onNullChange:l?c:void 0,isNull:d,readonly:r})]})}import _s from"react";import{useState as Qs}from"react";function Go(e){let{initialValue:a}=e,[t,o]=Qs(a??"");return{handleOnChange:l=>{o(l.target.value)},value:t}}import{Fragment as Zs,jsx as ft,jsxs as Vo}from"react/jsx-runtime";function Wo(e){let{onSubmit:a,value:t,readonly:o}=e,r=String(t),{handleOnChange:l,value:s}=Go({initialValue:r});function u(c){c.preventDefault(),s!==r&&a(s)}let d=_s.useCallback(()=>s!==r?(a(s),!0):!1,[s,r,a]),n=()=>{},{handleSave:i,handleCancel:g}=$({onSave:d,onCancel:n,readonly:o});return Vo(Zs,{children:[Vo("form",{onSubmit:u,children:[ft(ta,{className:"ps-cell-input-leading ps-font-mono ps-border-none ps-shadow-none focus-visible:ps-ring-0 ps-resize-none ps-px-[var(--studio-cell-spacing)]",onChange:l,type:"text",value:s,disabled:o}),ft("input",{type:"submit",className:"ps-sr-only"})]}),ft(ee,{onSave:i,onCancel:g,readonly:o})]})}import{jsx as da}from"react/jsx-runtime";function ya({cell:e,column:a,onSubmit:t,readonly:o}){let{group:r,options:l,isArray:s}=a.datatype,u=e.getValue(),d=u===void 0?"":u;return r==="json"||s?da(Uo,{onSubmit:t,value:d,column:a,readonly:o}):r==="boolean"?da(Bo,{onSubmit:t,value:d,column:a,readonly:o}):r==="enum"?da(qo,{onSubmit:t,value:d,options:l,column:a,readonly:o}):r==="numeric"?da(zo,{onSubmit:t,value:d,column:a,readonly:o}):da(Wo,{onSubmit:t,value:Js(d)?JSON.stringify(d):d,readonly:o})}import{useReactTable as $s}from"@tanstack/react-table";import{omit as js}from"remeda";import{Fragment as Ys,jsx as na}from"react/jsx-runtime";function Ko(e){let{table:a,stagedRows:t,setStagedRows:o}=e;function r(u,d){o(n=>{let i=[...n];return i[u]={...i[u],...d},i})}let l=Object.values(a.options.columns).map(u=>u.id==="__ps_select"?{...u,cell(){return()=>na(Ye,{})}}:{...u,cell({cell:d}){return n=>na(Ca,{cellComponent:ga({cell:d,column:u.meta,props:n}),inputComponent:ya({cell:d,column:u.meta,onSubmit(i){r(n.rowIndex,{[u.id]:i})},readonly:!1})})}}),s=$s({...a.options,columns:l,enableSorting:!1,onPaginationChange:void 0,onSortingChange:void 0,data:t,state:js(a.options.state,["pagination","sorting"])});return na(Ys,{children:s.getRowModel().rows.map((u,d)=>na(we,{children:u.getVisibleCells().map((n,i)=>{if(typeof n.column.columnDef.cell=="function"){let g=n.column.columnDef.cell(n.getContext());return na(g,{...xe(n.column),rowIndex:d},i)}return null})},d))})}import{Fragment as it,jsx as G,jsxs as ct}from"react/jsx-runtime";function Xo(e){let a=!!eu(),{activeTable:t,onError:o}=F(),{sortingState:r,setSortingState:l}=Qt(),{paginationState:s,setPaginationState:u}=ma(),[d,n]=ou([]),{data:i,isFetching:g}=Gt({...s,sortOrder:r}),{deleteSelection:c,isSelecting:y,rowSelectionState:P,setRowSelectionState:x}=Xt(i),C=Wt(),L=zt(),v=Vt(),z=tu(()=>!Object.values(t?.columns??{}).some(S=>S.isInPrimaryKey),[t]);if(au(()=>n([]),[t]),!t)return null;function K(){L.mutate(d,{onError:o,onSuccess(){ru.success("Rows inserted successfully"),n([])}})}function Le(){n(R=>[...R,{}])}function ve(){n([])}function ke(R,S,J){v.mutate({details:{changes:{[S.name]:R},row:J,table:t},options:{}})}let V=Object.values(t?.columns??{}).map(R=>({id:R.name,accessorKey:R.name,meta:R,header(){return vo({column:R})},cell({cell:S}){return J=>G(Ca,{cellComponent:ga({cell:S,column:R,props:J}),inputComponent:ya({cell:S,column:R,readonly:z,onSubmit(Re){return ke(Re,R,S.row.original)}})})}})),A=[{id:"__ps_select",accessorKey:"__ps_select",enablePinning:!1,meta:{disableDragging:!0},header({table:R}){return G($e,{checked:R.getIsAllRowsSelected(),onCheckedChange:S=>R.toggleAllRowsSelected(!!S),disabled:z})},cell({row:R}){return()=>G(Ja,{row:R,readonly:z})}}],h=[...V,...A].sort(su);return ct(it,{children:[G("div",{className:"ps-bg-studio-header-background ps-flex ps-w-full ps-p-2 ps-py-3 ps-border-b ps-bg-card ps-rounded-t-lg",children:G("div",{className:"ps-flex ps-items-center ps-justify-between ps-w-full ps-gap-2",children:G("div",{className:"ps-flex ps-flex-grow ps-justify-between ps-items-center",children:ct("div",{className:"ps-flex ps-items-center ps-gap-2",children:[G(N,{variant:"outline",size:"sm",onClick:Le,disabled:C>0,children:"Insert row"}),d.length>0&&ct(it,{children:[G(N,{variant:"secondary",size:"sm",onClick:K,children:"Save"}),G(N,{variant:"ghost",size:"sm",onClick:ve,children:"Cancel"})]}),y&&G(it,{children:G(N,{variant:"secondary",size:"sm",onClick:c,children:"Delete"})})]})})})}),G(ho,{columnDefs:h,getBeforeRows:R=>G(Ko,{table:R,stagedRows:d,setStagedRows:n}),isLoading:g,isProcessing:a,onPaginationChange:u,onRowSelectionChange:x,onSortingChange:l,pageCount:lu(i?.filteredRowCount??1/0,s.pageSize),paginationState:s,rows:i?.rows??[],rowSelectionState:P,sortingState:r})]})}function lu(e,a){if(e===1/0)return;let t=Number((BigInt(e)+BigInt(a)-BigInt(1))/BigInt(a));return Number.isSafeInteger(t)?t:Number.MAX_SAFE_INTEGER}function su(e,a){let t=e.meta,o=a.meta;return e.id==="__ps_select"||a.id==="__ps_select"?1:t===void 0||o===void 0?0:t.isInPrimaryKey&&!o.isInPrimaryKey?-1:!t.isInPrimaryKey&&o.isInPrimaryKey?1:t.name.localeCompare(o.name)}import{Slot as fu}from"@radix-ui/react-slot";import{useCallback as du,useEffect as nu}from"react";import{useQuery as uu}from"@tanstack/react-query";var Qo=-1;function _o(){let{adapter:e}=F();return uu({initialData:{schemas:{[e.defaultSchema||"db"]:{tables:{}}},timezone:"UTC"},initialDataUpdatedAt:Qo,queryFn:async({signal:a})=>{let[t,o]=await e.introspect({abortSignal:a});if(t)throw t;return o},queryKey:["introspection"],staleTime:a=>a.state.dataUpdatedAt===Qo?0:1/0})}function Zo(){let{activeTable:e,setActiveTable:a,adapter:t}=F(),{data:o,isLoading:r}=_o(),l=Object.values(o.schemas[t.defaultSchema||"db"]?.tables||{}),[s]=l,[u,d]=je({table:{defaultValue:null,parse:c=>c,serialize:c=>c??""},schema:{defaultValue:"",parse:c=>c,serialize:c=>c??""}}),[,n]=Te("pageIndex",{parse:c=>c,serialize:c=>c??""}),[,i]=Te("sort",{parse:c=>c,serialize:c=>c??""});nu(()=>{if(!r){if(u?.table&&l.length>0){let c=l.find(y=>y.name===u.table);if(c){a(c);return}}l.length>0&&!e&&(a(s||null),s&&d({table:s.name,schema:s.schema}))}},[r,u,l,s,e,a,d]);let g=du(c=>{e!==c&&(a(c),d({table:c.name,schema:c.schema}),n(null),i(null))},[e,a,d,n,i]);return{tables:l,activeTable:e,isLoading:r,handleTableChange:g}}import{jsx as ae,jsxs as pu}from"react/jsx-runtime";function Se(){let{tables:e,activeTable:a,isLoading:t,handleTableChange:o}=Zo();return ae("div",{className:"ps-flex ps-flex-col ps-w-64 ps-gap-4 ps-shrink-0 ps-overflow-y-auto ps-max-h-full ps-min-h-0 ps-rounded-lg ps-border ps-bg-card ps-text-card-foreground ps-shadow-xs",children:ae(Se.Block,{label:"Tables",children:e.length>0?e.map(r=>ae(Se.Item,{isActive:a===r,onClick:()=>{o(r)},className:"ps-capitalize ps-py-1 ps-font-mono ps-text-xs ps-text-foreground/60 hover:ps-text-foreground ps-transition-all ps-cursor-pointer data-[active=true]:ps-bg-primary/5 data-[active=true]:ps-foreground data-[active=true]:ps-text-foreground",children:r.name},`${r.schema}-${r.name}`)):t?ae(Se.Item,{children:"Loading..."}):ae(Se.Item,{children:"No tables found"})})})}var iu=({className:e,label:a,children:t,...o})=>pu("div",{className:e,...o,children:[ae("div",{className:"ps-pt-4 ps-pb-2 ps-px-4",children:ae("h2",{className:"ps-text-sm ps-font-medium",children:a})}),ae("nav",{"aria-label":a,className:"ps-flex ps-flex-col ps-gap-px ps-pb-3",children:t})]}),cu=({className:e,asChild:a=!1,isActive:t,size:o,...r})=>ae(a?fu:"button",{"data-sidebar":"menu-button","data-size":o,"data-active":t,className:m("ps-py-1.5 ps-px-4 ps-text-sm ps-font-medium ps-flex ps-gap-2 ps-items-center ps-border ps-border-transparent ps-bg-transparent ps-hover:bg-muted/50",e),...r,children:ae("span",{className:"ps-truncate",children:r.children})});Se.Block=iu;Se.Item=cu;import{jsx as Fe,jsxs as xu}from"react/jsx-runtime";function mu(e){let{adapter:a,onError:t}=e;return a?Fe(Et,{adapter:a,onError:t,children:Fe("div",{className:"ps-flex ps-flex-col ps-w-full ps-min-h-0 ps-max-h-full",children:xu("div",{className:"ps-flex ps-gap-4 ps-w-full ps-bg-background ps-relative ps-max-h-full ps-min-h-full",children:[Fe(Se,{}),Fe("div",{className:"ps-flex ps-w-full ps-flex-col ps-bg-slate-100 ps-border ps-rounded-lg ps-self-start ps-h-full ps-min-h-full ps-max-h-full ps-overflow-clip",children:Fe(Xo,{})})]})})}):(console.error("No adapter provided to Studio component"),Fe("div",{children:"Error: No adapter provided"}))}export{mu as Studio};
20
+ `}}),p.createElement("div",{style:{flex:"1 1 500px",minHeight:"40%",maxHeight:"100%",overflow:"auto",borderRight:`1px solid ${j.grayAlt}`,display:"flex",flexDirection:"column"}},p.createElement("div",{style:{padding:".5em",background:j.backgroundAlt,display:"flex",justifyContent:"space-between",alignItems:"center"}},p.createElement(fo,{"aria-hidden":!0,style:{marginRight:".5em"},onClick:()=>l(!1)}),p.createElement("div",{style:{marginRight:"auto",fontSize:"clamp(.8rem, 2vw, 1.3rem)",fontWeight:"bold"}},"React Table"," ",p.createElement("span",{style:{fontWeight:100}},"Devtools")),p.createElement("div",{style:{display:"flex",flexDirection:"column"}},r?p.createElement(as,{type:"button","aria-label":"Close React Table Devtools",onClick:()=>{l(!1)}},"Close"):null)),p.createElement("div",{style:{display:"flex",flexWrap:"wrap",overflowY:"auto",flex:"1"}},p.createElement("div",{style:{flex:"1 1 auto",padding:".5em"}},p.createElement(Y,{label:"Instance",value:o,defaultExpanded:!1}),p.createElement("div",{style:{height:".5rem"}}),p.createElement(Y,{label:"State",value:o.getState(),defaultExpanded:!1}),p.createElement("div",{style:{height:".5rem"}}),p.createElement(Y,{label:"Columns",value:o.getAllColumns(),defaultExpanded:!1})),p.createElement("div",{style:{flex:"1 1 auto",padding:".5em"}},p.createElement(Y,{label:"Core Model",value:o.getCoreRowModel(),defaultExpanded:!1}),p.createElement(Y,{label:"Filtered Model",value:o.getFilteredRowModel(),defaultExpanded:!1}),p.createElement(Y,{label:"Sorted Model",value:o.getSortedRowModel(),defaultExpanded:!1}),p.createElement(Y,{label:"Grouped Model",value:o.getGroupedRowModel(),defaultExpanded:!1}),p.createElement(Y,{label:"Expanded Model",value:o.getExpandedRowModel(),defaultExpanded:!1}))))))});import{useEffect as ks,useMemo as Rs,useState as rt}from"react";import{flexRender as ps}from"@tanstack/react-table";import*as w from"@radix-ui/react-dropdown-menu";import*as pe from"react";import{jsx as E,jsxs as tt}from"react/jsx-runtime";var co=w.Root,po=w.Trigger;var ss=pe.forwardRef(({className:e,inset:a,children:t,...o},r)=>tt(w.SubTrigger,{ref:r,className:m("ps-flex ps-cursor-default ps-select-none ps-items-center ps-gap-2 ps-rounded-sm ps-px-2 ps-py-1.5 ps-text-sm ps-outline-none focus:ps-bg-accent data-[state=open]:ps-bg-accent [&_svg]:ps-pointer-events-none [&_svg]:ps-size-4 [&_svg]:ps-shrink-0",a&&"ps-pl-8",e),...o,children:[t,E(se,{className:"ps-ml-auto"})]}));ss.displayName=w.SubTrigger.displayName;var us=pe.forwardRef(({className:e,...a},t)=>E(w.SubContent,{ref:t,className:m("ps-z-50 ps-min-w-[8rem] ps-overflow-hidden ps-rounded-md ps-border ps-bg-popover ps-p-1 ps-text-popover-foreground ps-shadow-lg data-[state=open]:ps-animate-in data-[state=closed]:ps-animate-out data-[state=closed]:ps-fade-out-0 data-[state=open]:ps-fade-in-0 data-[state=closed]:ps-zoom-out-95 data-[state=open]:ps-zoom-in-95 data-[side=bottom]:ps-slide-in-from-top-2 data-[side=left]:ps-slide-in-from-right-2 data-[side=right]:ps-slide-in-from-left-2 data-[side=top]:ps-slide-in-from-bottom-2 ps-origin-[--radix-dropdown-menu-content-transform-origin]",e),...a}));us.displayName=w.SubContent.displayName;var at=pe.forwardRef(({className:e,sideOffset:a=4,...t},o)=>E(w.Portal,{children:E(w.Content,{ref:o,sideOffset:a,className:m("ps-z-50 ps-max-h-[var(--radix-dropdown-menu-content-available-height)] ps-min-w-[8rem] ps-overflow-y-auto ps-overflow-x-hidden ps-rounded-md ps-border ps-bg-popover ps-p-1 ps-text-popover-foreground ps-shadow-md","data-[state=open]:ps-animate-in data-[state=closed]:ps-animate-out data-[state=closed]:ps-fade-out-0 data-[state=open]:ps-fade-in-0 data-[state=closed]:ps-zoom-out-95 data-[state=open]:ps-zoom-in-95 data-[side=bottom]:ps-slide-in-from-top-2 data-[side=left]:ps-slide-in-from-right-2 data-[side=right]:ps-slide-in-from-left-2 data-[side=top]:ps-slide-in-from-bottom-2 ps-origin-[--radix-dropdown-menu-content-transform-origin]",e),...t})}));at.displayName=w.Content.displayName;var ha=pe.forwardRef(({className:e,inset:a,...t},o)=>E(w.Item,{ref:o,className:m("ps-relative ps-flex ps-cursor-default ps-select-none ps-items-center ps-gap-2 ps-rounded-sm ps-px-2 ps-py-1.5 ps-text-sm ps-outline-none ps-transition-colors focus:ps-bg-accent focus:ps-text-accent-foreground data-[disabled]:ps-pointer-events-none data-[disabled]:ps-opacity-50 [&>svg]:ps-size-4 [&>svg]:ps-shrink-0",a&&"ps-pl-8",e),...t}));ha.displayName=w.Item.displayName;var ds=pe.forwardRef(({className:e,children:a,checked:t,...o},r)=>tt(w.CheckboxItem,{ref:r,className:m("ps-relative ps-flex ps-cursor-default ps-select-none ps-items-center ps-rounded-sm ps-py-1.5 ps-pl-8 ps-pr-2 ps-text-sm ps-outline-none ps-transition-colors focus:ps-bg-accent focus:ps-text-accent-foreground data-[disabled]:ps-pointer-events-none data-[disabled]:ps-opacity-50",e),checked:t,...o,children:[E("span",{className:"ps-absolute ps-left-2 ps-flex ps-h-3.5 ps-w-3.5 ps-items-center ps-justify-center",children:E(w.ItemIndicator,{children:E(le,{className:"ps-h-4 ps-w-4"})})}),a]}));ds.displayName=w.CheckboxItem.displayName;var ns=pe.forwardRef(({className:e,children:a,...t},o)=>tt(w.RadioItem,{ref:o,className:m("ps-relative ps-flex ps-cursor-default ps-select-none ps-items-center ps-rounded-sm ps-py-1.5 ps-pl-8 ps-pr-2 ps-text-sm ps-outline-none ps-transition-colors focus:ps-bg-accent focus:ps-text-accent-foreground data-[disabled]:ps-pointer-events-none data-[disabled]:ps-opacity-50",e),...t,children:[E("span",{className:"ps-absolute ps-left-2 ps-flex ps-h-3.5 ps-w-3.5 ps-items-center ps-justify-center",children:E(w.ItemIndicator,{children:E(be,{className:"ps-h-2 ps-w-2 ps-fill-current"})})}),a]}));ns.displayName=w.RadioItem.displayName;var fs=pe.forwardRef(({className:e,inset:a,...t},o)=>E(w.Label,{ref:o,className:m("ps-px-2 ps-py-1.5 ps-text-sm ps-font-semibold",a&&"ps-pl-8",e),...t}));fs.displayName=w.Label.displayName;var is=pe.forwardRef(({className:e,...a},t)=>E(w.Separator,{ref:t,className:m("ps--mx-1 ps-my-1 ps-h-px ps-bg-muted",e),...a}));is.displayName=w.Separator.displayName;var cs=({className:e,...a})=>E("span",{className:m("ps-ml-auto ps-text-xs ps-tracking-widest ps-opacity-60",e),...a});cs.displayName="DropdownMenuShortcut";import{Fragment as ot,jsx as q,jsxs as me}from"react/jsx-runtime";function mo(e){let{header:a,className:t}=e;return me("div",{className:m("ps-flex ps-items-center ps-justify-between ps-w-full ps-h-full ps-flex-0",t),children:[me("div",{className:"ps-flex ps-items-center ps-justify-between ps-w-full",children:[q("div",{className:"ps-flex ps-items-center ps-gap-2 ps-overflow-hidden ps-text-ellipsis ps-font-mono ps-text-xs",children:a.isPlaceholder?null:q("span",{className:"ps-flex ps-min-w-0",children:q("span",{className:"ps-min-w-0 ps-overflow-hidden ps-text-ellipsis ps-text-foreground/90",children:ps(a.column.columnDef.header,a.getContext())})})}),q("span",{className:"ps-relative ps-gap-1",children:a.column.getCanPin()&&a.column.id!=="select"&&me(co,{children:[q(po,{asChild:!0,children:q(N,{variant:"ghost",size:"sm",className:"ps-px-0 ps-h-6 ps-w-6",children:q(He,{size:12})})}),me(at,{children:[a.column.getCanSort()&&q(ha,{onClick:()=>a.column.toggleSorting(),children:q("span",{className:"ps-flex ps-items-center ps-gap-2",children:a.column.getNextSortingOrder()==="desc"?me(ot,{children:[q(Ie,{size:16}),"Sort descending"]}):a.column.getNextSortingOrder()==="asc"?me(ot,{children:[q(Ee,{size:16}),"Sort ascending"]}):me(ot,{children:[q(Ze,{size:16}),"Cancel sorting"]})})}),q(ha,{onClick:()=>a.column.pin(a.column.getIsPinned()?!1:"left"),children:a.column.getIsPinned()?me("span",{className:"ps-flex ps-items-center ps-gap-2",children:[q(Qe,{size:16}),"Unpin column"]}):me("span",{className:"ps-flex ps-items-center ps-gap-2",children:[q(_e,{size:16}),"Pin column"]})})]})]})})]}),a.column.getCanResize()&&q("button",{type:"button",tabIndex:0,onMouseDown:o=>{o.stopPropagation(),a.getResizeHandler()(o)},onTouchStart:o=>{o.stopPropagation(),a.getResizeHandler()(o)},onClick:o=>o.stopPropagation(),onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),o.stopPropagation(),a.getResizeHandler()(o))},className:m("ps-absolute ps-right-0 ps-top-0 ps-h-full ps-w-px ps-cursor-col-resize ps-border ps-border-transparent hover:ps-border-table-border"),"aria-label":"Resize column"})]})}import{jsx as xo}from"react/jsx-runtime";function Lo({className:e}){return xo("div",{"data-loading-bar":!0,className:m("ps-h-[2px] ps-w-full ps-overflow-hidden ps-bg-gray-200 ps-z-50",e),children:xo("div",{className:"ps-animate-indeterminate-bar ps-h-full ps-w-1/3 ps-rounded-r-full ps-bg-purple-600"})})}import*as go from"react";import{jsx as ms}from"react/jsx-runtime";var ta=go.forwardRef(({className:e,type:a,...t},o)=>ms("input",{type:a,className:m("ps-flex ps-h-9 ps-w-full ps-rounded-md ps-border ps-border-input ps-bg-transparent ps-px-3 ps-py-1 ps-shadow-sm ps-transition-colors file:ps-border-0 file:ps-bg-transparent file:ps-text-sm file:ps-font-medium file:ps-text-foreground placeholder:ps-text-muted-foreground focus-visible:ps-outline-none focus-visible:ps-ring-1 focus-visible:ps-ring-ring disabled:ps-cursor-not-allowed disabled:ps-opacity-50",e),ref:o,...t}));ta.displayName="Input";import{jsx as H,jsxs as Sa}from"react/jsx-runtime";function Co(e){let{table:a,variant:t="basic"}=e,{pageIndex:o}=a.getState().pagination,r=a.getPageCount();return H("div",{className:"ps-rounded-b-lg ps-overflow-clip ps-sticky ps-bottom-0 ps-left-0 ps-border-t-0 w-full ps-z-20 ps-p-0",children:H("div",{className:"ps-flex ps-items-center ps-justify-between ps-space-x-2 ps-py-2 ps-px-2 ps-border-t ps-border-table-border ps-backdrop-blur-sm ps-bg-table-head/90",children:t==="basic"?Sa("div",{className:"ps-flex ps-items-center ps-space-x-2",children:[H(N,{variant:"outline",size:"sm",className:"ps-h-9",onClick:()=>a.previousPage(),disabled:!a.getCanPreviousPage(),children:"Previous"}),H(N,{variant:"outline",size:"sm",className:"ps-h-9",onClick:()=>a.nextPage(),disabled:!a.getCanNextPage(),children:"Next"})]}):H("div",{className:"ps-flex ps-items-center ps-space-x-2",children:Sa("div",{className:"ps-flex ps-items-center ps-space-x-2",children:[H(N,{variant:"outline",onClick:()=>a.setPageIndex(0),disabled:!a.getCanPreviousPage(),children:H(Ge,{className:"ps-w-4 ps-h-4"})}),H(N,{variant:"outline",onClick:()=>a.previousPage(),disabled:!a.getCanPreviousPage(),children:H(ze,{className:"ps-w-4 ps-h-4"})}),Sa("div",{className:"ps-flex ps-items-center ps-gap-1 ps-text-xs ps-font-medium",children:["Page",H(ta,{type:"number",min:1,max:r,value:o+1,className:"ps-w-16",onChange:l=>{let s=l.target.value?Number(l.target.value)-1:0;a.setPageIndex(s)}}),Sa("span",{className:"ps-shrink-0 ps-w-max",children:["of ",r]})]}),H(N,{variant:"outline",onClick:()=>a.nextPage(),disabled:!a.getCanNextPage(),children:H(se,{className:"ps-w-4 ps-h-4"})}),H(N,{variant:"outline",onClick:()=>a.setPageIndex(r-1),disabled:!a.getCanNextPage(),children:H(Ve,{className:"ps-w-4 ps-h-4"})})]})})})})}function xe(e){let a=e.getIsPinned(),t=a==="right"&&e.getIsFirstColumn("right");return{className:m("ps-group ps-border-r ps-border-b ps-border-table-border last:ps-border-r-0","ps-overflow-hidden ps-whitespace-nowrap ps-text-ellipsis",a&&["ps-sticky ps-bg-background ps-z-20",a==="left"?"ps-left-0":"ps-right-0"],!a&&"ps-relative ps-z-10",a&&t&&"ps-shadow-[-1px_0_0_0_hsl(var(--border))]"),style:{width:e.getSize(),left:a==="left"?`${e.getStart("left")}px`:void 0,right:a==="right"?`${e.getAfter("right")}px`:void 0}}}import{Fragment as Ds,jsx as D,jsxs as ba}from"react/jsx-runtime";var Ms=e=>{let{children:a,className:t,header:o,style:r}=e,{attributes:l,listeners:s,transform:u,transition:d,setNodeRef:n,isDragging:i}=bs({id:o.id});return D(xa,{ref:n,...l,...s,style:{cursor:"grab",touchAction:"none",transform:ws.Transform.toString(u),transition:d,...r,"--dragging-width":`${o.getSize()}px`},className:m(t,"ps-select-none ps-touch-none ps-sticky ps-top-0 ps-z-20 ps-bg-table-head",o.column.getIsPinned()&&"ps-sticky ps-z-30",i&&"!ps-z-50 ps-w-[var(--dragging-width)] ps-border-2 ps-border-violet-500"),children:D("div",{className:"ps-w-full",children:a})})};function ho(e){let{columnDefs:a,getBeforeRows:t,isLoading:o,isProcessing:r,onPaginationChange:l,onRowSelectionChange:s,onSortingChange:u,pageCount:d,paginationState:n,rows:i,rowSelectionState:g,sortingState:c}=e,[y,P]=rt([]),[x,C]=rt({left:["__ps_select"],right:[]}),[L,v]=rt({}),z=Rs(()=>Io(c),[c]),K=o||r;ks(()=>P(a.map(({accessorKey:A})=>A)),[]);function Le({active:A,over:h}){h&&A.id!==h.id&&P(R=>{let S=R.indexOf(A.id),J=R.indexOf(h.id);return Is(R,S,J)})}let ve=gs(Ls,{activationConstraint:{distance:10}}),ke=Cs(ve),V=vs({columnResizeMode:"onChange",columns:a,data:i,defaultColumn:{size:200,minSize:50,maxSize:500},enableColumnPinning:!0,enableColumnResizing:!0,enableRowSelection:!0,enableSorting:!!(u&&c),getCoreRowModel:Ps(),getRowId:({__ps_rowid:A})=>A,manualPagination:!0,manualSorting:!0,onColumnOrderChange:P,onColumnPinningChange:C,onColumnSizingChange:v,onPaginationChange:l,onRowSelectionChange:s,onSortingChange:A=>u?.(h=>(typeof A=="function"&&(A=A(Io(h))),As(A))),pageCount:d,state:{columnOrder:y,columnPinning:x,columnSizing:L,pagination:n,rowSelection:g,sorting:z}});return ba(Ds,{children:[process.env.NODE_ENV==="production"?null:D(io,{table:V}),ba("div",{"data-studio":"content",className:"ps-flex-1 ps-w-0 ps-h-0 ps-min-w-full ps-flex ps-flex-col ps-relative ps-bg-slate-100",children:[D("div",{children:K&&D(Lo,{className:"ps-absolute -ps-top-[1px] ps-left-0 ps-right-0"})}),D(xs,{sensors:ke,onDragEnd:Le,children:ba(Na,{className:"ps-table-fixed ps-border-separate ps-border-spacing-0 ps-box-border",children:[D("colgroup",{children:D("col",{style:{width:"40px",minWidth:0,maxWidth:"40px"}})}),D(Ua,{children:V.getHeaderGroups().map(A=>D(we,{children:D(Ss,{items:A.headers.filter(h=>h.id!=="__ps_select").map(h=>h.id),strategy:hs,children:A.headers.map(h=>h.id==="__ps_select"?D(xa,{style:xe(h.column).style,className:m(xe(h.column).className,"ps-select-none ps-sticky ps-top-0 ps-z-20 ps-bg-table-head ps-p-0 ps-table-cell-select",h.column.getIsPinned()&&"ps-sticky ps-z-30"),children:D("div",{className:"ps-flex ps-items-center ps-justify-center ps-h-full",children:ys(h.column.columnDef.header,h.getContext())})},h.id):D(Ms,{header:h,table:V,...xe(h.column),children:D(mo,{header:h})},h.id))})},A.id))}),ba(Ea,{children:[t?.(V),V.getRowModel().rows?.length?V.getRowModel().rows.map(A=>D(we,{className:m("ps-bg-table-row ps-odd:bg-table-row-odd ps-group [&:last-of-type_td]:ps-border-b-0"),children:A.getVisibleCells().map((h,R)=>{if(h.column.id==="__ps_select")return D(Be,{style:xe(h.column).style,className:m(xe(h.column).className,"ps-table-cell-select"),children:typeof h.column.columnDef.cell=="function"&&(S=>{let J=h.column.columnDef.cell(h.getContext());return D(J,{className:"ps-w-full ps-h-full"})})({className:""})},h.id);if(typeof h.column.columnDef.cell=="function"){let S=h.column.columnDef.cell(h.getContext());return D(S,{...xe(h.column)},R)}return null})},A.id)):D(we,{children:D(Be,{colSpan:a.length,className:"ps-h-24 ps-text-center",children:o?"Loading...":"No results."})})]})]})}),!d||d<2?null:D(Co,{table:V,variant:"numeric"})]})]})}function Io(e){return e?.map(a=>({id:a.column,desc:a.direction==="desc"}))||[]}function As(e){return e.map(a=>({column:a.id,direction:a.desc?"desc":"asc"}))}import*as Z from"@radix-ui/react-tooltip";import*as bo from"react";import{jsx as So}from"react/jsx-runtime";var wo=Z.Provider,yo=Z.Root,Po=Z.Trigger,lt=bo.forwardRef(({className:e,sideOffset:a=4,...t},o)=>So(Z.Portal,{children:So(Z.Content,{ref:o,sideOffset:a,className:m("ps-z-50 ps-overflow-hidden ps-rounded-md ps-bg-primary ps-px-3 ps-py-1.5 ps-text-xs ps-text-primary-foreground ps-animate-in ps-fade-in-0 ps-zoom-in-95 data-[state=closed]:ps-animate-out data-[state=closed]:ps-fade-out-0 data-[state=closed]:ps-zoom-out-95 data-[side=bottom]:ps-slide-in-from-top-2 data-[side=left]:ps-slide-in-from-right-2 data-[side=right]:ps-slide-in-from-left-2 data-[side=top]:ps-slide-in-from-bottom-2 ps-origin-[--radix-tooltip-content-transform-origin]",e),...t})}));lt.displayName=Z.Content.displayName;import{jsx as ye,jsxs as st}from"react/jsx-runtime";function vo({column:e}){return e.isInPrimaryKey?st("span",{className:"ps-flex ps-flex-row ps-font-medium ps-items-center ps-gap-1",children:[ye(wo,{delayDuration:300,children:st(yo,{children:[ye(Po,{asChild:!0,children:ye(Xe,{size:12})}),ye(lt,{children:ye("p",{children:"Primary Key"})})]})}),e.name]}):st("div",{className:"ps-flex ps-flex-row ps-gap-1 ps-items-center",children:[ye("span",{className:"ps-font-medium ps-truncate",children:e.name}),ye("span",{className:"ps-overflow-hidden ps-text-ellipsis ps-text-muted-foreground/70 ps-lowercase ps-truncate",children:e.datatype.name})]})}import{isObjectType as Js}from"remeda";import{motion as Ao}from"motion/react";import qs,{useState as Do}from"react";import*as ut from"@radix-ui/react-label";import{cva as Ts}from"class-variance-authority";import*as ko from"react";import{jsx as Fs}from"react/jsx-runtime";var Bs=Ts("ps-text-sm ps-font-medium ps-leading-none peer-disabled:ps-cursor-not-allowed peer-disabled:ps-opacity-70"),oa=ko.forwardRef(({className:e,...a},t)=>Fs(ut.Root,{ref:t,className:m(Bs(),e),...a}));oa.displayName=ut.Root.displayName;import*as ra from"@radix-ui/react-switch";import*as Mo from"react";import{jsx as Ro}from"react/jsx-runtime";var la=Mo.forwardRef(({className:e,...a},t)=>Ro(ra.Root,{className:m("ps-peer ps-inline-flex ps-h-5 ps-w-9 ps-shrink-0 ps-cursor-pointer ps-items-center ps-rounded-full ps-border-2 ps-border-transparent ps-shadow-sm ps-transition-colors focus-visible:ps-outline-none focus-visible:ps-ring-2 focus-visible:ps-ring-ring focus-visible:ps-ring-offset-2 focus-visible:ps-ring-offset-background disabled:ps-cursor-not-allowed disabled:ps-opacity-50 data-[state=checked]:ps-bg-primary data-[state=unchecked]:ps-bg-input",e),...a,ref:t,children:Ro(ra.Thumb,{className:m("ps-pointer-events-none ps-block ps-h-4 ps-w-4 ps-rounded-full ps-bg-background ps-shadow-lg ps-ring-0 ps-transition-transform data-[state=checked]:ps-translate-x-4 data-[state=unchecked]:ps-translate-x-0")})}));la.displayName=ra.Root.displayName;import{Fragment as Os,jsx as Pe,jsxs as sa}from"react/jsx-runtime";var ee=({onSave:e,onCancel:a,onClose:t,onNullChange:o,isNull:r=!1,readonly:l})=>Pe("div",{className:"ps-flex ps-flex-row ps-gap-1 ps-border-t ps-border-table-border ps-text-xs ps-",children:!l&&sa(Os,{children:[sa("div",{className:"ps-flex ps-flex-col ps-gap-1 ps-p-2 ps-mr-auto",children:[sa("button",{className:"ps-flex ps-flex-row ps-gap-1 ps-items-center ps-cursor-pointer",onClick:()=>{e&&e(),t&&t()},children:[Pe("kbd",{className:"ps-inline-flex ps-justify-center ps-items-center ps-h-6 ps-w-6 ps-rounded-md ps-bg-muted ps-text-muted-foreground",children:Pe(Ke,{size:12,strokeWidth:2})})," ","Save changes"]}),sa("button",{className:"ps-flex ps-flex-row ps-gap-1 ps-items-center ps-cursor-pointer",onClick:()=>{a&&a(),t&&t()},children:[Pe("kbd",{className:"ps-inline-flex ps-justify-center ps-items-center ps-h-6 ps-w-6 ps-rounded-md ps-bg-muted ps-text-muted-foreground ps-text-[8px] ps-leading-none ps-font-semibold",children:"Esc"})," ","Cancel changes"]})]}),o&&Pe("div",{className:"ps-flex ps-flex-col ps-gap-1 ps-p-2",children:sa("label",{className:"ps-flex ps-flex-row ps-gap-1 ps-items-center",htmlFor:"set-nullable",children:[Pe(la,{id:"set-nullable",checked:r,onCheckedChange:n=>{o&&o(n)}}),Pe("span",{children:"Set to NULL"})]})})]})});import{Fragment as Ns,jsx as ua,jsxs as To}from"react/jsx-runtime";function Bo(e){let{value:a,onSubmit:t,column:o,readonly:r}=e,l=o.nullable===!0,[s,u]=Do(a===null?!1:a),[d,n]=Do(a===null),i=a===null?!1:a,g=L=>{u(L)},c=L=>{n(L)},y=qs.useCallback(()=>{let L=d?null:s;return L!==a?(t(L),!0):!1},[s,a,t,d]),P=()=>{u(i),n(a===null)},{handleSave:x,handleCancel:C}=$({onSave:y,onCancel:P,readonly:r});return To(Ns,{children:[To("div",{className:"ps-flex ps-flex-row ps-items-center ps-h-[var(--studio-cell-height)] ps-gap-4 ps-py-0 ps-px-2",children:[ua(oa,{htmlFor:"boolean-input",className:"ps-sr-only",children:"Boolean"}),ua(Ao.div,{className:"ps-flex ps-items-center",initial:{opacity:0},animate:{opacity:1},transition:{duration:.24},children:ua(la,{id:"boolean-input",checked:s,onCheckedChange:g,disabled:d||r})}),ua(Ao.div,{"data-value":!0,className:"ps-inline-flex ps-items-center ps-text-xs ps-text-muted-foreground ps-font-mono",initial:{x:-40,opacity:1},animate:{x:0,opacity:1},transition:{duration:.12,delay:0},children:d?"NULL":String(s)})]}),ua(ee,{onSave:x,onCancel:C,onNullChange:l?c:void 0,isNull:d,readonly:r})]})}import{useCallback as Es,useState as Oo}from"react";import{cva as Us}from"class-variance-authority";import{jsx as Bp}from"react/jsx-runtime";var Fo=Us("ps-inline-flex ps-items-center ps-rounded-md ps-border ps-px-2.5 ps-py-0.5 ps-text-xs ps-font-semibold ps-transition-colors focus:ps-outline-none focus:ps-ring-2 focus:ps-ring-ring focus:ps-ring-offset-2",{variants:{variant:{default:"ps-border-transparent ps-bg-primary ps-text-primary-foreground ps-shadow hover:ps-bg-primary/80",secondary:"ps-border-transparent ps-bg-secondary ps-text-secondary-foreground hover:ps-bg-secondary/80",destructive:"ps-border-transparent ps-bg-destructive ps-text-destructive-foreground ps-shadow hover:ps-bg-destructive/80",outline:"ps-text-foreground"}},defaultVariants:{variant:"default"}});import{Fragment as Hs,jsx as wa,jsxs as zs}from"react/jsx-runtime";function qo(e){let{onSubmit:a,column:t,value:o,options:r=[],readonly:l}=e,s=t.nullable===!0,u=String(o),[d,n]=Oo(u),[i,g]=Oo(o===null),c=v=>{n(v)},y=v=>{g(v)},P=Es(()=>i?o!==null?(a(null),!0):!1:d!==u?(a(d),!0):!1,[d,u,a,i,o]),x=()=>{n(u),g(o===null)},{handleSave:C,handleCancel:L}=$({onSave:P,onCancel:x,readonly:l});return zs(Hs,{children:[wa("div",{className:"ps-flex ps-items-center ps-gap-2 ps-font-mono ps-h-[var(--studio-cell-height)] ps-px-2 ps-py-0 ps-w-full ps-text-xs ps-text-muted-foreground",children:d}),wa("div",{className:"ps-flex ps-flex-row ps-gap-2 ps-p-2",children:r.map(v=>wa("button",{onClick:()=>c(v),className:Fo({variant:v===d?"default":"outline"}),disabled:i||l,children:v},v))}),wa(ee,{onSave:C,onCancel:L,onNullChange:s?y:void 0,isNull:i,readonly:l})]})}import Gs,{useState as No}from"react";import{Fragment as Vs,jsx as dt,jsxs as Ws}from"react/jsx-runtime";function Uo(e){let{value:a,onSubmit:t,column:o,readonly:r}=e,l=o.nullable===!0,s=a===null?"":JSON.stringify(a,null,2),[u,d]=No(s),[n,i]=No(a===null),g=L=>{d(L.target.value)},c=L=>{i(L)},y=Gs.useCallback(()=>{if(n)return a!==null?(t(null),!0):!1;let L=u===""?null:JSON.parse(u);return L!==a?(t(L),!0):!1},[u,a,t,n]),P=()=>{d(s),i(a===null)},{handleSave:x,handleCancel:C}=$({onSave:y,onCancel:P,readonly:r});return Ws(Vs,{children:[dt("div",{className:"ps-flex ps-flex-row ps-items-center ps-gap-4 ps-py-0",children:dt("textarea",{rows:5,value:u,onChange:g,disabled:n||r,className:"ps-cell-input-base ps-appearance-none ps-w-full ps-font-mono ps-border-none ps-outline-none ps-shadow-none ps-bg-transparent focus-visible:ps-ring-0 ps-resize ps-px-[var(--studio-cell-spacing)]",lang:"en_EN"})}),dt(ee,{onSave:x,onCancel:C,onNullChange:l?c:void 0,isNull:n,readonly:r})]})}import Ks,{useState as Eo}from"react";import{Fragment as Xs,jsx as nt,jsxs as Ho}from"react/jsx-runtime";function zo(e){let{value:a,onSubmit:t,column:o,readonly:r}=e,l=o.nullable===!0,[s,u]=Eo(a===null?"":String(a)),[d,n]=Eo(a===null),i=a===null?"":String(a),g=L=>{u(L.target.value)},c=L=>{n(L)},y=Ks.useCallback(()=>{if(d)return a!==null?(t(null),!0):!1;let L=s===""?null:Number(s);return s!==a?(t(L),!0):!1},[s,a,t,d]),P=()=>{u(i),n(a===null)},{handleSave:x,handleCancel:C}=$({onSave:y,onCancel:P,readonly:r});return Ho(Xs,{children:[Ho("div",{className:"ps-flex ps-flex-row ps-items-center ps-h-[var(--studio-cell-height)] ps-gap-4 ps-py-0",children:[nt(oa,{htmlFor:"numeric-input",className:"ps-sr-only",children:"Numeric"}),nt("input",{type:"text",inputMode:"numeric",pattern:"\\d*",value:s,onChange:g,disabled:d||r,className:"ps-cell-input-leading ps-appearance-none ps-w-full ps-font-mono ps-border-none ps-outline-none ps-shadow-none ps-bg-transparent focus-visible:ps-ring-0 ps-resize-none ps-px-[var(--studio-cell-spacing)]",step:"any",lang:"en_EN"})]}),nt(ee,{onSave:x,onCancel:C,onNullChange:l?c:void 0,isNull:d,readonly:r})]})}import _s from"react";import{useState as Qs}from"react";function Go(e){let{initialValue:a}=e,[t,o]=Qs(a??"");return{handleOnChange:l=>{o(l.target.value)},value:t}}import{Fragment as Zs,jsx as ft,jsxs as Vo}from"react/jsx-runtime";function Wo(e){let{onSubmit:a,value:t,readonly:o}=e,r=String(t),{handleOnChange:l,value:s}=Go({initialValue:r});function u(c){c.preventDefault(),s!==r&&a(s)}let d=_s.useCallback(()=>s!==r?(a(s),!0):!1,[s,r,a]),n=()=>{},{handleSave:i,handleCancel:g}=$({onSave:d,onCancel:n,readonly:o});return Vo(Zs,{children:[Vo("form",{onSubmit:u,children:[ft(ta,{className:"ps-cell-input-leading ps-font-mono ps-border-none ps-shadow-none focus-visible:ps-ring-0 ps-resize-none ps-px-[var(--studio-cell-spacing)]",onChange:l,type:"text",value:s,disabled:o}),ft("input",{type:"submit",className:"ps-sr-only"})]}),ft(ee,{onSave:i,onCancel:g,readonly:o})]})}import{jsx as da}from"react/jsx-runtime";function ya(e){let{cell:a,column:t,onSubmit:o}=e,{group:r,options:l,isArray:s}=t.datatype,u=t.isComputed||e.readonly,d=a.getValue(),n=d===void 0?"":d;return r==="json"||s?da(Uo,{onSubmit:o,value:n,column:t,readonly:u}):r==="boolean"?da(Bo,{onSubmit:o,value:n,column:t,readonly:u}):r==="enum"?da(qo,{onSubmit:o,value:n,options:l,column:t,readonly:u}):r==="numeric"?da(zo,{onSubmit:o,value:n,column:t,readonly:u}):da(Wo,{onSubmit:o,value:Js(n)?JSON.stringify(n):n,readonly:u})}import{useReactTable as $s}from"@tanstack/react-table";import{omit as js}from"remeda";import{Fragment as Ys,jsx as na}from"react/jsx-runtime";function Ko(e){let{table:a,stagedRows:t,setStagedRows:o}=e;function r(u,d){o(n=>{let i=[...n];return i[u]={...i[u],...d},i})}let l=Object.values(a.options.columns).map(u=>u.id==="__ps_select"?{...u,cell(){return()=>na(Ye,{})}}:{...u,cell({cell:d}){return n=>na(Ca,{cellComponent:ga({cell:d,column:u.meta,props:n}),inputComponent:ya({cell:d,column:u.meta,onSubmit(i){r(n.rowIndex,{[u.id]:i})},readonly:!1})})}}),s=$s({...a.options,columns:l,enableSorting:!1,onPaginationChange:void 0,onSortingChange:void 0,data:t,state:js(a.options.state,["pagination","sorting"])});return na(Ys,{children:s.getRowModel().rows.map((u,d)=>na(we,{children:u.getVisibleCells().map((n,i)=>{if(typeof n.column.columnDef.cell=="function"){let g=n.column.columnDef.cell(n.getContext());return na(g,{...xe(n.column),rowIndex:d},i)}return null})},d))})}import{Fragment as it,jsx as G,jsxs as ct}from"react/jsx-runtime";function Xo(e){let a=!!eu(),{activeTable:t,onError:o}=F(),{sortingState:r,setSortingState:l}=Qt(),{paginationState:s,setPaginationState:u}=ma(),[d,n]=ou([]),{data:i,isFetching:g}=Gt({...s,sortOrder:r}),{deleteSelection:c,isSelecting:y,rowSelectionState:P,setRowSelectionState:x}=Xt(i),C=Wt(),L=zt(),v=Vt(),z=tu(()=>!Object.values(t?.columns??{}).some(S=>S.isInPrimaryKey),[t]);if(au(()=>n([]),[t]),!t)return null;function K(){L.mutate(d,{onError:o,onSuccess(){ru.success("Rows inserted successfully"),n([])}})}function Le(){n(R=>[...R,{}])}function ve(){n([])}function ke(R,S,J){v.mutate({details:{changes:{[S.name]:R},row:J,table:t},options:{}})}let V=Object.values(t?.columns??{}).map(R=>({id:R.name,accessorKey:R.name,meta:R,header(){return vo({column:R})},cell({cell:S}){return J=>G(Ca,{cellComponent:ga({cell:S,column:R,props:J}),inputComponent:ya({cell:S,column:R,readonly:z,onSubmit(Re){return ke(Re,R,S.row.original)}})})}})),A=[{id:"__ps_select",accessorKey:"__ps_select",enablePinning:!1,meta:{disableDragging:!0},header({table:R}){return G($e,{checked:R.getIsAllRowsSelected(),onCheckedChange:S=>R.toggleAllRowsSelected(!!S),disabled:z})},cell({row:R}){return()=>G(Ja,{row:R,readonly:z})}}],h=[...V,...A].sort(su);return ct(it,{children:[G("div",{className:"ps-bg-studio-header-background ps-flex ps-w-full ps-p-2 ps-py-3 ps-border-b ps-bg-card ps-rounded-t-lg",children:G("div",{className:"ps-flex ps-items-center ps-justify-between ps-w-full ps-gap-2",children:G("div",{className:"ps-flex ps-flex-grow ps-justify-between ps-items-center",children:ct("div",{className:"ps-flex ps-items-center ps-gap-2",children:[G(N,{variant:"outline",size:"sm",onClick:Le,disabled:C>0,children:"Insert row"}),d.length>0&&ct(it,{children:[G(N,{variant:"secondary",size:"sm",onClick:K,children:"Save"}),G(N,{variant:"ghost",size:"sm",onClick:ve,children:"Cancel"})]}),y&&G(it,{children:G(N,{variant:"secondary",size:"sm",onClick:c,children:"Delete"})})]})})})}),G(ho,{columnDefs:h,getBeforeRows:R=>G(Ko,{table:R,stagedRows:d,setStagedRows:n}),isLoading:g,isProcessing:a,onPaginationChange:u,onRowSelectionChange:x,onSortingChange:l,pageCount:lu(i?.filteredRowCount??1/0,s.pageSize),paginationState:s,rows:i?.rows??[],rowSelectionState:P,sortingState:r})]})}function lu(e,a){if(e===1/0)return;let t=Number((BigInt(e)+BigInt(a)-BigInt(1))/BigInt(a));return Number.isSafeInteger(t)?t:Number.MAX_SAFE_INTEGER}function su(e,a){let t=e.meta,o=a.meta;return e.id==="__ps_select"||a.id==="__ps_select"?1:t===void 0||o===void 0?0:t.isInPrimaryKey&&!o.isInPrimaryKey?-1:!t.isInPrimaryKey&&o.isInPrimaryKey?1:t.name.localeCompare(o.name)}import{Slot as fu}from"@radix-ui/react-slot";import{useCallback as du,useEffect as nu}from"react";import{useQuery as uu}from"@tanstack/react-query";var Qo=-1;function _o(){let{adapter:e}=F();return uu({initialData:{schemas:{[e.defaultSchema||"db"]:{tables:{}}},timezone:"UTC"},initialDataUpdatedAt:Qo,queryFn:async({signal:a})=>{let[t,o]=await e.introspect({abortSignal:a});if(t)throw t;return o},queryKey:["introspection"],staleTime:a=>a.state.dataUpdatedAt===Qo?0:1/0})}function Zo(){let{activeTable:e,setActiveTable:a,adapter:t}=F(),{data:o,isLoading:r}=_o(),l=Object.values(o.schemas[t.defaultSchema||"db"]?.tables||{}),[s]=l,[u,d]=je({table:{defaultValue:null,parse:c=>c,serialize:c=>c??""},schema:{defaultValue:"",parse:c=>c,serialize:c=>c??""}}),[,n]=Te("pageIndex",{parse:c=>c,serialize:c=>c??""}),[,i]=Te("sort",{parse:c=>c,serialize:c=>c??""});nu(()=>{if(!r){if(u?.table&&l.length>0){let c=l.find(y=>y.name===u.table);if(c){a(c);return}}l.length>0&&!e&&(a(s||null),s&&d({table:s.name,schema:s.schema}))}},[r,u,l,s,e,a,d]);let g=du(c=>{e!==c&&(a(c),d({table:c.name,schema:c.schema}),n(null),i(null))},[e,a,d,n,i]);return{tables:l,activeTable:e,isLoading:r,handleTableChange:g}}import{jsx as ae,jsxs as pu}from"react/jsx-runtime";function Se(){let{tables:e,activeTable:a,isLoading:t,handleTableChange:o}=Zo();return ae("div",{className:"ps-flex ps-flex-col ps-w-64 ps-gap-4 ps-shrink-0 ps-overflow-y-auto ps-max-h-full ps-min-h-0 ps-rounded-lg ps-border ps-bg-card ps-text-card-foreground ps-shadow-xs",children:ae(Se.Block,{label:"Tables",children:e.length>0?e.map(r=>ae(Se.Item,{isActive:a===r,onClick:()=>{o(r)},className:"ps-capitalize ps-py-1 ps-font-mono ps-text-xs ps-text-foreground/60 hover:ps-text-foreground ps-transition-all ps-cursor-pointer data-[active=true]:ps-bg-primary/5 data-[active=true]:ps-foreground data-[active=true]:ps-text-foreground",children:r.name},`${r.schema}-${r.name}`)):t?ae(Se.Item,{children:"Loading..."}):ae(Se.Item,{children:"No tables found"})})})}var iu=({className:e,label:a,children:t,...o})=>pu("div",{className:e,...o,children:[ae("div",{className:"ps-pt-4 ps-pb-2 ps-px-4",children:ae("h2",{className:"ps-text-sm ps-font-medium",children:a})}),ae("nav",{"aria-label":a,className:"ps-flex ps-flex-col ps-gap-px ps-pb-3",children:t})]}),cu=({className:e,asChild:a=!1,isActive:t,size:o,...r})=>ae(a?fu:"button",{"data-sidebar":"menu-button","data-size":o,"data-active":t,className:m("ps-py-1.5 ps-px-4 ps-text-sm ps-font-medium ps-flex ps-gap-2 ps-items-center ps-border ps-border-transparent ps-bg-transparent ps-hover:bg-muted/50",e),...r,children:ae("span",{className:"ps-truncate",children:r.children})});Se.Block=iu;Se.Item=cu;import{jsx as Fe,jsxs as xu}from"react/jsx-runtime";function mu(e){let{adapter:a,onError:t}=e;return a?Fe(Et,{adapter:a,onError:t,children:Fe("div",{className:"ps-flex ps-flex-col ps-w-full ps-min-h-0 ps-max-h-full",children:xu("div",{className:"ps-flex ps-gap-4 ps-w-full ps-bg-background ps-relative ps-max-h-full ps-min-h-full",children:[Fe(Se,{}),Fe("div",{className:"ps-flex ps-w-full ps-flex-col ps-bg-slate-100 ps-border ps-rounded-lg ps-self-start ps-h-full ps-min-h-full ps-max-h-full ps-overflow-clip",children:Fe(Xo,{})})]})})}):(console.error("No adapter provided to Studio component"),Fe("div",{children:"Error: No adapter provided"}))}export{mu as Studio};
21
21
  /*! Bundled license information:
22
22
 
23
23
  lucide-react/dist/esm/shared/src/utils.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/studio-core",
3
- "version": "0.0.0-dev.202505052106",
3
+ "version": "0.0.0-dev.202505052114",
4
4
  "description": "Modular Prisma Studio components",
5
5
  "type": "module",
6
6
  "sideEffects": false,