@semiont/cli 0.4.13 → 0.4.15

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 (174) hide show
  1. package/dist/cli.mjs +15491 -4983
  2. package/dist/dashboard/dashboard.css +1 -1
  3. package/dist/dashboard/dashboard.css.map +2 -2
  4. package/dist/frontend/dist/assets/{ArrowsRightLeftIcon-CMDe963r.js → ArrowsRightLeftIcon-BzLgl5o9.js} +2 -2
  5. package/dist/frontend/dist/assets/{ArrowsRightLeftIcon-CMDe963r.js.map → ArrowsRightLeftIcon-BzLgl5o9.js.map} +1 -1
  6. package/dist/frontend/dist/assets/{ChevronLeftIcon-CMXd_XZQ.js → ChevronLeftIcon-BLyRNZuL.js} +2 -2
  7. package/dist/frontend/dist/assets/{ChevronLeftIcon-CMXd_XZQ.js.map → ChevronLeftIcon-BLyRNZuL.js.map} +1 -1
  8. package/dist/frontend/dist/assets/{CommandLineIcon-BBerq9Nd.js → CommandLineIcon-Ba4gpk8e.js} +2 -2
  9. package/dist/frontend/dist/assets/{CommandLineIcon-BBerq9Nd.js.map → CommandLineIcon-Ba4gpk8e.js.map} +1 -1
  10. package/dist/frontend/dist/assets/CookiePreferences-CO_BNHwm.js +2 -0
  11. package/dist/frontend/dist/assets/CookiePreferences-CO_BNHwm.js.map +1 -0
  12. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-CHDCGQBR-BLaEAPe0.js +2 -0
  13. package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-Ct60nVWs.js.map → PdfAnnotationCanvas.client-CHDCGQBR-BLaEAPe0.js.map} +1 -1
  14. package/dist/frontend/dist/assets/StreamStatusContext-BNiTXRfJ.js +2 -0
  15. package/dist/frontend/dist/assets/{StreamStatusContext-BuPATpTz.js.map → StreamStatusContext-BNiTXRfJ.js.map} +1 -1
  16. package/dist/frontend/dist/assets/ToolbarPanels-DRHyLUHl.js +2 -0
  17. package/dist/frontend/dist/assets/ToolbarPanels-DRHyLUHl.js.map +1 -0
  18. package/dist/frontend/dist/assets/XMarkIcon-KMKD47CF.js +2 -0
  19. package/dist/frontend/dist/assets/XMarkIcon-KMKD47CF.js.map +1 -0
  20. package/dist/frontend/dist/assets/{browser-ponyfill-DkbQZCyF.js → browser-ponyfill-D2ngVqWO.js} +2 -2
  21. package/dist/frontend/dist/assets/{browser-ponyfill-DkbQZCyF.js.map → browser-ponyfill-D2ngVqWO.js.map} +1 -1
  22. package/dist/frontend/dist/assets/client-RpFyflU_.js +2 -0
  23. package/dist/frontend/dist/assets/{client-B-4-Nmfd.js.map → client-RpFyflU_.js.map} +1 -1
  24. package/dist/frontend/dist/assets/client-bqO7W1Xj.js +2 -0
  25. package/dist/frontend/dist/assets/{client-CTdkaDl6.js.map → client-bqO7W1Xj.js.map} +1 -1
  26. package/dist/frontend/dist/assets/client-ekxuarKC.js +2 -0
  27. package/dist/frontend/dist/assets/{client-rUyzJlA6.js.map → client-ekxuarKC.js.map} +1 -1
  28. package/dist/frontend/dist/assets/client-xJTgSko3.js +2 -0
  29. package/dist/frontend/dist/assets/{client-DvSa4CTk.js.map → client-xJTgSko3.js.map} +1 -1
  30. package/dist/frontend/dist/assets/{i18n-BYxb14hm.js → i18n-BbpF47i1.js} +2 -2
  31. package/dist/frontend/dist/assets/{i18n-BYxb14hm.js.map → i18n-BbpF47i1.js.map} +1 -1
  32. package/dist/frontend/dist/assets/{index-CwQxZp6g.css → index-BUe9tsov.css} +1 -1
  33. package/dist/frontend/dist/assets/index-XWcEpo5a.js +159 -0
  34. package/dist/frontend/dist/assets/index-XWcEpo5a.js.map +1 -0
  35. package/dist/frontend/dist/assets/layout-BFanPfv_.js +2 -0
  36. package/dist/frontend/dist/assets/layout-BFanPfv_.js.map +1 -0
  37. package/dist/frontend/dist/assets/layout-BN0UEIdX.js +2 -0
  38. package/dist/frontend/dist/assets/layout-BN0UEIdX.js.map +1 -0
  39. package/dist/frontend/dist/assets/layout-ChyKFPPP.js +2 -0
  40. package/dist/frontend/dist/assets/layout-ChyKFPPP.js.map +1 -0
  41. package/dist/frontend/dist/assets/layout-DmjP6diV.js +2 -0
  42. package/dist/frontend/dist/assets/layout-DmjP6diV.js.map +1 -0
  43. package/dist/frontend/dist/assets/{not-found-DE1pkuFl.js → not-found-BboGygIW.js} +2 -2
  44. package/dist/frontend/dist/assets/{not-found-DE1pkuFl.js.map → not-found-BboGygIW.js.map} +1 -1
  45. package/dist/frontend/dist/assets/page-8F47gNEm.js +2 -0
  46. package/dist/frontend/dist/assets/page-8F47gNEm.js.map +1 -0
  47. package/dist/frontend/dist/assets/page-8x98ZAYe.js +2 -0
  48. package/dist/frontend/dist/assets/page-8x98ZAYe.js.map +1 -0
  49. package/dist/frontend/dist/assets/page-BaqIbrus.js +2 -0
  50. package/dist/frontend/dist/assets/{page-C_L33_wR.js.map → page-BaqIbrus.js.map} +1 -1
  51. package/dist/frontend/dist/assets/page-BfhPRgzq.js +2 -0
  52. package/dist/frontend/dist/assets/page-BfhPRgzq.js.map +1 -0
  53. package/dist/frontend/dist/assets/{page-B-TRTXbV.js → page-Bht4dePL.js} +2 -2
  54. package/dist/frontend/dist/assets/{page-B-TRTXbV.js.map → page-Bht4dePL.js.map} +1 -1
  55. package/dist/frontend/dist/assets/page-BtqPeWyh.js +2 -0
  56. package/dist/frontend/dist/assets/page-BtqPeWyh.js.map +1 -0
  57. package/dist/frontend/dist/assets/{page-CUbbBytS.js → page-CG7C0ib3.js} +2 -2
  58. package/dist/frontend/dist/assets/{page-CUbbBytS.js.map → page-CG7C0ib3.js.map} +1 -1
  59. package/dist/frontend/dist/assets/page-CJnfSnRg.js +2 -0
  60. package/dist/frontend/dist/assets/page-CJnfSnRg.js.map +1 -0
  61. package/dist/frontend/dist/assets/page-Cct5hwIU.js +8 -0
  62. package/dist/frontend/dist/assets/{page-CaVtCo4z.js.map → page-Cct5hwIU.js.map} +1 -1
  63. package/dist/frontend/dist/assets/page-CnJVZMgv.js +2 -0
  64. package/dist/frontend/dist/assets/page-CnJVZMgv.js.map +1 -0
  65. package/dist/frontend/dist/assets/page-CpbZG7nR.js +2 -0
  66. package/dist/frontend/dist/assets/{page-BfUI7FZJ.js.map → page-CpbZG7nR.js.map} +1 -1
  67. package/dist/frontend/dist/assets/{page-DXACCazr.js → page-CzvERJKF.js} +2 -2
  68. package/dist/frontend/dist/assets/{page-DXACCazr.js.map → page-CzvERJKF.js.map} +1 -1
  69. package/dist/frontend/dist/assets/page-DB8grXzl.js +2 -0
  70. package/dist/frontend/dist/assets/{page-CGDUl5-d.js.map → page-DB8grXzl.js.map} +1 -1
  71. package/dist/frontend/dist/assets/page-DI1MUp4X.js +2 -0
  72. package/dist/frontend/dist/assets/{page-CHq5JMOn.js.map → page-DI1MUp4X.js.map} +1 -1
  73. package/dist/frontend/dist/assets/page-Dhi8hP-S.js +2 -0
  74. package/dist/frontend/dist/assets/{page-qhHVLOTR.js.map → page-Dhi8hP-S.js.map} +1 -1
  75. package/dist/frontend/dist/assets/page-FovvpNWp.js +2 -0
  76. package/dist/frontend/dist/assets/{page-DiKTriTX.js.map → page-FovvpNWp.js.map} +1 -1
  77. package/dist/frontend/dist/assets/page-T424mvNp.js +2 -0
  78. package/dist/frontend/dist/assets/{page-C02dLWb8.js.map → page-T424mvNp.js.map} +1 -1
  79. package/dist/frontend/dist/assets/{page-D5i-uRGy.js → page-knhbwxzQ.js} +2 -2
  80. package/dist/frontend/dist/assets/{page-D5i-uRGy.js.map → page-knhbwxzQ.js.map} +1 -1
  81. package/dist/frontend/dist/assets/privacy-B5TeXaed.js +2 -0
  82. package/dist/frontend/dist/assets/{privacy-BMKdYFGC.js.map → privacy-B5TeXaed.js.map} +1 -1
  83. package/dist/frontend/dist/assets/{query-ATBhtd3K.js → query-B6BuIB0M.js} +3 -3
  84. package/dist/frontend/dist/assets/{query-ATBhtd3K.js.map → query-B6BuIB0M.js.map} +1 -1
  85. package/dist/frontend/dist/assets/routing-By_4TZHr.js +2 -0
  86. package/dist/frontend/dist/assets/{routing-BPQO9e8a.js.map → routing-By_4TZHr.js.map} +1 -1
  87. package/dist/frontend/dist/assets/{routing-BBQqTcTn.js → routing-vcvYfuPO.js} +2 -2
  88. package/dist/frontend/dist/assets/{routing-BBQqTcTn.js.map → routing-vcvYfuPO.js.map} +1 -1
  89. package/dist/frontend/dist/assets/{vendor-EnoIVk-c.js → vendor-DJo4KD8w.js} +2 -2
  90. package/dist/frontend/dist/assets/{vendor-EnoIVk-c.js.map → vendor-DJo4KD8w.js.map} +1 -1
  91. package/dist/frontend/dist/index.html +5 -5
  92. package/dist/frontend/dist/messages/ar.json +28 -6
  93. package/dist/frontend/dist/messages/bn.json +28 -6
  94. package/dist/frontend/dist/messages/cs.json +28 -6
  95. package/dist/frontend/dist/messages/da.json +28 -6
  96. package/dist/frontend/dist/messages/de.json +28 -6
  97. package/dist/frontend/dist/messages/el.json +28 -6
  98. package/dist/frontend/dist/messages/en.json +28 -6
  99. package/dist/frontend/dist/messages/es.json +28 -6
  100. package/dist/frontend/dist/messages/fa.json +28 -6
  101. package/dist/frontend/dist/messages/fi.json +28 -6
  102. package/dist/frontend/dist/messages/fr.json +28 -6
  103. package/dist/frontend/dist/messages/he.json +28 -6
  104. package/dist/frontend/dist/messages/hi.json +28 -6
  105. package/dist/frontend/dist/messages/id.json +28 -6
  106. package/dist/frontend/dist/messages/it.json +28 -6
  107. package/dist/frontend/dist/messages/ja.json +28 -6
  108. package/dist/frontend/dist/messages/ko.json +28 -6
  109. package/dist/frontend/dist/messages/ms.json +28 -6
  110. package/dist/frontend/dist/messages/nl.json +28 -6
  111. package/dist/frontend/dist/messages/no.json +28 -6
  112. package/dist/frontend/dist/messages/pl.json +28 -6
  113. package/dist/frontend/dist/messages/pt.json +28 -6
  114. package/dist/frontend/dist/messages/ro.json +28 -6
  115. package/dist/frontend/dist/messages/sv.json +28 -6
  116. package/dist/frontend/dist/messages/th.json +28 -6
  117. package/dist/frontend/dist/messages/tr.json +28 -6
  118. package/dist/frontend/dist/messages/uk.json +28 -6
  119. package/dist/frontend/dist/messages/vi.json +28 -6
  120. package/dist/frontend/dist/messages/zh.json +28 -6
  121. package/dist/frontend/package.json +1 -1
  122. package/package.json +9 -9
  123. package/dist/frontend/dist/assets/AuthContext-CqopYuY9.js +0 -2
  124. package/dist/frontend/dist/assets/AuthContext-CqopYuY9.js.map +0 -1
  125. package/dist/frontend/dist/assets/CookiePreferences-DIUP_g1S.js +0 -2
  126. package/dist/frontend/dist/assets/CookiePreferences-DIUP_g1S.js.map +0 -1
  127. package/dist/frontend/dist/assets/KnowledgeBaseContext-CgnF8K-_.js +0 -2
  128. package/dist/frontend/dist/assets/KnowledgeBaseContext-CgnF8K-_.js.map +0 -1
  129. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-CW6SKH2U-Ct60nVWs.js +0 -2
  130. package/dist/frontend/dist/assets/PlusIcon-qGFPUzg0.js +0 -2
  131. package/dist/frontend/dist/assets/PlusIcon-qGFPUzg0.js.map +0 -1
  132. package/dist/frontend/dist/assets/StreamStatusContext-BuPATpTz.js +0 -2
  133. package/dist/frontend/dist/assets/ToolbarPanels-CtBfzYcP.js +0 -2
  134. package/dist/frontend/dist/assets/ToolbarPanels-CtBfzYcP.js.map +0 -1
  135. package/dist/frontend/dist/assets/client-B-4-Nmfd.js +0 -2
  136. package/dist/frontend/dist/assets/client-CTdkaDl6.js +0 -2
  137. package/dist/frontend/dist/assets/client-DvSa4CTk.js +0 -2
  138. package/dist/frontend/dist/assets/client-rUyzJlA6.js +0 -2
  139. package/dist/frontend/dist/assets/en-IUV4ZXKH-b_r0oyRV.js +0 -135
  140. package/dist/frontend/dist/assets/en-IUV4ZXKH-b_r0oyRV.js.map +0 -1
  141. package/dist/frontend/dist/assets/index-dFCLrpeL.js +0 -27
  142. package/dist/frontend/dist/assets/index-dFCLrpeL.js.map +0 -1
  143. package/dist/frontend/dist/assets/layout-BwurEG3I.js +0 -2
  144. package/dist/frontend/dist/assets/layout-BwurEG3I.js.map +0 -1
  145. package/dist/frontend/dist/assets/layout-CCNyNXfP.js +0 -2
  146. package/dist/frontend/dist/assets/layout-CCNyNXfP.js.map +0 -1
  147. package/dist/frontend/dist/assets/layout-CHfFscVU.js +0 -2
  148. package/dist/frontend/dist/assets/layout-CHfFscVU.js.map +0 -1
  149. package/dist/frontend/dist/assets/layout-CL9MSbhu.js +0 -6
  150. package/dist/frontend/dist/assets/layout-CL9MSbhu.js.map +0 -1
  151. package/dist/frontend/dist/assets/page-B3h2_PT5.js +0 -2
  152. package/dist/frontend/dist/assets/page-B3h2_PT5.js.map +0 -1
  153. package/dist/frontend/dist/assets/page-BfUI7FZJ.js +0 -2
  154. package/dist/frontend/dist/assets/page-C-os3U8h.js +0 -2
  155. package/dist/frontend/dist/assets/page-C-os3U8h.js.map +0 -1
  156. package/dist/frontend/dist/assets/page-C02dLWb8.js +0 -2
  157. package/dist/frontend/dist/assets/page-CGDUl5-d.js +0 -2
  158. package/dist/frontend/dist/assets/page-CHq5JMOn.js +0 -2
  159. package/dist/frontend/dist/assets/page-C_L33_wR.js +0 -2
  160. package/dist/frontend/dist/assets/page-CaVtCo4z.js +0 -8
  161. package/dist/frontend/dist/assets/page-CjTcoHSS.js +0 -2
  162. package/dist/frontend/dist/assets/page-CjTcoHSS.js.map +0 -1
  163. package/dist/frontend/dist/assets/page-CtRMzwE_.js +0 -2
  164. package/dist/frontend/dist/assets/page-CtRMzwE_.js.map +0 -1
  165. package/dist/frontend/dist/assets/page-Cu2tT5mi.js +0 -2
  166. package/dist/frontend/dist/assets/page-Cu2tT5mi.js.map +0 -1
  167. package/dist/frontend/dist/assets/page-DiKTriTX.js +0 -2
  168. package/dist/frontend/dist/assets/page-eJup0RrB.js +0 -2
  169. package/dist/frontend/dist/assets/page-eJup0RrB.js.map +0 -1
  170. package/dist/frontend/dist/assets/page-qhHVLOTR.js +0 -2
  171. package/dist/frontend/dist/assets/privacy-BMKdYFGC.js +0 -2
  172. package/dist/frontend/dist/assets/routing-BPQO9e8a.js +0 -2
  173. package/dist/frontend/dist/assets/useAuth-B9hvtwrc.js +0 -2
  174. package/dist/frontend/dist/assets/useAuth-B9hvtwrc.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{j as s,u as N}from"./query-ATBhtd3K.js";import{r as d,O as L}from"./vendor-EnoIVk-c.js";import{a6 as C,g as A,a7 as E,Y as K,a8 as O,a9 as F,V as M,X as P,aa as _,ab as H,ac as I,F as T,ad as B,ae as U,af as q}from"./en-IUV4ZXKH-b_r0oyRV.js";import{b as G,a as x,L as J}from"./routing-BPQO9e8a.js";import{u as m}from"./i18n-BYxb14hm.js";import{F as Q}from"./PlusIcon-qGFPUzg0.js";import{a as V,C as D}from"./CookiePreferences-DIUP_g1S.js";import{F as Y,a as z}from"./ChevronLeftIcon-CMXd_XZQ.js";import{r as v,L as w}from"./routing-BBQqTcTn.js";import{u as g}from"./useAuth-B9hvtwrc.js";import{K as W}from"./privacy-BMKdYFGC.js";import{u as X}from"./KnowledgeBaseContext-CgnF8K-_.js";import{S as Z}from"./StreamStatusContext-BuPATpTz.js";import"./index-dFCLrpeL.js";import"./AuthContext-CqopYuY9.js";const ee=({className:o})=>s.jsx("span",{className:o,style:{fontSize:"1.25rem",lineHeight:"1"},children:"🔭"});function oe({href:o,to:e,...r}){return s.jsx(J,{to:o??"",...r})}function te({isCollapsed:o,toggleCollapsed:e,navigationMenu:r}){const{t}=m(),n=(u,h)=>t(`Sidebar.${u}`,h),i=G(),l=x(),{openResources:a,removeResource:c,reorderResources:f}=C(),k=[{name:n("discover"),href:"/know/discover",icon:ee,description:n("searchAndBrowse")},{name:n("compose"),href:"/know/compose",icon:Q,description:n("composeNewResource")}],R=d.useCallback(()=>{e()},[e]),j=d.useCallback(({resourceId:u})=>{c(u),i===`/know/resource/${u}`&&l.push("/know/discover")},[c,i,l]),y=d.useCallback(({oldIndex:u,newIndex:h})=>{f(u,h)},[f]);A({"browse:sidebar-toggle":R,"browse:resource-close":j,"browse:resource-reorder":y});const S=u=>{l.push(u)},$=u=>`/know/resource/${u}`;return s.jsx("div",{className:"flex flex-col h-full",children:s.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:s.jsx(E,{fixedItems:k,resources:a,isCollapsed:o,currentPath:i,LinkComponent:oe,onNavigate:S,getResourceHref:$,className:"knowledge-navigation",translations:{title:n("title")},icons:{chevronLeft:z,bars:Y,close:V},navigationMenu:r})})})}function se(){const{t:o}=m(),e=(a,c)=>o(`Navigation.${a}`,c),{t:r}=m(),t=(a,c)=>r(`Home.${a}`,c),{isAuthenticated:n,isAdmin:i,isModerator:l}=g();return s.jsx(K,{Link:w,routes:v,t:e,tHome:t,brandingLink:"/",collapsible:!0,storageKey:"knowledgeNavCollapsed",isAuthenticated:n,isAdmin:i,isModerator:l,children:(a,c,f)=>s.jsx(te,{isCollapsed:a,toggleCollapsed:c,navigationMenu:f})})}const p="openDocuments";function b(o){return[...o].sort((e,r)=>e.order!==void 0&&r.order!==void 0?e.order-r.order:e.openedAt-r.openedAt)}function re(){if(typeof localStorage>"u")return[];try{const o=localStorage.getItem(p);if(o)return b(JSON.parse(o))}catch{}return[]}class ne{constructor(){this.state$=new O(re()),this.resources$=this.state$.asObservable(),this.handleStorageEvent=e=>{if(e.key===p&&e.newValue)try{this.state$.next(b(JSON.parse(e.newValue)))}catch{}},this.state$.subscribe(e=>{typeof localStorage<"u"&&localStorage.setItem(p,JSON.stringify(e))}),typeof window<"u"&&window.addEventListener("storage",this.handleStorageEvent)}get resources(){return this.state$.value}add(e,r,t,n){const i=this.state$.value;if(i.find(a=>a.id===e))this.state$.next(i.map(a=>a.id===e?{...a,name:r,...t&&{mediaType:t},...n&&{storageUri:n}}:a));else{const a=i.length>0?Math.max(...i.map(c=>c.order??c.openedAt)):0;this.state$.next([...i,{id:e,name:r,openedAt:Date.now(),order:a+1,...t&&{mediaType:t},...n&&{storageUri:n}}])}}remove(e){this.state$.next(this.state$.value.filter(r=>r.id!==e))}updateName(e,r){this.state$.next(this.state$.value.map(t=>t.id===e?{...t,name:r}:t))}reorder(e,r){const t=[...this.state$.value],n=t.splice(e,1)[0];t.splice(r,0,n),this.state$.next(t.map((i,l)=>({...i,order:l})))}destroy(){typeof window<"u"&&window.removeEventListener("storage",this.handleStorageEvent)}}function ae(){const o=d.useMemo(()=>new ne,[]);d.useEffect(()=>()=>o.destroy(),[o]);const e=F(o.resources$)??o.resources,r=d.useMemo(()=>({addResource:(t,n,i,l)=>o.add(t,n,i,l),removeResource:t=>o.remove(t),updateResourceName:(t,n)=>o.updateName(t,n),reorderResources:(t,n)=>o.reorder(t,n)}),[o]);return d.useMemo(()=>({openResources:e,...r}),[e,r])}function ie(){const o=N();return d.useMemo(()=>({invalidateAnnotations:e=>{o.invalidateQueries({queryKey:["resources",e,"annotations"]})},invalidateEvents:e=>{o.invalidateQueries({queryKey:["resources",e,"events"]})}}),[o])}function ce(){return B(),U(),null}function le({children:o}){const{status:e}=q();return s.jsx(Z.Provider,{value:e,children:o})}function Se(){const{t:o}=m(),e=d.useContext(W),r=ae(),t=ie(),{token:n,isLoading:i}=g(),l=x(),{activeKnowledgeBase:a}=X();if(!a)return l.push("/auth/connect?callbackUrl=/know"),null;if(i)return s.jsx("div",{className:"h-screen flex items-center justify-center",children:s.jsxs("div",{className:"text-center",children:[s.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),s.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Loading..."})]})});if(!n){const c=encodeURIComponent(typeof window<"u"?window.location.pathname:"/know");return l.push(`/auth/connect?workspaceId=${a.id}&callbackUrl=${c}`),null}return s.jsx(M,{token:n,children:s.jsx(P,{baseUrl:a.backendUrl,children:s.jsx(_,{cacheManager:t,children:s.jsx(H,{openResourcesManager:r,children:s.jsxs(I,{children:[s.jsx(ce,{}),s.jsx(le,{children:s.jsxs("div",{className:"h-screen semiont-knowledge-layout semiont-layout-with-footer flex flex-col overflow-hidden",children:[s.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[s.jsx(se,{}),s.jsx("main",{className:"flex-1 w-full px-2 pb-6 flex flex-col overflow-hidden",children:s.jsx("div",{className:"w-full mx-auto flex-1 flex flex-col h-full overflow-hidden",children:s.jsx(L,{})})})]}),s.jsx(T,{Link:w,routes:v,t:(c,f)=>o(`Footer.${c}`,f),CookiePreferences:D,showPolicyLinks:!("__TAURI_INTERNALS__"in window),...(e==null?void 0:e.openKeyboardHelp)&&{onOpenKeyboardHelp:e.openKeyboardHelp}})]})})]})})})})})}export{Se as default};
2
- //# sourceMappingURL=layout-BwurEG3I.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-BwurEG3I.js","sources":["../../src/components/knowledge/KnowledgeNavigation.tsx","../../src/components/knowledge/KnowledgeSidebarWrapper.tsx","../../src/stores/open-resources-store.ts","../../src/hooks/useOpenResourcesManager.ts","../../src/hooks/useCacheManager.ts","../../src/app/[locale]/know/layout.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname, useRouter } from '@/i18n/routing';\nimport { PlusIcon, ChevronLeftIcon, Bars3Icon, XMarkIcon } from '@heroicons/react/24/outline';\nimport {\n useOpenResources,\n useEventSubscriptions,\n CollapsibleResourceNavigation,\n type NavigationItem,\n type OpenResource\n} from '@semiont/react-ui';\n\n// Custom telescope icon component\nconst TelescopeIcon = ({ className }: { className?: string }) => (\n <span className={className} style={{ fontSize: '1.25rem', lineHeight: '1' }}>🔭</span>\n);\n\ninterface KnowledgeNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: CollapsibleResourceNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function KnowledgeNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: KnowledgeNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n const router = useRouter();\n const { openResources, removeResource, reorderResources } = useOpenResources();\n\n const fixedNavigation: NavigationItem[] = [\n {\n name: t('discover'),\n href: '/know/discover',\n icon: TelescopeIcon,\n description: t('searchAndBrowse')\n },\n {\n name: t('compose'),\n href: '/know/compose',\n icon: PlusIcon,\n description: t('composeNewResource')\n }\n ];\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Handle resource close events\n const handleResourceClose = useCallback(({ resourceId }: { resourceId: string }) => {\n removeResource(resourceId);\n\n // If we're closing the currently viewed document, navigate to Discover\n if (pathname === `/know/resource/${resourceId}`) {\n router.push('/know/discover');\n }\n }, [removeResource, pathname, router]);\n\n // Handle resource reorder events\n const handleResourceReorder = useCallback(({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) => {\n reorderResources(oldIndex, newIndex);\n }, [reorderResources]);\n\n // Subscribe to navigation events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n 'browse:resource-close': handleResourceClose,\n 'browse:resource-reorder': handleResourceReorder,\n });\n\n // Handle navigation\n const handleNavigate = (path: string) => {\n router.push(path);\n };\n\n // Build resource href\n const getResourceHref = (resourceId: string) => {\n return `/know/resource/${resourceId}`;\n };\n\n return (\n <div className=\"flex flex-col h-full\">\n <div className=\"flex-1 min-h-0 overflow-y-auto\">\n <CollapsibleResourceNavigation\n fixedItems={fixedNavigation}\n resources={openResources as OpenResource[]}\n isCollapsed={isCollapsed}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n onNavigate={handleNavigate}\n getResourceHref={getResourceHref}\n className=\"knowledge-navigation\"\n translations={{\n title: t('title')\n }}\n icons={{\n chevronLeft: ChevronLeftIcon,\n bars: Bars3Icon,\n close: XMarkIcon\n }}\n navigationMenu={navigationMenu}\n />\n </div>\n </div>\n );\n}","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { LeftSidebar } from '@semiont/react-ui';\nimport { KnowledgeNavigation } from './KnowledgeNavigation';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\n\nexport function KnowledgeSidebarWrapper() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Navigation.${k}`, p as any) as string;\n const { t: _tHome } = useTranslation();\n const tHome = (k: string, p?: Record<string, unknown>) => _tHome(`Home.${k}`, p as any) as string;\n const { isAuthenticated, isAdmin, isModerator } = useAuth();\n\n return (\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={t}\n tHome={tHome}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"knowledgeNavCollapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <KnowledgeNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n );\n}\n","/**\n * OpenResourcesStore — per-workspace observable store for open resources\n *\n * BehaviorSubject-backed store for the list of open documents (tabs).\n * Replaces useState in useOpenResourcesManager with a reactive store that:\n * - Persists to localStorage\n * - Syncs across tabs via StorageEvent\n */\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport type { OpenResource } from '@semiont/react-ui';\n\nconst STORAGE_KEY = 'openDocuments';\n\nfunction sortResources(resources: OpenResource[]): OpenResource[] {\n return [...resources].sort((a, b) => {\n if (a.order !== undefined && b.order !== undefined) return a.order - b.order;\n return a.openedAt - b.openedAt;\n });\n}\n\nfunction loadFromStorage(): OpenResource[] {\n if (typeof localStorage === 'undefined') return [];\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) return sortResources(JSON.parse(stored) as OpenResource[]);\n } catch {\n // Ignore parse errors\n }\n return [];\n}\n\nexport class OpenResourcesStore {\n private readonly state$ = new BehaviorSubject<OpenResource[]>(loadFromStorage());\n\n /** Observable of the current open resources list */\n readonly resources$: Observable<OpenResource[]> = this.state$.asObservable();\n\n constructor() {\n // Persist to localStorage on every change\n this.state$.subscribe(resources => {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(resources));\n }\n });\n\n // Sync from other tabs\n if (typeof window !== 'undefined') {\n window.addEventListener('storage', this.handleStorageEvent);\n }\n }\n\n private readonly handleStorageEvent = (e: StorageEvent): void => {\n if (e.key === STORAGE_KEY && e.newValue) {\n try {\n this.state$.next(sortResources(JSON.parse(e.newValue) as OpenResource[]));\n } catch {\n // Ignore parse errors\n }\n }\n };\n\n get resources(): OpenResource[] {\n return this.state$.value;\n }\n\n add(id: string, name: string, mediaType?: string, storageUri?: string): void {\n const current = this.state$.value;\n const existing = current.find(r => r.id === id);\n if (existing) {\n this.state$.next(current.map(r =>\n r.id === id\n ? { ...r, name, ...(mediaType && { mediaType }), ...(storageUri && { storageUri }) }\n : r\n ));\n } else {\n const maxOrder = current.length > 0\n ? Math.max(...current.map(r => r.order ?? r.openedAt))\n : 0;\n this.state$.next([\n ...current,\n { id, name, openedAt: Date.now(), order: maxOrder + 1, ...(mediaType && { mediaType }), ...(storageUri && { storageUri }) },\n ]);\n }\n }\n\n remove(id: string): void {\n this.state$.next(this.state$.value.filter(r => r.id !== id));\n }\n\n updateName(id: string, name: string): void {\n this.state$.next(this.state$.value.map(r => r.id === id ? { ...r, name } : r));\n }\n\n reorder(oldIndex: number, newIndex: number): void {\n const current = [...this.state$.value];\n const moved = current.splice(oldIndex, 1)[0]!;\n current.splice(newIndex, 0, moved);\n this.state$.next(current.map((r, index) => ({ ...r, order: index })));\n }\n\n /** Release event listener — call when the workspace is torn down */\n destroy(): void {\n if (typeof window !== 'undefined') {\n window.removeEventListener('storage', this.handleStorageEvent);\n }\n }\n}\n","import { useMemo, useEffect } from 'react';\nimport type { OpenResourcesManager } from '@semiont/react-ui';\nimport { useObservable } from '@semiont/react-ui';\nimport { OpenResourcesStore } from '@/stores/open-resources-store';\n\n/**\n * Hook that provides OpenResourcesManager delegating to OpenResourcesStore.\n * State lives in a BehaviorSubject; React re-renders via useObservable subscription.\n */\nexport function useOpenResourcesManager(): OpenResourcesManager {\n const store = useMemo(() => new OpenResourcesStore(), []);\n\n useEffect(() => () => store.destroy(), [store]);\n\n const openResources = useObservable(store.resources$) ?? store.resources;\n\n const callbacks = useMemo(\n () => ({\n addResource: (id: string, name: string, mediaType?: string, storageUri?: string) =>\n store.add(id, name, mediaType, storageUri),\n removeResource: (id: string) => store.remove(id),\n updateResourceName: (id: string, name: string) => store.updateName(id, name),\n reorderResources: (oldIndex: number, newIndex: number) => store.reorder(oldIndex, newIndex),\n }),\n [store],\n );\n\n return useMemo(\n () => ({ openResources, ...callbacks }),\n [openResources, callbacks],\n );\n}\n","import { useMemo } from 'react';\nimport { useQueryClient } from '@tanstack/react-query';\nimport type { CacheManager } from '@semiont/react-ui';\nimport type { ResourceId } from '@semiont/core';\n\n/**\n * Frontend implementation of CacheManager using React Query\n *\n * Usage:\n * ```typescript\n * const cacheManager = useCacheManager();\n * <CacheProvider cacheManager={cacheManager}>\n * <YourComponents />\n * </CacheProvider>\n * ```\n */\nexport function useCacheManager(): CacheManager {\n const queryClient = useQueryClient();\n\n return useMemo(() => ({\n invalidateAnnotations: (rUri: ResourceId) => {\n queryClient.invalidateQueries({ queryKey: ['resources', rUri, 'annotations'] });\n },\n invalidateEvents: (rUri: ResourceId) => {\n queryClient.invalidateQueries({ queryKey: ['resources', rUri, 'events'] });\n }\n }), [queryClient]);\n}\n","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { KnowledgeSidebarWrapper } from '@/components/knowledge/KnowledgeSidebarWrapper';\nimport { Footer, ResourceAnnotationsProvider, OpenResourcesProvider, CacheProvider, ApiClientProvider, AuthTokenProvider, useGlobalEvents, useAttentionStream, useStoreTokenSync } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useOpenResourcesManager } from '@/hooks/useOpenResourcesManager';\nimport { useCacheManager } from '@/hooks/useCacheManager';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useRouter } from '@/i18n/routing';\nimport { useKnowledgeBaseContext } from '@/contexts/KnowledgeBaseContext';\nimport { StreamStatusContext } from '@/contexts/StreamStatusContext';\n\nfunction GlobalEventsConnector() {\n useStoreTokenSync();\n useGlobalEvents();\n return null;\n}\n\nfunction KnowledgeLayoutInner({ children }: { children: React.ReactNode }) {\n const { status } = useAttentionStream();\n return (\n <StreamStatusContext.Provider value={status}>\n {children}\n </StreamStatusContext.Provider>\n );\n}\n\nexport default function KnowledgeLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const openResourcesManager = useOpenResourcesManager();\n const cacheManager = useCacheManager();\n const { token: authToken, isLoading } = useAuth();\n const router = useRouter();\n const { activeKnowledgeBase } = useKnowledgeBaseContext();\n\n if (!activeKnowledgeBase) {\n router.push('/auth/connect?callbackUrl=/know');\n return null;\n }\n\n if (isLoading) {\n return (\n <div className=\"h-screen flex items-center justify-center\">\n <div className=\"text-center\">\n <div className=\"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4\"></div>\n <p className=\"text-gray-600 dark:text-gray-400\">Loading...</p>\n </div>\n </div>\n );\n }\n\n if (!authToken) {\n const callbackUrl = encodeURIComponent(typeof window !== 'undefined' ? window.location.pathname : '/know');\n router.push(`/auth/connect?workspaceId=${activeKnowledgeBase.id}&callbackUrl=${callbackUrl}`);\n return null;\n }\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={activeKnowledgeBase.backendUrl}>\n <CacheProvider cacheManager={cacheManager}>\n <OpenResourcesProvider openResourcesManager={openResourcesManager}>\n <ResourceAnnotationsProvider>\n <GlobalEventsConnector />\n <KnowledgeLayoutInner>\n <div className=\"h-screen semiont-knowledge-layout semiont-layout-with-footer flex flex-col overflow-hidden\">\n <div className=\"flex flex-1 overflow-hidden\">\n <KnowledgeSidebarWrapper />\n <main className=\"flex-1 w-full px-2 pb-6 flex flex-col overflow-hidden\">\n <div className=\"w-full mx-auto flex-1 flex flex-col h-full overflow-hidden\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string, params?: Record<string, unknown>) => t(`Footer.${key}`, params as any) as string}\n CookiePreferences={CookiePreferences}\n showPolicyLinks={!('__TAURI_INTERNALS__' in window)}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </KnowledgeLayoutInner>\n </ResourceAnnotationsProvider>\n </OpenResourcesProvider>\n </CacheProvider>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["TelescopeIcon","className","jsx","HrefLink","href","_to","props","Link","KnowledgeNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","p","pathname","usePathname","router","useRouter","openResources","removeResource","reorderResources","useOpenResources","fixedNavigation","PlusIcon","handleSidebarToggle","useCallback","handleResourceClose","resourceId","handleResourceReorder","oldIndex","newIndex","useEventSubscriptions","handleNavigate","path","getResourceHref","CollapsibleResourceNavigation","ChevronLeftIcon","Bars3Icon","XMarkIcon","KnowledgeSidebarWrapper","_tHome","tHome","isAuthenticated","isAdmin","isModerator","useAuth","LeftSidebar","routes","STORAGE_KEY","sortResources","resources","a","b","loadFromStorage","stored","OpenResourcesStore","BehaviorSubject","id","name","mediaType","storageUri","current","r","maxOrder","moved","index","useOpenResourcesManager","store","useMemo","useEffect","useObservable","callbacks","useCacheManager","queryClient","useQueryClient","rUri","GlobalEventsConnector","useStoreTokenSync","useGlobalEvents","KnowledgeLayoutInner","children","status","useAttentionStream","StreamStatusContext","KnowledgeLayout","keyboardContext","useContext","KeyboardShortcutsContext","openResourcesManager","cacheManager","authToken","isLoading","activeKnowledgeBase","useKnowledgeBaseContext","jsxs","callbackUrl","AuthTokenProvider","ApiClientProvider","CacheProvider","OpenResourcesProvider","ResourceAnnotationsProvider","Outlet","Footer","key","params","CookiePreferences"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{j as n}from"./query-ATBhtd3K.js";import{r as t,O as b}from"./vendor-EnoIVk-c.js";import{g as k,U as g,V as w,X as v,Y as L,F as j}from"./en-IUV4ZXKH-b_r0oyRV.js";import{b as S,L as y,a as E}from"./routing-BPQO9e8a.js";import{u as p}from"./i18n-BYxb14hm.js";import{F as R}from"./ArrowsRightLeftIcon-CMDe963r.js";import{F as C,a as F}from"./ChevronLeftIcon-CMXd_XZQ.js";import{C as $}from"./CookiePreferences-DIUP_g1S.js";import{K as A}from"./privacy-BMKdYFGC.js";import{r as h,L as x}from"./routing-BBQqTcTn.js";import{u as H}from"./useAuth-B9hvtwrc.js";import{u as K}from"./KnowledgeBaseContext-CgnF8K-_.js";import"./index-dFCLrpeL.js";import"./AuthContext-CqopYuY9.js";function M({title:r,titleId:e,...o},s){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25"}))}const N=t.forwardRef(M);function O({title:r,titleId:e,...o},s){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const T=t.forwardRef(O);function B({title:r,titleId:e,...o},s){return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 6h.008v.008H6V6Z"}))}const D=t.forwardRef(B);function P({href:r,to:e,...o}){return n.jsx(y,{to:r??"",...o})}function U({isCollapsed:r,toggleCollapsed:e,navigationMenu:o}){const{t:s}=p(),a=(d,f)=>s(`Moderation.${d}`,f),{t:m}=p(),c=(d,f)=>m(`Sidebar.${d}`,f),u=S(),i=t.useCallback(()=>{e()},[e]);k({"browse:sidebar-toggle":i});const l=[{name:a("recentResources"),href:"/moderate/recent",icon:T,description:a("recentResourcesDescription")},{name:a("entityTags"),href:"/moderate/entity-tags",icon:D,description:a("entityTagsDescription")},{name:a("tagSchemas"),href:"/moderate/tag-schemas",icon:N,description:a("tagSchemasDescription")},{name:a("linkedData"),href:"/moderate/linked-data",icon:R,description:a("linkedDataDescription")}];return n.jsx(g,{title:a("title"),items:l,currentPath:u,LinkComponent:P,...o&&{dropdownContent:o},isCollapsed:r,icons:{chevronLeft:F,bars:C},collapseSidebarLabel:c("collapseSidebar"),expandSidebarLabel:c("expandSidebar")})}function te(){const{t:r}=p(),e=t.useContext(A),{isAuthenticated:o,isAdmin:s,isModerator:a,token:m}=H(),{activeKnowledgeBase:c}=K(),u=E();return c?n.jsx(w,{token:m,children:n.jsx(v,{baseUrl:c.backendUrl,children:n.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",children:[n.jsxs("div",{className:"flex flex-1",children:[n.jsx(L,{Link:x,routes:h,t:i=>r(`Navigation.${i}`),tHome:i=>r(`Home.${i}`),brandingLink:"/",collapsible:!0,storageKey:"moderation-sidebar-collapsed",isAuthenticated:o,isAdmin:s,isModerator:a,children:(i,l,d)=>n.jsx(U,{isCollapsed:i,toggleCollapsed:l,navigationMenu:d})}),n.jsx("main",{className:"flex-1 p-6 flex flex-col",children:n.jsx("div",{className:"max-w-7xl mx-auto flex-1 flex flex-col w-full",children:n.jsx(b,{})})})]}),n.jsx(j,{Link:x,routes:h,t:(i,l)=>r(`Footer.${i}`,l),CookiePreferences:$,...(e==null?void 0:e.openKeyboardHelp)&&{onOpenKeyboardHelp:e.openKeyboardHelp}})]})})}):(u.push("/know"),null)}export{te as default};
2
- //# sourceMappingURL=layout-CCNyNXfP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-CCNyNXfP.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js","../../src/components/moderation/ModerationNavigation.tsx","../../src/app/[locale]/moderate/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction BookOpenIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(BookOpenIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ClockIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ClockIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction TagIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 6h.008v.008H6V6Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(TagIcon);\nexport default ForwardRef;","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname } from '@/i18n/routing';\nimport { SimpleNavigation, useEventSubscriptions } from '@semiont/react-ui';\nimport type { SimpleNavigationItem } from '@semiont/react-ui';\nimport {\n ClockIcon,\n TagIcon,\n BookOpenIcon,\n ArrowsRightLeftIcon,\n ChevronLeftIcon,\n Bars3Icon\n} from '@heroicons/react/24/outline';\n\ninterface ModerationNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: SimpleNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: ModerationNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Moderation.${k}`, p as any) as string;\n const { t: _tSidebar } = useTranslation();\n const tSidebar = (k: string, p?: Record<string, unknown>) => _tSidebar(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Subscribe to sidebar toggle events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n });\n\n const navigation: SimpleNavigationItem[] = [\n {\n name: t('recentResources'),\n href: '/moderate/recent',\n icon: ClockIcon,\n description: t('recentResourcesDescription')\n },\n {\n name: t('entityTags'),\n href: '/moderate/entity-tags',\n icon: TagIcon,\n description: t('entityTagsDescription')\n },\n {\n name: t('tagSchemas'),\n href: '/moderate/tag-schemas',\n icon: BookOpenIcon,\n description: t('tagSchemasDescription')\n },\n {\n name: t('linkedData'),\n href: '/moderate/linked-data',\n icon: ArrowsRightLeftIcon,\n description: t('linkedDataDescription')\n }\n ];\n\n return (\n <SimpleNavigation\n title={t('title')}\n items={navigation}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n {...(navigationMenu && { dropdownContent: navigationMenu })}\n isCollapsed={isCollapsed}\n icons={{\n chevronLeft: ChevronLeftIcon as React.ComponentType<{ className?: string }>,\n bars: Bars3Icon as React.ComponentType<{ className?: string }>\n }}\n collapseSidebarLabel={tSidebar('collapseSidebar')}\n expandSidebarLabel={tSidebar('expandSidebar')}\n />\n );\n}","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { LeftSidebar, Footer, ApiClientProvider, AuthTokenProvider } from '@semiont/react-ui';\nimport { ModerationNavigation } from '@/components/moderation/ModerationNavigation';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useRouter } from '@/i18n/routing';\nimport { useKnowledgeBaseContext } from '@/contexts/KnowledgeBaseContext';\n\nexport default function ModerateLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const { isAuthenticated, isAdmin, isModerator, token: authToken } = useAuth();\n const { activeKnowledgeBase } = useKnowledgeBaseContext();\n const router = useRouter();\n\n if (!activeKnowledgeBase) {\n router.push('/know');\n return null;\n }\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={activeKnowledgeBase.backendUrl}>\n <div className=\"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col\">\n <div className=\"flex flex-1\">\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Navigation.${key}`)}\n tHome={(key: string) => t(`Home.${key}`)}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"moderation-sidebar-collapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <ModerationNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n <main className=\"flex-1 p-6 flex flex-col\">\n <div className=\"max-w-7xl mx-auto flex-1 flex flex-col w-full\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string, params?: Record<string, unknown>) => t(`Footer.${key}`, params as any) as string}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["BookOpenIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","ClockIcon","TagIcon","HrefLink","href","_to","Link","ModerationNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","p","_tSidebar","tSidebar","pathname","usePathname","handleSidebarToggle","useCallback","useEventSubscriptions","navigation","ArrowsRightLeftIcon","jsx","SimpleNavigation","ChevronLeftIcon","Bars3Icon","ModerateLayout","keyboardContext","useContext","KeyboardShortcutsContext","isAuthenticated","isAdmin","isModerator","authToken","useAuth","activeKnowledgeBase","useKnowledgeBaseContext","router","useRouter","AuthTokenProvider","ApiClientProvider","jsxs","LeftSidebar","routes","key","Outlet","Footer","params","CookiePreferences"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1,2 +0,0 @@
1
- import{j as e}from"./query-ATBhtd3K.js";import{r as s,O as b}from"./vendor-EnoIVk-c.js";import{b as g,L as k,a as v}from"./routing-BPQO9e8a.js";import{g as w,U as j,V as L,X as S,Y as F,F as $}from"./en-IUV4ZXKH-b_r0oyRV.js";import{u as f}from"./i18n-BYxb14hm.js";import{F as y,C as A}from"./CookiePreferences-DIUP_g1S.js";import{F as R}from"./ArrowsRightLeftIcon-CMDe963r.js";import{F as C}from"./CommandLineIcon-BBerq9Nd.js";import{F as K,a as N}from"./ChevronLeftIcon-CMXd_XZQ.js";import{K as E}from"./privacy-BMKdYFGC.js";import{r as x,L as h}from"./routing-BBQqTcTn.js";import{u as H}from"./useAuth-B9hvtwrc.js";import{u as P}from"./KnowledgeBaseContext-CgnF8K-_.js";import"./index-dFCLrpeL.js";import"./AuthContext-CqopYuY9.js";function D({title:t,titleId:r,...n},i){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:i,"aria-labelledby":r},n),t?s.createElement("title",{id:r},t):null,s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"}))}const M=s.forwardRef(D);function O({href:t,to:r,...n}){return e.jsx(k,{to:t??"",...n})}function T({isCollapsed:t,toggleCollapsed:r,navigationMenu:n}){const{t:i}=f(),o=(l,u)=>i(`Administration.${l}`,u),{t:m}=f(),c=(l,u)=>m(`Sidebar.${l}`,u),p=g(),a=s.useCallback(()=>{r()},[r]);w({"browse:sidebar-toggle":a});const d=[{name:o("users"),href:"/admin/users",icon:M,description:o("usersDescription")},{name:o("oauthSettings"),href:"/admin/security",icon:y,description:o("oauthSettingsDescription")},{name:o("exchange"),href:"/admin/exchange",icon:R,description:o("exchangeDescription")},{name:o("devops"),href:"/admin/devops",icon:C,description:o("devopsDescription")}];return e.jsx(j,{title:o("title"),items:d,currentPath:p,LinkComponent:O,...n&&{dropdownContent:n},isCollapsed:t,icons:{chevronLeft:N,bars:K},collapseSidebarLabel:c("collapseSidebar"),expandSidebarLabel:c("expandSidebar")})}function re(){const{t}=f(),r=s.useContext(E),{isAuthenticated:n,isAdmin:i,isModerator:o,token:m}=H(),{activeKnowledgeBase:c}=P(),p=v();return c?e.jsx(L,{token:m,children:e.jsx(S,{baseUrl:c.backendUrl,children:e.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",children:[e.jsxs("div",{className:"flex flex-1",children:[e.jsx(F,{Link:h,routes:x,t:a=>t(`Navigation.${a}`),tHome:a=>t(`Home.${a}`),brandingLink:"/",collapsible:!0,storageKey:"admin-sidebar-collapsed",isAuthenticated:n,isAdmin:i,isModerator:o,children:(a,d,l)=>e.jsx(T,{isCollapsed:a,toggleCollapsed:d,navigationMenu:l})}),e.jsx("main",{className:"flex-1 p-6 flex flex-col",children:e.jsx("div",{className:"max-w-7xl mx-auto flex-1 flex flex-col w-full",children:e.jsx(b,{})})})]}),e.jsx($,{Link:h,routes:x,t:(a,d)=>t(`Footer.${a}`,d),CookiePreferences:A,...(r==null?void 0:r.openKeyboardHelp)&&{onOpenKeyboardHelp:r.openKeyboardHelp}})]})})}):(p.push("/know"),null)}export{re as default};
2
- //# sourceMappingURL=layout-CHfFscVU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-CHfFscVU.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/UsersIcon.js","../../src/components/admin/AdminNavigation.tsx","../../src/app/[locale]/admin/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction UsersIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(UsersIcon);\nexport default ForwardRef;","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname } from '@/i18n/routing';\nimport { SimpleNavigation, useEventSubscriptions } from '@semiont/react-ui';\nimport type { SimpleNavigationItem } from '@semiont/react-ui';\nimport {\n UsersIcon,\n ShieldCheckIcon,\n CommandLineIcon,\n ArrowsRightLeftIcon,\n ChevronLeftIcon,\n Bars3Icon\n} from '@heroicons/react/24/outline';\n\ninterface AdminNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: SimpleNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function AdminNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: AdminNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Administration.${k}`, p as any) as string;\n const { t: _tSidebar } = useTranslation();\n const tSidebar = (k: string, p?: Record<string, unknown>) => _tSidebar(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Subscribe to sidebar toggle events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n });\n\n const navigation: SimpleNavigationItem[] = [\n {\n name: t('users'),\n href: '/admin/users',\n icon: UsersIcon,\n description: t('usersDescription')\n },\n {\n name: t('oauthSettings'),\n href: '/admin/security',\n icon: ShieldCheckIcon,\n description: t('oauthSettingsDescription')\n },\n {\n name: t('exchange'),\n href: '/admin/exchange',\n icon: ArrowsRightLeftIcon,\n description: t('exchangeDescription')\n },\n {\n name: t('devops'),\n href: '/admin/devops',\n icon: CommandLineIcon,\n description: t('devopsDescription')\n },\n ];\n\n return (\n <SimpleNavigation\n title={t('title')}\n items={navigation}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n {...(navigationMenu && { dropdownContent: navigationMenu })}\n isCollapsed={isCollapsed}\n icons={{\n chevronLeft: ChevronLeftIcon as React.ComponentType<{ className?: string }>,\n bars: Bars3Icon as React.ComponentType<{ className?: string }>\n }}\n collapseSidebarLabel={tSidebar('collapseSidebar')}\n expandSidebarLabel={tSidebar('expandSidebar')}\n />\n );\n}","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { AdminNavigation } from '@/components/admin/AdminNavigation';\nimport { LeftSidebar, Footer, ApiClientProvider, AuthTokenProvider } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useRouter } from '@/i18n/routing';\nimport { useKnowledgeBaseContext } from '@/contexts/KnowledgeBaseContext';\n\nexport default function AdminLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const { isAuthenticated, isAdmin, isModerator, token: authToken } = useAuth();\n const { activeKnowledgeBase } = useKnowledgeBaseContext();\n const router = useRouter();\n\n if (!activeKnowledgeBase) {\n router.push('/know');\n return null;\n }\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={activeKnowledgeBase.backendUrl}>\n <div className=\"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col\">\n <div className=\"flex flex-1\">\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Navigation.${key}`)}\n tHome={(key: string) => t(`Home.${key}`)}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"admin-sidebar-collapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <AdminNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n <main className=\"flex-1 p-6 flex flex-col\">\n <div className=\"max-w-7xl mx-auto flex-1 flex flex-col w-full\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string, params?: Record<string, unknown>) => t(`Footer.${key}`, params as any) as string}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["UsersIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","HrefLink","href","_to","Link","AdminNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","p","_tSidebar","tSidebar","pathname","usePathname","handleSidebarToggle","useCallback","useEventSubscriptions","navigation","ShieldCheckIcon","ArrowsRightLeftIcon","CommandLineIcon","jsx","SimpleNavigation","ChevronLeftIcon","Bars3Icon","AdminLayout","keyboardContext","useContext","KeyboardShortcutsContext","isAuthenticated","isAdmin","isModerator","authToken","useAuth","activeKnowledgeBase","useKnowledgeBaseContext","router","useRouter","AuthTokenProvider","ApiClientProvider","jsxs","LeftSidebar","routes","key","Outlet","Footer","params","CookiePreferences"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,6 +0,0 @@
1
- import{j as c,Q as ln,M as an,a as un,b as cn}from"./query-ATBhtd3K.js";import{r as a,R as y,j as dn,t as lt,O as fn}from"./vendor-EnoIVk-c.js";import{g as mn,a8 as pn,ak as hn,al as vn,a9 as gn,am as Be,an as at,ao as ut,ap as yn,aq as bn,ar as xn,as as wn,at as En,au as jn,av as Sn,aw as $n,ax as $t,ay as Ct,az as Cn,aA as kn}from"./en-IUV4ZXKH-b_r0oyRV.js";import{a as Tn,C as Pn,b as Nn,i as An,c as Fn,s as Ue}from"./privacy-BMKdYFGC.js";import{a as kt}from"./routing-BPQO9e8a.js";import{A as Rn,u as On}from"./AuthContext-CqopYuY9.js";import{K as Ln,u as Mn}from"./KnowledgeBaseContext-CgnF8K-_.js";import{u as Dn}from"./useAuth-B9hvtwrc.js";import{u as Tt}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";function In(){const e=kt(),t=a.useCallback(({url:r,cancelFallback:o})=>{o(),e.push(r)},[e]),n=a.useCallback(({path:r})=>{e.push(r)},[e]);return mn({"browse:external-navigate":t,"browse:router-push":n}),null}class _n extends y.Component{constructor(t){super(t),this.handleReset=()=>{this.setState({hasError:!1,error:null})},this.handleSignIn=()=>{window.location.href=`/auth/connect?callbackUrl=${encodeURIComponent(window.location.pathname)}`},this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){}render(){var t,n,r,o,i,u;if(this.state.hasError){const s=((n=(t=this.state.error)==null?void 0:t.message)==null?void 0:n.toLowerCase().includes("auth"))||((o=(r=this.state.error)==null?void 0:r.message)==null?void 0:o.toLowerCase().includes("session"))||((u=(i=this.state.error)==null?void 0:i.message)==null?void 0:u.toLowerCase().includes("token"));return c.jsx("div",{className:"min-h-[400px] flex items-center justify-center p-4",children:c.jsxs("div",{className:"max-w-md w-full bg-white dark:bg-gray-800 rounded-lg shadow-lg p-6",children:[c.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[c.jsx("div",{className:"flex-shrink-0 w-10 h-10 bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center",children:c.jsx("svg",{className:"w-6 h-6 text-red-600 dark:text-red-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),c.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:s?"Authentication Error":"Something went wrong"})]}),c.jsx("p",{className:"text-gray-600 dark:text-gray-300 mb-6",children:s?"There was a problem with your authentication. Please try signing in again.":"An unexpected error occurred. Please try refreshing the page."}),!1,c.jsx("div",{className:"flex gap-3",children:s?c.jsxs(c.Fragment,{children:[c.jsx("button",{onClick:this.handleReset,className:"flex-1 px-4 py-2 text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200 transition-colors",children:"Try Again"}),c.jsx("button",{onClick:this.handleSignIn,className:"flex-1 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:"Sign In"})]}):c.jsx("button",{onClick:()=>window.location.reload(),className:"w-full px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:"Refresh Page"})})]})})}return this.props.children}}const Bn=300*1e3;function ct(e){if(!e)return{isAuthenticated:!1,expiresAt:null,timeUntilExpiry:null,isExpiringSoon:!1};let t=null;try{const o=e.split(".");if(o.length===3&&o[1]){const i=JSON.parse(atob(o[1]));i.exp&&(t=new Date(i.exp*1e3))}}catch{}const n=Date.now(),r=t?t.getTime()-n:null;return{isAuthenticated:!0,expiresAt:t,timeUntilExpiry:r,isExpiringSoon:r!==null&&r<Bn&&r>0}}class Un{constructor(){this.state$=new pn(ct(null)),this.session$=this.state$.asObservable()}setToken(t){this.state$.next(ct(t))}get state(){return this.state$.value}select(t){return this.session$.pipe(hn(n=>n[t]),vn())}}function Wn(){const{token:e}=Dn(),t=a.useMemo(()=>new Un,[]);return a.useEffect(()=>{t.setToken(e??null)},[t,e]),gn(t.session$)??t.state}function Hn(){const{i18n:e}=Tt();return a.useMemo(()=>({t:(t,n,r)=>{var u;const o=e.getResourceBundle(e.language,"translation");let i=(u=o==null?void 0:o[t])==null?void 0:u[n];if(!i)return`${t}.${n}`;if(r&&typeof i=="string"){let s=i;return Object.entries(r).forEach(([l,d])=>{s=s.replace(new RegExp(`\\{${l}\\}`,"g"),String(d))}),s}return i}}),[e,e.language])}function Gn(){return new ln({queryCache:new un({onError:e=>{e instanceof Be&&(e.status===401?at("Your session has expired. Please sign in again."):e.status===403&&ut("You do not have permission to access this resource."))}}),mutationCache:new an({onError:e=>{e instanceof Be&&(e.status===401?at("Your session has expired. Please sign in again."):e.status===403&&ut("You do not have permission to perform this action."))}}),defaultOptions:{queries:{retry:(e,t)=>t instanceof Be&&(t.status===401||t.status===403||t.status>=400&&t.status<500)?!1:e<3,retryDelay:e=>Math.min(1e3*2**e,3e4),staleTime:300*1e3,refetchOnWindowFocus:!1}}})}function dt({children:e,queryClient:t}){const n=Wn(),r=Hn();return c.jsx(_n,{children:c.jsx(yn,{sessionManager:n,children:c.jsx(bn,{translationManager:r,children:c.jsx(cn,{client:t,children:c.jsx(xn,{children:c.jsx(wn,{children:c.jsx(Tn,{children:c.jsx(En,{children:c.jsxs(jn,{children:[c.jsx(In,{}),e]})})})})})})})})})}function zn({children:e,queryClient:t}){const{activeKnowledgeBase:n}=Mn();return n?c.jsx(Rn,{backendUrl:n.backendUrl,children:c.jsx(dt,{queryClient:t,children:e})},n.id):c.jsx(dt,{queryClient:t,children:e})}function Yn({children:e}){const[t]=a.useState(()=>Gn());return c.jsx(Ln,{children:c.jsx(zn,{queryClient:t,children:e})})}function Vn({title:e,titleId:t,...n},r){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?a.createElement("title",{id:t},e):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const qn=a.forwardRef(Vn);function Kn({title:e,titleId:t,...n},r){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?a.createElement("title",{id:t},e):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const Xn=a.forwardRef(Kn);function Qn({className:e=""}){const{t}=Tt(),n=(h,w)=>t(`CookieBanner.${h}`,w),[r,o]=a.useState(!1),[i,u]=a.useState(!1),[s,l]=a.useState(!1),[d,f]=a.useState("GENERAL"),[p,m]=a.useState({necessary:!0,analytics:!1,marketing:!1,preferences:!1});a.useEffect(()=>{(async()=>{if(Nn()){o(!0);try{const[w,N]=await Promise.all([An(),Fn()]);f(w?"GDPR":N?"CCPA":"GENERAL")}catch(w){console.error("Failed to detect region:",w),f("GENERAL")}}})()},[]);const v=async()=>{l(!0);try{const h={necessary:!0,analytics:!0,marketing:!0,preferences:!0};await Promise.resolve(Ue(h)),o(!1)}catch(h){console.error("Failed to save cookie consent:",h)}finally{l(!1)}},g=async()=>{l(!0);try{const h={necessary:!0,analytics:!1,marketing:!1,preferences:!1};await Promise.resolve(Ue(h)),o(!1)}catch(h){console.error("Failed to save cookie consent:",h)}finally{l(!1)}},x=async()=>{l(!0);try{await Promise.resolve(Ue(p)),o(!1)}catch(h){console.error("Failed to save cookie consent:",h)}finally{l(!1)}},b=h=>{h!=="necessary"&&m(w=>({...w,[h]:!w[h]}))},$=()=>{switch(d){case"GDPR":return{title:n("gdprTitle"),description:n("gdprDescription"),learnMore:n("gdprLearnMore")};case"CCPA":return{title:n("ccpaTitle"),description:n("ccpaDescription"),learnMore:n("ccpaLearnMore")};default:return{title:n("generalTitle"),description:n("generalDescription"),learnMore:n("generalLearnMore")}}};if(!r)return null;const S=$();return c.jsx("div",{className:e,style:{position:"fixed",bottom:0,left:0,right:0,zIndex:50,backgroundColor:"var(--semiont-bg-primary)",borderTop:"1px solid var(--semiont-border-primary)",boxShadow:"var(--semiont-shadow-lg)"},children:c.jsx("div",{style:{maxWidth:"80rem",margin:"0 auto",padding:"1rem 1.5rem"},children:c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"1.5rem",flexWrap:"wrap"},children:[c.jsxs("div",{style:{flex:1,minWidth:"300px"},children:[c.jsx("h3",{style:{fontSize:"1.125rem",fontWeight:600,color:"var(--semiont-text-primary)",marginBottom:"0.5rem"},children:S.title}),c.jsx("p",{style:{fontSize:"var(--semiont-text-sm, 0.875rem)",color:"var(--semiont-text-secondary)",marginBottom:"0.25rem"},children:S.description}),c.jsx("p",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)"},children:S.learnMore})]}),c.jsxs("div",{style:{display:"flex",gap:"0.75rem",alignItems:"center",flexWrap:"wrap"},children:[c.jsxs("button",{type:"button",onClick:()=>u(!i),className:"semiont-button--secondary",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[n("customize"),i?c.jsx(Xn,{style:{width:"1rem",height:"1rem"}}):c.jsx(qn,{style:{width:"1rem",height:"1rem"}})]}),d!=="GDPR"&&c.jsx("button",{type:"button",onClick:g,disabled:s,className:"semiont-button--secondary",children:n(s?"saving":"rejectAll")}),c.jsx("button",{type:"button",onClick:v,disabled:s,className:"semiont-button--primary",children:n(s?"saving":"acceptAll")})]})]}),i&&c.jsx("div",{style:{borderTop:"1px solid var(--semiont-border-primary)",paddingTop:"1rem"},children:c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[c.jsx("h4",{style:{fontSize:"1rem",fontWeight:500,color:"var(--semiont-text-primary)"},children:n("cookiePreferences")}),c.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:Pn.map(h=>c.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[c.jsx("div",{style:{display:"flex",alignItems:"center",height:"1.25rem"},children:c.jsx("input",{id:`cookie-${h.id}`,type:"checkbox",checked:p[h.id]||!1,onChange:()=>b(h.id),disabled:h.required||s,style:{accentColor:"var(--semiont-color-primary-600, #2563eb)"}})}),c.jsxs("div",{style:{flex:1,minWidth:0},children:[c.jsxs("label",{htmlFor:`cookie-${h.id}`,style:{fontSize:"var(--semiont-text-sm, 0.875rem)",fontWeight:500,color:"var(--semiont-text-primary)",cursor:"pointer"},children:[h.name,h.required&&c.jsx("span",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)",marginLeft:"0.25rem"},children:n("required")})]}),c.jsx("p",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-secondary)",marginTop:"0.25rem"},children:h.description}),c.jsxs("details",{style:{marginTop:"0.25rem"},children:[c.jsx("summary",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-color-primary-600, #2563eb)",cursor:"pointer"},children:n("viewCookies")}),c.jsx("div",{style:{marginTop:"0.25rem",fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)"},children:h.cookies.join(", ")})]})]})]},h.id))}),c.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.75rem",paddingTop:"1rem"},children:[c.jsx("button",{type:"button",onClick:()=>u(!1),className:"semiont-button--secondary",children:n("cancel")}),c.jsx("button",{type:"button",onClick:x,disabled:s,className:"semiont-button--primary",children:n(s?"saving":"savePreferences")})]})]})})]})})})}var Zn=Object.defineProperty,Jn=(e,t,n)=>t in e?Zn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,We=(e,t,n)=>(Jn(e,typeof t!="symbol"?t+"":t,n),n);let er=class{constructor(){We(this,"current",this.detect()),We(this,"handoffState","pending"),We(this,"currentId",0)}set(t){this.current!==t&&(this.handoffState="pending",this.currentId=0,this.current=t)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},M=new er;function pe(e){var t;return M.isServer?null:e==null?document:(t=e==null?void 0:e.ownerDocument)!=null?t:document}function Ye(e){var t,n;return M.isServer?null:e==null?document:(n=(t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))!=null?n:document}function Pt(e){var t,n;return(n=(t=Ye(e))==null?void 0:t.activeElement)!=null?n:null}function tr(e){return Pt(e)===e}function Te(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{throw t}))}function W(){let e=[],t={addEventListener(n,r,o,i){return n.addEventListener(r,o,i),t.add(()=>n.removeEventListener(r,o,i))},requestAnimationFrame(...n){let r=requestAnimationFrame(...n);return t.add(()=>cancelAnimationFrame(r))},nextFrame(...n){return t.requestAnimationFrame(()=>t.requestAnimationFrame(...n))},setTimeout(...n){let r=setTimeout(...n);return t.add(()=>clearTimeout(r))},microTask(...n){let r={current:!0};return Te(()=>{r.current&&n[0]()}),t.add(()=>{r.current=!1})},style(n,r,o){let i=n.style.getPropertyValue(r);return Object.assign(n.style,{[r]:o}),this.add(()=>{Object.assign(n.style,{[r]:i})})},group(n){let r=W();return n(r),this.add(()=>r.dispose())},add(n){return e.includes(n)||e.push(n),()=>{let r=e.indexOf(n);if(r>=0)for(let o of e.splice(r,1))o()}},dispose(){for(let n of e.splice(0))n()}};return t}function Pe(){let[e]=a.useState(W);return a.useEffect(()=>()=>e.dispose(),[e]),e}let k=(e,t)=>{M.isServer?a.useEffect(e,t):a.useLayoutEffect(e,t)};function te(e){let t=a.useRef(e);return k(()=>{t.current=e},[e]),t}let j=function(e){let t=te(e);return y.useCallback((...n)=>t.current(...n),[t])};function he(e){return a.useMemo(()=>e,Object.values(e))}let nr=a.createContext(void 0);function rr(){return a.useContext(nr)}function Ve(...e){return Array.from(new Set(e.flatMap(t=>typeof t=="string"?t.split(" "):[]))).filter(Boolean).join(" ")}function U(e,t,...n){if(e in t){let o=t[e];return typeof o=="function"?o(...n):o}let r=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(o=>`"${o}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,U),r}var $e=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))($e||{}),z=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(z||{});function F(){let e=ir();return a.useCallback(t=>or({mergeRefs:e,...t}),[e])}function or({ourProps:e,theirProps:t,slot:n,defaultTag:r,features:o,visible:i=!0,name:u,mergeRefs:s}){s=s??sr;let l=Nt(t,e);if(i)return je(l,n,r,u,s);let d=o??0;if(d&2){let{static:f=!1,...p}=l;if(f)return je(p,n,r,u,s)}if(d&1){let{unmount:f=!0,...p}=l;return U(f?0:1,{0(){return null},1(){return je({...p,hidden:!0,style:{display:"none"}},n,r,u,s)}})}return je(l,n,r,u,s)}function je(e,t={},n,r,o){let{as:i=n,children:u,refName:s="ref",...l}=He(e,["unmount","static"]),d=e.ref!==void 0?{[s]:e.ref}:{},f=typeof u=="function"?u(t):u;"className"in l&&l.className&&typeof l.className=="function"&&(l.className=l.className(t)),l["aria-labelledby"]&&l["aria-labelledby"]===l.id&&(l["aria-labelledby"]=void 0);let p={};if(t){let m=!1,v=[];for(let[g,x]of Object.entries(t))typeof x=="boolean"&&(m=!0),x===!0&&v.push(g.replace(/([A-Z])/g,b=>`-${b.toLowerCase()}`));if(m){p["data-headlessui-state"]=v.join(" ");for(let g of v)p[`data-${g}`]=""}}if(de(i)&&(Object.keys(X(l)).length>0||Object.keys(X(p)).length>0))if(!a.isValidElement(f)||Array.isArray(f)&&f.length>1||ar(f)){if(Object.keys(X(l)).length>0)throw new Error(['Passing props on "Fragment"!',"",`The current component <${r} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(X(l)).concat(Object.keys(X(p))).map(m=>` - ${m}`).join(`
2
- `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(m=>` - ${m}`).join(`
3
- `)].join(`
4
- `))}else{let m=f.props,v=m==null?void 0:m.className,g=typeof v=="function"?(...$)=>Ve(v(...$),l.className):Ve(v,l.className),x=g?{className:g}:{},b=Nt(f.props,X(He(l,["ref"])));for(let $ in p)$ in b&&delete p[$];return a.cloneElement(f,Object.assign({},b,p,d,{ref:o(lr(f),d.ref)},x))}return a.createElement(i,Object.assign({},He(l,["ref"]),!de(i)&&d,!de(i)&&p),f)}function ir(){let e=a.useRef([]),t=a.useCallback(n=>{for(let r of e.current)r!=null&&(typeof r=="function"?r(n):r.current=n)},[]);return(...n)=>{if(!n.every(r=>r==null))return e.current=n,t}}function sr(...e){return e.every(t=>t==null)?void 0:t=>{for(let n of e)n!=null&&(typeof n=="function"?n(t):n.current=t)}}function Nt(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},n={};for(let r of e)for(let o in r)o.startsWith("on")&&typeof r[o]=="function"?(n[o]!=null||(n[o]=[]),n[o].push(r[o])):t[o]=r[o];if(t.disabled||t["aria-disabled"])for(let r in n)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(r)&&(n[r]=[o=>{var i;return(i=o==null?void 0:o.preventDefault)==null?void 0:i.call(o)}]);for(let r in n)Object.assign(t,{[r](o,...i){let u=n[r];for(let s of u){if((o instanceof Event||(o==null?void 0:o.nativeEvent)instanceof Event)&&o.defaultPrevented)return;s(o,...i)}}});return t}function T(e){var t;return Object.assign(a.forwardRef(e),{displayName:(t=e.displayName)!=null?t:e.name})}function X(e){let t=Object.assign({},e);for(let n in t)t[n]===void 0&&delete t[n];return t}function He(e,t=[]){let n=Object.assign({},e);for(let r of t)r in n&&delete n[r];return n}function lr(e){return y.version.split(".")[0]>="19"?e.props.ref:e.ref}function de(e){return e===a.Fragment||e===Symbol.for("react.fragment")}function ar(e){return de(e.type)}let ur="span";var Ce=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(Ce||{});function cr(e,t){var n;let{features:r=1,...o}=e,i={ref:t,"aria-hidden":(r&2)===2?!0:(n=o["aria-hidden"])!=null?n:void 0,hidden:(r&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(r&4)===4&&(r&2)!==2&&{display:"none"}}};return F()({ourProps:i,theirProps:o,slot:{},defaultTag:ur,name:"Hidden"})}let qe=T(cr);function dr(e){return typeof e!="object"||e===null?!1:"nodeType"in e}function V(e){return dr(e)&&"tagName"in e}function J(e){return V(e)&&"accessKey"in e}function Y(e){return V(e)&&"tabIndex"in e}function fr(e){return V(e)&&"style"in e}function mr(e){return J(e)&&e.nodeName==="IFRAME"}function pr(e){return J(e)&&e.nodeName==="INPUT"}let At=Symbol();function hr(e,t=!0){return Object.assign(e,{[At]:t})}function D(...e){let t=a.useRef(e);a.useEffect(()=>{t.current=e},[e]);let n=j(r=>{for(let o of t.current)o!=null&&(typeof o=="function"?o(r):o.current=r)});return e.every(r=>r==null||(r==null?void 0:r[At]))?void 0:n}let Je=a.createContext(null);Je.displayName="DescriptionContext";function Ft(){let e=a.useContext(Je);if(e===null){let t=new Error("You used a <Description /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,Ft),t}return e}function vr(){let[e,t]=a.useState([]);return[e.length>0?e.join(" "):void 0,a.useMemo(()=>function(n){let r=j(i=>(t(u=>[...u,i]),()=>t(u=>{let s=u.slice(),l=s.indexOf(i);return l!==-1&&s.splice(l,1),s}))),o=a.useMemo(()=>({register:r,slot:n.slot,name:n.name,props:n.props,value:n.value}),[r,n.slot,n.name,n.props,n.value]);return y.createElement(Je.Provider,{value:o},n.children)},[t])]}let gr="p";function yr(e,t){let n=a.useId(),r=rr(),{id:o=`headlessui-description-${n}`,...i}=e,u=Ft(),s=D(t);k(()=>u.register(o),[o,u.register]);let l=he({...u.slot,disabled:r||!1}),d={ref:s,...u.props,id:o};return F()({ourProps:d,theirProps:i,slot:l,defaultTag:gr,name:u.name||"Description"})}let br=T(yr),xr=Object.assign(br,{});var Rt=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(Rt||{});let wr=a.createContext(()=>{});function Er({value:e,children:t}){return y.createElement(wr.Provider,{value:e},t)}let Ot=class extends Map{constructor(t){super(),this.factory=t}get(t){let n=super.get(t);return n===void 0&&(n=this.factory(t),this.set(t,n)),n}};var jr=Object.defineProperty,Sr=(e,t,n)=>t in e?jr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$r=(e,t,n)=>(Sr(e,t+"",n),n),Lt=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},A=(e,t,n)=>(Lt(e,t,"read from private field"),n?n.call(e):t.get(e)),Ge=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},ft=(e,t,n,r)=>(Lt(e,t,"write to private field"),t.set(e,n),n),L,ae,ue;let Cr=class{constructor(t){Ge(this,L,{}),Ge(this,ae,new Ot(()=>new Set)),Ge(this,ue,new Set),$r(this,"disposables",W()),ft(this,L,t),M.isServer&&this.disposables.microTask(()=>{this.dispose()})}dispose(){this.disposables.dispose()}get state(){return A(this,L)}subscribe(t,n){if(M.isServer)return()=>{};let r={selector:t,callback:n,current:t(A(this,L))};return A(this,ue).add(r),this.disposables.add(()=>{A(this,ue).delete(r)})}on(t,n){return M.isServer?()=>{}:(A(this,ae).get(t).add(n),this.disposables.add(()=>{A(this,ae).get(t).delete(n)}))}send(t){let n=this.reduce(A(this,L),t);if(n!==A(this,L)){ft(this,L,n);for(let r of A(this,ue)){let o=r.selector(A(this,L));Mt(r.current,o)||(r.current=o,r.callback(o))}for(let r of A(this,ae).get(t.type))r(A(this,L),t)}}};L=new WeakMap,ae=new WeakMap,ue=new WeakMap;function Mt(e,t){return Object.is(e,t)?!0:typeof e!="object"||e===null||typeof t!="object"||t===null?!1:Array.isArray(e)&&Array.isArray(t)?e.length!==t.length?!1:ze(e[Symbol.iterator](),t[Symbol.iterator]()):e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set?e.size!==t.size?!1:ze(e.entries(),t.entries()):mt(e)&&mt(t)?ze(Object.entries(e)[Symbol.iterator](),Object.entries(t)[Symbol.iterator]()):!1}function ze(e,t){do{let n=e.next(),r=t.next();if(n.done&&r.done)return!0;if(n.done||r.done||!Object.is(n.value,r.value))return!1}while(!0)}function mt(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||Object.getPrototypeOf(t)===null}var kr=Object.defineProperty,Tr=(e,t,n)=>t in e?kr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pt=(e,t,n)=>(Tr(e,typeof t!="symbol"?t+"":t,n),n),Pr=(e=>(e[e.Push=0]="Push",e[e.Pop=1]="Pop",e))(Pr||{});let Nr={0(e,t){let n=t.id,r=e.stack,o=e.stack.indexOf(n);if(o!==-1){let i=e.stack.slice();return i.splice(o,1),i.push(n),r=i,{...e,stack:r}}return{...e,stack:[...e.stack,n]}},1(e,t){let n=t.id,r=e.stack.indexOf(n);if(r===-1)return e;let o=e.stack.slice();return o.splice(r,1),{...e,stack:o}}},Ar=class Dt extends Cr{constructor(){super(...arguments),pt(this,"actions",{push:t=>this.send({type:0,id:t}),pop:t=>this.send({type:1,id:t})}),pt(this,"selectors",{isTop:(t,n)=>t.stack[t.stack.length-1]===n,inStack:(t,n)=>t.stack.includes(n)})}static new(){return new Dt({stack:[]})}reduce(t,n){return U(n.type,Nr,t,n)}};const It=new Ot(()=>Ar.new());function _t(e,t,n=Mt){return Sn.useSyncExternalStoreWithSelector(j(r=>e.subscribe(Fr,r)),j(()=>e.state),j(()=>e.state),j(t),n)}function Fr(e){return e}function ve(e,t){let n=a.useId(),r=It.get(t),[o,i]=_t(r,a.useCallback(u=>[r.selectors.isTop(u,n),r.selectors.inStack(u,n)],[r,n]));return k(()=>{if(e)return r.actions.push(n),()=>r.actions.pop(n)},[r,e,n]),e?i?o:!0:!1}let Ke=new Map,fe=new Map;function ht(e){var t;let n=(t=fe.get(e))!=null?t:0;return fe.set(e,n+1),n!==0?()=>vt(e):(Ke.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),e.setAttribute("aria-hidden","true"),e.inert=!0,()=>vt(e))}function vt(e){var t;let n=(t=fe.get(e))!=null?t:1;if(n===1?fe.delete(e):fe.set(e,n-1),n!==1)return;let r=Ke.get(e);r&&(r["aria-hidden"]===null?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",r["aria-hidden"]),e.inert=r.inert,Ke.delete(e))}function Rr(e,{allowed:t,disallowed:n}={}){let r=ve(e,"inert-others");k(()=>{var o,i;if(!r)return;let u=W();for(let l of(o=n==null?void 0:n())!=null?o:[])l&&u.add(ht(l));let s=(i=t==null?void 0:t())!=null?i:[];for(let l of s){if(!l)continue;let d=pe(l);if(!d)continue;let f=l.parentElement;for(;f&&f!==d.body;){for(let p of f.children)s.some(m=>p.contains(m))||u.add(ht(p));f=f.parentElement}}return u.dispose},[r,t,n])}function Or(e,t,n){let r=te(o=>{let i=o.getBoundingClientRect();i.x===0&&i.y===0&&i.width===0&&i.height===0&&n()});a.useEffect(()=>{if(!e)return;let o=t===null?null:J(t)?t:t.current;if(!o)return;let i=W();if(typeof ResizeObserver<"u"){let u=new ResizeObserver(()=>r.current(o));u.observe(o),i.add(()=>u.disconnect())}if(typeof IntersectionObserver<"u"){let u=new IntersectionObserver(()=>r.current(o));u.observe(o),i.add(()=>u.disconnect())}return()=>i.dispose()},[t,r,e])}let ke=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","details>summary","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(","),Lr=["[data-autofocus]"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var _=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e[e.AutoFocus=64]="AutoFocus",e))(_||{}),Xe=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(Xe||{}),Mr=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(Mr||{});function Dr(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(ke)).sort((t,n)=>Math.sign((t.tabIndex||Number.MAX_SAFE_INTEGER)-(n.tabIndex||Number.MAX_SAFE_INTEGER)))}function Ir(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Lr)).sort((t,n)=>Math.sign((t.tabIndex||Number.MAX_SAFE_INTEGER)-(n.tabIndex||Number.MAX_SAFE_INTEGER)))}var Bt=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(Bt||{});function _r(e,t=0){var n;return e===((n=pe(e))==null?void 0:n.body)?!1:U(t,{0(){return e.matches(ke)},1(){let r=e;for(;r!==null;){if(r.matches(ke))return!0;r=r.parentElement}return!1}})}var Br=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(Br||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function B(e){e==null||e.focus({preventScroll:!0})}let Ur=["textarea","input"].join(",");function Wr(e){var t,n;return(n=(t=e==null?void 0:e.matches)==null?void 0:t.call(e,Ur))!=null?n:!1}function Hr(e,t=n=>n){return e.slice().sort((n,r)=>{let o=t(n),i=t(r);if(o===null||i===null)return 0;let u=o.compareDocumentPosition(i);return u&Node.DOCUMENT_POSITION_FOLLOWING?-1:u&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function me(e,t,{sorted:n=!0,relativeTo:r=null,skipElements:o=[]}={}){let i=Array.isArray(e)?e.length>0?Ye(e[0]):document:Ye(e),u=Array.isArray(e)?n?Hr(e):e:t&64?Ir(e):Dr(e);o.length>0&&u.length>1&&(u=u.filter(v=>!o.some(g=>g!=null&&"current"in g?(g==null?void 0:g.current)===v:g===v))),r=r??(i==null?void 0:i.activeElement);let s=(()=>{if(t&5)return 1;if(t&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),l=(()=>{if(t&1)return 0;if(t&2)return Math.max(0,u.indexOf(r))-1;if(t&4)return Math.max(0,u.indexOf(r))+1;if(t&8)return u.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),d=t&32?{preventScroll:!0}:{},f=0,p=u.length,m;do{if(f>=p||f+p<=0)return 0;let v=l+f;if(t&16)v=(v+p)%p;else{if(v<0)return 3;if(v>=p)return 1}m=u[v],m==null||m.focus(d),f+=s}while(m!==Pt(m));return t&6&&Wr(m)&&m.select(),2}function Ut(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function Gr(){return/Android/gi.test(window.navigator.userAgent)}function gt(){return Ut()||Gr()}function Se(e,t,n,r){let o=te(n);a.useEffect(()=>{if(!e)return;function i(u){o.current(u)}return document.addEventListener(t,i,r),()=>document.removeEventListener(t,i,r)},[e,t,r])}function Wt(e,t,n,r){let o=te(n);a.useEffect(()=>{if(!e)return;function i(u){o.current(u)}return window.addEventListener(t,i,r),()=>window.removeEventListener(t,i,r)},[e,t,r])}const yt=30;function zr(e,t,n){let r=te(n),o=a.useCallback(function(s,l){if(s.defaultPrevented)return;let d=l(s);if(d===null||!d.getRootNode().contains(d)||!d.isConnected)return;let f=(function p(m){return typeof m=="function"?p(m()):Array.isArray(m)||m instanceof Set?m:[m]})(t);for(let p of f)if(p!==null&&(p.contains(d)||s.composed&&s.composedPath().includes(p)))return;return!_r(d,Bt.Loose)&&d.tabIndex!==-1&&s.preventDefault(),r.current(s,d)},[r,t]),i=a.useRef(null);Se(e,"pointerdown",s=>{var l,d;gt()||(i.current=((d=(l=s.composedPath)==null?void 0:l.call(s))==null?void 0:d[0])||s.target)},!0),Se(e,"pointerup",s=>{if(gt()||!i.current)return;let l=i.current;return i.current=null,o(s,()=>l)},!0);let u=a.useRef({x:0,y:0});Se(e,"touchstart",s=>{u.current.x=s.touches[0].clientX,u.current.y=s.touches[0].clientY},!0),Se(e,"touchend",s=>{let l={x:s.changedTouches[0].clientX,y:s.changedTouches[0].clientY};if(!(Math.abs(l.x-u.current.x)>=yt||Math.abs(l.y-u.current.y)>=yt))return o(s,()=>Y(s.target)?s.target:null)},!0),Wt(e,"blur",s=>o(s,()=>mr(window.document.activeElement)?window.document.activeElement:null),!0)}function et(...e){return a.useMemo(()=>pe(...e),[...e])}function Ht(e,t,n,r){let o=te(n);a.useEffect(()=>{e=e??window;function i(u){o.current(u)}return e.addEventListener(t,i,r),()=>e.removeEventListener(t,i,r)},[e,t,r])}function Yr(e){return a.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getSnapshot)}function Vr(e,t){let n=e(),r=new Set;return{getSnapshot(){return n},subscribe(o){return r.add(o),()=>r.delete(o)},dispatch(o,...i){let u=t[o].call(n,...i);u&&(n=u,r.forEach(s=>s()))}}}function qr(){let e;return{before({doc:t}){var n;let r=t.documentElement,o=(n=t.defaultView)!=null?n:window;e=Math.max(0,o.innerWidth-r.clientWidth)},after({doc:t,d:n}){let r=t.documentElement,o=Math.max(0,r.clientWidth-r.offsetWidth),i=Math.max(0,e-o);n.style(r,"paddingRight",`${i}px`)}}}function Kr(){return Ut()?{before({doc:e,d:t,meta:n}){function r(o){for(let i of n().containers)for(let u of i())if(u.contains(o))return!0;return!1}t.microTask(()=>{var o;if(window.getComputedStyle(e.documentElement).scrollBehavior!=="auto"){let s=W();s.style(e.documentElement,"scrollBehavior","auto"),t.add(()=>t.microTask(()=>s.dispose()))}let i=(o=window.scrollY)!=null?o:window.pageYOffset,u=null;t.addEventListener(e,"click",s=>{if(Y(s.target))try{let l=s.target.closest("a");if(!l)return;let{hash:d}=new URL(l.href),f=e.querySelector(d);Y(f)&&!r(f)&&(u=f)}catch{}},!0),t.group(s=>{t.addEventListener(e,"touchstart",l=>{if(s.dispose(),Y(l.target)&&fr(l.target))if(r(l.target)){let d=l.target;for(;d.parentElement&&r(d.parentElement);)d=d.parentElement;s.style(d,"overscrollBehavior","contain")}else s.style(l.target,"touchAction","none")})}),t.addEventListener(e,"touchmove",s=>{if(Y(s.target)){if(pr(s.target))return;if(r(s.target)){let l=s.target;for(;l.parentElement&&l.dataset.headlessuiPortal!==""&&!(l.scrollHeight>l.clientHeight||l.scrollWidth>l.clientWidth);)l=l.parentElement;l.dataset.headlessuiPortal===""&&s.preventDefault()}else s.preventDefault()}},{passive:!1}),t.add(()=>{var s;let l=(s=window.scrollY)!=null?s:window.pageYOffset;i!==l&&window.scrollTo(0,i),u&&u.isConnected&&(u.scrollIntoView({block:"nearest"}),u=null)})})}}:{}}function Xr(){return{before({doc:e,d:t}){t.style(e.documentElement,"overflow","hidden")}}}function bt(e){let t={};for(let n of e)Object.assign(t,n(t));return t}let Z=Vr(()=>new Map,{PUSH(e,t){var n;let r=(n=this.get(e))!=null?n:{doc:e,count:0,d:W(),meta:new Set,computedMeta:{}};return r.count++,r.meta.add(t),r.computedMeta=bt(r.meta),this.set(e,r),this},POP(e,t){let n=this.get(e);return n&&(n.count--,n.meta.delete(t),n.computedMeta=bt(n.meta)),this},SCROLL_PREVENT(e){let t={doc:e.doc,d:e.d,meta(){return e.computedMeta}},n=[Kr(),qr(),Xr()];n.forEach(({before:r})=>r==null?void 0:r(t)),n.forEach(({after:r})=>r==null?void 0:r(t))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});Z.subscribe(()=>{let e=Z.getSnapshot(),t=new Map;for(let[n]of e)t.set(n,n.documentElement.style.overflow);for(let n of e.values()){let r=t.get(n.doc)==="hidden",o=n.count!==0;(o&&!r||!o&&r)&&Z.dispatch(n.count>0?"SCROLL_PREVENT":"SCROLL_ALLOW",n),n.count===0&&Z.dispatch("TEARDOWN",n)}});function Qr(e,t,n=()=>({containers:[]})){let r=Yr(Z),o=t?r.get(t):void 0,i=o?o.count>0:!1;return k(()=>{if(!(!t||!e))return Z.dispatch("PUSH",t,n),()=>Z.dispatch("POP",t,n)},[e,t]),i}function Zr(e,t,n=()=>[document.body]){let r=ve(e,"scroll-lock");Qr(r,t,o=>{var i;return{containers:[...(i=o.containers)!=null?i:[],n]}})}function Jr(e=0){let[t,n]=a.useState(e),r=a.useCallback(l=>n(l),[]),o=a.useCallback(l=>n(d=>d|l),[]),i=a.useCallback(l=>(t&l)===l,[t]),u=a.useCallback(l=>n(d=>d&~l),[]),s=a.useCallback(l=>n(d=>d^l),[]);return{flags:t,setFlag:r,addFlag:o,hasFlag:i,removeFlag:u,toggleFlag:s}}var eo={},xt,wt;typeof process<"u"&&typeof globalThis<"u"&&typeof Element<"u"&&((xt=process==null?void 0:eo)==null?void 0:xt.NODE_ENV)==="test"&&typeof((wt=Element==null?void 0:Element.prototype)==null?void 0:wt.getAnimations)>"u"&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(`
5
- `)),[]});var to=(e=>(e[e.None=0]="None",e[e.Closed=1]="Closed",e[e.Enter=2]="Enter",e[e.Leave=4]="Leave",e))(to||{});function no(e){let t={};for(let n in e)e[n]===!0&&(t[`data-${n}`]="");return t}function ro(e,t,n,r){let[o,i]=a.useState(n),{hasFlag:u,addFlag:s,removeFlag:l}=Jr(e&&o?3:0),d=a.useRef(!1),f=a.useRef(!1),p=Pe();return k(()=>{var m;if(e){if(n&&i(!0),!t){n&&s(3);return}return(m=r==null?void 0:r.start)==null||m.call(r,n),oo(t,{inFlight:d,prepare(){f.current?f.current=!1:f.current=d.current,d.current=!0,!f.current&&(n?(s(3),l(4)):(s(4),l(2)))},run(){f.current?n?(l(3),s(4)):(l(4),s(3)):n?l(1):s(1)},done(){var v;f.current&&lo(t)||(d.current=!1,l(7),n||i(!1),(v=r==null?void 0:r.end)==null||v.call(r,n))}})}},[e,n,t,p]),e?[o,{closed:u(1),enter:u(2),leave:u(4),transition:u(2)||u(4)}]:[n,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function oo(e,{prepare:t,run:n,done:r,inFlight:o}){let i=W();return so(e,{prepare:t,inFlight:o}),i.nextFrame(()=>{n(),i.requestAnimationFrame(()=>{i.add(io(e,r))})}),i.dispose}function io(e,t){var n,r;let o=W();if(!e)return o.dispose;let i=!1;o.add(()=>{i=!0});let u=(r=(n=e.getAnimations)==null?void 0:n.call(e).filter(s=>s instanceof CSSTransition))!=null?r:[];return u.length===0?(t(),o.dispose):(Promise.allSettled(u.map(s=>s.finished)).then(()=>{i||t()}),o.dispose)}function so(e,{inFlight:t,prepare:n}){if(t!=null&&t.current){n();return}let r=e.style.transition;e.style.transition="none",n(),e.offsetHeight,e.style.transition=r}function lo(e){var t,n;return((n=(t=e.getAnimations)==null?void 0:t.call(e))!=null?n:[]).some(r=>r instanceof CSSTransition&&r.playState!=="finished")}function tt(e,t){let n=a.useRef([]),r=j(e);a.useEffect(()=>{let o=[...n.current];for(let[i,u]of t.entries())if(n.current[i]!==u){let s=r(t,o);return n.current=t,s}},[r,...t])}let Ne=a.createContext(null);Ne.displayName="OpenClosedContext";var O=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(O||{});function Ae(){return a.useContext(Ne)}function ao({value:e,children:t}){return y.createElement(Ne.Provider,{value:e},t)}function uo({children:e}){return y.createElement(Ne.Provider,{value:null},e)}function co(e){function t(){document.readyState!=="loading"&&(e(),document.removeEventListener("DOMContentLoaded",t))}typeof window<"u"&&typeof document<"u"&&(document.addEventListener("DOMContentLoaded",t),t())}let G=[];co(()=>{function e(t){if(!Y(t.target)||t.target===document.body||G[0]===t.target)return;let n=t.target;n=n.closest(ke),G.unshift(n??t.target),G=G.filter(r=>r!=null&&r.isConnected),G.splice(10)}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});function Gt(e){let t=j(e),n=a.useRef(!1);a.useEffect(()=>(n.current=!1,()=>{n.current=!0,Te(()=>{n.current&&t()})}),[t])}let zt=a.createContext(!1);function fo(){return a.useContext(zt)}function Et(e){return y.createElement(zt.Provider,{value:e.force},e.children)}function mo(e){let t=fo(),n=a.useContext(Vt),[r,o]=a.useState(()=>{var i;if(!t&&n!==null)return(i=n.current)!=null?i:null;if(M.isServer)return null;let u=e==null?void 0:e.getElementById("headlessui-portal-root");if(u)return u;if(e===null)return null;let s=e.createElement("div");return s.setAttribute("id","headlessui-portal-root"),e.body.appendChild(s)});return a.useEffect(()=>{r!==null&&(e!=null&&e.body.contains(r)||e==null||e.body.appendChild(r))},[r,e]),a.useEffect(()=>{t||n!==null&&o(n.current)},[n,o,t]),r}let Yt=a.Fragment,po=T(function(e,t){let{ownerDocument:n=null,...r}=e,o=a.useRef(null),i=D(hr(m=>{o.current=m}),t),u=et(o.current),s=n??u,l=mo(s),d=a.useContext(Qe),f=Pe(),p=F();return Gt(()=>{var m;l&&l.childNodes.length<=0&&((m=l.parentElement)==null||m.removeChild(l))}),l?dn.createPortal(y.createElement("div",{"data-headlessui-portal":"",ref:m=>{f.dispose(),d&&m&&f.add(d.register(m))}},p({ourProps:{ref:i},theirProps:r,slot:{},defaultTag:Yt,name:"Portal"})),l):null});function ho(e,t){let n=D(t),{enabled:r=!0,ownerDocument:o,...i}=e,u=F();return r?y.createElement(po,{...i,ownerDocument:o,ref:n}):u({ourProps:{ref:n},theirProps:i,slot:{},defaultTag:Yt,name:"Portal"})}let vo=a.Fragment,Vt=a.createContext(null);function go(e,t){let{target:n,...r}=e,o={ref:D(t)},i=F();return y.createElement(Vt.Provider,{value:n},i({ourProps:o,theirProps:r,defaultTag:vo,name:"Popover.Group"}))}let Qe=a.createContext(null);function yo(){let e=a.useContext(Qe),t=a.useRef([]),n=j(i=>(t.current.push(i),e&&e.register(i),()=>r(i))),r=j(i=>{let u=t.current.indexOf(i);u!==-1&&t.current.splice(u,1),e&&e.unregister(i)}),o=a.useMemo(()=>({register:n,unregister:r,portals:t}),[n,r,t]);return[t,a.useMemo(()=>function({children:i}){return y.createElement(Qe.Provider,{value:o},i)},[o])]}let bo=T(ho),qt=T(go),xo=Object.assign(bo,{Group:qt});function wo(e,t=typeof document<"u"?document.defaultView:null,n){let r=ve(e,"escape");Ht(t,"keydown",o=>{r&&(o.defaultPrevented||o.key===Rt.Escape&&n(o))})}function Eo(){var e;let[t]=a.useState(()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia("(pointer: coarse)"):null),[n,r]=a.useState((e=t==null?void 0:t.matches)!=null?e:!1);return k(()=>{if(!t)return;function o(i){r(i.matches)}return t.addEventListener("change",o),()=>t.removeEventListener("change",o)},[t]),n}function jo({defaultContainers:e=[],portals:t,mainTreeNode:n}={}){let r=j(()=>{var o,i;let u=pe(n),s=[];for(let l of e)l!==null&&(V(l)?s.push(l):"current"in l&&V(l.current)&&s.push(l.current));if(t!=null&&t.current)for(let l of t.current)s.push(l);for(let l of(o=u==null?void 0:u.querySelectorAll("html > *, body > *"))!=null?o:[])l!==document.body&&l!==document.head&&V(l)&&l.id!=="headlessui-portal-root"&&(n&&(l.contains(n)||l.contains((i=n==null?void 0:n.getRootNode())==null?void 0:i.host))||s.some(d=>l.contains(d))||s.push(l));return s});return{resolveContainers:r,contains:j(o=>r().some(i=>i.contains(o)))}}let Kt=a.createContext(null);function jt({children:e,node:t}){let[n,r]=a.useState(null),o=Xt(t??n);return y.createElement(Kt.Provider,{value:o},e,o===null&&y.createElement(qe,{features:Ce.Hidden,ref:i=>{var u,s;if(i){for(let l of(s=(u=pe(i))==null?void 0:u.querySelectorAll("html > *, body > *"))!=null?s:[])if(l!==document.body&&l!==document.head&&V(l)&&l!=null&&l.contains(i)){r(l);break}}}}))}function Xt(e=null){var t;return(t=a.useContext(Kt))!=null?t:e}function So(){let e=typeof document>"u";return"useSyncExternalStore"in lt?(t=>t.useSyncExternalStore)(lt)(()=>()=>{},()=>!1,()=>!e):!1}function Fe(){let e=So(),[t,n]=a.useState(M.isHandoffComplete);return t&&M.isHandoffComplete===!1&&n(!1),a.useEffect(()=>{t!==!0&&n(!0)},[t]),a.useEffect(()=>M.handoff(),[]),e?!1:t}function nt(){let e=a.useRef(!1);return k(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var ce=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(ce||{});function $o(){let e=a.useRef(0);return Wt(!0,"keydown",t=>{t.key==="Tab"&&(e.current=t.shiftKey?1:0)},!0),e}function Qt(e){if(!e)return new Set;if(typeof e=="function")return new Set(e());let t=new Set;for(let n of e.current)V(n.current)&&t.add(n.current);return t}let Co="div";var Q=(e=>(e[e.None=0]="None",e[e.InitialFocus=1]="InitialFocus",e[e.TabLock=2]="TabLock",e[e.FocusLock=4]="FocusLock",e[e.RestoreFocus=8]="RestoreFocus",e[e.AutoFocus=16]="AutoFocus",e))(Q||{});function ko(e,t){let n=a.useRef(null),r=D(n,t),{initialFocus:o,initialFocusFallback:i,containers:u,features:s=15,...l}=e;Fe()||(s=0);let d=et(n.current);Ao(s,{ownerDocument:d});let f=Fo(s,{ownerDocument:d,container:n,initialFocus:o,initialFocusFallback:i});Ro(s,{ownerDocument:d,container:n,containers:u,previousActiveElement:f});let p=$o(),m=j(S=>{if(!J(n.current))return;let h=n.current;(w=>w())(()=>{U(p.current,{[ce.Forwards]:()=>{me(h,_.First,{skipElements:[S.relatedTarget,i]})},[ce.Backwards]:()=>{me(h,_.Last,{skipElements:[S.relatedTarget,i]})}})})}),v=ve(!!(s&2),"focus-trap#tab-lock"),g=Pe(),x=a.useRef(!1),b={ref:r,onKeyDown(S){S.key=="Tab"&&(x.current=!0,g.requestAnimationFrame(()=>{x.current=!1}))},onBlur(S){if(!(s&4))return;let h=Qt(u);J(n.current)&&h.add(n.current);let w=S.relatedTarget;Y(w)&&w.dataset.headlessuiFocusGuard!=="true"&&(Zt(h,w)||(x.current?me(n.current,U(p.current,{[ce.Forwards]:()=>_.Next,[ce.Backwards]:()=>_.Previous})|_.WrapAround,{relativeTo:S.target}):Y(S.target)&&B(S.target)))}},$=F();return y.createElement(y.Fragment,null,v&&y.createElement(qe,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:m,features:Ce.Focusable}),$({ourProps:b,theirProps:l,defaultTag:Co,name:"FocusTrap"}),v&&y.createElement(qe,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:m,features:Ce.Focusable}))}let To=T(ko),Po=Object.assign(To,{features:Q});function No(e=!0){let t=a.useRef(G.slice());return tt(([n],[r])=>{r===!0&&n===!1&&Te(()=>{t.current.splice(0)}),r===!1&&n===!0&&(t.current=G.slice())},[e,G,t]),j(()=>{var n;return(n=t.current.find(r=>r!=null&&r.isConnected))!=null?n:null})}function Ao(e,{ownerDocument:t}){let n=!!(e&8),r=No(n);tt(()=>{n||tr(t==null?void 0:t.body)&&B(r())},[n]),Gt(()=>{n&&B(r())})}function Fo(e,{ownerDocument:t,container:n,initialFocus:r,initialFocusFallback:o}){let i=a.useRef(null),u=ve(!!(e&1),"focus-trap#initial-focus"),s=nt();return tt(()=>{if(e===0)return;if(!u){o!=null&&o.current&&B(o.current);return}let l=n.current;l&&Te(()=>{if(!s.current)return;let d=t==null?void 0:t.activeElement;if(r!=null&&r.current){if((r==null?void 0:r.current)===d){i.current=d;return}}else if(l.contains(d)){i.current=d;return}if(r!=null&&r.current)B(r.current);else{if(e&16){if(me(l,_.First|_.AutoFocus)!==Xe.Error)return}else if(me(l,_.First)!==Xe.Error)return;if(o!=null&&o.current&&(B(o.current),(t==null?void 0:t.activeElement)===o.current))return;console.warn("There are no focusable elements inside the <FocusTrap />")}i.current=t==null?void 0:t.activeElement})},[o,u,e]),i}function Ro(e,{ownerDocument:t,container:n,containers:r,previousActiveElement:o}){let i=nt(),u=!!(e&4);Ht(t==null?void 0:t.defaultView,"focus",s=>{if(!u||!i.current)return;let l=Qt(r);J(n.current)&&l.add(n.current);let d=o.current;if(!d)return;let f=s.target;J(f)?Zt(l,f)?(o.current=f,B(f)):(s.preventDefault(),s.stopPropagation(),B(d)):B(o.current)},!0)}function Zt(e,t){for(let n of e)if(n.contains(t))return!0;return!1}function Jt(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||!de((t=e.as)!=null?t:tn)||y.Children.count(e.children)===1}let Re=a.createContext(null);Re.displayName="TransitionContext";var Oo=(e=>(e.Visible="visible",e.Hidden="hidden",e))(Oo||{});function Lo(){let e=a.useContext(Re);if(e===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}function Mo(){let e=a.useContext(Oe);if(e===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}let Oe=a.createContext(null);Oe.displayName="NestingContext";function Le(e){return"children"in e?Le(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t==="visible").length>0}function en(e,t){let n=te(e),r=a.useRef([]),o=nt(),i=Pe(),u=j((v,g=z.Hidden)=>{let x=r.current.findIndex(({el:b})=>b===v);x!==-1&&(U(g,{[z.Unmount](){r.current.splice(x,1)},[z.Hidden](){r.current[x].state="hidden"}}),i.microTask(()=>{var b;!Le(r)&&o.current&&((b=n.current)==null||b.call(n))}))}),s=j(v=>{let g=r.current.find(({el:x})=>x===v);return g?g.state!=="visible"&&(g.state="visible"):r.current.push({el:v,state:"visible"}),()=>u(v,z.Unmount)}),l=a.useRef([]),d=a.useRef(Promise.resolve()),f=a.useRef({enter:[],leave:[]}),p=j((v,g,x)=>{l.current.splice(0),t&&(t.chains.current[g]=t.chains.current[g].filter(([b])=>b!==v)),t==null||t.chains.current[g].push([v,new Promise(b=>{l.current.push(b)})]),t==null||t.chains.current[g].push([v,new Promise(b=>{Promise.all(f.current[g].map(([$,S])=>S)).then(()=>b())})]),g==="enter"?d.current=d.current.then(()=>t==null?void 0:t.wait.current).then(()=>x(g)):x(g)}),m=j((v,g,x)=>{Promise.all(f.current[g].splice(0).map(([b,$])=>$)).then(()=>{var b;(b=l.current.shift())==null||b()}).then(()=>x(g))});return a.useMemo(()=>({children:r,register:s,unregister:u,onStart:p,onStop:m,wait:d,chains:f}),[s,u,r,p,m,f,d])}let tn=a.Fragment,nn=$e.RenderStrategy;function Do(e,t){var n,r;let{transition:o=!0,beforeEnter:i,afterEnter:u,beforeLeave:s,afterLeave:l,enter:d,enterFrom:f,enterTo:p,entered:m,leave:v,leaveFrom:g,leaveTo:x,...b}=e,[$,S]=a.useState(null),h=a.useRef(null),w=Jt(e),N=D(...w?[h,t,S]:t===null?[]:[t]),I=(n=b.unmount)==null||n?z.Unmount:z.Hidden,{show:P,appear:ge,initial:ye}=Lo(),[C,q]=a.useState(P?"visible":"hidden"),oe=Mo(),{register:R,unregister:K}=oe;k(()=>R(h),[R,h]),k(()=>{if(I===z.Hidden&&h.current){if(P&&C!=="visible"){q("visible");return}return U(C,{hidden:()=>K(h),visible:()=>R(h)})}},[C,h,R,K,P,I]);let ie=Fe();k(()=>{if(w&&ie&&C==="visible"&&h.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[h,C,ie,w]);let De=ye&&!ge,be=ge&&P&&ye,ne=a.useRef(!1),re=en(()=>{ne.current||(q("hidden"),K(h))},oe),xe=j(_e=>{ne.current=!0;let Ee=_e?"enter":"leave";re.onStart(h,Ee,le=>{le==="enter"?i==null||i():le==="leave"&&(s==null||s())})}),H=j(_e=>{let Ee=_e?"enter":"leave";ne.current=!1,re.onStop(h,Ee,le=>{le==="enter"?u==null||u():le==="leave"&&(l==null||l())}),Ee==="leave"&&!Le(re)&&(q("hidden"),K(h))});a.useEffect(()=>{w&&o||(xe(P),H(P))},[P,w,o]);let Ie=!(!o||!w||!ie||De),[,E]=ro(Ie,$,P,{start:xe,end:H}),we=X({ref:N,className:((r=Ve(b.className,be&&d,be&&f,E.enter&&d,E.enter&&E.closed&&f,E.enter&&!E.closed&&p,E.leave&&v,E.leave&&!E.closed&&g,E.leave&&E.closed&&x,!E.transition&&P&&m))==null?void 0:r.trim())||void 0,...no(E)}),se=0;C==="visible"&&(se|=O.Open),C==="hidden"&&(se|=O.Closed),P&&C==="hidden"&&(se|=O.Opening),!P&&C==="visible"&&(se|=O.Closing);let sn=F();return y.createElement(Oe.Provider,{value:re},y.createElement(ao,{value:se},sn({ourProps:we,theirProps:b,defaultTag:tn,features:nn,visible:C==="visible",name:"Transition.Child"})))}function Io(e,t){let{show:n,appear:r=!1,unmount:o=!0,...i}=e,u=a.useRef(null),s=Jt(e),l=D(...s?[u,t]:t===null?[]:[t]);Fe();let d=Ae();if(n===void 0&&d!==null&&(n=(d&O.Open)===O.Open),n===void 0)throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[f,p]=a.useState(n?"visible":"hidden"),m=en(()=>{n||p("hidden")}),[v,g]=a.useState(!0),x=a.useRef([n]);k(()=>{v!==!1&&x.current[x.current.length-1]!==n&&(x.current.push(n),g(!1))},[x,n]);let b=a.useMemo(()=>({show:n,appear:r,initial:v}),[n,r,v]);k(()=>{n?p("visible"):!Le(m)&&u.current!==null&&p("hidden")},[n,m]);let $={unmount:o},S=j(()=>{var N;v&&g(!1),(N=e.beforeEnter)==null||N.call(e)}),h=j(()=>{var N;v&&g(!1),(N=e.beforeLeave)==null||N.call(e)}),w=F();return y.createElement(Oe.Provider,{value:m},y.createElement(Re.Provider,{value:b},w({ourProps:{...$,as:a.Fragment,children:y.createElement(rn,{ref:l,...$,...i,beforeEnter:S,beforeLeave:h})},theirProps:{},defaultTag:a.Fragment,features:nn,visible:f==="visible",name:"Transition"})))}function _o(e,t){let n=a.useContext(Re)!==null,r=Ae()!==null;return y.createElement(y.Fragment,null,!n&&r?y.createElement(Ze,{ref:t,...e}):y.createElement(rn,{ref:t,...e}))}let Ze=T(Io),rn=T(Do),ee=T(_o),rt=Object.assign(Ze,{Child:ee,Root:Ze});var Bo=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Bo||{}),Uo=(e=>(e[e.SetTitleId=0]="SetTitleId",e))(Uo||{});let Wo={0(e,t){return e.titleId===t.id?e:{...e,titleId:t.id}}},ot=a.createContext(null);ot.displayName="DialogContext";function Me(e){let t=a.useContext(ot);if(t===null){let n=new Error(`<${e} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,Me),n}return t}function Ho(e,t){return U(t.type,Wo,e,t)}let St=T(function(e,t){let n=a.useId(),{id:r=`headlessui-dialog-${n}`,open:o,onClose:i,initialFocus:u,role:s="dialog",autoFocus:l=!0,__demoMode:d=!1,unmount:f=!1,...p}=e,m=a.useRef(!1);s=(function(){return s==="dialog"||s==="alertdialog"?s:(m.current||(m.current=!0,console.warn(`Invalid role [${s}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),"dialog")})();let v=Ae();o===void 0&&v!==null&&(o=(v&O.Open)===O.Open);let g=a.useRef(null),x=D(g,t),b=et(g.current),$=o?0:1,[S,h]=a.useReducer(Ho,{titleId:null,descriptionId:null,panelRef:a.createRef()}),w=j(()=>i(!1)),N=j(E=>h({type:0,id:E})),I=Fe()?$===0:!1,[P,ge]=yo(),ye={get current(){var E;return(E=S.panelRef.current)!=null?E:g.current}},C=Xt(),{resolveContainers:q}=jo({mainTreeNode:C,portals:P,defaultContainers:[ye]}),oe=v!==null?(v&O.Closing)===O.Closing:!1;Rr(d||oe?!1:I,{allowed:j(()=>{var E,we;return[(we=(E=g.current)==null?void 0:E.closest("[data-headlessui-portal]"))!=null?we:null]}),disallowed:j(()=>{var E;return[(E=C==null?void 0:C.closest("body > *:not(#headlessui-portal-root)"))!=null?E:null]})});let R=It.get(null);k(()=>{if(I)return R.actions.push(r),()=>R.actions.pop(r)},[R,r,I]);let K=_t(R,a.useCallback(E=>R.selectors.isTop(E,r),[R,r]));zr(K,q,E=>{E.preventDefault(),w()}),wo(K,b==null?void 0:b.defaultView,E=>{E.preventDefault(),E.stopPropagation(),document.activeElement&&"blur"in document.activeElement&&typeof document.activeElement.blur=="function"&&document.activeElement.blur(),w()}),Zr(d||oe?!1:I,b,q),Or(I,g,w);let[ie,De]=vr(),be=a.useMemo(()=>[{dialogState:$,close:w,setTitleId:N,unmount:f},S],[$,w,N,f,S]),ne=he({open:$===0}),re={ref:x,id:r,role:s,tabIndex:-1,"aria-modal":d?void 0:$===0?!0:void 0,"aria-labelledby":S.titleId,"aria-describedby":ie,unmount:f},xe=!Eo(),H=Q.None;I&&!d&&(H|=Q.RestoreFocus,H|=Q.TabLock,l&&(H|=Q.AutoFocus),xe&&(H|=Q.InitialFocus));let Ie=F();return y.createElement(uo,null,y.createElement(Et,{force:!0},y.createElement(xo,null,y.createElement(ot.Provider,{value:be},y.createElement(qt,{target:g},y.createElement(Et,{force:!1},y.createElement(De,{slot:ne},y.createElement(ge,null,y.createElement(Po,{initialFocus:u,initialFocusFallback:g,containers:q,features:H},y.createElement(Er,{value:w},Ie({ourProps:re,theirProps:p,slot:ne,defaultTag:Go,features:zo,visible:$===0,name:"Dialog"})))))))))))}),Go="div",zo=$e.RenderStrategy|$e.Static;function Yo(e,t){let{transition:n=!1,open:r,...o}=e,i=Ae(),u=e.hasOwnProperty("open")||i!==null,s=e.hasOwnProperty("onClose");if(!u&&!s)throw new Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!u)throw new Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!s)throw new Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if(!i&&typeof e.open!="boolean")throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${e.open}`);if(typeof e.onClose!="function")throw new Error(`You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${e.onClose}`);return(r!==void 0||n)&&!o.static?y.createElement(jt,null,y.createElement(rt,{show:r,transition:n,unmount:o.unmount},y.createElement(St,{ref:t,...o}))):y.createElement(jt,null,y.createElement(St,{ref:t,open:r,...o}))}let Vo="div";function qo(e,t){let n=a.useId(),{id:r=`headlessui-dialog-panel-${n}`,transition:o=!1,...i}=e,[{dialogState:u,unmount:s},l]=Me("Dialog.Panel"),d=D(t,l.panelRef),f=he({open:u===0}),p=j(b=>{b.stopPropagation()}),m={ref:d,id:r,onClick:p},v=o?ee:a.Fragment,g=o?{unmount:s}:{},x=F();return y.createElement(v,{...g},x({ourProps:m,theirProps:i,slot:f,defaultTag:Vo,name:"Dialog.Panel"}))}let Ko="div";function Xo(e,t){let{transition:n=!1,...r}=e,[{dialogState:o,unmount:i}]=Me("Dialog.Backdrop"),u=he({open:o===0}),s={ref:t,"aria-hidden":!0},l=n?ee:a.Fragment,d=n?{unmount:i}:{},f=F();return y.createElement(l,{...d},f({ourProps:s,theirProps:r,slot:u,defaultTag:Ko,name:"Dialog.Backdrop"}))}let Qo="h2";function Zo(e,t){let n=a.useId(),{id:r=`headlessui-dialog-title-${n}`,...o}=e,[{dialogState:i,setTitleId:u}]=Me("Dialog.Title"),s=D(t);a.useEffect(()=>(u(r),()=>u(null)),[r,u]);let l=he({open:i===0}),d={ref:s,id:r};return F()({ourProps:d,theirProps:o,slot:l,defaultTag:Qo,name:"Dialog.Title"})}let Jo=T(Yo),it=T(qo);T(Xo);let st=T(Zo),on=Object.assign(Jo,{Panel:it,Title:st,Description:xr});function ei(){const{isAuthenticated:e}=$n(),[t,n]=a.useState(e),[r,o]=a.useState(!1);a.useEffect(()=>{t&&!e&&o(!0),n(e)},[e,t]),a.useEffect(()=>$t(Ct.UNAUTHORIZED,()=>{o(!0)}),[]);const i=()=>{window.location.href=`/auth/connect?callbackUrl=${encodeURIComponent(window.location.pathname)}`},u=()=>{o(!1),window.location.href="/"};return c.jsx(rt,{appear:!0,show:r,children:c.jsxs(on,{as:"div",className:"semiont-modal",onClose:u,children:[c.jsx(ee,{enter:"ease-out duration-200",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-150",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:c.jsx("div",{className:"semiont-modal__backdrop"})}),c.jsx("div",{className:"semiont-modal__container",children:c.jsx("div",{className:"semiont-modal__wrapper",children:c.jsx(ee,{enter:"ease-out duration-200",enterFrom:"opacity-0 scale-95",enterTo:"opacity-100 scale-100",leave:"ease-in duration-150",leaveFrom:"opacity-100 scale-100",leaveTo:"opacity-0 scale-95",children:c.jsxs(it,{className:"semiont-modal__panel semiont-modal__panel--medium",children:[c.jsx("div",{className:"semiont-modal__icon-wrapper",children:c.jsx("div",{className:"semiont-modal__icon",style:{background:"linear-gradient(to bottom right, var(--semiont-color-red-100, #fee2e2), var(--semiont-color-red-300, #fca5a5))"},children:c.jsx("svg",{style:{width:"1.5rem",height:"1.5rem",color:"var(--semiont-color-red-600, #dc2626)"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})})}),c.jsxs("div",{className:"semiont-modal__content",children:[c.jsx(st,{className:"semiont-modal__title semiont-modal__title--centered",children:"Session Expired"}),c.jsx("p",{className:"semiont-modal__description",children:"Your session has expired for security reasons. Please sign in again to continue working."})]}),c.jsxs("div",{className:"semiont-modal__actions",children:[c.jsx("button",{type:"button",onClick:u,className:"semiont-button--secondary semiont-button--flex",children:"Go to Home"}),c.jsx("button",{type:"button",onClick:i,className:"semiont-button--primary semiont-button--flex",children:"Sign In Again"})]})]})})})})]})})}function ti(){var d;const[e,t]=a.useState(!1),[n,r]=a.useState(""),o=kt(),{session:i}=On();a.useEffect(()=>$t(Ct.FORBIDDEN,p=>{r(p.detail.message||"You do not have permission to perform this action."),t(!0)}),[]);const u=()=>{t(!1),o.back()},s=()=>{t(!1),o.push("/")},l=()=>{t(!1),window.location.href=`/auth/connect?callbackUrl=${encodeURIComponent(window.location.pathname)}`};return c.jsx(rt,{appear:!0,show:e,children:c.jsxs(on,{as:"div",className:"semiont-modal",onClose:u,children:[c.jsx(ee,{enter:"ease-out duration-200",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-150",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:c.jsx("div",{className:"semiont-modal__backdrop"})}),c.jsx("div",{className:"semiont-modal__container",children:c.jsx("div",{className:"semiont-modal__wrapper",children:c.jsx(ee,{enter:"ease-out duration-200",enterFrom:"opacity-0 scale-95",enterTo:"opacity-100 scale-100",leave:"ease-in duration-150",leaveFrom:"opacity-100 scale-100",leaveTo:"opacity-0 scale-95",children:c.jsxs(it,{className:"semiont-modal__panel semiont-modal__panel--medium",children:[c.jsx("div",{className:"semiont-modal__icon-wrapper",children:c.jsx("div",{className:"semiont-modal__icon",children:c.jsx("svg",{style:{width:"1.5rem",height:"1.5rem",color:"var(--semiont-color-amber-600, #d97706)"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"})})})}),c.jsxs("div",{className:"semiont-modal__content",children:[c.jsx(st,{className:"semiont-modal__title semiont-modal__title--centered",children:"Access Denied"}),c.jsx("p",{className:"semiont-modal__description",children:n})]}),c.jsxs("div",{style:{padding:"0.75rem",backgroundColor:"var(--semiont-bg-secondary)",borderRadius:"var(--semiont-radius-md, 0.375rem)",border:"1px solid var(--semiont-border-primary)",fontSize:"var(--semiont-text-sm, 0.875rem)",marginBottom:"1rem"},children:[c.jsx("p",{style:{color:"var(--semiont-text-secondary)",marginBottom:"0.5rem"},children:"This could be because:"}),c.jsxs("ul",{style:{listStyle:"disc",listStylePosition:"inside",color:"var(--semiont-text-tertiary)",display:"flex",flexDirection:"column",gap:"0.25rem"},children:[c.jsx("li",{children:"You don't have the required permissions"}),c.jsx("li",{children:"The resource is restricted to specific users or teams"}),c.jsx("li",{children:"Your account type doesn't include this feature"})]})]}),((d=i==null?void 0:i.user)==null?void 0:d.email)&&c.jsxs("p",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)",marginBottom:"1rem"},children:["Currently signed in as: ",c.jsx("span",{style:{fontWeight:500},children:i.user.email})]}),c.jsxs("div",{className:"semiont-modal__actions",children:[c.jsx("button",{type:"button",onClick:u,className:"semiont-button--primary semiont-button--flex",children:"Go Back"}),c.jsx("button",{type:"button",onClick:s,className:"semiont-button--secondary semiont-button--flex",children:"Go to Home"})]}),c.jsx("div",{className:"semiont-modal__actions",style:{marginTop:"0.5rem",paddingTop:"0.5rem",borderTop:"1px solid var(--semiont-border-primary)"},children:c.jsx("button",{type:"button",onClick:l,className:"semiont-button--secondary semiont-button--flex",style:{fontSize:"var(--semiont-text-sm, 0.875rem)"},children:"Switch Account"})})]})})})})]})})}function ni(){return c.jsxs(c.Fragment,{children:[c.jsx(Cn,{}),c.jsx(ei,{}),c.jsx(ti,{})]})}function vi(){return c.jsxs(Yn,{children:[c.jsx(kn,{}),c.jsx(ni,{}),c.jsx(fn,{}),c.jsx(Qn,{})]})}export{vi as default};
6
- //# sourceMappingURL=layout-CL9MSbhu.js.map