@exulu/frontend 1.8.0 → 1.9.0

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 (146) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +129 -131
  3. package/dist/.next/app-path-routes-manifest.json +1 -1
  4. package/dist/.next/build-manifest.json +2 -2
  5. package/dist/.next/prerender-manifest.json +1 -1
  6. package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
  7. package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
  8. package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
  9. package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
  10. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +7 -7
  11. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
  12. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
  13. package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
  14. package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
  15. package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
  16. package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
  17. package/dist/.next/server/app/(application)/data/[[...query]]/page.js +4 -4
  18. package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
  19. package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
  20. package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
  21. package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
  22. package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
  23. package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
  24. package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
  25. package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
  26. package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
  27. package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
  28. package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
  29. package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
  30. package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
  31. package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
  32. package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
  33. package/dist/.next/server/app/(application)/projects/page.js +1 -1
  34. package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
  35. package/dist/.next/server/app/(application)/prompts/page.js +1 -1
  36. package/dist/.next/server/app/(application)/prompts/page_client-reference-manifest.js +1 -1
  37. package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
  38. package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
  39. package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
  40. package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
  41. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
  42. package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
  43. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
  44. package/dist/.next/server/app/(application)/workflows/page.js +1 -1
  45. package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
  46. package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
  47. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  48. package/dist/.next/server/app/_not-found.html +1 -1
  49. package/dist/.next/server/app/_not-found.rsc +1 -1
  50. package/dist/.next/server/app-paths-manifest.json +6 -6
  51. package/dist/.next/server/chunks/1025.js +1 -0
  52. package/dist/.next/server/chunks/2270.js +11 -48
  53. package/dist/.next/server/chunks/3434.js +1 -1
  54. package/dist/.next/server/chunks/3503.js +1 -0
  55. package/dist/.next/server/chunks/5084.js +1 -0
  56. package/dist/.next/server/chunks/5192.js +1 -1
  57. package/dist/.next/server/chunks/5485.js +1 -1
  58. package/dist/.next/server/chunks/5600.js +1 -1
  59. package/dist/.next/server/chunks/5974.js +1 -0
  60. package/dist/.next/server/chunks/6590.js +1 -1
  61. package/dist/.next/server/chunks/7471.js +1 -1
  62. package/dist/.next/server/chunks/8286.js +1 -1
  63. package/dist/.next/server/chunks/{3679.js → 9874.js} +5 -5
  64. package/dist/.next/server/middleware-manifest.json +5 -5
  65. package/dist/.next/server/pages/404.html +1 -1
  66. package/dist/.next/server/pages/500.html +1 -1
  67. package/dist/.next/server/server-reference-manifest.json +1 -1
  68. package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js +2 -0
  69. package/dist/.next/static/chunks/1685-939396dad2f8f1e0.js.map +1 -0
  70. package/dist/.next/static/chunks/{4811-316807e25b634f9f.js → 192-72d6868cd891ccc6.js} +8 -8
  71. package/dist/.next/static/chunks/192-72d6868cd891ccc6.js.map +1 -0
  72. package/dist/.next/static/chunks/1957-cf44b1d31a9c7d5c.js +2 -0
  73. package/dist/.next/static/chunks/1957-cf44b1d31a9c7d5c.js.map +1 -0
  74. package/dist/.next/static/chunks/342-d9c2d6ae9f9435cb.js +2 -0
  75. package/dist/.next/static/chunks/342-d9c2d6ae9f9435cb.js.map +1 -0
  76. package/dist/.next/static/chunks/552-39155a93c527ec6d.js +2 -0
  77. package/dist/.next/static/chunks/552-39155a93c527ec6d.js.map +1 -0
  78. package/dist/.next/static/chunks/6367-59655a85d75e19be.js +2 -0
  79. package/dist/.next/static/chunks/6367-59655a85d75e19be.js.map +1 -0
  80. package/dist/.next/static/chunks/6373-601400fab8a3bb55.js +2 -0
  81. package/dist/.next/static/chunks/6373-601400fab8a3bb55.js.map +1 -0
  82. package/dist/.next/static/chunks/8030-9c926ea4dfd3a54e.js +2 -0
  83. package/dist/.next/static/chunks/8030-9c926ea4dfd3a54e.js.map +1 -0
  84. package/dist/.next/static/chunks/{6805-792cc8008b165c07.js → 8293-0e69d89d2dac7111.js} +10 -10
  85. package/dist/.next/static/chunks/8293-0e69d89d2dac7111.js.map +1 -0
  86. package/dist/.next/static/chunks/9953-95900a236271a222.js +2 -0
  87. package/dist/.next/static/chunks/9953-95900a236271a222.js.map +1 -0
  88. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e4a4693953329671.js +2 -0
  89. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e4a4693953329671.js.map +1 -0
  90. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js +2 -0
  91. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-7edb1c7c850f982c.js.map +1 -0
  92. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js +2 -0
  93. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js.map +1 -0
  94. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js +2 -0
  95. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-a7728cf9b0524489.js.map +1 -0
  96. package/dist/.next/static/chunks/app/(application)/evals/cases/{page-a39fef7444581565.js → page-827f50c6d1f150d0.js} +2 -2
  97. package/dist/.next/static/chunks/app/(application)/evals/cases/{page-a39fef7444581565.js.map → page-827f50c6d1f150d0.js.map} +1 -1
  98. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-f04fd5291a1ef7b1.js +2 -0
  99. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-f04fd5291a1ef7b1.js.map +1 -0
  100. package/dist/.next/static/chunks/app/(application)/prompts/page-2c500e9898447506.js +2 -0
  101. package/dist/.next/static/chunks/app/(application)/prompts/page-2c500e9898447506.js.map +1 -0
  102. package/dist/.next/static/chunks/app/(application)/workflows/{page-47dedb88cec600d5.js → page-e38f9456120dab69.js} +2 -2
  103. package/dist/.next/static/chunks/app/(application)/workflows/page-e38f9456120dab69.js.map +1 -0
  104. package/dist/.next/static/css/6f8c5212af8ef284.css +4 -0
  105. package/dist/.next/static/css/6f8c5212af8ef284.css.map +1 -0
  106. package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
  107. package/package.json +1 -1
  108. package/dist/.next/server/chunks/2948.js +0 -1
  109. package/dist/.next/server/chunks/38.js +0 -1
  110. package/dist/.next/server/chunks/7958.js +0 -1
  111. package/dist/.next/server/chunks/8050.js +0 -1
  112. package/dist/.next/static/chunks/1685-9cacdee7e3f0942f.js +0 -2
  113. package/dist/.next/static/chunks/1685-9cacdee7e3f0942f.js.map +0 -1
  114. package/dist/.next/static/chunks/1957-39a01a3915f246ab.js +0 -2
  115. package/dist/.next/static/chunks/1957-39a01a3915f246ab.js.map +0 -1
  116. package/dist/.next/static/chunks/4811-316807e25b634f9f.js.map +0 -1
  117. package/dist/.next/static/chunks/5282-68f9880f1f951f44.js +0 -2
  118. package/dist/.next/static/chunks/5282-68f9880f1f951f44.js.map +0 -1
  119. package/dist/.next/static/chunks/6367-59cef3c74213925b.js +0 -2
  120. package/dist/.next/static/chunks/6367-59cef3c74213925b.js.map +0 -1
  121. package/dist/.next/static/chunks/6373-4c5dffaf4193621c.js +0 -2
  122. package/dist/.next/static/chunks/6373-4c5dffaf4193621c.js.map +0 -1
  123. package/dist/.next/static/chunks/6805-792cc8008b165c07.js.map +0 -1
  124. package/dist/.next/static/chunks/8030-c1b6be46253076cb.js +0 -2
  125. package/dist/.next/static/chunks/8030-c1b6be46253076cb.js.map +0 -1
  126. package/dist/.next/static/chunks/9621-f81c4d7c0ecf5a67.js +0 -2
  127. package/dist/.next/static/chunks/9621-f81c4d7c0ecf5a67.js.map +0 -1
  128. package/dist/.next/static/chunks/9953-dfb5fc0e5b74ec09.js +0 -2
  129. package/dist/.next/static/chunks/9953-dfb5fc0e5b74ec09.js.map +0 -1
  130. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-4e7e02768ed1a72a.js +0 -2
  131. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-4e7e02768ed1a72a.js.map +0 -1
  132. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-38f845d5ccdad76b.js +0 -2
  133. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-38f845d5ccdad76b.js.map +0 -1
  134. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-a391b8407f74e9b4.js +0 -2
  135. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-a391b8407f74e9b4.js.map +0 -1
  136. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-cf6f8d2bd4e9c819.js +0 -2
  137. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-cf6f8d2bd4e9c819.js.map +0 -1
  138. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js +0 -2
  139. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-bc859da58d8505f7.js.map +0 -1
  140. package/dist/.next/static/chunks/app/(application)/prompts/page-d2f36ff149385efd.js +0 -2
  141. package/dist/.next/static/chunks/app/(application)/prompts/page-d2f36ff149385efd.js.map +0 -1
  142. package/dist/.next/static/chunks/app/(application)/workflows/page-47dedb88cec600d5.js.map +0 -1
  143. package/dist/.next/static/css/c8c015815c72d053.css +0 -4
  144. package/dist/.next/static/css/c8c015815c72d053.css.map +0 -1
  145. /package/dist/.next/static/{GOwerAkBncYx0J8q1TqQb → ls-syPkq9-MWp-VWWDEZJ}/_buildManifest.js +0 -0
  146. /package/dist/.next/static/{GOwerAkBncYx0J8q1TqQb → ls-syPkq9-MWp-VWWDEZJ}/_ssgManifest.js +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8030],{8014:function(e,s,t){t.d(s,{P:function(){return C}});var a=t(57437),r=t(27689),l=t(2265),n=t(63251),i=t(7211),d=t(53647),o=t(66337),c=t(95805),m=t(98728),u=t(29202),f=t(14924),x=t(24156),p=t(30401),h=t(15863),g=t(18930),N=t(95186),j=t(26110),v=t(19378),y=t(94508),b=t(57054),w=t(23518),k=t(62869),R=t(26815);let z=[{value:"private",label:"Private",description:"Only you can see this agent",icon:o.Z},{value:"users",label:"Shared with Users",description:"Share with specific users",icon:c.Z},{value:"roles",label:"Shared with Roles",description:"Share with specific roles",icon:m.Z},{value:"public",label:"Public",description:"Anyone can see this agent",icon:u.Z},{value:"projects",label:"Projects",description:"Share with specific projects",icon:f.Z}];function C(e){var s,t;let{allowedModes:o,initialRightsMode:c,modalMode:m=!1,initialUsers:u,initialRoles:f,initialProjects:C,onChange:S}=e,[Z,_]=(0,l.useState)(c),[Y,P]=(0,l.useState)(u||[]),[V,B]=(0,l.useState)(f||[]),[O,Q]=(0,l.useState)([]),[E,I]=(0,l.useState)(!1),[L,U]=(0,l.useState)([]),[q,D]=(0,l.useState)(""),[A,F]=(0,l.useState)(!1),[G,W]=(0,l.useState)(!1),$=(0,n.x)(),{data:J,loading:T,refetch:H}=(0,i.aM)(r.fo,{variables:{page:1,limit:5,filters:L},skip:"users"!==Z||!q}),K=(0,i.aM)(r.l1,{fetchPolicy:"cache-first",nextFetchPolicy:"network-only",variables:{page:1,limit:30,filters:[{type:{ne:"api"}}]}}),M=(0,l.useCallback)(e=>{D(e);let s=[...L,{type:{ne:"api"}}],t=s.find(e=>e.email);(null==t?void 0:t.email)?t.email.contains=e:s.push({email:{contains:e}}),U(s),H()},[L,H]),X=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(W(!0),!Y||0===Y.length){Q([]),W(!1);return}let s=null==Y?void 0:Y.slice(0,e).map(async e=>{let{id:s,rights:t}=e;return{...(await $.query({query:r.L5,variables:{id:s}})).data.userById,rights:t}});Q(await Promise.all(s)),W(!1)};(0,l.useEffect)(()=>{X(5)},[]),(0,l.useEffect)(()=>{console.log("selectedUsers",Y),console.log("hydratedUsers",O),S(Z,Y,V,[])},[Z,Y,V]);let ee=null==O?void 0:O.slice(0,5).filter(e=>!!(null==e?void 0:e.id)),es=z;return(null==o?void 0:o.length)&&(es=z.filter(e=>o.includes(e.value))),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(R._,{className:"text-sm font-medium",children:"Visibility & sharing"}),(0,a.jsxs)(b.J2,{modal:m||!1,open:E,onOpenChange:I,children:[(0,a.jsx)(b.xo,{asChild:!0,children:(0,a.jsxs)(k.z,{variant:"outline",role:"combobox","aria-expanded":E,className:"w-full justify-between text-sm capitalize",children:[(null===(s=es.find(e=>e.value===Z))||void 0===s?void 0:s.label)||"Select visibility...",(0,a.jsx)(x.Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,a.jsx)(b.yk,{className:"w-full p-0",children:(0,a.jsxs)(w.mY,{children:[(0,a.jsx)(w.sZ,{placeholder:"Search options..."}),(0,a.jsxs)(w.e8,{children:[(0,a.jsx)(w.rb,{children:"No options found."}),(0,a.jsx)(w.fu,{children:es.map(e=>(0,a.jsxs)(w.di,{onSelect:()=>{"users"!==e.value&&P([]),"roles"!==e.value&&B([]),_(e.value),I(!1)},children:[(0,a.jsx)(p.Z,{className:(0,y.cn)("mr-2 h-4 w-4",Z===e.value?"opacity-100":"opacity-0")}),(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("span",{children:e.label}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.description})]})]},e.value))})]})]})})]})]}),"users"===Z&&(0,a.jsx)("div",{className:"space-y-3 pt-3",children:(0,a.jsxs)("div",{children:[(0,a.jsx)(R._,{className:"text-sm font-medium",children:"Share with users"}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)(N.I,{placeholder:"Search users by email...",value:q,onChange:e=>M(e.target.value),className:"text-sm"})}),T&&(0,a.jsxs)("div",{className:"mt-2 flex items-center justify-center py-4",children:[(0,a.jsx)(h.Z,{className:"h-4 w-4 animate-spin mr-2"}),(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading users..."})]}),!T&&J&&(null===(t=J.usersPagination)||void 0===t?void 0:t.items.length)>0&&(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Search Results:"}),(0,a.jsx)("div",{className:"max-h-50 overflow-y-auto border rounded-lg",children:J.usersPagination.items.filter(e=>!Y.some(s=>s.id===e.id)).map(e=>(0,a.jsxs)("label",{className:"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer",children:[(0,a.jsx)("input",{type:"checkbox",checked:Y.some(s=>s.id===e.id),onChange:s=>{P(s=>[...s,{id:e.id,rights:"read"}]),Q(s=>[...s,{...e,rights:"read"}])}}),(0,a.jsx)("span",{className:"text-sm",children:e.email})]},e.id))}),(0,a.jsxs)("div",{className:"text-xs text-muted-foreground mt-2",children:[(0,a.jsx)("span",{className:"font-medium",children:"Note:"})," Only the first 5 users are shown, use the Search bar to find more users."]})]}),!T&&q&&J&&0===J.usersPagination.items.length&&(0,a.jsx)("div",{className:"mt-2 text-center py-4",children:(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users found"})}),(null==ee?void 0:ee.length)>0?(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Selected Users:"}),(0,a.jsxs)("div",{className:"space-y-1",children:[ee.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-2 border p-2 rounded-lg text-sm",children:[(0,a.jsx)("span",{className:"flex-1 pl-2",children:e.email}),(0,a.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{P(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t)),Q(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,a.jsx)(d.i4,{className:"h-6 w-20 text-xs",children:(0,a.jsx)(d.ki,{})}),(0,a.jsxs)(d.Bw,{children:[(0,a.jsx)(d.Ql,{value:"read",children:"Read"}),(0,a.jsx)(d.Ql,{value:"write",children:"Write"})]})]}),(0,a.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-5 w-5 p-0 hover:bg-blue-100",onClick:()=>{P(s=>s.filter(s=>s.id!==e.id)),Q(s=>s.filter(s=>s.id!==e.id))},children:(0,a.jsx)(g.Z,{className:"w-3 h-3"})})]},e.id)),Y&&Y.length>5&&(0,a.jsxs)(k.z,{variant:"link",type:"button",className:"h-auto p-0 text-blue-600 hover:text-blue-800 text-xs",onClick:()=>{X(50),F(!0)},children:["+ ",Y.length-5," more users"]})]})]}):(0,a.jsx)("div",{className:"mt-2 text-center py-4",children:(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users selected."})})]})}),"roles"===Z&&(0,a.jsx)("div",{className:"space-y-3",children:(0,a.jsxs)("div",{children:[(0,a.jsxs)(R._,{className:"text-sm font-medium",children:["Share with roles (",(null==V?void 0:V.length)||0,")"]}),(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Available Roles"}),K.loading&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-4 border rounded-lg",children:[(0,a.jsx)(h.Z,{className:"h-4 w-4 animate-spin mr-2"}),(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading roles..."})]}),!K.loading&&K.data&&(0,a.jsx)("div",{className:"max-h-24 overflow-y-auto border rounded-lg",children:K.data.rolesPagination.items.map(e=>(0,a.jsxs)("label",{className:"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer",children:[(0,a.jsx)("input",{type:"checkbox",checked:V.some(s=>s.id===e.id),onChange:s=>{s.target.checked?B(s=>[...s,{id:e.id,rights:"read"}]):B(s=>s.filter(s=>s.id!==e.id))}}),(0,a.jsx)("span",{className:"text-sm capitalize",children:e.name})]},e.id))})]}),V.length>0&&K.data&&(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:"Selected Roles:"}),(0,a.jsx)("div",{className:"space-y-1",children:V.map(e=>{let s=K.data.rolesPagination.items.find(s=>s.id===e.id);return(0,a.jsxs)("div",{className:"flex items-center gap-2 border p-2 rounded-lg text-sm",children:[(0,a.jsx)("span",{className:"flex-1 pl-2 capitalize",children:null==s?void 0:s.name}),(0,a.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{B(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,a.jsx)(d.i4,{className:"h-6 text-xs w-20 border-none",children:(0,a.jsx)(d.ki,{})}),(0,a.jsxs)(d.Bw,{children:[(0,a.jsx)(d.Ql,{value:"read",children:(0,a.jsx)("span",{className:"pr-7",children:"Read"})}),(0,a.jsx)(d.Ql,{value:"write",children:(0,a.jsx)("span",{className:"pr-7",children:"Write"})})]})]}),(0,a.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-5 w-5 p-0 hover:bg-blue-100",onClick:()=>{B(s=>s.filter(s=>s.id!==e.id))},children:(0,a.jsx)(g.Z,{className:"w-3 h-3"})})]},e.id)})})]})]})}),(0,a.jsx)(j.Vq,{open:A,onOpenChange:F,children:(0,a.jsxs)(j.cZ,{className:"sm:max-w-2xl max-h-[85vh] flex flex-col",children:[(0,a.jsxs)(j.fK,{children:[(0,a.jsxs)(j.$N,{children:["All Selected Users (",(null==Y?void 0:Y.length)||0,")"]}),(0,a.jsx)(j.Be,{children:"View and manage all selected users and their permissions"})]}),(0,a.jsxs)(v.x,{className:"flex-1 pr-4",children:[G&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,a.jsx)(h.Z,{className:"h-6 w-6 animate-spin mr-2"}),(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading users..."})]}),!G&&O.length>0&&(0,a.jsx)("div",{className:"space-y-2",children:O.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-3 border p-3 rounded-lg",children:[(0,a.jsx)("span",{className:"flex-1",children:e.email}),(0,a.jsxs)(d.Ph,{value:e.rights,onValueChange:s=>{P(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t)),Q(t=>t.map(t=>t.id===e.id?{...t,rights:s}:t))},children:[(0,a.jsx)(d.i4,{className:"w-24",children:(0,a.jsx)(d.ki,{})}),(0,a.jsxs)(d.Bw,{children:[(0,a.jsx)(d.Ql,{value:"read",children:"Read"}),(0,a.jsx)(d.Ql,{value:"write",children:"Write"})]})]}),(0,a.jsx)(k.z,{size:"sm",variant:"ghost",className:"h-8 w-8 p-0 hover:bg-destructive/10",onClick:()=>{P(s=>s.filter(s=>s.id!==e.id)),Q(s=>s.filter(s=>s.id!==e.id))},children:(0,a.jsx)(g.Z,{className:"w-4 h-4"})})]},e.id))}),!G&&0===O.length&&(0,a.jsx)("div",{className:"text-center py-8",children:(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"No users selected"})})]})]})})]})}},35974:function(e,s,t){t.d(s,{C:function(){return i}});var a=t(57437),r=t(90535);t(2265);var l=t(94508);let n=(0,r.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i(e){let{className:s,variant:t,...r}=e;return(0,a.jsx)("div",{className:(0,l.cn)(n({variant:t}),s),...r})}},66070:function(e,s,t){t.d(s,{Ol:function(){return i},SZ:function(){return o},Zb:function(){return n},aY:function(){return c},eW:function(){return m},ll:function(){return d}});var a=t(57437),r=t(2265),l=t(94508);let n=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",t),...r})});n.displayName="Card";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",t),...r})});i.displayName="CardHeader";let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("h3",{ref:s,className:(0,l.cn)("text-2xl font-semibold leading-none tracking-tight",t),...r})});d.displayName="CardTitle";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("p",{ref:s,className:(0,l.cn)("text-sm text-muted-foreground",t),...r})});o.displayName="CardDescription";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("p-6 pt-0",t),...r})});c.displayName="CardContent";let m=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("flex items-center p-6 pt-0",t),...r})});m.displayName="CardFooter"},23518:function(e,s,t){t.d(s,{di:function(){return f},e8:function(){return c},fu:function(){return u},mY:function(){return d},rb:function(){return m},sZ:function(){return o}});var a=t(57437),r=t(83918),l=t(73247),n=t(2265);t(26110);var i=t(94508);let d=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.mY,{ref:s,className:(0,i.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",t),...l})});d.displayName=r.mY.displayName;let o=n.forwardRef((e,s)=>{let{className:t,...n}=e;return(0,a.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,a.jsx)(l.Z,{className:"mr-2 size-4 shrink-0 opacity-50"}),(0,a.jsx)(r.mY.Input,{ref:s,className:(0,i.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),...n})]})});o.displayName=r.mY.Input.displayName;let c=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.mY.List,{ref:s,className:(0,i.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",t),...l})});c.displayName=r.mY.List.displayName;let m=n.forwardRef((e,s)=>(0,a.jsx)(r.mY.Empty,{ref:s,className:"py-6 text-center text-sm",...e}));m.displayName=r.mY.Empty.displayName;let u=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.mY.Group,{ref:s,className:(0,i.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",t),...l})});u.displayName=r.mY.Group.displayName,n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.mY.Separator,{ref:s,className:(0,i.cn)("-mx-1 h-px bg-border",t),...l})}).displayName=r.mY.Separator.displayName;let f=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.mY.Item,{ref:s,className:(0,i.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...l})});f.displayName=r.mY.Item.displayName},26110:function(e,s,t){t.d(s,{$N:function(){return p},Be:function(){return h},Vq:function(){return d},cN:function(){return x},cZ:function(){return u},fK:function(){return f},hg:function(){return o}});var a=t(57437),r=t(34567),l=t(32489),n=t(2265),i=t(94508);let d=r.fC,o=r.xz,c=r.h_;r.x8;let m=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.aV,{ref:s,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...l})});m.displayName=r.aV.displayName;let u=n.forwardRef((e,s)=>{let{className:t,children:n,...d}=e;return(0,a.jsxs)(c,{children:[(0,a.jsx)(m,{}),(0,a.jsxs)(r.VY,{ref:s,className:(0,i.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...d,children:[n,(0,a.jsxs)(r.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(l.Z,{className:"size-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});u.displayName=r.VY.displayName;let f=e=>{let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",s),...t})};f.displayName="DialogHeader";let x=e=>{let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...t})};x.displayName="DialogFooter";let p=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.Dx,{ref:s,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",t),...l})});p.displayName=r.Dx.displayName;let h=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.dk,{ref:s,className:(0,i.cn)("text-sm text-muted-foreground",t),...l})});h.displayName=r.dk.displayName},26815:function(e,s,t){t.d(s,{_:function(){return o}});var a=t(57437),r=t(6394),l=t(90535),n=t(2265),i=t(94508);let d=(0,l.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),o=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.f,{ref:s,className:(0,i.cn)(d(),t),...l})});o.displayName=r.f.displayName},57054:function(e,s,t){t.d(s,{J2:function(){return i},xo:function(){return d},yk:function(){return o}});var a=t(57437),r=t(27312),l=t(2265),n=t(94508);let i=r.fC,d=r.xz,o=l.forwardRef((e,s)=>{let{className:t,align:l="center",sideOffset:i=4,...d}=e;return(0,a.jsx)(r.h_,{children:(0,a.jsx)(r.VY,{ref:s,align:l,sideOffset:i,className:(0,n.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...d})})});o.displayName=r.VY.displayName},19378:function(e,s,t){t.d(s,{B:function(){return d},x:function(){return i}});var a=t(57437),r=t(14488),l=t(2265),n=t(94508);let i=l.forwardRef((e,s)=>{let{className:t,children:l,...i}=e;return(0,a.jsxs)(r.fC,{ref:s,className:(0,n.cn)("relative overflow-hidden",t),...i,children:[(0,a.jsx)(r.l_,{className:"size-full rounded-[inherit]",children:l}),(0,a.jsx)(d,{}),(0,a.jsx)(r.Ns,{})]})});i.displayName=r.fC.displayName;let d=l.forwardRef((e,s)=>{let{className:t,orientation:l="vertical",...i}=e;return(0,a.jsx)(r.gb,{ref:s,orientation:l,className:(0,n.cn)("flex touch-none select-none transition-colors","vertical"===l&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===l&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...i,children:(0,a.jsx)(r.q4,{className:"relative flex-1 rounded-full bg-border"})})});d.displayName=r.gb.displayName},53647:function(e,s,t){t.d(s,{Bw:function(){return p},Ph:function(){return c},Ql:function(){return h},i4:function(){return u},ki:function(){return m}});var a=t(57437),r=t(46943),l=t(40875),n=t(22135),i=t(30401),d=t(2265),o=t(94508);let c=r.fC;r.ZA;let m=r.B4,u=d.forwardRef((e,s)=>{let{className:t,children:n,...i}=e;return(0,a.jsxs)(r.xz,{ref:s,className:(0,o.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...i,children:[n,(0,a.jsx)(r.JO,{asChild:!0,children:(0,a.jsx)(l.Z,{className:"size-4 opacity-50"})})]})});u.displayName=r.xz.displayName;let f=d.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.u_,{ref:s,className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...l,children:(0,a.jsx)(n.Z,{className:"size-4"})})});f.displayName=r.u_.displayName;let x=d.forwardRef((e,s)=>{let{className:t,...n}=e;return(0,a.jsx)(r.$G,{ref:s,className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...n,children:(0,a.jsx)(l.Z,{className:"size-4"})})});x.displayName=r.$G.displayName;let p=d.forwardRef((e,s)=>{let{className:t,children:l,position:n="popper",...i}=e;return(0,a.jsx)(r.h_,{children:(0,a.jsxs)(r.VY,{ref:s,className:(0,o.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:n,...i,children:[(0,a.jsx)(f,{}),(0,a.jsx)(r.l_,{className:(0,o.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:l}),(0,a.jsx)(x,{})]})})});p.displayName=r.VY.displayName,d.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.__,{ref:s,className:(0,o.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",t),...l})}).displayName=r.__.displayName;let h=d.forwardRef((e,s)=>{let{className:t,children:l,...n}=e;return(0,a.jsxs)(r.ck,{ref:s,className:(0,o.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...n,children:[(0,a.jsx)("span",{className:"absolute left-2 flex size-3.5 items-center justify-center",children:(0,a.jsx)(r.wU,{children:(0,a.jsx)(i.Z,{className:"size-4"})})}),(0,a.jsx)(r.eT,{children:l})]})});h.displayName=r.ck.displayName,d.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.Z0,{ref:s,className:(0,o.cn)("-mx-1 my-1 h-px bg-muted",t),...l})}).displayName=r.Z0.displayName},76818:function(e,s,t){t.d(s,{g:function(){return n}});var a=t(57437),r=t(2265),l=t(94508);let n=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("textarea",{className:(0,l.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:s,...r})});n.displayName="Textarea"}}]);
2
- //# sourceMappingURL=8030-c1b6be46253076cb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/chunks/8030-c1b6be46253076cb.js","mappings":"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","sources":["webpack://_N_E/./components/rbac.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/command.tsx","webpack://_N_E/./components/ui/dialog.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/popover.tsx","webpack://_N_E/./components/ui/scroll-area.tsx","webpack://_N_E/./components/ui/select.tsx","webpack://_N_E/./components/ui/textarea.tsx"],"sourcesContent":["\nimport {\n GET_USER_ROLES,\n GET_USERS,\n GET_USER_BY_ID\n} from \"@/queries/queries\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport { useApolloClient, useQuery } from \"@apollo/client\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui/select\";\nimport { User } from \"@/types/models/user\";\nimport { Check, ChevronsUpDown, Users, Lock, Globe, Settings, Trash2, Loader2, Folder } from \"lucide-react\";\nimport { Input } from \"@/components/ui/input\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n} from \"@/components/ui/dialog\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\";\nimport { Button } from \"@/components/ui/button\";\nimport { Label } from \"./ui/label\";\n\nconst VISIBILITY_OPTIONS = [\n { value: 'private', label: 'Private', description: 'Only you can see this agent', icon: Lock },\n { value: 'users', label: 'Shared with Users', description: 'Share with specific users', icon: Users },\n { value: 'roles', label: 'Shared with Roles', description: 'Share with specific roles', icon: Settings },\n { value: 'public', label: 'Public', description: 'Anyone can see this agent', icon: Globe },\n { value: 'projects', label: 'Projects', description: 'Share with specific projects', icon: Folder }\n]\n\ntype Modes = 'private' | 'users' | 'roles' | 'public' | 'projects'\n\nexport function RBACControl({\n allowedModes,\n initialRightsMode,\n modalMode = false,\n initialUsers,\n initialRoles,\n initialProjects,\n onChange\n}: {\n allowedModes?: Modes[],\n modalMode?: boolean,\n initialRightsMode: 'private' | 'users' | 'roles' | 'public' | 'projects' | undefined,\n initialUsers: { id: number, rights: 'read' | 'write' }[] | undefined,\n initialRoles: { id: string, rights: 'read' | 'write' }[] | undefined,\n initialProjects: { id: string, rights: 'read' | 'write' }[] | undefined,\n onChange: (rights_mode: Modes, users: { id: number, rights: 'read' | 'write' }[], roles: { id: string, rights: 'read' | 'write' }[], projects: { id: string, rights: 'read' | 'write' }[]) => void\n}) {\n const [visibility, setVisibility] = useState<Modes | undefined>(initialRightsMode)\n const [selectedUsers, setSelectedUsers] = useState<{ id: number, rights: 'read' | 'write' }[]>(initialUsers || [])\n const [selectedRoles, setSelectedRoles] = useState<{ id: string, rights: 'read' | 'write' }[]>(initialRoles || [])\n const [hydratedUsers, setHydratedUsers] = useState<User[]>([])\n const [visibilitySelectorOpen, setVisibilitySelectorOpen] = useState(false)\n const [userFilters, setUserFilters] = useState<any[]>([])\n const [userSearchValue, setUserSearchValue] = useState('')\n const [modalOpen, setModalOpen] = useState(false)\n const [modalLoading, setModalLoading] = useState(false)\n const client = useApolloClient()\n\n // GraphQL queries for RBAC\n const { data: usersData, loading: usersLoading, refetch: refetchUsers } = useQuery(GET_USERS, {\n variables: { page: 1, limit: 5, filters: userFilters },\n skip: visibility !== 'users' || !userSearchValue\n })\n\n const roles = useQuery(GET_USER_ROLES, {\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: \"network-only\",\n variables: {\n page: 1,\n limit: 30,\n filters: [\n {\n type: {\n ne: \"api\"\n }\n }\n ]\n },\n });\n\n\n // User search function\n const searchUsers = useCallback((value: string) => {\n setUserSearchValue(value)\n const copy = [...userFilters, {\n type: {\n ne: \"api\"\n }\n }]\n const exists = copy.find((filter) => filter.email)\n if (exists?.email) {\n exists.email.contains = value\n } else {\n copy.push({\n email: {\n contains: value,\n },\n })\n }\n setUserFilters(copy)\n refetchUsers()\n }, [userFilters, refetchUsers])\n\n const hydrateUsers = async (max: number = 5) => {\n setModalLoading(true)\n if (!selectedUsers || selectedUsers.length === 0) {\n setHydratedUsers([])\n setModalLoading(false)\n return\n }\n\n const promises = selectedUsers?.slice(0, max).map(async ({ id, rights }) => {\n const user = await client.query({\n query: GET_USER_BY_ID,\n variables: {\n id\n }\n })\n return {\n ...user.data.userById,\n rights\n };\n })\n const results = await Promise.all(promises)\n setHydratedUsers(results)\n setModalLoading(false)\n }\n\n useEffect(() => {\n hydrateUsers(5)\n }, [])\n\n useEffect(() => {\n console.log(\"selectedUsers\", selectedUsers)\n console.log(\"hydratedUsers\", hydratedUsers)\n onChange(visibility as 'private' | 'users' | 'roles' | 'public', selectedUsers, selectedRoles, [])\n }, [visibility, selectedUsers, selectedRoles])\n\n const filteredUsers = hydratedUsers?.slice(0, 5).filter(user => !!user?.id)\n\n let visibilityOptions = VISIBILITY_OPTIONS\n if (allowedModes?.length) {\n visibilityOptions = VISIBILITY_OPTIONS.filter(option => allowedModes.includes(option.value as Modes))\n }\n\n return (\n <>\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Visibility & sharing</Label>\n <Popover modal={modalMode || false} open={visibilitySelectorOpen} onOpenChange={setVisibilitySelectorOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={visibilitySelectorOpen}\n className=\"w-full justify-between text-sm capitalize\"\n >\n {visibilityOptions.find(option => option.value === visibility)?.label || \"Select visibility...\"}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\">\n <Command>\n <CommandInput placeholder=\"Search options...\" />\n <CommandList>\n <CommandEmpty>No options found.</CommandEmpty>\n <CommandGroup>\n {visibilityOptions.map((option: any) => (\n <CommandItem\n key={option.value}\n onSelect={() => {\n if (option.value !== \"users\") {\n setSelectedUsers([])\n }\n if (option.value !== \"roles\") {\n setSelectedRoles([])\n }\n setVisibility(option.value)\n setVisibilitySelectorOpen(false)\n }}\n >\n <Check\n className={cn(\n \"mr-2 h-4 w-4\",\n visibility === option.value ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n <div className=\"flex flex-col\">\n <span>{option.label}</span>\n <span className=\"text-xs text-muted-foreground\">{option.description}</span>\n </div>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n </div>\n\n {/* Users sharing section */}\n {visibility === 'users' && (\n <div className=\"space-y-3 pt-3\">\n <div>\n <Label className=\"text-sm font-medium\">Share with users</Label>\n {/* Search bar */}\n <div className=\"mt-2\">\n <Input\n placeholder=\"Search users by email...\"\n value={userSearchValue}\n onChange={(e) => searchUsers(e.target.value)}\n className=\"text-sm\"\n />\n </div>\n\n {/* Search results */}\n {usersLoading && (\n <div className=\"mt-2 flex items-center justify-center py-4\">\n <Loader2 className=\"h-4 w-4 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading users...</span>\n </div>\n )}\n {!usersLoading && usersData && usersData.usersPagination?.items.length > 0 && (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Search Results:</div>\n <div className=\"max-h-50 overflow-y-auto border rounded-lg\">\n {usersData.usersPagination.items.filter(user => !selectedUsers.some(selected => selected.id === user.id)).map((user: any) => (\n <label key={user.id} className=\"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={selectedUsers.some(selected => selected.id === user.id)}\n onChange={(e) => {\n setSelectedUsers(prev => [...prev, { id: user.id, rights: 'read' }])\n setHydratedUsers(prev => [...prev, {\n ...user,\n rights: 'read'\n }])\n }}\n />\n <span className=\"text-sm\">{user.email}</span>\n </label>\n ))}\n </div>\n <div className=\"text-xs text-muted-foreground mt-2\">\n <span className=\"font-medium\">Note:</span> Only the first 5 users are shown, use the Search bar to find more users.\n </div>\n </div>\n )}\n {!usersLoading && userSearchValue && usersData && usersData.usersPagination.items.length === 0 && (\n <div className=\"mt-2 text-center py-4\">\n <span className=\"text-sm text-muted-foreground\">No users found</span>\n </div>\n )}\n\n {/* Selected users list */}\n {filteredUsers?.length > 0 ? (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Selected Users:</div>\n <div className=\"space-y-1\">\n {filteredUsers.map((user: any) => (\n <div key={user.id} className=\"flex items-center gap-2 border p-2 rounded-lg text-sm\">\n <span className=\"flex-1 pl-2\">{user.email}</span>\n <Select\n value={user.rights}\n onValueChange={(value: 'read' | 'write') => {\n setSelectedUsers(prev =>\n prev.map(selected =>\n selected.id === user.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n setHydratedUsers(prev =>\n prev.map(hydratedUser =>\n hydratedUser.id === user.id\n ? { ...hydratedUser, rights: value }\n : hydratedUser\n )\n )\n }}\n >\n <SelectTrigger className=\"h-6 w-20 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">Read</SelectItem>\n <SelectItem value=\"write\">Write</SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-5 w-5 p-0 hover:bg-blue-100\"\n onClick={() => {\n setSelectedUsers(prev => prev.filter(selected => selected.id !== user.id))\n setHydratedUsers(prev => prev.filter(hydratedUser => hydratedUser.id !== user.id))\n }}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </div>\n ))}\n {selectedUsers && selectedUsers.length > 5 && (\n <Button\n variant=\"link\"\n type=\"button\"\n className=\"h-auto p-0 text-blue-600 hover:text-blue-800 text-xs\"\n onClick={() => {\n hydrateUsers(50)\n setModalOpen(true)\n }}\n >\n + {selectedUsers.length - 5} more users\n </Button>\n )}\n </div>\n </div>\n ) : (\n <div className=\"mt-2 text-center py-4\">\n <span className=\"text-sm text-muted-foreground\">No users selected.</span>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Roles sharing section */}\n {visibility === 'roles' && (\n <div className=\"space-y-3\">\n <div>\n <Label className=\"text-sm font-medium\">Share with roles ({selectedRoles?.length || 0})</Label>\n\n {/* Available roles list */}\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Available Roles</div>\n {roles.loading && (\n <div className=\"flex items-center justify-center py-4 border rounded-lg\">\n <Loader2 className=\"h-4 w-4 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading roles...</span>\n </div>\n )}\n {!roles.loading && roles.data && (\n <div className=\"max-h-24 overflow-y-auto border rounded-lg\">\n {roles.data.rolesPagination.items.map((role: any) => (\n <label key={role.id} className=\"flex items-center space-x-2 p-2 hover:bg-muted/50 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={selectedRoles.some(selected => selected.id === role.id)}\n onChange={(e) => {\n if (e.target.checked) {\n setSelectedRoles(prev => [...prev, { id: role.id, rights: 'read' }])\n } else {\n setSelectedRoles(prev => prev.filter(selected => selected.id !== role.id))\n }\n }}\n />\n <span className=\"text-sm capitalize\">{role.name}</span>\n </label>\n ))}\n </div>\n )}\n </div>\n\n {/* Selected roles list */}\n {selectedRoles.length > 0 && roles.data && (\n <div className=\"mt-2\">\n <div className=\"text-xs text-muted-foreground mb-1\">Selected Roles:</div>\n <div className=\"space-y-1\">\n {selectedRoles.map((selectedRole: any) => {\n const role = roles.data.rolesPagination.items.find((r: any) => r.id === selectedRole.id)\n return (\n <div key={selectedRole.id} className=\"flex items-center gap-2 border p-2 rounded-lg text-sm\">\n <span className=\"flex-1 pl-2 capitalize\">{role?.name}</span>\n <Select\n value={selectedRole.rights}\n onValueChange={(value: 'read' | 'write') => {\n setSelectedRoles(prev =>\n prev.map(selected =>\n selected.id === selectedRole.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n }}\n >\n <SelectTrigger className=\"h-6 text-xs w-20 border-none\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">\n <span className=\"pr-7\">Read</span>\n </SelectItem>\n <SelectItem value=\"write\">\n <span className=\"pr-7\">Write</span>\n </SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-5 w-5 p-0 hover:bg-blue-100\"\n onClick={() => {\n setSelectedRoles(prev => prev.filter(selected => selected.id !== selectedRole.id))\n }}\n >\n <Trash2 className=\"w-3 h-3\" />\n </Button>\n </div>\n )\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Modal for viewing all selected users */}\n <Dialog open={modalOpen} onOpenChange={setModalOpen} >\n <DialogContent className=\"sm:max-w-2xl max-h-[85vh] flex flex-col\">\n <DialogHeader>\n <DialogTitle>All Selected Users ({selectedUsers?.length || 0})</DialogTitle>\n <DialogDescription>\n View and manage all selected users and their permissions\n </DialogDescription>\n </DialogHeader>\n\n <ScrollArea className=\"flex-1 pr-4\">\n {modalLoading && (\n <div className=\"flex items-center justify-center py-8\">\n <Loader2 className=\"h-6 w-6 animate-spin mr-2\" />\n <span className=\"text-sm text-muted-foreground\">Loading users...</span>\n </div>\n )}\n\n {!modalLoading && hydratedUsers.length > 0 && (\n <div className=\"space-y-2\">\n {hydratedUsers.map((user: any) => (\n <div key={user.id} className=\"flex items-center gap-3 border p-3 rounded-lg\">\n <span className=\"flex-1\">{user.email}</span>\n <Select\n value={user.rights}\n onValueChange={(value: 'read' | 'write') => {\n // Update selectedUsers state\n setSelectedUsers(prev =>\n prev.map(selected =>\n selected.id === user.id\n ? { ...selected, rights: value }\n : selected\n )\n )\n // Update hydratedUsers state if this user is in the first 5\n setHydratedUsers(prev =>\n prev.map(hydratedUser =>\n hydratedUser.id === user.id\n ? { ...hydratedUser, rights: value }\n : hydratedUser\n )\n )\n }}\n >\n <SelectTrigger className=\"w-24\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"read\">Read</SelectItem>\n <SelectItem value=\"write\">Write</SelectItem>\n </SelectContent>\n </Select>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-8 w-8 p-0 hover:bg-destructive/10\"\n onClick={() => {\n setSelectedUsers(prev => prev.filter(selected => selected.id !== user.id))\n setHydratedUsers(prev => prev.filter(hydratedUser => hydratedUser.id !== user.id))\n }}\n >\n <Trash2 className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n\n {!modalLoading && hydratedUsers.length === 0 && (\n <div className=\"text-center py-8\">\n <span className=\"text-sm text-muted-foreground\">No users selected</span>\n </div>\n )}\n </ScrollArea>\n </DialogContent>\n </Dialog >\n </>\n )\n}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\";\nimport { cn } from \"@/lib/utils\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","\"use client\";\n\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\";\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","\"use client\";\n\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"size-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","\"use client\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"],"names":["VISIBILITY_OPTIONS","value","label","description","icon","Lock","Users","Settings","Globe","Folder","RBACControl","param","visibilityOptions","usersData","allowedModes","initialRightsMode","modalMode","initialUsers","initialRoles","initialProjects","onChange","visibility","setVisibility","useState","selectedUsers","setSelectedUsers","selectedRoles","setSelectedRoles","hydratedUsers","setHydratedUsers","visibilitySelectorOpen","setVisibilitySelectorOpen","userFilters","setUserFilters","userSearchValue","setUserSearchValue","modalOpen","setModalOpen","modalLoading","setModalLoading","client","useApolloClient","data","loading","usersLoading","refetch","refetchUsers","useQuery","GET_USERS","variables","page","limit","filters","skip","roles","GET_USER_ROLES","fetchPolicy","nextFetchPolicy","type","ne","searchUsers","useCallback","copy","exists","find","filter","email","contains","push","hydrateUsers","max","length","promises","slice","map","id","rights","user","query","GET_USER_BY_ID","userById","Promise","all","useEffect","console","log","filteredUsers","option","includes","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","Fragment","div","className","jsx","Label","Popover","modal","open","onOpenChange","PopoverTrigger","asChild","Button","variant","role","aria-expanded","ChevronsUpDown","PopoverContent","Command","CommandInput","placeholder","CommandList","CommandEmpty","CommandGroup","CommandItem","onSelect","Check","cn","span","Input","e","target","Loader2","usersPagination","items","some","selected","input","checked","prev","Select","onValueChange","hydratedUser","SelectTrigger","SelectValue","SelectContent","SelectItem","size","onClick","Trash2","rolesPagination","name","r","selectedRole","Dialog","DialogContent","DialogHeader","DialogTitle","DialogDescription","ScrollArea","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","Badge","props","Card","React","ref","displayName","CardHeader","CardTitle","h3","CardDescription","p","CardContent","CardFooter","CommandPrimitive","cmdk-input-wrapper","Search","List","Empty","Group","CommandSeparator","Separator","Item","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","children","X","DialogFooter","labelVariants","LabelPrimitive","PopoverPrimitive","align","sideOffset","ScrollAreaPrimitive","ScrollBar","orientation","SelectPrimitive","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","position","SelectLabel","SelectSeparator","Textarea","textarea"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9621,7598,3619],{22252:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("AlertCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},32660:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},55455:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20",key:"t4utmx"}]])},66901:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("CheckCircle2",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},40875:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},33245:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},15863:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},53417:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]])},45675:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Pencil",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},52636:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("RefreshCcw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]])},45131:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("XCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},1119:function(e,t,n){n.d(t,{Z:function(){return r}});function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}},62484:function(e,t,n){n.d(t,{u:function(){return r}});function r(e,[t,n]){return Math.min(n,Math.max(t,e))}},23619:function(e,t,n){n.d(t,{aU:function(){return eM},$j:function(){return eN},VY:function(){return ex},dk:function(){return eR},aV:function(){return ew},h_:function(){return eT},fC:function(){return eb},Dx:function(){return eC},xz:function(){return eD}});var r=n(2265),o=n(73966),i=n(98575),a=n(6741),l=n(99255),u=n(80886),s=n(22308),c=n(99103),d=n(83832),f=n(71599),p=n(66840),m=n(86097),g=n(60703),v=n(5478),h=n(37053),y=n(57437),b="Dialog",[D,T]=(0,o.b)(b),[w,x]=D(b),M=e=>{let{__scopeDialog:t,children:n,open:o,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,c=r.useRef(null),d=r.useRef(null),[f,p]=(0,u.T)({prop:o,defaultProp:null!=i&&i,onChange:a,caller:b});return(0,y.jsx)(w,{scope:t,triggerRef:c,contentRef:d,contentId:(0,l.M)(),titleId:(0,l.M)(),descriptionId:(0,l.M)(),open:f,onOpenChange:p,onOpenToggle:r.useCallback(()=>p(e=>!e),[p]),modal:s,children:n})};M.displayName=b;var N="DialogTrigger",C=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=x(N,n),l=(0,i.e)(t,o.triggerRef);return(0,y.jsx)(p.WV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":q(o.open),...r,ref:l,onClick:(0,a.M)(e.onClick,o.onOpenToggle)})});C.displayName=N;var R="DialogPortal",[k,j]=D(R,{forceMount:void 0}),S=e=>{let{__scopeDialog:t,forceMount:n,children:o,container:i}=e,a=x(R,t);return(0,y.jsx)(k,{scope:t,forceMount:n,children:r.Children.map(o,e=>(0,y.jsx)(f.z,{present:n||a.open,children:(0,y.jsx)(d.h,{asChild:!0,container:i,children:e})}))})};S.displayName=R;var A="DialogOverlay",O=r.forwardRef((e,t)=>{let n=j(A,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=x(A,e.__scopeDialog);return i.modal?(0,y.jsx)(f.z,{present:r||i.open,children:(0,y.jsx)(I,{...o,ref:t})}):null});O.displayName=A;var E=(0,h.Z8)("DialogOverlay.RemoveScroll"),I=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=x(A,n);return(0,y.jsx)(g.Z,{as:E,allowPinchZoom:!0,shards:[o.contentRef],children:(0,y.jsx)(p.WV.div,{"data-state":q(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),F="DialogContent",Z=r.forwardRef((e,t)=>{let n=j(F,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=x(F,e.__scopeDialog);return(0,y.jsx)(f.z,{present:r||i.open,children:i.modal?(0,y.jsx)(_,{...o,ref:t}):(0,y.jsx)(P,{...o,ref:t})})});Z.displayName=F;var _=r.forwardRef((e,t)=>{let n=x(F,e.__scopeDialog),o=r.useRef(null),l=(0,i.e)(t,n.contentRef,o);return r.useEffect(()=>{let e=o.current;if(e)return(0,v.Ry)(e)},[]),(0,y.jsx)(z,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,a.M)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:(0,a.M)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,a.M)(e.onFocusOutside,e=>e.preventDefault())})}),P=r.forwardRef((e,t)=>{let n=x(F,e.__scopeDialog),o=r.useRef(!1),i=r.useRef(!1);return(0,y.jsx)(z,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var r,a;null===(r=e.onCloseAutoFocus)||void 0===r||r.call(e,t),t.defaultPrevented||(o.current||null===(a=n.triggerRef.current)||void 0===a||a.focus(),t.preventDefault()),o.current=!1,i.current=!1},onInteractOutside:t=>{var r,a;null===(r=e.onInteractOutside)||void 0===r||r.call(e,t),t.defaultPrevented||(o.current=!0,"pointerdown"!==t.detail.originalEvent.type||(i.current=!0));let l=t.target;(null===(a=n.triggerRef.current)||void 0===a?void 0:a.contains(l))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),z=r.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:l,...u}=e,d=x(F,n),f=r.useRef(null),p=(0,i.e)(t,f);return(0,m.EW)(),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(c.M,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:l,children:(0,y.jsx)(s.XB,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":q(d.open),...u,ref:p,onDismiss:()=>d.onOpenChange(!1)})}),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(J,{titleId:d.titleId}),(0,y.jsx)(K,{contentRef:f,descriptionId:d.descriptionId})]})]})}),L="DialogTitle",H=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=x(L,n);return(0,y.jsx)(p.WV.h2,{id:o.titleId,...r,ref:t})});H.displayName=L;var Q="DialogDescription",B=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=x(Q,n);return(0,y.jsx)(p.WV.p,{id:o.descriptionId,...r,ref:t})});B.displayName=Q;var W="DialogClose",V=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=x(W,n);return(0,y.jsx)(p.WV.button,{type:"button",...r,ref:t,onClick:(0,a.M)(e.onClick,()=>o.onOpenChange(!1))})});function q(e){return e?"open":"closed"}V.displayName=W;var U="DialogTitleWarning",[X,Y]=(0,o.k)(U,{contentName:F,titleName:L,docsSlug:"dialog"}),J=e=>{let{titleId:t}=e,n=Y(U),o="`".concat(n.contentName,"` requires a `").concat(n.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(n.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(n.docsSlug);return r.useEffect(()=>{t&&!document.getElementById(t)&&console.error(o)},[o,t]),null},K=e=>{let{contentRef:t,descriptionId:n}=e,o=Y("DialogDescriptionWarning"),i="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(o.contentName,"}.");return r.useEffect(()=>{var e;let r=null===(e=t.current)||void 0===e?void 0:e.getAttribute("aria-describedby");n&&r&&!document.getElementById(n)&&console.warn(i)},[i,t,n]),null},$="AlertDialog",[G,ee]=(0,o.b)($,[T]),et=T(),en=e=>{let{__scopeAlertDialog:t,...n}=e,r=et(t);return(0,y.jsx)(M,{...r,...n,modal:!0})};en.displayName=$;var er=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(C,{...o,...r,ref:t})});er.displayName="AlertDialogTrigger";var eo=e=>{let{__scopeAlertDialog:t,...n}=e,r=et(t);return(0,y.jsx)(S,{...r,...n})};eo.displayName="AlertDialogPortal";var ei=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(O,{...o,...r,ref:t})});ei.displayName="AlertDialogOverlay";var ea="AlertDialogContent",[el,eu]=G(ea),es=(0,h.sA)("AlertDialogContent"),ec=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,children:o,...l}=e,u=et(n),s=r.useRef(null),c=(0,i.e)(t,s),d=r.useRef(null);return(0,y.jsx)(X,{contentName:ea,titleName:ed,docsSlug:"alert-dialog",children:(0,y.jsx)(el,{scope:n,cancelRef:d,children:(0,y.jsxs)(Z,{role:"alertdialog",...u,...l,ref:c,onOpenAutoFocus:(0,a.M)(l.onOpenAutoFocus,e=>{var t;e.preventDefault(),null===(t=d.current)||void 0===t||t.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,y.jsx)(es,{children:o}),(0,y.jsx)(ey,{contentRef:s})]})})})});ec.displayName=ea;var ed="AlertDialogTitle",ef=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(H,{...o,...r,ref:t})});ef.displayName=ed;var ep="AlertDialogDescription",em=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(B,{...o,...r,ref:t})});em.displayName=ep;var eg=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(V,{...o,...r,ref:t})});eg.displayName="AlertDialogAction";var ev="AlertDialogCancel",eh=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=eu(ev,n),a=et(n),l=(0,i.e)(t,o);return(0,y.jsx)(V,{...a,...r,ref:l})});eh.displayName=ev;var ey=e=>{let{contentRef:t}=e,n="`".concat(ea,"` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the `").concat(ea,"` by passing a `").concat(ep,"` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `").concat(ea,"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog");return r.useEffect(()=>{var e;document.getElementById(null===(e=t.current)||void 0===e?void 0:e.getAttribute("aria-describedby"))||console.warn(n)},[n,t]),null},eb=en,eD=er,eT=eo,ew=ei,ex=ec,eM=eg,eN=eh,eC=ef,eR=em},88985:function(e,t,n){n.d(t,{zF:function(){return y},Fw:function(){return w},wy:function(){return D},fC:function(){return N}});var r=n(2265);"undefined"!=typeof window&&window.document&&window.document.createElement;var o=n(73966),i=n(80886),a=n(61188),l=n(98575),u=n(66840),s=e=>{var t,n;let o,i;let{present:u,children:s}=e,d=function(e){var t,n;let[o,i]=r.useState(),l=r.useRef(null),u=r.useRef(e),s=r.useRef("none"),[d,f]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>{let r=n[e][t];return null!=r?r:e},t));return r.useEffect(()=>{let e=c(l.current);s.current="mounted"===d?e:"none"},[d]),(0,a.b)(()=>{let t=l.current,n=u.current;if(n!==e){let r=s.current,o=c(t);e?f("MOUNT"):"none"===o||(null==t?void 0:t.display)==="none"?f("UNMOUNT"):n&&r!==o?f("ANIMATION_OUT"):f("UNMOUNT"),u.current=e}},[e,f]),(0,a.b)(()=>{if(o){var e;let t;let n=null!==(e=o.ownerDocument.defaultView)&&void 0!==e?e:window,r=e=>{let r=c(l.current).includes(CSS.escape(e.animationName));if(e.target===o&&r&&(f("ANIMATION_END"),!u.current)){let e=o.style.animationFillMode;o.style.animationFillMode="forwards",t=n.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=e)})}},i=e=>{e.target===o&&(s.current=c(l.current))};return o.addEventListener("animationstart",i),o.addEventListener("animationcancel",r),o.addEventListener("animationend",r),()=>{n.clearTimeout(t),o.removeEventListener("animationstart",i),o.removeEventListener("animationcancel",r),o.removeEventListener("animationend",r)}}f("ANIMATION_END")},[o,f]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:r.useCallback(e=>{l.current=e?getComputedStyle(e):null,i(e)},[])}}(u),f="function"==typeof s?s({present:d.isPresent}):r.Children.only(s),p=(0,l.e)(d.ref,(o=null===(t=Object.getOwnPropertyDescriptor(f.props,"ref"))||void 0===t?void 0:t.get)&&"isReactWarning"in o&&o.isReactWarning?f.ref:(o=null===(n=Object.getOwnPropertyDescriptor(f,"ref"))||void 0===n?void 0:n.get)&&"isReactWarning"in o&&o.isReactWarning?f.props.ref:f.props.ref||f.ref);return"function"==typeof s||d.isPresent?r.cloneElement(f,{ref:p}):null};function c(e){return(null==e?void 0:e.animationName)||"none"}s.displayName="Presence";var d=n(99255),f=n(57437),p="Collapsible",[m,g]=(0,o.b)(p),[v,h]=m(p),y=r.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:o,defaultOpen:a,disabled:l,onOpenChange:s,...c}=e,[m,g]=(0,i.T)({prop:o,defaultProp:null!=a&&a,onChange:s,caller:p});return(0,f.jsx)(v,{scope:n,disabled:l,contentId:(0,d.M)(),open:m,onOpenToggle:r.useCallback(()=>g(e=>!e),[g]),children:(0,f.jsx)(u.WV.div,{"data-state":M(m),"data-disabled":l?"":void 0,...c,ref:t})})});y.displayName=p;var b="CollapsibleTrigger",D=r.forwardRef((e,t)=>{let{__scopeCollapsible:n,...r}=e,o=h(b,n);return(0,f.jsx)(u.WV.button,{type:"button","aria-controls":o.contentId,"aria-expanded":o.open||!1,"data-state":M(o.open),"data-disabled":o.disabled?"":void 0,disabled:o.disabled,...r,ref:t,onClick:function(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}(e.onClick,o.onOpenToggle)})});D.displayName=b;var T="CollapsibleContent",w=r.forwardRef((e,t)=>{let{forceMount:n,...r}=e,o=h(T,e.__scopeCollapsible);return(0,f.jsx)(s,{present:n||o.open,children:e=>{let{present:n}=e;return(0,f.jsx)(x,{...r,ref:t,present:n})}})});w.displayName=T;var x=r.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:o,children:i,...s}=e,c=h(T,n),[d,p]=r.useState(o),m=r.useRef(null),g=(0,l.e)(t,m),v=r.useRef(0),y=v.current,b=r.useRef(0),D=b.current,w=c.open||d,x=r.useRef(w),N=r.useRef(void 0);return r.useEffect(()=>{let e=requestAnimationFrame(()=>x.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,a.b)(()=>{let e=m.current;if(e){N.current=N.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();v.current=t.height,b.current=t.width,x.current||(e.style.transitionDuration=N.current.transitionDuration,e.style.animationName=N.current.animationName),p(o)}},[c.open,o]),(0,f.jsx)(u.WV.div,{"data-state":M(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!w,...s,ref:g,style:{"--radix-collapsible-content-height":y?"".concat(y,"px"):void 0,"--radix-collapsible-content-width":D?"".concat(D,"px"):void 0,...e.style},children:w&&i})});function M(e){return e?"open":"closed"}var N=y},81363:function(e,t,n){n.d(t,{T:function(){return o}});var r=n(99649);function o(e,t){let n=(0,r.Q)(e),o=(0,r.Q)(t);return 12*(n.getFullYear()-o.getFullYear())+(n.getMonth()-o.getMonth())}},27742:function(e,t,n){n.d(t,{V:function(){return o}});var r=n(99649);function o(e){let t=(0,r.Q)(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}},7598:function(e,t,n){n.d(t,{Q:function(){return f}});var r=n(63497),o=n(99649);function i(e,t){let n=(0,o.Q)(e),r=(0,o.Q)(t),i=n.getTime()-r.getTime();return i<0?-1:i>0?1:i}var a=n(78198),l=n(81363),u=n(27742),s=n(5654),c=n(55528),d=n(9340);function f(e,t){return function(e,t,n){var r,f,p,m,g,v;let h,y,b;let D=(0,c.j)(),T=null!==(f=null!==(r=null==n?void 0:n.locale)&&void 0!==r?r:D.locale)&&void 0!==f?f:s._,w=i(e,t);if(isNaN(w))throw RangeError("Invalid time value");let x=Object.assign({},n,{addSuffix:null==n?void 0:n.addSuffix,comparison:w});w>0?(h=(0,o.Q)(t),y=(0,o.Q)(e)):(h=(0,o.Q)(e),y=(0,o.Q)(t));let M=(p=y,m=h,(v=null==void 0?void 0:(void 0).roundingMethod,e=>{let t=(v?Math[v]:Math.trunc)(e);return 0===t?0:t})((+(0,o.Q)(p)-+(0,o.Q)(m))/1e3)),N=Math.round((M-((0,d.D)(y)-(0,d.D)(h))/1e3)/60);if(N<2){if(null==n?void 0:n.includeSeconds){if(M<5)return T.formatDistance("lessThanXSeconds",5,x);if(M<10)return T.formatDistance("lessThanXSeconds",10,x);if(M<20)return T.formatDistance("lessThanXSeconds",20,x);if(M<40)return T.formatDistance("halfAMinute",0,x);else if(M<60)return T.formatDistance("lessThanXMinutes",1,x);else return T.formatDistance("xMinutes",1,x)}return 0===N?T.formatDistance("lessThanXMinutes",1,x):T.formatDistance("xMinutes",N,x)}if(N<45)return T.formatDistance("xMinutes",N,x);if(N<90)return T.formatDistance("aboutXHours",1,x);if(N<a.H_)return T.formatDistance("aboutXHours",Math.round(N/60),x);if(N<2520)return T.formatDistance("xDays",1,x);if(N<a.fH){let e=Math.round(N/a.H_);return T.formatDistance("xDays",e,x)}if(N<2*a.fH)return b=Math.round(N/a.fH),T.formatDistance("aboutXMonths",b,x);if((b=function(e,t){let n;let r=(0,o.Q)(e),a=(0,o.Q)(t),s=i(r,a),c=Math.abs((0,l.T)(r,a));if(c<1)n=0;else{1===r.getMonth()&&r.getDate()>27&&r.setDate(30),r.setMonth(r.getMonth()-s*c);let t=i(r,a)===-s;(function(e){let t=(0,o.Q)(e);return+function(e){let t=(0,o.Q)(e);return t.setHours(23,59,59,999),t}(t)==+(0,u.V)(t)})((0,o.Q)(e))&&1===c&&1===i(e,a)&&(t=!1),n=s*(c-Number(t))}return 0===n?0:n}(y,h))<12){let e=Math.round(N/a.fH);return T.formatDistance("xMonths",e,x)}{let e=b%12,t=Math.trunc(b/12);return e<3?T.formatDistance("aboutXYears",t,x):e<9?T.formatDistance("overXYears",t,x):T.formatDistance("almostXYears",t+1,x)}}(e,(0,r.L)(e,Date.now()),t)}},20460:function(e,t,n){n.d(t,{h:function(){return m}});var r=n(57437),o=n(2265);let i={damping:.7,stiffness:.05,mass:1.25},a=1e3/60,l=!1;globalThis.document?.addEventListener("mousedown",()=>{l=!0}),globalThis.document?.addEventListener("mouseup",()=>{l=!1}),globalThis.document?.addEventListener("click",()=>{l=!1});let u=(e={})=>{let[t,n]=(0,o.useState)(!1),[r,i]=(0,o.useState)(!1!==e.initial),[u,c]=(0,o.useState)(!1),f=(0,o.useRef)(null);f.current=e;let p=(0,o.useCallback)(()=>{if(!l)return!1;let e=window.getSelection();if(!e||!e.rangeCount)return!1;let t=e.getRangeAt(0);return t.commonAncestorContainer.contains(T.current)||T.current?.contains(t.commonAncestorContainer)},[]),m=(0,o.useCallback)(e=>{v.isAtBottom=e,i(e)},[]),g=(0,o.useCallback)(e=>{v.escapedFromLock=e,n(e)},[]),v=(0,o.useMemo)(()=>{let n;return{escapedFromLock:t,isAtBottom:r,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return T.current?.scrollTop??0},set scrollTop(scrollTop){T.current&&(T.current.scrollTop=scrollTop,v.ignoreScrollToTop=T.current.scrollTop)},get targetScrollTop(){if(!T.current||!w.current)return 0;return T.current.scrollHeight-1-T.current.clientHeight},get calculatedTargetScrollTop(){if(!T.current||!w.current)return 0;let{targetScrollTop:t}=this;if(!e.targetScrollTop)return t;if(n?.targetScrollTop===t)return n.calculatedScrollTop;let r=Math.max(Math.min(e.targetScrollTop(t,{scrollElement:T.current,contentElement:w.current}),t),0);return n={targetScrollTop:t,calculatedScrollTop:r},requestAnimationFrame(()=>{n=void 0}),r},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=70}}},[]),h=(0,o.useCallback)((e={})=>{let t;"string"==typeof e&&(e={animation:e}),e.preserveScrollPosition||m(!0);let n=Date.now()+(Number(e.wait)||0),r=d(f.current,e.animation),{ignoreEscapes:o=!1}=e,i=v.calculatedTargetScrollTop;e.duration instanceof Promise?e.duration.finally(()=>{t=Date.now()}):t=n+(e.duration??0);let l=async()=>{let e=new Promise(requestAnimationFrame).then(()=>{if(!v.isAtBottom)return v.animation=void 0,!1;let{scrollTop:u}=v,s=performance.now(),c=(s-(v.lastTick??s))/a;if(v.animation||(v.animation={behavior:r,promise:e,ignoreEscapes:o}),v.animation.behavior===r&&(v.lastTick=s),p()||n>Date.now())return l();if(u<Math.min(i,v.calculatedTargetScrollTop)){if(v.animation?.behavior===r){if("instant"===r)return v.scrollTop=v.calculatedTargetScrollTop,l();v.velocity=(r.damping*v.velocity+r.stiffness*v.scrollDifference)/r.mass,v.accumulated+=v.velocity*c,v.scrollTop+=v.accumulated,v.scrollTop!==u&&(v.accumulated=0)}return l()}return t>Date.now()?(i=v.calculatedTargetScrollTop,l()):(v.animation=void 0,v.scrollTop<v.calculatedTargetScrollTop)?h({animation:d(f.current,f.current.resize),ignoreEscapes:o,duration:Math.max(0,t-Date.now())||void 0}):v.isAtBottom});return e.then(e=>(requestAnimationFrame(()=>{v.animation||(v.lastTick=void 0,v.velocity=0)}),e))};return(!0!==e.wait&&(v.animation=void 0),v.animation?.behavior===r)?v.animation.promise:l()},[m,p,v]),y=(0,o.useCallback)(()=>{g(!0),m(!1)},[g,m]),b=(0,o.useCallback)(({target:e})=>{if(e!==T.current)return;let{scrollTop:t,ignoreScrollToTop:n}=v,{lastScrollTop:r=t}=v;v.lastScrollTop=t,v.ignoreScrollToTop=void 0,n&&n>t&&(r=n),c(v.isNearBottom),setTimeout(()=>{if(v.resizeDifference||t===n)return;if(p()){g(!0),m(!1);return}let e=t>r,o=t<r;if(v.animation?.ignoreEscapes){v.scrollTop=r;return}o&&(g(!0),m(!1)),e&&g(!1),!v.escapedFromLock&&v.isNearBottom&&m(!0)},1)},[g,m,p,v]),D=(0,o.useCallback)(({target:e,deltaY:t})=>{let n=e;for(;!["scroll","auto"].includes(getComputedStyle(n).overflow);){if(!n.parentElement)return;n=n.parentElement}n===T.current&&t<0&&T.current.scrollHeight>T.current.clientHeight&&!v.animation?.ignoreEscapes&&(g(!0),m(!1))},[g,m,v]),T=s(e=>{T.current?.removeEventListener("scroll",b),T.current?.removeEventListener("wheel",D),e?.addEventListener("scroll",b,{passive:!0}),e?.addEventListener("wheel",D,{passive:!0})},[]),w=s(e=>{let t;v.resizeObserver?.disconnect(),e&&(v.resizeObserver=new ResizeObserver(([e])=>{let{height:n}=e.contentRect,r=n-(t??n);if(v.resizeDifference=r,v.scrollTop>v.targetScrollTop&&(v.scrollTop=v.targetScrollTop),c(v.isNearBottom),r>=0){let e=d(f.current,t?f.current.resize:f.current.initial);h({animation:e,wait:!0,preserveScrollPosition:!0,duration:"instant"===e?void 0:350})}else v.isNearBottom&&(g(!1),m(!0));t=n,requestAnimationFrame(()=>{setTimeout(()=>{v.resizeDifference===r&&(v.resizeDifference=0)},1)})}),v.resizeObserver?.observe(e))},[]);return{contentRef:w,scrollRef:T,scrollToBottom:h,stopScroll:y,isAtBottom:r||u,isNearBottom:u,escapedFromLock:t,state:v}};function s(e,t){let n=(0,o.useCallback)(t=>(n.current=t,e(t)),t);return n}let c=new Map;function d(...e){let t={...i},n=!1;for(let r of e){if("instant"===r){n=!0;continue}"object"==typeof r&&(n=!1,t.damping=r.damping??t.damping,t.stiffness=r.stiffness??t.stiffness,t.mass=r.mass??t.mass)}let r=JSON.stringify(t);return c.has(r)||c.set(r,Object.freeze(t)),n?"instant":c.get(r)}let f=(0,o.createContext)(null),p="undefined"!=typeof window?o.useLayoutEffect:o.useEffect;function m({instance:e,children:t,resize:n,initial:i,mass:a,damping:l,stiffness:s,targetScrollTop:c,contextRef:d,...m}){let g=(0,o.useRef)(null),v=u({mass:a,damping:l,stiffness:s,resize:n,initial:i,targetScrollTop:o.useCallback((e,t)=>{let n=M?.targetScrollTop??c;return n?.(e,t)??e},[c])}),{scrollRef:h,contentRef:y,scrollToBottom:b,stopScroll:D,isAtBottom:T,escapedFromLock:w,state:x}=e??v,M=(0,o.useMemo)(()=>({scrollToBottom:b,stopScroll:D,scrollRef:h,isAtBottom:T,escapedFromLock:w,contentRef:y,state:x,get targetScrollTop(){return g.current},set targetScrollTop(targetScrollTop){g.current=targetScrollTop}}),[b,T,y,h,D,w,x]);return(0,o.useImperativeHandle)(d,()=>M,[M]),p(()=>{h.current&&"visible"===getComputedStyle(h.current).overflow&&(h.current.style.overflow="auto")},[]),(0,r.jsx)(f.Provider,{value:M,children:(0,r.jsx)("div",{...m,children:"function"==typeof t?t(M):t})})}(m||(m={})).Content=function({children:e,...t}){let n=function(){let e=(0,o.useContext)(f);if(!e)throw Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}();return(0,r.jsx)("div",{ref:n.scrollRef,style:{height:"100%",width:"100%"},children:(0,r.jsx)("div",{...t,ref:n.contentRef,children:"function"==typeof e?e(n):e})})}}}]);
2
- //# sourceMappingURL=9621-f81c4d7c0ecf5a67.js.map