@prisma/studio-core 0.0.0-dev.202504121330 → 0.0.0-dev.202504121402

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
@@ -1 +1 @@
1
- import"../chunk-2FW6TKD6.js";import"../index-ESMXH6DI.css";import{Slot as L}from"@radix-ui/react-slot";import{useQuery as I}from"@tanstack/react-query";import{QueryClient as C,QueryClientProvider as g}from"@tanstack/react-query";import{NuqsAdapter as y}from"nuqs/adapters/react";import{createContext as A,useContext as w,useState as N}from"react";import{jsx as l}from"react/jsx-runtime";var k=new C,v=A(void 0);function h(e){let{children:t,...r}=e,[s,o]=N(null);return l(g,{client:k,children:l(y,{children:l(v.Provider,{value:{...r,activeTable:s,setActiveTable:o},children:t})})})}function u(){let e=w(v);if(!e)throw new Error("`useStudio` must be used within a `StudioContext.Provider`");return e}var f=-1;function x(){let{adapter:e}=u();return I({initialData:{schemas:{[e.defaultSchema||"db"]:{tables:{}}}},initialDataUpdatedAt:f,queryFn:async({signal:t})=>{let[r,s]=await e.introspect({abortSignal:t});if(r)throw r;return s},queryKey:["introspection"],staleTime:t=>t.state.dataUpdatedAt===f?0:1/0})}import{clsx as D}from"clsx";import{twMerge as E}from"tailwind-merge";function c(...e){return E(D(e))}import{jsx as i,jsxs as B}from"react/jsx-runtime";var p=()=>{let{data:e}=x(),{activeTable:t,adapter:r,setActiveTable:s}=u();return i("div",{className:"ps-flex ps-flex-col ps-w-64 ps-gap-4 ps-shrink-0",children:i(p.Block,{label:"Tables",children:Object.values(e.schemas[r.defaultSchema||"db"].tables).map(o=>i(p.Item,{isActive:t===o,onClick:m=>{m.preventDefault(),t!==o&&s(o)},className:`ps-px-2 ps-py-1 ps-cursor-pointer ps-rounded ${t===o?"ps-bg-primary ps-text-white":"ps-hover:ps-bg-gray-100"}`,children:o.name},`${o.schema}-${o.name}`))})})},q=({className:e,label:t,children:r,...s})=>B("div",{className:c("ps-rounded-lg ps-border ps-bg-card ps-text-card-foreground ps-shadow-xs",e),...s,children:[i("div",{className:"ps-pt-4 ps-pb-2 ps-px-4",children:i("h2",{className:"ps-text-sm ps-font-medium",children:t})}),i("nav",{"aria-label":t,className:"ps-flex ps-flex-col ps-gap-px ps-pb-3",children:r})]}),V=({className:e,asChild:t=!1,isActive:r,size:s,...o})=>i(t?L:"button",{"data-sidebar":"menu-button","data-size":s,"data-active":r,className:c("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),...o});p.Block=q;p.Item=V;var T=p;import{createContext as M,useContext as le,useEffect as Q,useState as R}from"react";import{jsx as $}from"react/jsx-runtime";var U={theme:"system",setTheme:()=>null},_=M(U);function b({children:e,defaultTheme:t="system",storageKey:r="vite-ui-theme",...s}){let[o,m]=R(()=>localStorage.getItem(r)||t);Q(()=>{let a=window.document.documentElement;if(a.classList.remove("light","dark"),o==="system"){let S=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";a.classList.add(S);return}a.classList.add(o)},[o]);let P={theme:o,setTheme:a=>{localStorage.setItem(r,a),m(a)}};return $(_.Provider,{...s,value:P,children:e})}import{jsx as d,jsxs as H}from"react/jsx-runtime";function z(e){let{adapter:t}=e;return t?d(b,{children:d(h,{adapter:t,children:H("div",{className:"ps-flex ps-gap-4 ps-w-full ps-rounded-sm ps-bg-background ps-p-4 ps-relative",children:[d(T,{}),d("div",{className:"ps-flex ps-w-full ps-flex-col ps-border ps-rounded-lg"})]})})}):(console.error("No adapter provided to Studio component"),d("div",{children:"Error: No adapter provided"}))}export{z as Studio};
1
+ import{B as x,aa as b,c as p,q as g,r as P,t as C}from"../chunk-N2MLAUEV.js";import"../chunk-2FW6TKD6.js";import"../index-ESMXH6DI.css";import{Slot as se}from"@radix-ui/react-slot";import{useQuery as ee}from"@tanstack/react-query";import{QueryClient as W,QueryClientProvider as K}from"@tanstack/react-query";import*as c from"react";import{onlineManager as B,useQueryClient as V}from"@tanstack/react-query";var w=class{#t;#u;#p;#c;#e=!1;#d;#o;#s;#r;#n;#i;#a;#l;constructor(e){let{client:t,queryFlavor:o,version:r,onlineManager:s,buttonPosition:a,position:n,initialIsOpen:l,errorTypes:u,styleNonce:i,shadowDOMTarget:T}=e;this.#t=p(t),this.#p=o,this.#c=r,this.#u=s,this.#d=i,this.#o=T,this.#s=p(a),this.#r=p(n),this.#n=p(l),this.#i=p(u)}setButtonPosition(e){this.#s[1](e)}setPosition(e){this.#r[1](e)}setInitialIsOpen(e){this.#n[1](e)}setErrorTypes(e){this.#i[1](e)}setClient(e){this.#t[1](e)}mount(e){if(this.#e)throw new Error("Devtools is already mounted");let t=x(()=>{let o=this,[r]=this.#s,[s]=this.#r,[a]=this.#n,[n]=this.#i,[l]=this.#t,u;return this.#a?u=this.#a:(u=C(()=>import("../CPIOZS5X-NALOZFPD.js")),this.#a=u),b(this.#d,this.#o),g(u,P({get queryFlavor(){return o.#p},get version(){return o.#c},get onlineManager(){return o.#u},get shadowDOMTarget(){return o.#o}},{get client(){return l()},get buttonPosition(){return r()},get position(){return s()},get initialIsOpen(){return a()},get errorTypes(){return n()}}))},e);this.#e=!0,this.#l=t}unmount(){if(!this.#e)throw new Error("Devtools is not mounted");this.#l?.(),this.#e=!1}},R=class{#t;#u;#p;#c;#e=!1;#d;#o;#s;#r;#n;#i;#a;#l;#m;constructor(e){let{client:t,queryFlavor:o,version:r,onlineManager:s,buttonPosition:a,position:n,initialIsOpen:l,errorTypes:u,styleNonce:i,shadowDOMTarget:T,onClose:F}=e;this.#t=p(t),this.#p=o,this.#c=r,this.#u=s,this.#d=i,this.#o=T,this.#s=p(a),this.#r=p(n),this.#n=p(l),this.#i=p(u),this.#a=p(F)}setButtonPosition(e){this.#s[1](e)}setPosition(e){this.#r[1](e)}setInitialIsOpen(e){this.#n[1](e)}setErrorTypes(e){this.#i[1](e)}setClient(e){this.#t[1](e)}setOnClose(e){this.#a[1](()=>e)}mount(e){if(this.#e)throw new Error("Devtools is already mounted");let t=x(()=>{let o=this,[r]=this.#s,[s]=this.#r,[a]=this.#n,[n]=this.#i,[l]=this.#t,[u]=this.#a,i;return this.#l?i=this.#l:(i=C(()=>import("../OKF6E45R-6KC3BLVB.js")),this.#l=i),b(this.#d,this.#o),g(i,P({get queryFlavor(){return o.#p},get version(){return o.#c},get onlineManager(){return o.#u},get shadowDOMTarget(){return o.#o}},{get client(){return l()},get buttonPosition(){return r()},get position(){return s()},get initialIsOpen(){return a()},get errorTypes(){return n()},get onClose(){return u()}}))},e);this.#e=!0,this.#m=t}unmount(){if(!this.#e)throw new Error("Devtools is not mounted");this.#m?.(),this.#e=!1}};import{jsx as _}from"react/jsx-runtime";function N(e){let t=V(e.client),o=c.useRef(null),{buttonPosition:r,position:s,initialIsOpen:a,errorTypes:n,styleNonce:l,shadowDOMTarget:u}=e,[i]=c.useState(new w({client:t,queryFlavor:"React Query",version:"5",onlineManager:B,buttonPosition:r,position:s,initialIsOpen:a,errorTypes:n,styleNonce:l,shadowDOMTarget:u}));return c.useEffect(()=>{i.setClient(t)},[t,i]),c.useEffect(()=>{r&&i.setButtonPosition(r)},[r,i]),c.useEffect(()=>{s&&i.setPosition(s)},[s,i]),c.useEffect(()=>{i.setInitialIsOpen(a||!1)},[a,i]),c.useEffect(()=>{i.setErrorTypes(n||[])},[n,i]),c.useEffect(()=>(o.current&&i.mount(o.current),()=>{i.unmount()}),[i]),_("div",{dir:"ltr",className:"tsqd-parent-container",ref:o})}import*as m from"react";import{onlineManager as $,useQueryClient as z}from"@tanstack/react-query";import{jsx as U}from"react/jsx-runtime";function E(e){let t=z(e.client),o=m.useRef(null),{errorTypes:r,styleNonce:s,shadowDOMTarget:a}=e,[n]=m.useState(new R({client:t,queryFlavor:"React Query",version:"5",onlineManager:$,buttonPosition:"bottom-left",position:"bottom",initialIsOpen:!0,errorTypes:r,styleNonce:s,shadowDOMTarget:a,onClose:e.onClose}));return m.useEffect(()=>{n.setClient(t)},[t,n]),m.useEffect(()=>{n.setOnClose(e.onClose??(()=>{}))},[e.onClose,n]),m.useEffect(()=>{n.setErrorTypes(r||[])},[r,n]),m.useEffect(()=>(o.current&&n.mount(o.current),()=>{n.unmount()}),[n]),U("div",{style:{height:"500px",...e.style},className:"tsqd-parent-container",ref:o})}var I=process.env.NODE_ENV!=="development"?function(){return null}:N,Ne=process.env.NODE_ENV!=="development"?function(){return null}:E;import{NuqsAdapter as G}from"nuqs/adapters/react";import{createContext as J,useContext as X,useState as Y}from"react";import{jsx as D,jsxs as j}from"react/jsx-runtime";var Z=new W,O=J(void 0);function M(e){let{children:t,...o}=e,[r,s]=Y(null);return j(K,{client:Z,children:[D(I,{}),D(G,{children:D(O.Provider,{value:{...o,activeTable:r,setActiveTable:s},children:t})})]})}function y(){let e=X(O);if(!e)throw new Error("`useStudio` must be used within a `StudioContext.Provider`");return e}var Q=-1;function A(){let{adapter:e}=y();return ee({initialData:{schemas:{[e.defaultSchema||"db"]:{tables:{}}}},initialDataUpdatedAt:Q,queryFn:async({signal:t})=>{let[o,r]=await e.introspect({abortSignal:t});if(o)throw o;return r},queryKey:["introspection"],staleTime:t=>t.state.dataUpdatedAt===Q?0:1/0})}import{clsx as te}from"clsx";import{twMerge as oe}from"tailwind-merge";function S(...e){return oe(te(e))}import{jsx as h,jsxs as ie}from"react/jsx-runtime";var f=()=>{let{data:e}=A(),{activeTable:t,adapter:o,setActiveTable:r}=y();return h("div",{className:"ps-flex ps-flex-col ps-w-64 ps-gap-4 ps-shrink-0",children:h(f.Block,{label:"Tables",children:Object.values(e.schemas[o.defaultSchema||"db"].tables).map(s=>h(f.Item,{isActive:t===s,onClick:a=>{a.preventDefault(),t!==s&&r(s)},className:`ps-px-2 ps-py-1 ps-cursor-pointer ps-rounded ${t===s?"ps-bg-primary ps-text-white":"ps-hover:ps-bg-gray-100"}`,children:s.name},`${s.schema}-${s.name}`))})})},re=({className:e,label:t,children:o,...r})=>ie("div",{className:S("ps-rounded-lg ps-border ps-bg-card ps-text-card-foreground ps-shadow-xs",e),...r,children:[h("div",{className:"ps-pt-4 ps-pb-2 ps-px-4",children:h("h2",{className:"ps-text-sm ps-font-medium",children:t})}),h("nav",{"aria-label":t,className:"ps-flex ps-flex-col ps-gap-px ps-pb-3",children:o})]}),ne=({className:e,asChild:t=!1,isActive:o,size:r,...s})=>h(t?se:"button",{"data-sidebar":"menu-button","data-size":r,"data-active":o,className:S("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),...s});f.Block=re;f.Item=ne;var q=f;import{createContext as ae,useContext as et,useEffect as le,useState as ue}from"react";import{jsx as de}from"react/jsx-runtime";var pe={theme:"system",setTheme:()=>null},ce=ae(pe);function k({children:e,defaultTheme:t="system",storageKey:o="vite-ui-theme",...r}){let[s,a]=ue(()=>localStorage.getItem(o)||t);le(()=>{let l=window.document.documentElement;if(l.classList.remove("light","dark"),s==="system"){let u=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";l.classList.add(u);return}l.classList.add(s)},[s]);let n={theme:s,setTheme:l=>{localStorage.setItem(o,l),a(l)}};return de(ce.Provider,{...r,value:n,children:e})}import{jsx as v,jsxs as he}from"react/jsx-runtime";function me(e){let{adapter:t}=e;return t?v(k,{children:v(M,{adapter:t,children:he("div",{className:"ps-flex ps-gap-4 ps-w-full ps-rounded-sm ps-bg-background ps-p-4 ps-relative",children:[v(q,{}),v("div",{className:"ps-flex ps-w-full ps-flex-col ps-border ps-rounded-lg"})]})})}):(console.error("No adapter provided to Studio component"),v("div",{children:"Error: No adapter provided"}))}export{me as Studio};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/studio-core",
3
- "version": "0.0.0-dev.202504121330",
3
+ "version": "0.0.0-dev.202504121402",
4
4
  "description": "Modular Prisma Studio components",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -75,6 +75,7 @@
75
75
  "@electric-sql/pglite": "0.2.17",
76
76
  "@prisma/client": "6.5.0",
77
77
  "@prisma/generator": "6.6.0-integration-push-xmzqvqxpztks.1",
78
+ "@tanstack/react-query-devtools": "5.72.2",
78
79
  "@types/node": "22.3.0",
79
80
  "@types/react": "^19.0.12",
80
81
  "@types/react-dom": "^19.0.4",