@urun-sh/react 0.1.10 → 0.1.12

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.12
4
+
5
+ - Export the SDK auth-mode helpers used by reference apps and middleware.
6
+
7
+ ## 0.1.11
8
+
9
+ - Resolve browser auth mode from public environment, use `NEXT_PUBLIC_SESSION_TOKEN` only in JWT/test mode, and wait for WorkOS access tokens before rendering session-creating children.
10
+
3
11
  ## 0.1.10
4
12
 
5
13
  - Bumped peer dependency to `@urun-sh/core@0.1.10`.
package/dist/index.d.mts CHANGED
@@ -42,6 +42,11 @@ declare class UrunErrorBoundary extends Component<UrunErrorBoundaryProps, UrunEr
42
42
  render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
43
43
  }
44
44
 
45
+ type UrunAuthMode = 'workos' | 'jwt';
46
+ declare function urunPublicEnv(name: string): string | undefined;
47
+ declare function authMode(): UrunAuthMode;
48
+ declare function usesWorkOSAuth(): boolean;
49
+
45
50
  type Unsubscribe = () => void;
46
51
  type ReactSessionDocument<T = Record<string, unknown>> = Omit<SessionDocument, 'get' | 'set' | 'on'> & {
47
52
  get(): T;
@@ -194,4 +199,4 @@ declare function useMetricsPanel(props: MetricsPanelProps): {
194
199
  };
195
200
  declare function MetricsPanel(props: MetricsPanelProps): react_jsx_runtime.JSX.Element;
196
201
 
197
- export { ComponentRenderer, ImageFrame, ImageFrameSchema, MetricsPanel, MetricsPanelSchema, ProgressCard, ProgressCardSchema, type ReactApp, type ReactSession, type ReactSessionDocument, type ReactSessionStream, type RegisteredComponent, StatusBadge, StatusBadgeSchema, TextStream, TextStreamSchema, UrunErrorBoundary, UrunProvider, registerComponent, useApp, useImageFrame, useMetricsPanel, useProgressCard, useStatusBadge, useTextStream };
202
+ export { ComponentRenderer, ImageFrame, ImageFrameSchema, MetricsPanel, MetricsPanelSchema, ProgressCard, ProgressCardSchema, type ReactApp, type ReactSession, type ReactSessionDocument, type ReactSessionStream, type RegisteredComponent, StatusBadge, StatusBadgeSchema, TextStream, TextStreamSchema, type UrunAuthMode, UrunErrorBoundary, UrunProvider, authMode, registerComponent, urunPublicEnv, useApp, useImageFrame, useMetricsPanel, useProgressCard, useStatusBadge, useTextStream, usesWorkOSAuth };
package/dist/index.d.ts CHANGED
@@ -42,6 +42,11 @@ declare class UrunErrorBoundary extends Component<UrunErrorBoundaryProps, UrunEr
42
42
  render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
43
43
  }
44
44
 
45
+ type UrunAuthMode = 'workos' | 'jwt';
46
+ declare function urunPublicEnv(name: string): string | undefined;
47
+ declare function authMode(): UrunAuthMode;
48
+ declare function usesWorkOSAuth(): boolean;
49
+
45
50
  type Unsubscribe = () => void;
46
51
  type ReactSessionDocument<T = Record<string, unknown>> = Omit<SessionDocument, 'get' | 'set' | 'on'> & {
47
52
  get(): T;
@@ -194,4 +199,4 @@ declare function useMetricsPanel(props: MetricsPanelProps): {
194
199
  };
195
200
  declare function MetricsPanel(props: MetricsPanelProps): react_jsx_runtime.JSX.Element;
196
201
 
197
- export { ComponentRenderer, ImageFrame, ImageFrameSchema, MetricsPanel, MetricsPanelSchema, ProgressCard, ProgressCardSchema, type ReactApp, type ReactSession, type ReactSessionDocument, type ReactSessionStream, type RegisteredComponent, StatusBadge, StatusBadgeSchema, TextStream, TextStreamSchema, UrunErrorBoundary, UrunProvider, registerComponent, useApp, useImageFrame, useMetricsPanel, useProgressCard, useStatusBadge, useTextStream };
202
+ export { ComponentRenderer, ImageFrame, ImageFrameSchema, MetricsPanel, MetricsPanelSchema, ProgressCard, ProgressCardSchema, type ReactApp, type ReactSession, type ReactSessionDocument, type ReactSessionStream, type RegisteredComponent, StatusBadge, StatusBadgeSchema, TextStream, TextStreamSchema, type UrunAuthMode, UrunErrorBoundary, UrunProvider, authMode, registerComponent, urunPublicEnv, useApp, useImageFrame, useMetricsPanel, useProgressCard, useStatusBadge, useTextStream, usesWorkOSAuth };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var ie=Object.create;var C=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var pe=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty;var me=(t,e)=>{for(var r in e)C(t,r,{get:e[r],enumerable:!0})},W=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ue(e))!de.call(t,o)&&o!==r&&C(t,o,{get:()=>e[o],enumerable:!(n=ce(e,o))||n.enumerable});return t};var le=(t,e,r)=>(r=t!=null?ie(pe(t)):{},W(e||!t||!t.__esModule?C(r,"default",{value:t,enumerable:!0}):r,t)),ge=t=>W(C({},"__esModule",{value:!0}),t);var Se={};me(Se,{ComponentRenderer:()=>H,ImageFrame:()=>ne,ImageFrameSchema:()=>te,MetricsPanel:()=>se,MetricsPanelSchema:()=>oe,ProgressCard:()=>Q,ProgressCardSchema:()=>K,StatusBadge:()=>Y,StatusBadgeSchema:()=>X,TextStream:()=>re,TextStreamSchema:()=>ee,UrunErrorBoundary:()=>d,UrunProvider:()=>V,registerComponent:()=>q,useApp:()=>J,useImageFrame:()=>O,useMetricsPanel:()=>D,useProgressCard:()=>N,useStatusBadge:()=>U,useTextStream:()=>B});module.exports=ge(Se);var T=require("react");var F=require("react"),f=require("react/jsx-runtime"),d=class extends F.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){console.error("[urun] Error caught by UrunErrorBoundary:",e,r)}render(){if(this.state.error){let{fallback:e}=this.props;return typeof e=="function"?e(this.state.error):e||(0,f.jsxs)("div",{role:"status","aria-live":"polite",style:{padding:"16px",border:"1px solid rgba(17, 24, 39, 0.12)",borderRadius:"8px",background:"#ffffff",color:"#111827",fontFamily:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',maxWidth:"360px"},children:[(0,f.jsx)("p",{style:{margin:0,fontWeight:600},children:"Connection interrupted"}),(0,f.jsx)("p",{style:{margin:"6px 0 0",color:"#4b5563"},children:"Reconnecting automatically."})]})}return this.props.children}};var z=require("react"),w=(0,z.createContext)(null);var h=require("react"),L=require("react/jsx-runtime");function fe({module:t,onToken:e}){let r=t.useAuth();return(0,h.useEffect)(()=>{let n=!1;async function o(){if(!(r.loading||r.isLoading))try{let c=r.getAccessToken?await r.getAccessToken():r.accessToken;n||e(c??void 0)}catch{n||e(void 0)}}o();let s=window.setInterval(()=>{o()},6e4);return()=>{n=!0,window.clearInterval(s)}},[r,r.accessToken,r.getAccessToken,r.isAuthenticated,r.isLoading,r.loading,r.user,e]),null}function $({onToken:t}){let[e,r]=(0,h.useState)(null);return(0,h.useEffect)(()=>{let n=!1;return import("@workos-inc/authkit-react").then(o=>{!n&&typeof o.useAuth=="function"&&r({useAuth:o.useAuth})}).catch(()=>{n||r(null)}),()=>{n=!0}},[]),e?(0,L.jsx)(fe,{module:e,onToken:t}):null}var v=require("react/jsx-runtime");function V({baseUrl:t,orgId:e,appId:r,jwt:n,authProvider:o,fallback:s,children:c}){let[b,R]=(0,T.useState)(),g=n??b,ae=(0,T.useMemo)(()=>({appId:r,baseUrl:t,orgId:e,jwt:g,authProvider:o}),[r,o,t,g,e]);return(0,v.jsxs)(d,{fallback:s,children:[o==="workos"&&!n?(0,v.jsx)($,{onToken:R}):null,(0,v.jsx)(w.Provider,{value:ae,children:c})]})}var a=require("react"),j=require("@urun-sh/core");function he(t,e){return`${t}:${JSON.stringify(e??{})}`}var M=class{constructor(e,r){this._doc=e;this._notify=r;this._unsubscribeChange=this._doc.on("change",()=>this._notify())}_doc;_notify;_unsubscribeChange;get(e,r){return this._doc.get(e,r)}set(e){this._doc.set(e),this._notify()}on(e,r){return this._doc.on(e,n=>r(n))}dispose(){this._unsubscribeChange()}},E=class{constructor(e,r){this._stream=e;this._notify=r;this._unsubscribeTrack=this._stream.on("track",()=>this._notify())}_stream;_notify;_unsubscribeTrack;get track(){return this._stream.track}attach(e){return this._stream.attach(e)}detach(){return this._stream.detach()}seek(e){return this._stream.seek(e)}on(e,r){return this._stream.on(e,r)}dispose(){this._unsubscribeTrack()}},I=class{constructor(e,r){this._session=e;this._notify=r}_session;_notify;_docs=new Map;_streams=new Map;get id(){return this._session.id}doc(e){let r=this._docs.get(e);return r||(r=new M(this._session.doc(e),this._notify),this._docs.set(e,r)),r}stream(e){let r=this._streams.get(e);return r||(r=new E(this._session.stream(e),this._notify),this._streams.set(e,r)),r}disconnect(){for(let e of this._docs.values())e.dispose();for(let e of this._streams.values())e.dispose();this._docs.clear(),this._streams.clear(),this._session.disconnect(),this._notify()}};function J(){let t=(0,a.useContext)(w);if(!t)throw new Error("useApp must be used within <UrunProvider>");if(!t.appId)throw new Error('useApp requires <UrunProvider appId="...">');let[,e]=(0,a.useReducer)(o=>o+1,0),r=(0,a.useRef)(new Map),n=(0,a.useMemo)(()=>(0,j.App)(t.appId,{baseUrl:t.baseUrl,orgId:t.orgId,jwt:t.jwt,authProvider:t.authProvider}),[t.appId,t.baseUrl,t.orgId,t.jwt,t.authProvider]);return(0,a.useMemo)(()=>new Proxy({},{get(o,s){if(typeof s=="string")return c=>{let b=he(s,c),R=r.current.get(b);if(R)return R;let g=new I(n[s](c),e);return r.current.set(b,g),g}}}),[n])}var Z=new Map;function q(t,e,r){if(!r||typeof r.safeParse!="function")throw new Error(`registerComponent("${t}"): schema must be a valid Zod schema`);Z.set(t,{component:e,schema:r})}function G(t,e){let r=Z.get(t);if(!r)return{error:`Unknown component: "${t}"`};let n=r.schema.safeParse(e);return n.success?{Component:r.component,validatedProps:n.data}:{error:`Validation failed for "${t}": ${n.error.message}`}}var u=require("react/jsx-runtime");function H({name:t,props:e,fallback:r}){let n=G(t,e);if(n.error)return console.warn(`[urun] ComponentRenderer: ${n.error}`),r?(0,u.jsx)(u.Fragment,{children:r}):(0,u.jsx)("div",{className:"urun-component-error",role:"alert",children:(0,u.jsx)("span",{className:"urun-component-error-text",children:n.error})});let o=n.Component;return(0,u.jsx)(o,{...n.validatedProps})}var m=require("zod"),p=require("react/jsx-runtime"),K=m.z.object({step:m.z.number().min(0),total:m.z.number().min(1),label:m.z.string().optional(),variant:m.z.enum(["default","success","error"]).default("default")});function N(t){let{step:e,total:r,label:n,variant:o="default"}=t,s=Math.min(e/r*100,100),c=e>=r;return{step:e,total:r,label:n,variant:o,percentage:s,isComplete:c}}function Q(t){let{step:e,total:r,label:n,variant:o,percentage:s}=N(t);return(0,p.jsxs)("div",{className:"urun-progress-card","data-variant":o,children:[n&&(0,p.jsx)("div",{className:"urun-progress-label",children:n}),(0,p.jsx)("div",{className:"urun-progress-bar",children:(0,p.jsx)("div",{className:"urun-progress-fill",style:{width:`${s}%`}})}),(0,p.jsxs)("div",{className:"urun-progress-text",children:[e,"/",r]})]})}var _=require("zod"),S=require("react/jsx-runtime"),X=_.z.object({state:_.z.enum(["thinking","generating","idle","error"]),message:_.z.string().optional()}),ve={thinking:"Thinking...",generating:"Generating...",idle:"Idle",error:"Error"};function U(t){let{state:e,message:r}=t,n=e==="thinking"||e==="generating",o=r??ve[e]??e;return{state:e,message:o,isActive:n}}function Y(t){let{state:e,message:r,isActive:n}=U(t);return(0,S.jsxs)("span",{className:"urun-status-badge","data-state":e,children:[(0,S.jsx)("span",{className:`urun-status-indicator${n?" urun-status-pulse":""}`}),(0,S.jsx)("span",{className:"urun-status-message",children:r})]})}var y=require("react"),A=require("zod"),k=require("react/jsx-runtime"),ee=A.z.object({text:A.z.string(),streaming:A.z.boolean().default(!1)});function B(t){let{text:e,streaming:r=!1}=t,n=e.length===0;return{text:e,streaming:r,isEmpty:n}}function re(t){let{text:e,streaming:r}=B(t),n=(0,y.useRef)(null),o=(0,y.useRef)(0);return(0,y.useEffect)(()=>{let s=n.current;s&&e.length!==o.current&&(s.textContent=e,o.current=e.length)},[e]),(0,k.jsxs)("div",{className:"urun-text-stream",children:[(0,k.jsx)("span",{ref:n,className:"urun-text-content"}),r&&(0,k.jsx)("span",{className:"urun-text-cursor"})]})}var x=require("zod"),P=require("react/jsx-runtime"),te=x.z.object({src:x.z.string().url(),alt:x.z.string().optional(),caption:x.z.string().optional()});function O(t){let{src:e,alt:r,caption:n}=t;return{src:e,alt:r??"",caption:n}}function ne(t){let{src:e,alt:r,caption:n}=O(t);return(0,P.jsxs)("figure",{className:"urun-image-frame",children:[(0,P.jsx)("img",{className:"urun-image",src:e,alt:r}),n&&(0,P.jsx)("figcaption",{className:"urun-image-caption",children:n})]})}var i=require("zod"),l=require("react/jsx-runtime"),oe=i.z.object({metrics:i.z.array(i.z.object({label:i.z.string(),value:i.z.union([i.z.string(),i.z.number()]),unit:i.z.string().optional()}))});function D(t){return{metrics:t.metrics.map(r=>({...r,displayValue:r.unit?`${r.value} ${r.unit}`:String(r.value)}))}}function se(t){let{metrics:e}=D(t);return(0,l.jsx)("div",{className:"urun-metrics-panel",children:e.map((r,n)=>(0,l.jsxs)("div",{className:"urun-metric-card",children:[(0,l.jsx)("div",{className:"urun-metric-label",children:r.label}),(0,l.jsx)("div",{className:"urun-metric-value",children:r.displayValue})]},n))})}0&&(module.exports={ComponentRenderer,ImageFrame,ImageFrameSchema,MetricsPanel,MetricsPanelSchema,ProgressCard,ProgressCardSchema,StatusBadge,StatusBadgeSchema,TextStream,TextStreamSchema,UrunErrorBoundary,UrunProvider,registerComponent,useApp,useImageFrame,useMetricsPanel,useProgressCard,useStatusBadge,useTextStream});
1
+ "use strict";var fe=Object.create;var T=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var Se=Object.getPrototypeOf,ye=Object.prototype.hasOwnProperty;var ke=(t,e)=>{for(var r in e)T(t,r,{get:e[r],enumerable:!0})},V=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ve(e))!ye.call(t,o)&&o!==r&&T(t,o,{get:()=>e[o],enumerable:!(n=he(e,o))||n.enumerable});return t};var Pe=(t,e,r)=>(r=t!=null?fe(Se(t)):{},V(e||!t||!t.__esModule?T(r,"default",{value:t,enumerable:!0}):r,t)),xe=t=>V(T({},"__esModule",{value:!0}),t);var we={};ke(we,{ComponentRenderer:()=>te,ImageFrame:()=>pe,ImageFrameSchema:()=>ce,MetricsPanel:()=>me,MetricsPanelSchema:()=>de,ProgressCard:()=>oe,ProgressCardSchema:()=>ne,StatusBadge:()=>ie,StatusBadgeSchema:()=>se,TextStream:()=>ue,TextStreamSchema:()=>ae,UrunErrorBoundary:()=>m,UrunProvider:()=>q,authMode:()=>v,registerComponent:()=>ee,urunPublicEnv:()=>i,useApp:()=>Q,useImageFrame:()=>F,useMetricsPanel:()=>L,useProgressCard:()=>O,useStatusBadge:()=>W,useTextStream:()=>D,usesWorkOSAuth:()=>K});module.exports=xe(we);var A=require("react");var J=require("react"),f=require("react/jsx-runtime"),m=class extends J.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){console.error("[urun] Error caught by UrunErrorBoundary:",e,r)}render(){if(this.state.error){let{fallback:e}=this.props;return typeof e=="function"?e(this.state.error):e||(0,f.jsxs)("div",{role:"status","aria-live":"polite",style:{padding:"16px",border:"1px solid rgba(17, 24, 39, 0.12)",borderRadius:"8px",background:"#ffffff",color:"#111827",fontFamily:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',maxWidth:"360px"},children:[(0,f.jsx)("p",{style:{margin:0,fontWeight:600},children:"Connection interrupted"}),(0,f.jsx)("p",{style:{margin:"6px 0 0",color:"#4b5563"},children:"Reconnecting automatically."})]})}return this.props.children}};var X=require("react"),_=(0,X.createContext)(null);var h=require("react"),Z=require("react/jsx-runtime");function be({module:t,onToken:e}){let r;try{r=t.useAuth()}catch{r={}}return(0,h.useEffect)(()=>{let n=!1;async function o(){if(!(r.loading||r.isLoading))try{let c=r.getAccessToken?await r.getAccessToken():r.accessToken;n||e(c??void 0)}catch{n||e(void 0)}}o();let s=window.setInterval(()=>{o()},6e4);return()=>{n=!0,window.clearInterval(s)}},[r,r.accessToken,r.getAccessToken,r.isAuthenticated,r.isLoading,r.loading,r.user,e]),null}function H({onToken:t}){let[e,r]=(0,h.useState)(null);return(0,h.useEffect)(()=>{let n=!1;return import("@workos-inc/authkit-react").then(o=>{!n&&typeof o.useAuth=="function"&&r({useAuth:o.useAuth})}).catch(()=>{n||r(null)}),()=>{n=!0}},[]),e?(0,Z.jsx)(be,{module:e,onToken:t}):null}function i(t){let r=(typeof process<"u"?process.env:void 0)?.[t];return r&&r.trim()?r.trim():void 0}function v(){if(i("VERCEL_ENV")==="production")return"workos";let t=i("NEXT_PUBLIC_AUTH_MODE")?.toLowerCase();return t==="jwt"||t==="customer-jwt"||t==="test-jwt"?"jwt":t==="workos"?"workos":i("NEXT_PUBLIC_AUTH_ENABLED")==="false"?"jwt":"workos"}function K(){return v()==="workos"}var S=require("react/jsx-runtime");function q({baseUrl:t,orgId:e,appId:r,jwt:n,authProvider:o,fallback:s,children:c}){let[C,R]=(0,A.useState)(),w=i("NEXT_PUBLIC_SESSION_TOKEN")??i("NEXT_PUBLIC_URUN_JWT"),j=v(),z=j==="workos"&&!n,M=n??(j==="jwt"?w:void 0)??C,$=o??i("NEXT_PUBLIC_SESSION_AUTH_PROVIDER"),le=z&&!M,ge=(0,A.useMemo)(()=>({appId:r,baseUrl:t,orgId:e,jwt:M,authProvider:$}),[r,t,$,M,e]);return(0,S.jsxs)(m,{fallback:s,children:[z?(0,S.jsx)(H,{onToken:R}):null,le?null:(0,S.jsx)(_.Provider,{value:ge,children:c})]})}var a=require("react"),G=require("@urun-sh/core");function Ce(t,e){return`${t}:${JSON.stringify(e??{})}`}var N=class{constructor(e,r){this._doc=e;this._notify=r;this._unsubscribeChange=this._doc.on("change",()=>this._notify())}_doc;_notify;_unsubscribeChange;get(e,r){return this._doc.get(e,r)}set(e){this._doc.set(e),this._notify()}on(e,r){return this._doc.on(e,n=>r(n))}dispose(){this._unsubscribeChange()}},I=class{constructor(e,r){this._stream=e;this._notify=r;this._unsubscribeTrack=this._stream.on("track",()=>this._notify())}_stream;_notify;_unsubscribeTrack;get track(){return this._stream.track}attach(e){return this._stream.attach(e)}detach(){return this._stream.detach()}seek(e){return this._stream.seek(e)}on(e,r){return this._stream.on(e,r)}dispose(){this._unsubscribeTrack()}},B=class{constructor(e,r){this._session=e;this._notify=r}_session;_notify;_docs=new Map;_streams=new Map;get id(){return this._session.id}doc(e){let r=this._docs.get(e);return r||(r=new N(this._session.doc(e),this._notify),this._docs.set(e,r)),r}stream(e){let r=this._streams.get(e);return r||(r=new I(this._session.stream(e),this._notify),this._streams.set(e,r)),r}disconnect(){for(let e of this._docs.values())e.dispose();for(let e of this._streams.values())e.dispose();this._docs.clear(),this._streams.clear(),this._session.disconnect(),this._notify()}};function Q(){let t=(0,a.useContext)(_);if(!t)throw new Error("useApp must be used within <UrunProvider>");if(!t.appId)throw new Error('useApp requires <UrunProvider appId="...">');let[,e]=(0,a.useReducer)(o=>o+1,0),r=(0,a.useRef)(new Map),n=(0,a.useMemo)(()=>(0,G.App)(t.appId,{baseUrl:t.baseUrl,orgId:t.orgId,jwt:t.jwt,authProvider:t.authProvider}),[t.appId,t.baseUrl,t.orgId,t.jwt,t.authProvider]);return(0,a.useMemo)(()=>new Proxy({},{get(o,s){if(typeof s=="string")return c=>{let C=Ce(s,c),R=r.current.get(C);if(R)return R;let w=new B(n[s](c),e);return r.current.set(C,w),w}}}),[n])}var Y=new Map;function ee(t,e,r){if(!r||typeof r.safeParse!="function")throw new Error(`registerComponent("${t}"): schema must be a valid Zod schema`);Y.set(t,{component:e,schema:r})}function re(t,e){let r=Y.get(t);if(!r)return{error:`Unknown component: "${t}"`};let n=r.schema.safeParse(e);return n.success?{Component:r.component,validatedProps:n.data}:{error:`Validation failed for "${t}": ${n.error.message}`}}var p=require("react/jsx-runtime");function te({name:t,props:e,fallback:r}){let n=re(t,e);if(n.error)return console.warn(`[urun] ComponentRenderer: ${n.error}`),r?(0,p.jsx)(p.Fragment,{children:r}):(0,p.jsx)("div",{className:"urun-component-error",role:"alert",children:(0,p.jsx)("span",{className:"urun-component-error-text",children:n.error})});let o=n.Component;return(0,p.jsx)(o,{...n.validatedProps})}var l=require("zod"),d=require("react/jsx-runtime"),ne=l.z.object({step:l.z.number().min(0),total:l.z.number().min(1),label:l.z.string().optional(),variant:l.z.enum(["default","success","error"]).default("default")});function O(t){let{step:e,total:r,label:n,variant:o="default"}=t,s=Math.min(e/r*100,100),c=e>=r;return{step:e,total:r,label:n,variant:o,percentage:s,isComplete:c}}function oe(t){let{step:e,total:r,label:n,variant:o,percentage:s}=O(t);return(0,d.jsxs)("div",{className:"urun-progress-card","data-variant":o,children:[n&&(0,d.jsx)("div",{className:"urun-progress-label",children:n}),(0,d.jsx)("div",{className:"urun-progress-bar",children:(0,d.jsx)("div",{className:"urun-progress-fill",style:{width:`${s}%`}})}),(0,d.jsxs)("div",{className:"urun-progress-text",children:[e,"/",r]})]})}var E=require("zod"),y=require("react/jsx-runtime"),se=E.z.object({state:E.z.enum(["thinking","generating","idle","error"]),message:E.z.string().optional()}),Re={thinking:"Thinking...",generating:"Generating...",idle:"Idle",error:"Error"};function W(t){let{state:e,message:r}=t,n=e==="thinking"||e==="generating",o=r??Re[e]??e;return{state:e,message:o,isActive:n}}function ie(t){let{state:e,message:r,isActive:n}=W(t);return(0,y.jsxs)("span",{className:"urun-status-badge","data-state":e,children:[(0,y.jsx)("span",{className:`urun-status-indicator${n?" urun-status-pulse":""}`}),(0,y.jsx)("span",{className:"urun-status-message",children:r})]})}var k=require("react"),U=require("zod"),P=require("react/jsx-runtime"),ae=U.z.object({text:U.z.string(),streaming:U.z.boolean().default(!1)});function D(t){let{text:e,streaming:r=!1}=t,n=e.length===0;return{text:e,streaming:r,isEmpty:n}}function ue(t){let{text:e,streaming:r}=D(t),n=(0,k.useRef)(null),o=(0,k.useRef)(0);return(0,k.useEffect)(()=>{let s=n.current;s&&e.length!==o.current&&(s.textContent=e,o.current=e.length)},[e]),(0,P.jsxs)("div",{className:"urun-text-stream",children:[(0,P.jsx)("span",{ref:n,className:"urun-text-content"}),r&&(0,P.jsx)("span",{className:"urun-text-cursor"})]})}var x=require("zod"),b=require("react/jsx-runtime"),ce=x.z.object({src:x.z.string().url(),alt:x.z.string().optional(),caption:x.z.string().optional()});function F(t){let{src:e,alt:r,caption:n}=t;return{src:e,alt:r??"",caption:n}}function pe(t){let{src:e,alt:r,caption:n}=F(t);return(0,b.jsxs)("figure",{className:"urun-image-frame",children:[(0,b.jsx)("img",{className:"urun-image",src:e,alt:r}),n&&(0,b.jsx)("figcaption",{className:"urun-image-caption",children:n})]})}var u=require("zod"),g=require("react/jsx-runtime"),de=u.z.object({metrics:u.z.array(u.z.object({label:u.z.string(),value:u.z.union([u.z.string(),u.z.number()]),unit:u.z.string().optional()}))});function L(t){return{metrics:t.metrics.map(r=>({...r,displayValue:r.unit?`${r.value} ${r.unit}`:String(r.value)}))}}function me(t){let{metrics:e}=L(t);return(0,g.jsx)("div",{className:"urun-metrics-panel",children:e.map((r,n)=>(0,g.jsxs)("div",{className:"urun-metric-card",children:[(0,g.jsx)("div",{className:"urun-metric-label",children:r.label}),(0,g.jsx)("div",{className:"urun-metric-value",children:r.displayValue})]},n))})}0&&(module.exports={ComponentRenderer,ImageFrame,ImageFrameSchema,MetricsPanel,MetricsPanelSchema,ProgressCard,ProgressCardSchema,StatusBadge,StatusBadgeSchema,TextStream,TextStreamSchema,UrunErrorBoundary,UrunProvider,authMode,registerComponent,urunPublicEnv,useApp,useImageFrame,useMetricsPanel,useProgressCard,useStatusBadge,useTextStream,usesWorkOSAuth});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{useMemo as q,useState as G}from"react";import{Component as $}from"react";import{jsx as b,jsxs as L}from"react/jsx-runtime";var u=class extends ${constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){console.error("[urun] Error caught by UrunErrorBoundary:",e,r)}render(){if(this.state.error){let{fallback:e}=this.props;return typeof e=="function"?e(this.state.error):e||L("div",{role:"status","aria-live":"polite",style:{padding:"16px",border:"1px solid rgba(17, 24, 39, 0.12)",borderRadius:"8px",background:"#ffffff",color:"#111827",fontFamily:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',maxWidth:"360px"},children:[b("p",{style:{margin:0,fontWeight:600},children:"Connection interrupted"}),b("p",{style:{margin:"6px 0 0",color:"#4b5563"},children:"Reconnecting automatically."})]})}return this.props.children}};import{createContext as V}from"react";var l=V(null);import{useEffect as R,useState as j}from"react";import{jsx as Z}from"react/jsx-runtime";function J({module:t,onToken:e}){let r=t.useAuth();return R(()=>{let n=!1;async function o(){if(!(r.loading||r.isLoading))try{let a=r.getAccessToken?await r.getAccessToken():r.accessToken;n||e(a??void 0)}catch{n||e(void 0)}}o();let s=window.setInterval(()=>{o()},6e4);return()=>{n=!0,window.clearInterval(s)}},[r,r.accessToken,r.getAccessToken,r.isAuthenticated,r.isLoading,r.loading,r.user,e]),null}function C({onToken:t}){let[e,r]=j(null);return R(()=>{let n=!1;return import("@workos-inc/authkit-react").then(o=>{!n&&typeof o.useAuth=="function"&&r({useAuth:o.useAuth})}).catch(()=>{n||r(null)}),()=>{n=!0}},[]),e?Z(J,{module:e,onToken:t}):null}import{jsx as w,jsxs as K}from"react/jsx-runtime";function H({baseUrl:t,orgId:e,appId:r,jwt:n,authProvider:o,fallback:s,children:a}){let[d,m]=G(),c=n??d,z=q(()=>({appId:r,baseUrl:t,orgId:e,jwt:c,authProvider:o}),[r,o,t,c,e]);return K(u,{fallback:s,children:[o==="workos"&&!n?w(C,{onToken:m}):null,w(l.Provider,{value:z,children:a})]})}import{useContext as Q,useMemo as T,useReducer as X,useRef as Y}from"react";import{App as ee}from"@urun-sh/core";function re(t,e){return`${t}:${JSON.stringify(e??{})}`}var h=class{constructor(e,r){this._doc=e;this._notify=r;this._unsubscribeChange=this._doc.on("change",()=>this._notify())}_doc;_notify;_unsubscribeChange;get(e,r){return this._doc.get(e,r)}set(e){this._doc.set(e),this._notify()}on(e,r){return this._doc.on(e,n=>r(n))}dispose(){this._unsubscribeChange()}},v=class{constructor(e,r){this._stream=e;this._notify=r;this._unsubscribeTrack=this._stream.on("track",()=>this._notify())}_stream;_notify;_unsubscribeTrack;get track(){return this._stream.track}attach(e){return this._stream.attach(e)}detach(){return this._stream.detach()}seek(e){return this._stream.seek(e)}on(e,r){return this._stream.on(e,r)}dispose(){this._unsubscribeTrack()}},S=class{constructor(e,r){this._session=e;this._notify=r}_session;_notify;_docs=new Map;_streams=new Map;get id(){return this._session.id}doc(e){let r=this._docs.get(e);return r||(r=new h(this._session.doc(e),this._notify),this._docs.set(e,r)),r}stream(e){let r=this._streams.get(e);return r||(r=new v(this._session.stream(e),this._notify),this._streams.set(e,r)),r}disconnect(){for(let e of this._docs.values())e.dispose();for(let e of this._streams.values())e.dispose();this._docs.clear(),this._streams.clear(),this._session.disconnect(),this._notify()}};function te(){let t=Q(l);if(!t)throw new Error("useApp must be used within <UrunProvider>");if(!t.appId)throw new Error('useApp requires <UrunProvider appId="...">');let[,e]=X(o=>o+1,0),r=Y(new Map),n=T(()=>ee(t.appId,{baseUrl:t.baseUrl,orgId:t.orgId,jwt:t.jwt,authProvider:t.authProvider}),[t.appId,t.baseUrl,t.orgId,t.jwt,t.authProvider]);return T(()=>new Proxy({},{get(o,s){if(typeof s=="string")return a=>{let d=re(s,a),m=r.current.get(d);if(m)return m;let c=new S(n[s](a),e);return r.current.set(d,c),c}}}),[n])}var _=new Map;function ne(t,e,r){if(!r||typeof r.safeParse!="function")throw new Error(`registerComponent("${t}"): schema must be a valid Zod schema`);_.set(t,{component:e,schema:r})}function A(t,e){let r=_.get(t);if(!r)return{error:`Unknown component: "${t}"`};let n=r.schema.safeParse(e);return n.success?{Component:r.component,validatedProps:n.data}:{error:`Validation failed for "${t}": ${n.error.message}`}}import{Fragment as se,jsx as g}from"react/jsx-runtime";function oe({name:t,props:e,fallback:r}){let n=A(t,e);if(n.error)return console.warn(`[urun] ComponentRenderer: ${n.error}`),r?g(se,{children:r}):g("div",{className:"urun-component-error",role:"alert",children:g("span",{className:"urun-component-error-text",children:n.error})});let o=n.Component;return g(o,{...n.validatedProps})}import{z as p}from"zod";import{jsx as y,jsxs as M}from"react/jsx-runtime";var ae=p.object({step:p.number().min(0),total:p.number().min(1),label:p.string().optional(),variant:p.enum(["default","success","error"]).default("default")});function E(t){let{step:e,total:r,label:n,variant:o="default"}=t,s=Math.min(e/r*100,100),a=e>=r;return{step:e,total:r,label:n,variant:o,percentage:s,isComplete:a}}function ie(t){let{step:e,total:r,label:n,variant:o,percentage:s}=E(t);return M("div",{className:"urun-progress-card","data-variant":o,children:[n&&y("div",{className:"urun-progress-label",children:n}),y("div",{className:"urun-progress-bar",children:y("div",{className:"urun-progress-fill",style:{width:`${s}%`}})}),M("div",{className:"urun-progress-text",children:[e,"/",r]})]})}import{z as k}from"zod";import{jsx as I,jsxs as de}from"react/jsx-runtime";var ce=k.object({state:k.enum(["thinking","generating","idle","error"]),message:k.string().optional()}),ue={thinking:"Thinking...",generating:"Generating...",idle:"Idle",error:"Error"};function N(t){let{state:e,message:r}=t,n=e==="thinking"||e==="generating",o=r??ue[e]??e;return{state:e,message:o,isActive:n}}function pe(t){let{state:e,message:r,isActive:n}=N(t);return de("span",{className:"urun-status-badge","data-state":e,children:[I("span",{className:`urun-status-indicator${n?" urun-status-pulse":""}`}),I("span",{className:"urun-status-message",children:r})]})}import{useRef as U,useEffect as me}from"react";import{z as x}from"zod";import{jsx as B,jsxs as fe}from"react/jsx-runtime";var le=x.object({text:x.string(),streaming:x.boolean().default(!1)});function O(t){let{text:e,streaming:r=!1}=t,n=e.length===0;return{text:e,streaming:r,isEmpty:n}}function ge(t){let{text:e,streaming:r}=O(t),n=U(null),o=U(0);return me(()=>{let s=n.current;s&&e.length!==o.current&&(s.textContent=e,o.current=e.length)},[e]),fe("div",{className:"urun-text-stream",children:[B("span",{ref:n,className:"urun-text-content"}),r&&B("span",{className:"urun-text-cursor"})]})}import{z as f}from"zod";import{jsx as D,jsxs as Se}from"react/jsx-runtime";var he=f.object({src:f.string().url(),alt:f.string().optional(),caption:f.string().optional()});function W(t){let{src:e,alt:r,caption:n}=t;return{src:e,alt:r??"",caption:n}}function ve(t){let{src:e,alt:r,caption:n}=W(t);return Se("figure",{className:"urun-image-frame",children:[D("img",{className:"urun-image",src:e,alt:r}),n&&D("figcaption",{className:"urun-image-caption",children:n})]})}import{z as i}from"zod";import{jsx as P,jsxs as xe}from"react/jsx-runtime";var ye=i.object({metrics:i.array(i.object({label:i.string(),value:i.union([i.string(),i.number()]),unit:i.string().optional()}))});function F(t){return{metrics:t.metrics.map(r=>({...r,displayValue:r.unit?`${r.value} ${r.unit}`:String(r.value)}))}}function ke(t){let{metrics:e}=F(t);return P("div",{className:"urun-metrics-panel",children:e.map((r,n)=>xe("div",{className:"urun-metric-card",children:[P("div",{className:"urun-metric-label",children:r.label}),P("div",{className:"urun-metric-value",children:r.displayValue})]},n))})}export{oe as ComponentRenderer,ve as ImageFrame,he as ImageFrameSchema,ke as MetricsPanel,ye as MetricsPanelSchema,ie as ProgressCard,ae as ProgressCardSchema,pe as StatusBadge,ce as StatusBadgeSchema,ge as TextStream,le as TextStreamSchema,u as UrunErrorBoundary,H as UrunProvider,ne as registerComponent,te as useApp,W as useImageFrame,F as useMetricsPanel,E as useProgressCard,N as useStatusBadge,O as useTextStream};
1
+ import{useMemo as re,useState as te}from"react";import{Component as Z}from"react";import{jsx as A,jsxs as K}from"react/jsx-runtime";var c=class extends Z{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){console.error("[urun] Error caught by UrunErrorBoundary:",e,r)}render(){if(this.state.error){let{fallback:e}=this.props;return typeof e=="function"?e(this.state.error):e||K("div",{role:"status","aria-live":"polite",style:{padding:"16px",border:"1px solid rgba(17, 24, 39, 0.12)",borderRadius:"8px",background:"#ffffff",color:"#111827",fontFamily:'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',maxWidth:"360px"},children:[A("p",{style:{margin:0,fontWeight:600},children:"Connection interrupted"}),A("p",{style:{margin:"6px 0 0",color:"#4b5563"},children:"Reconnecting automatically."})]})}return this.props.children}};import{createContext as q}from"react";var g=q(null);import{useEffect as E,useState as G}from"react";import{jsx as Y}from"react/jsx-runtime";function Q({module:t,onToken:e}){let r;try{r=t.useAuth()}catch{r={}}return E(()=>{let n=!1;async function o(){if(!(r.loading||r.isLoading))try{let i=r.getAccessToken?await r.getAccessToken():r.accessToken;n||e(i??void 0)}catch{n||e(void 0)}}o();let s=window.setInterval(()=>{o()},6e4);return()=>{n=!0,window.clearInterval(s)}},[r,r.accessToken,r.getAccessToken,r.isAuthenticated,r.isLoading,r.loading,r.user,e]),null}function U({onToken:t}){let[e,r]=G(null);return E(()=>{let n=!1;return import("@workos-inc/authkit-react").then(o=>{!n&&typeof o.useAuth=="function"&&r({useAuth:o.useAuth})}).catch(()=>{n||r(null)}),()=>{n=!0}},[]),e?Y(Q,{module:e,onToken:t}):null}function a(t){let r=(typeof process<"u"?process.env:void 0)?.[t];return r&&r.trim()?r.trim():void 0}function f(){if(a("VERCEL_ENV")==="production")return"workos";let t=a("NEXT_PUBLIC_AUTH_MODE")?.toLowerCase();return t==="jwt"||t==="customer-jwt"||t==="test-jwt"?"jwt":t==="workos"?"workos":a("NEXT_PUBLIC_AUTH_ENABLED")==="false"?"jwt":"workos"}function ee(){return f()==="workos"}import{jsx as M,jsxs as oe}from"react/jsx-runtime";function ne({baseUrl:t,orgId:e,appId:r,jwt:n,authProvider:o,fallback:s,children:i}){let[d,m]=te(),l=a("NEXT_PUBLIC_SESSION_TOKEN")??a("NEXT_PUBLIC_URUN_JWT"),w=f(),T=w==="workos"&&!n,S=n??(w==="jwt"?l:void 0)??d,_=o??a("NEXT_PUBLIC_SESSION_AUTH_PROVIDER"),X=T&&!S,H=re(()=>({appId:r,baseUrl:t,orgId:e,jwt:S,authProvider:_}),[r,t,_,S,e]);return oe(c,{fallback:s,children:[T?M(U,{onToken:m}):null,X?null:M(g.Provider,{value:H,children:i})]})}import{useContext as se,useMemo as N,useReducer as ie,useRef as ae}from"react";import{App as ue}from"@urun-sh/core";function ce(t,e){return`${t}:${JSON.stringify(e??{})}`}var y=class{constructor(e,r){this._doc=e;this._notify=r;this._unsubscribeChange=this._doc.on("change",()=>this._notify())}_doc;_notify;_unsubscribeChange;get(e,r){return this._doc.get(e,r)}set(e){this._doc.set(e),this._notify()}on(e,r){return this._doc.on(e,n=>r(n))}dispose(){this._unsubscribeChange()}},k=class{constructor(e,r){this._stream=e;this._notify=r;this._unsubscribeTrack=this._stream.on("track",()=>this._notify())}_stream;_notify;_unsubscribeTrack;get track(){return this._stream.track}attach(e){return this._stream.attach(e)}detach(){return this._stream.detach()}seek(e){return this._stream.seek(e)}on(e,r){return this._stream.on(e,r)}dispose(){this._unsubscribeTrack()}},P=class{constructor(e,r){this._session=e;this._notify=r}_session;_notify;_docs=new Map;_streams=new Map;get id(){return this._session.id}doc(e){let r=this._docs.get(e);return r||(r=new y(this._session.doc(e),this._notify),this._docs.set(e,r)),r}stream(e){let r=this._streams.get(e);return r||(r=new k(this._session.stream(e),this._notify),this._streams.set(e,r)),r}disconnect(){for(let e of this._docs.values())e.dispose();for(let e of this._streams.values())e.dispose();this._docs.clear(),this._streams.clear(),this._session.disconnect(),this._notify()}};function pe(){let t=se(g);if(!t)throw new Error("useApp must be used within <UrunProvider>");if(!t.appId)throw new Error('useApp requires <UrunProvider appId="...">');let[,e]=ie(o=>o+1,0),r=ae(new Map),n=N(()=>ue(t.appId,{baseUrl:t.baseUrl,orgId:t.orgId,jwt:t.jwt,authProvider:t.authProvider}),[t.appId,t.baseUrl,t.orgId,t.jwt,t.authProvider]);return N(()=>new Proxy({},{get(o,s){if(typeof s=="string")return i=>{let d=ce(s,i),m=r.current.get(d);if(m)return m;let l=new P(n[s](i),e);return r.current.set(d,l),l}}}),[n])}var I=new Map;function de(t,e,r){if(!r||typeof r.safeParse!="function")throw new Error(`registerComponent("${t}"): schema must be a valid Zod schema`);I.set(t,{component:e,schema:r})}function B(t,e){let r=I.get(t);if(!r)return{error:`Unknown component: "${t}"`};let n=r.schema.safeParse(e);return n.success?{Component:r.component,validatedProps:n.data}:{error:`Validation failed for "${t}": ${n.error.message}`}}import{Fragment as le,jsx as h}from"react/jsx-runtime";function me({name:t,props:e,fallback:r}){let n=B(t,e);if(n.error)return console.warn(`[urun] ComponentRenderer: ${n.error}`),r?h(le,{children:r}):h("div",{className:"urun-component-error",role:"alert",children:h("span",{className:"urun-component-error-text",children:n.error})});let o=n.Component;return h(o,{...n.validatedProps})}import{z as p}from"zod";import{jsx as x,jsxs as O}from"react/jsx-runtime";var ge=p.object({step:p.number().min(0),total:p.number().min(1),label:p.string().optional(),variant:p.enum(["default","success","error"]).default("default")});function W(t){let{step:e,total:r,label:n,variant:o="default"}=t,s=Math.min(e/r*100,100),i=e>=r;return{step:e,total:r,label:n,variant:o,percentage:s,isComplete:i}}function fe(t){let{step:e,total:r,label:n,variant:o,percentage:s}=W(t);return O("div",{className:"urun-progress-card","data-variant":o,children:[n&&x("div",{className:"urun-progress-label",children:n}),x("div",{className:"urun-progress-bar",children:x("div",{className:"urun-progress-fill",style:{width:`${s}%`}})}),O("div",{className:"urun-progress-text",children:[e,"/",r]})]})}import{z as b}from"zod";import{jsx as D,jsxs as ye}from"react/jsx-runtime";var he=b.object({state:b.enum(["thinking","generating","idle","error"]),message:b.string().optional()}),ve={thinking:"Thinking...",generating:"Generating...",idle:"Idle",error:"Error"};function F(t){let{state:e,message:r}=t,n=e==="thinking"||e==="generating",o=r??ve[e]??e;return{state:e,message:o,isActive:n}}function Se(t){let{state:e,message:r,isActive:n}=F(t);return ye("span",{className:"urun-status-badge","data-state":e,children:[D("span",{className:`urun-status-indicator${n?" urun-status-pulse":""}`}),D("span",{className:"urun-status-message",children:r})]})}import{useRef as L,useEffect as ke}from"react";import{z as C}from"zod";import{jsx as j,jsxs as be}from"react/jsx-runtime";var Pe=C.object({text:C.string(),streaming:C.boolean().default(!1)});function z(t){let{text:e,streaming:r=!1}=t,n=e.length===0;return{text:e,streaming:r,isEmpty:n}}function xe(t){let{text:e,streaming:r}=z(t),n=L(null),o=L(0);return ke(()=>{let s=n.current;s&&e.length!==o.current&&(s.textContent=e,o.current=e.length)},[e]),be("div",{className:"urun-text-stream",children:[j("span",{ref:n,className:"urun-text-content"}),r&&j("span",{className:"urun-text-cursor"})]})}import{z as v}from"zod";import{jsx as $,jsxs as we}from"react/jsx-runtime";var Ce=v.object({src:v.string().url(),alt:v.string().optional(),caption:v.string().optional()});function V(t){let{src:e,alt:r,caption:n}=t;return{src:e,alt:r??"",caption:n}}function Re(t){let{src:e,alt:r,caption:n}=V(t);return we("figure",{className:"urun-image-frame",children:[$("img",{className:"urun-image",src:e,alt:r}),n&&$("figcaption",{className:"urun-image-caption",children:n})]})}import{z as u}from"zod";import{jsx as R,jsxs as Ae}from"react/jsx-runtime";var Te=u.object({metrics:u.array(u.object({label:u.string(),value:u.union([u.string(),u.number()]),unit:u.string().optional()}))});function J(t){return{metrics:t.metrics.map(r=>({...r,displayValue:r.unit?`${r.value} ${r.unit}`:String(r.value)}))}}function _e(t){let{metrics:e}=J(t);return R("div",{className:"urun-metrics-panel",children:e.map((r,n)=>Ae("div",{className:"urun-metric-card",children:[R("div",{className:"urun-metric-label",children:r.label}),R("div",{className:"urun-metric-value",children:r.displayValue})]},n))})}export{me as ComponentRenderer,Re as ImageFrame,Ce as ImageFrameSchema,_e as MetricsPanel,Te as MetricsPanelSchema,fe as ProgressCard,ge as ProgressCardSchema,Se as StatusBadge,he as StatusBadgeSchema,xe as TextStream,Pe as TextStreamSchema,c as UrunErrorBoundary,ne as UrunProvider,f as authMode,de as registerComponent,a as urunPublicEnv,pe as useApp,V as useImageFrame,J as useMetricsPanel,W as useProgressCard,F as useStatusBadge,z as useTextStream,ee as usesWorkOSAuth};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@urun-sh/react",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "React bindings for the urun TypeScript SDK",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,6 +20,11 @@
20
20
  "import": "./dist/index.mjs",
21
21
  "require": "./dist/index.js"
22
22
  },
23
+ "./auth": {
24
+ "types": "./dist/index.d.ts",
25
+ "import": "./dist/index.mjs",
26
+ "require": "./dist/index.js"
27
+ },
23
28
  "./styles.css": "./dist/styles.css",
24
29
  "./package.json": "./package.json"
25
30
  },
@@ -31,7 +36,7 @@
31
36
  },
32
37
  "peerDependencies": {
33
38
  "react": "^18.2.0 || ^19.0.0",
34
- "@urun-sh/core": "^0.1.10",
39
+ "@urun-sh/core": "^0.1.12",
35
40
  "@workos-inc/authkit-react": "^0.15.0"
36
41
  },
37
42
  "dependencies": {