@atlashub/smartstack 3.30.0 → 3.31.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 (272) hide show
  1. package/dist/chunks/{AgentSkillsPage-CVq3qZoe.js → AgentSkillsPage-CDMhqrhE.js} +2 -2
  2. package/dist/chunks/{AgentSkillsPage-CVq3qZoe.js.map → AgentSkillsPage-CDMhqrhE.js.map} +1 -1
  3. package/dist/chunks/{AgentSkillsPage-DJb49NMA.js → AgentSkillsPage-DcvOMm5k.js} +2 -2
  4. package/dist/chunks/{AgentSkillsPage-DJb49NMA.js.map → AgentSkillsPage-DcvOMm5k.js.map} +1 -1
  5. package/dist/chunks/{AgentWorkloadPage-D_nk3gKj.js → AgentWorkloadPage-DYBPNzjQ.js} +2 -2
  6. package/dist/chunks/{AgentWorkloadPage-D_nk3gKj.js.map → AgentWorkloadPage-DYBPNzjQ.js.map} +1 -1
  7. package/dist/chunks/{AgentWorkloadPage-oHEi-sFh.js → AgentWorkloadPage-YpJSDaWc.js} +2 -2
  8. package/dist/chunks/{AgentWorkloadPage-oHEi-sFh.js.map → AgentWorkloadPage-YpJSDaWc.js.map} +1 -1
  9. package/dist/chunks/{ApiCatalogDetailPage-Cr0q2HnB.js → ApiCatalogDetailPage-9r1axtCg.js} +3 -3
  10. package/dist/chunks/{ApiCatalogDetailPage-Cr0q2HnB.js.map → ApiCatalogDetailPage-9r1axtCg.js.map} +1 -1
  11. package/dist/chunks/{ApiCatalogDetailPage-DX8buBkV.js → ApiCatalogDetailPage-TjCQ8_A8.js} +2 -2
  12. package/dist/chunks/{ApiCatalogDetailPage-DX8buBkV.js.map → ApiCatalogDetailPage-TjCQ8_A8.js.map} +1 -1
  13. package/dist/chunks/{ApiCatalogPage-DqboIzZE.js → ApiCatalogPage-COxazTnz.js} +2 -2
  14. package/dist/chunks/{ApiCatalogPage-DqboIzZE.js.map → ApiCatalogPage-COxazTnz.js.map} +1 -1
  15. package/dist/chunks/{ApiCatalogPage-DN7sazvI.js → ApiCatalogPage-QRysH0pT.js} +2 -2
  16. package/dist/chunks/{ApiCatalogPage-DN7sazvI.js.map → ApiCatalogPage-QRysH0pT.js.map} +1 -1
  17. package/dist/chunks/{ApplicationDetailPage-CCNjr64K.js → ApplicationDetailPage-Dbx01Ikm.js} +4 -4
  18. package/dist/chunks/{ApplicationDetailPage-CCNjr64K.js.map → ApplicationDetailPage-Dbx01Ikm.js.map} +1 -1
  19. package/dist/chunks/{ApplicationDetailPage--9YwwS5A.js → ApplicationDetailPage-jSHy3MPz.js} +2 -2
  20. package/dist/chunks/{ApplicationDetailPage--9YwwS5A.js.map → ApplicationDetailPage-jSHy3MPz.js.map} +1 -1
  21. package/dist/chunks/{ApplicationsDashboardPage-Bs-Xgca4.js → ApplicationsDashboardPage-CclKc0wI.js} +3 -3
  22. package/dist/chunks/{ApplicationsDashboardPage-Bs-Xgca4.js.map → ApplicationsDashboardPage-CclKc0wI.js.map} +1 -1
  23. package/dist/chunks/{ApplicationsDashboardPage-BSsHN3Yj.js → ApplicationsDashboardPage-CxWmOc1x.js} +2 -2
  24. package/dist/chunks/{ApplicationsDashboardPage-BSsHN3Yj.js.map → ApplicationsDashboardPage-CxWmOc1x.js.map} +1 -1
  25. package/dist/chunks/{ApplicationsGridPage-s1WEzOXS.js → ApplicationsGridPage-BJXWXwyI.js} +2 -2
  26. package/dist/chunks/{ApplicationsGridPage-s1WEzOXS.js.map → ApplicationsGridPage-BJXWXwyI.js.map} +1 -1
  27. package/dist/chunks/{ApplicationsGridPage-DDysNWJ5.js → ApplicationsGridPage-D2l8cM3o.js} +2 -2
  28. package/dist/chunks/{ApplicationsGridPage-DDysNWJ5.js.map → ApplicationsGridPage-D2l8cM3o.js.map} +1 -1
  29. package/dist/chunks/{ApplicationsListPage-B3CSMiV0.js → ApplicationsListPage-CMosl3my.js} +2 -2
  30. package/dist/chunks/{ApplicationsListPage-B3CSMiV0.js.map → ApplicationsListPage-CMosl3my.js.map} +1 -1
  31. package/dist/chunks/{ApplicationsListPage-B6ZCecIl.js → ApplicationsListPage-Dc6NGQ61.js} +2 -2
  32. package/dist/chunks/{ApplicationsListPage-B6ZCecIl.js.map → ApplicationsListPage-Dc6NGQ61.js.map} +1 -1
  33. package/dist/chunks/{ApplicationsPage-BBaiBM--.js → ApplicationsPage-DH7tpMlF.js} +2 -2
  34. package/dist/chunks/{ApplicationsPage-BBaiBM--.js.map → ApplicationsPage-DH7tpMlF.js.map} +1 -1
  35. package/dist/chunks/{ApplicationsPage-ztPwoAGt.js → ApplicationsPage-DI-iMqoJ.js} +4 -4
  36. package/dist/chunks/{ApplicationsPage-ztPwoAGt.js.map → ApplicationsPage-DI-iMqoJ.js.map} +1 -1
  37. package/dist/chunks/{AssignmentRulesPage-DFSVFFXr.js → AssignmentRulesPage-B5UbujbZ.js} +2 -2
  38. package/dist/chunks/{AssignmentRulesPage-DFSVFFXr.js.map → AssignmentRulesPage-B5UbujbZ.js.map} +1 -1
  39. package/dist/chunks/{AssignmentRulesPage-CK4L4rBO.js → AssignmentRulesPage-E79QBSLb.js} +2 -2
  40. package/dist/chunks/{AssignmentRulesPage-CK4L4rBO.js.map → AssignmentRulesPage-E79QBSLb.js.map} +1 -1
  41. package/dist/chunks/{AssignmentsPage-JCLpyg94.js → AssignmentsPage-CDFaL1gT.js} +2 -2
  42. package/dist/chunks/{AssignmentsPage-JCLpyg94.js.map → AssignmentsPage-CDFaL1gT.js.map} +1 -1
  43. package/dist/chunks/{AssignmentsPage-Bp7oQD7Q.js → AssignmentsPage-CPeKJjyK.js} +2 -2
  44. package/dist/chunks/{AssignmentsPage-Bp7oQD7Q.js.map → AssignmentsPage-CPeKJjyK.js.map} +1 -1
  45. package/dist/chunks/{AuthCallbackPage-Bl9xlJ3h.js → AuthCallbackPage-BZ3Ocos5.js} +2 -2
  46. package/dist/chunks/{AuthCallbackPage-Bl9xlJ3h.js.map → AuthCallbackPage-BZ3Ocos5.js.map} +1 -1
  47. package/dist/chunks/{AuthCallbackPage-CzMHz4jy.js → AuthCallbackPage-Bml48QpH.js} +2 -2
  48. package/dist/chunks/{AuthCallbackPage-CzMHz4jy.js.map → AuthCallbackPage-Bml48QpH.js.map} +1 -1
  49. package/dist/chunks/{ConfirmEmailPage-M7mJgXvn.js → ConfirmEmailPage-DP1XPaKK.js} +2 -2
  50. package/dist/chunks/{ConfirmEmailPage-M7mJgXvn.js.map → ConfirmEmailPage-DP1XPaKK.js.map} +1 -1
  51. package/dist/chunks/{ConfirmEmailPage-D_8T1vqV.js → ConfirmEmailPage-DyzslZ06.js} +2 -2
  52. package/dist/chunks/{ConfirmEmailPage-D_8T1vqV.js.map → ConfirmEmailPage-DyzslZ06.js.map} +1 -1
  53. package/dist/chunks/{CreateSupportTicketPage-BNEGavlu.js → CreateSupportTicketPage-Bz2KrMik.js} +2 -2
  54. package/dist/chunks/{CreateSupportTicketPage-BNEGavlu.js.map → CreateSupportTicketPage-Bz2KrMik.js.map} +1 -1
  55. package/dist/chunks/{CreateSupportTicketPage-C2X2mfds.js → CreateSupportTicketPage-hKjKM0Bh.js} +2 -2
  56. package/dist/chunks/{CreateSupportTicketPage-C2X2mfds.js.map → CreateSupportTicketPage-hKjKM0Bh.js.map} +1 -1
  57. package/dist/chunks/{DashboardPage-4oy2YqvT.js → DashboardPage-B4nAd8Tj.js} +2 -2
  58. package/dist/chunks/{DashboardPage-4oy2YqvT.js.map → DashboardPage-B4nAd8Tj.js.map} +1 -1
  59. package/dist/chunks/{DashboardPage-D5MRMxEV.js → DashboardPage-C9qgPBS-.js} +3 -3
  60. package/dist/chunks/{DashboardPage-D5MRMxEV.js.map → DashboardPage-C9qgPBS-.js.map} +1 -1
  61. package/dist/chunks/{DashboardPage-CO-8B8EI.js → DashboardPage-CjbNGMo1.js} +3 -3
  62. package/dist/chunks/{DashboardPage-CO-8B8EI.js.map → DashboardPage-CjbNGMo1.js.map} +1 -1
  63. package/dist/chunks/{DashboardPage-CPArUG-S.js → DashboardPage-rN7IFlTR.js} +2 -2
  64. package/dist/chunks/{DashboardPage-CPArUG-S.js.map → DashboardPage-rN7IFlTR.js.map} +1 -1
  65. package/dist/chunks/{EscalationConfigPage-DnjLFXnL.js → EscalationConfigPage-CGv2L62M.js} +2 -2
  66. package/dist/chunks/{EscalationConfigPage-DnjLFXnL.js.map → EscalationConfigPage-CGv2L62M.js.map} +1 -1
  67. package/dist/chunks/{EscalationConfigPage-CwdnfJbJ.js → EscalationConfigPage-DpYDmsgw.js} +2 -2
  68. package/dist/chunks/{EscalationConfigPage-CwdnfJbJ.js.map → EscalationConfigPage-DpYDmsgw.js.map} +1 -1
  69. package/dist/chunks/{ForceChangePasswordPage-ZEIfyqwE.js → ForceChangePasswordPage-CLI_fpF4.js} +2 -2
  70. package/dist/chunks/{ForceChangePasswordPage-ZEIfyqwE.js.map → ForceChangePasswordPage-CLI_fpF4.js.map} +1 -1
  71. package/dist/chunks/{ForceChangePasswordPage-sh-3h_H9.js → ForceChangePasswordPage-Db6sOrZN.js} +2 -2
  72. package/dist/chunks/{ForceChangePasswordPage-sh-3h_H9.js.map → ForceChangePasswordPage-Db6sOrZN.js.map} +1 -1
  73. package/dist/chunks/{ForgotPasswordPage-B4M6-xeM.js → ForgotPasswordPage-BhMz2B6A.js} +2 -2
  74. package/dist/chunks/{ForgotPasswordPage-B4M6-xeM.js.map → ForgotPasswordPage-BhMz2B6A.js.map} +1 -1
  75. package/dist/chunks/{ForgotPasswordPage-MIu-U7p0.js → ForgotPasswordPage-D06arMXO.js} +2 -2
  76. package/dist/chunks/{ForgotPasswordPage-MIu-U7p0.js.map → ForgotPasswordPage-D06arMXO.js.map} +1 -1
  77. package/dist/chunks/{GroupDetailPage-4XK3Bs_r.js → GroupDetailPage-BCM8KBCd.js} +5 -5
  78. package/dist/chunks/{GroupDetailPage-4XK3Bs_r.js.map → GroupDetailPage-BCM8KBCd.js.map} +1 -1
  79. package/dist/chunks/{GroupDetailPage-C-kvtd2T.js → GroupDetailPage-CGMV3bWt.js} +2 -2
  80. package/dist/chunks/{GroupDetailPage-C-kvtd2T.js.map → GroupDetailPage-CGMV3bWt.js.map} +1 -1
  81. package/dist/chunks/{MyAccessRequestsPage-CP41FzHi.js → MyAccessRequestsPage-BBrwEomx.js} +2 -2
  82. package/dist/chunks/{MyAccessRequestsPage-CP41FzHi.js.map → MyAccessRequestsPage-BBrwEomx.js.map} +1 -1
  83. package/dist/chunks/{MyAccessRequestsPage-DzrXTrVi.js → MyAccessRequestsPage-CrlWe3gd.js} +2 -2
  84. package/dist/chunks/{MyAccessRequestsPage-DzrXTrVi.js.map → MyAccessRequestsPage-CrlWe3gd.js.map} +1 -1
  85. package/dist/chunks/{MyTenantsPage-V_SwYio2.js → MyTenantsPage-BOV34_rJ.js} +3 -3
  86. package/dist/chunks/{MyTenantsPage-V_SwYio2.js.map → MyTenantsPage-BOV34_rJ.js.map} +1 -1
  87. package/dist/chunks/{MyTenantsPage-CZRkMbh8.js → MyTenantsPage-CK4-klmd.js} +2 -2
  88. package/dist/chunks/{MyTenantsPage-CZRkMbh8.js.map → MyTenantsPage-CK4-klmd.js.map} +1 -1
  89. package/dist/chunks/{MyTicketsPage-DnvAIeyr.js → MyTicketsPage-CFZ1G4dG.js} +2 -2
  90. package/dist/chunks/{MyTicketsPage-DnvAIeyr.js.map → MyTicketsPage-CFZ1G4dG.js.map} +1 -1
  91. package/dist/chunks/{MyTicketsPage-DOUhaLal.js → MyTicketsPage-DuhpwhZx.js} +2 -2
  92. package/dist/chunks/{MyTicketsPage-DOUhaLal.js.map → MyTicketsPage-DuhpwhZx.js.map} +1 -1
  93. package/dist/chunks/{NavigationAppsPage-DfTa4jCG.js → NavigationAppsPage-BnNQRfBP.js} +2 -2
  94. package/dist/chunks/{NavigationAppsPage-DfTa4jCG.js.map → NavigationAppsPage-BnNQRfBP.js.map} +1 -1
  95. package/dist/chunks/{NavigationAppsPage-DXvpLsbt.js → NavigationAppsPage-DdJxEoTZ.js} +2 -2
  96. package/dist/chunks/{NavigationAppsPage-DXvpLsbt.js.map → NavigationAppsPage-DdJxEoTZ.js.map} +1 -1
  97. package/dist/chunks/{NotificationsPage-I1yCk7tk.js → NotificationsPage-BllOlagk.js} +2 -2
  98. package/dist/chunks/{NotificationsPage-I1yCk7tk.js.map → NotificationsPage-BllOlagk.js.map} +1 -1
  99. package/dist/chunks/{NotificationsPage-D76MdAs-.js → NotificationsPage-D1T_ozHl.js} +2 -2
  100. package/dist/chunks/{NotificationsPage-D76MdAs-.js.map → NotificationsPage-D1T_ozHl.js.map} +1 -1
  101. package/dist/chunks/{OnboardingWizardPage-BRUzcl1A.js → OnboardingWizardPage-CioLaCYz.js} +2 -2
  102. package/dist/chunks/{OnboardingWizardPage-BRUzcl1A.js.map → OnboardingWizardPage-CioLaCYz.js.map} +1 -1
  103. package/dist/chunks/{OnboardingWizardPage-DtWUPCh3.js → OnboardingWizardPage-CrAQt7qL.js} +2 -2
  104. package/dist/chunks/{OnboardingWizardPage-DtWUPCh3.js.map → OnboardingWizardPage-CrAQt7qL.js.map} +1 -1
  105. package/dist/chunks/{PermissionDetailPage-CUNKbl7t.js → PermissionDetailPage-BIG78-1-.js} +2 -2
  106. package/dist/chunks/{PermissionDetailPage-CUNKbl7t.js.map → PermissionDetailPage-BIG78-1-.js.map} +1 -1
  107. package/dist/chunks/{PermissionDetailPage-DJJGbXoX.js → PermissionDetailPage-CvPqugYu.js} +2 -2
  108. package/dist/chunks/{PermissionDetailPage-DJJGbXoX.js.map → PermissionDetailPage-CvPqugYu.js.map} +1 -1
  109. package/dist/chunks/{PermissionsPage-B8wmawPV.js → PermissionsPage-CDSuc8vw.js} +2 -2
  110. package/dist/chunks/{PermissionsPage-B8wmawPV.js.map → PermissionsPage-CDSuc8vw.js.map} +1 -1
  111. package/dist/chunks/{PermissionsPage-Dbjcctuh.js → PermissionsPage-XaOrGrPZ.js} +2 -2
  112. package/dist/chunks/{PermissionsPage-Dbjcctuh.js.map → PermissionsPage-XaOrGrPZ.js.map} +1 -1
  113. package/dist/chunks/{PortalDashboardPage-BeNfBZmb.js → PortalDashboardPage-BsWVXkMe.js} +2 -2
  114. package/dist/chunks/{PortalDashboardPage-BeNfBZmb.js.map → PortalDashboardPage-BsWVXkMe.js.map} +1 -1
  115. package/dist/chunks/{PortalDashboardPage-zii0ll57.js → PortalDashboardPage-oSD7oQhJ.js} +2 -2
  116. package/dist/chunks/{PortalDashboardPage-zii0ll57.js.map → PortalDashboardPage-oSD7oQhJ.js.map} +1 -1
  117. package/dist/chunks/{PreferencesPage-BCpuIGzv.js → PreferencesPage-DD0_XWdT.js} +2 -2
  118. package/dist/chunks/{PreferencesPage-BCpuIGzv.js.map → PreferencesPage-DD0_XWdT.js.map} +1 -1
  119. package/dist/chunks/{PreferencesPage-BmvrBaAD.js → PreferencesPage-ca2BOdoH.js} +2 -2
  120. package/dist/chunks/{PreferencesPage-BmvrBaAD.js.map → PreferencesPage-ca2BOdoH.js.map} +1 -1
  121. package/dist/chunks/{ProfilePage-mf5wI0-n.js → ProfilePage-Bex_JN5N.js} +2 -2
  122. package/dist/chunks/{ProfilePage-mf5wI0-n.js.map → ProfilePage-Bex_JN5N.js.map} +1 -1
  123. package/dist/chunks/{ProfilePage-eowQd59_.js → ProfilePage-C8tUIOnb.js} +2 -2
  124. package/dist/chunks/{ProfilePage-eowQd59_.js.map → ProfilePage-C8tUIOnb.js.map} +1 -1
  125. package/dist/chunks/{ReferencesManagementPage-CLsaUNqA.js → ReferencesManagementPage-B-FXS2ln.js} +2 -2
  126. package/dist/chunks/{ReferencesManagementPage-CLsaUNqA.js.map → ReferencesManagementPage-B-FXS2ln.js.map} +1 -1
  127. package/dist/chunks/{ReferencesManagementPage-8UPgkVE8.js → ReferencesManagementPage-C8KZprkI.js} +3 -3
  128. package/dist/chunks/{ReferencesManagementPage-8UPgkVE8.js.map → ReferencesManagementPage-C8KZprkI.js.map} +1 -1
  129. package/dist/chunks/{RegisterPage-CNyHSbqs.js → RegisterPage-BYt__zKJ.js} +2 -2
  130. package/dist/chunks/{RegisterPage-CNyHSbqs.js.map → RegisterPage-BYt__zKJ.js.map} +1 -1
  131. package/dist/chunks/{RegisterPage-57X-ILDb.js → RegisterPage-MWcVu-LY.js} +2 -2
  132. package/dist/chunks/{RegisterPage-57X-ILDb.js.map → RegisterPage-MWcVu-LY.js.map} +1 -1
  133. package/dist/chunks/{ResetPasswordPage-CyV8l-Zo.js → ResetPasswordPage-DaJiMj5Z.js} +2 -2
  134. package/dist/chunks/{ResetPasswordPage-CyV8l-Zo.js.map → ResetPasswordPage-DaJiMj5Z.js.map} +1 -1
  135. package/dist/chunks/{ResetPasswordPage-JW8-mh_k.js → ResetPasswordPage-rCLUIj_T.js} +2 -2
  136. package/dist/chunks/{ResetPasswordPage-JW8-mh_k.js.map → ResetPasswordPage-rCLUIj_T.js.map} +1 -1
  137. package/dist/chunks/{ResolutionModal-CjwE73NX.js → ResolutionModal-DeuPnLWg.js} +2 -2
  138. package/dist/chunks/{ResolutionModal-CjwE73NX.js.map → ResolutionModal-DeuPnLWg.js.map} +1 -1
  139. package/dist/chunks/{ResolutionModal-wddG59kg.js → ResolutionModal-j7Rp6apG.js} +2 -2
  140. package/dist/chunks/{ResolutionModal-wddG59kg.js.map → ResolutionModal-j7Rp6apG.js.map} +1 -1
  141. package/dist/chunks/{RoleDetailPage-CrioVHFI.js → RoleDetailPage-CLtZWX17.js} +3 -3
  142. package/dist/chunks/{RoleDetailPage-CrioVHFI.js.map → RoleDetailPage-CLtZWX17.js.map} +1 -1
  143. package/dist/chunks/{RoleDetailPage-TUOGR1ow.js → RoleDetailPage-TGyGmLMM.js} +2 -2
  144. package/dist/chunks/{RoleDetailPage-TUOGR1ow.js.map → RoleDetailPage-TGyGmLMM.js.map} +1 -1
  145. package/dist/chunks/{RolesPage-sJBWaNff.js → RolesPage-C0c5G9e7.js} +2 -2
  146. package/dist/chunks/{RolesPage-sJBWaNff.js.map → RolesPage-C0c5G9e7.js.map} +1 -1
  147. package/dist/chunks/{RolesPage-CAcols3D.js → RolesPage-Dm03fBBf.js} +2 -2
  148. package/dist/chunks/{RolesPage-CAcols3D.js.map → RolesPage-Dm03fBBf.js.map} +1 -1
  149. package/dist/chunks/{SlaConfigPage-BPGRloOS.js → SlaConfigPage-B4WDzEKi.js} +2 -2
  150. package/dist/chunks/{SlaConfigPage-BPGRloOS.js.map → SlaConfigPage-B4WDzEKi.js.map} +1 -1
  151. package/dist/chunks/{SlaConfigPage-D5TRn7Ir.js → SlaConfigPage-Cwo9NwxH.js} +2 -2
  152. package/dist/chunks/{SlaConfigPage-D5TRn7Ir.js.map → SlaConfigPage-Cwo9NwxH.js.map} +1 -1
  153. package/dist/chunks/{SupportPermissionsPage-UXmYLrIq.js → SupportPermissionsPage-CL12dFy-.js} +2 -2
  154. package/dist/chunks/{SupportPermissionsPage-UXmYLrIq.js.map → SupportPermissionsPage-CL12dFy-.js.map} +1 -1
  155. package/dist/chunks/{SupportPermissionsPage-Dc2bWTzG.js → SupportPermissionsPage-CneIhl30.js} +2 -2
  156. package/dist/chunks/{SupportPermissionsPage-Dc2bWTzG.js.map → SupportPermissionsPage-CneIhl30.js.map} +1 -1
  157. package/dist/chunks/{TemplatesPage-nTY85sNA.js → TemplatesPage-DStKmwHT.js} +2 -2
  158. package/dist/chunks/{TemplatesPage-nTY85sNA.js.map → TemplatesPage-DStKmwHT.js.map} +1 -1
  159. package/dist/chunks/{TemplatesPage-dmPlqqiD.js → TemplatesPage-X4Rrhs9p.js} +2 -2
  160. package/dist/chunks/{TemplatesPage-dmPlqqiD.js.map → TemplatesPage-X4Rrhs9p.js.map} +1 -1
  161. package/dist/chunks/{TenantCard-BhT-31ls.js → TenantCard-BUBYWtvR.js} +2 -2
  162. package/dist/chunks/{TenantCard-BhT-31ls.js.map → TenantCard-BUBYWtvR.js.map} +1 -1
  163. package/dist/chunks/{TenantCard-BUXfstRZ.js → TenantCard-CAgiB-NG.js} +2 -2
  164. package/dist/chunks/{TenantCard-BUXfstRZ.js.map → TenantCard-CAgiB-NG.js.map} +1 -1
  165. package/dist/chunks/{TenantScopeSelector-3_mzBLNI.js → TenantScopeSelector-B9vtpIZx.js} +2 -2
  166. package/dist/chunks/{TenantScopeSelector-3_mzBLNI.js.map → TenantScopeSelector-B9vtpIZx.js.map} +1 -1
  167. package/dist/chunks/{TenantScopeSelector-B-SRDR2R.js → TenantScopeSelector-BAoah-mL.js} +2 -2
  168. package/dist/chunks/{TenantScopeSelector-B-SRDR2R.js.map → TenantScopeSelector-BAoah-mL.js.map} +1 -1
  169. package/dist/chunks/{TicketDetailPage-xN3wPnFL.js → TicketDetailPage-BFcP4X8s.js} +2 -2
  170. package/dist/chunks/{TicketDetailPage-xN3wPnFL.js.map → TicketDetailPage-BFcP4X8s.js.map} +1 -1
  171. package/dist/chunks/{TicketDetailPage-B4cR3rOC.js → TicketDetailPage-D_Npnt4A.js} +2 -2
  172. package/dist/chunks/{TicketDetailPage-B4cR3rOC.js.map → TicketDetailPage-D_Npnt4A.js.map} +1 -1
  173. package/dist/chunks/{TicketsPage-Dwi2xpMI.js → TicketsPage-DBP9kalU.js} +2 -2
  174. package/dist/chunks/{TicketsPage-Dwi2xpMI.js.map → TicketsPage-DBP9kalU.js.map} +1 -1
  175. package/dist/chunks/{TicketsPage-CkHgXSxU.js → TicketsPage-p21DLhUb.js} +2 -2
  176. package/dist/chunks/{TicketsPage-CkHgXSxU.js.map → TicketsPage-p21DLhUb.js.map} +1 -1
  177. package/dist/chunks/{UserCreateTicketPage-D2a3EOey.js → UserCreateTicketPage-DOwShnG8.js} +2 -2
  178. package/dist/chunks/{UserCreateTicketPage-D2a3EOey.js.map → UserCreateTicketPage-DOwShnG8.js.map} +1 -1
  179. package/dist/chunks/{UserCreateTicketPage-bcbSLglE.js → UserCreateTicketPage-lvlvp2u6.js} +2 -2
  180. package/dist/chunks/{UserCreateTicketPage-bcbSLglE.js.map → UserCreateTicketPage-lvlvp2u6.js.map} +1 -1
  181. package/dist/chunks/{UserDashboardPage-ZMsx8LWw.js → UserDashboardPage-C_tm7Pld.js} +2 -2
  182. package/dist/chunks/{UserDashboardPage-ZMsx8LWw.js.map → UserDashboardPage-C_tm7Pld.js.map} +1 -1
  183. package/dist/chunks/{UserDashboardPage-DwnDRNoW.js → UserDashboardPage-Dp6q6FEW.js} +2 -2
  184. package/dist/chunks/{UserDashboardPage-DwnDRNoW.js.map → UserDashboardPage-Dp6q6FEW.js.map} +1 -1
  185. package/dist/chunks/{UserDetailPage-CZyV-zsg.js → UserDetailPage-6grZ6gmV.js} +5 -5
  186. package/dist/chunks/{UserDetailPage-CZyV-zsg.js.map → UserDetailPage-6grZ6gmV.js.map} +1 -1
  187. package/dist/chunks/{UserDetailPage-BRFowOFL.js → UserDetailPage-DXLxO7LF.js} +2 -2
  188. package/dist/chunks/{UserDetailPage-BRFowOFL.js.map → UserDetailPage-DXLxO7LF.js.map} +1 -1
  189. package/dist/chunks/{UserTicketDetailPage-BstGk_BP.js → UserTicketDetailPage-Ch9IfCPo.js} +2 -2
  190. package/dist/chunks/{UserTicketDetailPage-BstGk_BP.js.map → UserTicketDetailPage-Ch9IfCPo.js.map} +1 -1
  191. package/dist/chunks/{UserTicketDetailPage-DzB_pELt.js → UserTicketDetailPage-a4II5VEE.js} +2 -2
  192. package/dist/chunks/{UserTicketDetailPage-DzB_pELt.js.map → UserTicketDetailPage-a4II5VEE.js.map} +1 -1
  193. package/dist/chunks/{UsersGroupsPage-BygTv_kK.js → UsersGroupsPage-B7Er0V4l.js} +3 -3
  194. package/dist/chunks/{UsersGroupsPage-BygTv_kK.js.map → UsersGroupsPage-B7Er0V4l.js.map} +1 -1
  195. package/dist/chunks/{UsersGroupsPage-DTmhzttW.js → UsersGroupsPage-BeAv4QfV.js} +2 -2
  196. package/dist/chunks/{UsersGroupsPage-DTmhzttW.js.map → UsersGroupsPage-BeAv4QfV.js.map} +1 -1
  197. package/dist/chunks/{UsersPage-DcwLyMAX.js → UsersPage-0M1FLqOe.js} +2 -2
  198. package/dist/chunks/{UsersPage-DcwLyMAX.js.map → UsersPage-0M1FLqOe.js.map} +1 -1
  199. package/dist/chunks/{UsersPage-TIqSHgHj.js → UsersPage-ZR9r9vvf.js} +2 -2
  200. package/dist/chunks/{UsersPage-TIqSHgHj.js.map → UsersPage-ZR9r9vvf.js.map} +1 -1
  201. package/dist/chunks/{accessRequestsApi-3FjMFbpa.js → accessRequestsApi-BJH8EE1K.js} +2 -2
  202. package/dist/chunks/{accessRequestsApi-3FjMFbpa.js.map → accessRequestsApi-BJH8EE1K.js.map} +1 -1
  203. package/dist/chunks/{accessRequestsApi-B6dsJzvH.js → accessRequestsApi-CBpF5d54.js} +2 -2
  204. package/dist/chunks/{accessRequestsApi-B6dsJzvH.js.map → accessRequestsApi-CBpF5d54.js.map} +1 -1
  205. package/dist/chunks/{aiApi-9G4wG_mT.js → aiApi-CkkWAvNB.js} +2 -2
  206. package/dist/chunks/{aiApi-9G4wG_mT.js.map → aiApi-CkkWAvNB.js.map} +1 -1
  207. package/dist/chunks/{aiApi-DXOdsoxr.js → aiApi-Dl7a2lWz.js} +2 -2
  208. package/dist/chunks/{aiApi-DXOdsoxr.js.map → aiApi-Dl7a2lWz.js.map} +1 -1
  209. package/dist/chunks/{applicationAnalyticsApi-DhOd6idI.js → applicationAnalyticsApi-BwcSE_H1.js} +2 -2
  210. package/dist/chunks/{applicationAnalyticsApi-DhOd6idI.js.map → applicationAnalyticsApi-BwcSE_H1.js.map} +1 -1
  211. package/dist/chunks/{applicationAnalyticsApi-D0DEp9Y-.js → applicationAnalyticsApi-DKMmDvWk.js} +2 -2
  212. package/dist/chunks/{applicationAnalyticsApi-D0DEp9Y-.js.map → applicationAnalyticsApi-DKMmDvWk.js.map} +1 -1
  213. package/dist/chunks/{groupsApi-Db8G2lLs.js → groupsApi-BzDV3_Jc.js} +2 -2
  214. package/dist/chunks/{groupsApi-Db8G2lLs.js.map → groupsApi-BzDV3_Jc.js.map} +1 -1
  215. package/dist/chunks/{groupsApi-lbxNsHFv.js → groupsApi-CQ4vFMdP.js} +2 -2
  216. package/dist/chunks/{groupsApi-lbxNsHFv.js.map → groupsApi-CQ4vFMdP.js.map} +1 -1
  217. package/dist/chunks/{index-DEtq-xUL.js → index-BBmMbSZV.js} +8 -8
  218. package/dist/chunks/{index-DEtq-xUL.js.map → index-BBmMbSZV.js.map} +1 -1
  219. package/dist/chunks/{index-D0HS542b.js → index-BLlESTfA.js} +2 -2
  220. package/dist/chunks/{index-D0HS542b.js.map → index-BLlESTfA.js.map} +1 -1
  221. package/dist/chunks/{index-DUS-tunb.js → index-BPMjxWVx.js} +2 -2
  222. package/dist/chunks/{index-DUS-tunb.js.map → index-BPMjxWVx.js.map} +1 -1
  223. package/dist/chunks/{index-TiWOcC0g.js → index-CEbwdURd.js} +2 -2
  224. package/dist/chunks/{index-TiWOcC0g.js.map → index-CEbwdURd.js.map} +1 -1
  225. package/dist/chunks/{index-DF93KQFR.js → index-CUZygY5Q.js} +2 -2
  226. package/dist/chunks/{index-DF93KQFR.js.map → index-CUZygY5Q.js.map} +1 -1
  227. package/dist/chunks/{index-BI2dc1FS.js → index-Ci1SqFiY.js} +2 -2
  228. package/dist/chunks/{index-BI2dc1FS.js.map → index-Ci1SqFiY.js.map} +1 -1
  229. package/dist/chunks/{index-CTGSmYvs.js → index-Cib93xtp.js} +2 -2
  230. package/dist/chunks/{index-CTGSmYvs.js.map → index-Cib93xtp.js.map} +1 -1
  231. package/dist/chunks/{index-DqbVFB1H.js → index-CoHIgn5H.js} +2 -2
  232. package/dist/chunks/{index-DqbVFB1H.js.map → index-CoHIgn5H.js.map} +1 -1
  233. package/dist/chunks/{index-CN2WRyg1.js → index-CpY95_ro.js} +294 -292
  234. package/dist/chunks/{index-CN2WRyg1.js.map → index-CpY95_ro.js.map} +1 -1
  235. package/dist/chunks/{index-DjC1u2hI.js → index-D-2xSu5W.js} +3 -3
  236. package/dist/chunks/{index-DjC1u2hI.js.map → index-D-2xSu5W.js.map} +1 -1
  237. package/dist/chunks/{index-Bn8HzILk.js → index-D18t9DhC.js} +4 -4
  238. package/dist/chunks/{index-Bn8HzILk.js.map → index-D18t9DhC.js.map} +1 -1
  239. package/dist/chunks/{index-cAikSVW0.js → index-DK5czlkn.js} +9 -9
  240. package/dist/chunks/{index-cAikSVW0.js.map → index-DK5czlkn.js.map} +1 -1
  241. package/dist/chunks/{index-DLekpNSE.js → index-DQd324n7.js} +2 -2
  242. package/dist/chunks/{index-DLekpNSE.js.map → index-DQd324n7.js.map} +1 -1
  243. package/dist/chunks/{index-CgtbaFf5.js → index-Dbq-x5H9.js} +2 -2
  244. package/dist/chunks/{index-CgtbaFf5.js.map → index-Dbq-x5H9.js.map} +1 -1
  245. package/dist/chunks/{index-xhRXN1Jq.js → index-Det9dEaQ.js} +2 -2
  246. package/dist/chunks/{index-xhRXN1Jq.js.map → index-Det9dEaQ.js.map} +1 -1
  247. package/dist/chunks/{index-HsAOBno4.js → index-bgT9XOKZ.js} +2 -2
  248. package/dist/chunks/{index-HsAOBno4.js.map → index-bgT9XOKZ.js.map} +1 -1
  249. package/dist/chunks/{index-CUICSveU.js → index-h7ZrwrQg.js} +2 -2
  250. package/dist/chunks/{index-CUICSveU.js.map → index-h7ZrwrQg.js.map} +1 -1
  251. package/dist/chunks/{index-DwqLhQ8S.js → index-k4USDz2P.js} +2 -2
  252. package/dist/chunks/{index-DwqLhQ8S.js.map → index-k4USDz2P.js.map} +1 -1
  253. package/dist/chunks/{tenantIconMap-CHeS7oLt.js → tenantIconMap-7ihIWxAh.js} +2 -2
  254. package/dist/chunks/{tenantIconMap-CHeS7oLt.js.map → tenantIconMap-7ihIWxAh.js.map} +1 -1
  255. package/dist/chunks/{tenantIconMap-__FKj6CN.js → tenantIconMap-Dk6K-UTE.js} +2 -2
  256. package/dist/chunks/{tenantIconMap-__FKj6CN.js.map → tenantIconMap-Dk6K-UTE.js.map} +1 -1
  257. package/dist/chunks/{ticketingApi-DF4RwD_6.js → ticketingApi-BCMKkzlv.js} +2 -2
  258. package/dist/chunks/{ticketingApi-DF4RwD_6.js.map → ticketingApi-BCMKkzlv.js.map} +1 -1
  259. package/dist/chunks/{ticketingApi-Cj239hYB.js → ticketingApi-Dwn7pl5z.js} +2 -2
  260. package/dist/chunks/{ticketingApi-Cj239hYB.js.map → ticketingApi-Dwn7pl5z.js.map} +1 -1
  261. package/dist/chunks/{useAccessRequests-CFam8zFR.js → useAccessRequests-Du7CvowE.js} +3 -3
  262. package/dist/chunks/{useAccessRequests-CFam8zFR.js.map → useAccessRequests-Du7CvowE.js.map} +1 -1
  263. package/dist/chunks/{useAccessRequests-CViOUwyF.js → useAccessRequests-gJ7yhWyi.js} +2 -2
  264. package/dist/chunks/{useAccessRequests-CViOUwyF.js.map → useAccessRequests-gJ7yhWyi.js.map} +1 -1
  265. package/dist/chunks/{useUserAccessRequests-CslSQeBJ.js → useUserAccessRequests-5wWea2Jg.js} +2 -2
  266. package/dist/chunks/{useUserAccessRequests-CslSQeBJ.js.map → useUserAccessRequests-5wWea2Jg.js.map} +1 -1
  267. package/dist/chunks/{useUserAccessRequests-B-Cs6NX1.js → useUserAccessRequests-Bk_v8egy.js} +2 -2
  268. package/dist/chunks/{useUserAccessRequests-B-Cs6NX1.js.map → useUserAccessRequests-Bk_v8egy.js.map} +1 -1
  269. package/dist/components/routing/ProtectedRoute.d.ts.map +1 -1
  270. package/dist/smartstack.cjs +1 -1
  271. package/dist/smartstack.js +1 -1
  272. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),le=require("react-i18next"),n=require("lucide-react"),J=require("./index-cAikSVW0.js"),Q=require("./PermissionPopover-CtYTz7MK.js");function ge({section:s,resources:v,moduleIndex:A,sectionIndex:k,isCollapsed:$,collapsedSections:S,paginatedRoles:b,canEditSystemRoles:O,statusFilters:i,openPopover:h,onToggleCollapse:M,onTogglePermission:P,onCellClick:f,setOpenPopover:y,renderResourceRow:N}){const T=S.has(s.id),m=v.length>0;return e.jsxs(l.Fragment,{children:[N(s,A+k+1,"section",m,T),m&&!T&&v.map((L,I)=>N(L,A+k+I+2,"resource",!1,!1))]},s.id)}function ve({roles:s,resources:v,canEditSystemRoles:A=!1,onTogglePermission:k,getPermissionInheritance:$,rolesPerPage:S,rolePageIndex:b,modulesPerPage:O,modulePageIndex:i,collapsedApps:h,onToggleApp:M,statusFilters:P}){const{t:f}=le.useTranslation("admin"),[y,N]=l.useState(null),[T,m]=l.useState(new Set),[L,I]=l.useState(new Set),D=l.useCallback((t,o)=>{o(c=>{const p=new Set(c);return p.has(t)?p.delete(t):p.add(t),p})},[]),E=l.useCallback(t=>{D(t,m)},[D]),z=l.useCallback(t=>{D(t,I)},[D]),q=l.useMemo(()=>v.filter(t=>t.level==="module").length,[v]),_=l.useMemo(()=>{const t=b*S;return s.slice(t,t+S)},[s,b,S]),B=l.useMemo(()=>Q.groupByApplicationWithSections(v),[v]),r=l.useCallback(()=>{const t=i*O,o=t+O,c={current:0},p=[];for(const w of B){const C=h.has(w.application),g=[];if(!C)for(const R of w.modules)c.current>=t&&c.current<o&&g.push(R),c.current++;p.push({application:w.application,modules:g})}return p},[B,i,O,h]),u=l.useMemo(()=>r(),[r]),F=l.useCallback((t,o)=>{const c=$(t,o);return c.isDirect||c.isInherited},[$]),Z=l.useCallback((t,o)=>Q.calculatePermissionStatus(o,c=>F(t,c)),[F]),V=(t,o)=>{y?.roleId===t&&y?.resourceId===o?N(null):N({roleId:t,resourceId:o})};if(s.length===0||q===0)return e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:s.length===0?f("assignments.noRoles"):f("assignments.noResources")});const W=t=>{switch(t){case"resource":return"pl-28";case"section":return"pl-22";default:return"pl-16"}},K=t=>t==="resource"?e.jsx(n.Database,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):t==="section"?e.jsx(n.FileText,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):e.jsx(n.Box,{className:"h-3.5 w-3.5 text-[var(--text-secondary)]"}),Y=t=>t==="resource"?"text-[var(--text-muted)] italic":t==="section"?"text-[var(--text-secondary)]":"font-medium text-[var(--text-primary)]",ee=l.useCallback((t,o)=>{o==="module"?E(t):o==="section"&&z(t)},[E,z]),ae=(t,o,c,p)=>t?e.jsx("button",{onClick:()=>ee(o,c),className:"p-0.5 hover:bg-[var(--bg-hover)] rounded",children:p?e.jsx(n.ChevronRight,{className:"h-3 w-3 text-[var(--text-muted)]"}):e.jsx(n.ChevronDown,{className:"h-3 w-3 text-[var(--text-muted)]"})}):null,ne=t=>_.map(o=>{const{status:c,grantedCount:p}=Z(o.id,t),w=y?.roleId===o.id&&y?.resourceId===t.id,C=l.createRef(),g=!o.isSystem||A,R=Q.getPermissionCellBackground(c),j=(P?.size??0)>0&&!P?.has(c);return e.jsxs("td",{className:`px-0 py-1 text-center relative ${j?"":R}`,style:{width:"44px",minWidth:"44px",maxWidth:"44px"},children:[e.jsx("button",{ref:C,type:"button",onClick:()=>g&&!j&&V(o.id,t.id),disabled:!g||j,className:`w-full h-full min-h-[36px] flex items-center justify-center rounded transition-colors ${j?"opacity-10 cursor-default":g?"hover:opacity-80":"cursor-not-allowed opacity-50"} ${w?"ring-2 ring-[var(--color-accent-500)]":""}`,title:j?void 0:g?`${o.name} - ${t.moduleLabel}: ${p}/${t.permissions.length}`:`${o.name} - ${f("assignments.systemRoleReadOnly")}`,children:e.jsx(Q.PermissionStatusIndicator,{status:c,grantedCount:p,totalCount:t.permissions.length})}),w&&g&&!j&&e.jsx(Q.PermissionPopover,{mode:"editable",role:o,resource:t,onTogglePermission:H=>k(o.id,H),onClose:()=>N(null),getPermissionInheritance:$})]},`${o.id}-${t.id}`)}),se=(t,o,c,p=!1,w=!1)=>{const C=W(c),g=o%2===0?"item-light":"item-medium";return e.jsxs("tr",{className:`hover:bg-[var(--bg-hover)] ${g}`,children:[e.jsx("td",{className:`sticky left-0 z-10 ${g} px-3 py-2 ${C}`,style:{width:"280px",minWidth:"280px",maxWidth:"280px"},children:e.jsxs("div",{className:"flex items-center gap-2",children:[ae(p,t.id,c,w),K(c),e.jsx("span",{className:`text-sm ${Y(c)}`,children:t.moduleLabel}),e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",t.permissions.length,")"]})]})}),ne(t)]},t.id)};return e.jsx("div",{className:"overflow-x-auto overflow-y-visible",children:e.jsxs("table",{className:"border-collapse",style:{width:"auto"},children:[e.jsx("thead",{className:"item-medium border-b border-[var(--item-color-border)]",children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:"sticky left-0 z-20 item-medium px-3 text-left text-xs font-medium text-[var(--text-secondary)] uppercase tracking-wider",style:{width:"280px",minWidth:"280px",maxWidth:"280px",height:"180px",verticalAlign:"bottom",paddingBottom:"12px"},children:f("assignments.resource")}),_.map(t=>e.jsx("th",{scope:"col",className:"relative overflow-visible",style:{width:"44px",minWidth:"44px",maxWidth:"44px",height:"180px",padding:0,verticalAlign:"bottom"},children:e.jsx("div",{className:"absolute bottom-2 left-1/2",style:{transform:"translateX(-6px) rotate(-55deg)",transformOrigin:"bottom left",width:"160px"},children:e.jsxs("div",{className:"flex items-center gap-1",children:[t.isSystem&&e.jsx(n.Lock,{className:"h-3 w-3 flex-shrink-0 text-[var(--warning-dot)]"}),e.jsx("span",{className:"text-[10px] font-medium text-[var(--text-primary)] whitespace-nowrap",title:t.name,children:t.name})]})})},t.id))]})}),e.jsx("tbody",{className:"divide-y divide-[var(--item-color-border)]",children:u.map(t=>{const o=h.has(t.application),c=_.length;return e.jsxs(l.Fragment,{children:[e.jsxs("tr",{className:"bg-[var(--color-accent-900)]/30 dark:bg-[var(--color-accent-900)]/50",children:[e.jsx("td",{className:"sticky left-0 z-10 px-3 py-3 bg-[var(--color-accent-900)]/30 dark:bg-[var(--color-accent-900)]/50",style:{width:"280px",minWidth:"280px",maxWidth:"280px"},children:e.jsxs("button",{onClick:()=>M(t.application),className:"flex items-center gap-3 w-full text-left hover:opacity-80",children:[o?e.jsx(n.ChevronRight,{className:"h-5 w-5 text-[var(--color-accent-400)]"}):e.jsx(n.ChevronDown,{className:"h-5 w-5 text-[var(--color-accent-400)]"}),e.jsx(n.FolderOpen,{className:"h-5 w-5 text-[var(--color-accent-400)]"}),e.jsx("span",{className:"text-sm font-bold text-[var(--color-accent-300)] uppercase tracking-wider",children:t.application}),e.jsx("span",{className:"text-xs text-[var(--color-accent-400)] ml-auto",children:f("assignments.moduleCount",{count:t.modules.length})})]})}),e.jsx("td",{colSpan:c,className:"px-0 py-3"})]}),!o&&t.modules.map((p,w)=>{const{module:C,sections:g}=p,R=g.length>0,j=T.has(C.id);return e.jsxs(l.Fragment,{children:[se(C,w,"module",R,j),R&&!j&&g.map((H,G)=>{const{section:te,resources:U}=H;return e.jsx(ge,{section:te,resources:U,moduleIndex:w,sectionIndex:G,isCollapsed:j,collapsedSections:L,paginatedRoles:_,canEditSystemRoles:A,statusFilters:P,openPopover:y,onToggleCollapse:ee,onTogglePermission:k,onCellClick:V,setOpenPopover:N,renderResourceRow:se},te.id)})]},C.id)})]},t.application)})})]})})}function be({filters:s,roles:v,categories:A,applications:k,modules:$,hasChanges:S,onFilterChange:b,onReset:O}){const{t:i}=le.useTranslation("admin"),[h,M]=l.useState(!1),[P,f]=l.useState(""),y=l.useRef(null),N=l.useRef(null),T=l.useMemo(()=>{let r=v;if(s.categoryFilter!=="all"&&(r=r.filter(u=>u.category===s.categoryFilter)),P.trim()){const u=P.toLowerCase();r=r.filter(F=>F.name.toLowerCase().includes(u)||F.shortName?.toLowerCase().includes(u))}return r},[v,s.categoryFilter,P]);l.useEffect(()=>{h&&N.current&&setTimeout(()=>N.current?.focus(),50)},[h]);const m=r=>{M(r),r||f("")},L=$.filter(r=>!(s.applicationFilter!=="all"&&r.app!==s.applicationFilter));l.useEffect(()=>{function r(u){y.current&&!y.current.contains(u.target)&&m(!1)}return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[]);const I=r=>{const u=s.selectedRoleIds.includes(r)?s.selectedRoleIds.filter(F=>F!==r):[...s.selectedRoleIds,r];b({selectedRoleIds:u})},D=()=>{b({selectedRoleIds:T.map(r=>r.id)})},E=()=>{b({selectedRoleIds:[]})},z=r=>{b({applicationFilter:r,moduleFilter:"all"})},q=r=>{b({categoryFilter:r,selectedRoleIds:[]})},_=s.selectedRoleIds.length>0||s.categoryFilter!=="all"||s.applicationFilter!=="all"||s.moduleFilter!=="all",B=s.selectedRoleIds.length===0?i("permissions.filters.allRoles"):s.selectedRoleIds.length===1?v.find(r=>r.id===s.selectedRoleIds[0])?.name||i("assignments.oneRoleSelected"):`${s.selectedRoleIds.length} ${i("permissions.filters.rolesSelected")}`;return e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--item-color-border)] rounded-[var(--radius-card)] p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-[var(--text-secondary)]",children:[e.jsx(n.Filter,{className:"h-4 w-4"}),e.jsx("span",{children:i("assignments.filters")})]}),e.jsxs("div",{className:"flex flex-wrap gap-4",children:[e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"category-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectCategory")}),e.jsxs("select",{id:"category-filter",value:s.categoryFilter,onChange:r=>q(r.target.value),className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm",children:[e.jsx("option",{value:"all",children:i("permissions.filters.allCategories")}),A.map(r=>e.jsx("option",{value:r,children:i(`roles.categories.${r.toLowerCase()}`)},r))]})]}),e.jsxs("div",{ref:y,className:"relative min-w-[200px] flex-[2]",children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectRoles")}),e.jsxs("button",{type:"button",onClick:()=>m(!h),className:"w-full flex items-center justify-between px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] bg-[var(--bg-primary)] text-[var(--text-primary)] hover:bg-[var(--bg-secondary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] text-sm",children:[e.jsx("span",{className:"truncate",children:B}),e.jsx(n.ChevronDown,{className:`h-4 w-4 text-[var(--text-muted)] transition-transform ${h?"rotate-180":""}`})]}),h&&e.jsxs("div",{className:"absolute z-50 mt-1 w-full bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[var(--radius-card)] shadow-lg",children:[e.jsx("div",{className:"px-3 py-2 border-b border-[var(--border-color)]",children:e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-y-0 left-0 pl-2 flex items-center pointer-events-none",children:e.jsx(n.Search,{className:"h-4 w-4 text-[var(--text-muted)]"})}),e.jsx("input",{ref:N,type:"text",value:P,onChange:r=>f(r.target.value),placeholder:i("permissions.filters.searchRoles"),className:"block w-full pl-8 pr-3 py-1.5 text-sm border border-[var(--border-color)] rounded-[var(--radius-input)] bg-[var(--bg-primary)] text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)]"})]})}),e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b border-[var(--border-color)] bg-[var(--bg-secondary)]",children:[e.jsx("button",{type:"button",onClick:D,className:"text-xs text-[var(--color-accent-600)] hover:text-[var(--color-accent-700)]",children:i("permissions.filters.selectAll")}),e.jsx("button",{type:"button",onClick:E,className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-secondary)]",children:i("permissions.filters.clearSelection")})]}),e.jsx("div",{className:"max-h-64 overflow-auto",children:T.length===0?e.jsx("div",{className:"px-3 py-4 text-sm text-[var(--text-muted)] text-center",children:i("permissions.filters.noRolesFound")}):T.map(r=>e.jsxs("button",{type:"button",onClick:()=>I(r.id),className:"w-full flex items-center gap-3 px-3 py-2 hover:bg-[var(--bg-secondary)] cursor-pointer text-left",children:[e.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center flex-shrink-0 ${s.selectedRoleIds.includes(r.id)?"bg-[var(--color-accent-600)] border-[var(--color-accent-600)]":"border-[var(--border-color)] bg-[var(--bg-primary)]"}`,children:s.selectedRoleIds.includes(r.id)&&e.jsx(n.Check,{className:"h-3 w-3 text-white"})}),e.jsx("span",{className:"text-sm text-[var(--text-primary)] truncate",children:r.name}),r.isSystem&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded bg-[var(--bg-tertiary)] text-[var(--text-muted)] flex-shrink-0",children:i("assignments.systemRole")})]},r.id))})]})]}),e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"application-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("assignments.filterByApplication")}),e.jsxs("select",{id:"application-filter",value:s.applicationFilter,onChange:r=>z(r.target.value),disabled:k.length===0,className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("option",{value:"all",children:i("assignments.allApplications")}),k.map(r=>e.jsx("option",{value:r.app,children:r.label},r.app))]})]}),e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"module-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectModule")}),e.jsxs("select",{id:"module-filter",value:s.moduleFilter,onChange:r=>b({moduleFilter:r.target.value}),disabled:L.length===0,className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("option",{value:"all",children:i("permissions.filters.allModules")}),L.map(r=>e.jsx("option",{value:r.module,children:r.label},`${r.app}:${r.module}`))]})]}),e.jsx("div",{className:"flex items-end flex-shrink-0",children:_&&e.jsxs("button",{type:"button",onClick:O,className:"w-full inline-flex items-center justify-center gap-2 px-3 py-2 text-sm text-[var(--text-secondary)] hover:text-[var(--text-primary)] border border-[var(--border-color)] rounded-[var(--radius-input)] hover:bg-[var(--bg-secondary)] transition-colors",children:[e.jsx(n.RotateCcw,{className:"h-4 w-4"}),i("assignments.clearFilters")]})})]}),s.selectedRoleIds.length>0&&e.jsx("div",{className:"flex flex-wrap gap-2",children:s.selectedRoleIds.map(r=>{const u=v.find(F=>F.id===r);return u?e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 text-xs rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] dark:bg-[var(--color-accent-900)] dark:text-[var(--color-accent-300)]",children:[u.name,e.jsx("button",{type:"button",onClick:()=>I(r),className:"hover:text-[var(--color-accent-900)] dark:hover:text-[var(--color-accent-100)]",children:e.jsx(n.X,{className:"h-3 w-3"})})]},r):null})}),S&&e.jsx("div",{className:"flex items-center justify-end pt-2 border-t border-[var(--border-color)]",children:e.jsx("div",{className:"text-sm text-[var(--warning-text)]",children:i("assignments.unsavedChanges")})})]})}const ie={viewer:{nameKey:"assignments.templates.viewer.name",descriptionKey:"assignments.templates.viewer.description",icon:n.Eye,color:"blue",permissions:["*.read"]},member:{nameKey:"assignments.templates.member.name",descriptionKey:"assignments.templates.member.description",icon:n.User,color:"green",permissions:["*.read","*.create"]},contributor:{nameKey:"assignments.templates.contributor.name",descriptionKey:"assignments.templates.contributor.description",icon:n.Pencil,color:"orange",permissions:["*.read","*.create","*.update"]},admin:{nameKey:"assignments.templates.admin.name",descriptionKey:"assignments.templates.admin.description",icon:n.ShieldCheck,color:"red",permissions:["*.*"]}},fe=[10,25,50],je=[10,15,20,25];function ye(){const{t:s}=le.useTranslation("admin"),{user:v}=J.useAuth(),[A,k]=l.useState(!1),[$,S]=l.useState(null),[b,O]=l.useState(25),[i,h]=l.useState(1),[M,P]=l.useState(10),[f,y]=l.useState(0),[N,T]=l.useState(new Set),[m,L]=l.useState(new Set),[I,D]=l.useState(!1),E=a=>{L(x=>{const d=new Set(x);return d.has(a)?d.delete(a):d.add(a),d}),h(1),y(0)},z=a=>{T(x=>{const d=new Set(x);return d.has(a)?d.delete(a):d.add(a),d})},q=l.useMemo(()=>v?J.hasFullAccess(v.permissions):!1,[v]),{loading:_,error:B,saveError:r,saving:u,roles:F,assignments:Z,filters:V,filteredRoles:W,filteredResources:K,hasChanges:Y,applications:ee,modules:ae,categories:ne,togglePermission:se,updateFilters:t,reloadData:o,resetChanges:c,clearSaveError:p,getPermissionInheritance:w}=J.usePermissionMatrix({canEditSystemRoles:q}),C=l.useCallback((a,x)=>{const d=x.permissions.filter(he=>{const oe=w(a,he.id);return oe.isDirect||oe.isInherited}),X=d.length,pe=x.totalPermissions;return X===0?"none":X===pe?"all":X===1&&d[0]?.action==="read"?"read-only":"some"},[w]),g=l.useMemo(()=>K.filter(a=>a.level==="module"),[K]),R=l.useMemo(()=>m.size===0?W:W.filter(a=>{for(const x of g){const d=C(a.id,x);if(m.has(d))return!0}return!1}),[W,g,m,C]),j=l.useMemo(()=>m.size===0?K:K.filter(a=>{if(a.level!=="module")return!0;for(const x of W){const d=C(x.id,a);if(m.has(d))return!0}return!1}),[K,W,m,C]),H=l.useMemo(()=>{let a=0;return Object.values(Z).forEach(x=>{a+=x.size}),a},[Z]),G=l.useMemo(()=>j.filter(a=>!(a.level!=="module"||N.has(a.applicationLabel))).length,[j,N]),te=l.useMemo(()=>j.filter(a=>a.level==="module").length,[j]),U=Math.ceil(G/b),ce=a=>{h(1),t(a)},de=a=>{O(a),h(1)},re=Math.ceil(R.length/M),me=a=>{P(a),y(0)},xe=async a=>{const x=ie[a];if(!x)return;const d=prompt(s("assignments.enterRoleName"),s(x.nameKey));if(d)try{S(null),await J.adminApi.roles.create({name:d,description:s(x.descriptionKey),permissionIds:[]}),k(!1),await o()}catch(X){S(X instanceof Error?X.message:"Failed to create role from template")}},ue=()=>{h(1),t({selectedRoleIds:[],resourceSearch:"",applicationFilter:"all",moduleFilter:"all"})};return _?e.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:e.jsxs("div",{className:"text-center",children:[e.jsx(n.Loader2,{className:"h-8 w-8 animate-spin text-[var(--color-accent-500)] mx-auto mb-4"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:s("assignments.loading")})]})}):B?e.jsx("div",{className:"p-6",children:e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)] p-4",children:e.jsxs("div",{className:"flex",children:[e.jsx(n.AlertCircle,{className:"h-5 w-5 text-[var(--error-text)]"}),e.jsxs("div",{className:"ml-3",children:[e.jsx("h3",{className:"text-sm font-medium text-[var(--error-text)]",children:s("common.error")}),e.jsx("div",{className:"mt-2 text-sm text-[var(--error-text)] opacity-80",children:e.jsx("p",{children:B})})]})]})})}):e.jsxs("div",{className:"p-6 space-y-4",children:[e.jsx(J.Breadcrumb,{items:[{label:s("header.title"),href:"/administration"},{label:s("assignments.title","Assignments")}]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:s("assignments.title")}),e.jsx("p",{className:"mt-1 text-sm text-[var(--text-secondary)]",children:s("assignments.subtitle")})]}),e.jsx("div",{className:"flex items-center gap-3 flex-shrink-0",children:e.jsxs("button",{type:"button",onClick:()=>k(!0),className:"inline-flex items-center px-4 py-2 border border-[var(--border-color)] text-sm font-medium rounded-[var(--radius-button)] text-[var(--text-secondary)] bg-[var(--bg-card)] hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsx(n.Sparkles,{className:"h-4 w-4 mr-2"}),s("assignments.createFromTemplate")]})})]}),r&&e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--error-bg)] p-3 border border-[var(--error-border)]",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx(n.AlertCircle,{className:"h-4 w-4 text-[var(--error-text)]"}),e.jsx("p",{className:"ml-2 text-sm text-[var(--error-text)]",children:r}),e.jsx("button",{type:"button",onClick:p,className:"ml-auto text-sm text-[var(--error-text)] hover:opacity-80 font-medium",children:s("common.dismiss")})]})}),(Y||u)&&e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--warning-bg)] p-3 border border-[var(--warning-border)]",children:e.jsxs("div",{className:"flex items-center",children:[u?e.jsx(n.Loader2,{className:"h-4 w-4 text-[var(--warning-dot)] animate-spin"}):e.jsx(n.Info,{className:"h-4 w-4 text-[var(--warning-dot)]"}),e.jsx("p",{className:"ml-2 text-sm text-[var(--warning-text)]",children:s(u?"assignments.saving":"assignments.autoSaveActive")}),!u&&e.jsx("button",{type:"button",onClick:c,className:"ml-auto text-sm text-[var(--warning-text)] hover:opacity-80 font-medium",children:s("assignments.discardChanges")})]})}),e.jsx(be,{filters:V,roles:F,categories:ne,applications:ee,modules:ae,hasChanges:Y,onFilterChange:ce,onReset:ue}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 py-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] dark:bg-[var(--color-accent-900)] dark:text-[var(--color-accent-300)]",children:[R.length," ",s("assignments.roles")]}),e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--bg-tertiary)] text-[var(--text-secondary)]",children:[G,"/",te," ",s("assignments.modules")]}),e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--success-bg)] text-[var(--success-text)] border border-[var(--success-border)]",children:[H," ",s("assignments.permissionsAssigned")]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-[var(--text-secondary)] border-l border-[var(--border-color)] pl-4",children:[e.jsxs("span",{children:[s("assignments.rolesPerPage"),":"]}),e.jsx("select",{value:M,onChange:a=>me(Number(a.target.value)),className:"px-2 py-1 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded text-[var(--text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)]",children:je.map(a=>e.jsx("option",{value:a,children:a},a))}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[f*M+1,"-",Math.min((f+1)*M,R.length)," / ",R.length]}),re>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>y(a=>Math.max(0,a-1)),disabled:f===0,className:"p-1 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronLeft,{className:"h-3.5 w-3.5"})}),e.jsxs("span",{className:"text-xs min-w-[50px] text-center",children:[f+1," / ",re]}),e.jsx("button",{onClick:()=>y(a=>Math.min(re-1,a+1)),disabled:f>=re-1,className:"p-1 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronRight,{className:"h-3.5 w-3.5"})})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("button",{onClick:()=>E("none"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("none")?"bg-red-500/30 border-red-500 text-red-700 dark:text-red-300":"bg-red-500/10 border-red-500/30 text-red-600 dark:text-red-400 hover:bg-red-500/20 hover:border-red-500"}`,children:[e.jsx(n.Ban,{className:"h-3.5 w-3.5"}),s("assignments.none")]}),e.jsxs("button",{onClick:()=>E("read-only"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("read-only")?"bg-sky-500/30 border-sky-500 text-sky-700 dark:text-sky-300":"bg-sky-500/10 border-sky-500/30 text-sky-600 dark:text-sky-400 hover:bg-sky-500/20 hover:border-sky-500"}`,children:[e.jsx(n.Eye,{className:"h-3.5 w-3.5"}),s("assignments.readOnly")]}),e.jsxs("button",{onClick:()=>E("some"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("some")?"bg-amber-500/30 border-amber-500 text-amber-700 dark:text-amber-300":"bg-amber-500/10 border-amber-500/30 text-amber-600 dark:text-amber-400 hover:bg-amber-500/20 hover:border-amber-500"}`,children:[e.jsx(n.Star,{className:"h-3.5 w-3.5"}),s("assignments.partial")]}),e.jsxs("button",{onClick:()=>E("all"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("all")?"bg-emerald-500/30 border-emerald-500 text-emerald-700 dark:text-emerald-300":"bg-emerald-500/10 border-emerald-500/30 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 hover:border-emerald-500"}`,children:[e.jsx(n.Check,{className:"h-3.5 w-3.5"}),s("assignments.complete")]}),m.size>0&&e.jsx("button",{onClick:()=>L(new Set),className:"text-xs text-[var(--color-accent-500)] hover:text-[var(--color-accent-600)] underline ml-2",children:s("assignments.clearFilters")})]})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--item-color-border)] rounded-[var(--radius-card)] overflow-hidden",children:[e.jsxs("button",{type:"button",onClick:()=>D(!I),className:"w-full flex items-center justify-between px-4 py-2.5 text-sm font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(n.BookOpen,{className:"h-4 w-4 text-[var(--color-accent-500)]"}),e.jsx("span",{children:s("assignments.guide.title")})]}),I?e.jsx(n.ChevronUp,{className:"h-4 w-4 text-[var(--text-muted)]"}):e.jsx(n.ChevronDown,{className:"h-4 w-4 text-[var(--text-muted)]"})]}),I&&e.jsx("div",{className:"px-4 pb-4 border-t border-[var(--item-color-border)]",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 pt-3",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-[var(--text-primary)] uppercase tracking-wider mb-2",children:s("assignments.guide.colorLegendTitle")}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-red-500/10 border border-red-500/20 text-red-600 dark:text-red-400",children:e.jsx(n.Ban,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.noneDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-sky-500/20 border border-sky-500/30 text-sky-700 dark:text-sky-300",children:e.jsx(n.Eye,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.readOnlyDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-amber-500/20 border border-amber-500/30 text-amber-700 dark:text-amber-300",children:e.jsx(n.Star,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.partialDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-emerald-500/20 border border-emerald-500/30 text-emerald-700 dark:text-emerald-300",children:e.jsx(n.Check,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.completeDesc")})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-[var(--text-primary)] uppercase tracking-wider mb-2",children:s("assignments.guide.howToUseTitle")}),e.jsxs("ul",{className:"space-y-1.5 text-xs text-[var(--text-secondary)]",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.clickCell")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(n.Lock,{className:"h-3 w-3 flex-shrink-0 mt-0.5 text-[var(--warning-dot)]"}),s("assignments.guide.systemRoles")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.inheritance")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.autoSave")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.filterButtons")]})]})]})]})})]}),e.jsx("div",{className:"bg-[var(--bg-card)] shadow-[var(--shadow-md)] rounded-[var(--radius-card)] border border-[var(--item-color-border)]",children:e.jsx(ve,{roles:R,resources:j,assignments:Z,canEditSystemRoles:q,onTogglePermission:se,getPermissionInheritance:w,rolesPerPage:M,rolePageIndex:f,modulesPerPage:b,modulePageIndex:i-1,collapsedApps:N,onToggleApp:z,statusFilters:m})}),e.jsx("div",{className:"py-3 px-4 bg-[var(--bg-card)] rounded-[var(--radius-card)] border border-[var(--item-color-border)]",children:e.jsxs("div",{className:"flex items-center gap-3 text-sm text-[var(--text-secondary)]",children:[e.jsxs("span",{children:[s("assignments.itemsPerPage"),":"]}),e.jsx("select",{value:b,onChange:a=>de(Number(a.target.value)),className:"px-2 py-1 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded text-[var(--text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)]",children:fe.map(a=>e.jsx("option",{value:a,children:a},a))}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[(i-1)*b+1,"-",Math.min(i*b,G)," / ",G]}),U>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>h(a=>Math.max(1,a-1)),disabled:i===1,className:"p-1.5 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronLeft,{className:"h-4 w-4"})}),e.jsxs("span",{className:"text-sm min-w-[60px] text-center",children:[i," / ",U]}),e.jsx("button",{onClick:()=>h(a=>Math.min(U,a+1)),disabled:i>=U,className:"p-1.5 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronRight,{className:"h-4 w-4"})})]})]})}),A&&e.jsx("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:e.jsxs("div",{className:"flex items-center justify-center min-h-screen px-4 pt-4 pb-20 text-center sm:p-0",children:[e.jsx("button",{type:"button",className:"fixed inset-0 bg-black/50 transition-opacity",onClick:()=>k(!1),"aria-label":"Close modal"}),e.jsxs("div",{className:"inline-block align-bottom bg-[var(--bg-card)] rounded-[var(--radius-modal)] px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full sm:p-6 border border-[var(--border-color)]",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("h3",{className:"text-lg font-medium text-[var(--text-primary)]",children:s("assignments.createFromTemplate")}),e.jsx("p",{className:"mt-1 text-sm text-[var(--text-secondary)]",children:s("assignments.templateDescription")})]}),$&&e.jsx("div",{className:"mb-4 rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)] p-3",children:e.jsxs("div",{className:"flex",children:[e.jsx(n.AlertCircle,{className:"h-5 w-5 text-[var(--error-text)]"}),e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-[var(--error-text)]",children:$})})]})}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:Object.entries(ie).map(([a,x])=>{const d=x.icon;return e.jsx("button",{onClick:()=>xe(a),className:"relative p-4 rounded-[var(--radius-card)] border-2 text-left transition-all hover:shadow-lg hover:scale-105 border-[var(--border-color)] hover:border-[var(--color-accent-500)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(d,{className:"h-6 w-6 text-[var(--color-accent-500)]"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"text-sm font-medium text-[var(--text-primary)]",children:s(x.nameKey)}),e.jsx("p",{className:"mt-1 text-xs text-[var(--text-secondary)]",children:s(x.descriptionKey)})]})]})},a)})}),e.jsx("div",{className:"mt-5 sm:mt-6",children:e.jsx("button",{type:"button",onClick:()=>{k(!1),S(null)},className:"w-full inline-flex justify-center rounded-[var(--radius-button)] border border-[var(--border-color)] shadow-sm px-4 py-2 bg-[var(--bg-secondary)] text-base font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-colors",children:s("common.cancel")})})]})]})})]})}exports.AssignmentsPage=ye;
2
- //# sourceMappingURL=AssignmentsPage-Bp7oQD7Q.js.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),le=require("react-i18next"),n=require("lucide-react"),J=require("./index-DK5czlkn.js"),Q=require("./PermissionPopover-CtYTz7MK.js");function ge({section:s,resources:v,moduleIndex:A,sectionIndex:k,isCollapsed:$,collapsedSections:S,paginatedRoles:b,canEditSystemRoles:O,statusFilters:i,openPopover:h,onToggleCollapse:M,onTogglePermission:P,onCellClick:f,setOpenPopover:y,renderResourceRow:N}){const T=S.has(s.id),m=v.length>0;return e.jsxs(l.Fragment,{children:[N(s,A+k+1,"section",m,T),m&&!T&&v.map((L,I)=>N(L,A+k+I+2,"resource",!1,!1))]},s.id)}function ve({roles:s,resources:v,canEditSystemRoles:A=!1,onTogglePermission:k,getPermissionInheritance:$,rolesPerPage:S,rolePageIndex:b,modulesPerPage:O,modulePageIndex:i,collapsedApps:h,onToggleApp:M,statusFilters:P}){const{t:f}=le.useTranslation("admin"),[y,N]=l.useState(null),[T,m]=l.useState(new Set),[L,I]=l.useState(new Set),D=l.useCallback((t,o)=>{o(c=>{const p=new Set(c);return p.has(t)?p.delete(t):p.add(t),p})},[]),E=l.useCallback(t=>{D(t,m)},[D]),z=l.useCallback(t=>{D(t,I)},[D]),q=l.useMemo(()=>v.filter(t=>t.level==="module").length,[v]),_=l.useMemo(()=>{const t=b*S;return s.slice(t,t+S)},[s,b,S]),B=l.useMemo(()=>Q.groupByApplicationWithSections(v),[v]),r=l.useCallback(()=>{const t=i*O,o=t+O,c={current:0},p=[];for(const w of B){const C=h.has(w.application),g=[];if(!C)for(const R of w.modules)c.current>=t&&c.current<o&&g.push(R),c.current++;p.push({application:w.application,modules:g})}return p},[B,i,O,h]),u=l.useMemo(()=>r(),[r]),F=l.useCallback((t,o)=>{const c=$(t,o);return c.isDirect||c.isInherited},[$]),Z=l.useCallback((t,o)=>Q.calculatePermissionStatus(o,c=>F(t,c)),[F]),V=(t,o)=>{y?.roleId===t&&y?.resourceId===o?N(null):N({roleId:t,resourceId:o})};if(s.length===0||q===0)return e.jsx("div",{className:"text-center py-12 text-[var(--text-secondary)]",children:s.length===0?f("assignments.noRoles"):f("assignments.noResources")});const W=t=>{switch(t){case"resource":return"pl-28";case"section":return"pl-22";default:return"pl-16"}},K=t=>t==="resource"?e.jsx(n.Database,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):t==="section"?e.jsx(n.FileText,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"}):e.jsx(n.Box,{className:"h-3.5 w-3.5 text-[var(--text-secondary)]"}),Y=t=>t==="resource"?"text-[var(--text-muted)] italic":t==="section"?"text-[var(--text-secondary)]":"font-medium text-[var(--text-primary)]",ee=l.useCallback((t,o)=>{o==="module"?E(t):o==="section"&&z(t)},[E,z]),ae=(t,o,c,p)=>t?e.jsx("button",{onClick:()=>ee(o,c),className:"p-0.5 hover:bg-[var(--bg-hover)] rounded",children:p?e.jsx(n.ChevronRight,{className:"h-3 w-3 text-[var(--text-muted)]"}):e.jsx(n.ChevronDown,{className:"h-3 w-3 text-[var(--text-muted)]"})}):null,ne=t=>_.map(o=>{const{status:c,grantedCount:p}=Z(o.id,t),w=y?.roleId===o.id&&y?.resourceId===t.id,C=l.createRef(),g=!o.isSystem||A,R=Q.getPermissionCellBackground(c),j=(P?.size??0)>0&&!P?.has(c);return e.jsxs("td",{className:`px-0 py-1 text-center relative ${j?"":R}`,style:{width:"44px",minWidth:"44px",maxWidth:"44px"},children:[e.jsx("button",{ref:C,type:"button",onClick:()=>g&&!j&&V(o.id,t.id),disabled:!g||j,className:`w-full h-full min-h-[36px] flex items-center justify-center rounded transition-colors ${j?"opacity-10 cursor-default":g?"hover:opacity-80":"cursor-not-allowed opacity-50"} ${w?"ring-2 ring-[var(--color-accent-500)]":""}`,title:j?void 0:g?`${o.name} - ${t.moduleLabel}: ${p}/${t.permissions.length}`:`${o.name} - ${f("assignments.systemRoleReadOnly")}`,children:e.jsx(Q.PermissionStatusIndicator,{status:c,grantedCount:p,totalCount:t.permissions.length})}),w&&g&&!j&&e.jsx(Q.PermissionPopover,{mode:"editable",role:o,resource:t,onTogglePermission:H=>k(o.id,H),onClose:()=>N(null),getPermissionInheritance:$})]},`${o.id}-${t.id}`)}),se=(t,o,c,p=!1,w=!1)=>{const C=W(c),g=o%2===0?"item-light":"item-medium";return e.jsxs("tr",{className:`hover:bg-[var(--bg-hover)] ${g}`,children:[e.jsx("td",{className:`sticky left-0 z-10 ${g} px-3 py-2 ${C}`,style:{width:"280px",minWidth:"280px",maxWidth:"280px"},children:e.jsxs("div",{className:"flex items-center gap-2",children:[ae(p,t.id,c,w),K(c),e.jsx("span",{className:`text-sm ${Y(c)}`,children:t.moduleLabel}),e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["(",t.permissions.length,")"]})]})}),ne(t)]},t.id)};return e.jsx("div",{className:"overflow-x-auto overflow-y-visible",children:e.jsxs("table",{className:"border-collapse",style:{width:"auto"},children:[e.jsx("thead",{className:"item-medium border-b border-[var(--item-color-border)]",children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",className:"sticky left-0 z-20 item-medium px-3 text-left text-xs font-medium text-[var(--text-secondary)] uppercase tracking-wider",style:{width:"280px",minWidth:"280px",maxWidth:"280px",height:"180px",verticalAlign:"bottom",paddingBottom:"12px"},children:f("assignments.resource")}),_.map(t=>e.jsx("th",{scope:"col",className:"relative overflow-visible",style:{width:"44px",minWidth:"44px",maxWidth:"44px",height:"180px",padding:0,verticalAlign:"bottom"},children:e.jsx("div",{className:"absolute bottom-2 left-1/2",style:{transform:"translateX(-6px) rotate(-55deg)",transformOrigin:"bottom left",width:"160px"},children:e.jsxs("div",{className:"flex items-center gap-1",children:[t.isSystem&&e.jsx(n.Lock,{className:"h-3 w-3 flex-shrink-0 text-[var(--warning-dot)]"}),e.jsx("span",{className:"text-[10px] font-medium text-[var(--text-primary)] whitespace-nowrap",title:t.name,children:t.name})]})})},t.id))]})}),e.jsx("tbody",{className:"divide-y divide-[var(--item-color-border)]",children:u.map(t=>{const o=h.has(t.application),c=_.length;return e.jsxs(l.Fragment,{children:[e.jsxs("tr",{className:"bg-[var(--color-accent-900)]/30 dark:bg-[var(--color-accent-900)]/50",children:[e.jsx("td",{className:"sticky left-0 z-10 px-3 py-3 bg-[var(--color-accent-900)]/30 dark:bg-[var(--color-accent-900)]/50",style:{width:"280px",minWidth:"280px",maxWidth:"280px"},children:e.jsxs("button",{onClick:()=>M(t.application),className:"flex items-center gap-3 w-full text-left hover:opacity-80",children:[o?e.jsx(n.ChevronRight,{className:"h-5 w-5 text-[var(--color-accent-400)]"}):e.jsx(n.ChevronDown,{className:"h-5 w-5 text-[var(--color-accent-400)]"}),e.jsx(n.FolderOpen,{className:"h-5 w-5 text-[var(--color-accent-400)]"}),e.jsx("span",{className:"text-sm font-bold text-[var(--color-accent-300)] uppercase tracking-wider",children:t.application}),e.jsx("span",{className:"text-xs text-[var(--color-accent-400)] ml-auto",children:f("assignments.moduleCount",{count:t.modules.length})})]})}),e.jsx("td",{colSpan:c,className:"px-0 py-3"})]}),!o&&t.modules.map((p,w)=>{const{module:C,sections:g}=p,R=g.length>0,j=T.has(C.id);return e.jsxs(l.Fragment,{children:[se(C,w,"module",R,j),R&&!j&&g.map((H,G)=>{const{section:te,resources:U}=H;return e.jsx(ge,{section:te,resources:U,moduleIndex:w,sectionIndex:G,isCollapsed:j,collapsedSections:L,paginatedRoles:_,canEditSystemRoles:A,statusFilters:P,openPopover:y,onToggleCollapse:ee,onTogglePermission:k,onCellClick:V,setOpenPopover:N,renderResourceRow:se},te.id)})]},C.id)})]},t.application)})})]})})}function be({filters:s,roles:v,categories:A,applications:k,modules:$,hasChanges:S,onFilterChange:b,onReset:O}){const{t:i}=le.useTranslation("admin"),[h,M]=l.useState(!1),[P,f]=l.useState(""),y=l.useRef(null),N=l.useRef(null),T=l.useMemo(()=>{let r=v;if(s.categoryFilter!=="all"&&(r=r.filter(u=>u.category===s.categoryFilter)),P.trim()){const u=P.toLowerCase();r=r.filter(F=>F.name.toLowerCase().includes(u)||F.shortName?.toLowerCase().includes(u))}return r},[v,s.categoryFilter,P]);l.useEffect(()=>{h&&N.current&&setTimeout(()=>N.current?.focus(),50)},[h]);const m=r=>{M(r),r||f("")},L=$.filter(r=>!(s.applicationFilter!=="all"&&r.app!==s.applicationFilter));l.useEffect(()=>{function r(u){y.current&&!y.current.contains(u.target)&&m(!1)}return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[]);const I=r=>{const u=s.selectedRoleIds.includes(r)?s.selectedRoleIds.filter(F=>F!==r):[...s.selectedRoleIds,r];b({selectedRoleIds:u})},D=()=>{b({selectedRoleIds:T.map(r=>r.id)})},E=()=>{b({selectedRoleIds:[]})},z=r=>{b({applicationFilter:r,moduleFilter:"all"})},q=r=>{b({categoryFilter:r,selectedRoleIds:[]})},_=s.selectedRoleIds.length>0||s.categoryFilter!=="all"||s.applicationFilter!=="all"||s.moduleFilter!=="all",B=s.selectedRoleIds.length===0?i("permissions.filters.allRoles"):s.selectedRoleIds.length===1?v.find(r=>r.id===s.selectedRoleIds[0])?.name||i("assignments.oneRoleSelected"):`${s.selectedRoleIds.length} ${i("permissions.filters.rolesSelected")}`;return e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--item-color-border)] rounded-[var(--radius-card)] p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-[var(--text-secondary)]",children:[e.jsx(n.Filter,{className:"h-4 w-4"}),e.jsx("span",{children:i("assignments.filters")})]}),e.jsxs("div",{className:"flex flex-wrap gap-4",children:[e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"category-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectCategory")}),e.jsxs("select",{id:"category-filter",value:s.categoryFilter,onChange:r=>q(r.target.value),className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm",children:[e.jsx("option",{value:"all",children:i("permissions.filters.allCategories")}),A.map(r=>e.jsx("option",{value:r,children:i(`roles.categories.${r.toLowerCase()}`)},r))]})]}),e.jsxs("div",{ref:y,className:"relative min-w-[200px] flex-[2]",children:[e.jsx("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectRoles")}),e.jsxs("button",{type:"button",onClick:()=>m(!h),className:"w-full flex items-center justify-between px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] bg-[var(--bg-primary)] text-[var(--text-primary)] hover:bg-[var(--bg-secondary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] text-sm",children:[e.jsx("span",{className:"truncate",children:B}),e.jsx(n.ChevronDown,{className:`h-4 w-4 text-[var(--text-muted)] transition-transform ${h?"rotate-180":""}`})]}),h&&e.jsxs("div",{className:"absolute z-50 mt-1 w-full bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[var(--radius-card)] shadow-lg",children:[e.jsx("div",{className:"px-3 py-2 border-b border-[var(--border-color)]",children:e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-y-0 left-0 pl-2 flex items-center pointer-events-none",children:e.jsx(n.Search,{className:"h-4 w-4 text-[var(--text-muted)]"})}),e.jsx("input",{ref:N,type:"text",value:P,onChange:r=>f(r.target.value),placeholder:i("permissions.filters.searchRoles"),className:"block w-full pl-8 pr-3 py-1.5 text-sm border border-[var(--border-color)] rounded-[var(--radius-input)] bg-[var(--bg-primary)] text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)]"})]})}),e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b border-[var(--border-color)] bg-[var(--bg-secondary)]",children:[e.jsx("button",{type:"button",onClick:D,className:"text-xs text-[var(--color-accent-600)] hover:text-[var(--color-accent-700)]",children:i("permissions.filters.selectAll")}),e.jsx("button",{type:"button",onClick:E,className:"text-xs text-[var(--text-muted)] hover:text-[var(--text-secondary)]",children:i("permissions.filters.clearSelection")})]}),e.jsx("div",{className:"max-h-64 overflow-auto",children:T.length===0?e.jsx("div",{className:"px-3 py-4 text-sm text-[var(--text-muted)] text-center",children:i("permissions.filters.noRolesFound")}):T.map(r=>e.jsxs("button",{type:"button",onClick:()=>I(r.id),className:"w-full flex items-center gap-3 px-3 py-2 hover:bg-[var(--bg-secondary)] cursor-pointer text-left",children:[e.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center flex-shrink-0 ${s.selectedRoleIds.includes(r.id)?"bg-[var(--color-accent-600)] border-[var(--color-accent-600)]":"border-[var(--border-color)] bg-[var(--bg-primary)]"}`,children:s.selectedRoleIds.includes(r.id)&&e.jsx(n.Check,{className:"h-3 w-3 text-white"})}),e.jsx("span",{className:"text-sm text-[var(--text-primary)] truncate",children:r.name}),r.isSystem&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded bg-[var(--bg-tertiary)] text-[var(--text-muted)] flex-shrink-0",children:i("assignments.systemRole")})]},r.id))})]})]}),e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"application-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("assignments.filterByApplication")}),e.jsxs("select",{id:"application-filter",value:s.applicationFilter,onChange:r=>z(r.target.value),disabled:k.length===0,className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("option",{value:"all",children:i("assignments.allApplications")}),k.map(r=>e.jsx("option",{value:r.app,children:r.label},r.app))]})]}),e.jsxs("div",{className:"min-w-[160px] flex-1",children:[e.jsx("label",{htmlFor:"module-filter",className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("permissions.filters.selectModule")}),e.jsxs("select",{id:"module-filter",value:s.moduleFilter,onChange:r=>b({moduleFilter:r.target.value}),disabled:L.length===0,className:"block w-full px-3 py-2 border border-[var(--border-color)] rounded-[var(--radius-input)] leading-5 bg-[var(--bg-primary)] text-[var(--text-primary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] focus:border-[var(--color-accent-500)] sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx("option",{value:"all",children:i("permissions.filters.allModules")}),L.map(r=>e.jsx("option",{value:r.module,children:r.label},`${r.app}:${r.module}`))]})]}),e.jsx("div",{className:"flex items-end flex-shrink-0",children:_&&e.jsxs("button",{type:"button",onClick:O,className:"w-full inline-flex items-center justify-center gap-2 px-3 py-2 text-sm text-[var(--text-secondary)] hover:text-[var(--text-primary)] border border-[var(--border-color)] rounded-[var(--radius-input)] hover:bg-[var(--bg-secondary)] transition-colors",children:[e.jsx(n.RotateCcw,{className:"h-4 w-4"}),i("assignments.clearFilters")]})})]}),s.selectedRoleIds.length>0&&e.jsx("div",{className:"flex flex-wrap gap-2",children:s.selectedRoleIds.map(r=>{const u=v.find(F=>F.id===r);return u?e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 text-xs rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] dark:bg-[var(--color-accent-900)] dark:text-[var(--color-accent-300)]",children:[u.name,e.jsx("button",{type:"button",onClick:()=>I(r),className:"hover:text-[var(--color-accent-900)] dark:hover:text-[var(--color-accent-100)]",children:e.jsx(n.X,{className:"h-3 w-3"})})]},r):null})}),S&&e.jsx("div",{className:"flex items-center justify-end pt-2 border-t border-[var(--border-color)]",children:e.jsx("div",{className:"text-sm text-[var(--warning-text)]",children:i("assignments.unsavedChanges")})})]})}const ie={viewer:{nameKey:"assignments.templates.viewer.name",descriptionKey:"assignments.templates.viewer.description",icon:n.Eye,color:"blue",permissions:["*.read"]},member:{nameKey:"assignments.templates.member.name",descriptionKey:"assignments.templates.member.description",icon:n.User,color:"green",permissions:["*.read","*.create"]},contributor:{nameKey:"assignments.templates.contributor.name",descriptionKey:"assignments.templates.contributor.description",icon:n.Pencil,color:"orange",permissions:["*.read","*.create","*.update"]},admin:{nameKey:"assignments.templates.admin.name",descriptionKey:"assignments.templates.admin.description",icon:n.ShieldCheck,color:"red",permissions:["*.*"]}},fe=[10,25,50],je=[10,15,20,25];function ye(){const{t:s}=le.useTranslation("admin"),{user:v}=J.useAuth(),[A,k]=l.useState(!1),[$,S]=l.useState(null),[b,O]=l.useState(25),[i,h]=l.useState(1),[M,P]=l.useState(10),[f,y]=l.useState(0),[N,T]=l.useState(new Set),[m,L]=l.useState(new Set),[I,D]=l.useState(!1),E=a=>{L(x=>{const d=new Set(x);return d.has(a)?d.delete(a):d.add(a),d}),h(1),y(0)},z=a=>{T(x=>{const d=new Set(x);return d.has(a)?d.delete(a):d.add(a),d})},q=l.useMemo(()=>v?J.hasFullAccess(v.permissions):!1,[v]),{loading:_,error:B,saveError:r,saving:u,roles:F,assignments:Z,filters:V,filteredRoles:W,filteredResources:K,hasChanges:Y,applications:ee,modules:ae,categories:ne,togglePermission:se,updateFilters:t,reloadData:o,resetChanges:c,clearSaveError:p,getPermissionInheritance:w}=J.usePermissionMatrix({canEditSystemRoles:q}),C=l.useCallback((a,x)=>{const d=x.permissions.filter(he=>{const oe=w(a,he.id);return oe.isDirect||oe.isInherited}),X=d.length,pe=x.totalPermissions;return X===0?"none":X===pe?"all":X===1&&d[0]?.action==="read"?"read-only":"some"},[w]),g=l.useMemo(()=>K.filter(a=>a.level==="module"),[K]),R=l.useMemo(()=>m.size===0?W:W.filter(a=>{for(const x of g){const d=C(a.id,x);if(m.has(d))return!0}return!1}),[W,g,m,C]),j=l.useMemo(()=>m.size===0?K:K.filter(a=>{if(a.level!=="module")return!0;for(const x of W){const d=C(x.id,a);if(m.has(d))return!0}return!1}),[K,W,m,C]),H=l.useMemo(()=>{let a=0;return Object.values(Z).forEach(x=>{a+=x.size}),a},[Z]),G=l.useMemo(()=>j.filter(a=>!(a.level!=="module"||N.has(a.applicationLabel))).length,[j,N]),te=l.useMemo(()=>j.filter(a=>a.level==="module").length,[j]),U=Math.ceil(G/b),ce=a=>{h(1),t(a)},de=a=>{O(a),h(1)},re=Math.ceil(R.length/M),me=a=>{P(a),y(0)},xe=async a=>{const x=ie[a];if(!x)return;const d=prompt(s("assignments.enterRoleName"),s(x.nameKey));if(d)try{S(null),await J.adminApi.roles.create({name:d,description:s(x.descriptionKey),permissionIds:[]}),k(!1),await o()}catch(X){S(X instanceof Error?X.message:"Failed to create role from template")}},ue=()=>{h(1),t({selectedRoleIds:[],resourceSearch:"",applicationFilter:"all",moduleFilter:"all"})};return _?e.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:e.jsxs("div",{className:"text-center",children:[e.jsx(n.Loader2,{className:"h-8 w-8 animate-spin text-[var(--color-accent-500)] mx-auto mb-4"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:s("assignments.loading")})]})}):B?e.jsx("div",{className:"p-6",children:e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)] p-4",children:e.jsxs("div",{className:"flex",children:[e.jsx(n.AlertCircle,{className:"h-5 w-5 text-[var(--error-text)]"}),e.jsxs("div",{className:"ml-3",children:[e.jsx("h3",{className:"text-sm font-medium text-[var(--error-text)]",children:s("common.error")}),e.jsx("div",{className:"mt-2 text-sm text-[var(--error-text)] opacity-80",children:e.jsx("p",{children:B})})]})]})})}):e.jsxs("div",{className:"p-6 space-y-4",children:[e.jsx(J.Breadcrumb,{items:[{label:s("header.title"),href:"/administration"},{label:s("assignments.title","Assignments")}]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:s("assignments.title")}),e.jsx("p",{className:"mt-1 text-sm text-[var(--text-secondary)]",children:s("assignments.subtitle")})]}),e.jsx("div",{className:"flex items-center gap-3 flex-shrink-0",children:e.jsxs("button",{type:"button",onClick:()=>k(!0),className:"inline-flex items-center px-4 py-2 border border-[var(--border-color)] text-sm font-medium rounded-[var(--radius-button)] text-[var(--text-secondary)] bg-[var(--bg-card)] hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsx(n.Sparkles,{className:"h-4 w-4 mr-2"}),s("assignments.createFromTemplate")]})})]}),r&&e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--error-bg)] p-3 border border-[var(--error-border)]",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx(n.AlertCircle,{className:"h-4 w-4 text-[var(--error-text)]"}),e.jsx("p",{className:"ml-2 text-sm text-[var(--error-text)]",children:r}),e.jsx("button",{type:"button",onClick:p,className:"ml-auto text-sm text-[var(--error-text)] hover:opacity-80 font-medium",children:s("common.dismiss")})]})}),(Y||u)&&e.jsx("div",{className:"rounded-[var(--radius-card)] bg-[var(--warning-bg)] p-3 border border-[var(--warning-border)]",children:e.jsxs("div",{className:"flex items-center",children:[u?e.jsx(n.Loader2,{className:"h-4 w-4 text-[var(--warning-dot)] animate-spin"}):e.jsx(n.Info,{className:"h-4 w-4 text-[var(--warning-dot)]"}),e.jsx("p",{className:"ml-2 text-sm text-[var(--warning-text)]",children:s(u?"assignments.saving":"assignments.autoSaveActive")}),!u&&e.jsx("button",{type:"button",onClick:c,className:"ml-auto text-sm text-[var(--warning-text)] hover:opacity-80 font-medium",children:s("assignments.discardChanges")})]})}),e.jsx(be,{filters:V,roles:F,categories:ne,applications:ee,modules:ae,hasChanges:Y,onFilterChange:ce,onReset:ue}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 py-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] dark:bg-[var(--color-accent-900)] dark:text-[var(--color-accent-300)]",children:[R.length," ",s("assignments.roles")]}),e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--bg-tertiary)] text-[var(--text-secondary)]",children:[G,"/",te," ",s("assignments.modules")]}),e.jsxs("span",{className:"px-2.5 py-1 text-xs font-semibold rounded-full bg-[var(--success-bg)] text-[var(--success-text)] border border-[var(--success-border)]",children:[H," ",s("assignments.permissionsAssigned")]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-[var(--text-secondary)] border-l border-[var(--border-color)] pl-4",children:[e.jsxs("span",{children:[s("assignments.rolesPerPage"),":"]}),e.jsx("select",{value:M,onChange:a=>me(Number(a.target.value)),className:"px-2 py-1 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded text-[var(--text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)]",children:je.map(a=>e.jsx("option",{value:a,children:a},a))}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[f*M+1,"-",Math.min((f+1)*M,R.length)," / ",R.length]}),re>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>y(a=>Math.max(0,a-1)),disabled:f===0,className:"p-1 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronLeft,{className:"h-3.5 w-3.5"})}),e.jsxs("span",{className:"text-xs min-w-[50px] text-center",children:[f+1," / ",re]}),e.jsx("button",{onClick:()=>y(a=>Math.min(re-1,a+1)),disabled:f>=re-1,className:"p-1 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronRight,{className:"h-3.5 w-3.5"})})]})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("button",{onClick:()=>E("none"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("none")?"bg-red-500/30 border-red-500 text-red-700 dark:text-red-300":"bg-red-500/10 border-red-500/30 text-red-600 dark:text-red-400 hover:bg-red-500/20 hover:border-red-500"}`,children:[e.jsx(n.Ban,{className:"h-3.5 w-3.5"}),s("assignments.none")]}),e.jsxs("button",{onClick:()=>E("read-only"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("read-only")?"bg-sky-500/30 border-sky-500 text-sky-700 dark:text-sky-300":"bg-sky-500/10 border-sky-500/30 text-sky-600 dark:text-sky-400 hover:bg-sky-500/20 hover:border-sky-500"}`,children:[e.jsx(n.Eye,{className:"h-3.5 w-3.5"}),s("assignments.readOnly")]}),e.jsxs("button",{onClick:()=>E("some"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("some")?"bg-amber-500/30 border-amber-500 text-amber-700 dark:text-amber-300":"bg-amber-500/10 border-amber-500/30 text-amber-600 dark:text-amber-400 hover:bg-amber-500/20 hover:border-amber-500"}`,children:[e.jsx(n.Star,{className:"h-3.5 w-3.5"}),s("assignments.partial")]}),e.jsxs("button",{onClick:()=>E("all"),className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-full border transition-colors cursor-pointer ${m.has("all")?"bg-emerald-500/30 border-emerald-500 text-emerald-700 dark:text-emerald-300":"bg-emerald-500/10 border-emerald-500/30 text-emerald-600 dark:text-emerald-400 hover:bg-emerald-500/20 hover:border-emerald-500"}`,children:[e.jsx(n.Check,{className:"h-3.5 w-3.5"}),s("assignments.complete")]}),m.size>0&&e.jsx("button",{onClick:()=>L(new Set),className:"text-xs text-[var(--color-accent-500)] hover:text-[var(--color-accent-600)] underline ml-2",children:s("assignments.clearFilters")})]})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--item-color-border)] rounded-[var(--radius-card)] overflow-hidden",children:[e.jsxs("button",{type:"button",onClick:()=>D(!I),className:"w-full flex items-center justify-between px-4 py-2.5 text-sm font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(n.BookOpen,{className:"h-4 w-4 text-[var(--color-accent-500)]"}),e.jsx("span",{children:s("assignments.guide.title")})]}),I?e.jsx(n.ChevronUp,{className:"h-4 w-4 text-[var(--text-muted)]"}):e.jsx(n.ChevronDown,{className:"h-4 w-4 text-[var(--text-muted)]"})]}),I&&e.jsx("div",{className:"px-4 pb-4 border-t border-[var(--item-color-border)]",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 pt-3",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-[var(--text-primary)] uppercase tracking-wider mb-2",children:s("assignments.guide.colorLegendTitle")}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-red-500/10 border border-red-500/20 text-red-600 dark:text-red-400",children:e.jsx(n.Ban,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.noneDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-sky-500/20 border border-sky-500/30 text-sky-700 dark:text-sky-300",children:e.jsx(n.Eye,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.readOnlyDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-amber-500/20 border border-amber-500/30 text-amber-700 dark:text-amber-300",children:e.jsx(n.Star,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.partialDesc")})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-emerald-500/20 border border-emerald-500/30 text-emerald-700 dark:text-emerald-300",children:e.jsx(n.Check,{className:"h-3 w-3"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s("assignments.guide.completeDesc")})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-semibold text-[var(--text-primary)] uppercase tracking-wider mb-2",children:s("assignments.guide.howToUseTitle")}),e.jsxs("ul",{className:"space-y-1.5 text-xs text-[var(--text-secondary)]",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.clickCell")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(n.Lock,{className:"h-3 w-3 flex-shrink-0 mt-0.5 text-[var(--warning-dot)]"}),s("assignments.guide.systemRoles")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.inheritance")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.autoSave")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[var(--color-accent-500)] mt-0.5",children:"•"}),s("assignments.guide.filterButtons")]})]})]})]})})]}),e.jsx("div",{className:"bg-[var(--bg-card)] shadow-[var(--shadow-md)] rounded-[var(--radius-card)] border border-[var(--item-color-border)]",children:e.jsx(ve,{roles:R,resources:j,assignments:Z,canEditSystemRoles:q,onTogglePermission:se,getPermissionInheritance:w,rolesPerPage:M,rolePageIndex:f,modulesPerPage:b,modulePageIndex:i-1,collapsedApps:N,onToggleApp:z,statusFilters:m})}),e.jsx("div",{className:"py-3 px-4 bg-[var(--bg-card)] rounded-[var(--radius-card)] border border-[var(--item-color-border)]",children:e.jsxs("div",{className:"flex items-center gap-3 text-sm text-[var(--text-secondary)]",children:[e.jsxs("span",{children:[s("assignments.itemsPerPage"),":"]}),e.jsx("select",{value:b,onChange:a=>de(Number(a.target.value)),className:"px-2 py-1 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded text-[var(--text-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--color-accent-500)]",children:fe.map(a=>e.jsx("option",{value:a,children:a},a))}),e.jsxs("span",{className:"text-[var(--text-muted)]",children:[(i-1)*b+1,"-",Math.min(i*b,G)," / ",G]}),U>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>h(a=>Math.max(1,a-1)),disabled:i===1,className:"p-1.5 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronLeft,{className:"h-4 w-4"})}),e.jsxs("span",{className:"text-sm min-w-[60px] text-center",children:[i," / ",U]}),e.jsx("button",{onClick:()=>h(a=>Math.min(U,a+1)),disabled:i>=U,className:"p-1.5 rounded border border-[var(--border-color)] bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:e.jsx(n.ChevronRight,{className:"h-4 w-4"})})]})]})}),A&&e.jsx("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:e.jsxs("div",{className:"flex items-center justify-center min-h-screen px-4 pt-4 pb-20 text-center sm:p-0",children:[e.jsx("button",{type:"button",className:"fixed inset-0 bg-black/50 transition-opacity",onClick:()=>k(!1),"aria-label":"Close modal"}),e.jsxs("div",{className:"inline-block align-bottom bg-[var(--bg-card)] rounded-[var(--radius-modal)] px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full sm:p-6 border border-[var(--border-color)]",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("h3",{className:"text-lg font-medium text-[var(--text-primary)]",children:s("assignments.createFromTemplate")}),e.jsx("p",{className:"mt-1 text-sm text-[var(--text-secondary)]",children:s("assignments.templateDescription")})]}),$&&e.jsx("div",{className:"mb-4 rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)] p-3",children:e.jsxs("div",{className:"flex",children:[e.jsx(n.AlertCircle,{className:"h-5 w-5 text-[var(--error-text)]"}),e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-[var(--error-text)]",children:$})})]})}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:Object.entries(ie).map(([a,x])=>{const d=x.icon;return e.jsx("button",{onClick:()=>xe(a),className:"relative p-4 rounded-[var(--radius-card)] border-2 text-left transition-all hover:shadow-lg hover:scale-105 border-[var(--border-color)] hover:border-[var(--color-accent-500)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(d,{className:"h-6 w-6 text-[var(--color-accent-500)]"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"text-sm font-medium text-[var(--text-primary)]",children:s(x.nameKey)}),e.jsx("p",{className:"mt-1 text-xs text-[var(--text-secondary)]",children:s(x.descriptionKey)})]})]})},a)})}),e.jsx("div",{className:"mt-5 sm:mt-6",children:e.jsx("button",{type:"button",onClick:()=>{k(!1),S(null)},className:"w-full inline-flex justify-center rounded-[var(--radius-button)] border border-[var(--border-color)] shadow-sm px-4 py-2 bg-[var(--bg-secondary)] text-base font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-colors",children:s("common.cancel")})})]})]})})]})}exports.AssignmentsPage=ye;
2
+ //# sourceMappingURL=AssignmentsPage-CPeKJjyK.js.map