@undefineds.co/xpod 0.4.2 → 0.4.3-rc.159

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.
Files changed (113) hide show
  1. package/config/xpod.base.json +69 -1
  2. package/dist/components/components.jsonld +3 -0
  3. package/dist/components/context.jsonld +45 -0
  4. package/dist/identity/oidc/RememberedClientGrantStore.d.ts +18 -0
  5. package/dist/identity/oidc/RememberedClientGrantStore.js +38 -0
  6. package/dist/identity/oidc/RememberedClientGrantStore.jsonld +61 -0
  7. package/dist/identity/oidc/RememberedClientPromptFactory.d.ts +10 -0
  8. package/dist/identity/oidc/RememberedClientPromptFactory.js +45 -0
  9. package/dist/identity/oidc/RememberedClientPromptFactory.jsonld +54 -0
  10. package/dist/identity/oidc/RememberedConsentHandler.d.ts +11 -0
  11. package/dist/identity/oidc/RememberedConsentHandler.js +51 -0
  12. package/dist/identity/oidc/RememberedConsentHandler.jsonld +69 -0
  13. package/dist/identity/oidc/ScopedPickWebIdHandler.d.ts +4 -0
  14. package/dist/identity/oidc/ScopedPickWebIdHandler.js +25 -1
  15. package/dist/identity/oidc/ScopedPickWebIdHandler.jsonld +26 -0
  16. package/dist/index.d.ts +4 -1
  17. package/dist/index.js +8 -2
  18. package/package.json +2 -2
  19. package/static/app/assets/main.css +1 -1
  20. package/static/app/assets/main.js +8 -8
  21. package/static/app/xpod-desktop-client.json +14 -0
  22. package/static/auth-callback/assets/{AiConfigContext-CUjvHWwm.js → AiConfigContext-DrCH6ckh.js} +1 -1
  23. package/static/auth-callback/assets/{AiConfigPage-CTqNUQGp.js → AiConfigPage-DVrlSSdA.js} +1 -1
  24. package/static/auth-callback/assets/{DocumentProcessingPanel-CHSLcxxU.js → DocumentProcessingPanel-_Md-v2R2.js} +1 -1
  25. package/static/auth-callback/assets/{IndexLifecyclePanel-Cn11cEng.js → IndexLifecyclePanel-BbWwe23H.js} +1 -1
  26. package/static/auth-callback/assets/{IndexSubjectPanel-C9lLiF6_.js → IndexSubjectPanel-upH9MjU-.js} +1 -1
  27. package/static/auth-callback/assets/{ModelAssignmentsPanel-D0iiOmK7.js → ModelAssignmentsPanel-CVGH4t4g.js} +1 -1
  28. package/static/auth-callback/assets/{ModelsPage-sLumlx6c.js → ModelsPage-BpkVFKbf.js} +1 -1
  29. package/static/auth-callback/assets/{NetworkPage-Zst-vF-i.js → NetworkPage-Dcbrb1fd.js} +1 -1
  30. package/static/auth-callback/assets/{PaneListHeader-DCWzgI2Q.js → PaneListHeader-DrY-1wBq.js} +1 -1
  31. package/static/auth-callback/assets/{SearchIndexingPanel-BslPlvbX.js → SearchIndexingPanel-Dw25y53v.js} +1 -1
  32. package/static/auth-callback/assets/{StatusSubjectPanel-B180IJBq.js → StatusSubjectPanel-BHlz9rNF.js} +1 -1
  33. package/static/auth-callback/assets/{StatusWorkspace-PYnfVen5.js → StatusWorkspace-BH7exQP5.js} +1 -1
  34. package/static/auth-callback/assets/{SystemSettingsPage-i8Rp1f4E.js → SystemSettingsPage-BYLKnM9f.js} +1 -1
  35. package/static/auth-callback/assets/{SystemSettingsSubjectPanel-C19oU6DT.js → SystemSettingsSubjectPanel-DT34LKku.js} +1 -1
  36. package/static/auth-callback/assets/{activity-DBAcu9vM.js → activity-DdULRcSI.js} +1 -1
  37. package/static/auth-callback/assets/auth-callback-01yz-UDU.css +1 -0
  38. package/static/auth-callback/assets/{auth-callback-CGaAymMQ.js → auth-callback-D7l2P25I.js} +14 -14
  39. package/static/auth-callback/assets/{badge-Bam6VAk0.js → badge-j4zjFnmg.js} +1 -1
  40. package/static/auth-callback/assets/{download-DS0bFJRx.js → download-DGXoks01.js} +1 -1
  41. package/static/auth-callback/assets/{external-link-DexzrPwI.js → external-link-CvbgXXaI.js} +1 -1
  42. package/static/auth-callback/assets/{index-DQdWIkbj.js → index-BOK3j1dz.js} +1 -1
  43. package/static/auth-callback/assets/{index-BTDt1S5b.js → index-LRWvKJ2i.js} +1 -1
  44. package/static/auth-callback/assets/{index-browser-BX1idNBt.js → index-browser-C1Qpe0g4.js} +1 -1
  45. package/static/auth-callback/assets/{key-round-C85nwlgu.js → key-round-CmgS5UdQ.js} +1 -1
  46. package/static/auth-callback/assets/{rotate-ccw-A6Oag9av.js → rotate-ccw-c4CSG6Rq.js} +1 -1
  47. package/static/auth-callback/assets/{skeleton-BvfTlNEO.js → skeleton-ZPMTiRSM.js} +1 -1
  48. package/static/auth-callback/assets/{waypoints-DYFRaCfm.js → waypoints-xjyBflU5.js} +1 -1
  49. package/static/auth-callback/assets/{workspace-layout-DVR1e0R8.js → workspace-layout-B9nj6F5J.js} +1 -1
  50. package/static/auth-callback/auth-callback.html +2 -2
  51. package/static/auth-callback/xpod-desktop-client.json +14 -0
  52. package/static/dashboard/assets/{AiConfigContext-BM7FM2GL.js → AiConfigContext-BWOOSYNr.js} +1 -1
  53. package/static/dashboard/assets/{AiConfigPage-p-MraOBM.js → AiConfigPage-CG2kQ9Wy.js} +1 -1
  54. package/static/dashboard/assets/{DocumentProcessingPanel-Bl4EjKWL.js → DocumentProcessingPanel-B4VXajfj.js} +1 -1
  55. package/static/dashboard/assets/{IndexLifecyclePanel-DmHVRAdn.js → IndexLifecyclePanel-CWCy0CC8.js} +1 -1
  56. package/static/dashboard/assets/{IndexSubjectPanel-D-499Oas.js → IndexSubjectPanel-CSgyQnG_.js} +1 -1
  57. package/static/dashboard/assets/{ModelAssignmentsPanel-C_DUiLUl.js → ModelAssignmentsPanel-CdGIGidT.js} +1 -1
  58. package/static/dashboard/assets/{ModelsPage-BVV05BCL.js → ModelsPage-Chd5UK0D.js} +1 -1
  59. package/static/dashboard/assets/{NetworkPage-BmBWZoAI.js → NetworkPage-COia9NCH.js} +1 -1
  60. package/static/dashboard/assets/{PaneListHeader--7L-IICs.js → PaneListHeader-SZWyr602.js} +1 -1
  61. package/static/dashboard/assets/{SearchIndexingPanel-Bh69WHlh.js → SearchIndexingPanel-D6PZtG6k.js} +1 -1
  62. package/static/dashboard/assets/{StatusSubjectPanel-CXv7MD5a.js → StatusSubjectPanel-CxRD4kv0.js} +1 -1
  63. package/static/dashboard/assets/{StatusWorkspace-CmxTTkN7.js → StatusWorkspace-D3PfmY9-.js} +1 -1
  64. package/static/dashboard/assets/{SystemSettingsPage-euiBZgKr.js → SystemSettingsPage-COg1MmMj.js} +1 -1
  65. package/static/dashboard/assets/{SystemSettingsSubjectPanel-ro5iHev6.js → SystemSettingsSubjectPanel-BSVVB9Ol.js} +1 -1
  66. package/static/dashboard/assets/{activity-BJNDE3Gu.js → activity-BJJx5cN-.js} +1 -1
  67. package/static/dashboard/assets/{badge-BQKmk0KN.js → badge-elmrFSCj.js} +1 -1
  68. package/static/dashboard/assets/dashboard-01yz-UDU.css +1 -0
  69. package/static/dashboard/assets/{dashboard-DQTxcZiM.js → dashboard-IvQrNmru.js} +12 -12
  70. package/static/dashboard/assets/{download-GGpeN6-S.js → download-C3FH2KzG.js} +1 -1
  71. package/static/dashboard/assets/{external-link-Bv544qbJ.js → external-link-Bx7F0uKb.js} +1 -1
  72. package/static/dashboard/assets/{index-7YFh1X7m.js → index-M4-kWiGz.js} +1 -1
  73. package/static/dashboard/assets/{index-7AbzZfy2.js → index-liRoRIP1.js} +1 -1
  74. package/static/dashboard/assets/{key-round-BiB32Awf.js → key-round-CXg0bKAj.js} +1 -1
  75. package/static/dashboard/assets/{rotate-ccw-CZDUJt1v.js → rotate-ccw-yxJKOBrX.js} +1 -1
  76. package/static/dashboard/assets/{skeleton-C3J1hqN6.js → skeleton-x9jNGrQT.js} +1 -1
  77. package/static/dashboard/assets/{waypoints-CWFNKzHo.js → waypoints-CTKeRsGp.js} +1 -1
  78. package/static/dashboard/assets/{workspace-layout-D1i1FDM0.js → workspace-layout--YkgkS38.js} +1 -1
  79. package/static/dashboard/dashboard.html +2 -2
  80. package/static/dashboard/xpod-desktop-client.json +14 -0
  81. package/static/settings/assets/{AiConfigContext-B-tqFX8i.js → AiConfigContext-CelxXFcQ.js} +1 -1
  82. package/static/settings/assets/{AiConfigPage-DSZ1qKpy.js → AiConfigPage-BaP-EovM.js} +1 -1
  83. package/static/settings/assets/{DocumentProcessingPanel-BHO57iMD.js → DocumentProcessingPanel-DzLZluFv.js} +1 -1
  84. package/static/settings/assets/{IndexLifecyclePanel-DhB4LMHO.js → IndexLifecyclePanel-Bzj1-_oI.js} +1 -1
  85. package/static/settings/assets/{IndexSubjectPanel-zMtMv4nP.js → IndexSubjectPanel-B263QLUh.js} +1 -1
  86. package/static/settings/assets/{ModelAssignmentsPanel-4tMp-t3N.js → ModelAssignmentsPanel-BAdT4UR0.js} +1 -1
  87. package/static/settings/assets/{ModelsPage-CcuEwXHK.js → ModelsPage-C0NFa1zq.js} +1 -1
  88. package/static/settings/assets/{NetworkPage-jzhVzoPR.js → NetworkPage-BK6a7l4g.js} +1 -1
  89. package/static/settings/assets/{PaneListHeader-Cme9dy-w.js → PaneListHeader-BAS2ICPq.js} +1 -1
  90. package/static/settings/assets/{SearchIndexingPanel-gH1IcePJ.js → SearchIndexingPanel-Cb_p-NgW.js} +1 -1
  91. package/static/settings/assets/{StatusSubjectPanel-DX8jsVt3.js → StatusSubjectPanel-CcjqUua6.js} +1 -1
  92. package/static/settings/assets/{StatusWorkspace-CurRswDE.js → StatusWorkspace-7Ibty3_k.js} +1 -1
  93. package/static/settings/assets/{SystemSettingsPage-Do6AeOlg.js → SystemSettingsPage-DPSz4dg4.js} +1 -1
  94. package/static/settings/assets/{SystemSettingsSubjectPanel-Di4d8GGL.js → SystemSettingsSubjectPanel-Cb4HkKT5.js} +1 -1
  95. package/static/settings/assets/{activity-BndZTWqr.js → activity-Qhsr5Pxu.js} +1 -1
  96. package/static/settings/assets/{badge-bTZd84Yz.js → badge-B1vf2qCl.js} +1 -1
  97. package/static/settings/assets/{download-CTB6SCCX.js → download-CYNt0aZ-.js} +1 -1
  98. package/static/settings/assets/{external-link-VXD7cKP1.js → external-link-ClKb39NT.js} +1 -1
  99. package/static/settings/assets/{index-DlaUNsAu.js → index-BgiIDSch.js} +1 -1
  100. package/static/settings/assets/{index-browser-BC1kWYXi.js → index-browser-DJhvgpNI.js} +1 -1
  101. package/static/settings/assets/{index-BJTTGdJu.js → index-y8ew3MLM.js} +1 -1
  102. package/static/settings/assets/{key-round-Cgukkv9x.js → key-round-5d-DrJz-.js} +1 -1
  103. package/static/settings/assets/{rotate-ccw-kBanAhWZ.js → rotate-ccw-CHZY7kS5.js} +1 -1
  104. package/static/settings/assets/settings-01yz-UDU.css +1 -0
  105. package/static/settings/assets/{settings-B_NbAVC_.js → settings-D5VRWyx6.js} +13 -13
  106. package/static/settings/assets/{skeleton-0nvLWr59.js → skeleton-FNabNxNE.js} +1 -1
  107. package/static/settings/assets/{waypoints-DUjkmIoD.js → waypoints-BnL_8ljo.js} +1 -1
  108. package/static/settings/assets/{workspace-layout-5fe0Mvbk.js → workspace-layout-D5q3F59S.js} +1 -1
  109. package/static/settings/settings.html +2 -2
  110. package/static/settings/xpod-desktop-client.json +14 -0
  111. package/static/auth-callback/assets/auth-callback-yyFdkaKq.css +0 -1
  112. package/static/dashboard/assets/dashboard-yyFdkaKq.css +0 -1
  113. package/static/settings/assets/settings-yyFdkaKq.css +0 -1
@@ -1,4 +1,4 @@
1
- import{r as f,o as V,p as ke,q as Ie,s as me,j as Y,P as he,v as Yn,w as zt,x as Kn}from"./dashboard-DQTxcZiM.js";var Gn=Object.defineProperty,ve=(e,t)=>Gn(e,"name",{value:t,configurable:!0}),Xt=!!(typeof window<"u"&&window.document&&window.document.createElement);function Ae(e,t,{checkForDefaultPrevented:n=!0}={}){return ve(function(o){if(e?.(o),n===!1||!o||!o.defaultPrevented)return t?.(o)},"handleEvent")}ve(Ae,"composeEventHandlers");function Zn(e){if(!Xt)throw new Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window}ve(Zn,"getOwnerWindow");function tt(e){if(!Xt)throw new Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}ve(tt,"getOwnerDocument");function Yt(e,t=!1){const{activeElement:n}=tt(e);if(!n?.nodeName)return null;if(Kt(n)&&n.contentDocument)return Yt(n.contentDocument.body,t);if(t){const r=n.getAttribute("aria-activedescendant");if(r){const o=tt(n).getElementById(r);if(o)return o}}return n}ve(Yt,"getActiveElement");function Kt(e){return e.tagName==="IFRAME"}ve(Kt,"isFrame");var qn=Object.defineProperty,Qn=(e,t)=>qn(e,"name",{value:t,configurable:!0}),Jn=ke[" useId ".trim().toString()]||(()=>{}),er=0;function tr(e){const[t,n]=f.useState(Jn());return V(()=>{e||n(r=>r??String(er++))},[e]),e||(t?`radix-${t}`:"")}Qn(tr,"useId");var nr=Object.defineProperty,rr=(e,t)=>nr(e,"name",{value:t,configurable:!0}),Ct=ke[" useEffectEvent ".trim().toString()],Rt=ke[" useInsertionEffect ".trim().toString()];function Gt(e){if(typeof Ct=="function")return Ct(e);const t=f.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof Rt=="function"?Rt(()=>{t.current=e}):V(()=>{t.current=e}),f.useMemo(()=>((...n)=>t.current?.(...n)),[])}rr(Gt,"useEffectEvent");var or=Object.defineProperty,be=(e,t)=>or(e,"name",{value:t,configurable:!0}),ir=ke[" useInsertionEffect ".trim().toString()]||V;function sr({prop:e,defaultProp:t,onChange:n=be(()=>{},"onChange"),caller:r}){const[o,i,s]=Zt({defaultProp:t,onChange:n}),c=e!==void 0,l=c?e:o,u=f.useCallback(m=>{if(c){const a=qt(m)?m(e):m;a!==e&&s.current?.(a)}else i(m)},[c,e,i,s]);return[l,u]}be(sr,"useControllableState");function Zt({defaultProp:e,onChange:t}){const[n,r]=f.useState(e),o=f.useRef(n),i=f.useRef(t);return ir(()=>{i.current=t},[t]),f.useEffect(()=>{o.current!==n&&(i.current?.(n),o.current=n)},[n,o]),[n,r,i]}be(Zt,"useUncontrolledState");function qt(e){return typeof e=="function"}be(qt,"isFunction");var Pt=Symbol("RADIX:SYNC_STATE");function cr(e,t,n,r){const{prop:o,defaultProp:i,onChange:s,caller:c}=t,l=o!==void 0,u=Gt(s),m=[{...n,state:i}];r&&m.push(r);const[a,d]=f.useReducer((g,w)=>{if(w.type===Pt)return{...g,state:w.state};const y=e(g,w);return l&&!Object.is(y.state,g.state)&&u(y.state),y},...m),p=a.state,h=f.useRef(p);f.useEffect(()=>{h.current!==p&&(h.current=p,l||u(p))},[p,h,l]);const v=f.useMemo(()=>o!==void 0?{...a,state:o}:a,[a,o]);return f.useEffect(()=>{l&&!Object.is(o,a.state)&&d({type:Pt,state:o})},[o,a.state,l]),[v,d]}be(cr,"useControllableStateReducer");var ar=Object.defineProperty,_=(e,t)=>ar(e,"name",{value:t,configurable:!0}),nt="dismissableLayer.update",lr="dismissableLayer.pointerDownOutside",ur="dismissableLayer.focusOutside",Ot,Qt=f.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Pi=f.forwardRef(_(function(t,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:o=!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:c,onInteractOutside:l,onDismiss:u,...m}=t,a=f.useContext(Qt),[d,p]=f.useState(null),h=d?.ownerDocument??globalThis?.document,[,v]=f.useState({}),g=Ie(n,p),w=Array.from(a.layers),[y]=[...a.layersWithOutsidePointerEventsDisabled].slice(-1),b=y?w.indexOf(y):-1,E=d?w.indexOf(d):-1,x=a.layersWithOutsidePointerEventsDisabled.size>0,S=E>=b,C=f.useRef(!1),A=Jt(R=>{s?.(R),l?.(R),R.defaultPrevented||u?.()},{ownerDocument:h,deferPointerDownOutside:o,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:a.dismissableSurfaces,shouldHandlePointerDownOutside:f.useCallback(R=>{if(!(R instanceof Node))return!1;const T=[...a.branches].some(D=>D.contains(R));return S&&!T},[a.branches,S])}),L=en(R=>{if(o&&C.current)return;const T=R.target;[...a.branches].some(I=>I.contains(T))||(c?.(R),l?.(R),R.defaultPrevented||u?.())},h),O=d?E===w.length-1:!1,N=me(R=>{R.key==="Escape"&&(i?.(R),!R.defaultPrevented&&u&&(R.preventDefault(),u()))});return f.useEffect(()=>{if(O)return h.addEventListener("keydown",N,{capture:!0}),()=>h.removeEventListener("keydown",N,{capture:!0})},[h,O,N]),f.useEffect(()=>{if(d)return r&&(a.layersWithOutsidePointerEventsDisabled.size===0&&(Ot=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),a.layersWithOutsidePointerEventsDisabled.add(d)),a.layers.add(d),rt(),()=>{r&&(a.layersWithOutsidePointerEventsDisabled.delete(d),a.layersWithOutsidePointerEventsDisabled.size===0&&(h.body.style.pointerEvents=Ot))}},[d,h,r,a]),f.useEffect(()=>()=>{d&&(a.layers.delete(d),a.layersWithOutsidePointerEventsDisabled.delete(d),rt())},[d,a]),f.useEffect(()=>{const R=_(()=>v({}),"handleUpdate");return document.addEventListener(nt,R),()=>document.removeEventListener(nt,R)},[]),Y.jsx(he.div,{...m,ref:g,style:{pointerEvents:x?S?"auto":"none":void 0,...t.style},onFocusCapture:Ae(t.onFocusCapture,L.onFocusCapture),onBlurCapture:Ae(t.onBlurCapture,L.onBlurCapture),onPointerDownCapture:Ae(t.onPointerDownCapture,A.onPointerDownCapture)})},"DismissableLayer"));function fr(){const e=f.useContext(Qt),[t,n]=f.useState(null);return f.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}_(fr,"useDismissableLayerSurface");var dr=_(()=>!0,"IS_TRUE");function Jt(e,t){const{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:i,shouldHandlePointerDownOutside:s=dr}=t,c=me(e),l=f.useRef(!1),u=f.useRef(!1),m=f.useRef(new Map),a=f.useRef(()=>{});return f.useEffect(()=>{function d(){u.current=!1,o.current=!1,m.current.clear()}_(d,"resetOutsideInteraction");function p(){return Array.from(m.current.values()).some(Boolean)}_(p,"isOutsideInteractionIntercepted");function h(b){if(!u.current)return;const E=b.target;E instanceof Node&&[...i].some(S=>S.contains(E))||m.current.set(b.type,!0),b.type==="click"&&window.setTimeout(()=>{u.current&&a.current()},0)}_(h,"handleInteractionCapture");function v(b){u.current&&m.current.set(b.type,!1)}_(v,"handleInteractionBubble");const g=_(b=>{if(b.target&&!l.current){let E=function(){n.removeEventListener("click",a.current);const S=p();d(),S||ft(lr,c,x,{discrete:!0})};if(_(E,"handleAndDispatchPointerDownOutsideEvent"),!s(b.target)){n.removeEventListener("click",a.current),d(),l.current=!1;return}const x={originalEvent:b};u.current=!0,o.current=r&&b.button===0,m.current.clear(),!r||b.button!==0?E():(n.removeEventListener("click",a.current),a.current=E,n.addEventListener("click",a.current,{once:!0}))}else n.removeEventListener("click",a.current),d();l.current=!1},"handlePointerDown"),w=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const b of w)n.addEventListener(b,h,!0),n.addEventListener(b,v);const y=window.setTimeout(()=>{n.addEventListener("pointerdown",g)},0);return()=>{window.clearTimeout(y),n.removeEventListener("pointerdown",g),n.removeEventListener("click",a.current);for(const b of w)n.removeEventListener(b,h,!0),n.removeEventListener(b,v)}},[n,c,r,o,i,s]),{onPointerDownCapture:_(()=>l.current=!0,"onPointerDownCapture")}}_(Jt,"usePointerDownOutside");function en(e,t=globalThis?.document){const n=me(e),r=f.useRef(!1);return f.useEffect(()=>{const o=_(i=>{i.target&&!r.current&&ft(ur,n,{originalEvent:i},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:_(()=>r.current=!0,"onFocusCapture"),onBlurCapture:_(()=>r.current=!1,"onBlurCapture")}}_(en,"useFocusOutside");function rt(){const e=new CustomEvent(nt);document.dispatchEvent(e)}_(rt,"dispatchUpdate");function ft(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Yn(o,i):o.dispatchEvent(i)}_(ft,"handleAndDispatchCustomEvent");var mr=Object.defineProperty,k=(e,t)=>mr(e,"name",{value:t,configurable:!0}),Xe="focusScope.autoFocusOnMount",Ye="focusScope.autoFocusOnUnmount",At={bubbles:!1,cancelable:!0},Oi=f.forwardRef(k(function(t,n){const{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:s,...c}=t,[l,u]=f.useState(null),m=me(i),a=me(s),d=f.useRef(null),p=Ie(n,u),h=f.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;f.useEffect(()=>{if(o){let g=function(E){if(h.paused||!l)return;const x=E.target;l.contains(x)?d.current=x:X(d.current,{select:!0})},w=function(E){if(h.paused||!l)return;const x=E.relatedTarget;x!==null&&(l.contains(x)||X(d.current,{select:!0}))},y=function(E){if(document.activeElement===document.body)for(const S of E)S.removedNodes.length>0&&X(l)};k(g,"handleFocusIn"),k(w,"handleFocusOut"),k(y,"handleMutations"),document.addEventListener("focusin",g),document.addEventListener("focusout",w);const b=new MutationObserver(y);return l&&b.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",g),document.removeEventListener("focusout",w),b.disconnect()}}},[o,l,h.paused]),f.useEffect(()=>{if(l){Dt.add(h);const g=document.activeElement;if(!l.contains(g)){const y=new CustomEvent(Xe,At);l.addEventListener(Xe,m),l.dispatchEvent(y),y.defaultPrevented||(tn(cn(dt(l)),{select:!0}),document.activeElement===g&&X(l))}return()=>{l.removeEventListener(Xe,m),setTimeout(()=>{const y=new CustomEvent(Ye,At);l.addEventListener(Ye,a),l.dispatchEvent(y),y.defaultPrevented||X(g??document.body,{select:!0}),l.removeEventListener(Ye,a),Dt.remove(h)},0)}}},[l,m,a,h]);const v=f.useCallback(g=>{if(!r&&!o||h.paused)return;const w=g.key==="Tab"&&!g.altKey&&!g.ctrlKey&&!g.metaKey,y=document.activeElement;if(w&&y){const b=g.currentTarget,[E,x]=nn(b);E&&x?!g.shiftKey&&y===x?(g.preventDefault(),r&&X(E,{select:!0})):g.shiftKey&&y===E&&(g.preventDefault(),r&&X(x,{select:!0})):y===b&&g.preventDefault()}},[r,o,h.paused]);return Y.jsx(he.div,{tabIndex:-1,...c,ref:p,onKeyDown:v})},"FocusScope"));function tn(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(X(r,{select:t}),document.activeElement!==n)return}k(tn,"focusFirst");function nn(e){const t=dt(e),n=ot(t,e),r=ot(t.reverse(),e);return[n,r]}k(nn,"getTabbableEdges");function dt(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:k(r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}k(dt,"getTabbableCandidates");function ot(e,t){const n=typeof t.checkVisibility=="function"&&t.checkVisibility({checkVisibilityCSS:!0});for(const r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):rn(r,{upTo:t})))return r}k(ot,"findVisible");function rn(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}k(rn,"isHidden");function on(e){return e instanceof HTMLInputElement&&"select"in e}k(on,"isSelectableInput");function X(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&on(e)&&t&&e.select()}}k(X,"focus");var Dt=sn();function sn(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=it(e,t),e.unshift(t)},remove(t){e=it(e,t),e[0]?.resume()}}}k(sn,"createFocusScopesStack");function it(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}k(it,"arrayRemove");function cn(e){return e.filter(t=>t.tagName!=="A")}k(cn,"removeLinks");var hr=Object.defineProperty,vr=(e,t)=>hr(e,"name",{value:t,configurable:!0}),Ai=f.forwardRef(vr(function(t,n){const{container:r,...o}=t,[i,s]=f.useState(!1);V(()=>s(!0),[]);const c=r||i&&globalThis?.document?.body;return c?zt.createPortal(Y.jsx(he.div,{...o,ref:n}),c):null},"Portal")),pr=Object.defineProperty,Z=(e,t)=>pr(e,"name",{value:t,configurable:!0});function an(e,t){return f.useReducer((n,r)=>t[n][r]??n,e)}Z(an,"useStateMachine");var Di=Z(e=>{const{present:t,children:n}=e,r=ln(t),o=typeof n=="function"?n({present:r.isPresent}):f.Children.only(n),i=un(r.ref,fn(o));return typeof n=="function"||r.isPresent?f.cloneElement(o,{ref:i}):null},"Presence");function ln(e){const[t,n]=f.useState(),r=f.useRef(null),o=f.useRef(e),i=f.useRef("none"),s=f.useRef(void 0),c=e?"mounted":"unmounted",[l,u]=an(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return f.useEffect(()=>{l==="mounted"?(i.current=s.current??ue(r.current),s.current=void 0):i.current="none"},[l]),V(()=>{const m=r.current,a=o.current;if(a!==e){const p=i.current,h=ue(m);e?(s.current=h,u("MOUNT")):h==="none"||m?.display==="none"?u("UNMOUNT"):u(a&&p!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),V(()=>{if(t){let m;const a=t.ownerDocument.defaultView??window,d=Z(h=>{const g=ue(r.current).includes(CSS.escape(h.animationName));if(h.target===t&&g&&(u("ANIMATION_END"),!o.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",m=a.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},"handleAnimationEnd"),p=Z(h=>{h.target===t&&(i.current=ue(r.current))},"handleAnimationStart");return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{a.clearTimeout(m),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:f.useCallback(m=>{if(m){const a=getComputedStyle(m);r.current=a,s.current=ue(a)}else r.current=null;n(m)},[])}}Z(ln,"usePresence");function st(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}Z(st,"setRef");function un(...e){const t=f.useRef(e);return t.current=e,f.useCallback(n=>{const r=t.current;let o=!1;const i=r.map(s=>{const c=st(s,n);return!o&&typeof c=="function"&&(o=!0),c});if(o)return()=>{for(let s=0;s<i.length;s++){const c=i[s];typeof c=="function"?c():st(r[s],null)}}},[])}Z(un,"useStableComposedRefs");function ue(e){return e?.animationName||"none"}Z(ue,"getAnimationName");function fn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Z(fn,"getElementRef");var gr=Object.defineProperty,mt=(e,t)=>gr(e,"name",{value:t,configurable:!0}),xe=0,se=null;function wr(e){return dn(),e.children}mt(wr,"FocusGuards");function dn(){f.useEffect(()=>{se||(se={start:ct(),end:ct()});const{start:e,end:t}=se;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),xe++,()=>{xe===1&&(se?.start.remove(),se?.end.remove(),se=null),xe=Math.max(0,xe-1)}},[])}mt(dn,"useFocusGuards");function ct(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}mt(ct,"createFocusGuard");var H=function(){return H=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},H.apply(this,arguments)};function mn(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function yr(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var De="right-scroll-bar-position",Te="width-before-scroll-bar",br="with-scroll-bars-hidden",Er="--removed-body-scroll-bar-size";function Ke(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function xr(e,t){var n=f.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var Sr=typeof window<"u"?f.useLayoutEffect:f.useEffect,Tt=new WeakMap;function Cr(e,t){var n=xr(null,function(r){return e.forEach(function(o){return Ke(o,r)})});return Sr(function(){var r=Tt.get(n);if(r){var o=new Set(r),i=new Set(e),s=n.current;o.forEach(function(c){i.has(c)||Ke(c,null)}),i.forEach(function(c){o.has(c)||Ke(c,s)})}Tt.set(n,e)},[e]),n}function Rr(e){return e}function Pr(e,t){t===void 0&&(t=Rr);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var s=t(i,r);return n.push(s),function(){n=n.filter(function(c){return c!==s})}},assignSyncMedium:function(i){for(r=!0;n.length;){var s=n;n=[],s.forEach(i)}n={push:function(c){return i(c)},filter:function(){return n}}},assignMedium:function(i){r=!0;var s=[];if(n.length){var c=n;n=[],c.forEach(i),s=n}var l=function(){var m=s;s=[],m.forEach(i)},u=function(){return Promise.resolve().then(l)};u(),n={push:function(m){s.push(m),u()},filter:function(m){return s=s.filter(m),n}}}};return o}function Or(e){e===void 0&&(e={});var t=Pr(null);return t.options=H({async:!0,ssr:!1},e),t}var hn=function(e){var t=e.sideCar,n=mn(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return f.createElement(r,H({},n))};hn.isSideCarExport=!0;function Ar(e,t){return e.useMedium(t),hn}var vn=Or(),Ge=function(){},We=f.forwardRef(function(e,t){var n=f.useRef(null),r=f.useState({onScrollCapture:Ge,onWheelCapture:Ge,onTouchMoveCapture:Ge}),o=r[0],i=r[1],s=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,m=e.enabled,a=e.shards,d=e.sideCar,p=e.noRelative,h=e.noIsolation,v=e.inert,g=e.allowPinchZoom,w=e.as,y=w===void 0?"div":w,b=e.gapMode,E=mn(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),x=d,S=Cr([n,t]),C=H(H({},E),o);return f.createElement(f.Fragment,null,m&&f.createElement(x,{sideCar:vn,removeScrollBar:u,shards:a,noRelative:p,noIsolation:h,inert:v,setCallbacks:i,allowPinchZoom:!!g,lockRef:n,gapMode:b}),s?f.cloneElement(f.Children.only(c),H(H({},C),{ref:S})):f.createElement(y,H({},C,{className:l,ref:S}),c))});We.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};We.classNames={fullWidth:Te,zeroRight:De};var Dr=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Tr(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Dr();return t&&e.setAttribute("nonce",t),e}function Lr(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Nr(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Mr=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Tr())&&(Lr(t,n),Nr(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Fr=function(){var e=Mr();return function(t,n){f.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},pn=function(){var e=Fr(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},_r={left:0,top:0,right:0,gap:0},Ze=function(e){return parseInt(e||"",10)||0},kr=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Ze(n),Ze(r),Ze(o)]},Ir=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return _r;var t=kr(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Wr=pn(),fe="data-scroll-locked",$r=function(e,t,n,r){var o=e.left,i=e.top,s=e.right,c=e.gap;return n===void 0&&(n="margin"),`
1
+ import{r as f,o as V,p as ke,q as Ie,s as me,j as Y,P as he,v as Yn,w as zt,x as Kn}from"./dashboard-IvQrNmru.js";var Gn=Object.defineProperty,ve=(e,t)=>Gn(e,"name",{value:t,configurable:!0}),Xt=!!(typeof window<"u"&&window.document&&window.document.createElement);function Ae(e,t,{checkForDefaultPrevented:n=!0}={}){return ve(function(o){if(e?.(o),n===!1||!o||!o.defaultPrevented)return t?.(o)},"handleEvent")}ve(Ae,"composeEventHandlers");function Zn(e){if(!Xt)throw new Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window}ve(Zn,"getOwnerWindow");function tt(e){if(!Xt)throw new Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}ve(tt,"getOwnerDocument");function Yt(e,t=!1){const{activeElement:n}=tt(e);if(!n?.nodeName)return null;if(Kt(n)&&n.contentDocument)return Yt(n.contentDocument.body,t);if(t){const r=n.getAttribute("aria-activedescendant");if(r){const o=tt(n).getElementById(r);if(o)return o}}return n}ve(Yt,"getActiveElement");function Kt(e){return e.tagName==="IFRAME"}ve(Kt,"isFrame");var qn=Object.defineProperty,Qn=(e,t)=>qn(e,"name",{value:t,configurable:!0}),Jn=ke[" useId ".trim().toString()]||(()=>{}),er=0;function tr(e){const[t,n]=f.useState(Jn());return V(()=>{e||n(r=>r??String(er++))},[e]),e||(t?`radix-${t}`:"")}Qn(tr,"useId");var nr=Object.defineProperty,rr=(e,t)=>nr(e,"name",{value:t,configurable:!0}),Ct=ke[" useEffectEvent ".trim().toString()],Rt=ke[" useInsertionEffect ".trim().toString()];function Gt(e){if(typeof Ct=="function")return Ct(e);const t=f.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof Rt=="function"?Rt(()=>{t.current=e}):V(()=>{t.current=e}),f.useMemo(()=>((...n)=>t.current?.(...n)),[])}rr(Gt,"useEffectEvent");var or=Object.defineProperty,be=(e,t)=>or(e,"name",{value:t,configurable:!0}),ir=ke[" useInsertionEffect ".trim().toString()]||V;function sr({prop:e,defaultProp:t,onChange:n=be(()=>{},"onChange"),caller:r}){const[o,i,s]=Zt({defaultProp:t,onChange:n}),c=e!==void 0,l=c?e:o,u=f.useCallback(m=>{if(c){const a=qt(m)?m(e):m;a!==e&&s.current?.(a)}else i(m)},[c,e,i,s]);return[l,u]}be(sr,"useControllableState");function Zt({defaultProp:e,onChange:t}){const[n,r]=f.useState(e),o=f.useRef(n),i=f.useRef(t);return ir(()=>{i.current=t},[t]),f.useEffect(()=>{o.current!==n&&(i.current?.(n),o.current=n)},[n,o]),[n,r,i]}be(Zt,"useUncontrolledState");function qt(e){return typeof e=="function"}be(qt,"isFunction");var Pt=Symbol("RADIX:SYNC_STATE");function cr(e,t,n,r){const{prop:o,defaultProp:i,onChange:s,caller:c}=t,l=o!==void 0,u=Gt(s),m=[{...n,state:i}];r&&m.push(r);const[a,d]=f.useReducer((g,w)=>{if(w.type===Pt)return{...g,state:w.state};const y=e(g,w);return l&&!Object.is(y.state,g.state)&&u(y.state),y},...m),p=a.state,h=f.useRef(p);f.useEffect(()=>{h.current!==p&&(h.current=p,l||u(p))},[p,h,l]);const v=f.useMemo(()=>o!==void 0?{...a,state:o}:a,[a,o]);return f.useEffect(()=>{l&&!Object.is(o,a.state)&&d({type:Pt,state:o})},[o,a.state,l]),[v,d]}be(cr,"useControllableStateReducer");var ar=Object.defineProperty,_=(e,t)=>ar(e,"name",{value:t,configurable:!0}),nt="dismissableLayer.update",lr="dismissableLayer.pointerDownOutside",ur="dismissableLayer.focusOutside",Ot,Qt=f.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Pi=f.forwardRef(_(function(t,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:o=!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:c,onInteractOutside:l,onDismiss:u,...m}=t,a=f.useContext(Qt),[d,p]=f.useState(null),h=d?.ownerDocument??globalThis?.document,[,v]=f.useState({}),g=Ie(n,p),w=Array.from(a.layers),[y]=[...a.layersWithOutsidePointerEventsDisabled].slice(-1),b=y?w.indexOf(y):-1,E=d?w.indexOf(d):-1,x=a.layersWithOutsidePointerEventsDisabled.size>0,S=E>=b,C=f.useRef(!1),A=Jt(R=>{s?.(R),l?.(R),R.defaultPrevented||u?.()},{ownerDocument:h,deferPointerDownOutside:o,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:a.dismissableSurfaces,shouldHandlePointerDownOutside:f.useCallback(R=>{if(!(R instanceof Node))return!1;const T=[...a.branches].some(D=>D.contains(R));return S&&!T},[a.branches,S])}),L=en(R=>{if(o&&C.current)return;const T=R.target;[...a.branches].some(I=>I.contains(T))||(c?.(R),l?.(R),R.defaultPrevented||u?.())},h),O=d?E===w.length-1:!1,N=me(R=>{R.key==="Escape"&&(i?.(R),!R.defaultPrevented&&u&&(R.preventDefault(),u()))});return f.useEffect(()=>{if(O)return h.addEventListener("keydown",N,{capture:!0}),()=>h.removeEventListener("keydown",N,{capture:!0})},[h,O,N]),f.useEffect(()=>{if(d)return r&&(a.layersWithOutsidePointerEventsDisabled.size===0&&(Ot=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),a.layersWithOutsidePointerEventsDisabled.add(d)),a.layers.add(d),rt(),()=>{r&&(a.layersWithOutsidePointerEventsDisabled.delete(d),a.layersWithOutsidePointerEventsDisabled.size===0&&(h.body.style.pointerEvents=Ot))}},[d,h,r,a]),f.useEffect(()=>()=>{d&&(a.layers.delete(d),a.layersWithOutsidePointerEventsDisabled.delete(d),rt())},[d,a]),f.useEffect(()=>{const R=_(()=>v({}),"handleUpdate");return document.addEventListener(nt,R),()=>document.removeEventListener(nt,R)},[]),Y.jsx(he.div,{...m,ref:g,style:{pointerEvents:x?S?"auto":"none":void 0,...t.style},onFocusCapture:Ae(t.onFocusCapture,L.onFocusCapture),onBlurCapture:Ae(t.onBlurCapture,L.onBlurCapture),onPointerDownCapture:Ae(t.onPointerDownCapture,A.onPointerDownCapture)})},"DismissableLayer"));function fr(){const e=f.useContext(Qt),[t,n]=f.useState(null);return f.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}_(fr,"useDismissableLayerSurface");var dr=_(()=>!0,"IS_TRUE");function Jt(e,t){const{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:i,shouldHandlePointerDownOutside:s=dr}=t,c=me(e),l=f.useRef(!1),u=f.useRef(!1),m=f.useRef(new Map),a=f.useRef(()=>{});return f.useEffect(()=>{function d(){u.current=!1,o.current=!1,m.current.clear()}_(d,"resetOutsideInteraction");function p(){return Array.from(m.current.values()).some(Boolean)}_(p,"isOutsideInteractionIntercepted");function h(b){if(!u.current)return;const E=b.target;E instanceof Node&&[...i].some(S=>S.contains(E))||m.current.set(b.type,!0),b.type==="click"&&window.setTimeout(()=>{u.current&&a.current()},0)}_(h,"handleInteractionCapture");function v(b){u.current&&m.current.set(b.type,!1)}_(v,"handleInteractionBubble");const g=_(b=>{if(b.target&&!l.current){let E=function(){n.removeEventListener("click",a.current);const S=p();d(),S||ft(lr,c,x,{discrete:!0})};if(_(E,"handleAndDispatchPointerDownOutsideEvent"),!s(b.target)){n.removeEventListener("click",a.current),d(),l.current=!1;return}const x={originalEvent:b};u.current=!0,o.current=r&&b.button===0,m.current.clear(),!r||b.button!==0?E():(n.removeEventListener("click",a.current),a.current=E,n.addEventListener("click",a.current,{once:!0}))}else n.removeEventListener("click",a.current),d();l.current=!1},"handlePointerDown"),w=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const b of w)n.addEventListener(b,h,!0),n.addEventListener(b,v);const y=window.setTimeout(()=>{n.addEventListener("pointerdown",g)},0);return()=>{window.clearTimeout(y),n.removeEventListener("pointerdown",g),n.removeEventListener("click",a.current);for(const b of w)n.removeEventListener(b,h,!0),n.removeEventListener(b,v)}},[n,c,r,o,i,s]),{onPointerDownCapture:_(()=>l.current=!0,"onPointerDownCapture")}}_(Jt,"usePointerDownOutside");function en(e,t=globalThis?.document){const n=me(e),r=f.useRef(!1);return f.useEffect(()=>{const o=_(i=>{i.target&&!r.current&&ft(ur,n,{originalEvent:i},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:_(()=>r.current=!0,"onFocusCapture"),onBlurCapture:_(()=>r.current=!1,"onBlurCapture")}}_(en,"useFocusOutside");function rt(){const e=new CustomEvent(nt);document.dispatchEvent(e)}_(rt,"dispatchUpdate");function ft(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Yn(o,i):o.dispatchEvent(i)}_(ft,"handleAndDispatchCustomEvent");var mr=Object.defineProperty,k=(e,t)=>mr(e,"name",{value:t,configurable:!0}),Xe="focusScope.autoFocusOnMount",Ye="focusScope.autoFocusOnUnmount",At={bubbles:!1,cancelable:!0},Oi=f.forwardRef(k(function(t,n){const{loop:r=!1,trapped:o=!1,onMountAutoFocus:i,onUnmountAutoFocus:s,...c}=t,[l,u]=f.useState(null),m=me(i),a=me(s),d=f.useRef(null),p=Ie(n,u),h=f.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;f.useEffect(()=>{if(o){let g=function(E){if(h.paused||!l)return;const x=E.target;l.contains(x)?d.current=x:X(d.current,{select:!0})},w=function(E){if(h.paused||!l)return;const x=E.relatedTarget;x!==null&&(l.contains(x)||X(d.current,{select:!0}))},y=function(E){if(document.activeElement===document.body)for(const S of E)S.removedNodes.length>0&&X(l)};k(g,"handleFocusIn"),k(w,"handleFocusOut"),k(y,"handleMutations"),document.addEventListener("focusin",g),document.addEventListener("focusout",w);const b=new MutationObserver(y);return l&&b.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",g),document.removeEventListener("focusout",w),b.disconnect()}}},[o,l,h.paused]),f.useEffect(()=>{if(l){Dt.add(h);const g=document.activeElement;if(!l.contains(g)){const y=new CustomEvent(Xe,At);l.addEventListener(Xe,m),l.dispatchEvent(y),y.defaultPrevented||(tn(cn(dt(l)),{select:!0}),document.activeElement===g&&X(l))}return()=>{l.removeEventListener(Xe,m),setTimeout(()=>{const y=new CustomEvent(Ye,At);l.addEventListener(Ye,a),l.dispatchEvent(y),y.defaultPrevented||X(g??document.body,{select:!0}),l.removeEventListener(Ye,a),Dt.remove(h)},0)}}},[l,m,a,h]);const v=f.useCallback(g=>{if(!r&&!o||h.paused)return;const w=g.key==="Tab"&&!g.altKey&&!g.ctrlKey&&!g.metaKey,y=document.activeElement;if(w&&y){const b=g.currentTarget,[E,x]=nn(b);E&&x?!g.shiftKey&&y===x?(g.preventDefault(),r&&X(E,{select:!0})):g.shiftKey&&y===E&&(g.preventDefault(),r&&X(x,{select:!0})):y===b&&g.preventDefault()}},[r,o,h.paused]);return Y.jsx(he.div,{tabIndex:-1,...c,ref:p,onKeyDown:v})},"FocusScope"));function tn(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(X(r,{select:t}),document.activeElement!==n)return}k(tn,"focusFirst");function nn(e){const t=dt(e),n=ot(t,e),r=ot(t.reverse(),e);return[n,r]}k(nn,"getTabbableEdges");function dt(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:k(r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}k(dt,"getTabbableCandidates");function ot(e,t){const n=typeof t.checkVisibility=="function"&&t.checkVisibility({checkVisibilityCSS:!0});for(const r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):rn(r,{upTo:t})))return r}k(ot,"findVisible");function rn(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}k(rn,"isHidden");function on(e){return e instanceof HTMLInputElement&&"select"in e}k(on,"isSelectableInput");function X(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&on(e)&&t&&e.select()}}k(X,"focus");var Dt=sn();function sn(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=it(e,t),e.unshift(t)},remove(t){e=it(e,t),e[0]?.resume()}}}k(sn,"createFocusScopesStack");function it(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}k(it,"arrayRemove");function cn(e){return e.filter(t=>t.tagName!=="A")}k(cn,"removeLinks");var hr=Object.defineProperty,vr=(e,t)=>hr(e,"name",{value:t,configurable:!0}),Ai=f.forwardRef(vr(function(t,n){const{container:r,...o}=t,[i,s]=f.useState(!1);V(()=>s(!0),[]);const c=r||i&&globalThis?.document?.body;return c?zt.createPortal(Y.jsx(he.div,{...o,ref:n}),c):null},"Portal")),pr=Object.defineProperty,Z=(e,t)=>pr(e,"name",{value:t,configurable:!0});function an(e,t){return f.useReducer((n,r)=>t[n][r]??n,e)}Z(an,"useStateMachine");var Di=Z(e=>{const{present:t,children:n}=e,r=ln(t),o=typeof n=="function"?n({present:r.isPresent}):f.Children.only(n),i=un(r.ref,fn(o));return typeof n=="function"||r.isPresent?f.cloneElement(o,{ref:i}):null},"Presence");function ln(e){const[t,n]=f.useState(),r=f.useRef(null),o=f.useRef(e),i=f.useRef("none"),s=f.useRef(void 0),c=e?"mounted":"unmounted",[l,u]=an(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return f.useEffect(()=>{l==="mounted"?(i.current=s.current??ue(r.current),s.current=void 0):i.current="none"},[l]),V(()=>{const m=r.current,a=o.current;if(a!==e){const p=i.current,h=ue(m);e?(s.current=h,u("MOUNT")):h==="none"||m?.display==="none"?u("UNMOUNT"):u(a&&p!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),V(()=>{if(t){let m;const a=t.ownerDocument.defaultView??window,d=Z(h=>{const g=ue(r.current).includes(CSS.escape(h.animationName));if(h.target===t&&g&&(u("ANIMATION_END"),!o.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",m=a.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},"handleAnimationEnd"),p=Z(h=>{h.target===t&&(i.current=ue(r.current))},"handleAnimationStart");return t.addEventListener("animationstart",p),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{a.clearTimeout(m),t.removeEventListener("animationstart",p),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:f.useCallback(m=>{if(m){const a=getComputedStyle(m);r.current=a,s.current=ue(a)}else r.current=null;n(m)},[])}}Z(ln,"usePresence");function st(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}Z(st,"setRef");function un(...e){const t=f.useRef(e);return t.current=e,f.useCallback(n=>{const r=t.current;let o=!1;const i=r.map(s=>{const c=st(s,n);return!o&&typeof c=="function"&&(o=!0),c});if(o)return()=>{for(let s=0;s<i.length;s++){const c=i[s];typeof c=="function"?c():st(r[s],null)}}},[])}Z(un,"useStableComposedRefs");function ue(e){return e?.animationName||"none"}Z(ue,"getAnimationName");function fn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Z(fn,"getElementRef");var gr=Object.defineProperty,mt=(e,t)=>gr(e,"name",{value:t,configurable:!0}),xe=0,se=null;function wr(e){return dn(),e.children}mt(wr,"FocusGuards");function dn(){f.useEffect(()=>{se||(se={start:ct(),end:ct()});const{start:e,end:t}=se;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),xe++,()=>{xe===1&&(se?.start.remove(),se?.end.remove(),se=null),xe=Math.max(0,xe-1)}},[])}mt(dn,"useFocusGuards");function ct(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}mt(ct,"createFocusGuard");var H=function(){return H=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},H.apply(this,arguments)};function mn(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function yr(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var De="right-scroll-bar-position",Te="width-before-scroll-bar",br="with-scroll-bars-hidden",Er="--removed-body-scroll-bar-size";function Ke(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function xr(e,t){var n=f.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var Sr=typeof window<"u"?f.useLayoutEffect:f.useEffect,Tt=new WeakMap;function Cr(e,t){var n=xr(null,function(r){return e.forEach(function(o){return Ke(o,r)})});return Sr(function(){var r=Tt.get(n);if(r){var o=new Set(r),i=new Set(e),s=n.current;o.forEach(function(c){i.has(c)||Ke(c,null)}),i.forEach(function(c){o.has(c)||Ke(c,s)})}Tt.set(n,e)},[e]),n}function Rr(e){return e}function Pr(e,t){t===void 0&&(t=Rr);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var s=t(i,r);return n.push(s),function(){n=n.filter(function(c){return c!==s})}},assignSyncMedium:function(i){for(r=!0;n.length;){var s=n;n=[],s.forEach(i)}n={push:function(c){return i(c)},filter:function(){return n}}},assignMedium:function(i){r=!0;var s=[];if(n.length){var c=n;n=[],c.forEach(i),s=n}var l=function(){var m=s;s=[],m.forEach(i)},u=function(){return Promise.resolve().then(l)};u(),n={push:function(m){s.push(m),u()},filter:function(m){return s=s.filter(m),n}}}};return o}function Or(e){e===void 0&&(e={});var t=Pr(null);return t.options=H({async:!0,ssr:!1},e),t}var hn=function(e){var t=e.sideCar,n=mn(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return f.createElement(r,H({},n))};hn.isSideCarExport=!0;function Ar(e,t){return e.useMedium(t),hn}var vn=Or(),Ge=function(){},We=f.forwardRef(function(e,t){var n=f.useRef(null),r=f.useState({onScrollCapture:Ge,onWheelCapture:Ge,onTouchMoveCapture:Ge}),o=r[0],i=r[1],s=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,m=e.enabled,a=e.shards,d=e.sideCar,p=e.noRelative,h=e.noIsolation,v=e.inert,g=e.allowPinchZoom,w=e.as,y=w===void 0?"div":w,b=e.gapMode,E=mn(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),x=d,S=Cr([n,t]),C=H(H({},E),o);return f.createElement(f.Fragment,null,m&&f.createElement(x,{sideCar:vn,removeScrollBar:u,shards:a,noRelative:p,noIsolation:h,inert:v,setCallbacks:i,allowPinchZoom:!!g,lockRef:n,gapMode:b}),s?f.cloneElement(f.Children.only(c),H(H({},C),{ref:S})):f.createElement(y,H({},C,{className:l,ref:S}),c))});We.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};We.classNames={fullWidth:Te,zeroRight:De};var Dr=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Tr(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Dr();return t&&e.setAttribute("nonce",t),e}function Lr(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Nr(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Mr=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Tr())&&(Lr(t,n),Nr(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Fr=function(){var e=Mr();return function(t,n){f.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},pn=function(){var e=Fr(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},_r={left:0,top:0,right:0,gap:0},Ze=function(e){return parseInt(e||"",10)||0},kr=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Ze(n),Ze(r),Ze(o)]},Ir=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return _r;var t=kr(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Wr=pn(),fe="data-scroll-locked",$r=function(e,t,n,r){var o=e.left,i=e.top,s=e.right,c=e.gap;return n===void 0&&(n="margin"),`
2
2
  .`.concat(br,` {
3
3
  overflow: hidden `).concat(r,`;
4
4
  padding-right: `).concat(c,"px ").concat(r,`;
@@ -1 +1 @@
1
- import{c}from"./dashboard-DQTxcZiM.js";const e=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],a=c("key-round",e);export{a as K};
1
+ import{c}from"./dashboard-IvQrNmru.js";const e=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],a=c("key-round",e);export{a as K};
@@ -1 +1 @@
1
- import{c as t}from"./dashboard-DQTxcZiM.js";const c=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],o=t("rotate-ccw",c);export{o as R};
1
+ import{c as t}from"./dashboard-IvQrNmru.js";const c=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],o=t("rotate-ccw",c);export{o as R};
@@ -1 +1 @@
1
- import{j as t,f as n}from"./dashboard-DQTxcZiM.js";function m({className:e,...s}){return t.jsx("div",{className:n("animate-pulse rounded-md bg-muted/50",e),...s})}export{m as S};
1
+ import{j as t,f as n}from"./dashboard-IvQrNmru.js";function m({className:e,...s}){return t.jsx("div",{className:n("animate-pulse rounded-md bg-muted/50",e),...s})}export{m as S};
@@ -1 +1 @@
1
- import{c}from"./dashboard-DQTxcZiM.js";const e=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],r=c("network",e);const t=[["path",{d:"m10.586 5.414-5.172 5.172",key:"4mc350"}],["path",{d:"m18.586 13.414-5.172 5.172",key:"8c96vv"}],["path",{d:"M6 12h12",key:"8npq4p"}],["circle",{cx:"12",cy:"20",r:"2",key:"144qzu"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}],["circle",{cx:"20",cy:"12",r:"2",key:"1xzzfp"}],["circle",{cx:"4",cy:"12",r:"2",key:"1hvhnz"}]],h=c("waypoints",t);export{r as N,h as W};
1
+ import{c}from"./dashboard-IvQrNmru.js";const e=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],r=c("network",e);const t=[["path",{d:"m10.586 5.414-5.172 5.172",key:"4mc350"}],["path",{d:"m18.586 13.414-5.172 5.172",key:"8c96vv"}],["path",{d:"M6 12h12",key:"8npq4p"}],["circle",{cx:"12",cy:"20",r:"2",key:"144qzu"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}],["circle",{cx:"20",cy:"12",r:"2",key:"1xzzfp"}],["circle",{cx:"4",cy:"12",r:"2",key:"1hvhnz"}]],h=c("waypoints",t);export{r as N,h as W};
@@ -1 +1 @@
1
- import{r as t,j as s,f as w}from"./dashboard-DQTxcZiM.js";const y=t.createContext(null);function P(){const e=t.useContext(y);if(!e)throw new Error("useWorkspaceLayout must be used inside TwoPaneLayout");return e}const g="(max-width: 767px)",v={gridTemplateColumns:"210px minmax(0, 1fr)"};function j(e){return e==="context"?"main":e}function C(e){if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};const a=window.matchMedia(g);return a.addEventListener("change",e),()=>a.removeEventListener("change",e)}function R(){return typeof window>"u"||typeof window.matchMedia!="function"?"split":window.matchMedia(g).matches?"stack":"split"}function L(){return"split"}function M(e){const a=t.useSyncExternalStore(C,R,L);return e==="auto"?a:e}function N({resolvedMode:e,history:a,resolvePane:l}){const[f,m]=t.useState("list"),c=t.useRef(null),b=t.useRef(null),i=t.useRef(null),r=t.useRef(null),u=t.useMemo(()=>({list:b,main:i,context:r}),[]),o=t.useCallback((n,h={})=>{const d=l?.(n)??n;m(d),e==="stack"&&(c.current=d,h.fromHistory||a?.push(d))},[a,l,e]),p=t.useCallback(()=>o("list"),[o]),x=t.useCallback(()=>o("main"),[o]),k=t.useCallback(()=>o("context"),[o]);return t.useLayoutEffect(()=>{if(e!=="stack"){c.current=null;return}const n=c.current;n&&(c.current=null,u[n].current?.focus())},[f,u,e]),t.useLayoutEffect(()=>{if(!(e!=="stack"||!a))return a.subscribe(n=>{o(n,{fromHistory:!0})})},[a,o,e]),{activePane:f,paneRefs:u,openList:p,openMain:x,openContext:k}}function S({listHeader:e,list:a,mainHeader:l,main:f,mode:m="auto",history:c,className:b}){const i=M(m),{activePane:r,paneRefs:u,openList:o,openMain:p,openContext:x}=N({resolvedMode:i,history:c,resolvePane:j}),k=t.useMemo(()=>({mode:i,activePane:r,openList:o,openMain:p,openContext:x}),[r,x,o,p,i]),n=i==="stack",h=n&&r!=="list",d=n&&r!=="main";return s.jsx(y.Provider,{value:k,children:s.jsx("section",{className:w("flex min-h-0 flex-1 flex-col bg-background",b),"data-workspace-layout":"two-pane","data-workspace-mode":i,children:s.jsxs("div",{className:w("grid min-h-0 flex-1",n?"grid-cols-1":null),style:n?void 0:v,"data-workspace-layout-mode":m,"data-workspace-active-pane":r,children:[s.jsxs("aside",{ref:u.list,className:w("min-h-0 flex-col overflow-hidden bg-layout-list-item @container",h?"hidden":"flex",n?"border-r-0":"border-r border-border"),"data-testid":"workspace-list-pane","data-workspace-pane":"list",hidden:h,tabIndex:n?-1:void 0,children:[s.jsx("header",{className:"h-12 shrink-0 border-b border-border bg-layout-list-header","data-workspace-list-header":"true",children:e}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:a})]}),s.jsxs("main",{ref:u.main,className:w("min-h-0 flex-col overflow-hidden bg-layout-content @container",d?"hidden":"flex"),"data-testid":"workspace-main-pane","data-workspace-pane":"main",hidden:d,tabIndex:n?-1:void 0,children:[s.jsx("header",{className:"h-12 shrink-0 border-b border-border bg-layout-content","data-workspace-main-header":"true",children:l}),s.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[n?s.jsx("button",{type:"button",className:"inline-flex items-center px-4 py-3 text-sm text-muted-foreground hover:text-foreground",onClick:o,children:"返回列表"}):null,f]})]})]})})})}export{S as T,y as W,P as u};
1
+ import{r as t,j as s,f as w}from"./dashboard-IvQrNmru.js";const y=t.createContext(null);function P(){const e=t.useContext(y);if(!e)throw new Error("useWorkspaceLayout must be used inside TwoPaneLayout");return e}const g="(max-width: 767px)",v={gridTemplateColumns:"210px minmax(0, 1fr)"};function j(e){return e==="context"?"main":e}function C(e){if(typeof window>"u"||typeof window.matchMedia!="function")return()=>{};const a=window.matchMedia(g);return a.addEventListener("change",e),()=>a.removeEventListener("change",e)}function R(){return typeof window>"u"||typeof window.matchMedia!="function"?"split":window.matchMedia(g).matches?"stack":"split"}function L(){return"split"}function M(e){const a=t.useSyncExternalStore(C,R,L);return e==="auto"?a:e}function N({resolvedMode:e,history:a,resolvePane:l}){const[f,m]=t.useState("list"),c=t.useRef(null),b=t.useRef(null),i=t.useRef(null),r=t.useRef(null),u=t.useMemo(()=>({list:b,main:i,context:r}),[]),o=t.useCallback((n,h={})=>{const d=l?.(n)??n;m(d),e==="stack"&&(c.current=d,h.fromHistory||a?.push(d))},[a,l,e]),p=t.useCallback(()=>o("list"),[o]),x=t.useCallback(()=>o("main"),[o]),k=t.useCallback(()=>o("context"),[o]);return t.useLayoutEffect(()=>{if(e!=="stack"){c.current=null;return}const n=c.current;n&&(c.current=null,u[n].current?.focus())},[f,u,e]),t.useLayoutEffect(()=>{if(!(e!=="stack"||!a))return a.subscribe(n=>{o(n,{fromHistory:!0})})},[a,o,e]),{activePane:f,paneRefs:u,openList:p,openMain:x,openContext:k}}function S({listHeader:e,list:a,mainHeader:l,main:f,mode:m="auto",history:c,className:b}){const i=M(m),{activePane:r,paneRefs:u,openList:o,openMain:p,openContext:x}=N({resolvedMode:i,history:c,resolvePane:j}),k=t.useMemo(()=>({mode:i,activePane:r,openList:o,openMain:p,openContext:x}),[r,x,o,p,i]),n=i==="stack",h=n&&r!=="list",d=n&&r!=="main";return s.jsx(y.Provider,{value:k,children:s.jsx("section",{className:w("flex min-h-0 flex-1 flex-col bg-background",b),"data-workspace-layout":"two-pane","data-workspace-mode":i,children:s.jsxs("div",{className:w("grid min-h-0 flex-1",n?"grid-cols-1":null),style:n?void 0:v,"data-workspace-layout-mode":m,"data-workspace-active-pane":r,children:[s.jsxs("aside",{ref:u.list,className:w("min-h-0 flex-col overflow-hidden bg-layout-list-item @container",h?"hidden":"flex",n?"border-r-0":"border-r border-border"),"data-testid":"workspace-list-pane","data-workspace-pane":"list",hidden:h,tabIndex:n?-1:void 0,children:[s.jsx("header",{className:"h-12 shrink-0 border-b border-border bg-layout-list-header","data-workspace-list-header":"true",children:e}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:a})]}),s.jsxs("main",{ref:u.main,className:w("min-h-0 flex-col overflow-hidden bg-layout-content @container",d?"hidden":"flex"),"data-testid":"workspace-main-pane","data-workspace-pane":"main",hidden:d,tabIndex:n?-1:void 0,children:[s.jsx("header",{className:"h-12 shrink-0 border-b border-border bg-layout-content","data-workspace-main-header":"true",children:l}),s.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[n?s.jsx("button",{type:"button",className:"inline-flex items-center px-4 py-3 text-sm text-muted-foreground hover:text-foreground",onClick:o,children:"返回列表"}):null,f]})]})]})})})}export{S as T,y as W,P as u};
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <script src="/dashboard/theme-init.js"></script>
7
7
  <title>Xpod Dashboard</title>
8
- <script type="module" crossorigin src="/dashboard/assets/dashboard-DQTxcZiM.js"></script>
9
- <link rel="stylesheet" crossorigin href="/dashboard/assets/dashboard-yyFdkaKq.css">
8
+ <script type="module" crossorigin src="/dashboard/assets/dashboard-IvQrNmru.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/dashboard/assets/dashboard-01yz-UDU.css">
10
10
  </head>
11
11
  <body class="bg-background text-foreground">
12
12
  <div id="root"></div>
@@ -0,0 +1,14 @@
1
+ {
2
+ "@context": "https://www.w3.org/ns/solid/oidc-context.jsonld",
3
+ "client_id": "https://id.undefineds.co/app/xpod-desktop-client.json",
4
+ "client_name": "Xpod Desktop",
5
+ "application_type": "native",
6
+ "redirect_uris": [
7
+ "http://127.0.0.1/auth/callback",
8
+ "http://[::1]/auth/callback",
9
+ "http://localhost/auth/callback"
10
+ ],
11
+ "response_types": ["code"],
12
+ "grant_types": ["authorization_code", "refresh_token"],
13
+ "token_endpoint_auth_method": "none"
14
+ }
@@ -1 +1 @@
1
- import{u as N,r as n,j as T,h as U}from"./settings-B_NbAVC_.js";import{c as J}from"./ai-connections-Bm52UO7Y.js";async function B(t){return x(t(p("/api/ai/config"),{method:"GET",credentials:"include",headers:{accept:"application/json"}}))}async function F(t,e){return x(t(p("/api/ai/config"),{method:"PATCH",credentials:"include",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(e)}))}async function V(t,e){const o=await t(p("/api/ai/config/rebuild"),{method:"POST",credentials:"include",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({target:e})}),r=await o.json().catch(()=>{});if(!o.ok||!r?.job)throw new Error(r?.error??"Index rebuild request failed");return r.job}async function K(t,e){const o=e.capabilities.some(c=>c.toLowerCase()==="embedding"),r=await t(p(o?"/v1/embeddings":"/v1/chat/completions"),{method:"POST",credentials:"include",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(o?{model:e.id,input:"xpod readiness probe"}:{model:e.id,messages:[{role:"user",content:"Reply OK."}],max_tokens:1,stream:!1})});if(!r.ok){const c=await r.json().catch(()=>{}),d=typeof c?.error=="string"?c.error:c?.error?.message;throw new Error(d??"Model readiness probe failed")}await r.arrayBuffer()}function p(t){if(typeof window>"u")throw new Error("AI Config API requires the current browser origin");return new URL(t,window.location.origin).toString()}async function x(t){const e=await t,o=await e.json().catch(()=>{});if(!e.ok||!o?.config||!o.capabilities)throw new Error(o?.error??"AI Config request failed");return o}const E=n.createContext(void 0);function _({children:t}){const e=N(),[o,r]=n.useState(),[c,d]=n.useState(),[b,P]=n.useState([]),[h,g]=n.useState(),[k,w]=n.useState(!0),[y,m]=n.useState(!1),[C,v]=n.useState(!1),[S,l]=n.useState(),[R,I]=n.useState(0),q=!!(e.webId&&e.currentPod);n.useEffect(()=>{if(!e.webId||!e.currentPod)return;let a=!1;return queueMicrotask(()=>{if(a||!e.webId||!e.currentPod)return;w(!0),l(void 0);const i=J({webId:e.webId,podUrl:e.currentPod.podUrl,authenticatedFetch:e.fetch});Promise.all([B(e.fetch),i.listModels().catch(()=>[])]).then(([s,L])=>{a||(r(s.config),d(s.capabilities),g(s.lifecycle),P(X(L)))}).catch(s=>{a||l(s instanceof Error?s.message:String(s))}).finally(()=>{a||w(!1)})}),()=>{a=!0}},[R,e.currentPod,e.fetch,e.webId]);const A=n.useCallback(()=>{I(a=>a+1)},[]),u=n.useCallback(async a=>{m(!0),l(void 0);try{const i=await F(e.fetch,a);r(i.config),d(i.capabilities),g(i.lifecycle)}catch(i){throw l(i instanceof Error?i.message:String(i)),i}finally{m(!1)}},[e.fetch]),f=n.useCallback(async a=>{v(!0),l(void 0);try{const i=await V(e.fetch,a);g(s=>({configurationVersion:s?.configurationVersion,pending:(s?.pending??0)+1,recent:[i,...s?.recent??[]].slice(0,20)}))}catch(i){throw l(i instanceof Error?i.message:String(i)),i}finally{v(!1)}},[e.fetch]),j=n.useCallback(async(a,i)=>{await u(a),await f(i)},[f,u]),M=q?k:!1,O=n.useMemo(()=>({config:o,capabilities:c,lifecycle:h,models:b,loading:M,saving:y,rebuilding:C,error:S,reload:A,save:u,rebuild:f,saveAndRebuild:j}),[c,o,M,S,h,b,f,C,A,u,j,y]);return T.jsx(E.Provider,{value:O,children:t})}function X(t){return t.map(e=>({id:e.id,displayName:e.displayName,owner:e.provider,ref:U(e.provider,e.id),capabilities:e.capabilities??[]}))}function z(t,e){const r={chatModel:["chat"],ocrModel:["ocr"],readerModel:["document-understanding","documentunderstanding"],embeddingModel:["embedding"],indexerModel:["indexing"],rerankerModel:["reranking","reranker"]}[e];return r?t.filter(c=>c.capabilities.some(d=>r.includes(d.toLowerCase()))):t}function D(){const t=n.useContext(E);if(!t)throw new Error("useAiConfig must be used within AiConfigProvider");return t}export{_ as A,z as m,K as t,D as u};
1
+ import{u as N,r as n,j as T,h as U}from"./settings-D5VRWyx6.js";import{c as J}from"./ai-connections-Bm52UO7Y.js";async function B(t){return x(t(p("/api/ai/config"),{method:"GET",credentials:"include",headers:{accept:"application/json"}}))}async function F(t,e){return x(t(p("/api/ai/config"),{method:"PATCH",credentials:"include",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(e)}))}async function V(t,e){const o=await t(p("/api/ai/config/rebuild"),{method:"POST",credentials:"include",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify({target:e})}),r=await o.json().catch(()=>{});if(!o.ok||!r?.job)throw new Error(r?.error??"Index rebuild request failed");return r.job}async function K(t,e){const o=e.capabilities.some(c=>c.toLowerCase()==="embedding"),r=await t(p(o?"/v1/embeddings":"/v1/chat/completions"),{method:"POST",credentials:"include",headers:{accept:"application/json","content-type":"application/json"},body:JSON.stringify(o?{model:e.id,input:"xpod readiness probe"}:{model:e.id,messages:[{role:"user",content:"Reply OK."}],max_tokens:1,stream:!1})});if(!r.ok){const c=await r.json().catch(()=>{}),d=typeof c?.error=="string"?c.error:c?.error?.message;throw new Error(d??"Model readiness probe failed")}await r.arrayBuffer()}function p(t){if(typeof window>"u")throw new Error("AI Config API requires the current browser origin");return new URL(t,window.location.origin).toString()}async function x(t){const e=await t,o=await e.json().catch(()=>{});if(!e.ok||!o?.config||!o.capabilities)throw new Error(o?.error??"AI Config request failed");return o}const E=n.createContext(void 0);function _({children:t}){const e=N(),[o,r]=n.useState(),[c,d]=n.useState(),[b,P]=n.useState([]),[h,g]=n.useState(),[k,w]=n.useState(!0),[y,m]=n.useState(!1),[C,v]=n.useState(!1),[S,l]=n.useState(),[R,I]=n.useState(0),q=!!(e.webId&&e.currentPod);n.useEffect(()=>{if(!e.webId||!e.currentPod)return;let a=!1;return queueMicrotask(()=>{if(a||!e.webId||!e.currentPod)return;w(!0),l(void 0);const i=J({webId:e.webId,podUrl:e.currentPod.podUrl,authenticatedFetch:e.fetch});Promise.all([B(e.fetch),i.listModels().catch(()=>[])]).then(([s,L])=>{a||(r(s.config),d(s.capabilities),g(s.lifecycle),P(X(L)))}).catch(s=>{a||l(s instanceof Error?s.message:String(s))}).finally(()=>{a||w(!1)})}),()=>{a=!0}},[R,e.currentPod,e.fetch,e.webId]);const A=n.useCallback(()=>{I(a=>a+1)},[]),u=n.useCallback(async a=>{m(!0),l(void 0);try{const i=await F(e.fetch,a);r(i.config),d(i.capabilities),g(i.lifecycle)}catch(i){throw l(i instanceof Error?i.message:String(i)),i}finally{m(!1)}},[e.fetch]),f=n.useCallback(async a=>{v(!0),l(void 0);try{const i=await V(e.fetch,a);g(s=>({configurationVersion:s?.configurationVersion,pending:(s?.pending??0)+1,recent:[i,...s?.recent??[]].slice(0,20)}))}catch(i){throw l(i instanceof Error?i.message:String(i)),i}finally{v(!1)}},[e.fetch]),j=n.useCallback(async(a,i)=>{await u(a),await f(i)},[f,u]),M=q?k:!1,O=n.useMemo(()=>({config:o,capabilities:c,lifecycle:h,models:b,loading:M,saving:y,rebuilding:C,error:S,reload:A,save:u,rebuild:f,saveAndRebuild:j}),[c,o,M,S,h,b,f,C,A,u,j,y]);return T.jsx(E.Provider,{value:O,children:t})}function X(t){return t.map(e=>({id:e.id,displayName:e.displayName,owner:e.provider,ref:U(e.provider,e.id),capabilities:e.capabilities??[]}))}function z(t,e){const r={chatModel:["chat"],ocrModel:["ocr"],readerModel:["document-understanding","documentunderstanding"],embeddingModel:["embedding"],indexerModel:["indexing"],rerankerModel:["reranking","reranker"]}[e];return r?t.filter(c=>c.capabilities.some(d=>r.includes(d.toLowerCase()))):t}function D(){const t=n.useContext(E);if(!t)throw new Error("useAiConfig must be used within AiConfigProvider");return t}export{_ as A,z as m,K as t,D as u};
@@ -1 +1 @@
1
- import{c as d,j as e,k as x,r as p,O as g,N as f,l as y,m as b}from"./settings-B_NbAVC_.js";import{P as v}from"./PaneListHeader-Cme9dy-w.js";import{A as j,u as k}from"./AiConfigContext-B-tqFX8i.js";import{T as N,u as w}from"./workspace-layout-5fe0Mvbk.js";import"./ai-connections-Bm52UO7Y.js";const M=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],C=d("file-search",M);const A=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M7 12H3",key:"13ou7f"}],["path",{d:"M7 19H3",key:"wbqt3n"}],["path",{d:"M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14",key:"qth677"}],["path",{d:"M11 10v4h4",key:"172dkj"}]],I=d("list-restart",A);const L=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 8h8",key:"1jbsf9"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M7 16h6",key:"1vyc9m"}]],H=d("scan-text",L);const q=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],_=d("sliders-horizontal",q);function o(s,a,t,n,i){return{id:s,label:a,path:t,href:`/ai-config/${t}`,end:!0,description:n,icon:i}}const l=[o("model-assignments","Model Assignments","model-assignments","Choose the model used by each Xpod capability.",_),o("document-processing","Document Processing","document-processing","Control OCR and structured document reading.",H),o("search-indexing","Search & Indexing","search-indexing","Enable FTS, vector retrieval, and backend selection.",C),o("index-lifecycle","Index Lifecycle","index-lifecycle","Control automatic indexing and derived-index rebuilds.",I)];function W(){return e.jsx(j,{children:e.jsx(S,{})})}function S(){const s=x(),{config:a,loading:t,saving:n,error:i,reload:m}=k(),[u,c]=p.useState(!1),h=l.find(r=>s.pathname.endsWith(r.path))??l[0];return e.jsx(N,{mode:"auto",listHeader:e.jsx(v,{title:"AI Config"}),list:e.jsx(T,{}),mainHeader:e.jsx("div",{className:"flex h-full min-w-0 items-center px-4",children:e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h1",{className:"text-sm font-semibold text-foreground",children:["AI Config · ",h.label]}),e.jsx("div",{className:"truncate text-xs text-muted-foreground",children:"Pod-level AI and derived-index policy"})]})}),main:e.jsxs("section",{className:"min-h-full bg-background",children:[n&&e.jsx("div",{role:"status","aria-live":"polite",className:"border-b border-border px-6 py-2 text-xs text-muted-foreground",children:"Saving AI configuration…"}),i?e.jsx(z,{error:i,showTechnicalDetails:u,onToggleTechnicalDetails:()=>c(r=>!r),onRetry:()=>{c(!1),m()}}):t||!a?e.jsx(P,{}):e.jsx(g,{})]}),className:"min-h-full"})}function z({error:s,showTechnicalDetails:a,onToggleTechnicalDetails:t,onRetry:n}){return e.jsx("div",{className:"mx-auto w-full max-w-4xl p-6",children:e.jsxs("div",{role:"alert","aria-live":"assertive",className:"rounded-lg border border-destructive/30 bg-destructive/5 p-4",children:[e.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"AI configuration could not be loaded"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Xpod could not read this Pod’s AI settings. Your existing settings were not changed."}),e.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[e.jsx("button",{type:"button",onClick:n,className:"h-9 rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground hover:bg-primary/90",children:"Try again"}),e.jsx("button",{type:"button","aria-expanded":a,onClick:t,className:"h-9 rounded-md border border-input bg-background px-3 text-sm font-medium text-foreground hover:bg-accent",children:a?"Hide details":"Show details"})]}),a&&e.jsx("p",{className:"mt-3 break-words font-mono text-xs text-muted-foreground",children:s})]})})}function P(){return e.jsxs("div",{role:"status","aria-live":"polite",className:"mx-auto w-full max-w-4xl p-6",children:[e.jsx("div",{className:"h-7 w-52 animate-pulse rounded bg-muted"}),e.jsx("div",{className:"mt-3 h-4 w-80 max-w-full animate-pulse rounded bg-muted"}),e.jsx("div",{className:"mt-6 divide-y divide-border overflow-hidden rounded-xl border border-border",children:Array.from({length:4},(s,a)=>e.jsxs("div",{className:"grid gap-4 p-4 lg:grid-cols-[minmax(220px,1fr)_minmax(320px,440px)]",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"h-4 w-28 animate-pulse rounded bg-muted"}),e.jsx("div",{className:"h-3 w-52 animate-pulse rounded bg-muted"})]}),e.jsx("div",{className:"h-10 animate-pulse rounded-md bg-muted"})]},a))}),e.jsx("span",{className:"sr-only",children:"Loading AI configuration…"})]})}function T(){const s=w();return e.jsx("aside",{className:"h-full border-r border-border bg-muted/20 py-2",children:e.jsx("nav",{"aria-label":"AI Config sections","data-list-navigation":!0,children:l.map(a=>{const t=a.icon;return e.jsxs(f,{to:a.path,end:a.end,onClick:()=>s.openMain(),onKeyDown:y,className:({isActive:n})=>b(n,{compact:!1}),children:[e.jsx(t,{className:"mt-0.5 h-4 w-4 shrink-0","aria-hidden":"true"}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"block text-sm font-medium",children:a.label}),e.jsx("span",{className:"mt-0.5 block text-xs leading-4 text-muted-foreground",children:a.description})]})]},a.id)})})})}export{W as default};
1
+ import{c as d,j as e,k as x,r as p,O as g,N as f,l as y,m as b}from"./settings-D5VRWyx6.js";import{P as v}from"./PaneListHeader-BAS2ICPq.js";import{A as j,u as k}from"./AiConfigContext-CelxXFcQ.js";import{T as N,u as w}from"./workspace-layout-D5q3F59S.js";import"./ai-connections-Bm52UO7Y.js";const M=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],C=d("file-search",M);const A=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M7 12H3",key:"13ou7f"}],["path",{d:"M7 19H3",key:"wbqt3n"}],["path",{d:"M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14",key:"qth677"}],["path",{d:"M11 10v4h4",key:"172dkj"}]],I=d("list-restart",A);const L=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 8h8",key:"1jbsf9"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M7 16h6",key:"1vyc9m"}]],H=d("scan-text",L);const q=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],_=d("sliders-horizontal",q);function o(s,a,t,n,i){return{id:s,label:a,path:t,href:`/ai-config/${t}`,end:!0,description:n,icon:i}}const l=[o("model-assignments","Model Assignments","model-assignments","Choose the model used by each Xpod capability.",_),o("document-processing","Document Processing","document-processing","Control OCR and structured document reading.",H),o("search-indexing","Search & Indexing","search-indexing","Enable FTS, vector retrieval, and backend selection.",C),o("index-lifecycle","Index Lifecycle","index-lifecycle","Control automatic indexing and derived-index rebuilds.",I)];function W(){return e.jsx(j,{children:e.jsx(S,{})})}function S(){const s=x(),{config:a,loading:t,saving:n,error:i,reload:m}=k(),[u,c]=p.useState(!1),h=l.find(r=>s.pathname.endsWith(r.path))??l[0];return e.jsx(N,{mode:"auto",listHeader:e.jsx(v,{title:"AI Config"}),list:e.jsx(T,{}),mainHeader:e.jsx("div",{className:"flex h-full min-w-0 items-center px-4",children:e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h1",{className:"text-sm font-semibold text-foreground",children:["AI Config · ",h.label]}),e.jsx("div",{className:"truncate text-xs text-muted-foreground",children:"Pod-level AI and derived-index policy"})]})}),main:e.jsxs("section",{className:"min-h-full bg-background",children:[n&&e.jsx("div",{role:"status","aria-live":"polite",className:"border-b border-border px-6 py-2 text-xs text-muted-foreground",children:"Saving AI configuration…"}),i?e.jsx(z,{error:i,showTechnicalDetails:u,onToggleTechnicalDetails:()=>c(r=>!r),onRetry:()=>{c(!1),m()}}):t||!a?e.jsx(P,{}):e.jsx(g,{})]}),className:"min-h-full"})}function z({error:s,showTechnicalDetails:a,onToggleTechnicalDetails:t,onRetry:n}){return e.jsx("div",{className:"mx-auto w-full max-w-4xl p-6",children:e.jsxs("div",{role:"alert","aria-live":"assertive",className:"rounded-lg border border-destructive/30 bg-destructive/5 p-4",children:[e.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"AI configuration could not be loaded"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Xpod could not read this Pod’s AI settings. Your existing settings were not changed."}),e.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[e.jsx("button",{type:"button",onClick:n,className:"h-9 rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground hover:bg-primary/90",children:"Try again"}),e.jsx("button",{type:"button","aria-expanded":a,onClick:t,className:"h-9 rounded-md border border-input bg-background px-3 text-sm font-medium text-foreground hover:bg-accent",children:a?"Hide details":"Show details"})]}),a&&e.jsx("p",{className:"mt-3 break-words font-mono text-xs text-muted-foreground",children:s})]})})}function P(){return e.jsxs("div",{role:"status","aria-live":"polite",className:"mx-auto w-full max-w-4xl p-6",children:[e.jsx("div",{className:"h-7 w-52 animate-pulse rounded bg-muted"}),e.jsx("div",{className:"mt-3 h-4 w-80 max-w-full animate-pulse rounded bg-muted"}),e.jsx("div",{className:"mt-6 divide-y divide-border overflow-hidden rounded-xl border border-border",children:Array.from({length:4},(s,a)=>e.jsxs("div",{className:"grid gap-4 p-4 lg:grid-cols-[minmax(220px,1fr)_minmax(320px,440px)]",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"h-4 w-28 animate-pulse rounded bg-muted"}),e.jsx("div",{className:"h-3 w-52 animate-pulse rounded bg-muted"})]}),e.jsx("div",{className:"h-10 animate-pulse rounded-md bg-muted"})]},a))}),e.jsx("span",{className:"sr-only",children:"Loading AI configuration…"})]})}function T(){const s=w();return e.jsx("aside",{className:"h-full border-r border-border bg-muted/20 py-2",children:e.jsx("nav",{"aria-label":"AI Config sections","data-list-navigation":!0,children:l.map(a=>{const t=a.icon;return e.jsxs(f,{to:a.path,end:a.end,onClick:()=>s.openMain(),onKeyDown:y,className:({isActive:n})=>b(n,{compact:!1}),children:[e.jsx(t,{className:"mt-0.5 h-4 w-4 shrink-0","aria-hidden":"true"}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"block text-sm font-medium",children:a.label}),e.jsx("span",{className:"mt-0.5 block text-xs leading-4 text-muted-foreground",children:a.description})]})]},a.id)})})})}export{W as default};
@@ -1 +1 @@
1
- import{r as u,j as a}from"./settings-B_NbAVC_.js";import{i as g,A as x}from"./ModelAssignmentsPanel-4tMp-t3N.js";import{u as p}from"./AiConfigContext-B-tqFX8i.js";import"./ai-connections-Bm52UO7Y.js";function C(){const{config:s,save:o,saving:t}=p(),[e,r]=u.useState(s?.documentProcessing);if(u.useEffect(()=>{let n=!1;return queueMicrotask(()=>{n||r(s?.documentProcessing)}),()=>{n=!0}},[s]),!e)return null;const l=g(e,s?.documentProcessing),b=async n=>{n.preventDefault(),await o({documentProcessing:e})};return a.jsx(x,{title:"Document Processing",description:"Control when Xpod invokes OCR and structured document readers.",onSubmit:b,onRestore:()=>o({documentProcessing:{ocrEnabled:!0,automaticOcr:!0,imageRecognition:!0,pdfRecognition:!0,tableRecognition:!1,processingMode:"auto",ocrFallbackOrder:["ocr","reader","plain-text"],readerPolicy:"auto",readerPriority:"structure-first",maxFileSizeMb:64,maxPages:500,failureFallback:"plain-text"}}),saving:t,dirty:l,children:a.jsxs("div",{className:"space-y-4 rounded-xl border border-border p-4",children:[a.jsx(i,{label:"Enable OCR",description:"Read text from images and scanned documents.",checked:e.ocrEnabled,onChange:n=>r({...e,ocrEnabled:n})}),a.jsx(i,{label:"Automatic OCR",description:"Run OCR when indexed content has no usable text layer.",checked:e.automaticOcr,onChange:n=>r({...e,automaticOcr:n})}),a.jsx(i,{label:"Image recognition",description:"Allow OCR and readers to process image resources.",checked:e.imageRecognition,onChange:n=>r({...e,imageRecognition:n})}),a.jsx(i,{label:"PDF recognition",description:"Process native and scanned PDF resources.",checked:e.pdfRecognition,onChange:n=>r({...e,pdfRecognition:n})}),a.jsx(i,{label:"Table recognition",description:"Preserve detected table structure when the reader supports it.",checked:e.tableRecognition,onChange:n=>r({...e,tableRecognition:n})}),a.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Processing mode",a.jsxs("select",{name:"processingMode",value:e.processingMode,onChange:n=>r({...e,processingMode:n.target.value}),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm sm:max-w-xs",children:[a.jsx("option",{value:"auto",children:"Auto"}),a.jsx("option",{value:"on-demand",children:"On demand"})]})]}),a.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["OCR fallback order",a.jsx("input",{value:e.ocrFallbackOrder.join(", "),onChange:n=>r({...e,ocrFallbackOrder:n.target.value.split(",").map(c=>c.trim()).filter(c=>["ocr","reader","plain-text"].includes(c))}),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm"})]}),a.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[a.jsx(d,{label:"Reader policy",value:e.readerPolicy,options:["auto","always","disabled"],onChange:n=>r({...e,readerPolicy:n})}),a.jsx(d,{label:"Reader priority",value:e.readerPriority,options:["structure-first","speed-first"],onChange:n=>r({...e,readerPriority:n})}),a.jsx(m,{label:"Maximum file size (MB)",value:e.maxFileSizeMb,min:1,max:1024,onChange:n=>r({...e,maxFileSizeMb:n})}),a.jsx(m,{label:"Maximum pages",value:e.maxPages,min:1,max:1e4,onChange:n=>r({...e,maxPages:n})}),a.jsx(d,{label:"Failure fallback",value:e.failureFallback,options:["plain-text","skip"],onChange:n=>r({...e,failureFallback:n})})]})]})})}function d({label:s,value:o,options:t,onChange:e}){return a.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[s,a.jsx("select",{value:o,onChange:r=>e(r.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm",children:t.map(r=>a.jsx("option",{value:r,children:r},r))})]})}function m({label:s,value:o,min:t,max:e,onChange:r}){return a.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[s,a.jsx("input",{type:"number",value:o,min:t,max:e,onChange:l=>r(l.target.valueAsNumber),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm"})]})}function i({label:s,description:o,checked:t,onChange:e}){return a.jsxs("label",{className:"flex items-start justify-between gap-4",children:[a.jsxs("span",{children:[a.jsx("span",{className:"block text-sm font-medium",children:s}),a.jsx("span",{className:"block text-xs text-muted-foreground",children:o})]}),a.jsx("input",{type:"checkbox",checked:t,onChange:r=>e(r.target.checked),className:"mt-1 h-4 w-4 rounded border-input"})]})}export{C as DocumentProcessingPanel};
1
+ import{r as u,j as a}from"./settings-D5VRWyx6.js";import{i as g,A as x}from"./ModelAssignmentsPanel-BAdT4UR0.js";import{u as p}from"./AiConfigContext-CelxXFcQ.js";import"./ai-connections-Bm52UO7Y.js";function C(){const{config:s,save:o,saving:t}=p(),[e,r]=u.useState(s?.documentProcessing);if(u.useEffect(()=>{let n=!1;return queueMicrotask(()=>{n||r(s?.documentProcessing)}),()=>{n=!0}},[s]),!e)return null;const l=g(e,s?.documentProcessing),b=async n=>{n.preventDefault(),await o({documentProcessing:e})};return a.jsx(x,{title:"Document Processing",description:"Control when Xpod invokes OCR and structured document readers.",onSubmit:b,onRestore:()=>o({documentProcessing:{ocrEnabled:!0,automaticOcr:!0,imageRecognition:!0,pdfRecognition:!0,tableRecognition:!1,processingMode:"auto",ocrFallbackOrder:["ocr","reader","plain-text"],readerPolicy:"auto",readerPriority:"structure-first",maxFileSizeMb:64,maxPages:500,failureFallback:"plain-text"}}),saving:t,dirty:l,children:a.jsxs("div",{className:"space-y-4 rounded-xl border border-border p-4",children:[a.jsx(i,{label:"Enable OCR",description:"Read text from images and scanned documents.",checked:e.ocrEnabled,onChange:n=>r({...e,ocrEnabled:n})}),a.jsx(i,{label:"Automatic OCR",description:"Run OCR when indexed content has no usable text layer.",checked:e.automaticOcr,onChange:n=>r({...e,automaticOcr:n})}),a.jsx(i,{label:"Image recognition",description:"Allow OCR and readers to process image resources.",checked:e.imageRecognition,onChange:n=>r({...e,imageRecognition:n})}),a.jsx(i,{label:"PDF recognition",description:"Process native and scanned PDF resources.",checked:e.pdfRecognition,onChange:n=>r({...e,pdfRecognition:n})}),a.jsx(i,{label:"Table recognition",description:"Preserve detected table structure when the reader supports it.",checked:e.tableRecognition,onChange:n=>r({...e,tableRecognition:n})}),a.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["Processing mode",a.jsxs("select",{name:"processingMode",value:e.processingMode,onChange:n=>r({...e,processingMode:n.target.value}),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm sm:max-w-xs",children:[a.jsx("option",{value:"auto",children:"Auto"}),a.jsx("option",{value:"on-demand",children:"On demand"})]})]}),a.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:["OCR fallback order",a.jsx("input",{value:e.ocrFallbackOrder.join(", "),onChange:n=>r({...e,ocrFallbackOrder:n.target.value.split(",").map(c=>c.trim()).filter(c=>["ocr","reader","plain-text"].includes(c))}),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm"})]}),a.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[a.jsx(d,{label:"Reader policy",value:e.readerPolicy,options:["auto","always","disabled"],onChange:n=>r({...e,readerPolicy:n})}),a.jsx(d,{label:"Reader priority",value:e.readerPriority,options:["structure-first","speed-first"],onChange:n=>r({...e,readerPriority:n})}),a.jsx(m,{label:"Maximum file size (MB)",value:e.maxFileSizeMb,min:1,max:1024,onChange:n=>r({...e,maxFileSizeMb:n})}),a.jsx(m,{label:"Maximum pages",value:e.maxPages,min:1,max:1e4,onChange:n=>r({...e,maxPages:n})}),a.jsx(d,{label:"Failure fallback",value:e.failureFallback,options:["plain-text","skip"],onChange:n=>r({...e,failureFallback:n})})]})]})})}function d({label:s,value:o,options:t,onChange:e}){return a.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[s,a.jsx("select",{value:o,onChange:r=>e(r.target.value),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm",children:t.map(r=>a.jsx("option",{value:r,children:r},r))})]})}function m({label:s,value:o,min:t,max:e,onChange:r}){return a.jsxs("label",{className:"block space-y-2 text-sm font-medium",children:[s,a.jsx("input",{type:"number",value:o,min:t,max:e,onChange:l=>r(l.target.valueAsNumber),className:"block h-10 w-full rounded-md border border-input bg-background px-3 text-sm"})]})}function i({label:s,description:o,checked:t,onChange:e}){return a.jsxs("label",{className:"flex items-start justify-between gap-4",children:[a.jsxs("span",{children:[a.jsx("span",{className:"block text-sm font-medium",children:s}),a.jsx("span",{className:"block text-xs text-muted-foreground",children:o})]}),a.jsx("input",{type:"checkbox",checked:t,onChange:r=>e(r.target.checked),className:"mt-1 h-4 w-4 rounded border-input"})]})}export{C as DocumentProcessingPanel};
@@ -1 +1 @@
1
- import{r as l,j as e}from"./settings-B_NbAVC_.js";import{i as h,A as b}from"./ModelAssignmentsPanel-4tMp-t3N.js";import{u as g}from"./AiConfigContext-B-tqFX8i.js";import"./ai-connections-Bm52UO7Y.js";function k(){const{config:s,capabilities:i,lifecycle:d,save:n,rebuild:u,saving:m,rebuilding:x}=g(),[r,a]=l.useState(s?.lifecycle);if(l.useEffect(()=>{let t=!1;return queueMicrotask(()=>{t||a(s?.lifecycle)}),()=>{t=!0}},[s]),!r)return null;const f=h(r,s?.lifecycle),p=async t=>{t.preventDefault(),await n({lifecycle:r})};return e.jsxs(b,{title:"Index Lifecycle",description:"Control automatic maintenance and explicitly schedule rebuilds of derived data.",onSubmit:p,onRestore:()=>n({lifecycle:{automaticIndexing:!0,refreshAfterSourceUpdate:!0,removeAfterSourceDeletion:!0}}),saving:m,dirty:f,children:[e.jsxs("div",{className:"divide-y divide-border rounded-xl border border-border",children:[e.jsxs("label",{className:"flex items-start justify-between gap-4 p-4",children:[e.jsxs("span",{children:[e.jsx("span",{className:"block text-sm font-medium",children:"Automatically index changes"}),e.jsx("span",{className:"block text-xs text-muted-foreground",children:"Index new and updated resources, and remove derived entries after deletion."})]}),e.jsx("input",{name:"automaticIndexing",type:"checkbox",checked:r.automaticIndexing,onChange:t=>a({...r,automaticIndexing:t.target.checked}),className:"mt-1 h-4 w-4 rounded border-input"})]}),e.jsx(c,{label:"Refresh after source updates",checked:r.refreshAfterSourceUpdate,onChange:t=>a({...r,refreshAfterSourceUpdate:t})}),e.jsx(c,{label:"Remove derived entries after source deletion",checked:r.removeAfterSourceDeletion,onChange:t=>a({...r,removeAfterSourceDeletion:t})})]}),e.jsxs("section",{className:"rounded-xl border border-border p-4",children:[e.jsx("h2",{className:"text-sm font-medium",children:"Rebuild derived indexes"}),e.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"Rebuild actions never modify authority data in the Pod."}),e.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["fts","vector","all"].map(t=>e.jsxs("button",{type:"button",disabled:!i?.rebuildTargets?.includes(t)||x,onClick:()=>u(t),className:"h-9 rounded-md border border-input px-3 text-sm font-medium disabled:opacity-50",children:["Rebuild ",t==="all"?"all":t.toUpperCase()]},t))})]}),e.jsxs("section",{className:"rounded-xl border border-border p-4",children:[e.jsx("h2",{className:"text-sm font-medium",children:"Lifecycle evidence"}),e.jsxs("div",{className:"mt-3 grid gap-3 sm:grid-cols-2",children:[e.jsx(o,{label:"Configuration version",value:d?.configurationVersion??s?.updatedAt??"Default"}),e.jsx(o,{label:"Pending queue",value:String(d?.pending??0)})]}),e.jsx("div",{className:"mt-4 space-y-2",children:d?.recent.length?d.recent.map(t=>e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border p-3 text-sm",children:[e.jsxs("span",{children:[t.target.toUpperCase()," · ",t.status]}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:[t.progress??0,"% · ",new Date(t.createdAt).toLocaleString()]}),t.error?e.jsx("span",{className:"w-full text-xs text-destructive",children:t.error}):null]},t.id)):e.jsx("p",{className:"text-sm text-muted-foreground",children:"No rebuild jobs have been scheduled."})})]})]})}function c({label:s,checked:i,onChange:d}){return e.jsxs("label",{className:"flex items-start justify-between gap-4 p-4",children:[e.jsx("span",{className:"text-sm font-medium",children:s}),e.jsx("input",{type:"checkbox",checked:i,onChange:n=>d(n.target.checked),className:"mt-1 h-4 w-4 rounded border-input"})]})}function o({label:s,value:i}){return e.jsxs("div",{className:"rounded-md border border-border p-3",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:s}),e.jsx("div",{className:"mt-1 text-sm font-medium",children:i})]})}export{k as IndexLifecyclePanel};
1
+ import{r as l,j as e}from"./settings-D5VRWyx6.js";import{i as h,A as b}from"./ModelAssignmentsPanel-BAdT4UR0.js";import{u as g}from"./AiConfigContext-CelxXFcQ.js";import"./ai-connections-Bm52UO7Y.js";function k(){const{config:s,capabilities:i,lifecycle:d,save:n,rebuild:u,saving:m,rebuilding:x}=g(),[r,a]=l.useState(s?.lifecycle);if(l.useEffect(()=>{let t=!1;return queueMicrotask(()=>{t||a(s?.lifecycle)}),()=>{t=!0}},[s]),!r)return null;const f=h(r,s?.lifecycle),p=async t=>{t.preventDefault(),await n({lifecycle:r})};return e.jsxs(b,{title:"Index Lifecycle",description:"Control automatic maintenance and explicitly schedule rebuilds of derived data.",onSubmit:p,onRestore:()=>n({lifecycle:{automaticIndexing:!0,refreshAfterSourceUpdate:!0,removeAfterSourceDeletion:!0}}),saving:m,dirty:f,children:[e.jsxs("div",{className:"divide-y divide-border rounded-xl border border-border",children:[e.jsxs("label",{className:"flex items-start justify-between gap-4 p-4",children:[e.jsxs("span",{children:[e.jsx("span",{className:"block text-sm font-medium",children:"Automatically index changes"}),e.jsx("span",{className:"block text-xs text-muted-foreground",children:"Index new and updated resources, and remove derived entries after deletion."})]}),e.jsx("input",{name:"automaticIndexing",type:"checkbox",checked:r.automaticIndexing,onChange:t=>a({...r,automaticIndexing:t.target.checked}),className:"mt-1 h-4 w-4 rounded border-input"})]}),e.jsx(c,{label:"Refresh after source updates",checked:r.refreshAfterSourceUpdate,onChange:t=>a({...r,refreshAfterSourceUpdate:t})}),e.jsx(c,{label:"Remove derived entries after source deletion",checked:r.removeAfterSourceDeletion,onChange:t=>a({...r,removeAfterSourceDeletion:t})})]}),e.jsxs("section",{className:"rounded-xl border border-border p-4",children:[e.jsx("h2",{className:"text-sm font-medium",children:"Rebuild derived indexes"}),e.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"Rebuild actions never modify authority data in the Pod."}),e.jsx("div",{className:"mt-4 flex flex-wrap gap-2",children:["fts","vector","all"].map(t=>e.jsxs("button",{type:"button",disabled:!i?.rebuildTargets?.includes(t)||x,onClick:()=>u(t),className:"h-9 rounded-md border border-input px-3 text-sm font-medium disabled:opacity-50",children:["Rebuild ",t==="all"?"all":t.toUpperCase()]},t))})]}),e.jsxs("section",{className:"rounded-xl border border-border p-4",children:[e.jsx("h2",{className:"text-sm font-medium",children:"Lifecycle evidence"}),e.jsxs("div",{className:"mt-3 grid gap-3 sm:grid-cols-2",children:[e.jsx(o,{label:"Configuration version",value:d?.configurationVersion??s?.updatedAt??"Default"}),e.jsx(o,{label:"Pending queue",value:String(d?.pending??0)})]}),e.jsx("div",{className:"mt-4 space-y-2",children:d?.recent.length?d.recent.map(t=>e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border p-3 text-sm",children:[e.jsxs("span",{children:[t.target.toUpperCase()," · ",t.status]}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:[t.progress??0,"% · ",new Date(t.createdAt).toLocaleString()]}),t.error?e.jsx("span",{className:"w-full text-xs text-destructive",children:t.error}):null]},t.id)):e.jsx("p",{className:"text-sm text-muted-foreground",children:"No rebuild jobs have been scheduled."})})]})]})}function c({label:s,checked:i,onChange:d}){return e.jsxs("label",{className:"flex items-start justify-between gap-4 p-4",children:[e.jsx("span",{className:"text-sm font-medium",children:s}),e.jsx("input",{type:"checkbox",checked:i,onChange:n=>d(n.target.checked),className:"mt-1 h-4 w-4 rounded border-input"})]})}function o({label:s,value:i}){return e.jsxs("div",{className:"rounded-md border border-border p-3",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:s}),e.jsx("div",{className:"mt-1 text-sm font-medium",children:i})]})}export{k as IndexLifecyclePanel};
@@ -1 +1 @@
1
- import{r as l,j as e,B as g,R as j,C as p,a as y,b,d as S,e as N}from"./settings-B_NbAVC_.js";import{g as C}from"./admin-BU4m6Ko2.js";import{S as m}from"./skeleton-0nvLWr59.js";function F({kind:r}){const[s,n]=l.useState(null),[d,t]=l.useState(!1),i=l.useCallback(async()=>{t(!0);try{n(await C())}finally{t(!1)}},[]);return l.useEffect(()=>{let c=!0;return Promise.resolve().then(()=>{c&&i()}),()=>{c=!1}},[i]),e.jsxs("div",{className:"space-y-4 p-6",children:[e.jsx("div",{className:"flex justify-end",children:e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:i,disabled:d,children:[e.jsx(j,{className:"mr-2 h-4 w-4"}),"Refresh"]})}),e.jsx("div",{role:"status","aria-live":"polite",className:"sr-only",children:d?"Refreshing index evidence…":s?"Index evidence refreshed.":"Waiting for index evidence."}),e.jsxs(p,{children:[e.jsxs(y,{children:[e.jsx(b,{children:w[r]}),e.jsx(S,{children:"Observed derived-index state; policy changes belong in AI Config."})]}),e.jsx(N,{children:d&&!s?e.jsx(B,{}):R(r,s)})]})]})}const w={overview:"Index Overview",fts:"FTS",vector:"Vector","retrieval-points":"Retrieval Points",cache:"Cache","slow-queries":"Slow Queries",benchmark:"Benchmark"};function R(r,s){if(!s)return e.jsx("p",{className:"text-sm text-muted-foreground",children:"Waiting for runtime evidence."});if(r==="benchmark"){const t=s.benchmarkReports;return e.jsx(a,{values:[["Reports",String(t?.reportCount??0)],["Skipped files",String(t?.skippedFiles??0)],["Errors",String(t?.errors.length??0)]]})}if(!s.available)return e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Unavailable: ",s.reason]});if(r==="overview"){const t=s.stats.lifecycle;return e.jsxs("div",{className:"space-y-4",children:[e.jsx(a,{values:[["Engine",s.engine],["State",v(t?.status)],["Authority data",o(s.stats.factsBytes)],["Derived storage",o(s.stats.derivedBytes)],["Total storage",o(s.stats.totalBytes)],["Generated",f(s.generatedAt)]]}),e.jsx(x,{children:"Derived indexes are rebuildable runtime evidence; Pod RDF remains the authority data."})]})}if(r==="cache"){const t=s.stats.derivedCache;return t?e.jsx(a,{values:[["Cache bytes",o(t.cacheBytes)],["Limit",o(t.maxCacheBytes)],["Pressure",`${Math.round(t.cachePressure*100)}%`],["Evictions",String(t.evictionCount)]]}):e.jsx(u,{})}if(r==="slow-queries"){const t=s.stats.slowQueries;return t?e.jsxs("div",{className:"space-y-2",children:[e.jsx(a,{values:[["Captured",String(t.entryCount)],["Limit",String(t.maxEntries)]]}),t.entries.slice(0,10).map(i=>e.jsxs("div",{className:"rounded-lg border border-border p-3 text-sm",children:[e.jsxs("div",{className:"font-medium",children:[i.runtime.durationMs," ms · ",i.runtime.returnedRows," rows"]}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:i.reasons.join(", ")||i.queryKey})]},`${i.generatedAt}-${i.queryKey}`))]}):e.jsx(u,{})}if(r==="retrieval-points"){const t=s.stats.rdf3x;return t?e.jsx(a,{values:[["State",t.syncedWithFacts?"Synchronized":`${t.refreshLag} versions behind`],["Facts version",String(t.factsDataVersion)],["Retrieval version",String(t.rdf3xFactsDataVersion)],["Pending sources",String(t.pendingSources)]]}):e.jsx(u,{})}const n=s.stats.lifecycle,d=r==="fts"?n?.coldStart?.ownsTextIndex:n?.coldStart?.ownsVectorIndex;if((r==="fts"||r==="vector")&&d){const t=s.stats.pgAcceleration,i=s.stats.rdf3x;return e.jsxs("div",{className:"space-y-4",children:[e.jsx(a,{values:[["State",v(n?.status)],["Ownership","Runtime managed"],["Backend",t?.provider?`${h(t.provider)}${t.version?` ${t.version}`:""}`:n?.driver??"Not reported"],["Freshness",i?i.syncedWithFacts?"Current":`${i.refreshLag} versions behind`:"Not reported"],["Indexes",t?.customIndexes?.map(c=>c.name).join(", ")||"Runtime managed"],["Last ready",f(n?.lastReadyAt)]]}),e.jsxs(x,{children:[r==="fts"?"Text retrieval":"Vector retrieval"," is derived from Pod authority data. Enablement and backend policy are configured in AI Config."]})]})}return e.jsx(u,{})}function a({values:r}){return e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:r.map(([s,n])=>e.jsxs("div",{className:"rounded-lg border border-border p-3",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:s}),e.jsx("div",{className:"mt-1 font-medium",children:n})]},s))})}function B(){return e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4","aria-hidden":"true",children:Array.from({length:4},(r,s)=>e.jsxs("div",{className:"rounded-lg border border-border p-3",children:[e.jsx(m,{className:"h-3 w-20"}),e.jsx(m,{className:"mt-2 h-5 w-28"})]},s))})}function u(){return e.jsx("p",{className:"text-sm text-muted-foreground",children:"This runtime does not report evidence for this index subject."})}function x({children:r}){return e.jsx("p",{className:"text-sm text-muted-foreground",children:r})}function o(r){return r<1024?`${r} B`:r<1024*1024?`${Math.round(r/1024)} KB`:`${(r/(1024*1024)).toFixed(1)} MB`}function f(r){return r?new Date(r).toLocaleString():"Not reported"}function v(r){return r?h(r):"Unknown"}function h(r){return r.charAt(0).toUpperCase()+r.slice(1)}export{F as default};
1
+ import{r as l,j as e,B as g,R as j,C as p,a as y,b,d as S,e as N}from"./settings-D5VRWyx6.js";import{g as C}from"./admin-BU4m6Ko2.js";import{S as m}from"./skeleton-FNabNxNE.js";function F({kind:r}){const[s,n]=l.useState(null),[d,t]=l.useState(!1),i=l.useCallback(async()=>{t(!0);try{n(await C())}finally{t(!1)}},[]);return l.useEffect(()=>{let c=!0;return Promise.resolve().then(()=>{c&&i()}),()=>{c=!1}},[i]),e.jsxs("div",{className:"space-y-4 p-6",children:[e.jsx("div",{className:"flex justify-end",children:e.jsxs(g,{type:"button",size:"sm",variant:"outline",onClick:i,disabled:d,children:[e.jsx(j,{className:"mr-2 h-4 w-4"}),"Refresh"]})}),e.jsx("div",{role:"status","aria-live":"polite",className:"sr-only",children:d?"Refreshing index evidence…":s?"Index evidence refreshed.":"Waiting for index evidence."}),e.jsxs(p,{children:[e.jsxs(y,{children:[e.jsx(b,{children:w[r]}),e.jsx(S,{children:"Observed derived-index state; policy changes belong in AI Config."})]}),e.jsx(N,{children:d&&!s?e.jsx(B,{}):R(r,s)})]})]})}const w={overview:"Index Overview",fts:"FTS",vector:"Vector","retrieval-points":"Retrieval Points",cache:"Cache","slow-queries":"Slow Queries",benchmark:"Benchmark"};function R(r,s){if(!s)return e.jsx("p",{className:"text-sm text-muted-foreground",children:"Waiting for runtime evidence."});if(r==="benchmark"){const t=s.benchmarkReports;return e.jsx(a,{values:[["Reports",String(t?.reportCount??0)],["Skipped files",String(t?.skippedFiles??0)],["Errors",String(t?.errors.length??0)]]})}if(!s.available)return e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Unavailable: ",s.reason]});if(r==="overview"){const t=s.stats.lifecycle;return e.jsxs("div",{className:"space-y-4",children:[e.jsx(a,{values:[["Engine",s.engine],["State",v(t?.status)],["Authority data",o(s.stats.factsBytes)],["Derived storage",o(s.stats.derivedBytes)],["Total storage",o(s.stats.totalBytes)],["Generated",f(s.generatedAt)]]}),e.jsx(x,{children:"Derived indexes are rebuildable runtime evidence; Pod RDF remains the authority data."})]})}if(r==="cache"){const t=s.stats.derivedCache;return t?e.jsx(a,{values:[["Cache bytes",o(t.cacheBytes)],["Limit",o(t.maxCacheBytes)],["Pressure",`${Math.round(t.cachePressure*100)}%`],["Evictions",String(t.evictionCount)]]}):e.jsx(u,{})}if(r==="slow-queries"){const t=s.stats.slowQueries;return t?e.jsxs("div",{className:"space-y-2",children:[e.jsx(a,{values:[["Captured",String(t.entryCount)],["Limit",String(t.maxEntries)]]}),t.entries.slice(0,10).map(i=>e.jsxs("div",{className:"rounded-lg border border-border p-3 text-sm",children:[e.jsxs("div",{className:"font-medium",children:[i.runtime.durationMs," ms · ",i.runtime.returnedRows," rows"]}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:i.reasons.join(", ")||i.queryKey})]},`${i.generatedAt}-${i.queryKey}`))]}):e.jsx(u,{})}if(r==="retrieval-points"){const t=s.stats.rdf3x;return t?e.jsx(a,{values:[["State",t.syncedWithFacts?"Synchronized":`${t.refreshLag} versions behind`],["Facts version",String(t.factsDataVersion)],["Retrieval version",String(t.rdf3xFactsDataVersion)],["Pending sources",String(t.pendingSources)]]}):e.jsx(u,{})}const n=s.stats.lifecycle,d=r==="fts"?n?.coldStart?.ownsTextIndex:n?.coldStart?.ownsVectorIndex;if((r==="fts"||r==="vector")&&d){const t=s.stats.pgAcceleration,i=s.stats.rdf3x;return e.jsxs("div",{className:"space-y-4",children:[e.jsx(a,{values:[["State",v(n?.status)],["Ownership","Runtime managed"],["Backend",t?.provider?`${h(t.provider)}${t.version?` ${t.version}`:""}`:n?.driver??"Not reported"],["Freshness",i?i.syncedWithFacts?"Current":`${i.refreshLag} versions behind`:"Not reported"],["Indexes",t?.customIndexes?.map(c=>c.name).join(", ")||"Runtime managed"],["Last ready",f(n?.lastReadyAt)]]}),e.jsxs(x,{children:[r==="fts"?"Text retrieval":"Vector retrieval"," is derived from Pod authority data. Enablement and backend policy are configured in AI Config."]})]})}return e.jsx(u,{})}function a({values:r}){return e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4",children:r.map(([s,n])=>e.jsxs("div",{className:"rounded-lg border border-border p-3",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:s}),e.jsx("div",{className:"mt-1 font-medium",children:n})]},s))})}function B(){return e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-4","aria-hidden":"true",children:Array.from({length:4},(r,s)=>e.jsxs("div",{className:"rounded-lg border border-border p-3",children:[e.jsx(m,{className:"h-3 w-20"}),e.jsx(m,{className:"mt-2 h-5 w-28"})]},s))})}function u(){return e.jsx("p",{className:"text-sm text-muted-foreground",children:"This runtime does not report evidence for this index subject."})}function x({children:r}){return e.jsx("p",{className:"text-sm text-muted-foreground",children:r})}function o(r){return r<1024?`${r} B`:r<1024*1024?`${Math.round(r/1024)} KB`:`${(r/(1024*1024)).toFixed(1)} MB`}function f(r){return r?new Date(r).toLocaleString():"Not reported"}function v(r){return r?h(r):"Unknown"}function h(r){return r.charAt(0).toUpperCase()+r.slice(1)}export{F as default};
@@ -1 +1 @@
1
- import{j as e,u as S,r as g}from"./settings-B_NbAVC_.js";import{m as w,u as C,t as M}from"./AiConfigContext-B-tqFX8i.js";function A(t,r){return h(t)!==h(r)}function h(t){return Array.isArray(t)?`[${t.map(h).join(",")}]`:t&&typeof t=="object"?`{${Object.entries(t).filter(([,r])=>r!==void 0).sort(([r],[a])=>r.localeCompare(a)).map(([r,a])=>`${JSON.stringify(r)}:${h(a)}`).join(",")}}`:JSON.stringify(t)}const j=[{label:"General / Chat",name:"chatModel",description:"Used for assistant conversations and general text tasks."},{label:"OCR",name:"ocrModel",description:"Reads text from images and scanned pages."},{label:"Document Reader",name:"readerModel",description:"Extracts structure and content from documents."},{label:"Embedding",name:"embeddingModel",description:"Creates vectors for semantic search."},{label:"Indexer / Summarizer",name:"indexerModel",description:"Prepares and summarizes content for indexes."},{label:"Reranker",name:"rerankerModel",description:"Reorders search results by relevance."}];function k(){const{config:t,models:r,save:a,saving:m}=C(),d=S(),[c,o]=g.useState({}),[x,f]=g.useState(),[i,p]=g.useState({});g.useEffect(()=>{let s=!1;return queueMicrotask(()=>{s||o(t?.models??{})}),()=>{s=!0}},[t]);const b=A(c,t?.models??{}),y=async s=>{s.preventDefault(),await a({models:Object.fromEntries(j.map(({name:l})=>[l,c[l]||null]))})};return e.jsx(N,{title:"Model Assignments",description:"Choose a connected model for each Xpod capability. Unassigned capabilities use the system default.",onSubmit:y,onRestore:()=>a({models:Object.fromEntries(j.map(({name:s})=>[s,null]))}),saving:m,dirty:b,children:e.jsx("div",{className:"divide-y divide-border rounded-xl border border-border",children:j.map(s=>e.jsx(v,{...s,models:r,value:c[s.name],testing:x===s.name,testResult:i[s.name],onChange:l=>o(u=>({...u,[s.name]:l})),onTest:async l=>{f(s.name);try{await M(d.fetch,l),p(u=>({...u,[s.name]:"ready"}))}catch{p(u=>({...u,[s.name]:"failed"}))}finally{f(void 0)}}},s.name))})})}function v({label:t,name:r,description:a,models:m,value:d,testing:c,testResult:o,onChange:x,onTest:f}){const i=m.find(n=>n.ref===d),p=w(m,r),b=i?.capabilities.some(n=>["chat","embedding"].includes(n.toLowerCase()))===!0,l=[i?`Connected · credential ready · ${i.owner}`:d?"Selected model is no longer credential-ready":void 0,o==="ready"?"Probe succeeded":o==="failed"?"Probe failed; review AI Connection health":void 0].filter(Boolean).join(" · "),u=!!(d&&!i)||o==="failed";return e.jsxs("div",{"data-testid":"model-assignment-row",className:"grid gap-3 p-4 lg:grid-cols-[minmax(220px,1fr)_minmax(320px,440px)] lg:items-start",children:[e.jsxs("div",{className:"min-w-0 pt-1",children:[e.jsx("span",{className:"block text-sm font-medium text-foreground",children:t}),e.jsx("span",{className:"mt-0.5 block text-xs leading-5 text-muted-foreground",children:a})]}),e.jsxs("div",{"data-testid":"model-assignment-controls",className:"grid min-w-0 gap-2 sm:grid-cols-[minmax(0,1fr)_4.5rem] sm:items-start",children:[e.jsxs("label",{className:"min-w-0",children:[e.jsxs("span",{className:"sr-only",children:[t," model"]}),e.jsxs("select",{name:r,value:d??"",onChange:n=>x(n.target.value),className:"h-10 w-full rounded-md border border-input bg-background px-3 text-sm text-foreground",children:[e.jsx("option",{value:"",children:"System default"}),p.map(n=>e.jsxs("option",{value:n.ref,children:[n.displayName??n.id," · ",n.owner]},`${n.owner}:${n.id}`))]})]}),e.jsx("button",{type:"button","aria-label":`Test ${t} model`,disabled:!b||c,title:i?b?"Send a bounded readiness probe":"This model has no bounded probe endpoint":"Select a connected model first",onClick:()=>i&&void f(i),className:"h-10 w-full self-start rounded-md border border-input bg-background px-3 text-sm font-medium text-foreground hover:bg-accent disabled:opacity-50",children:c?"Testing…":"Test"}),l&&e.jsx("span",{role:"status",className:`text-xs sm:col-span-2 ${u?"text-destructive":"text-muted-foreground"}`,children:l})]})]})}function N({title:t,description:r,children:a,onSubmit:m,onRestore:d,footerActions:c,saving:o=!1,dirty:x=!0}){return e.jsxs("form",{onSubmit:m,className:"mx-auto flex w-full max-w-4xl flex-col gap-6 p-6",children:[e.jsxs("header",{children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-foreground",children:t}),e.jsx("p",{className:"mt-2 max-w-2xl text-sm text-muted-foreground",children:r})]}),a,e.jsxs("div",{className:"flex justify-end gap-2 border-t border-border pt-4",children:[e.jsx("span",{role:"status",className:"mr-auto self-center text-xs text-muted-foreground",children:x?"Unsaved changes":"Applied"}),c,e.jsx("button",{type:"button",onClick:d,disabled:o||!d,className:"h-9 rounded-md border border-input bg-background px-3 text-sm font-medium hover:bg-accent disabled:opacity-50",children:"Restore defaults"}),e.jsx("button",{type:"submit",disabled:o||!m||!x,className:"h-9 rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground disabled:opacity-50",children:o?"Saving…":"Save configuration"})]})]})}const E=Object.freeze(Object.defineProperty({__proto__:null,AiConfigForm:N,ModelAssignmentRow:v,ModelAssignmentsPanel:k},Symbol.toStringTag,{value:"Module"}));export{N as A,E as M,A as i};
1
+ import{j as e,u as S,r as g}from"./settings-D5VRWyx6.js";import{m as w,u as C,t as M}from"./AiConfigContext-CelxXFcQ.js";function A(t,r){return h(t)!==h(r)}function h(t){return Array.isArray(t)?`[${t.map(h).join(",")}]`:t&&typeof t=="object"?`{${Object.entries(t).filter(([,r])=>r!==void 0).sort(([r],[a])=>r.localeCompare(a)).map(([r,a])=>`${JSON.stringify(r)}:${h(a)}`).join(",")}}`:JSON.stringify(t)}const j=[{label:"General / Chat",name:"chatModel",description:"Used for assistant conversations and general text tasks."},{label:"OCR",name:"ocrModel",description:"Reads text from images and scanned pages."},{label:"Document Reader",name:"readerModel",description:"Extracts structure and content from documents."},{label:"Embedding",name:"embeddingModel",description:"Creates vectors for semantic search."},{label:"Indexer / Summarizer",name:"indexerModel",description:"Prepares and summarizes content for indexes."},{label:"Reranker",name:"rerankerModel",description:"Reorders search results by relevance."}];function k(){const{config:t,models:r,save:a,saving:m}=C(),d=S(),[c,o]=g.useState({}),[x,f]=g.useState(),[i,p]=g.useState({});g.useEffect(()=>{let s=!1;return queueMicrotask(()=>{s||o(t?.models??{})}),()=>{s=!0}},[t]);const b=A(c,t?.models??{}),y=async s=>{s.preventDefault(),await a({models:Object.fromEntries(j.map(({name:l})=>[l,c[l]||null]))})};return e.jsx(N,{title:"Model Assignments",description:"Choose a connected model for each Xpod capability. Unassigned capabilities use the system default.",onSubmit:y,onRestore:()=>a({models:Object.fromEntries(j.map(({name:s})=>[s,null]))}),saving:m,dirty:b,children:e.jsx("div",{className:"divide-y divide-border rounded-xl border border-border",children:j.map(s=>e.jsx(v,{...s,models:r,value:c[s.name],testing:x===s.name,testResult:i[s.name],onChange:l=>o(u=>({...u,[s.name]:l})),onTest:async l=>{f(s.name);try{await M(d.fetch,l),p(u=>({...u,[s.name]:"ready"}))}catch{p(u=>({...u,[s.name]:"failed"}))}finally{f(void 0)}}},s.name))})})}function v({label:t,name:r,description:a,models:m,value:d,testing:c,testResult:o,onChange:x,onTest:f}){const i=m.find(n=>n.ref===d),p=w(m,r),b=i?.capabilities.some(n=>["chat","embedding"].includes(n.toLowerCase()))===!0,l=[i?`Connected · credential ready · ${i.owner}`:d?"Selected model is no longer credential-ready":void 0,o==="ready"?"Probe succeeded":o==="failed"?"Probe failed; review AI Connection health":void 0].filter(Boolean).join(" · "),u=!!(d&&!i)||o==="failed";return e.jsxs("div",{"data-testid":"model-assignment-row",className:"grid gap-3 p-4 lg:grid-cols-[minmax(220px,1fr)_minmax(320px,440px)] lg:items-start",children:[e.jsxs("div",{className:"min-w-0 pt-1",children:[e.jsx("span",{className:"block text-sm font-medium text-foreground",children:t}),e.jsx("span",{className:"mt-0.5 block text-xs leading-5 text-muted-foreground",children:a})]}),e.jsxs("div",{"data-testid":"model-assignment-controls",className:"grid min-w-0 gap-2 sm:grid-cols-[minmax(0,1fr)_4.5rem] sm:items-start",children:[e.jsxs("label",{className:"min-w-0",children:[e.jsxs("span",{className:"sr-only",children:[t," model"]}),e.jsxs("select",{name:r,value:d??"",onChange:n=>x(n.target.value),className:"h-10 w-full rounded-md border border-input bg-background px-3 text-sm text-foreground",children:[e.jsx("option",{value:"",children:"System default"}),p.map(n=>e.jsxs("option",{value:n.ref,children:[n.displayName??n.id," · ",n.owner]},`${n.owner}:${n.id}`))]})]}),e.jsx("button",{type:"button","aria-label":`Test ${t} model`,disabled:!b||c,title:i?b?"Send a bounded readiness probe":"This model has no bounded probe endpoint":"Select a connected model first",onClick:()=>i&&void f(i),className:"h-10 w-full self-start rounded-md border border-input bg-background px-3 text-sm font-medium text-foreground hover:bg-accent disabled:opacity-50",children:c?"Testing…":"Test"}),l&&e.jsx("span",{role:"status",className:`text-xs sm:col-span-2 ${u?"text-destructive":"text-muted-foreground"}`,children:l})]})]})}function N({title:t,description:r,children:a,onSubmit:m,onRestore:d,footerActions:c,saving:o=!1,dirty:x=!0}){return e.jsxs("form",{onSubmit:m,className:"mx-auto flex w-full max-w-4xl flex-col gap-6 p-6",children:[e.jsxs("header",{children:[e.jsx("h1",{className:"text-2xl font-semibold tracking-tight text-foreground",children:t}),e.jsx("p",{className:"mt-2 max-w-2xl text-sm text-muted-foreground",children:r})]}),a,e.jsxs("div",{className:"flex justify-end gap-2 border-t border-border pt-4",children:[e.jsx("span",{role:"status",className:"mr-auto self-center text-xs text-muted-foreground",children:x?"Unsaved changes":"Applied"}),c,e.jsx("button",{type:"button",onClick:d,disabled:o||!d,className:"h-9 rounded-md border border-input bg-background px-3 text-sm font-medium hover:bg-accent disabled:opacity-50",children:"Restore defaults"}),e.jsx("button",{type:"submit",disabled:o||!m||!x,className:"h-9 rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground disabled:opacity-50",children:o?"Saving…":"Save configuration"})]})]})}const E=Object.freeze(Object.defineProperty({__proto__:null,AiConfigForm:N,ModelAssignmentRow:v,ModelAssignmentsPanel:k},Symbol.toStringTag,{value:"Module"}));export{N as A,E as M,A as i};