@bodhiapp/bodhi-js-react-core 0.0.26 → 0.0.28

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),s=require("@bodhiapp/bodhi-js-core"),r=require("react"),O=require("@bodhiapp/setup-modal-types");function W(e){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const p in e)if(p!=="default"){const y=Object.getOwnPropertyDescriptor(e,p);Object.defineProperty(c,p,y.get?y:{enumerable:!0,get:()=>e[p]})}}return c.default=e,Object.freeze(c)}const l=W(r);function K({client:e,modalHtmlPath:c,hideSetup:p,onSetupReady:y,setupState:w,basePath:b="/",logLevel:S="warn"}){const R=w!=="ready",_=r.useMemo(()=>new s.Logger("SetupModalProcessor",S),[S]),u=r.useRef(null),C=r.useMemo(()=>new s.BodhiClientUserPrefsManager(s.createStoragePrefixWithBasePath(b,"bodhijs:")),[b]),E=r.useRef(null),m=r.useCallback(t=>t==="direct"?"lna":t==="extension"?"extension":null,[]),L=r.useCallback(t=>t.extension==="ready"?{status:"ready",version:"unknown",id:t.extensionId}:t.extension==="not-found"?{status:"not-installed",error:{message:"Extension not found",code:"ext-not-installed"}}:{status:"unreachable",error:{message:"Client not initialized",code:"ext-connection-failed"}},[]),A=r.useCallback(t=>{if(t.server.status==="pending-extension-ready")return{status:"pending-extension-ready",error:{message:"Extension not ready",code:"server-pending-ext-ready"}};const n=t.server;switch(n.status){case"ready":return{status:"ready",version:n.version||"unknown"};case"setup":return{status:"setup",version:n.version||"unknown",error:{message:n.error?.message||"Setup required",code:"server-in-setup-status"}};case"resource_admin":return{status:"resource_admin",version:n.version||"unknown",error:{message:n.error?.message||"Resource admin required",code:"server-in-admin-status"}};case"tenant_selection":return{status:"tenant_selection",version:n.version||"unknown",error:{message:"Tenant selection required",code:"server-in-tenant-selection-status"}};case"error":return{status:"error",error:{message:n.error?.message||"Unknown error",code:"server-unexpected-error"}};case"not-reachable":return{status:"unreachable",error:{message:n.error?.message||"Server not reachable",code:"server-conn-refused"}};default:return{status:"unreachable",error:{message:"Unknown server status",code:"server-unexpected-error"}}}},[]),M=r.useCallback(t=>{if(t.server.status==="not-connected")return{status:"pending-lna-ready"};const n=t.server;switch(n.status){case"ready":return{status:"ready",version:n.version||"unknown"};case"setup":return{status:"setup",version:n.version||"unknown"};case"resource_admin":return{status:"resource_admin",version:n.version||"unknown"};case"tenant_selection":return{status:"tenant_selection",version:n.version||"unknown"};case"error":case"not-reachable":return{status:"error",error:{message:n.error?.message||"Connection error"}};default:return{status:"error",error:{message:"Unknown server status"}}}},[]),I=r.useCallback((t,n)=>{if(t.server.status!=="pending-extension-ready"){const o=t.server.status;if(o==="ready"||o==="setup"||o==="resource_admin"||o==="tenant_selection")return!0}if(n.server.status!=="not-connected"){const o=n.server.status;if(o==="ready"||o==="setup"||o==="resource_admin"||o==="tenant_selection")return!0}return!1},[]),x=r.useCallback((t,n,o)=>{if(n==="skipped")return{status:"skipped",serverUrl:o};if(t.server.status!=="not-connected"){const d=t.server;return d.status==="ready"||d.status==="setup"||d.status==="resource_admin"||d.status==="tenant_selection"?{status:"granted",serverUrl:o}:{status:"unreachable",serverUrl:o,error:{message:d.error?.message||"Server unreachable",code:"lna-unreachable"}}}return n==="granted"?{status:"granted",serverUrl:o}:{status:"prompt",serverUrl:o}},[]),h=r.useCallback(async(t=!1)=>{const n=s.detectBrowser().type,o=s.detectOS().type;let d=await e.getExtensionState();(d.extension==="not-initialized"||t)&&(d=await e.testExtensionConnectivity());let f=await e.getDirectState();const T=C.getDirectStatus();T==="granted"&&(f.server.status==="not-connected"||t)&&(f=await e.testDirectConnectivity());const i=s.getServerUrl(f)||"http://localhost:1135",v=x(f,T,i);return e.getConnectionMode()===null&&(s.isDirectServerReady(f)?await e.setConnectionMode("direct"):s.isExtensionServerReady(d)&&await e.setConnectionMode("extension")),C.isServerInstallConfirmed()||I(d,f)&&C.setServerInstallConfirmed(!0),{extension:L(d),server:A(d),lna:v,lnaServer:M(f),env:{browser:n,os:o},browsers:s.BROWSER_CONFIGS,os:s.OS_CONFIGS,userConfirmations:{serverInstall:C.isServerInstallConfirmed()},selectedConnection:m(e.getConnectionMode())}},[e,C,L,A,M,m,x,I]),g=r.useCallback(()=>{if(!E.current)throw new Error("Cannot get state: currentStateRef is null");return{...E.current,userConfirmations:{serverInstall:C.isServerInstallConfirmed()},selectedConnection:m(e.getConnectionMode())}},[C,e,m]),k=r.useMemo(()=>({[O.MSG.MODAL_READY]:async()=>(_.info("MODAL_READY: returning current state or default"),E.current?{setupState:g()}:{setupState:O.DEFAULT_SETUP_STATE}),[O.MSG.MODAL_REFRESH]:async()=>{_.info("MODAL_REFRESH: refreshing state");const t=await h(!0);E.current=t;const n=g();return _.info(`MODAL_REFRESH: state refreshed
2
- `,JSON.stringify(n,null,2)),u.current?.updateState(g()),{setupState:n}},[O.MSG.MODAL_LNA_CONNECT]:async t=>{const n=t.payload.serverUrl;console.log("[SetupModalProcessor] LNA connect:",n);const o=await e.testDirectConnectivity(n);if(o.server.status!=="not-connected"){const f=o.server.status;if(f==="ready"||f==="setup"||f==="resource_admin"||f==="tenant_selection"){C.setDirectStatus("granted"),e.getConnectionMode()===null&&await e.setConnectionMode("direct");const T=await h();return E.current=T,u.current?.updateState(g()),{success:!0}}}const d=await h();return E.current=d,u.current?.updateState(g()),{success:!1}},[O.MSG.MODAL_LNA_SKIP]:async()=>{C.setDirectStatus("skipped");const t=await h();return E.current=t,u.current?.updateState(g()),{success:!0}},[O.MSG.MODAL_CLOSE]:()=>{p()},[O.MSG.MODAL_COMPLETE]:()=>{p()},[O.MSG.MODAL_CONFIRM_SERVER_INSTALL]:t=>(C.setServerInstallConfirmed(t.payload.confirmed),u.current?.updateState(g()),{success:!0}),[O.MSG.MODAL_SELECT_CONNECTION]:async t=>{const o=t.payload.connection==="lna"?"direct":"extension";return await e.setConnectionMode(o),u.current?.updateState(g()),{success:!0}}}),[_,e,C,h,g,M,p]);return r.useEffect(()=>(u.current=new s.OnboardingModal({modalHtmlPath:c,handlers:k}),()=>{u.current?.destroy(),u.current=null}),[c,k]),r.useEffect(()=>{R&&u.current?(u.current.showLoading(),h(!0).then(t=>{E.current=t,u.current?.updateState(t),y?.()}).catch(t=>{console.error("[SetupModalProcessor] buildSetupState failed:",t)})):!R&&u.current&&u.current.destroy()},[R,h,y]),null}const j={status:"not-initialized",mode:null,extensionId:null,url:null,server:s.BACKEND_SERVER_NOT_CONNECTED,error:null},U={status:"initializing",mode:null,extensionId:null,url:null,server:s.BACKEND_SERVER_NOT_CONNECTED,error:null};function G(e){return e.status==="not-initialized"}function q(e){return e.status==="initializing"}function F(e){return e.status!=="not-initialized"&&e.status!=="initializing"}function P(e){return e.status==="ready"}function H(e){return P(e)&&e.server.status==="ready"}function V(e){return s.isExtensionState(e)?{status:e.extension==="not-initialized"?"initializing":e.extension==="not-found"?"extension-not-found":"ready",mode:"extension",extensionId:e.extensionId,url:null,server:e.server,error:e.server.error}:{status:e.url===null?"direct-not-connected":"ready",mode:"direct",extensionId:null,url:e.url,server:e.server,error:e.server.error}}const X={isNotInitialized:G,isInitializing:q,isInitialized:F,isReady:P,isOverallReady:H},z=r.createContext(null);z.displayName="BodhiContext";function Z({children:e,client:c,modalHtmlPath:p,handleCallback:y=!0,callbackPath:w,basePath:b="/",logLevel:S="warn"}){const R=b==="/"?"":b.replace(/\/$/,""),_=w??`${R}/callback`,u=r.useMemo(()=>new s.Logger("BodhiProvider",S),[S]),C=r.useRef(!1),E=r.useRef(!1),[m,L]=r.useState(j),[A,M]=r.useState(s.INITIAL_AUTH_STATE),[I,x]=r.useState(!1),[h,g]=r.useState("ready");r.useEffect(()=>{const a=i=>{switch(i.type){case"client-state":L(V(i.state));break;case"auth-state":M(i.state),x(!1);break}};return c.setStateCallback(a),()=>{c.setStateCallback(s.NOOP_STATE_CALLBACK)}},[c]);const k=r.useCallback(async()=>{g("loading")},[]),t=r.useCallback(()=>{g("ready")},[]),n=r.useCallback(()=>{g("loaded")},[]),o=r.useCallback(async a=>{L(U);try{await c.init(a||{})}catch(i){u.error("Init failed:",i)}},[c,u]);r.useEffect(()=>{if(E.current)return;E.current=!0,(async()=>{if(await o(),!y)return;const i=new URL(window.location.href);if(i.pathname!==_)return;const v=i.searchParams.get("code"),B=i.searchParams.get("state");!v||!B||C.current||(C.current=!0,s.isWebUIClient(c)&&(x(!0),c.handleOAuthCallback(v,B).then(()=>{window.history.replaceState({},"",b)}).catch(D=>{u.error("OAuth callback failed:",D),M({status:"error",user:null,accessToken:null,error:{message:D instanceof Error?D.message:"OAuth callback failed",code:"OAUTH_CALLBACK_FAILED"}}),x(!1),window.history.replaceState({},"",b)})))})()},[o,c,y,_,b]);const d=r.useCallback(async a=>{x(!0);try{const i=a?{...a.userRole&&{userRole:a.userRole},...a.requested&&{requested:a.requested},...a.flowType&&{flowType:a.flowType},...a.redirectUrl&&{redirectUrl:a.redirectUrl},...a.onProgress&&{onProgress:a.onProgress},...a.pollIntervalMs&&{pollIntervalMs:a.pollIntervalMs},...a.pollTimeoutMs&&{pollTimeoutMs:a.pollTimeoutMs}}:void 0,v=i&&Object.keys(i).length>0?i:void 0;await c.login(v)}catch(i){const v={status:"error",user:null,accessToken:null,error:{message:i instanceof Error?i.message:"Login failed",code:"LOGIN_FAILED"}};return M(v),x(!1),v}},[c]),f=r.useCallback(async()=>{try{await c.logout()}catch(a){M({status:"error",user:null,accessToken:null,error:{message:a instanceof Error?a.message:"Logout failed",code:"LOGOUT_FAILED"}})}},[c]),T=r.useMemo(()=>{const a=m.status==="ready",i=m.server.status==="ready";return{client:c,clientState:m,auth:A,isAuthLoading:I,login:d,logout:f,showSetup:k,hideSetup:t,setupState:h,isAuthenticated:A.status==="authenticated",canLogin:a&&!I,isReady:a,isServerReady:i,isOverallReady:a&&i,isInitializing:m.status==="initializing",isExtension:m.mode==="extension",isDirect:m.mode==="direct"}},[c,m,A,I,h,d,f,k,t]);return N.jsxs(z.Provider,{value:T,children:[N.jsx(K,{client:c,modalHtmlPath:p,hideSetup:t,onSetupReady:n,setupState:h,basePath:b,logLevel:S}),e]})}function J(){const e=r.useContext(z);if(!e)throw new Error("useBodhi must be used within BodhiProvider");return e}const Y=e=>l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 479.995 479.995",width:"480px",height:"480px",...e},l.createElement("path",{fill:"#ffa4b8",d:"M239.998,374.56l-0.01-0.01c0-0.01,0.01-0.01,0.01-0.02c-4.64-8.78-65.7-144.8-212.22-85.2 c-14.36,5.85-19.78,23.45-11.19,36.36c11.11,16.69,22.86,30.01,34.91,40.53c-27.85,7.89-45.6,33.8-43.3,61.55 c0.96,11.6,13.29,18.52,23.71,13.35c33.99-16.84,60.03-2.51,80.35,2.14c56.68,12.99,113.71,4.53,125.52-46.29 c0.52-2.22,0.95-4.51,1.28-6.89c0.01-0.04,0.01-0.08,0.02-0.12c0.066-0.492,0.126-0.978,0.181-1.458 c0.455-3.631,0.712-7.438,0.739-11.452c-0.02-1.44-0.02-2.01,0-2.25v-0.09c0-0.02,0-0.04,0.01-0.05c0-0.02,0.01-0.03,0.02-0.06 c0-0.01,0.01-0.01,0.01-0.02C240.018,374.569,240.008,374.56,239.998,374.56z"}),l.createElement("path",{fill:"#ffa4b8",d:"M471.798,427.769c-0.96,11.6-13.29,18.52-23.71,13.35c-33.99-16.84-60.03-2.51-80.35,2.14 c-63.41,14.53-127.25,2.22-127.74-66.21c0.033-2.642-0.044-2.302,0.04-2.47c-0.02-0.01-0.03-0.02-0.04-0.02l0.01-0.01 c0-0.01-0.01-0.01-0.01-0.02c4.64-8.78,65.7-144.8,212.22-85.2c14.36,5.85,19.78,23.45,11.19,36.36 c-11.11,16.69-22.86,30.01-34.91,40.53C456.348,374.109,474.098,400.019,471.798,427.769z"}),l.createElement("path",{fill:"#befa91",d:"M428.498,366.219c27.85,7.89,45.6,33.8,43.3,61.55c-0.96,11.6-13.29,18.52-23.71,13.35 c-33.99-16.84-60.03-2.51-80.35,2.14c-63.41,14.53-127.928,2.222-127.74-66.21c0.007-2.683-0.02-2.351,0.04-2.47 C248.598,379.129,345.858,438.329,428.498,366.219z"}),l.createElement("path",{fill:"#befa91",d:"M51.498,366.219c82.76,72.22,180.18,12.74,188.5,8.34c0.01,0,0.02,0.01,0.04,0.02 c-0.058,0.116-0.047-0.169-0.04,2.47c0.188,68.432-64.33,80.74-127.74,66.21c-20.32-4.65-46.36-18.98-80.35-2.14 c-10.42,5.17-22.75-1.75-23.71-13.35C5.898,400.019,23.648,374.109,51.498,366.219z"}),l.createElement("path",{fill:"#ffbfcb",d:"M235.228,365.299c-32.29-36.09-89.98-73-179.74-36.49c-1.979,0.805-3.787,1.834-5.413,3.042 c-10.569,7.856-25.473,5.765-32.82-5.164c-0.223-0.331-0.445-0.664-0.667-0.997c-8.59-12.91-3.17-30.51,11.19-36.36 C155.168,237.509,217.948,333.56,235.228,365.299z"}),l.createElement("path",{fill:"#ffa4b8",d:"M239.998,374.549c-12.85-2.2-214.54-23.33-193.03-240.71c1.49-14.99,15.86-25.15,30.48-21.55 c108.49,26.72,149.07,91.39,162.55,149.92C252.768,317.699,241.178,367.679,239.998,374.549z"}),l.createElement("path",{fill:"#ffbfcb",d:"M193.698,174.638c11.866,12.406-3.013,31.792-18.056,23.52 c-21.875-12.028-50.044-10.573-70.207,3.701c-24.832,17.579-59.398-0.365-60.013-30.784c-0.237-11.724,0.248-24.123,1.545-37.237 c1.49-14.99,15.86-25.15,30.48-21.55C131.23,125.537,168.324,148.11,193.698,174.638z"}),l.createElement("path",{fill:"#ffa4b8",d:"M221.538,39.599c9.78-11.13,27.15-11.12,36.93,0.01c157.02,178.77-7.48,323.95-18.47,334.94 C229.988,364.549,63.948,218.989,221.538,39.599z"}),l.createElement("path",{fill:"#ffbfcb",d:"M261.523,43.131c9.452,11.033,8.166,27.623-2.74,37.221c-0.784,0.69-1.535,1.439-2.245,2.247 c-35.942,40.915-55.05,80.07-63.012,116.258c-5.176,23.523-39.936,19.717-39.551-4.366c0.741-46.282,18.411-98.941,67.563-154.892 c9.78-11.13,27.15-11.12,36.93,0.01C259.5,40.785,260.518,41.959,261.523,43.131z"}),l.createElement("path",{fill:"#ffa4b8",d:"M239.998,374.549c-1.18-6.87-12.77-56.85,0-112.34c13.48-58.53,54.06-123.2,162.55-149.92 c14.62-3.6,28.99,6.56,30.48,21.55C454.538,351.219,252.848,372.349,239.998,374.549z"}),l.createElement("path",{fill:"#ff8ca5",d:"M239.998,374.549c-3.115-0.536-17.362-2.183-36.835-7.483c-3.181-0.866-6.028-2.682-8.145-5.209 c-49.098-58.608-75.675-130.75-61.047-205.793c2.165-11.107,14.881-16.444,24.408-10.337c0.756,0.485,1.506,0.972,2.249,1.462 C126.798,274.139,232.088,366.649,239.998,374.549z"}),l.createElement("path",{fill:"#ff8ca5",d:"M281.608,365.729c-21.9,6.37-38.24,8.25-41.61,8.82c8.67-8.67,112.98-100.94,79.35-227.34v-0.01 c0.742-0.489,1.49-0.975,2.244-1.459c9.551-6.123,22.265-0.733,24.422,10.406C369.565,277.734,281.608,363.204,281.608,365.729z"}),l.createElement("path",{fill:"#ff8ca5",d:"M417.451,302.932c-32.211,44.193-80.706,72.823-134.571,87.345c-3.396,0.916-6.999,0.754-10.3-0.463 c-20.772-7.664-31.911-15.254-32.583-15.254c0.826-0.825,112.667-9.463,166.4-98.31C419.37,278.279,424.743,292.927,417.451,302.932 z"}),l.createElement("path",{fill:"#ff8ca5",d:"M62.565,302.932c32.211,44.193,80.705,72.823,134.571,87.345c3.396,0.916,6.999,0.754,10.3-0.463 c20.772-7.664,31.911-15.254,32.583-15.254c-0.828-0.828-112.665-9.458-166.4-98.31C60.646,278.279,55.273,292.927,62.565,302.932z"}),l.createElement("path",{fill:"#9ceb63",d:"M433.464,393.091c-52.749,39.415-118.979,42.09-182.861,13.657 c-4.441-1.977-7.606-6.011-8.633-10.763c-1.552-7.18-1.884-14.238-1.973-21.326c0.172-0.345,9.566,5.934,26.76,12.89 c36.31,14.71,102.75,30.15,161.74-21.33C440.977,369.752,443.403,385.664,433.464,393.091z"}),l.createElement("path",{fill:"#9ceb63",d:"M240.038,374.579c0,0.01-0.01,0.01-0.01,0.02s-0.01,0.03-0.01,0.05c0,0,0,0,0,0.01 c-0.01,0.03-0.01,0.06-0.02,0.1v0.04c-0.13,1.3,0.09,7.59-0.92,15.16c-0.01,0.04-0.01,0.08-0.02,0.12 c-0.26,1.91-0.59,3.91-1.03,5.92c-0.07,0.33-0.15,0.65-0.25,0.97c-1.23,4.33-4.28,7.95-8.41,9.79 c-63.06,28.05-129.47,26.21-182.79-13.63c-9.94-7.43-7.63-23.36,4.92-26.91c13.1,11.46,28.11,20.79,44.16,26.79 c19.78,7.48,34.99,8.98,53.83,8.68c34.33-0.55,60.1-11.03,90.51-27.13C240.008,374.56,240.018,374.569,240.038,374.579z"}),l.createElement("path",{d:"M443.143,363.426c9.579-9.648,18.604-20.804,26.926-33.305c11.399-17.132,4.201-40.447-14.837-48.202 c-12.321-5.012-24.515-8.844-36.391-11.454c17.945-34.197,27.974-78.94,22.188-137.413c-1.925-19.503-20.802-33.354-40.394-28.53 c-17.952,4.421-34.806,10.063-50.093,16.768c-4.046,1.775-5.888,6.494-4.113,10.54c1.774,4.046,6.493,5.887,10.54,4.113 c14.45-6.338,30.429-11.682,47.492-15.885c9.885-2.435,19.599,4.434,20.607,14.573c9.088,90.121-21.147,164.341-99.823,205.213 c-3.921,2.037-5.448,6.866-3.411,10.787c2.043,3.933,6.879,5.442,10.787,3.411c27.191-14.125,56.267-35.849,77.701-68.994 c12.564,2.375,25.617,6.296,38.878,11.69c9.68,3.943,13.334,15.824,7.549,24.518c-10.205,15.33-21.482,28.43-33.516,38.936 c-49.396,43.107-111.979,41.39-169.834,12.419c56.638-56.971,92.247-132.34,77.074-212.524 c-8.101-42.81-30.305-85.119-65.997-125.754c-12.964-14.759-36.003-14.748-48.946-0.016 c-28.645,32.607-48.657,66.371-59.602,100.512c-21.999-13.018-47.7-23.197-76.569-30.307c-19.338-4.763-38.383,8.699-40.354,28.53 C26.197,262.501,90.89,324.677,147.416,354.042c3.92,2.036,8.75,0.51,10.787-3.411c2.037-3.921,0.51-8.75-3.411-10.787 c-52.141-27.086-111.791-84.677-99.863-205.213c1.007-10.132,10.713-17.01,20.606-14.574c31.115,7.663,58.223,19.013,80.571,33.735 c4.863,3.204,10.891,0.586,12.257-4.539c9.392-35.245,29.306-70.362,59.188-104.378c6.581-7.492,18.316-7.487,24.904,0.014 c128.735,146.565,37.449,269.122-12.476,318.519c-30.274-29.828-76.759-87.727-78.002-162.831 c-0.073-4.417-3.698-7.933-8.131-7.867c-4.417,0.073-7.939,3.714-7.867,8.131c1.382,83.483,54.096,146.516,85.999,177.099 c-0.353,20.737-7.099,36.575-20.104,47.086c-20.129,16.267-55.786,20.072-97.831,10.438c-19.181-4.396-48.632-19.874-85.688-1.511 c-5.361,2.657-11.689-0.859-12.186-6.844c-1.888-22.74,12.042-43.926,33.548-51.893c13.4,11.096,27.797,19.551,43.11,25.275 c20.238,7.653,36.036,9.525,56.788,9.196c15.85-0.254,30.814-2.572,45.747-7.085c4.229-1.278,6.622-5.743,5.343-9.972 c-1.278-4.229-5.744-6.622-9.972-5.344c-13.494,4.078-27.027,6.173-41.373,6.403c-17.347,0.275-31.911-0.993-50.901-8.174 c-31.69-11.847-56.387-35.98-75.211-64.258c-5.791-8.704-2.122-20.58,7.548-24.52c4.092-1.667,6.058-6.335,4.391-10.427 c-1.667-4.092-6.334-6.058-10.427-4.391c-19.062,7.765-26.214,31.095-14.832,48.202c8.365,12.566,17.352,23.674,26.917,33.31 C12.89,375.664-2.037,401.187,0.226,428.434c1.427,17.192,19.743,27.533,35.235,19.857c30.84-15.283,54.311-1.971,75.01,2.771 c36.708,8.411,82.166,10.086,111.461-13.59c14.777-11.943,23.305-28.715,25.489-49.937 c61.607,30.736,128.694,32.482,182.835-12.326c21.516,7.959,35.456,29.153,33.567,51.902c-0.493,5.939-6.786,9.519-12.186,6.844 c-30.339-15.034-55.535-7.379-73.932-1.791c-31.306,9.51-74.736,14.144-102.884-2.498c-3.803-2.248-8.709-0.989-10.958,2.815 c-2.249,3.803-0.989,8.709,2.815,10.958c29.214,17.272,69.817,15.19,102.844,7.622c20.72-4.747,44.177-18.05,75.01-2.771 c15.523,7.691,33.811-2.693,35.235-19.856C482.032,401.183,467.102,375.655,443.143,363.426z"})),$={sm:32,md:48,lg:64};function Q({size:e="md",variant:c="light",className:p="",style:y={}}){const w=$[e],b={display:"inline-block",cursor:"pointer",transition:"all 250ms ease",borderRadius:"50%",...c==="dark"&&{backgroundColor:"rgba(255, 255, 255, 0.05)",padding:"8px"},...y};return N.jsx("a",{href:"https://getbodhi.app",target:"_blank",rel:"noopener noreferrer",title:"Powered by Bodhi","aria-label":"Powered by Bodhi - Visit getbodhi.app",className:p,style:b,onMouseEnter:S=>{S.currentTarget.style.transform="scale(1.1)",S.currentTarget.style.boxShadow="0 0 20px rgba(255, 164, 184, 0.6)"},onMouseLeave:S=>{S.currentTarget.style.transform="scale(1)",S.currentTarget.style.boxShadow="none"},children:N.jsx(Y,{width:w,height:w,style:{display:"block"}})})}const ee="production";Object.defineProperty(exports,"createApiError",{enumerable:!0,get:()=>s.createApiError});Object.defineProperty(exports,"createOperationError",{enumerable:!0,get:()=>s.createOperationError});Object.defineProperty(exports,"isApiResultError",{enumerable:!0,get:()=>s.isApiResultError});Object.defineProperty(exports,"isApiResultOperationError",{enumerable:!0,get:()=>s.isApiResultOperationError});Object.defineProperty(exports,"isApiResultSuccess",{enumerable:!0,get:()=>s.isApiResultSuccess});Object.defineProperty(exports,"isAuthError",{enumerable:!0,get:()=>s.isAuthError});Object.defineProperty(exports,"isAuthLoading",{enumerable:!0,get:()=>s.isAuthLoading});Object.defineProperty(exports,"isAuthenticated",{enumerable:!0,get:()=>s.isAuthenticated});Object.defineProperty(exports,"isClientReady",{enumerable:!0,get:()=>s.isClientReady});Object.defineProperty(exports,"isDirectState",{enumerable:!0,get:()=>s.isDirectState});Object.defineProperty(exports,"isExtensionState",{enumerable:!0,get:()=>s.isExtensionState});Object.defineProperty(exports,"isOperationError",{enumerable:!0,get:()=>s.isOperationError});Object.defineProperty(exports,"isWebUIClient",{enumerable:!0,get:()=>s.isWebUIClient});exports.BodhiBadge=Q;exports.BodhiProvider=Z;exports.BodhiReactContext=z;exports.ClientCtxState=X;exports.INITIALIZING_CLIENT_CONTEXT_STATE=U;exports.INITIAL_CLIENT_CONTEXT_STATE=j;exports.REACT_CORE_BUILD_MODE=ee;exports.clientStateToContextState=V;exports.isClientCtxInitialized=F;exports.isClientCtxInitializing=q;exports.isClientCtxNotInitialized=G;exports.isClientCtxReady=P;exports.isOverallReady=H;exports.useBodhi=J;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),s=require("@bodhiapp/bodhi-js-core"),r=require("react"),M=require("@bodhiapp/setup-modal-types");function W(e){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const p in e)if(p!=="default"){const y=Object.getOwnPropertyDescriptor(e,p);Object.defineProperty(c,p,y.get?y:{enumerable:!0,get:()=>e[p]})}}return c.default=e,Object.freeze(c)}const l=W(r);function K({client:e,modalHtmlPath:c,hideSetup:p,onSetupReady:y,setupState:I,basePath:h="/",logLevel:S="warn"}){const R=I!=="ready",O=r.useMemo(()=>new s.Logger("SetupModalProcessor",S),[S]),u=r.useRef(null),f=r.useMemo(()=>new s.BodhiClientUserPrefsManager(s.createStoragePrefixWithBasePath(h,"bodhijs:")),[h]),b=r.useRef(null),m=r.useCallback(t=>t==="direct"?"lna":t==="extension"?"extension":null,[]),L=r.useCallback(t=>t.extension==="ready"?{status:"ready",version:"unknown",id:t.extensionId}:t.extension==="not-found"?{status:"not-installed",error:{message:"Extension not found",code:"ext-not-installed"}}:{status:"unreachable",error:{message:"Client not initialized",code:"ext-connection-failed"}},[]),T=r.useCallback(t=>{if(t.server.status==="pending-extension-ready")return{status:"pending-extension-ready",error:{message:"Extension not ready",code:"server-pending-ext-ready"}};const n=t.server;switch(n.status){case"ready":return{status:"ready",version:n.version||"unknown"};case"setup":return{status:"setup",version:n.version||"unknown",error:{message:n.error?.message||"Setup required",code:"server-in-setup-status"}};case"resource_admin":return{status:"resource_admin",version:n.version||"unknown",error:{message:n.error?.message||"Resource admin required",code:"server-in-admin-status"}};case"error":return{status:"error",error:{message:n.error?.message||"Unknown error",code:"server-unexpected-error"}};case"not-reachable":return{status:"unreachable",error:{message:n.error?.message||"Server not reachable",code:"server-conn-refused"}};default:return{status:"unreachable",error:{message:"Unknown server status",code:"server-unexpected-error"}}}},[]),x=r.useCallback(t=>{if(t.server.status==="not-connected")return{status:"pending-lna-ready"};const n=t.server;switch(n.status){case"ready":return{status:"ready",version:n.version||"unknown"};case"setup":return{status:"setup",version:n.version||"unknown"};case"resource_admin":return{status:"resource_admin",version:n.version||"unknown"};case"error":case"not-reachable":return{status:"error",error:{message:n.error?.message||"Connection error"}};default:return{status:"error",error:{message:"Unknown server status"}}}},[]),A=r.useCallback((t,n)=>{if(t.server.status!=="pending-extension-ready"){const o=t.server.status;if(o==="ready"||o==="setup"||o==="resource_admin")return!0}if(n.server.status!=="not-connected"){const o=n.server.status;if(o==="ready"||o==="setup"||o==="resource_admin")return!0}return!1},[]),w=r.useCallback((t,n,o)=>{if(n==="skipped")return{status:"skipped",serverUrl:o};if(t.server.status!=="not-connected"){const d=t.server;return d.status==="ready"||d.status==="setup"||d.status==="resource_admin"?{status:"granted",serverUrl:o}:{status:"unreachable",serverUrl:o,error:{message:d.error?.message||"Server unreachable",code:"lna-unreachable"}}}return n==="granted"?{status:"granted",serverUrl:o}:{status:"prompt",serverUrl:o}},[]),E=r.useCallback(async(t=!1)=>{const n=s.detectBrowser().type,o=s.detectOS().type;let d=await e.getExtensionState();(d.extension==="not-initialized"||t)&&(d=await e.testExtensionConnectivity());let C=await e.getDirectState();const _=f.getDirectStatus();_==="granted"&&(C.server.status==="not-connected"||t)&&(C=await e.testDirectConnectivity());const i=s.getServerUrl(C)||"http://localhost:1135",v=w(C,_,i);return e.getConnectionMode()===null&&(s.isDirectServerReady(C)?await e.setConnectionMode("direct"):s.isExtensionServerReady(d)&&await e.setConnectionMode("extension")),f.isServerInstallConfirmed()||A(d,C)&&f.setServerInstallConfirmed(!0),{extension:L(d),server:T(d),lna:v,lnaServer:x(C),env:{browser:n,os:o},browsers:s.BROWSER_CONFIGS,os:s.OS_CONFIGS,userConfirmations:{serverInstall:f.isServerInstallConfirmed()},selectedConnection:m(e.getConnectionMode())}},[e,f,L,T,x,m,w,A]),g=r.useCallback(()=>{if(!b.current)throw new Error("Cannot get state: currentStateRef is null");return{...b.current,userConfirmations:{serverInstall:f.isServerInstallConfirmed()},selectedConnection:m(e.getConnectionMode())}},[f,e,m]),k=r.useMemo(()=>({[M.MSG.MODAL_READY]:async()=>(O.info("MODAL_READY: returning current state or default"),b.current?{setupState:g()}:{setupState:M.DEFAULT_SETUP_STATE}),[M.MSG.MODAL_REFRESH]:async()=>{O.info("MODAL_REFRESH: refreshing state");const t=await E(!0);b.current=t;const n=g();return O.info(`MODAL_REFRESH: state refreshed
2
+ `,JSON.stringify(n,null,2)),u.current?.updateState(g()),{setupState:n}},[M.MSG.MODAL_LNA_CONNECT]:async t=>{const n=t.payload.serverUrl;console.log("[SetupModalProcessor] LNA connect:",n);const o=await e.testDirectConnectivity(n);if(o.server.status!=="not-connected"){const C=o.server.status;if(C==="ready"||C==="setup"||C==="resource_admin"){f.setDirectStatus("granted"),e.getConnectionMode()===null&&await e.setConnectionMode("direct");const _=await E();return b.current=_,u.current?.updateState(g()),{success:!0}}}const d=await E();return b.current=d,u.current?.updateState(g()),{success:!1}},[M.MSG.MODAL_LNA_SKIP]:async()=>{f.setDirectStatus("skipped");const t=await E();return b.current=t,u.current?.updateState(g()),{success:!0}},[M.MSG.MODAL_CLOSE]:()=>{p()},[M.MSG.MODAL_COMPLETE]:()=>{p()},[M.MSG.MODAL_CONFIRM_SERVER_INSTALL]:t=>(f.setServerInstallConfirmed(t.payload.confirmed),u.current?.updateState(g()),{success:!0}),[M.MSG.MODAL_SELECT_CONNECTION]:async t=>{const o=t.payload.connection==="lna"?"direct":"extension";return await e.setConnectionMode(o),u.current?.updateState(g()),{success:!0}}}),[O,e,f,E,g,x,p]);return r.useEffect(()=>(u.current=new s.OnboardingModal({modalHtmlPath:c,handlers:k}),()=>{u.current?.destroy(),u.current=null}),[c,k]),r.useEffect(()=>{R&&u.current?(u.current.showLoading(),E(!0).then(t=>{b.current=t,u.current?.updateState(t),y?.()}).catch(t=>{console.error("[SetupModalProcessor] buildSetupState failed:",t)})):!R&&u.current&&u.current.destroy()},[R,E,y]),null}const j={status:"not-initialized",mode:null,extensionId:null,url:null,server:s.BACKEND_SERVER_NOT_CONNECTED,error:null},U={status:"initializing",mode:null,extensionId:null,url:null,server:s.BACKEND_SERVER_NOT_CONNECTED,error:null};function G(e){return e.status==="not-initialized"}function F(e){return e.status==="initializing"}function q(e){return e.status!=="not-initialized"&&e.status!=="initializing"}function P(e){return e.status==="ready"}function H(e){return P(e)&&e.server.status==="ready"}function V(e){return s.isExtensionState(e)?{status:e.extension==="not-initialized"?"initializing":e.extension==="not-found"?"extension-not-found":"ready",mode:"extension",extensionId:e.extensionId,url:null,server:e.server,error:e.server.error}:{status:e.url===null?"direct-not-connected":"ready",mode:"direct",extensionId:null,url:e.url,server:e.server,error:e.server.error}}const X={isNotInitialized:G,isInitializing:F,isInitialized:q,isReady:P,isOverallReady:H},z=r.createContext(null);z.displayName="BodhiContext";function Z({children:e,client:c,modalHtmlPath:p,handleCallback:y=!0,callbackPath:I,basePath:h="/",logLevel:S="warn"}){const R=h==="/"?"":h.replace(/\/$/,""),O=I??`${R}/callback`,u=r.useMemo(()=>new s.Logger("BodhiProvider",S),[S]),f=r.useRef(!1),b=r.useRef(!1),[m,L]=r.useState(j),[T,x]=r.useState(s.INITIAL_AUTH_STATE),[A,w]=r.useState(!1),[E,g]=r.useState("ready");r.useEffect(()=>{const a=i=>{switch(i.type){case"client-state":L(V(i.state));break;case"auth-state":x(i.state),w(!1);break}};return c.setStateCallback(a),()=>{c.setStateCallback(s.NOOP_STATE_CALLBACK)}},[c]);const k=r.useCallback(async()=>{g("loading")},[]),t=r.useCallback(()=>{g("ready")},[]),n=r.useCallback(()=>{g("loaded")},[]),o=r.useCallback(async a=>{L(U);try{await c.init(a||{})}catch(i){u.error("Init failed:",i)}},[c,u]);r.useEffect(()=>{if(b.current)return;b.current=!0,(async()=>{if(await o(),!y)return;const i=new URL(window.location.href);if(i.pathname!==O)return;const v=i.searchParams.get("code"),B=i.searchParams.get("state");!v||!B||f.current||(f.current=!0,s.isWebUIClient(c)&&(w(!0),c.handleOAuthCallback(v,B).then(()=>{window.history.replaceState({},"",h)}).catch(D=>{u.error("OAuth callback failed:",D),x({status:"error",user:null,accessToken:null,error:{message:D instanceof Error?D.message:"OAuth callback failed",code:"OAUTH_CALLBACK_FAILED"}}),w(!1),window.history.replaceState({},"",h)})))})()},[o,c,y,O,h]);const d=r.useCallback(async a=>{w(!0);try{const i=a?{...a.userRole&&{userRole:a.userRole},...a.requested&&{requested:a.requested},...a.flowType&&{flowType:a.flowType},...a.redirectUrl&&{redirectUrl:a.redirectUrl},...a.onProgress&&{onProgress:a.onProgress},...a.pollIntervalMs&&{pollIntervalMs:a.pollIntervalMs},...a.pollTimeoutMs&&{pollTimeoutMs:a.pollTimeoutMs}}:void 0,v=i&&Object.keys(i).length>0?i:void 0;await c.login(v)}catch(i){const v={status:"error",user:null,accessToken:null,error:{message:i instanceof Error?i.message:"Login failed",code:"LOGIN_FAILED"}};return x(v),w(!1),v}},[c]),C=r.useCallback(async()=>{try{await c.logout()}catch(a){x({status:"error",user:null,accessToken:null,error:{message:a instanceof Error?a.message:"Logout failed",code:"LOGOUT_FAILED"}})}},[c]),_=r.useMemo(()=>{const a=m.status==="ready",i=m.server.status==="ready";return{client:c,clientState:m,auth:T,isAuthLoading:A,login:d,logout:C,showSetup:k,hideSetup:t,setupState:E,isAuthenticated:T.status==="authenticated",canLogin:a&&!A,isReady:a,isServerReady:i,isOverallReady:a&&i,isInitializing:m.status==="initializing",isExtension:m.mode==="extension",isDirect:m.mode==="direct"}},[c,m,T,A,E,d,C,k,t]);return N.jsxs(z.Provider,{value:_,children:[N.jsx(K,{client:c,modalHtmlPath:p,hideSetup:t,onSetupReady:n,setupState:E,basePath:h,logLevel:S}),e]})}function J(){const e=r.useContext(z);if(!e)throw new Error("useBodhi must be used within BodhiProvider");return e}const Y=e=>l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 479.995 479.995",width:"480px",height:"480px",...e},l.createElement("path",{fill:"#ffa4b8",d:"M239.998,374.56l-0.01-0.01c0-0.01,0.01-0.01,0.01-0.02c-4.64-8.78-65.7-144.8-212.22-85.2 c-14.36,5.85-19.78,23.45-11.19,36.36c11.11,16.69,22.86,30.01,34.91,40.53c-27.85,7.89-45.6,33.8-43.3,61.55 c0.96,11.6,13.29,18.52,23.71,13.35c33.99-16.84,60.03-2.51,80.35,2.14c56.68,12.99,113.71,4.53,125.52-46.29 c0.52-2.22,0.95-4.51,1.28-6.89c0.01-0.04,0.01-0.08,0.02-0.12c0.066-0.492,0.126-0.978,0.181-1.458 c0.455-3.631,0.712-7.438,0.739-11.452c-0.02-1.44-0.02-2.01,0-2.25v-0.09c0-0.02,0-0.04,0.01-0.05c0-0.02,0.01-0.03,0.02-0.06 c0-0.01,0.01-0.01,0.01-0.02C240.018,374.569,240.008,374.56,239.998,374.56z"}),l.createElement("path",{fill:"#ffa4b8",d:"M471.798,427.769c-0.96,11.6-13.29,18.52-23.71,13.35c-33.99-16.84-60.03-2.51-80.35,2.14 c-63.41,14.53-127.25,2.22-127.74-66.21c0.033-2.642-0.044-2.302,0.04-2.47c-0.02-0.01-0.03-0.02-0.04-0.02l0.01-0.01 c0-0.01-0.01-0.01-0.01-0.02c4.64-8.78,65.7-144.8,212.22-85.2c14.36,5.85,19.78,23.45,11.19,36.36 c-11.11,16.69-22.86,30.01-34.91,40.53C456.348,374.109,474.098,400.019,471.798,427.769z"}),l.createElement("path",{fill:"#befa91",d:"M428.498,366.219c27.85,7.89,45.6,33.8,43.3,61.55c-0.96,11.6-13.29,18.52-23.71,13.35 c-33.99-16.84-60.03-2.51-80.35,2.14c-63.41,14.53-127.928,2.222-127.74-66.21c0.007-2.683-0.02-2.351,0.04-2.47 C248.598,379.129,345.858,438.329,428.498,366.219z"}),l.createElement("path",{fill:"#befa91",d:"M51.498,366.219c82.76,72.22,180.18,12.74,188.5,8.34c0.01,0,0.02,0.01,0.04,0.02 c-0.058,0.116-0.047-0.169-0.04,2.47c0.188,68.432-64.33,80.74-127.74,66.21c-20.32-4.65-46.36-18.98-80.35-2.14 c-10.42,5.17-22.75-1.75-23.71-13.35C5.898,400.019,23.648,374.109,51.498,366.219z"}),l.createElement("path",{fill:"#ffbfcb",d:"M235.228,365.299c-32.29-36.09-89.98-73-179.74-36.49c-1.979,0.805-3.787,1.834-5.413,3.042 c-10.569,7.856-25.473,5.765-32.82-5.164c-0.223-0.331-0.445-0.664-0.667-0.997c-8.59-12.91-3.17-30.51,11.19-36.36 C155.168,237.509,217.948,333.56,235.228,365.299z"}),l.createElement("path",{fill:"#ffa4b8",d:"M239.998,374.549c-12.85-2.2-214.54-23.33-193.03-240.71c1.49-14.99,15.86-25.15,30.48-21.55 c108.49,26.72,149.07,91.39,162.55,149.92C252.768,317.699,241.178,367.679,239.998,374.549z"}),l.createElement("path",{fill:"#ffbfcb",d:"M193.698,174.638c11.866,12.406-3.013,31.792-18.056,23.52 c-21.875-12.028-50.044-10.573-70.207,3.701c-24.832,17.579-59.398-0.365-60.013-30.784c-0.237-11.724,0.248-24.123,1.545-37.237 c1.49-14.99,15.86-25.15,30.48-21.55C131.23,125.537,168.324,148.11,193.698,174.638z"}),l.createElement("path",{fill:"#ffa4b8",d:"M221.538,39.599c9.78-11.13,27.15-11.12,36.93,0.01c157.02,178.77-7.48,323.95-18.47,334.94 C229.988,364.549,63.948,218.989,221.538,39.599z"}),l.createElement("path",{fill:"#ffbfcb",d:"M261.523,43.131c9.452,11.033,8.166,27.623-2.74,37.221c-0.784,0.69-1.535,1.439-2.245,2.247 c-35.942,40.915-55.05,80.07-63.012,116.258c-5.176,23.523-39.936,19.717-39.551-4.366c0.741-46.282,18.411-98.941,67.563-154.892 c9.78-11.13,27.15-11.12,36.93,0.01C259.5,40.785,260.518,41.959,261.523,43.131z"}),l.createElement("path",{fill:"#ffa4b8",d:"M239.998,374.549c-1.18-6.87-12.77-56.85,0-112.34c13.48-58.53,54.06-123.2,162.55-149.92 c14.62-3.6,28.99,6.56,30.48,21.55C454.538,351.219,252.848,372.349,239.998,374.549z"}),l.createElement("path",{fill:"#ff8ca5",d:"M239.998,374.549c-3.115-0.536-17.362-2.183-36.835-7.483c-3.181-0.866-6.028-2.682-8.145-5.209 c-49.098-58.608-75.675-130.75-61.047-205.793c2.165-11.107,14.881-16.444,24.408-10.337c0.756,0.485,1.506,0.972,2.249,1.462 C126.798,274.139,232.088,366.649,239.998,374.549z"}),l.createElement("path",{fill:"#ff8ca5",d:"M281.608,365.729c-21.9,6.37-38.24,8.25-41.61,8.82c8.67-8.67,112.98-100.94,79.35-227.34v-0.01 c0.742-0.489,1.49-0.975,2.244-1.459c9.551-6.123,22.265-0.733,24.422,10.406C369.565,277.734,281.608,363.204,281.608,365.729z"}),l.createElement("path",{fill:"#ff8ca5",d:"M417.451,302.932c-32.211,44.193-80.706,72.823-134.571,87.345c-3.396,0.916-6.999,0.754-10.3-0.463 c-20.772-7.664-31.911-15.254-32.583-15.254c0.826-0.825,112.667-9.463,166.4-98.31C419.37,278.279,424.743,292.927,417.451,302.932 z"}),l.createElement("path",{fill:"#ff8ca5",d:"M62.565,302.932c32.211,44.193,80.705,72.823,134.571,87.345c3.396,0.916,6.999,0.754,10.3-0.463 c20.772-7.664,31.911-15.254,32.583-15.254c-0.828-0.828-112.665-9.458-166.4-98.31C60.646,278.279,55.273,292.927,62.565,302.932z"}),l.createElement("path",{fill:"#9ceb63",d:"M433.464,393.091c-52.749,39.415-118.979,42.09-182.861,13.657 c-4.441-1.977-7.606-6.011-8.633-10.763c-1.552-7.18-1.884-14.238-1.973-21.326c0.172-0.345,9.566,5.934,26.76,12.89 c36.31,14.71,102.75,30.15,161.74-21.33C440.977,369.752,443.403,385.664,433.464,393.091z"}),l.createElement("path",{fill:"#9ceb63",d:"M240.038,374.579c0,0.01-0.01,0.01-0.01,0.02s-0.01,0.03-0.01,0.05c0,0,0,0,0,0.01 c-0.01,0.03-0.01,0.06-0.02,0.1v0.04c-0.13,1.3,0.09,7.59-0.92,15.16c-0.01,0.04-0.01,0.08-0.02,0.12 c-0.26,1.91-0.59,3.91-1.03,5.92c-0.07,0.33-0.15,0.65-0.25,0.97c-1.23,4.33-4.28,7.95-8.41,9.79 c-63.06,28.05-129.47,26.21-182.79-13.63c-9.94-7.43-7.63-23.36,4.92-26.91c13.1,11.46,28.11,20.79,44.16,26.79 c19.78,7.48,34.99,8.98,53.83,8.68c34.33-0.55,60.1-11.03,90.51-27.13C240.008,374.56,240.018,374.569,240.038,374.579z"}),l.createElement("path",{d:"M443.143,363.426c9.579-9.648,18.604-20.804,26.926-33.305c11.399-17.132,4.201-40.447-14.837-48.202 c-12.321-5.012-24.515-8.844-36.391-11.454c17.945-34.197,27.974-78.94,22.188-137.413c-1.925-19.503-20.802-33.354-40.394-28.53 c-17.952,4.421-34.806,10.063-50.093,16.768c-4.046,1.775-5.888,6.494-4.113,10.54c1.774,4.046,6.493,5.887,10.54,4.113 c14.45-6.338,30.429-11.682,47.492-15.885c9.885-2.435,19.599,4.434,20.607,14.573c9.088,90.121-21.147,164.341-99.823,205.213 c-3.921,2.037-5.448,6.866-3.411,10.787c2.043,3.933,6.879,5.442,10.787,3.411c27.191-14.125,56.267-35.849,77.701-68.994 c12.564,2.375,25.617,6.296,38.878,11.69c9.68,3.943,13.334,15.824,7.549,24.518c-10.205,15.33-21.482,28.43-33.516,38.936 c-49.396,43.107-111.979,41.39-169.834,12.419c56.638-56.971,92.247-132.34,77.074-212.524 c-8.101-42.81-30.305-85.119-65.997-125.754c-12.964-14.759-36.003-14.748-48.946-0.016 c-28.645,32.607-48.657,66.371-59.602,100.512c-21.999-13.018-47.7-23.197-76.569-30.307c-19.338-4.763-38.383,8.699-40.354,28.53 C26.197,262.501,90.89,324.677,147.416,354.042c3.92,2.036,8.75,0.51,10.787-3.411c2.037-3.921,0.51-8.75-3.411-10.787 c-52.141-27.086-111.791-84.677-99.863-205.213c1.007-10.132,10.713-17.01,20.606-14.574c31.115,7.663,58.223,19.013,80.571,33.735 c4.863,3.204,10.891,0.586,12.257-4.539c9.392-35.245,29.306-70.362,59.188-104.378c6.581-7.492,18.316-7.487,24.904,0.014 c128.735,146.565,37.449,269.122-12.476,318.519c-30.274-29.828-76.759-87.727-78.002-162.831 c-0.073-4.417-3.698-7.933-8.131-7.867c-4.417,0.073-7.939,3.714-7.867,8.131c1.382,83.483,54.096,146.516,85.999,177.099 c-0.353,20.737-7.099,36.575-20.104,47.086c-20.129,16.267-55.786,20.072-97.831,10.438c-19.181-4.396-48.632-19.874-85.688-1.511 c-5.361,2.657-11.689-0.859-12.186-6.844c-1.888-22.74,12.042-43.926,33.548-51.893c13.4,11.096,27.797,19.551,43.11,25.275 c20.238,7.653,36.036,9.525,56.788,9.196c15.85-0.254,30.814-2.572,45.747-7.085c4.229-1.278,6.622-5.743,5.343-9.972 c-1.278-4.229-5.744-6.622-9.972-5.344c-13.494,4.078-27.027,6.173-41.373,6.403c-17.347,0.275-31.911-0.993-50.901-8.174 c-31.69-11.847-56.387-35.98-75.211-64.258c-5.791-8.704-2.122-20.58,7.548-24.52c4.092-1.667,6.058-6.335,4.391-10.427 c-1.667-4.092-6.334-6.058-10.427-4.391c-19.062,7.765-26.214,31.095-14.832,48.202c8.365,12.566,17.352,23.674,26.917,33.31 C12.89,375.664-2.037,401.187,0.226,428.434c1.427,17.192,19.743,27.533,35.235,19.857c30.84-15.283,54.311-1.971,75.01,2.771 c36.708,8.411,82.166,10.086,111.461-13.59c14.777-11.943,23.305-28.715,25.489-49.937 c61.607,30.736,128.694,32.482,182.835-12.326c21.516,7.959,35.456,29.153,33.567,51.902c-0.493,5.939-6.786,9.519-12.186,6.844 c-30.339-15.034-55.535-7.379-73.932-1.791c-31.306,9.51-74.736,14.144-102.884-2.498c-3.803-2.248-8.709-0.989-10.958,2.815 c-2.249,3.803-0.989,8.709,2.815,10.958c29.214,17.272,69.817,15.19,102.844,7.622c20.72-4.747,44.177-18.05,75.01-2.771 c15.523,7.691,33.811-2.693,35.235-19.856C482.032,401.183,467.102,375.655,443.143,363.426z"})),$={sm:32,md:48,lg:64};function Q({size:e="md",variant:c="light",className:p="",style:y={}}){const I=$[e],h={display:"inline-block",cursor:"pointer",transition:"all 250ms ease",borderRadius:"50%",...c==="dark"&&{backgroundColor:"rgba(255, 255, 255, 0.05)",padding:"8px"},...y};return N.jsx("a",{href:"https://getbodhi.app",target:"_blank",rel:"noopener noreferrer",title:"Powered by Bodhi","aria-label":"Powered by Bodhi - Visit getbodhi.app",className:p,style:h,onMouseEnter:S=>{S.currentTarget.style.transform="scale(1.1)",S.currentTarget.style.boxShadow="0 0 20px rgba(255, 164, 184, 0.6)"},onMouseLeave:S=>{S.currentTarget.style.transform="scale(1)",S.currentTarget.style.boxShadow="none"},children:N.jsx(Y,{width:I,height:I,style:{display:"block"}})})}const ee="production";Object.defineProperty(exports,"BodhiApiError",{enumerable:!0,get:()=>s.BodhiApiError});Object.defineProperty(exports,"BodhiError",{enumerable:!0,get:()=>s.BodhiError});Object.defineProperty(exports,"createApiError",{enumerable:!0,get:()=>s.createApiError});Object.defineProperty(exports,"createOperationError",{enumerable:!0,get:()=>s.createOperationError});Object.defineProperty(exports,"isAuthError",{enumerable:!0,get:()=>s.isAuthError});Object.defineProperty(exports,"isAuthLoading",{enumerable:!0,get:()=>s.isAuthLoading});Object.defineProperty(exports,"isAuthenticated",{enumerable:!0,get:()=>s.isAuthenticated});Object.defineProperty(exports,"isClientReady",{enumerable:!0,get:()=>s.isClientReady});Object.defineProperty(exports,"isDirectState",{enumerable:!0,get:()=>s.isDirectState});Object.defineProperty(exports,"isExtensionState",{enumerable:!0,get:()=>s.isExtensionState});Object.defineProperty(exports,"isWebUIClient",{enumerable:!0,get:()=>s.isWebUIClient});Object.defineProperty(exports,"unwrapResponse",{enumerable:!0,get:()=>s.unwrapResponse});exports.BodhiBadge=Q;exports.BodhiProvider=Z;exports.BodhiReactContext=z;exports.ClientCtxState=X;exports.INITIALIZING_CLIENT_CONTEXT_STATE=U;exports.INITIAL_CLIENT_CONTEXT_STATE=j;exports.REACT_CORE_BUILD_MODE=ee;exports.clientStateToContextState=V;exports.isClientCtxInitialized=q;exports.isClientCtxInitializing=F;exports.isClientCtxNotInitialized=G;exports.isClientCtxReady=P;exports.isOverallReady=H;exports.useBodhi=J;
@@ -1,25 +1,25 @@
1
1
  import { jsxs as V, jsx as P } from "react/jsx-runtime";
2
- import { Logger as q, BodhiClientUserPrefsManager as W, createStoragePrefixWithBasePath as j, detectBrowser as K, detectOS as X, getServerUrl as Y, isDirectServerReady as Z, isExtensionServerReady as $, OS_CONFIGS as J, BROWSER_CONFIGS as Q, OnboardingModal as ee, BACKEND_SERVER_NOT_CONNECTED as G, isExtensionState as te, INITIAL_AUTH_STATE as re, NOOP_STATE_CALLBACK as ne, isWebUIClient as se } from "@bodhiapp/bodhi-js-core";
3
- import { createApiError as Te, createOperationError as Oe, isApiResultError as Le, isApiResultOperationError as Re, isApiResultSuccess as ke, isAuthError as ze, isAuthLoading as De, isAuthenticated as Ne, isClientReady as Be, isDirectState as Pe, isExtensionState as Ue, isOperationError as Fe, isWebUIClient as qe } from "@bodhiapp/bodhi-js-core";
2
+ import { Logger as G, BodhiClientUserPrefsManager as W, createStoragePrefixWithBasePath as j, detectBrowser as K, detectOS as X, getServerUrl as Y, isDirectServerReady as Z, isExtensionServerReady as $, OS_CONFIGS as J, BROWSER_CONFIGS as Q, OnboardingModal as ee, BACKEND_SERVER_NOT_CONNECTED as H, isExtensionState as te, INITIAL_AUTH_STATE as re, NOOP_STATE_CALLBACK as ne, isWebUIClient as se } from "@bodhiapp/bodhi-js-core";
3
+ import { BodhiApiError as Te, BodhiError as Le, createApiError as Oe, createOperationError as Re, isAuthError as ze, isAuthLoading as ke, isAuthenticated as De, isClientReady as Ne, isDirectState as Be, isExtensionState as Pe, isWebUIClient as Ue, unwrapResponse as Fe } from "@bodhiapp/bodhi-js-core";
4
4
  import * as i from "react";
5
- import { useMemo as k, useRef as D, useCallback as f, useEffect as N, createContext as ae, useState as z, useContext as ce } from "react";
5
+ import { useMemo as z, useRef as D, useCallback as f, useEffect as N, createContext as ae, useState as k, useContext as ce } from "react";
6
6
  import { MSG as w, DEFAULT_SETUP_STATE as oe } from "@bodhiapp/setup-modal-types";
7
7
  function ie({
8
8
  client: e,
9
9
  modalHtmlPath: a,
10
10
  hideSetup: x,
11
- onSetupReady: _,
12
- setupState: M,
13
- basePath: S = "/",
11
+ onSetupReady: b,
12
+ setupState: A,
13
+ basePath: h = "/",
14
14
  logLevel: g = "warn"
15
15
  }) {
16
- const O = M !== "ready", b = k(() => new q("SetupModalProcessor", g), [g]), o = D(null), d = k(
17
- () => new W(j(S, "bodhijs:")),
18
- [S]
19
- ), h = D(null), m = f(
16
+ const L = A !== "ready", M = z(() => new G("SetupModalProcessor", g), [g]), o = D(null), l = z(
17
+ () => new W(j(h, "bodhijs:")),
18
+ [h]
19
+ ), S = D(null), m = f(
20
20
  (t) => t === "direct" ? "lna" : t === "extension" ? "extension" : null,
21
21
  []
22
- ), L = f((t) => t.extension === "ready" ? {
22
+ ), O = f((t) => t.extension === "ready" ? {
23
23
  status: "ready",
24
24
  version: "unknown",
25
25
  // TODO: have ExtensionState also get extension version
@@ -30,7 +30,7 @@ function ie({
30
30
  } : {
31
31
  status: "unreachable",
32
32
  error: { message: "Client not initialized", code: "ext-connection-failed" }
33
- }, []), A = f((t) => {
33
+ }, []), I = f((t) => {
34
34
  if (t.server.status === "pending-extension-ready")
35
35
  return {
36
36
  status: "pending-extension-ready",
@@ -58,15 +58,6 @@ function ie({
58
58
  code: "server-in-admin-status"
59
59
  }
60
60
  };
61
- case "tenant_selection":
62
- return {
63
- status: "tenant_selection",
64
- version: r.version || "unknown",
65
- error: {
66
- message: "Tenant selection required",
67
- code: "server-in-tenant-selection-status"
68
- }
69
- };
70
61
  case "error":
71
62
  return {
72
63
  status: "error",
@@ -103,8 +94,6 @@ function ie({
103
94
  return { status: "setup", version: r.version || "unknown" };
104
95
  case "resource_admin":
105
96
  return { status: "resource_admin", version: r.version || "unknown" };
106
- case "tenant_selection":
107
- return { status: "tenant_selection", version: r.version || "unknown" };
108
97
  case "error":
109
98
  case "not-reachable":
110
99
  return {
@@ -117,16 +106,16 @@ function ie({
117
106
  error: { message: "Unknown server status" }
118
107
  };
119
108
  }
120
- }, []), I = f(
109
+ }, []), _ = f(
121
110
  (t, r) => {
122
111
  if (t.server.status !== "pending-extension-ready") {
123
112
  const s = t.server.status;
124
- if (s === "ready" || s === "setup" || s === "resource_admin" || s === "tenant_selection")
113
+ if (s === "ready" || s === "setup" || s === "resource_admin")
125
114
  return !0;
126
115
  }
127
116
  if (r.server.status !== "not-connected") {
128
117
  const s = r.server.status;
129
- if (s === "ready" || s === "setup" || s === "resource_admin" || s === "tenant_selection")
118
+ if (s === "ready" || s === "setup" || s === "resource_admin")
130
119
  return !0;
131
120
  }
132
121
  return !1;
@@ -138,7 +127,7 @@ function ie({
138
127
  return { status: "skipped", serverUrl: s };
139
128
  if (t.server.status !== "not-connected") {
140
129
  const u = t.server;
141
- return u.status === "ready" || u.status === "setup" || u.status === "resource_admin" || u.status === "tenant_selection" ? { status: "granted", serverUrl: s } : {
130
+ return u.status === "ready" || u.status === "setup" || u.status === "resource_admin" ? { status: "granted", serverUrl: s } : {
142
131
  status: "unreachable",
143
132
  serverUrl: s,
144
133
  error: {
@@ -150,58 +139,58 @@ function ie({
150
139
  return r === "granted" ? { status: "granted", serverUrl: s } : { status: "prompt", serverUrl: s };
151
140
  },
152
141
  []
153
- ), v = f(
142
+ ), C = f(
154
143
  async (t = !1) => {
155
144
  const r = K().type, s = X().type;
156
145
  let u = await e.getExtensionState();
157
146
  (u.extension === "not-initialized" || t) && (u = await e.testExtensionConnectivity());
158
- let l = await e.getDirectState();
159
- const T = d.getDirectStatus();
160
- T === "granted" && (l.server.status === "not-connected" || t) && (l = await e.testDirectConnectivity());
161
- const c = Y(l) || "http://localhost:1135", C = y(l, T, c);
162
- return e.getConnectionMode() === null && (Z(l) ? await e.setConnectionMode("direct") : $(u) && await e.setConnectionMode("extension")), d.isServerInstallConfirmed() || I(u, l) && d.setServerInstallConfirmed(!0), {
163
- extension: L(u),
164
- server: A(u),
165
- lna: C,
166
- lnaServer: E(l),
147
+ let d = await e.getDirectState();
148
+ const T = l.getDirectStatus();
149
+ T === "granted" && (d.server.status === "not-connected" || t) && (d = await e.testDirectConnectivity());
150
+ const c = Y(d) || "http://localhost:1135", v = y(d, T, c);
151
+ return e.getConnectionMode() === null && (Z(d) ? await e.setConnectionMode("direct") : $(u) && await e.setConnectionMode("extension")), l.isServerInstallConfirmed() || _(u, d) && l.setServerInstallConfirmed(!0), {
152
+ extension: O(u),
153
+ server: I(u),
154
+ lna: v,
155
+ lnaServer: E(d),
167
156
  env: { browser: r, os: s },
168
157
  browsers: Q,
169
158
  os: J,
170
- userConfirmations: { serverInstall: d.isServerInstallConfirmed() },
159
+ userConfirmations: { serverInstall: l.isServerInstallConfirmed() },
171
160
  selectedConnection: m(e.getConnectionMode())
172
161
  };
173
162
  },
174
163
  [
175
164
  e,
176
- d,
177
- L,
178
- A,
165
+ l,
166
+ O,
167
+ I,
179
168
  E,
180
169
  m,
181
170
  y,
182
- I
171
+ _
183
172
  ]
184
173
  ), p = f(() => {
185
- if (!h.current)
174
+ if (!S.current)
186
175
  throw new Error("Cannot get state: currentStateRef is null");
187
176
  return {
188
- ...h.current,
177
+ ...S.current,
189
178
  // Override userConfirmations from storage (in case updated outside buildSetupState)
190
179
  userConfirmations: {
191
- serverInstall: d.isServerInstallConfirmed()
180
+ serverInstall: l.isServerInstallConfirmed()
192
181
  },
193
182
  // Override selectedConnection from client (in case changed via handler)
194
183
  selectedConnection: m(e.getConnectionMode())
195
184
  };
196
- }, [d, e, m]), R = k(
185
+ }, [l, e, m]), R = z(
197
186
  () => ({
198
- [w.MODAL_READY]: async () => (b.info("MODAL_READY: returning current state or default"), h.current ? { setupState: p() } : { setupState: oe }),
187
+ [w.MODAL_READY]: async () => (M.info("MODAL_READY: returning current state or default"), S.current ? { setupState: p() } : { setupState: oe }),
199
188
  [w.MODAL_REFRESH]: async () => {
200
- b.info("MODAL_REFRESH: refreshing state");
201
- const t = await v(!0);
202
- h.current = t;
189
+ M.info("MODAL_REFRESH: refreshing state");
190
+ const t = await C(!0);
191
+ S.current = t;
203
192
  const r = p();
204
- return b.info(`MODAL_REFRESH: state refreshed
193
+ return M.info(`MODAL_REFRESH: state refreshed
205
194
  `, JSON.stringify(r, null, 2)), o.current?.updateState(p()), { setupState: r };
206
195
  },
207
196
  [w.MODAL_LNA_CONNECT]: async (t) => {
@@ -209,20 +198,20 @@ function ie({
209
198
  console.log("[SetupModalProcessor] LNA connect:", r);
210
199
  const s = await e.testDirectConnectivity(r);
211
200
  if (s.server.status !== "not-connected") {
212
- const l = s.server.status;
213
- if (l === "ready" || l === "setup" || l === "resource_admin" || l === "tenant_selection") {
214
- d.setDirectStatus("granted"), e.getConnectionMode() === null && await e.setConnectionMode("direct");
215
- const T = await v();
216
- return h.current = T, o.current?.updateState(p()), { success: !0 };
201
+ const d = s.server.status;
202
+ if (d === "ready" || d === "setup" || d === "resource_admin") {
203
+ l.setDirectStatus("granted"), e.getConnectionMode() === null && await e.setConnectionMode("direct");
204
+ const T = await C();
205
+ return S.current = T, o.current?.updateState(p()), { success: !0 };
217
206
  }
218
207
  }
219
- const u = await v();
220
- return h.current = u, o.current?.updateState(p()), { success: !1 };
208
+ const u = await C();
209
+ return S.current = u, o.current?.updateState(p()), { success: !1 };
221
210
  },
222
211
  [w.MODAL_LNA_SKIP]: async () => {
223
- d.setDirectStatus("skipped");
224
- const t = await v();
225
- return h.current = t, o.current?.updateState(p()), { success: !0 };
212
+ l.setDirectStatus("skipped");
213
+ const t = await C();
214
+ return S.current = t, o.current?.updateState(p()), { success: !0 };
226
215
  },
227
216
  [w.MODAL_CLOSE]: () => {
228
217
  x();
@@ -230,37 +219,37 @@ function ie({
230
219
  [w.MODAL_COMPLETE]: () => {
231
220
  x();
232
221
  },
233
- [w.MODAL_CONFIRM_SERVER_INSTALL]: (t) => (d.setServerInstallConfirmed(t.payload.confirmed), o.current?.updateState(p()), { success: !0 }),
222
+ [w.MODAL_CONFIRM_SERVER_INSTALL]: (t) => (l.setServerInstallConfirmed(t.payload.confirmed), o.current?.updateState(p()), { success: !0 }),
234
223
  [w.MODAL_SELECT_CONNECTION]: async (t) => {
235
224
  const s = t.payload.connection === "lna" ? "direct" : "extension";
236
225
  return await e.setConnectionMode(s), o.current?.updateState(p()), { success: !0 };
237
226
  }
238
227
  }),
239
- [b, e, d, v, p, E, x]
228
+ [M, e, l, C, p, E, x]
240
229
  );
241
230
  return N(() => (o.current = new ee({ modalHtmlPath: a, handlers: R }), () => {
242
231
  o.current?.destroy(), o.current = null;
243
232
  }), [a, R]), N(() => {
244
- O && o.current ? (o.current.showLoading(), v(!0).then((t) => {
245
- h.current = t, o.current?.updateState(t), _?.();
233
+ L && o.current ? (o.current.showLoading(), C(!0).then((t) => {
234
+ S.current = t, o.current?.updateState(t), b?.();
246
235
  }).catch((t) => {
247
236
  console.error("[SetupModalProcessor] buildSetupState failed:", t);
248
- })) : !O && o.current && o.current.destroy();
249
- }, [O, v, _]), null;
237
+ })) : !L && o.current && o.current.destroy();
238
+ }, [L, C, b]), null;
250
239
  }
251
240
  const ue = {
252
241
  status: "not-initialized",
253
242
  mode: null,
254
243
  extensionId: null,
255
244
  url: null,
256
- server: G,
245
+ server: H,
257
246
  error: null
258
247
  }, le = {
259
248
  status: "initializing",
260
249
  mode: null,
261
250
  extensionId: null,
262
251
  url: null,
263
- server: G,
252
+ server: H,
264
253
  error: null
265
254
  };
266
255
  function de(e) {
@@ -272,11 +261,11 @@ function fe(e) {
272
261
  function pe(e) {
273
262
  return e.status !== "not-initialized" && e.status !== "initializing";
274
263
  }
275
- function H(e) {
264
+ function q(e) {
276
265
  return e.status === "ready";
277
266
  }
278
267
  function ge(e) {
279
- return H(e) && e.server.status === "ready";
268
+ return q(e) && e.server.status === "ready";
280
269
  }
281
270
  function me(e) {
282
271
  return te(e) ? {
@@ -299,7 +288,7 @@ const we = {
299
288
  isNotInitialized: de,
300
289
  isInitializing: fe,
301
290
  isInitialized: pe,
302
- isReady: H,
291
+ isReady: q,
303
292
  isOverallReady: ge
304
293
  }, U = ae(null);
305
294
  U.displayName = "BodhiContext";
@@ -307,17 +296,17 @@ function xe({
307
296
  children: e,
308
297
  client: a,
309
298
  modalHtmlPath: x,
310
- handleCallback: _ = !0,
311
- callbackPath: M,
312
- basePath: S = "/",
299
+ handleCallback: b = !0,
300
+ callbackPath: A,
301
+ basePath: h = "/",
313
302
  logLevel: g = "warn"
314
303
  }) {
315
- const O = S === "/" ? "" : S.replace(/\/$/, ""), b = M ?? `${O}/callback`, o = k(() => new q("BodhiProvider", g), [g]), d = D(!1), h = D(!1), [m, L] = z(ue), [A, E] = z(re), [I, y] = z(!1), [v, p] = z("ready");
304
+ const L = h === "/" ? "" : h.replace(/\/$/, ""), M = A ?? `${L}/callback`, o = z(() => new G("BodhiProvider", g), [g]), l = D(!1), S = D(!1), [m, O] = k(ue), [I, E] = k(re), [_, y] = k(!1), [C, p] = k("ready");
316
305
  N(() => {
317
306
  const n = (c) => {
318
307
  switch (c.type) {
319
308
  case "client-state":
320
- L(me(c.state));
309
+ O(me(c.state));
321
310
  break;
322
311
  case "auth-state":
323
312
  E(c.state), y(!1);
@@ -336,7 +325,7 @@ function xe({
336
325
  p("loaded");
337
326
  }, []), s = f(
338
327
  async (n) => {
339
- L(le);
328
+ O(le);
340
329
  try {
341
330
  await a.init(n || {});
342
331
  } catch (c) {
@@ -346,14 +335,14 @@ function xe({
346
335
  [a, o]
347
336
  );
348
337
  N(() => {
349
- if (h.current) return;
350
- h.current = !0, (async () => {
351
- if (await s(), !_) return;
338
+ if (S.current) return;
339
+ S.current = !0, (async () => {
340
+ if (await s(), !b) return;
352
341
  const c = new URL(window.location.href);
353
- if (c.pathname !== b) return;
354
- const C = c.searchParams.get("code"), F = c.searchParams.get("state");
355
- !C || !F || d.current || (d.current = !0, se(a) && (y(!0), a.handleOAuthCallback(C, F).then(() => {
356
- window.history.replaceState({}, "", S);
342
+ if (c.pathname !== M) return;
343
+ const v = c.searchParams.get("code"), F = c.searchParams.get("state");
344
+ !v || !F || l.current || (l.current = !0, se(a) && (y(!0), a.handleOAuthCallback(v, F).then(() => {
345
+ window.history.replaceState({}, "", h);
357
346
  }).catch((B) => {
358
347
  o.error("OAuth callback failed:", B), E({
359
348
  status: "error",
@@ -363,10 +352,10 @@ function xe({
363
352
  message: B instanceof Error ? B.message : "OAuth callback failed",
364
353
  code: "OAUTH_CALLBACK_FAILED"
365
354
  }
366
- }), y(!1), window.history.replaceState({}, "", S);
355
+ }), y(!1), window.history.replaceState({}, "", h);
367
356
  })));
368
357
  })();
369
- }, [s, a, _, b, S]);
358
+ }, [s, a, b, M, h]);
370
359
  const u = f(
371
360
  async (n) => {
372
361
  y(!0);
@@ -379,10 +368,10 @@ function xe({
379
368
  ...n.onProgress && { onProgress: n.onProgress },
380
369
  ...n.pollIntervalMs && { pollIntervalMs: n.pollIntervalMs },
381
370
  ...n.pollTimeoutMs && { pollTimeoutMs: n.pollTimeoutMs }
382
- } : void 0, C = c && Object.keys(c).length > 0 ? c : void 0;
383
- await a.login(C);
371
+ } : void 0, v = c && Object.keys(c).length > 0 ? c : void 0;
372
+ await a.login(v);
384
373
  } catch (c) {
385
- const C = {
374
+ const v = {
386
375
  status: "error",
387
376
  user: null,
388
377
  accessToken: null,
@@ -391,11 +380,11 @@ function xe({
391
380
  code: "LOGIN_FAILED"
392
381
  }
393
382
  };
394
- return E(C), y(!1), C;
383
+ return E(v), y(!1), v;
395
384
  }
396
385
  },
397
386
  [a]
398
- ), l = f(async () => {
387
+ ), d = f(async () => {
399
388
  try {
400
389
  await a.logout();
401
390
  } catch (n) {
@@ -409,21 +398,21 @@ function xe({
409
398
  }
410
399
  });
411
400
  }
412
- }, [a]), T = k(() => {
401
+ }, [a]), T = z(() => {
413
402
  const n = m.status === "ready", c = m.server.status === "ready";
414
403
  return {
415
404
  client: a,
416
405
  clientState: m,
417
- auth: A,
418
- isAuthLoading: I,
406
+ auth: I,
407
+ isAuthLoading: _,
419
408
  login: u,
420
- logout: l,
409
+ logout: d,
421
410
  showSetup: R,
422
411
  hideSetup: t,
423
- setupState: v,
412
+ setupState: C,
424
413
  // Computed auth properties
425
- isAuthenticated: A.status === "authenticated",
426
- canLogin: n && !I,
414
+ isAuthenticated: I.status === "authenticated",
415
+ canLogin: n && !_,
427
416
  // Computed connection properties
428
417
  isReady: n,
429
418
  isServerReady: c,
@@ -432,7 +421,7 @@ function xe({
432
421
  isExtension: m.mode === "extension",
433
422
  isDirect: m.mode === "direct"
434
423
  };
435
- }, [a, m, A, I, v, u, l, R, t]);
424
+ }, [a, m, I, _, C, u, d, R, t]);
436
425
  return /* @__PURE__ */ V(U.Provider, { value: T, children: [
437
426
  /* @__PURE__ */ P(
438
427
  ie,
@@ -441,31 +430,31 @@ function xe({
441
430
  modalHtmlPath: x,
442
431
  hideSetup: t,
443
432
  onSetupReady: r,
444
- setupState: v,
445
- basePath: S,
433
+ setupState: C,
434
+ basePath: h,
446
435
  logLevel: g
447
436
  }
448
437
  ),
449
438
  e
450
439
  ] });
451
440
  }
452
- function _e() {
441
+ function be() {
453
442
  const e = ce(U);
454
443
  if (!e) throw new Error("useBodhi must be used within BodhiProvider");
455
444
  return e;
456
445
  }
457
- const Se = (e) => /* @__PURE__ */ i.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 479.995 479.995", width: "480px", height: "480px", ...e }, /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M239.998,374.56l-0.01-0.01c0-0.01,0.01-0.01,0.01-0.02c-4.64-8.78-65.7-144.8-212.22-85.2 c-14.36,5.85-19.78,23.45-11.19,36.36c11.11,16.69,22.86,30.01,34.91,40.53c-27.85,7.89-45.6,33.8-43.3,61.55 c0.96,11.6,13.29,18.52,23.71,13.35c33.99-16.84,60.03-2.51,80.35,2.14c56.68,12.99,113.71,4.53,125.52-46.29 c0.52-2.22,0.95-4.51,1.28-6.89c0.01-0.04,0.01-0.08,0.02-0.12c0.066-0.492,0.126-0.978,0.181-1.458 c0.455-3.631,0.712-7.438,0.739-11.452c-0.02-1.44-0.02-2.01,0-2.25v-0.09c0-0.02,0-0.04,0.01-0.05c0-0.02,0.01-0.03,0.02-0.06 c0-0.01,0.01-0.01,0.01-0.02C240.018,374.569,240.008,374.56,239.998,374.56z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M471.798,427.769c-0.96,11.6-13.29,18.52-23.71,13.35c-33.99-16.84-60.03-2.51-80.35,2.14 c-63.41,14.53-127.25,2.22-127.74-66.21c0.033-2.642-0.044-2.302,0.04-2.47c-0.02-0.01-0.03-0.02-0.04-0.02l0.01-0.01 c0-0.01-0.01-0.01-0.01-0.02c4.64-8.78,65.7-144.8,212.22-85.2c14.36,5.85,19.78,23.45,11.19,36.36 c-11.11,16.69-22.86,30.01-34.91,40.53C456.348,374.109,474.098,400.019,471.798,427.769z" }), /* @__PURE__ */ i.createElement("path", { fill: "#befa91", d: "M428.498,366.219c27.85,7.89,45.6,33.8,43.3,61.55c-0.96,11.6-13.29,18.52-23.71,13.35 c-33.99-16.84-60.03-2.51-80.35,2.14c-63.41,14.53-127.928,2.222-127.74-66.21c0.007-2.683-0.02-2.351,0.04-2.47 C248.598,379.129,345.858,438.329,428.498,366.219z" }), /* @__PURE__ */ i.createElement("path", { fill: "#befa91", d: "M51.498,366.219c82.76,72.22,180.18,12.74,188.5,8.34c0.01,0,0.02,0.01,0.04,0.02 c-0.058,0.116-0.047-0.169-0.04,2.47c0.188,68.432-64.33,80.74-127.74,66.21c-20.32-4.65-46.36-18.98-80.35-2.14 c-10.42,5.17-22.75-1.75-23.71-13.35C5.898,400.019,23.648,374.109,51.498,366.219z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffbfcb", d: "M235.228,365.299c-32.29-36.09-89.98-73-179.74-36.49c-1.979,0.805-3.787,1.834-5.413,3.042 c-10.569,7.856-25.473,5.765-32.82-5.164c-0.223-0.331-0.445-0.664-0.667-0.997c-8.59-12.91-3.17-30.51,11.19-36.36 C155.168,237.509,217.948,333.56,235.228,365.299z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M239.998,374.549c-12.85-2.2-214.54-23.33-193.03-240.71c1.49-14.99,15.86-25.15,30.48-21.55 c108.49,26.72,149.07,91.39,162.55,149.92C252.768,317.699,241.178,367.679,239.998,374.549z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffbfcb", d: "M193.698,174.638c11.866,12.406-3.013,31.792-18.056,23.52 c-21.875-12.028-50.044-10.573-70.207,3.701c-24.832,17.579-59.398-0.365-60.013-30.784c-0.237-11.724,0.248-24.123,1.545-37.237 c1.49-14.99,15.86-25.15,30.48-21.55C131.23,125.537,168.324,148.11,193.698,174.638z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M221.538,39.599c9.78-11.13,27.15-11.12,36.93,0.01c157.02,178.77-7.48,323.95-18.47,334.94 C229.988,364.549,63.948,218.989,221.538,39.599z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffbfcb", d: "M261.523,43.131c9.452,11.033,8.166,27.623-2.74,37.221c-0.784,0.69-1.535,1.439-2.245,2.247 c-35.942,40.915-55.05,80.07-63.012,116.258c-5.176,23.523-39.936,19.717-39.551-4.366c0.741-46.282,18.411-98.941,67.563-154.892 c9.78-11.13,27.15-11.12,36.93,0.01C259.5,40.785,260.518,41.959,261.523,43.131z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M239.998,374.549c-1.18-6.87-12.77-56.85,0-112.34c13.48-58.53,54.06-123.2,162.55-149.92 c14.62-3.6,28.99,6.56,30.48,21.55C454.538,351.219,252.848,372.349,239.998,374.549z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ff8ca5", d: "M239.998,374.549c-3.115-0.536-17.362-2.183-36.835-7.483c-3.181-0.866-6.028-2.682-8.145-5.209 c-49.098-58.608-75.675-130.75-61.047-205.793c2.165-11.107,14.881-16.444,24.408-10.337c0.756,0.485,1.506,0.972,2.249,1.462 C126.798,274.139,232.088,366.649,239.998,374.549z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ff8ca5", d: "M281.608,365.729c-21.9,6.37-38.24,8.25-41.61,8.82c8.67-8.67,112.98-100.94,79.35-227.34v-0.01 c0.742-0.489,1.49-0.975,2.244-1.459c9.551-6.123,22.265-0.733,24.422,10.406C369.565,277.734,281.608,363.204,281.608,365.729z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ff8ca5", d: "M417.451,302.932c-32.211,44.193-80.706,72.823-134.571,87.345c-3.396,0.916-6.999,0.754-10.3-0.463 c-20.772-7.664-31.911-15.254-32.583-15.254c0.826-0.825,112.667-9.463,166.4-98.31C419.37,278.279,424.743,292.927,417.451,302.932 z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ff8ca5", d: "M62.565,302.932c32.211,44.193,80.705,72.823,134.571,87.345c3.396,0.916,6.999,0.754,10.3-0.463 c20.772-7.664,31.911-15.254,32.583-15.254c-0.828-0.828-112.665-9.458-166.4-98.31C60.646,278.279,55.273,292.927,62.565,302.932z" }), /* @__PURE__ */ i.createElement("path", { fill: "#9ceb63", d: "M433.464,393.091c-52.749,39.415-118.979,42.09-182.861,13.657 c-4.441-1.977-7.606-6.011-8.633-10.763c-1.552-7.18-1.884-14.238-1.973-21.326c0.172-0.345,9.566,5.934,26.76,12.89 c36.31,14.71,102.75,30.15,161.74-21.33C440.977,369.752,443.403,385.664,433.464,393.091z" }), /* @__PURE__ */ i.createElement("path", { fill: "#9ceb63", d: "M240.038,374.579c0,0.01-0.01,0.01-0.01,0.02s-0.01,0.03-0.01,0.05c0,0,0,0,0,0.01 c-0.01,0.03-0.01,0.06-0.02,0.1v0.04c-0.13,1.3,0.09,7.59-0.92,15.16c-0.01,0.04-0.01,0.08-0.02,0.12 c-0.26,1.91-0.59,3.91-1.03,5.92c-0.07,0.33-0.15,0.65-0.25,0.97c-1.23,4.33-4.28,7.95-8.41,9.79 c-63.06,28.05-129.47,26.21-182.79-13.63c-9.94-7.43-7.63-23.36,4.92-26.91c13.1,11.46,28.11,20.79,44.16,26.79 c19.78,7.48,34.99,8.98,53.83,8.68c34.33-0.55,60.1-11.03,90.51-27.13C240.008,374.56,240.018,374.569,240.038,374.579z" }), /* @__PURE__ */ i.createElement("path", { d: "M443.143,363.426c9.579-9.648,18.604-20.804,26.926-33.305c11.399-17.132,4.201-40.447-14.837-48.202 c-12.321-5.012-24.515-8.844-36.391-11.454c17.945-34.197,27.974-78.94,22.188-137.413c-1.925-19.503-20.802-33.354-40.394-28.53 c-17.952,4.421-34.806,10.063-50.093,16.768c-4.046,1.775-5.888,6.494-4.113,10.54c1.774,4.046,6.493,5.887,10.54,4.113 c14.45-6.338,30.429-11.682,47.492-15.885c9.885-2.435,19.599,4.434,20.607,14.573c9.088,90.121-21.147,164.341-99.823,205.213 c-3.921,2.037-5.448,6.866-3.411,10.787c2.043,3.933,6.879,5.442,10.787,3.411c27.191-14.125,56.267-35.849,77.701-68.994 c12.564,2.375,25.617,6.296,38.878,11.69c9.68,3.943,13.334,15.824,7.549,24.518c-10.205,15.33-21.482,28.43-33.516,38.936 c-49.396,43.107-111.979,41.39-169.834,12.419c56.638-56.971,92.247-132.34,77.074-212.524 c-8.101-42.81-30.305-85.119-65.997-125.754c-12.964-14.759-36.003-14.748-48.946-0.016 c-28.645,32.607-48.657,66.371-59.602,100.512c-21.999-13.018-47.7-23.197-76.569-30.307c-19.338-4.763-38.383,8.699-40.354,28.53 C26.197,262.501,90.89,324.677,147.416,354.042c3.92,2.036,8.75,0.51,10.787-3.411c2.037-3.921,0.51-8.75-3.411-10.787 c-52.141-27.086-111.791-84.677-99.863-205.213c1.007-10.132,10.713-17.01,20.606-14.574c31.115,7.663,58.223,19.013,80.571,33.735 c4.863,3.204,10.891,0.586,12.257-4.539c9.392-35.245,29.306-70.362,59.188-104.378c6.581-7.492,18.316-7.487,24.904,0.014 c128.735,146.565,37.449,269.122-12.476,318.519c-30.274-29.828-76.759-87.727-78.002-162.831 c-0.073-4.417-3.698-7.933-8.131-7.867c-4.417,0.073-7.939,3.714-7.867,8.131c1.382,83.483,54.096,146.516,85.999,177.099 c-0.353,20.737-7.099,36.575-20.104,47.086c-20.129,16.267-55.786,20.072-97.831,10.438c-19.181-4.396-48.632-19.874-85.688-1.511 c-5.361,2.657-11.689-0.859-12.186-6.844c-1.888-22.74,12.042-43.926,33.548-51.893c13.4,11.096,27.797,19.551,43.11,25.275 c20.238,7.653,36.036,9.525,56.788,9.196c15.85-0.254,30.814-2.572,45.747-7.085c4.229-1.278,6.622-5.743,5.343-9.972 c-1.278-4.229-5.744-6.622-9.972-5.344c-13.494,4.078-27.027,6.173-41.373,6.403c-17.347,0.275-31.911-0.993-50.901-8.174 c-31.69-11.847-56.387-35.98-75.211-64.258c-5.791-8.704-2.122-20.58,7.548-24.52c4.092-1.667,6.058-6.335,4.391-10.427 c-1.667-4.092-6.334-6.058-10.427-4.391c-19.062,7.765-26.214,31.095-14.832,48.202c8.365,12.566,17.352,23.674,26.917,33.31 C12.89,375.664-2.037,401.187,0.226,428.434c1.427,17.192,19.743,27.533,35.235,19.857c30.84-15.283,54.311-1.971,75.01,2.771 c36.708,8.411,82.166,10.086,111.461-13.59c14.777-11.943,23.305-28.715,25.489-49.937 c61.607,30.736,128.694,32.482,182.835-12.326c21.516,7.959,35.456,29.153,33.567,51.902c-0.493,5.939-6.786,9.519-12.186,6.844 c-30.339-15.034-55.535-7.379-73.932-1.791c-31.306,9.51-74.736,14.144-102.884-2.498c-3.803-2.248-8.709-0.989-10.958,2.815 c-2.249,3.803-0.989,8.709,2.815,10.958c29.214,17.272,69.817,15.19,102.844,7.622c20.72-4.747,44.177-18.05,75.01-2.771 c15.523,7.691,33.811-2.693,35.235-19.856C482.032,401.183,467.102,375.655,443.143,363.426z" })), he = {
446
+ const he = (e) => /* @__PURE__ */ i.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 479.995 479.995", width: "480px", height: "480px", ...e }, /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M239.998,374.56l-0.01-0.01c0-0.01,0.01-0.01,0.01-0.02c-4.64-8.78-65.7-144.8-212.22-85.2 c-14.36,5.85-19.78,23.45-11.19,36.36c11.11,16.69,22.86,30.01,34.91,40.53c-27.85,7.89-45.6,33.8-43.3,61.55 c0.96,11.6,13.29,18.52,23.71,13.35c33.99-16.84,60.03-2.51,80.35,2.14c56.68,12.99,113.71,4.53,125.52-46.29 c0.52-2.22,0.95-4.51,1.28-6.89c0.01-0.04,0.01-0.08,0.02-0.12c0.066-0.492,0.126-0.978,0.181-1.458 c0.455-3.631,0.712-7.438,0.739-11.452c-0.02-1.44-0.02-2.01,0-2.25v-0.09c0-0.02,0-0.04,0.01-0.05c0-0.02,0.01-0.03,0.02-0.06 c0-0.01,0.01-0.01,0.01-0.02C240.018,374.569,240.008,374.56,239.998,374.56z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M471.798,427.769c-0.96,11.6-13.29,18.52-23.71,13.35c-33.99-16.84-60.03-2.51-80.35,2.14 c-63.41,14.53-127.25,2.22-127.74-66.21c0.033-2.642-0.044-2.302,0.04-2.47c-0.02-0.01-0.03-0.02-0.04-0.02l0.01-0.01 c0-0.01-0.01-0.01-0.01-0.02c4.64-8.78,65.7-144.8,212.22-85.2c14.36,5.85,19.78,23.45,11.19,36.36 c-11.11,16.69-22.86,30.01-34.91,40.53C456.348,374.109,474.098,400.019,471.798,427.769z" }), /* @__PURE__ */ i.createElement("path", { fill: "#befa91", d: "M428.498,366.219c27.85,7.89,45.6,33.8,43.3,61.55c-0.96,11.6-13.29,18.52-23.71,13.35 c-33.99-16.84-60.03-2.51-80.35,2.14c-63.41,14.53-127.928,2.222-127.74-66.21c0.007-2.683-0.02-2.351,0.04-2.47 C248.598,379.129,345.858,438.329,428.498,366.219z" }), /* @__PURE__ */ i.createElement("path", { fill: "#befa91", d: "M51.498,366.219c82.76,72.22,180.18,12.74,188.5,8.34c0.01,0,0.02,0.01,0.04,0.02 c-0.058,0.116-0.047-0.169-0.04,2.47c0.188,68.432-64.33,80.74-127.74,66.21c-20.32-4.65-46.36-18.98-80.35-2.14 c-10.42,5.17-22.75-1.75-23.71-13.35C5.898,400.019,23.648,374.109,51.498,366.219z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffbfcb", d: "M235.228,365.299c-32.29-36.09-89.98-73-179.74-36.49c-1.979,0.805-3.787,1.834-5.413,3.042 c-10.569,7.856-25.473,5.765-32.82-5.164c-0.223-0.331-0.445-0.664-0.667-0.997c-8.59-12.91-3.17-30.51,11.19-36.36 C155.168,237.509,217.948,333.56,235.228,365.299z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M239.998,374.549c-12.85-2.2-214.54-23.33-193.03-240.71c1.49-14.99,15.86-25.15,30.48-21.55 c108.49,26.72,149.07,91.39,162.55,149.92C252.768,317.699,241.178,367.679,239.998,374.549z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffbfcb", d: "M193.698,174.638c11.866,12.406-3.013,31.792-18.056,23.52 c-21.875-12.028-50.044-10.573-70.207,3.701c-24.832,17.579-59.398-0.365-60.013-30.784c-0.237-11.724,0.248-24.123,1.545-37.237 c1.49-14.99,15.86-25.15,30.48-21.55C131.23,125.537,168.324,148.11,193.698,174.638z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M221.538,39.599c9.78-11.13,27.15-11.12,36.93,0.01c157.02,178.77-7.48,323.95-18.47,334.94 C229.988,364.549,63.948,218.989,221.538,39.599z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffbfcb", d: "M261.523,43.131c9.452,11.033,8.166,27.623-2.74,37.221c-0.784,0.69-1.535,1.439-2.245,2.247 c-35.942,40.915-55.05,80.07-63.012,116.258c-5.176,23.523-39.936,19.717-39.551-4.366c0.741-46.282,18.411-98.941,67.563-154.892 c9.78-11.13,27.15-11.12,36.93,0.01C259.5,40.785,260.518,41.959,261.523,43.131z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ffa4b8", d: "M239.998,374.549c-1.18-6.87-12.77-56.85,0-112.34c13.48-58.53,54.06-123.2,162.55-149.92 c14.62-3.6,28.99,6.56,30.48,21.55C454.538,351.219,252.848,372.349,239.998,374.549z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ff8ca5", d: "M239.998,374.549c-3.115-0.536-17.362-2.183-36.835-7.483c-3.181-0.866-6.028-2.682-8.145-5.209 c-49.098-58.608-75.675-130.75-61.047-205.793c2.165-11.107,14.881-16.444,24.408-10.337c0.756,0.485,1.506,0.972,2.249,1.462 C126.798,274.139,232.088,366.649,239.998,374.549z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ff8ca5", d: "M281.608,365.729c-21.9,6.37-38.24,8.25-41.61,8.82c8.67-8.67,112.98-100.94,79.35-227.34v-0.01 c0.742-0.489,1.49-0.975,2.244-1.459c9.551-6.123,22.265-0.733,24.422,10.406C369.565,277.734,281.608,363.204,281.608,365.729z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ff8ca5", d: "M417.451,302.932c-32.211,44.193-80.706,72.823-134.571,87.345c-3.396,0.916-6.999,0.754-10.3-0.463 c-20.772-7.664-31.911-15.254-32.583-15.254c0.826-0.825,112.667-9.463,166.4-98.31C419.37,278.279,424.743,292.927,417.451,302.932 z" }), /* @__PURE__ */ i.createElement("path", { fill: "#ff8ca5", d: "M62.565,302.932c32.211,44.193,80.705,72.823,134.571,87.345c3.396,0.916,6.999,0.754,10.3-0.463 c20.772-7.664,31.911-15.254,32.583-15.254c-0.828-0.828-112.665-9.458-166.4-98.31C60.646,278.279,55.273,292.927,62.565,302.932z" }), /* @__PURE__ */ i.createElement("path", { fill: "#9ceb63", d: "M433.464,393.091c-52.749,39.415-118.979,42.09-182.861,13.657 c-4.441-1.977-7.606-6.011-8.633-10.763c-1.552-7.18-1.884-14.238-1.973-21.326c0.172-0.345,9.566,5.934,26.76,12.89 c36.31,14.71,102.75,30.15,161.74-21.33C440.977,369.752,443.403,385.664,433.464,393.091z" }), /* @__PURE__ */ i.createElement("path", { fill: "#9ceb63", d: "M240.038,374.579c0,0.01-0.01,0.01-0.01,0.02s-0.01,0.03-0.01,0.05c0,0,0,0,0,0.01 c-0.01,0.03-0.01,0.06-0.02,0.1v0.04c-0.13,1.3,0.09,7.59-0.92,15.16c-0.01,0.04-0.01,0.08-0.02,0.12 c-0.26,1.91-0.59,3.91-1.03,5.92c-0.07,0.33-0.15,0.65-0.25,0.97c-1.23,4.33-4.28,7.95-8.41,9.79 c-63.06,28.05-129.47,26.21-182.79-13.63c-9.94-7.43-7.63-23.36,4.92-26.91c13.1,11.46,28.11,20.79,44.16,26.79 c19.78,7.48,34.99,8.98,53.83,8.68c34.33-0.55,60.1-11.03,90.51-27.13C240.008,374.56,240.018,374.569,240.038,374.579z" }), /* @__PURE__ */ i.createElement("path", { d: "M443.143,363.426c9.579-9.648,18.604-20.804,26.926-33.305c11.399-17.132,4.201-40.447-14.837-48.202 c-12.321-5.012-24.515-8.844-36.391-11.454c17.945-34.197,27.974-78.94,22.188-137.413c-1.925-19.503-20.802-33.354-40.394-28.53 c-17.952,4.421-34.806,10.063-50.093,16.768c-4.046,1.775-5.888,6.494-4.113,10.54c1.774,4.046,6.493,5.887,10.54,4.113 c14.45-6.338,30.429-11.682,47.492-15.885c9.885-2.435,19.599,4.434,20.607,14.573c9.088,90.121-21.147,164.341-99.823,205.213 c-3.921,2.037-5.448,6.866-3.411,10.787c2.043,3.933,6.879,5.442,10.787,3.411c27.191-14.125,56.267-35.849,77.701-68.994 c12.564,2.375,25.617,6.296,38.878,11.69c9.68,3.943,13.334,15.824,7.549,24.518c-10.205,15.33-21.482,28.43-33.516,38.936 c-49.396,43.107-111.979,41.39-169.834,12.419c56.638-56.971,92.247-132.34,77.074-212.524 c-8.101-42.81-30.305-85.119-65.997-125.754c-12.964-14.759-36.003-14.748-48.946-0.016 c-28.645,32.607-48.657,66.371-59.602,100.512c-21.999-13.018-47.7-23.197-76.569-30.307c-19.338-4.763-38.383,8.699-40.354,28.53 C26.197,262.501,90.89,324.677,147.416,354.042c3.92,2.036,8.75,0.51,10.787-3.411c2.037-3.921,0.51-8.75-3.411-10.787 c-52.141-27.086-111.791-84.677-99.863-205.213c1.007-10.132,10.713-17.01,20.606-14.574c31.115,7.663,58.223,19.013,80.571,33.735 c4.863,3.204,10.891,0.586,12.257-4.539c9.392-35.245,29.306-70.362,59.188-104.378c6.581-7.492,18.316-7.487,24.904,0.014 c128.735,146.565,37.449,269.122-12.476,318.519c-30.274-29.828-76.759-87.727-78.002-162.831 c-0.073-4.417-3.698-7.933-8.131-7.867c-4.417,0.073-7.939,3.714-7.867,8.131c1.382,83.483,54.096,146.516,85.999,177.099 c-0.353,20.737-7.099,36.575-20.104,47.086c-20.129,16.267-55.786,20.072-97.831,10.438c-19.181-4.396-48.632-19.874-85.688-1.511 c-5.361,2.657-11.689-0.859-12.186-6.844c-1.888-22.74,12.042-43.926,33.548-51.893c13.4,11.096,27.797,19.551,43.11,25.275 c20.238,7.653,36.036,9.525,56.788,9.196c15.85-0.254,30.814-2.572,45.747-7.085c4.229-1.278,6.622-5.743,5.343-9.972 c-1.278-4.229-5.744-6.622-9.972-5.344c-13.494,4.078-27.027,6.173-41.373,6.403c-17.347,0.275-31.911-0.993-50.901-8.174 c-31.69-11.847-56.387-35.98-75.211-64.258c-5.791-8.704-2.122-20.58,7.548-24.52c4.092-1.667,6.058-6.335,4.391-10.427 c-1.667-4.092-6.334-6.058-10.427-4.391c-19.062,7.765-26.214,31.095-14.832,48.202c8.365,12.566,17.352,23.674,26.917,33.31 C12.89,375.664-2.037,401.187,0.226,428.434c1.427,17.192,19.743,27.533,35.235,19.857c30.84-15.283,54.311-1.971,75.01,2.771 c36.708,8.411,82.166,10.086,111.461-13.59c14.777-11.943,23.305-28.715,25.489-49.937 c61.607,30.736,128.694,32.482,182.835-12.326c21.516,7.959,35.456,29.153,33.567,51.902c-0.493,5.939-6.786,9.519-12.186,6.844 c-30.339-15.034-55.535-7.379-73.932-1.791c-31.306,9.51-74.736,14.144-102.884-2.498c-3.803-2.248-8.709-0.989-10.958,2.815 c-2.249,3.803-0.989,8.709,2.815,10.958c29.214,17.272,69.817,15.19,102.844,7.622c20.72-4.747,44.177-18.05,75.01-2.771 c15.523,7.691,33.811-2.693,35.235-19.856C482.032,401.183,467.102,375.655,443.143,363.426z" })), Se = {
458
447
  sm: 32,
459
448
  md: 48,
460
449
  lg: 64
461
450
  };
462
- function be({
451
+ function Me({
463
452
  size: e = "md",
464
453
  variant: a = "light",
465
454
  className: x = "",
466
- style: _ = {}
455
+ style: b = {}
467
456
  }) {
468
- const M = he[e], S = {
457
+ const A = Se[e], h = {
469
458
  display: "inline-block",
470
459
  cursor: "pointer",
471
460
  transition: "all 250ms ease",
@@ -474,7 +463,7 @@ function be({
474
463
  backgroundColor: "rgba(255, 255, 255, 0.05)",
475
464
  padding: "8px"
476
465
  },
477
- ..._
466
+ ...b
478
467
  };
479
468
  return /* @__PURE__ */ P(
480
469
  "a",
@@ -485,44 +474,43 @@ function be({
485
474
  title: "Powered by Bodhi",
486
475
  "aria-label": "Powered by Bodhi - Visit getbodhi.app",
487
476
  className: x,
488
- style: S,
477
+ style: h,
489
478
  onMouseEnter: (g) => {
490
479
  g.currentTarget.style.transform = "scale(1.1)", g.currentTarget.style.boxShadow = "0 0 20px rgba(255, 164, 184, 0.6)";
491
480
  },
492
481
  onMouseLeave: (g) => {
493
482
  g.currentTarget.style.transform = "scale(1)", g.currentTarget.style.boxShadow = "none";
494
483
  },
495
- children: /* @__PURE__ */ P(Se, { width: M, height: M, style: { display: "block" } })
484
+ children: /* @__PURE__ */ P(he, { width: A, height: A, style: { display: "block" } })
496
485
  }
497
486
  );
498
487
  }
499
- const Me = "production";
488
+ const Ae = "production";
500
489
  export {
501
- be as BodhiBadge,
490
+ Te as BodhiApiError,
491
+ Me as BodhiBadge,
492
+ Le as BodhiError,
502
493
  xe as BodhiProvider,
503
494
  U as BodhiReactContext,
504
495
  we as ClientCtxState,
505
496
  le as INITIALIZING_CLIENT_CONTEXT_STATE,
506
497
  ue as INITIAL_CLIENT_CONTEXT_STATE,
507
- Me as REACT_CORE_BUILD_MODE,
498
+ Ae as REACT_CORE_BUILD_MODE,
508
499
  me as clientStateToContextState,
509
- Te as createApiError,
510
- Oe as createOperationError,
511
- Le as isApiResultError,
512
- Re as isApiResultOperationError,
513
- ke as isApiResultSuccess,
500
+ Oe as createApiError,
501
+ Re as createOperationError,
514
502
  ze as isAuthError,
515
- De as isAuthLoading,
516
- Ne as isAuthenticated,
503
+ ke as isAuthLoading,
504
+ De as isAuthenticated,
517
505
  pe as isClientCtxInitialized,
518
506
  fe as isClientCtxInitializing,
519
507
  de as isClientCtxNotInitialized,
520
- H as isClientCtxReady,
521
- Be as isClientReady,
522
- Pe as isDirectState,
523
- Ue as isExtensionState,
524
- Fe as isOperationError,
508
+ q as isClientCtxReady,
509
+ Ne as isClientReady,
510
+ Be as isDirectState,
511
+ Pe as isExtensionState,
525
512
  ge as isOverallReady,
526
- qe as isWebUIClient,
527
- _e as useBodhi
513
+ Ue as isWebUIClient,
514
+ Fe as unwrapResponse,
515
+ be as useBodhi
528
516
  };
package/dist/index.d.ts CHANGED
@@ -8,10 +8,11 @@ export { BodhiBadge, type BodhiBadgeProps, type BodhiBadgeSize, type BodhiBadgeV
8
8
  export type { ClientContextState, ClientContextStatus } from './client-ctx';
9
9
  export { INITIAL_CLIENT_CONTEXT_STATE, INITIALIZING_CLIENT_CONTEXT_STATE } from './client-ctx';
10
10
  export { ClientCtxState, clientStateToContextState, isClientCtxInitialized, isClientCtxInitializing, isClientCtxNotInitialized, isClientCtxReady, isOverallReady, } from './client-ctx';
11
- export type { ApiResponseResult, ClientState, LogLevel } from '@bodhiapp/bodhi-js-core';
12
- export { isApiResultError, isApiResultOperationError, isApiResultSuccess, isDirectState, isExtensionState, isWebUIClient, } from '@bodhiapp/bodhi-js-core';
13
- export { createApiError, createOperationError } from '@bodhiapp/bodhi-js-core';
11
+ export type { ClientState, LogLevel } from '@bodhiapp/bodhi-js-core';
12
+ export { isDirectState, isExtensionState, isWebUIClient } from '@bodhiapp/bodhi-js-core';
13
+ export { BodhiError, BodhiApiError, unwrapResponse, createApiError, createOperationError, } from '@bodhiapp/bodhi-js-core';
14
+ export type { BodhiErrorCode } from '@bodhiapp/bodhi-js-core';
14
15
  export type { AuthState, UIClient, LoginOptions, UserScope } from '@bodhiapp/bodhi-js-core';
15
16
  export { isAuthError, isAuthLoading, isAuthenticated, isClientReady, } from '@bodhiapp/bodhi-js-core';
16
- export { isOperationError, type OperationError } from '@bodhiapp/bodhi-js-core';
17
+ export type { ApiResponse } from '@bodhiapp/bodhi-browser-types';
17
18
  export { BUILD_MODE as REACT_CORE_BUILD_MODE } from './build-info';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bodhiapp/bodhi-js-react-core",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "description": "Core React bindings for Bodhi Browser SDK (dependency injection)",
5
5
  "type": "module",
6
6
  "main": "dist/bodhi-react-core.cjs.js",
@@ -42,10 +42,10 @@
42
42
  "typecheck": "tsc --noEmit"
43
43
  },
44
44
  "dependencies": {
45
- "@bodhiapp/bodhi-browser-types": "0.0.26",
46
- "@bodhiapp/setup-modal-types": "0.0.26",
47
- "@bodhiapp/bodhi-js-core": "0.0.26",
48
- "@bodhiapp/ts-client": "0.1.20"
45
+ "@bodhiapp/bodhi-browser-types": "0.0.28",
46
+ "@bodhiapp/setup-modal-types": "0.0.28",
47
+ "@bodhiapp/bodhi-js-core": "0.0.28",
48
+ "@bodhiapp/ts-client": "0.1.23"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "react": "^18.3.0 || ^19.0.0"