@atlashub/smartstack 3.29.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 (322) hide show
  1. package/dist/chunks/{AgentSkillsPage-ChykpPZx.js → AgentSkillsPage-CDMhqrhE.js} +2 -2
  2. package/dist/chunks/{AgentSkillsPage-ChykpPZx.js.map → AgentSkillsPage-CDMhqrhE.js.map} +1 -1
  3. package/dist/chunks/{AgentSkillsPage-ABpqnnyK.js → AgentSkillsPage-DcvOMm5k.js} +2 -2
  4. package/dist/chunks/{AgentSkillsPage-ABpqnnyK.js.map → AgentSkillsPage-DcvOMm5k.js.map} +1 -1
  5. package/dist/chunks/{AgentWorkloadPage-BltzNlXI.js → AgentWorkloadPage-DYBPNzjQ.js} +2 -2
  6. package/dist/chunks/{AgentWorkloadPage-BltzNlXI.js.map → AgentWorkloadPage-DYBPNzjQ.js.map} +1 -1
  7. package/dist/chunks/{AgentWorkloadPage-BI5QWJyQ.js → AgentWorkloadPage-YpJSDaWc.js} +2 -2
  8. package/dist/chunks/{AgentWorkloadPage-BI5QWJyQ.js.map → AgentWorkloadPage-YpJSDaWc.js.map} +1 -1
  9. package/dist/chunks/{ApiCatalogDetailPage-BaheZKBq.js → ApiCatalogDetailPage-9r1axtCg.js} +3 -3
  10. package/dist/chunks/{ApiCatalogDetailPage-BaheZKBq.js.map → ApiCatalogDetailPage-9r1axtCg.js.map} +1 -1
  11. package/dist/chunks/{ApiCatalogDetailPage-CsRxlHwO.js → ApiCatalogDetailPage-TjCQ8_A8.js} +2 -2
  12. package/dist/chunks/{ApiCatalogDetailPage-CsRxlHwO.js.map → ApiCatalogDetailPage-TjCQ8_A8.js.map} +1 -1
  13. package/dist/chunks/{ApiCatalogPage-B0yIz8-U.js → ApiCatalogPage-COxazTnz.js} +2 -2
  14. package/dist/chunks/{ApiCatalogPage-B0yIz8-U.js.map → ApiCatalogPage-COxazTnz.js.map} +1 -1
  15. package/dist/chunks/{ApiCatalogPage-CqmmHpQ4.js → ApiCatalogPage-QRysH0pT.js} +2 -2
  16. package/dist/chunks/{ApiCatalogPage-CqmmHpQ4.js.map → ApiCatalogPage-QRysH0pT.js.map} +1 -1
  17. package/dist/chunks/{ApplicationDetailPage-CdT6KNd7.js → ApplicationDetailPage-Dbx01Ikm.js} +4 -4
  18. package/dist/chunks/{ApplicationDetailPage-CdT6KNd7.js.map → ApplicationDetailPage-Dbx01Ikm.js.map} +1 -1
  19. package/dist/chunks/{ApplicationDetailPage-CngD5JSN.js → ApplicationDetailPage-jSHy3MPz.js} +2 -2
  20. package/dist/chunks/{ApplicationDetailPage-CngD5JSN.js.map → ApplicationDetailPage-jSHy3MPz.js.map} +1 -1
  21. package/dist/chunks/{ApplicationsDashboardPage-1V4iQ6eY.js → ApplicationsDashboardPage-CclKc0wI.js} +3 -3
  22. package/dist/chunks/{ApplicationsDashboardPage-1V4iQ6eY.js.map → ApplicationsDashboardPage-CclKc0wI.js.map} +1 -1
  23. package/dist/chunks/{ApplicationsDashboardPage-DHmnjk2O.js → ApplicationsDashboardPage-CxWmOc1x.js} +2 -2
  24. package/dist/chunks/{ApplicationsDashboardPage-DHmnjk2O.js.map → ApplicationsDashboardPage-CxWmOc1x.js.map} +1 -1
  25. package/dist/chunks/{ApplicationsGridPage-CiMJFlB_.js → ApplicationsGridPage-BJXWXwyI.js} +2 -2
  26. package/dist/chunks/{ApplicationsGridPage-CiMJFlB_.js.map → ApplicationsGridPage-BJXWXwyI.js.map} +1 -1
  27. package/dist/chunks/{ApplicationsGridPage-Bo3NDnBF.js → ApplicationsGridPage-D2l8cM3o.js} +2 -2
  28. package/dist/chunks/{ApplicationsGridPage-Bo3NDnBF.js.map → ApplicationsGridPage-D2l8cM3o.js.map} +1 -1
  29. package/dist/chunks/{ApplicationsListPage-L2_S23aN.js → ApplicationsListPage-CMosl3my.js} +2 -2
  30. package/dist/chunks/{ApplicationsListPage-L2_S23aN.js.map → ApplicationsListPage-CMosl3my.js.map} +1 -1
  31. package/dist/chunks/{ApplicationsListPage-De8jQ1Cm.js → ApplicationsListPage-Dc6NGQ61.js} +2 -2
  32. package/dist/chunks/{ApplicationsListPage-De8jQ1Cm.js.map → ApplicationsListPage-Dc6NGQ61.js.map} +1 -1
  33. package/dist/chunks/{ApplicationsPage-DBq7_Sm8.js → ApplicationsPage-DH7tpMlF.js} +2 -2
  34. package/dist/chunks/{ApplicationsPage-DBq7_Sm8.js.map → ApplicationsPage-DH7tpMlF.js.map} +1 -1
  35. package/dist/chunks/{ApplicationsPage-CiNI-b0R.js → ApplicationsPage-DI-iMqoJ.js} +4 -4
  36. package/dist/chunks/{ApplicationsPage-CiNI-b0R.js.map → ApplicationsPage-DI-iMqoJ.js.map} +1 -1
  37. package/dist/chunks/{AssignmentRulesPage-C8rfUsMB.js → AssignmentRulesPage-B5UbujbZ.js} +2 -2
  38. package/dist/chunks/{AssignmentRulesPage-C8rfUsMB.js.map → AssignmentRulesPage-B5UbujbZ.js.map} +1 -1
  39. package/dist/chunks/{AssignmentRulesPage-DFsO4ZES.js → AssignmentRulesPage-E79QBSLb.js} +2 -2
  40. package/dist/chunks/{AssignmentRulesPage-DFsO4ZES.js.map → AssignmentRulesPage-E79QBSLb.js.map} +1 -1
  41. package/dist/chunks/{AssignmentsPage-COCikISI.js → AssignmentsPage-CDFaL1gT.js} +2 -2
  42. package/dist/chunks/{AssignmentsPage-COCikISI.js.map → AssignmentsPage-CDFaL1gT.js.map} +1 -1
  43. package/dist/chunks/{AssignmentsPage-78C_EBsw.js → AssignmentsPage-CPeKJjyK.js} +2 -2
  44. package/dist/chunks/{AssignmentsPage-78C_EBsw.js.map → AssignmentsPage-CPeKJjyK.js.map} +1 -1
  45. package/dist/chunks/{AuthCallbackPage-DqT6ueVi.js → AuthCallbackPage-BZ3Ocos5.js} +2 -2
  46. package/dist/chunks/{AuthCallbackPage-DqT6ueVi.js.map → AuthCallbackPage-BZ3Ocos5.js.map} +1 -1
  47. package/dist/chunks/{AuthCallbackPage-BF4bkTnR.js → AuthCallbackPage-Bml48QpH.js} +2 -2
  48. package/dist/chunks/{AuthCallbackPage-BF4bkTnR.js.map → AuthCallbackPage-Bml48QpH.js.map} +1 -1
  49. package/dist/chunks/{ConfirmEmailPage-DJy4idrf.js → ConfirmEmailPage-DP1XPaKK.js} +2 -2
  50. package/dist/chunks/{ConfirmEmailPage-DJy4idrf.js.map → ConfirmEmailPage-DP1XPaKK.js.map} +1 -1
  51. package/dist/chunks/{ConfirmEmailPage-Bh_K5qJn.js → ConfirmEmailPage-DyzslZ06.js} +2 -2
  52. package/dist/chunks/{ConfirmEmailPage-Bh_K5qJn.js.map → ConfirmEmailPage-DyzslZ06.js.map} +1 -1
  53. package/dist/chunks/{CreateSupportTicketPage-pL7jbG9o.js → CreateSupportTicketPage-Bz2KrMik.js} +2 -2
  54. package/dist/chunks/{CreateSupportTicketPage-pL7jbG9o.js.map → CreateSupportTicketPage-Bz2KrMik.js.map} +1 -1
  55. package/dist/chunks/{CreateSupportTicketPage-AVTwXbJd.js → CreateSupportTicketPage-hKjKM0Bh.js} +2 -2
  56. package/dist/chunks/{CreateSupportTicketPage-AVTwXbJd.js.map → CreateSupportTicketPage-hKjKM0Bh.js.map} +1 -1
  57. package/dist/chunks/{DashboardPage-DdQlTLw0.js → DashboardPage-B4nAd8Tj.js} +2 -2
  58. package/dist/chunks/{DashboardPage-DdQlTLw0.js.map → DashboardPage-B4nAd8Tj.js.map} +1 -1
  59. package/dist/chunks/{DashboardPage-DOitDfGV.js → DashboardPage-C9qgPBS-.js} +3 -3
  60. package/dist/chunks/{DashboardPage-DOitDfGV.js.map → DashboardPage-C9qgPBS-.js.map} +1 -1
  61. package/dist/chunks/{DashboardPage-C55mIiB6.js → DashboardPage-CjbNGMo1.js} +3 -3
  62. package/dist/chunks/{DashboardPage-C55mIiB6.js.map → DashboardPage-CjbNGMo1.js.map} +1 -1
  63. package/dist/chunks/{DashboardPage-CcCnUl7s.js → DashboardPage-rN7IFlTR.js} +2 -2
  64. package/dist/chunks/{DashboardPage-CcCnUl7s.js.map → DashboardPage-rN7IFlTR.js.map} +1 -1
  65. package/dist/chunks/{EscalationConfigPage-DRr55328.js → EscalationConfigPage-CGv2L62M.js} +2 -2
  66. package/dist/chunks/{EscalationConfigPage-DRr55328.js.map → EscalationConfigPage-CGv2L62M.js.map} +1 -1
  67. package/dist/chunks/{EscalationConfigPage-DNnZftCH.js → EscalationConfigPage-DpYDmsgw.js} +2 -2
  68. package/dist/chunks/{EscalationConfigPage-DNnZftCH.js.map → EscalationConfigPage-DpYDmsgw.js.map} +1 -1
  69. package/dist/chunks/{ForceChangePasswordPage-1SCOPIqK.js → ForceChangePasswordPage-CLI_fpF4.js} +2 -2
  70. package/dist/chunks/{ForceChangePasswordPage-1SCOPIqK.js.map → ForceChangePasswordPage-CLI_fpF4.js.map} +1 -1
  71. package/dist/chunks/{ForceChangePasswordPage-DBeG_HRO.js → ForceChangePasswordPage-Db6sOrZN.js} +2 -2
  72. package/dist/chunks/{ForceChangePasswordPage-DBeG_HRO.js.map → ForceChangePasswordPage-Db6sOrZN.js.map} +1 -1
  73. package/dist/chunks/{ForgotPasswordPage-Dlb6wKfC.js → ForgotPasswordPage-BhMz2B6A.js} +2 -2
  74. package/dist/chunks/{ForgotPasswordPage-Dlb6wKfC.js.map → ForgotPasswordPage-BhMz2B6A.js.map} +1 -1
  75. package/dist/chunks/{ForgotPasswordPage-DffYfXva.js → ForgotPasswordPage-D06arMXO.js} +2 -2
  76. package/dist/chunks/{ForgotPasswordPage-DffYfXva.js.map → ForgotPasswordPage-D06arMXO.js.map} +1 -1
  77. package/dist/chunks/{GroupDetailPage-C9nRbeHI.js → GroupDetailPage-BCM8KBCd.js} +5 -5
  78. package/dist/chunks/{GroupDetailPage-C9nRbeHI.js.map → GroupDetailPage-BCM8KBCd.js.map} +1 -1
  79. package/dist/chunks/{GroupDetailPage-CPPUWzXf.js → GroupDetailPage-CGMV3bWt.js} +2 -2
  80. package/dist/chunks/{GroupDetailPage-CPPUWzXf.js.map → GroupDetailPage-CGMV3bWt.js.map} +1 -1
  81. package/dist/chunks/{MyAccessRequestsPage-BAX0xwJX.js → MyAccessRequestsPage-BBrwEomx.js} +2 -2
  82. package/dist/chunks/{MyAccessRequestsPage-BAX0xwJX.js.map → MyAccessRequestsPage-BBrwEomx.js.map} +1 -1
  83. package/dist/chunks/{MyAccessRequestsPage-BMY1V631.js → MyAccessRequestsPage-CrlWe3gd.js} +2 -2
  84. package/dist/chunks/{MyAccessRequestsPage-BMY1V631.js.map → MyAccessRequestsPage-CrlWe3gd.js.map} +1 -1
  85. package/dist/chunks/{MyTenantsPage-BHtp67SD.js → MyTenantsPage-BOV34_rJ.js} +3 -3
  86. package/dist/chunks/{MyTenantsPage-BHtp67SD.js.map → MyTenantsPage-BOV34_rJ.js.map} +1 -1
  87. package/dist/chunks/{MyTenantsPage-Bbn4HxN2.js → MyTenantsPage-CK4-klmd.js} +2 -2
  88. package/dist/chunks/{MyTenantsPage-Bbn4HxN2.js.map → MyTenantsPage-CK4-klmd.js.map} +1 -1
  89. package/dist/chunks/{MyTicketsPage-D9IGVofj.js → MyTicketsPage-CFZ1G4dG.js} +2 -2
  90. package/dist/chunks/{MyTicketsPage-D9IGVofj.js.map → MyTicketsPage-CFZ1G4dG.js.map} +1 -1
  91. package/dist/chunks/{MyTicketsPage-BvZeiTXu.js → MyTicketsPage-DuhpwhZx.js} +2 -2
  92. package/dist/chunks/{MyTicketsPage-BvZeiTXu.js.map → MyTicketsPage-DuhpwhZx.js.map} +1 -1
  93. package/dist/chunks/{NavigationAppsPage-ChtMK1yt.js → NavigationAppsPage-BnNQRfBP.js} +2 -2
  94. package/dist/chunks/{NavigationAppsPage-ChtMK1yt.js.map → NavigationAppsPage-BnNQRfBP.js.map} +1 -1
  95. package/dist/chunks/{NavigationAppsPage-DiPBCsAF.js → NavigationAppsPage-DdJxEoTZ.js} +2 -2
  96. package/dist/chunks/{NavigationAppsPage-DiPBCsAF.js.map → NavigationAppsPage-DdJxEoTZ.js.map} +1 -1
  97. package/dist/chunks/{NotificationsPage-BCnL9oPb.js → NotificationsPage-BllOlagk.js} +2 -2
  98. package/dist/chunks/{NotificationsPage-BCnL9oPb.js.map → NotificationsPage-BllOlagk.js.map} +1 -1
  99. package/dist/chunks/{NotificationsPage-BxCiGzHk.js → NotificationsPage-D1T_ozHl.js} +2 -2
  100. package/dist/chunks/{NotificationsPage-BxCiGzHk.js.map → NotificationsPage-D1T_ozHl.js.map} +1 -1
  101. package/dist/chunks/{OnboardingWizardPage-CV_cxq7k.js → OnboardingWizardPage-CioLaCYz.js} +2 -2
  102. package/dist/chunks/{OnboardingWizardPage-CV_cxq7k.js.map → OnboardingWizardPage-CioLaCYz.js.map} +1 -1
  103. package/dist/chunks/{OnboardingWizardPage-Du-tQ2ag.js → OnboardingWizardPage-CrAQt7qL.js} +2 -2
  104. package/dist/chunks/{OnboardingWizardPage-Du-tQ2ag.js.map → OnboardingWizardPage-CrAQt7qL.js.map} +1 -1
  105. package/dist/chunks/{PermissionDetailPage-C1iuWv0G.js → PermissionDetailPage-BIG78-1-.js} +2 -2
  106. package/dist/chunks/{PermissionDetailPage-C1iuWv0G.js.map → PermissionDetailPage-BIG78-1-.js.map} +1 -1
  107. package/dist/chunks/{PermissionDetailPage-Ds4Jt1os.js → PermissionDetailPage-CvPqugYu.js} +2 -2
  108. package/dist/chunks/{PermissionDetailPage-Ds4Jt1os.js.map → PermissionDetailPage-CvPqugYu.js.map} +1 -1
  109. package/dist/chunks/{PermissionsPage-BGI2nxCn.js → PermissionsPage-CDSuc8vw.js} +2 -2
  110. package/dist/chunks/{PermissionsPage-BGI2nxCn.js.map → PermissionsPage-CDSuc8vw.js.map} +1 -1
  111. package/dist/chunks/{PermissionsPage-sauv7ct1.js → PermissionsPage-XaOrGrPZ.js} +2 -2
  112. package/dist/chunks/{PermissionsPage-sauv7ct1.js.map → PermissionsPage-XaOrGrPZ.js.map} +1 -1
  113. package/dist/chunks/{PortalDashboardPage-CQWEcghD.js → PortalDashboardPage-BsWVXkMe.js} +2 -2
  114. package/dist/chunks/{PortalDashboardPage-CQWEcghD.js.map → PortalDashboardPage-BsWVXkMe.js.map} +1 -1
  115. package/dist/chunks/{PortalDashboardPage-2kCbJw9w.js → PortalDashboardPage-oSD7oQhJ.js} +2 -2
  116. package/dist/chunks/{PortalDashboardPage-2kCbJw9w.js.map → PortalDashboardPage-oSD7oQhJ.js.map} +1 -1
  117. package/dist/chunks/{PreferencesPage-Bu4gaDRb.js → PreferencesPage-DD0_XWdT.js} +2 -2
  118. package/dist/chunks/{PreferencesPage-Bu4gaDRb.js.map → PreferencesPage-DD0_XWdT.js.map} +1 -1
  119. package/dist/chunks/{PreferencesPage-Dbg0bEYD.js → PreferencesPage-ca2BOdoH.js} +2 -2
  120. package/dist/chunks/{PreferencesPage-Dbg0bEYD.js.map → PreferencesPage-ca2BOdoH.js.map} +1 -1
  121. package/dist/chunks/{ProfilePage-DfiBhOUt.js → ProfilePage-Bex_JN5N.js} +2 -2
  122. package/dist/chunks/{ProfilePage-DfiBhOUt.js.map → ProfilePage-Bex_JN5N.js.map} +1 -1
  123. package/dist/chunks/{ProfilePage-C5QS7tsh.js → ProfilePage-C8tUIOnb.js} +2 -2
  124. package/dist/chunks/{ProfilePage-C5QS7tsh.js.map → ProfilePage-C8tUIOnb.js.map} +1 -1
  125. package/dist/chunks/{ReferencesManagementPage-C0RgHbJb.js → ReferencesManagementPage-B-FXS2ln.js} +2 -2
  126. package/dist/chunks/{ReferencesManagementPage-C0RgHbJb.js.map → ReferencesManagementPage-B-FXS2ln.js.map} +1 -1
  127. package/dist/chunks/{ReferencesManagementPage-Bs0mapj8.js → ReferencesManagementPage-C8KZprkI.js} +3 -3
  128. package/dist/chunks/{ReferencesManagementPage-Bs0mapj8.js.map → ReferencesManagementPage-C8KZprkI.js.map} +1 -1
  129. package/dist/chunks/{RegisterPage-DoeIiJt0.js → RegisterPage-BYt__zKJ.js} +2 -2
  130. package/dist/chunks/{RegisterPage-DoeIiJt0.js.map → RegisterPage-BYt__zKJ.js.map} +1 -1
  131. package/dist/chunks/{RegisterPage-DS1chV_A.js → RegisterPage-MWcVu-LY.js} +2 -2
  132. package/dist/chunks/{RegisterPage-DS1chV_A.js.map → RegisterPage-MWcVu-LY.js.map} +1 -1
  133. package/dist/chunks/{ResetPasswordPage-3KEk3zj5.js → ResetPasswordPage-DaJiMj5Z.js} +2 -2
  134. package/dist/chunks/{ResetPasswordPage-3KEk3zj5.js.map → ResetPasswordPage-DaJiMj5Z.js.map} +1 -1
  135. package/dist/chunks/{ResetPasswordPage-C_VQSFB5.js → ResetPasswordPage-rCLUIj_T.js} +2 -2
  136. package/dist/chunks/{ResetPasswordPage-C_VQSFB5.js.map → ResetPasswordPage-rCLUIj_T.js.map} +1 -1
  137. package/dist/chunks/{ResolutionModal-S6URD--N.js → ResolutionModal-DeuPnLWg.js} +2 -2
  138. package/dist/chunks/{ResolutionModal-S6URD--N.js.map → ResolutionModal-DeuPnLWg.js.map} +1 -1
  139. package/dist/chunks/{ResolutionModal-BzI1x79r.js → ResolutionModal-j7Rp6apG.js} +2 -2
  140. package/dist/chunks/{ResolutionModal-BzI1x79r.js.map → ResolutionModal-j7Rp6apG.js.map} +1 -1
  141. package/dist/chunks/{RoleDetailPage-SXK9cq_3.js → RoleDetailPage-CLtZWX17.js} +3 -3
  142. package/dist/chunks/{RoleDetailPage-SXK9cq_3.js.map → RoleDetailPage-CLtZWX17.js.map} +1 -1
  143. package/dist/chunks/{RoleDetailPage-DvEEWPKr.js → RoleDetailPage-TGyGmLMM.js} +2 -2
  144. package/dist/chunks/{RoleDetailPage-DvEEWPKr.js.map → RoleDetailPage-TGyGmLMM.js.map} +1 -1
  145. package/dist/chunks/{RolesPage-C5gYJxAl.js → RolesPage-C0c5G9e7.js} +2 -2
  146. package/dist/chunks/{RolesPage-C5gYJxAl.js.map → RolesPage-C0c5G9e7.js.map} +1 -1
  147. package/dist/chunks/{RolesPage-B75lCugt.js → RolesPage-Dm03fBBf.js} +2 -2
  148. package/dist/chunks/{RolesPage-B75lCugt.js.map → RolesPage-Dm03fBBf.js.map} +1 -1
  149. package/dist/chunks/{SlaConfigPage-BqXHATb6.js → SlaConfigPage-B4WDzEKi.js} +2 -2
  150. package/dist/chunks/{SlaConfigPage-BqXHATb6.js.map → SlaConfigPage-B4WDzEKi.js.map} +1 -1
  151. package/dist/chunks/{SlaConfigPage-DZ4P1FFW.js → SlaConfigPage-Cwo9NwxH.js} +2 -2
  152. package/dist/chunks/{SlaConfigPage-DZ4P1FFW.js.map → SlaConfigPage-Cwo9NwxH.js.map} +1 -1
  153. package/dist/chunks/{SupportPermissionsPage-DW7KJjYK.js → SupportPermissionsPage-CL12dFy-.js} +2 -2
  154. package/dist/chunks/{SupportPermissionsPage-DW7KJjYK.js.map → SupportPermissionsPage-CL12dFy-.js.map} +1 -1
  155. package/dist/chunks/{SupportPermissionsPage-B4xy_pCQ.js → SupportPermissionsPage-CneIhl30.js} +2 -2
  156. package/dist/chunks/{SupportPermissionsPage-B4xy_pCQ.js.map → SupportPermissionsPage-CneIhl30.js.map} +1 -1
  157. package/dist/chunks/{TemplatesPage-m5-sLJ7F.js → TemplatesPage-DStKmwHT.js} +2 -2
  158. package/dist/chunks/{TemplatesPage-m5-sLJ7F.js.map → TemplatesPage-DStKmwHT.js.map} +1 -1
  159. package/dist/chunks/{TemplatesPage-DZa0PQTE.js → TemplatesPage-X4Rrhs9p.js} +2 -2
  160. package/dist/chunks/{TemplatesPage-DZa0PQTE.js.map → TemplatesPage-X4Rrhs9p.js.map} +1 -1
  161. package/dist/chunks/{TenantCard-CqfifMrM.js → TenantCard-BUBYWtvR.js} +2 -2
  162. package/dist/chunks/{TenantCard-CqfifMrM.js.map → TenantCard-BUBYWtvR.js.map} +1 -1
  163. package/dist/chunks/{TenantCard-BJQi7Oew.js → TenantCard-CAgiB-NG.js} +2 -2
  164. package/dist/chunks/{TenantCard-BJQi7Oew.js.map → TenantCard-CAgiB-NG.js.map} +1 -1
  165. package/dist/chunks/{TenantScopeSelector-CdiYJvuH.js → TenantScopeSelector-B9vtpIZx.js} +2 -2
  166. package/dist/chunks/{TenantScopeSelector-CdiYJvuH.js.map → TenantScopeSelector-B9vtpIZx.js.map} +1 -1
  167. package/dist/chunks/{TenantScopeSelector-Cl5DD318.js → TenantScopeSelector-BAoah-mL.js} +2 -2
  168. package/dist/chunks/{TenantScopeSelector-Cl5DD318.js.map → TenantScopeSelector-BAoah-mL.js.map} +1 -1
  169. package/dist/chunks/{TicketDetailPage-C1UuMxD8.js → TicketDetailPage-BFcP4X8s.js} +2 -2
  170. package/dist/chunks/{TicketDetailPage-C1UuMxD8.js.map → TicketDetailPage-BFcP4X8s.js.map} +1 -1
  171. package/dist/chunks/{TicketDetailPage-BOC9rHu3.js → TicketDetailPage-D_Npnt4A.js} +2 -2
  172. package/dist/chunks/{TicketDetailPage-BOC9rHu3.js.map → TicketDetailPage-D_Npnt4A.js.map} +1 -1
  173. package/dist/chunks/{TicketsPage-BjaN4Baq.js → TicketsPage-DBP9kalU.js} +2 -2
  174. package/dist/chunks/{TicketsPage-BjaN4Baq.js.map → TicketsPage-DBP9kalU.js.map} +1 -1
  175. package/dist/chunks/{TicketsPage-BCgHZA-m.js → TicketsPage-p21DLhUb.js} +2 -2
  176. package/dist/chunks/{TicketsPage-BCgHZA-m.js.map → TicketsPage-p21DLhUb.js.map} +1 -1
  177. package/dist/chunks/{UserCreateTicketPage-ChQL1mVY.js → UserCreateTicketPage-DOwShnG8.js} +3 -3
  178. package/dist/chunks/UserCreateTicketPage-DOwShnG8.js.map +1 -0
  179. package/dist/chunks/{UserCreateTicketPage-DkjsHeV7.js → UserCreateTicketPage-lvlvp2u6.js} +48 -48
  180. package/dist/chunks/UserCreateTicketPage-lvlvp2u6.js.map +1 -0
  181. package/dist/chunks/{UserDashboardPage-81-3GJAQ.js → UserDashboardPage-C_tm7Pld.js} +2 -2
  182. package/dist/chunks/{UserDashboardPage-81-3GJAQ.js.map → UserDashboardPage-C_tm7Pld.js.map} +1 -1
  183. package/dist/chunks/{UserDashboardPage-BMYrtF3o.js → UserDashboardPage-Dp6q6FEW.js} +2 -2
  184. package/dist/chunks/{UserDashboardPage-BMYrtF3o.js.map → UserDashboardPage-Dp6q6FEW.js.map} +1 -1
  185. package/dist/chunks/{UserDetailPage-D6oCH2eS.js → UserDetailPage-6grZ6gmV.js} +5 -5
  186. package/dist/chunks/{UserDetailPage-D6oCH2eS.js.map → UserDetailPage-6grZ6gmV.js.map} +1 -1
  187. package/dist/chunks/{UserDetailPage-BMW8jAWG.js → UserDetailPage-DXLxO7LF.js} +2 -2
  188. package/dist/chunks/{UserDetailPage-BMW8jAWG.js.map → UserDetailPage-DXLxO7LF.js.map} +1 -1
  189. package/dist/chunks/{UserTicketDetailPage-ZH2BDWBt.js → UserTicketDetailPage-Ch9IfCPo.js} +2 -2
  190. package/dist/chunks/{UserTicketDetailPage-ZH2BDWBt.js.map → UserTicketDetailPage-Ch9IfCPo.js.map} +1 -1
  191. package/dist/chunks/{UserTicketDetailPage-Z_myXXJ0.js → UserTicketDetailPage-a4II5VEE.js} +2 -2
  192. package/dist/chunks/{UserTicketDetailPage-Z_myXXJ0.js.map → UserTicketDetailPage-a4II5VEE.js.map} +1 -1
  193. package/dist/chunks/{UsersGroupsPage-B8Ka6uRa.js → UsersGroupsPage-B7Er0V4l.js} +3 -3
  194. package/dist/chunks/{UsersGroupsPage-B8Ka6uRa.js.map → UsersGroupsPage-B7Er0V4l.js.map} +1 -1
  195. package/dist/chunks/{UsersGroupsPage-xJmGib8b.js → UsersGroupsPage-BeAv4QfV.js} +2 -2
  196. package/dist/chunks/{UsersGroupsPage-xJmGib8b.js.map → UsersGroupsPage-BeAv4QfV.js.map} +1 -1
  197. package/dist/chunks/{UsersPage-CQ38akZ_.js → UsersPage-0M1FLqOe.js} +2 -2
  198. package/dist/chunks/{UsersPage-CQ38akZ_.js.map → UsersPage-0M1FLqOe.js.map} +1 -1
  199. package/dist/chunks/{UsersPage-Bd2-vl39.js → UsersPage-ZR9r9vvf.js} +2 -2
  200. package/dist/chunks/{UsersPage-Bd2-vl39.js.map → UsersPage-ZR9r9vvf.js.map} +1 -1
  201. package/dist/chunks/{accessRequestsApi-DguOx0q0.js → accessRequestsApi-BJH8EE1K.js} +2 -2
  202. package/dist/chunks/{accessRequestsApi-DguOx0q0.js.map → accessRequestsApi-BJH8EE1K.js.map} +1 -1
  203. package/dist/chunks/{accessRequestsApi-COtWo9kC.js → accessRequestsApi-CBpF5d54.js} +2 -2
  204. package/dist/chunks/{accessRequestsApi-COtWo9kC.js.map → accessRequestsApi-CBpF5d54.js.map} +1 -1
  205. package/dist/chunks/{aiApi-CITiWGYX.js → aiApi-CkkWAvNB.js} +2 -2
  206. package/dist/chunks/{aiApi-CITiWGYX.js.map → aiApi-CkkWAvNB.js.map} +1 -1
  207. package/dist/chunks/{aiApi-BmZsud6O.js → aiApi-Dl7a2lWz.js} +2 -2
  208. package/dist/chunks/{aiApi-BmZsud6O.js.map → aiApi-Dl7a2lWz.js.map} +1 -1
  209. package/dist/chunks/{applicationAnalyticsApi-D62lc6z4.js → applicationAnalyticsApi-BwcSE_H1.js} +2 -2
  210. package/dist/chunks/{applicationAnalyticsApi-D62lc6z4.js.map → applicationAnalyticsApi-BwcSE_H1.js.map} +1 -1
  211. package/dist/chunks/{applicationAnalyticsApi-BYoEJzSN.js → applicationAnalyticsApi-DKMmDvWk.js} +2 -2
  212. package/dist/chunks/{applicationAnalyticsApi-BYoEJzSN.js.map → applicationAnalyticsApi-DKMmDvWk.js.map} +1 -1
  213. package/dist/chunks/auth-Ca2Rn6on.js +2 -0
  214. package/dist/chunks/auth-Ca2Rn6on.js.map +1 -0
  215. package/dist/chunks/auth-ClNTDOqm.js +18 -0
  216. package/dist/chunks/auth-ClNTDOqm.js.map +1 -0
  217. package/dist/chunks/auth-DECnMZjF.js +18 -0
  218. package/dist/chunks/auth-DECnMZjF.js.map +1 -0
  219. package/dist/chunks/auth-DPvxdqy4.js +18 -0
  220. package/dist/chunks/auth-DPvxdqy4.js.map +1 -0
  221. package/dist/chunks/auth-HzvnTaOm.js +2 -0
  222. package/dist/chunks/auth-HzvnTaOm.js.map +1 -0
  223. package/dist/chunks/auth-M6aNTKCH.js +2 -0
  224. package/dist/chunks/auth-M6aNTKCH.js.map +1 -0
  225. package/dist/chunks/auth-UHnAu6_e.js +2 -0
  226. package/dist/chunks/auth-UHnAu6_e.js.map +1 -0
  227. package/dist/chunks/auth-YrujJY7m.js +18 -0
  228. package/dist/chunks/auth-YrujJY7m.js.map +1 -0
  229. package/dist/chunks/{groupsApi-3CR-_g5b.js → groupsApi-BzDV3_Jc.js} +2 -2
  230. package/dist/chunks/{groupsApi-3CR-_g5b.js.map → groupsApi-BzDV3_Jc.js.map} +1 -1
  231. package/dist/chunks/{groupsApi-BUyBgf_N.js → groupsApi-CQ4vFMdP.js} +2 -2
  232. package/dist/chunks/{groupsApi-BUyBgf_N.js.map → groupsApi-CQ4vFMdP.js.map} +1 -1
  233. package/dist/chunks/{index-BIqcvvbh.js → index-BBmMbSZV.js} +9 -8
  234. package/dist/chunks/index-BBmMbSZV.js.map +1 -0
  235. package/dist/chunks/{index-_g82N2nb.js → index-BLlESTfA.js} +2 -2
  236. package/dist/chunks/{index-_g82N2nb.js.map → index-BLlESTfA.js.map} +1 -1
  237. package/dist/chunks/{index-DEOBhXS_.js → index-BPMjxWVx.js} +2 -2
  238. package/dist/chunks/{index-DEOBhXS_.js.map → index-BPMjxWVx.js.map} +1 -1
  239. package/dist/chunks/{index-Czk12A3G.js → index-CEbwdURd.js} +2 -2
  240. package/dist/chunks/{index-Czk12A3G.js.map → index-CEbwdURd.js.map} +1 -1
  241. package/dist/chunks/{index-BOKR3bw6.js → index-CUZygY5Q.js} +2 -2
  242. package/dist/chunks/{index-BOKR3bw6.js.map → index-CUZygY5Q.js.map} +1 -1
  243. package/dist/chunks/{index-IJR_91Yt.js → index-Ci1SqFiY.js} +2 -2
  244. package/dist/chunks/{index-IJR_91Yt.js.map → index-Ci1SqFiY.js.map} +1 -1
  245. package/dist/chunks/{index-Br2wsGE8.js → index-Cib93xtp.js} +2 -2
  246. package/dist/chunks/{index-Br2wsGE8.js.map → index-Cib93xtp.js.map} +1 -1
  247. package/dist/chunks/{index-BxHVPJ-j.js → index-CoHIgn5H.js} +2 -2
  248. package/dist/chunks/{index-BxHVPJ-j.js.map → index-CoHIgn5H.js.map} +1 -1
  249. package/dist/chunks/{index-DA5VyW0k.js → index-CpY95_ro.js} +2296 -2309
  250. package/dist/chunks/index-CpY95_ro.js.map +1 -0
  251. package/dist/chunks/{index-BMsjMCv9.js → index-D-2xSu5W.js} +3 -3
  252. package/dist/chunks/{index-BMsjMCv9.js.map → index-D-2xSu5W.js.map} +1 -1
  253. package/dist/chunks/{index-DIQ6Jmmq.js → index-D18t9DhC.js} +4 -4
  254. package/dist/chunks/{index-DIQ6Jmmq.js.map → index-D18t9DhC.js.map} +1 -1
  255. package/dist/chunks/index-DK5czlkn.js +48 -0
  256. package/dist/chunks/index-DK5czlkn.js.map +1 -0
  257. package/dist/chunks/{index-CxgEV-rT.js → index-DQd324n7.js} +2 -2
  258. package/dist/chunks/{index-CxgEV-rT.js.map → index-DQd324n7.js.map} +1 -1
  259. package/dist/chunks/{index-S-X8qFYW.js → index-Dbq-x5H9.js} +2 -2
  260. package/dist/chunks/{index-S-X8qFYW.js.map → index-Dbq-x5H9.js.map} +1 -1
  261. package/dist/chunks/{index-CNxx56kE.js → index-Det9dEaQ.js} +2 -2
  262. package/dist/chunks/{index-CNxx56kE.js.map → index-Det9dEaQ.js.map} +1 -1
  263. package/dist/chunks/{index-C1w97Ejz.js → index-bgT9XOKZ.js} +2 -2
  264. package/dist/chunks/{index-C1w97Ejz.js.map → index-bgT9XOKZ.js.map} +1 -1
  265. package/dist/chunks/index-h7ZrwrQg.js +2 -0
  266. package/dist/chunks/index-h7ZrwrQg.js.map +1 -0
  267. package/dist/chunks/{index-Djy4eIbB.js → index-k4USDz2P.js} +2 -2
  268. package/dist/chunks/{index-Djy4eIbB.js.map → index-k4USDz2P.js.map} +1 -1
  269. package/dist/chunks/{tenantIconMap-COKA97Ug.js → tenantIconMap-7ihIWxAh.js} +2 -2
  270. package/dist/chunks/{tenantIconMap-COKA97Ug.js.map → tenantIconMap-7ihIWxAh.js.map} +1 -1
  271. package/dist/chunks/{tenantIconMap-BuSQUUyZ.js → tenantIconMap-Dk6K-UTE.js} +2 -2
  272. package/dist/chunks/{tenantIconMap-BuSQUUyZ.js.map → tenantIconMap-Dk6K-UTE.js.map} +1 -1
  273. package/dist/chunks/{ticketingApi-C6EbupqP.js → ticketingApi-BCMKkzlv.js} +2 -2
  274. package/dist/chunks/{ticketingApi-C6EbupqP.js.map → ticketingApi-BCMKkzlv.js.map} +1 -1
  275. package/dist/chunks/{ticketingApi-DbREwHez.js → ticketingApi-Dwn7pl5z.js} +2 -2
  276. package/dist/chunks/{ticketingApi-DbREwHez.js.map → ticketingApi-Dwn7pl5z.js.map} +1 -1
  277. package/dist/chunks/{useAccessRequests-vucIb3_w.js → useAccessRequests-Du7CvowE.js} +3 -3
  278. package/dist/chunks/{useAccessRequests-vucIb3_w.js.map → useAccessRequests-Du7CvowE.js.map} +1 -1
  279. package/dist/chunks/{useAccessRequests-C0dY6y-4.js → useAccessRequests-gJ7yhWyi.js} +2 -2
  280. package/dist/chunks/{useAccessRequests-C0dY6y-4.js.map → useAccessRequests-gJ7yhWyi.js.map} +1 -1
  281. package/dist/chunks/{useUserAccessRequests-Cj0nkesW.js → useUserAccessRequests-5wWea2Jg.js} +2 -2
  282. package/dist/chunks/{useUserAccessRequests-Cj0nkesW.js.map → useUserAccessRequests-5wWea2Jg.js.map} +1 -1
  283. package/dist/chunks/{useUserAccessRequests-BBcw1Rk9.js → useUserAccessRequests-Bk_v8egy.js} +2 -2
  284. package/dist/chunks/{useUserAccessRequests-BBcw1Rk9.js.map → useUserAccessRequests-Bk_v8egy.js.map} +1 -1
  285. package/dist/components/routing/ProtectedRoute.d.ts.map +1 -1
  286. package/dist/contexts/AuthContext.d.ts.map +1 -1
  287. package/dist/pages/LoginPage.d.ts.map +1 -1
  288. package/dist/pages/platform/administration/tenants/TenantDetailPage.d.ts.map +1 -1
  289. package/dist/pages/platform/support/UserCreateTicketPage.d.ts.map +1 -1
  290. package/dist/services/api/apiClient.d.ts.map +1 -1
  291. package/dist/services/support/ticketDraftService.d.ts.map +1 -1
  292. package/dist/smartstack.cjs +1 -1
  293. package/dist/smartstack.js +6 -6
  294. package/dist/utils/permissions.generated.d.ts +288 -0
  295. package/dist/utils/permissions.generated.d.ts.map +1 -0
  296. package/dist/utils/uuid.d.ts +6 -0
  297. package/dist/utils/uuid.d.ts.map +1 -0
  298. package/package.json +1 -1
  299. package/dist/chunks/UserCreateTicketPage-ChQL1mVY.js.map +0 -1
  300. package/dist/chunks/UserCreateTicketPage-DkjsHeV7.js.map +0 -1
  301. package/dist/chunks/auth-B-hELPDB.js +0 -2
  302. package/dist/chunks/auth-B-hELPDB.js.map +0 -1
  303. package/dist/chunks/auth-BYaMuq7D.js +0 -16
  304. package/dist/chunks/auth-BYaMuq7D.js.map +0 -1
  305. package/dist/chunks/auth-C5zpZ9k7.js +0 -2
  306. package/dist/chunks/auth-C5zpZ9k7.js.map +0 -1
  307. package/dist/chunks/auth-CDpRMVv1.js +0 -16
  308. package/dist/chunks/auth-CDpRMVv1.js.map +0 -1
  309. package/dist/chunks/auth-CyPkCta2.js +0 -2
  310. package/dist/chunks/auth-CyPkCta2.js.map +0 -1
  311. package/dist/chunks/auth-DL47kvnl.js +0 -2
  312. package/dist/chunks/auth-DL47kvnl.js.map +0 -1
  313. package/dist/chunks/auth-Diiv90i1.js +0 -16
  314. package/dist/chunks/auth-Diiv90i1.js.map +0 -1
  315. package/dist/chunks/auth-rog9MvUr.js +0 -16
  316. package/dist/chunks/auth-rog9MvUr.js.map +0 -1
  317. package/dist/chunks/index-BIqcvvbh.js.map +0 -1
  318. package/dist/chunks/index-DA5VyW0k.js.map +0 -1
  319. package/dist/chunks/index-Dht6EQW1.js +0 -2
  320. package/dist/chunks/index-Dht6EQW1.js.map +0 -1
  321. package/dist/chunks/index-vXiLh35n.js +0 -48
  322. package/dist/chunks/index-vXiLh35n.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react-i18next"),i=require("./useUserAccessRequests-Cj0nkesW.js"),x=require("./AccessRequestStatusBadge-CNTI7EDr.js"),r=require("lucide-react");function u(){const{t}=o.useTranslation("admin"),{requests:a,loading:c}=i.useUserAccessRequests(),l=[{label:t("accessRequests.stats.pending"),value:a.filter(s=>s.status==="Pending").length,color:"yellow"},{label:t("accessRequests.stats.approved"),value:a.filter(s=>s.status==="Approved").length,color:"green"},{label:t("accessRequests.stats.denied"),value:a.filter(s=>s.status==="Denied").length,color:"red"}],n={green:"bg-[var(--success-bg)] text-[var(--success-text)] border-[var(--success-border)]",yellow:"bg-[var(--warning-bg)] text-[var(--warning-text)] border-[var(--warning-border)]",red:"bg-[var(--error-bg)] text-[var(--error-text)] border-[var(--error-border)]"},d=()=>c?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(r.Loader2,{className:"w-8 h-8 animate-spin text-[var(--color-accent-500)]"})}):a.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(r.Inbox,{className:"w-12 h-12 text-[var(--text-secondary)] mb-4"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:t("accessRequests.noRequests")})]}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-color)] text-left text-[var(--text-secondary)]",children:[e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.application")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.tenant")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.reason")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.requestedAt")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.status")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.processedAt")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.notes")})]})}),e.jsx("tbody",{className:"divide-y divide-[var(--border-color)]",children:a.map(s=>e.jsxs("tr",{className:"hover:bg-[var(--bg-tertiary)] transition-colors",children:[e.jsx("td",{className:"px-4 py-3 font-medium",children:s.applicationLabel}),e.jsx("td",{className:"px-4 py-3",children:s.tenantName||"—"}),e.jsx("td",{className:"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate",children:s.reason||"—"}),e.jsx("td",{className:"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap",children:new Date(s.requestedAt).toLocaleDateString()}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(x.AccessRequestStatusBadge,{status:s.status})}),e.jsx("td",{className:"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap",children:s.processedAt?new Date(s.processedAt).toLocaleDateString():"—"}),e.jsx("td",{className:"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate",children:s.processingNotes||"—"})]},s.id))})]})});return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:t("accessRequests.myRequests")}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:t("accessRequests.myRequestsDescription")})]}),e.jsx("div",{className:"grid grid-cols-3 gap-4",children:l.map(s=>e.jsxs("div",{className:`card p-4 text-center border ${n[s.color]}`,children:[e.jsx("div",{className:"text-2xl font-bold",children:s.value}),e.jsx("div",{className:"text-sm opacity-80",children:s.label})]},s.label))}),e.jsx("div",{className:"bg-[var(--bg-secondary)] rounded-[var(--radius-card)] border border-[var(--border-color)]",children:d()})]})}exports.default=u;
2
- //# sourceMappingURL=MyAccessRequestsPage-BAX0xwJX.js.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react-i18next"),i=require("./useUserAccessRequests-5wWea2Jg.js"),x=require("./AccessRequestStatusBadge-CNTI7EDr.js"),r=require("lucide-react");function u(){const{t}=o.useTranslation("admin"),{requests:a,loading:c}=i.useUserAccessRequests(),l=[{label:t("accessRequests.stats.pending"),value:a.filter(s=>s.status==="Pending").length,color:"yellow"},{label:t("accessRequests.stats.approved"),value:a.filter(s=>s.status==="Approved").length,color:"green"},{label:t("accessRequests.stats.denied"),value:a.filter(s=>s.status==="Denied").length,color:"red"}],n={green:"bg-[var(--success-bg)] text-[var(--success-text)] border-[var(--success-border)]",yellow:"bg-[var(--warning-bg)] text-[var(--warning-text)] border-[var(--warning-border)]",red:"bg-[var(--error-bg)] text-[var(--error-text)] border-[var(--error-border)]"},d=()=>c?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(r.Loader2,{className:"w-8 h-8 animate-spin text-[var(--color-accent-500)]"})}):a.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(r.Inbox,{className:"w-12 h-12 text-[var(--text-secondary)] mb-4"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:t("accessRequests.noRequests")})]}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-color)] text-left text-[var(--text-secondary)]",children:[e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.application")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.tenant")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.reason")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.requestedAt")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.status")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.processedAt")}),e.jsx("th",{className:"px-4 py-3 font-medium",children:t("accessRequests.table.notes")})]})}),e.jsx("tbody",{className:"divide-y divide-[var(--border-color)]",children:a.map(s=>e.jsxs("tr",{className:"hover:bg-[var(--bg-tertiary)] transition-colors",children:[e.jsx("td",{className:"px-4 py-3 font-medium",children:s.applicationLabel}),e.jsx("td",{className:"px-4 py-3",children:s.tenantName||"—"}),e.jsx("td",{className:"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate",children:s.reason||"—"}),e.jsx("td",{className:"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap",children:new Date(s.requestedAt).toLocaleDateString()}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(x.AccessRequestStatusBadge,{status:s.status})}),e.jsx("td",{className:"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap",children:s.processedAt?new Date(s.processedAt).toLocaleDateString():"—"}),e.jsx("td",{className:"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate",children:s.processingNotes||"—"})]},s.id))})]})});return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:t("accessRequests.myRequests")}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:t("accessRequests.myRequestsDescription")})]}),e.jsx("div",{className:"grid grid-cols-3 gap-4",children:l.map(s=>e.jsxs("div",{className:`card p-4 text-center border ${n[s.color]}`,children:[e.jsx("div",{className:"text-2xl font-bold",children:s.value}),e.jsx("div",{className:"text-sm opacity-80",children:s.label})]},s.label))}),e.jsx("div",{className:"bg-[var(--bg-secondary)] rounded-[var(--radius-card)] border border-[var(--border-color)]",children:d()})]})}exports.default=u;
2
+ //# sourceMappingURL=MyAccessRequestsPage-BBrwEomx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MyAccessRequestsPage-BAX0xwJX.js","sources":["../../src/pages/personal/myspace/MyAccessRequestsPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\r\nimport { useUserAccessRequests } from '@/hooks/useUserAccessRequests';\r\nimport { AccessRequestStatusBadge } from '@/components/platform/administration/access-requests';\r\nimport { Loader2, Inbox } from 'lucide-react';\r\n\r\nexport default function MyAccessRequestsPage(): ReactElement {\r\n const { t } = useTranslation('admin');\r\n const { requests, loading } = useUserAccessRequests();\r\n\r\n const statCards = [\r\n {\r\n label: t('accessRequests.stats.pending'),\r\n value: requests.filter(r => r.status === 'Pending').length,\r\n color: 'yellow' as const,\r\n },\r\n {\r\n label: t('accessRequests.stats.approved'),\r\n value: requests.filter(r => r.status === 'Approved').length,\r\n color: 'green' as const,\r\n },\r\n {\r\n label: t('accessRequests.stats.denied'),\r\n value: requests.filter(r => r.status === 'Denied').length,\r\n color: 'red' as const,\r\n },\r\n ];\r\n\r\n const colorClasses: Record<string, string> = {\r\n green: 'bg-[var(--success-bg)] text-[var(--success-text)] border-[var(--success-border)]',\r\n yellow: 'bg-[var(--warning-bg)] text-[var(--warning-text)] border-[var(--warning-border)]',\r\n red: 'bg-[var(--error-bg)] text-[var(--error-text)] border-[var(--error-border)]',\r\n };\r\n\r\n const getTableContent = () => {\r\n if (loading) {\r\n return (\r\n <div className=\"flex items-center justify-center py-12\">\r\n <Loader2 className=\"w-8 h-8 animate-spin text-[var(--color-accent-500)]\" />\r\n </div>\r\n );\r\n }\r\n\r\n if (requests.length === 0) {\r\n return (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Inbox className=\"w-12 h-12 text-[var(--text-secondary)] mb-4\" />\r\n <p className=\"text-[var(--text-secondary)]\">{t('accessRequests.noRequests')}</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"overflow-x-auto\">\r\n <table className=\"w-full text-sm\">\r\n <thead>\r\n <tr className=\"border-b border-[var(--border-color)] text-left text-[var(--text-secondary)]\">\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.application')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.tenant')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.reason')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.requestedAt')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.status')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.processedAt')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.notes')}</th>\r\n </tr>\r\n </thead>\r\n <tbody className=\"divide-y divide-[var(--border-color)]\">\r\n {requests.map((request: any) => (\r\n <tr key={request.id} className=\"hover:bg-[var(--bg-tertiary)] transition-colors\">\r\n <td className=\"px-4 py-3 font-medium\">{request.applicationLabel}</td>\r\n <td className=\"px-4 py-3\">{request.tenantName || '—'}</td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate\">\r\n {request.reason || '—'}\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap\">\r\n {new Date(request.requestedAt).toLocaleDateString()}\r\n </td>\r\n <td className=\"px-4 py-3\">\r\n <AccessRequestStatusBadge status={request.status} />\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap\">\r\n {request.processedAt ? new Date(request.processedAt).toLocaleDateString() : '—'}\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate\">\r\n {request.processingNotes || '—'}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n <div>\r\n <h1 className=\"text-2xl font-bold\">{t('accessRequests.myRequests')}</h1>\r\n <p className=\"text-[var(--text-secondary)]\">{t('accessRequests.myRequestsDescription')}</p>\r\n </div>\r\n\r\n {/* Stats */}\r\n <div className=\"grid grid-cols-3 gap-4\">\r\n {statCards.map((stat) => (\r\n <div key={stat.label} className={`card p-4 text-center border ${colorClasses[stat.color]}`}>\r\n <div className=\"text-2xl font-bold\">{stat.value}</div>\r\n <div className=\"text-sm opacity-80\">{stat.label}</div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n {/* Requests Table */}\r\n <div className=\"bg-[var(--bg-secondary)] rounded-[var(--radius-card)] border border-[var(--border-color)]\">\r\n {getTableContent()}\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["MyAccessRequestsPage","useTranslation","requests","loading","useUserAccessRequests","statCards","r","colorClasses","getTableContent","jsx","Loader2","jsxs","Inbox","request","AccessRequestStatusBadge","stat"],"mappings":"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"}
1
+ {"version":3,"file":"MyAccessRequestsPage-BBrwEomx.js","sources":["../../src/pages/personal/myspace/MyAccessRequestsPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\r\nimport { useUserAccessRequests } from '@/hooks/useUserAccessRequests';\r\nimport { AccessRequestStatusBadge } from '@/components/platform/administration/access-requests';\r\nimport { Loader2, Inbox } from 'lucide-react';\r\n\r\nexport default function MyAccessRequestsPage(): ReactElement {\r\n const { t } = useTranslation('admin');\r\n const { requests, loading } = useUserAccessRequests();\r\n\r\n const statCards = [\r\n {\r\n label: t('accessRequests.stats.pending'),\r\n value: requests.filter(r => r.status === 'Pending').length,\r\n color: 'yellow' as const,\r\n },\r\n {\r\n label: t('accessRequests.stats.approved'),\r\n value: requests.filter(r => r.status === 'Approved').length,\r\n color: 'green' as const,\r\n },\r\n {\r\n label: t('accessRequests.stats.denied'),\r\n value: requests.filter(r => r.status === 'Denied').length,\r\n color: 'red' as const,\r\n },\r\n ];\r\n\r\n const colorClasses: Record<string, string> = {\r\n green: 'bg-[var(--success-bg)] text-[var(--success-text)] border-[var(--success-border)]',\r\n yellow: 'bg-[var(--warning-bg)] text-[var(--warning-text)] border-[var(--warning-border)]',\r\n red: 'bg-[var(--error-bg)] text-[var(--error-text)] border-[var(--error-border)]',\r\n };\r\n\r\n const getTableContent = () => {\r\n if (loading) {\r\n return (\r\n <div className=\"flex items-center justify-center py-12\">\r\n <Loader2 className=\"w-8 h-8 animate-spin text-[var(--color-accent-500)]\" />\r\n </div>\r\n );\r\n }\r\n\r\n if (requests.length === 0) {\r\n return (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Inbox className=\"w-12 h-12 text-[var(--text-secondary)] mb-4\" />\r\n <p className=\"text-[var(--text-secondary)]\">{t('accessRequests.noRequests')}</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"overflow-x-auto\">\r\n <table className=\"w-full text-sm\">\r\n <thead>\r\n <tr className=\"border-b border-[var(--border-color)] text-left text-[var(--text-secondary)]\">\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.application')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.tenant')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.reason')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.requestedAt')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.status')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.processedAt')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.notes')}</th>\r\n </tr>\r\n </thead>\r\n <tbody className=\"divide-y divide-[var(--border-color)]\">\r\n {requests.map((request: any) => (\r\n <tr key={request.id} className=\"hover:bg-[var(--bg-tertiary)] transition-colors\">\r\n <td className=\"px-4 py-3 font-medium\">{request.applicationLabel}</td>\r\n <td className=\"px-4 py-3\">{request.tenantName || '—'}</td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate\">\r\n {request.reason || '—'}\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap\">\r\n {new Date(request.requestedAt).toLocaleDateString()}\r\n </td>\r\n <td className=\"px-4 py-3\">\r\n <AccessRequestStatusBadge status={request.status} />\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap\">\r\n {request.processedAt ? new Date(request.processedAt).toLocaleDateString() : '—'}\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate\">\r\n {request.processingNotes || '—'}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n <div>\r\n <h1 className=\"text-2xl font-bold\">{t('accessRequests.myRequests')}</h1>\r\n <p className=\"text-[var(--text-secondary)]\">{t('accessRequests.myRequestsDescription')}</p>\r\n </div>\r\n\r\n {/* Stats */}\r\n <div className=\"grid grid-cols-3 gap-4\">\r\n {statCards.map((stat) => (\r\n <div key={stat.label} className={`card p-4 text-center border ${colorClasses[stat.color]}`}>\r\n <div className=\"text-2xl font-bold\">{stat.value}</div>\r\n <div className=\"text-sm opacity-80\">{stat.label}</div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n {/* Requests Table */}\r\n <div className=\"bg-[var(--bg-secondary)] rounded-[var(--radius-card)] border border-[var(--border-color)]\">\r\n {getTableContent()}\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["MyAccessRequestsPage","useTranslation","requests","loading","useUserAccessRequests","statCards","r","colorClasses","getTableContent","jsx","Loader2","jsxs","Inbox","request","AccessRequestStatusBadge","stat"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
2
  import { useTranslation as o } from "react-i18next";
3
- import { u as i } from "./useUserAccessRequests-BBcw1Rk9.js";
3
+ import { u as i } from "./useUserAccessRequests-Bk_v8egy.js";
4
4
  import { A as m } from "./AccessRequestStatusBadge-CjkJPKuE.js";
5
5
  import { Loader2 as p, Inbox as x } from "lucide-react";
6
6
  function N() {
@@ -62,4 +62,4 @@ function N() {
62
62
  export {
63
63
  N as default
64
64
  };
65
- //# sourceMappingURL=MyAccessRequestsPage-BMY1V631.js.map
65
+ //# sourceMappingURL=MyAccessRequestsPage-CrlWe3gd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MyAccessRequestsPage-BMY1V631.js","sources":["../../src/pages/personal/myspace/MyAccessRequestsPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\r\nimport { useUserAccessRequests } from '@/hooks/useUserAccessRequests';\r\nimport { AccessRequestStatusBadge } from '@/components/platform/administration/access-requests';\r\nimport { Loader2, Inbox } from 'lucide-react';\r\n\r\nexport default function MyAccessRequestsPage(): ReactElement {\r\n const { t } = useTranslation('admin');\r\n const { requests, loading } = useUserAccessRequests();\r\n\r\n const statCards = [\r\n {\r\n label: t('accessRequests.stats.pending'),\r\n value: requests.filter(r => r.status === 'Pending').length,\r\n color: 'yellow' as const,\r\n },\r\n {\r\n label: t('accessRequests.stats.approved'),\r\n value: requests.filter(r => r.status === 'Approved').length,\r\n color: 'green' as const,\r\n },\r\n {\r\n label: t('accessRequests.stats.denied'),\r\n value: requests.filter(r => r.status === 'Denied').length,\r\n color: 'red' as const,\r\n },\r\n ];\r\n\r\n const colorClasses: Record<string, string> = {\r\n green: 'bg-[var(--success-bg)] text-[var(--success-text)] border-[var(--success-border)]',\r\n yellow: 'bg-[var(--warning-bg)] text-[var(--warning-text)] border-[var(--warning-border)]',\r\n red: 'bg-[var(--error-bg)] text-[var(--error-text)] border-[var(--error-border)]',\r\n };\r\n\r\n const getTableContent = () => {\r\n if (loading) {\r\n return (\r\n <div className=\"flex items-center justify-center py-12\">\r\n <Loader2 className=\"w-8 h-8 animate-spin text-[var(--color-accent-500)]\" />\r\n </div>\r\n );\r\n }\r\n\r\n if (requests.length === 0) {\r\n return (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Inbox className=\"w-12 h-12 text-[var(--text-secondary)] mb-4\" />\r\n <p className=\"text-[var(--text-secondary)]\">{t('accessRequests.noRequests')}</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"overflow-x-auto\">\r\n <table className=\"w-full text-sm\">\r\n <thead>\r\n <tr className=\"border-b border-[var(--border-color)] text-left text-[var(--text-secondary)]\">\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.application')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.tenant')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.reason')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.requestedAt')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.status')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.processedAt')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.notes')}</th>\r\n </tr>\r\n </thead>\r\n <tbody className=\"divide-y divide-[var(--border-color)]\">\r\n {requests.map((request: any) => (\r\n <tr key={request.id} className=\"hover:bg-[var(--bg-tertiary)] transition-colors\">\r\n <td className=\"px-4 py-3 font-medium\">{request.applicationLabel}</td>\r\n <td className=\"px-4 py-3\">{request.tenantName || '—'}</td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate\">\r\n {request.reason || '—'}\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap\">\r\n {new Date(request.requestedAt).toLocaleDateString()}\r\n </td>\r\n <td className=\"px-4 py-3\">\r\n <AccessRequestStatusBadge status={request.status} />\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap\">\r\n {request.processedAt ? new Date(request.processedAt).toLocaleDateString() : '—'}\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate\">\r\n {request.processingNotes || '—'}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n <div>\r\n <h1 className=\"text-2xl font-bold\">{t('accessRequests.myRequests')}</h1>\r\n <p className=\"text-[var(--text-secondary)]\">{t('accessRequests.myRequestsDescription')}</p>\r\n </div>\r\n\r\n {/* Stats */}\r\n <div className=\"grid grid-cols-3 gap-4\">\r\n {statCards.map((stat) => (\r\n <div key={stat.label} className={`card p-4 text-center border ${colorClasses[stat.color]}`}>\r\n <div className=\"text-2xl font-bold\">{stat.value}</div>\r\n <div className=\"text-sm opacity-80\">{stat.label}</div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n {/* Requests Table */}\r\n <div className=\"bg-[var(--bg-secondary)] rounded-[var(--radius-card)] border border-[var(--border-color)]\">\r\n {getTableContent()}\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["MyAccessRequestsPage","useTranslation","requests","loading","useUserAccessRequests","statCards","r","colorClasses","getTableContent","jsx","Loader2","jsxs","Inbox","request","AccessRequestStatusBadge","stat"],"mappings":"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"}
1
+ {"version":3,"file":"MyAccessRequestsPage-CrlWe3gd.js","sources":["../../src/pages/personal/myspace/MyAccessRequestsPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\r\nimport { useUserAccessRequests } from '@/hooks/useUserAccessRequests';\r\nimport { AccessRequestStatusBadge } from '@/components/platform/administration/access-requests';\r\nimport { Loader2, Inbox } from 'lucide-react';\r\n\r\nexport default function MyAccessRequestsPage(): ReactElement {\r\n const { t } = useTranslation('admin');\r\n const { requests, loading } = useUserAccessRequests();\r\n\r\n const statCards = [\r\n {\r\n label: t('accessRequests.stats.pending'),\r\n value: requests.filter(r => r.status === 'Pending').length,\r\n color: 'yellow' as const,\r\n },\r\n {\r\n label: t('accessRequests.stats.approved'),\r\n value: requests.filter(r => r.status === 'Approved').length,\r\n color: 'green' as const,\r\n },\r\n {\r\n label: t('accessRequests.stats.denied'),\r\n value: requests.filter(r => r.status === 'Denied').length,\r\n color: 'red' as const,\r\n },\r\n ];\r\n\r\n const colorClasses: Record<string, string> = {\r\n green: 'bg-[var(--success-bg)] text-[var(--success-text)] border-[var(--success-border)]',\r\n yellow: 'bg-[var(--warning-bg)] text-[var(--warning-text)] border-[var(--warning-border)]',\r\n red: 'bg-[var(--error-bg)] text-[var(--error-text)] border-[var(--error-border)]',\r\n };\r\n\r\n const getTableContent = () => {\r\n if (loading) {\r\n return (\r\n <div className=\"flex items-center justify-center py-12\">\r\n <Loader2 className=\"w-8 h-8 animate-spin text-[var(--color-accent-500)]\" />\r\n </div>\r\n );\r\n }\r\n\r\n if (requests.length === 0) {\r\n return (\r\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\r\n <Inbox className=\"w-12 h-12 text-[var(--text-secondary)] mb-4\" />\r\n <p className=\"text-[var(--text-secondary)]\">{t('accessRequests.noRequests')}</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"overflow-x-auto\">\r\n <table className=\"w-full text-sm\">\r\n <thead>\r\n <tr className=\"border-b border-[var(--border-color)] text-left text-[var(--text-secondary)]\">\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.application')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.tenant')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.reason')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.requestedAt')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.status')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.processedAt')}</th>\r\n <th className=\"px-4 py-3 font-medium\">{t('accessRequests.table.notes')}</th>\r\n </tr>\r\n </thead>\r\n <tbody className=\"divide-y divide-[var(--border-color)]\">\r\n {requests.map((request: any) => (\r\n <tr key={request.id} className=\"hover:bg-[var(--bg-tertiary)] transition-colors\">\r\n <td className=\"px-4 py-3 font-medium\">{request.applicationLabel}</td>\r\n <td className=\"px-4 py-3\">{request.tenantName || '—'}</td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate\">\r\n {request.reason || '—'}\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap\">\r\n {new Date(request.requestedAt).toLocaleDateString()}\r\n </td>\r\n <td className=\"px-4 py-3\">\r\n <AccessRequestStatusBadge status={request.status} />\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] whitespace-nowrap\">\r\n {request.processedAt ? new Date(request.processedAt).toLocaleDateString() : '—'}\r\n </td>\r\n <td className=\"px-4 py-3 text-[var(--text-secondary)] max-w-[200px] truncate\">\r\n {request.processingNotes || '—'}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"space-y-6\">\r\n <div>\r\n <h1 className=\"text-2xl font-bold\">{t('accessRequests.myRequests')}</h1>\r\n <p className=\"text-[var(--text-secondary)]\">{t('accessRequests.myRequestsDescription')}</p>\r\n </div>\r\n\r\n {/* Stats */}\r\n <div className=\"grid grid-cols-3 gap-4\">\r\n {statCards.map((stat) => (\r\n <div key={stat.label} className={`card p-4 text-center border ${colorClasses[stat.color]}`}>\r\n <div className=\"text-2xl font-bold\">{stat.value}</div>\r\n <div className=\"text-sm opacity-80\">{stat.label}</div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n {/* Requests Table */}\r\n <div className=\"bg-[var(--bg-secondary)] rounded-[var(--radius-card)] border border-[var(--border-color)]\">\r\n {getTableContent()}\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["MyAccessRequestsPage","useTranslation","requests","loading","useUserAccessRequests","statCards","r","colorClasses","getTableContent","jsx","Loader2","jsxs","Inbox","request","AccessRequestStatusBadge","stat"],"mappings":";;;;;AAMA,SAAwBA,IAAqC;AAC3D,QAAM,EAAE,EAAA,IAAMC,EAAe,OAAO,GAC9B,EAAE,UAAAC,GAAU,SAAAC,EAAA,IAAYC,EAAA,GAExBC,IAAY;AAAA,IAChB;AAAA,MACE,OAAO,EAAE,8BAA8B;AAAA,MACvC,OAAOH,EAAS,OAAO,OAAKI,EAAE,WAAW,SAAS,EAAE;AAAA,MACpD,OAAO;AAAA,IAAA;AAAA,IAET;AAAA,MACE,OAAO,EAAE,+BAA+B;AAAA,MACxC,OAAOJ,EAAS,OAAO,OAAKI,EAAE,WAAW,UAAU,EAAE;AAAA,MACrD,OAAO;AAAA,IAAA;AAAA,IAET;AAAA,MACE,OAAO,EAAE,6BAA6B;AAAA,MACtC,OAAOJ,EAAS,OAAO,OAAKI,EAAE,WAAW,QAAQ,EAAE;AAAA,MACnD,OAAO;AAAA,IAAA;AAAA,EACT,GAGIC,IAAuC;AAAA,IAC3C,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,EAAA,GAGDC,IAAkB,MAClBL,IAEA,gBAAAM,EAAC,SAAI,WAAU,0CACb,4BAACC,GAAA,EAAQ,WAAU,uDAAsD,EAAA,CAC3E,IAIAR,EAAS,WAAW,IAEpB,gBAAAS,EAAC,OAAA,EAAI,WAAU,+DACb,UAAA;AAAA,IAAA,gBAAAF,EAACG,GAAA,EAAM,WAAU,8CAAA,CAA8C;AAAA,sBAC9D,KAAA,EAAE,WAAU,gCAAgC,UAAA,EAAE,2BAA2B,EAAA,CAAE;AAAA,EAAA,GAC9E,sBAKD,OAAA,EAAI,WAAU,mBACb,UAAA,gBAAAD,EAAC,SAAA,EAAM,WAAU,kBACf,UAAA;AAAA,IAAA,gBAAAF,EAAC,SAAA,EACC,UAAA,gBAAAE,EAAC,MAAA,EAAG,WAAU,gFACZ,UAAA;AAAA,MAAA,gBAAAF,EAAC,MAAA,EAAG,WAAU,yBAAyB,UAAA,EAAE,kCAAkC,GAAE;AAAA,wBAC5E,MAAA,EAAG,WAAU,yBAAyB,UAAA,EAAE,6BAA6B,GAAE;AAAA,wBACvE,MAAA,EAAG,WAAU,yBAAyB,UAAA,EAAE,6BAA6B,GAAE;AAAA,wBACvE,MAAA,EAAG,WAAU,yBAAyB,UAAA,EAAE,kCAAkC,GAAE;AAAA,wBAC5E,MAAA,EAAG,WAAU,yBAAyB,UAAA,EAAE,6BAA6B,GAAE;AAAA,wBACvE,MAAA,EAAG,WAAU,yBAAyB,UAAA,EAAE,kCAAkC,GAAE;AAAA,wBAC5E,MAAA,EAAG,WAAU,yBAAyB,UAAA,EAAE,4BAA4B,EAAA,CAAE;AAAA,IAAA,EAAA,CACzE,EAAA,CACF;AAAA,IACA,gBAAAA,EAAC,SAAA,EAAM,WAAU,yCACd,UAAAP,EAAS,IAAI,CAACW,MACb,gBAAAF,EAAC,MAAA,EAAoB,WAAU,mDAC7B,UAAA;AAAA,MAAA,gBAAAF,EAAC,MAAA,EAAG,WAAU,yBAAyB,UAAAI,EAAQ,kBAAiB;AAAA,wBAC/D,MAAA,EAAG,WAAU,aAAa,UAAAA,EAAQ,cAAc,KAAI;AAAA,wBACpD,MAAA,EAAG,WAAU,iEACX,UAAAA,EAAQ,UAAU,KACrB;AAAA,MACA,gBAAAJ,EAAC,MAAA,EAAG,WAAU,4DACX,UAAA,IAAI,KAAKI,EAAQ,WAAW,EAAE,mBAAA,EAAmB,CACpD;AAAA,MACA,gBAAAJ,EAAC,QAAG,WAAU,aACZ,4BAACK,GAAA,EAAyB,QAAQD,EAAQ,OAAA,CAAQ,EAAA,CACpD;AAAA,MACA,gBAAAJ,EAAC,MAAA,EAAG,WAAU,4DACX,UAAAI,EAAQ,cAAc,IAAI,KAAKA,EAAQ,WAAW,EAAE,mBAAA,IAAuB,IAAA,CAC9E;AAAA,wBACC,MAAA,EAAG,WAAU,iEACX,UAAAA,EAAQ,mBAAmB,IAAA,CAC9B;AAAA,IAAA,KAjBOA,EAAQ,EAkBjB,CACD,EAAA,CACH;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAIJ,SACE,gBAAAF,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EACC,UAAA;AAAA,MAAA,gBAAAF,EAAC,MAAA,EAAG,WAAU,sBAAsB,UAAA,EAAE,2BAA2B,GAAE;AAAA,wBAClE,KAAA,EAAE,WAAU,gCAAgC,UAAA,EAAE,sCAAsC,EAAA,CAAE;AAAA,IAAA,GACzF;AAAA,sBAGC,OAAA,EAAI,WAAU,0BACZ,UAAAJ,EAAU,IAAI,CAACU,MACd,gBAAAJ,EAAC,OAAA,EAAqB,WAAW,+BAA+BJ,EAAaQ,EAAK,KAAK,CAAC,IACtF,UAAA;AAAA,MAAA,gBAAAN,EAAC,OAAA,EAAI,WAAU,sBAAsB,UAAAM,EAAK,OAAM;AAAA,MAChD,gBAAAN,EAAC,OAAA,EAAI,WAAU,sBAAsB,YAAK,MAAA,CAAM;AAAA,IAAA,EAAA,GAFxCM,EAAK,KAGf,CACD,GACH;AAAA,IAGA,gBAAAN,EAAC,OAAA,EAAI,WAAU,6FACZ,cAAgB,CACnB;AAAA,EAAA,GACF;AAEJ;"}
@@ -3,8 +3,8 @@ import { useCallback as i } from "react";
3
3
  import { useNavigate as B } from "react-router-dom";
4
4
  import { useTranslation as S } from "react-i18next";
5
5
  import { Star as u, Globe as M, Building2 as g, User as k, AlertCircle as W, Layers as j } from "lucide-react";
6
- import { a as R, ad as E } from "./index-DA5VyW0k.js";
7
- import { T as v } from "./TenantCard-CqfifMrM.js";
6
+ import { a as R, ae as E } from "./index-CpY95_ro.js";
7
+ import { T as v } from "./TenantCard-BUBYWtvR.js";
8
8
  function U() {
9
9
  const { t: r } = S("navigation"), l = B(), {
10
10
  currentTenant: o,
@@ -183,4 +183,4 @@ export {
183
183
  U as MyTenantsPage,
184
184
  U as default
185
185
  };
186
- //# sourceMappingURL=MyTenantsPage-BHtp67SD.js.map
186
+ //# sourceMappingURL=MyTenantsPage-BOV34_rJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MyTenantsPage-BHtp67SD.js","sources":["../../src/pages/personal/myspace/MyTenantsPage.tsx"],"sourcesContent":["import { useCallback } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Building2, User, AlertCircle, Globe, Star, Layers } from 'lucide-react';\r\nimport { useTenant } from '@/contexts/TenantContext';\r\nimport { useFeatureConfig } from '@/contexts/FeatureConfigContext';\r\nimport { TenantCard } from '@/components/tenants/TenantCard';\r\n\r\nexport function MyTenantsPage(): ReactElement {\r\n const { t } = useTranslation('navigation');\r\n const navigate = useNavigate();\r\n const {\r\n currentTenant,\r\n userTenants,\r\n b2bTenants,\r\n personalTenant,\r\n switchTenant,\r\n setDefaultTenant,\r\n clearDefaultTenant,\r\n isLoading,\r\n hasGlobalRoles\r\n } = useTenant();\r\n const { enableB2C } = useFeatureConfig();\r\n\r\n const isGlobalDefault = !userTenants.some(t => t.isDefault);\r\n\r\n const handleEnterTenant = useCallback(async (tenantId: string) => {\r\n try {\r\n await switchTenant(tenantId);\r\n navigate('/myspace');\r\n } catch (error) {\r\n console.error('Failed to switch tenant:', error);\r\n }\r\n }, [switchTenant, navigate]);\r\n\r\n const handleSetDefault = useCallback(async (tenantId: string) => {\r\n try {\r\n await setDefaultTenant(tenantId);\r\n } catch (error) {\r\n console.error('Failed to set default tenant:', error);\r\n }\r\n }, [setDefaultTenant]);\r\n\r\n const handleClearDefault = useCallback(async () => {\r\n try {\r\n await clearDefaultTenant();\r\n } catch (error) {\r\n console.error('Failed to clear default tenant:', error);\r\n }\r\n }, [clearDefaultTenant]);\r\n\r\n const handleManageTenant = useCallback((tenantId: string) => {\r\n navigate(`/administration/tenants/${tenantId}`);\r\n }, [navigate]);\r\n\r\n if (isLoading) {\r\n return (\r\n <div className=\"flex items-center justify-center min-h-[400px]\">\r\n <div className=\"animate-spin rounded-full h-8 w-8 border-b-2 border-[var(--color-accent-500)]\" />\r\n </div>\r\n );\r\n }\r\n\r\n const defaultTenant = userTenants.find(t => t.isDefault);\r\n const otherTenants = userTenants.filter(t => t.type !== 'Business' && t.type !== 'Personal');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-2xl font-bold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.title', 'My Workspaces')}\r\n </h1>\r\n <p className=\"text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.description', 'Manage your workspace access and set your default workspace')}\r\n </p>\r\n </div>\r\n\r\n {/* Default Preference Section */}\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Star className=\"w-5 h-5 text-amber-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.defaultPreference.title', 'Default Preference')}\r\n </h2>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-2xl\">\r\n {/* Global option - only for global admins (Super Administrator / Platform Administrator) */}\r\n {hasGlobalRoles && (\r\n <button\r\n onClick={!isGlobalDefault ? handleClearDefault : undefined}\r\n disabled={isGlobalDefault}\r\n className={`relative text-left p-5 bg-[var(--bg-card)] border overflow-hidden transition-all duration-200 ${\r\n isGlobalDefault\r\n ? 'border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20'\r\n : 'border-[var(--border-color)] hover:border-[var(--color-accent-300)] cursor-pointer'\r\n }`}\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <div className=\"flex items-start gap-3\">\r\n <div className=\"w-12 h-12 rounded-xl flex items-center justify-center bg-gradient-to-br from-emerald-500/20 to-emerald-600/20\">\r\n <Globe className=\"w-6 h-6 text-emerald-500\" />\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <h3 className=\"font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.defaultPreference.global', 'Global')}\r\n </h3>\r\n {isGlobalDefault && (\r\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]\">\r\n <Star className=\"w-3 h-3 fill-current\" />\r\n {t('tenants.default', 'Default')}\r\n </span>\r\n )}\r\n </div>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.defaultPreference.globalDescription', 'No specific workspace on login — choose each time')}\r\n </p>\r\n </div>\r\n </div>\r\n </button>\r\n )}\r\n\r\n {/* Current default tenant summary */}\r\n {defaultTenant && (\r\n <div\r\n className=\"relative p-5 bg-[var(--bg-card)] border border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20 overflow-hidden\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <div className=\"flex items-start gap-3\">\r\n <div className={`w-12 h-12 rounded-xl flex items-center justify-center ${\r\n defaultTenant.type === 'Business'\r\n ? 'bg-gradient-to-br from-blue-500/20 to-blue-600/20'\r\n : 'bg-gradient-to-br from-violet-500/20 to-violet-600/20'\r\n }`}>\r\n {defaultTenant.type === 'Business' ? (\r\n <Building2 className=\"w-6 h-6 text-blue-500\" />\r\n ) : (\r\n <User className=\"w-6 h-6 text-violet-500\" />\r\n )}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <h3 className=\"font-semibold text-[var(--text-primary)] truncate\">\r\n {defaultTenant.name}\r\n </h3>\r\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]\">\r\n <Star className=\"w-3 h-3 fill-current\" />\r\n {t('tenants.default', 'Default')}\r\n </span>\r\n </div>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.defaultPreference.specificDescription', 'Auto-connect to this workspace on login')}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n\r\n {/* B2B Tenants Section */}\r\n {b2bTenants.length > 0 && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Building2 className=\"w-5 h-5 text-blue-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.b2b.title', 'Professional Workspaces')}\r\n </h2>\r\n <span className=\"px-2 py-0.5 text-xs font-medium rounded-full bg-blue-500/10 text-blue-600\">\r\n B2B\r\n </span>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\r\n {b2bTenants.map((tenant) => (\r\n <TenantCard\r\n key={tenant.id}\r\n tenant={tenant}\r\n isSelected={currentTenant?.id === tenant.id}\r\n onSetDefault={() => handleSetDefault(tenant.id)}\r\n onEnter={() => handleEnterTenant(tenant.id)}\r\n onManage={tenant.isOwner ? () => handleManageTenant(tenant.id) : undefined}\r\n />\r\n ))}\r\n </div>\r\n </section>\r\n )}\r\n\r\n {/* Personal Tenant Section - only show if B2C is enabled */}\r\n {enableB2C && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <User className=\"w-5 h-5 text-violet-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.personal.title', 'Personal Workspace')}\r\n </h2>\r\n <span className=\"px-2 py-0.5 text-xs font-medium rounded-full bg-violet-500/10 text-violet-600\">\r\n B2C\r\n </span>\r\n </div>\r\n\r\n {personalTenant ? (\r\n <div className=\"max-w-md\">\r\n <TenantCard\r\n tenant={personalTenant}\r\n isSelected={currentTenant?.id === personalTenant.id}\r\n onSetDefault={() => handleSetDefault(personalTenant.id)}\r\n onEnter={() => handleEnterTenant(personalTenant.id)}\r\n />\r\n </div>\r\n ) : (\r\n <div\r\n className=\"flex items-start gap-3 p-4 bg-[var(--warning-bg)] border border-[var(--warning-border)]\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <AlertCircle className=\"w-5 h-5 text-[var(--warning-text)] flex-shrink-0 mt-0.5\" />\r\n <div>\r\n <p className=\"font-medium text-[var(--warning-text)]\">\r\n {t('myspace.tenants.personal.noWorkspace', 'No personal workspace')}\r\n </p>\r\n <p className=\"text-sm text-[var(--warning-text)] opacity-80 mt-1\">\r\n {t(\r\n 'myspace.tenants.personal.noWorkspaceDescription',\r\n 'Your personal workspace will be created automatically when you first access the platform.'\r\n )}\r\n </p>\r\n </div>\r\n </div>\r\n )}\r\n </section>\r\n )}\r\n\r\n {/* Other Tenants Section */}\r\n {otherTenants.length > 0 && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Layers className=\"w-5 h-5 text-gray-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.other.title', 'Other Workspaces')}\r\n </h2>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\r\n {otherTenants.map((tenant) => (\r\n <TenantCard\r\n key={tenant.id}\r\n tenant={tenant}\r\n isSelected={currentTenant?.id === tenant.id}\r\n onSetDefault={() => handleSetDefault(tenant.id)}\r\n onEnter={() => handleEnterTenant(tenant.id)}\r\n onManage={tenant.isOwner ? () => handleManageTenant(tenant.id) : undefined}\r\n />\r\n ))}\r\n </div>\r\n </section>\r\n )}\r\n\r\n {/* Empty state */}\r\n {b2bTenants.length === 0 && !personalTenant && otherTenants.length === 0 && (\r\n <div\r\n className=\"text-center py-12 px-6 bg-[var(--bg-card)] border border-[var(--border-color)]\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <Building2 className=\"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4\" />\r\n <h3 className=\"text-lg font-medium text-[var(--text-primary)] mb-2\">\r\n {t('myspace.tenants.empty.title', 'No workspaces available')}\r\n </h3>\r\n <p className=\"text-[var(--text-secondary)] max-w-md mx-auto\">\r\n {t(\r\n 'myspace.tenants.empty.description',\r\n 'You don\\'t have access to any workspace yet. Contact your administrator to get access.'\r\n )}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MyTenantsPage;\r\n"],"names":["MyTenantsPage","t","useTranslation","navigate","useNavigate","currentTenant","userTenants","b2bTenants","personalTenant","switchTenant","setDefaultTenant","clearDefaultTenant","isLoading","hasGlobalRoles","useTenant","enableB2C","useFeatureConfig","isGlobalDefault","handleEnterTenant","useCallback","tenantId","error","handleSetDefault","handleClearDefault","handleManageTenant","jsx","defaultTenant","otherTenants","jsxs","Star","Globe","Building2","User","tenant","TenantCard","AlertCircle","Layers"],"mappings":"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"}
1
+ {"version":3,"file":"MyTenantsPage-BOV34_rJ.js","sources":["../../src/pages/personal/myspace/MyTenantsPage.tsx"],"sourcesContent":["import { useCallback } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Building2, User, AlertCircle, Globe, Star, Layers } from 'lucide-react';\r\nimport { useTenant } from '@/contexts/TenantContext';\r\nimport { useFeatureConfig } from '@/contexts/FeatureConfigContext';\r\nimport { TenantCard } from '@/components/tenants/TenantCard';\r\n\r\nexport function MyTenantsPage(): ReactElement {\r\n const { t } = useTranslation('navigation');\r\n const navigate = useNavigate();\r\n const {\r\n currentTenant,\r\n userTenants,\r\n b2bTenants,\r\n personalTenant,\r\n switchTenant,\r\n setDefaultTenant,\r\n clearDefaultTenant,\r\n isLoading,\r\n hasGlobalRoles\r\n } = useTenant();\r\n const { enableB2C } = useFeatureConfig();\r\n\r\n const isGlobalDefault = !userTenants.some(t => t.isDefault);\r\n\r\n const handleEnterTenant = useCallback(async (tenantId: string) => {\r\n try {\r\n await switchTenant(tenantId);\r\n navigate('/myspace');\r\n } catch (error) {\r\n console.error('Failed to switch tenant:', error);\r\n }\r\n }, [switchTenant, navigate]);\r\n\r\n const handleSetDefault = useCallback(async (tenantId: string) => {\r\n try {\r\n await setDefaultTenant(tenantId);\r\n } catch (error) {\r\n console.error('Failed to set default tenant:', error);\r\n }\r\n }, [setDefaultTenant]);\r\n\r\n const handleClearDefault = useCallback(async () => {\r\n try {\r\n await clearDefaultTenant();\r\n } catch (error) {\r\n console.error('Failed to clear default tenant:', error);\r\n }\r\n }, [clearDefaultTenant]);\r\n\r\n const handleManageTenant = useCallback((tenantId: string) => {\r\n navigate(`/administration/tenants/${tenantId}`);\r\n }, [navigate]);\r\n\r\n if (isLoading) {\r\n return (\r\n <div className=\"flex items-center justify-center min-h-[400px]\">\r\n <div className=\"animate-spin rounded-full h-8 w-8 border-b-2 border-[var(--color-accent-500)]\" />\r\n </div>\r\n );\r\n }\r\n\r\n const defaultTenant = userTenants.find(t => t.isDefault);\r\n const otherTenants = userTenants.filter(t => t.type !== 'Business' && t.type !== 'Personal');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-2xl font-bold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.title', 'My Workspaces')}\r\n </h1>\r\n <p className=\"text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.description', 'Manage your workspace access and set your default workspace')}\r\n </p>\r\n </div>\r\n\r\n {/* Default Preference Section */}\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Star className=\"w-5 h-5 text-amber-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.defaultPreference.title', 'Default Preference')}\r\n </h2>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-2xl\">\r\n {/* Global option - only for global admins (Super Administrator / Platform Administrator) */}\r\n {hasGlobalRoles && (\r\n <button\r\n onClick={!isGlobalDefault ? handleClearDefault : undefined}\r\n disabled={isGlobalDefault}\r\n className={`relative text-left p-5 bg-[var(--bg-card)] border overflow-hidden transition-all duration-200 ${\r\n isGlobalDefault\r\n ? 'border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20'\r\n : 'border-[var(--border-color)] hover:border-[var(--color-accent-300)] cursor-pointer'\r\n }`}\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <div className=\"flex items-start gap-3\">\r\n <div className=\"w-12 h-12 rounded-xl flex items-center justify-center bg-gradient-to-br from-emerald-500/20 to-emerald-600/20\">\r\n <Globe className=\"w-6 h-6 text-emerald-500\" />\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <h3 className=\"font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.defaultPreference.global', 'Global')}\r\n </h3>\r\n {isGlobalDefault && (\r\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]\">\r\n <Star className=\"w-3 h-3 fill-current\" />\r\n {t('tenants.default', 'Default')}\r\n </span>\r\n )}\r\n </div>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.defaultPreference.globalDescription', 'No specific workspace on login — choose each time')}\r\n </p>\r\n </div>\r\n </div>\r\n </button>\r\n )}\r\n\r\n {/* Current default tenant summary */}\r\n {defaultTenant && (\r\n <div\r\n className=\"relative p-5 bg-[var(--bg-card)] border border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20 overflow-hidden\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <div className=\"flex items-start gap-3\">\r\n <div className={`w-12 h-12 rounded-xl flex items-center justify-center ${\r\n defaultTenant.type === 'Business'\r\n ? 'bg-gradient-to-br from-blue-500/20 to-blue-600/20'\r\n : 'bg-gradient-to-br from-violet-500/20 to-violet-600/20'\r\n }`}>\r\n {defaultTenant.type === 'Business' ? (\r\n <Building2 className=\"w-6 h-6 text-blue-500\" />\r\n ) : (\r\n <User className=\"w-6 h-6 text-violet-500\" />\r\n )}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <h3 className=\"font-semibold text-[var(--text-primary)] truncate\">\r\n {defaultTenant.name}\r\n </h3>\r\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]\">\r\n <Star className=\"w-3 h-3 fill-current\" />\r\n {t('tenants.default', 'Default')}\r\n </span>\r\n </div>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.defaultPreference.specificDescription', 'Auto-connect to this workspace on login')}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n\r\n {/* B2B Tenants Section */}\r\n {b2bTenants.length > 0 && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Building2 className=\"w-5 h-5 text-blue-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.b2b.title', 'Professional Workspaces')}\r\n </h2>\r\n <span className=\"px-2 py-0.5 text-xs font-medium rounded-full bg-blue-500/10 text-blue-600\">\r\n B2B\r\n </span>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\r\n {b2bTenants.map((tenant) => (\r\n <TenantCard\r\n key={tenant.id}\r\n tenant={tenant}\r\n isSelected={currentTenant?.id === tenant.id}\r\n onSetDefault={() => handleSetDefault(tenant.id)}\r\n onEnter={() => handleEnterTenant(tenant.id)}\r\n onManage={tenant.isOwner ? () => handleManageTenant(tenant.id) : undefined}\r\n />\r\n ))}\r\n </div>\r\n </section>\r\n )}\r\n\r\n {/* Personal Tenant Section - only show if B2C is enabled */}\r\n {enableB2C && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <User className=\"w-5 h-5 text-violet-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.personal.title', 'Personal Workspace')}\r\n </h2>\r\n <span className=\"px-2 py-0.5 text-xs font-medium rounded-full bg-violet-500/10 text-violet-600\">\r\n B2C\r\n </span>\r\n </div>\r\n\r\n {personalTenant ? (\r\n <div className=\"max-w-md\">\r\n <TenantCard\r\n tenant={personalTenant}\r\n isSelected={currentTenant?.id === personalTenant.id}\r\n onSetDefault={() => handleSetDefault(personalTenant.id)}\r\n onEnter={() => handleEnterTenant(personalTenant.id)}\r\n />\r\n </div>\r\n ) : (\r\n <div\r\n className=\"flex items-start gap-3 p-4 bg-[var(--warning-bg)] border border-[var(--warning-border)]\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <AlertCircle className=\"w-5 h-5 text-[var(--warning-text)] flex-shrink-0 mt-0.5\" />\r\n <div>\r\n <p className=\"font-medium text-[var(--warning-text)]\">\r\n {t('myspace.tenants.personal.noWorkspace', 'No personal workspace')}\r\n </p>\r\n <p className=\"text-sm text-[var(--warning-text)] opacity-80 mt-1\">\r\n {t(\r\n 'myspace.tenants.personal.noWorkspaceDescription',\r\n 'Your personal workspace will be created automatically when you first access the platform.'\r\n )}\r\n </p>\r\n </div>\r\n </div>\r\n )}\r\n </section>\r\n )}\r\n\r\n {/* Other Tenants Section */}\r\n {otherTenants.length > 0 && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Layers className=\"w-5 h-5 text-gray-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.other.title', 'Other Workspaces')}\r\n </h2>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\r\n {otherTenants.map((tenant) => (\r\n <TenantCard\r\n key={tenant.id}\r\n tenant={tenant}\r\n isSelected={currentTenant?.id === tenant.id}\r\n onSetDefault={() => handleSetDefault(tenant.id)}\r\n onEnter={() => handleEnterTenant(tenant.id)}\r\n onManage={tenant.isOwner ? () => handleManageTenant(tenant.id) : undefined}\r\n />\r\n ))}\r\n </div>\r\n </section>\r\n )}\r\n\r\n {/* Empty state */}\r\n {b2bTenants.length === 0 && !personalTenant && otherTenants.length === 0 && (\r\n <div\r\n className=\"text-center py-12 px-6 bg-[var(--bg-card)] border border-[var(--border-color)]\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <Building2 className=\"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4\" />\r\n <h3 className=\"text-lg font-medium text-[var(--text-primary)] mb-2\">\r\n {t('myspace.tenants.empty.title', 'No workspaces available')}\r\n </h3>\r\n <p className=\"text-[var(--text-secondary)] max-w-md mx-auto\">\r\n {t(\r\n 'myspace.tenants.empty.description',\r\n 'You don\\'t have access to any workspace yet. Contact your administrator to get access.'\r\n )}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MyTenantsPage;\r\n"],"names":["MyTenantsPage","t","useTranslation","navigate","useNavigate","currentTenant","userTenants","b2bTenants","personalTenant","switchTenant","setDefaultTenant","clearDefaultTenant","isLoading","hasGlobalRoles","useTenant","enableB2C","useFeatureConfig","isGlobalDefault","handleEnterTenant","useCallback","tenantId","error","handleSetDefault","handleClearDefault","handleManageTenant","jsx","defaultTenant","otherTenants","jsxs","Star","Globe","Building2","User","tenant","TenantCard","AlertCircle","Layers"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("react"),C=require("react-router-dom"),S=require("react-i18next"),t=require("lucide-react"),j=require("./index-vXiLh35n.js"),f=require("./TenantCard-BJQi7Oew.js");function N(){const{t:a}=S.useTranslation("navigation"),n=C.useNavigate(),{currentTenant:o,userTenants:d,b2bTenants:x,personalTenant:r,switchTenant:g,setDefaultTenant:v,clearDefaultTenant:b,isLoading:w,hasGlobalRoles:k}=j.useTenant(),{enableB2C:T}=j.useFeatureConfig(),l=!d.some(s=>s.isDefault),m=i.useCallback(async s=>{try{await g(s),n("/myspace")}catch(h){console.error("Failed to switch tenant:",h)}},[g,n]),u=i.useCallback(async s=>{try{await v(s)}catch(h){console.error("Failed to set default tenant:",h)}},[v]),D=i.useCallback(async()=>{try{await b()}catch(s){console.error("Failed to clear default tenant:",s)}},[b]),y=i.useCallback(s=>{n(`/administration/tenants/${s}`)},[n]);if(w)return e.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:e.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-[var(--color-accent-500)]"})});const c=d.find(s=>s.isDefault),p=d.filter(s=>s.type!=="Business"&&s.type!=="Personal");return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:a("myspace.tenants.title","My Workspaces")}),e.jsx("p",{className:"text-[var(--text-secondary)] mt-1",children:a("myspace.tenants.description","Manage your workspace access and set your default workspace")})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(t.Star,{className:"w-5 h-5 text-amber-500"}),e.jsx("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.defaultPreference.title","Default Preference")})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-2xl",children:[k&&e.jsx("button",{onClick:l?void 0:D,disabled:l,className:`relative text-left p-5 bg-[var(--bg-card)] border overflow-hidden transition-all duration-200 ${l?"border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20":"border-[var(--border-color)] hover:border-[var(--color-accent-300)] cursor-pointer"}`,style:{borderRadius:"var(--radius-card)"},children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center bg-gradient-to-br from-emerald-500/20 to-emerald-600/20",children:e.jsx(t.Globe,{className:"w-6 h-6 text-emerald-500"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.defaultPreference.global","Global")}),l&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]",children:[e.jsx(t.Star,{className:"w-3 h-3 fill-current"}),a("tenants.default","Default")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:a("myspace.tenants.defaultPreference.globalDescription","No specific workspace on login — choose each time")})]})]})}),c&&e.jsx("div",{className:"relative p-5 bg-[var(--bg-card)] border border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20 overflow-hidden",style:{borderRadius:"var(--radius-card)"},children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`w-12 h-12 rounded-xl flex items-center justify-center ${c.type==="Business"?"bg-gradient-to-br from-blue-500/20 to-blue-600/20":"bg-gradient-to-br from-violet-500/20 to-violet-600/20"}`,children:c.type==="Business"?e.jsx(t.Building2,{className:"w-6 h-6 text-blue-500"}):e.jsx(t.User,{className:"w-6 h-6 text-violet-500"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-[var(--text-primary)] truncate",children:c.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]",children:[e.jsx(t.Star,{className:"w-3 h-3 fill-current"}),a("tenants.default","Default")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:a("myspace.tenants.defaultPreference.specificDescription","Auto-connect to this workspace on login")})]})]})})]})]}),x.length>0&&e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(t.Building2,{className:"w-5 h-5 text-blue-500"}),e.jsx("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.b2b.title","Professional Workspaces")}),e.jsx("span",{className:"px-2 py-0.5 text-xs font-medium rounded-full bg-blue-500/10 text-blue-600",children:"B2B"})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:x.map(s=>e.jsx(f.TenantCard,{tenant:s,isSelected:o?.id===s.id,onSetDefault:()=>u(s.id),onEnter:()=>m(s.id),onManage:s.isOwner?()=>y(s.id):void 0},s.id))})]}),T&&e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(t.User,{className:"w-5 h-5 text-violet-500"}),e.jsx("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.personal.title","Personal Workspace")}),e.jsx("span",{className:"px-2 py-0.5 text-xs font-medium rounded-full bg-violet-500/10 text-violet-600",children:"B2C"})]}),r?e.jsx("div",{className:"max-w-md",children:e.jsx(f.TenantCard,{tenant:r,isSelected:o?.id===r.id,onSetDefault:()=>u(r.id),onEnter:()=>m(r.id)})}):e.jsxs("div",{className:"flex items-start gap-3 p-4 bg-[var(--warning-bg)] border border-[var(--warning-border)]",style:{borderRadius:"var(--radius-card)"},children:[e.jsx(t.AlertCircle,{className:"w-5 h-5 text-[var(--warning-text)] flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-[var(--warning-text)]",children:a("myspace.tenants.personal.noWorkspace","No personal workspace")}),e.jsx("p",{className:"text-sm text-[var(--warning-text)] opacity-80 mt-1",children:a("myspace.tenants.personal.noWorkspaceDescription","Your personal workspace will be created automatically when you first access the platform.")})]})]})]}),p.length>0&&e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(t.Layers,{className:"w-5 h-5 text-gray-500"}),e.jsx("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.other.title","Other Workspaces")})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:p.map(s=>e.jsx(f.TenantCard,{tenant:s,isSelected:o?.id===s.id,onSetDefault:()=>u(s.id),onEnter:()=>m(s.id),onManage:s.isOwner?()=>y(s.id):void 0},s.id))})]}),x.length===0&&!r&&p.length===0&&e.jsxs("div",{className:"text-center py-12 px-6 bg-[var(--bg-card)] border border-[var(--border-color)]",style:{borderRadius:"var(--radius-card)"},children:[e.jsx(t.Building2,{className:"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-[var(--text-primary)] mb-2",children:a("myspace.tenants.empty.title","No workspaces available")}),e.jsx("p",{className:"text-[var(--text-secondary)] max-w-md mx-auto",children:a("myspace.tenants.empty.description","You don't have access to any workspace yet. Contact your administrator to get access.")})]})]})}exports.MyTenantsPage=N;exports.default=N;
2
- //# sourceMappingURL=MyTenantsPage-Bbn4HxN2.js.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("react"),C=require("react-router-dom"),S=require("react-i18next"),t=require("lucide-react"),j=require("./index-DK5czlkn.js"),f=require("./TenantCard-CAgiB-NG.js");function N(){const{t:a}=S.useTranslation("navigation"),n=C.useNavigate(),{currentTenant:o,userTenants:d,b2bTenants:x,personalTenant:r,switchTenant:g,setDefaultTenant:v,clearDefaultTenant:b,isLoading:w,hasGlobalRoles:k}=j.useTenant(),{enableB2C:T}=j.useFeatureConfig(),l=!d.some(s=>s.isDefault),m=i.useCallback(async s=>{try{await g(s),n("/myspace")}catch(h){console.error("Failed to switch tenant:",h)}},[g,n]),u=i.useCallback(async s=>{try{await v(s)}catch(h){console.error("Failed to set default tenant:",h)}},[v]),D=i.useCallback(async()=>{try{await b()}catch(s){console.error("Failed to clear default tenant:",s)}},[b]),y=i.useCallback(s=>{n(`/administration/tenants/${s}`)},[n]);if(w)return e.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:e.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-[var(--color-accent-500)]"})});const c=d.find(s=>s.isDefault),p=d.filter(s=>s.type!=="Business"&&s.type!=="Personal");return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:a("myspace.tenants.title","My Workspaces")}),e.jsx("p",{className:"text-[var(--text-secondary)] mt-1",children:a("myspace.tenants.description","Manage your workspace access and set your default workspace")})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(t.Star,{className:"w-5 h-5 text-amber-500"}),e.jsx("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.defaultPreference.title","Default Preference")})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-2xl",children:[k&&e.jsx("button",{onClick:l?void 0:D,disabled:l,className:`relative text-left p-5 bg-[var(--bg-card)] border overflow-hidden transition-all duration-200 ${l?"border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20":"border-[var(--border-color)] hover:border-[var(--color-accent-300)] cursor-pointer"}`,style:{borderRadius:"var(--radius-card)"},children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center bg-gradient-to-br from-emerald-500/20 to-emerald-600/20",children:e.jsx(t.Globe,{className:"w-6 h-6 text-emerald-500"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.defaultPreference.global","Global")}),l&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]",children:[e.jsx(t.Star,{className:"w-3 h-3 fill-current"}),a("tenants.default","Default")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:a("myspace.tenants.defaultPreference.globalDescription","No specific workspace on login — choose each time")})]})]})}),c&&e.jsx("div",{className:"relative p-5 bg-[var(--bg-card)] border border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20 overflow-hidden",style:{borderRadius:"var(--radius-card)"},children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`w-12 h-12 rounded-xl flex items-center justify-center ${c.type==="Business"?"bg-gradient-to-br from-blue-500/20 to-blue-600/20":"bg-gradient-to-br from-violet-500/20 to-violet-600/20"}`,children:c.type==="Business"?e.jsx(t.Building2,{className:"w-6 h-6 text-blue-500"}):e.jsx(t.User,{className:"w-6 h-6 text-violet-500"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-[var(--text-primary)] truncate",children:c.name}),e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]",children:[e.jsx(t.Star,{className:"w-3 h-3 fill-current"}),a("tenants.default","Default")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:a("myspace.tenants.defaultPreference.specificDescription","Auto-connect to this workspace on login")})]})]})})]})]}),x.length>0&&e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(t.Building2,{className:"w-5 h-5 text-blue-500"}),e.jsx("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.b2b.title","Professional Workspaces")}),e.jsx("span",{className:"px-2 py-0.5 text-xs font-medium rounded-full bg-blue-500/10 text-blue-600",children:"B2B"})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:x.map(s=>e.jsx(f.TenantCard,{tenant:s,isSelected:o?.id===s.id,onSetDefault:()=>u(s.id),onEnter:()=>m(s.id),onManage:s.isOwner?()=>y(s.id):void 0},s.id))})]}),T&&e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(t.User,{className:"w-5 h-5 text-violet-500"}),e.jsx("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.personal.title","Personal Workspace")}),e.jsx("span",{className:"px-2 py-0.5 text-xs font-medium rounded-full bg-violet-500/10 text-violet-600",children:"B2C"})]}),r?e.jsx("div",{className:"max-w-md",children:e.jsx(f.TenantCard,{tenant:r,isSelected:o?.id===r.id,onSetDefault:()=>u(r.id),onEnter:()=>m(r.id)})}):e.jsxs("div",{className:"flex items-start gap-3 p-4 bg-[var(--warning-bg)] border border-[var(--warning-border)]",style:{borderRadius:"var(--radius-card)"},children:[e.jsx(t.AlertCircle,{className:"w-5 h-5 text-[var(--warning-text)] flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-[var(--warning-text)]",children:a("myspace.tenants.personal.noWorkspace","No personal workspace")}),e.jsx("p",{className:"text-sm text-[var(--warning-text)] opacity-80 mt-1",children:a("myspace.tenants.personal.noWorkspaceDescription","Your personal workspace will be created automatically when you first access the platform.")})]})]})]}),p.length>0&&e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(t.Layers,{className:"w-5 h-5 text-gray-500"}),e.jsx("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:a("myspace.tenants.other.title","Other Workspaces")})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:p.map(s=>e.jsx(f.TenantCard,{tenant:s,isSelected:o?.id===s.id,onSetDefault:()=>u(s.id),onEnter:()=>m(s.id),onManage:s.isOwner?()=>y(s.id):void 0},s.id))})]}),x.length===0&&!r&&p.length===0&&e.jsxs("div",{className:"text-center py-12 px-6 bg-[var(--bg-card)] border border-[var(--border-color)]",style:{borderRadius:"var(--radius-card)"},children:[e.jsx(t.Building2,{className:"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-[var(--text-primary)] mb-2",children:a("myspace.tenants.empty.title","No workspaces available")}),e.jsx("p",{className:"text-[var(--text-secondary)] max-w-md mx-auto",children:a("myspace.tenants.empty.description","You don't have access to any workspace yet. Contact your administrator to get access.")})]})]})}exports.MyTenantsPage=N;exports.default=N;
2
+ //# sourceMappingURL=MyTenantsPage-CK4-klmd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MyTenantsPage-Bbn4HxN2.js","sources":["../../src/pages/personal/myspace/MyTenantsPage.tsx"],"sourcesContent":["import { useCallback } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Building2, User, AlertCircle, Globe, Star, Layers } from 'lucide-react';\r\nimport { useTenant } from '@/contexts/TenantContext';\r\nimport { useFeatureConfig } from '@/contexts/FeatureConfigContext';\r\nimport { TenantCard } from '@/components/tenants/TenantCard';\r\n\r\nexport function MyTenantsPage(): ReactElement {\r\n const { t } = useTranslation('navigation');\r\n const navigate = useNavigate();\r\n const {\r\n currentTenant,\r\n userTenants,\r\n b2bTenants,\r\n personalTenant,\r\n switchTenant,\r\n setDefaultTenant,\r\n clearDefaultTenant,\r\n isLoading,\r\n hasGlobalRoles\r\n } = useTenant();\r\n const { enableB2C } = useFeatureConfig();\r\n\r\n const isGlobalDefault = !userTenants.some(t => t.isDefault);\r\n\r\n const handleEnterTenant = useCallback(async (tenantId: string) => {\r\n try {\r\n await switchTenant(tenantId);\r\n navigate('/myspace');\r\n } catch (error) {\r\n console.error('Failed to switch tenant:', error);\r\n }\r\n }, [switchTenant, navigate]);\r\n\r\n const handleSetDefault = useCallback(async (tenantId: string) => {\r\n try {\r\n await setDefaultTenant(tenantId);\r\n } catch (error) {\r\n console.error('Failed to set default tenant:', error);\r\n }\r\n }, [setDefaultTenant]);\r\n\r\n const handleClearDefault = useCallback(async () => {\r\n try {\r\n await clearDefaultTenant();\r\n } catch (error) {\r\n console.error('Failed to clear default tenant:', error);\r\n }\r\n }, [clearDefaultTenant]);\r\n\r\n const handleManageTenant = useCallback((tenantId: string) => {\r\n navigate(`/administration/tenants/${tenantId}`);\r\n }, [navigate]);\r\n\r\n if (isLoading) {\r\n return (\r\n <div className=\"flex items-center justify-center min-h-[400px]\">\r\n <div className=\"animate-spin rounded-full h-8 w-8 border-b-2 border-[var(--color-accent-500)]\" />\r\n </div>\r\n );\r\n }\r\n\r\n const defaultTenant = userTenants.find(t => t.isDefault);\r\n const otherTenants = userTenants.filter(t => t.type !== 'Business' && t.type !== 'Personal');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-2xl font-bold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.title', 'My Workspaces')}\r\n </h1>\r\n <p className=\"text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.description', 'Manage your workspace access and set your default workspace')}\r\n </p>\r\n </div>\r\n\r\n {/* Default Preference Section */}\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Star className=\"w-5 h-5 text-amber-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.defaultPreference.title', 'Default Preference')}\r\n </h2>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-2xl\">\r\n {/* Global option - only for global admins (Super Administrator / Platform Administrator) */}\r\n {hasGlobalRoles && (\r\n <button\r\n onClick={!isGlobalDefault ? handleClearDefault : undefined}\r\n disabled={isGlobalDefault}\r\n className={`relative text-left p-5 bg-[var(--bg-card)] border overflow-hidden transition-all duration-200 ${\r\n isGlobalDefault\r\n ? 'border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20'\r\n : 'border-[var(--border-color)] hover:border-[var(--color-accent-300)] cursor-pointer'\r\n }`}\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <div className=\"flex items-start gap-3\">\r\n <div className=\"w-12 h-12 rounded-xl flex items-center justify-center bg-gradient-to-br from-emerald-500/20 to-emerald-600/20\">\r\n <Globe className=\"w-6 h-6 text-emerald-500\" />\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <h3 className=\"font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.defaultPreference.global', 'Global')}\r\n </h3>\r\n {isGlobalDefault && (\r\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]\">\r\n <Star className=\"w-3 h-3 fill-current\" />\r\n {t('tenants.default', 'Default')}\r\n </span>\r\n )}\r\n </div>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.defaultPreference.globalDescription', 'No specific workspace on login — choose each time')}\r\n </p>\r\n </div>\r\n </div>\r\n </button>\r\n )}\r\n\r\n {/* Current default tenant summary */}\r\n {defaultTenant && (\r\n <div\r\n className=\"relative p-5 bg-[var(--bg-card)] border border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20 overflow-hidden\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <div className=\"flex items-start gap-3\">\r\n <div className={`w-12 h-12 rounded-xl flex items-center justify-center ${\r\n defaultTenant.type === 'Business'\r\n ? 'bg-gradient-to-br from-blue-500/20 to-blue-600/20'\r\n : 'bg-gradient-to-br from-violet-500/20 to-violet-600/20'\r\n }`}>\r\n {defaultTenant.type === 'Business' ? (\r\n <Building2 className=\"w-6 h-6 text-blue-500\" />\r\n ) : (\r\n <User className=\"w-6 h-6 text-violet-500\" />\r\n )}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <h3 className=\"font-semibold text-[var(--text-primary)] truncate\">\r\n {defaultTenant.name}\r\n </h3>\r\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]\">\r\n <Star className=\"w-3 h-3 fill-current\" />\r\n {t('tenants.default', 'Default')}\r\n </span>\r\n </div>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.defaultPreference.specificDescription', 'Auto-connect to this workspace on login')}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n\r\n {/* B2B Tenants Section */}\r\n {b2bTenants.length > 0 && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Building2 className=\"w-5 h-5 text-blue-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.b2b.title', 'Professional Workspaces')}\r\n </h2>\r\n <span className=\"px-2 py-0.5 text-xs font-medium rounded-full bg-blue-500/10 text-blue-600\">\r\n B2B\r\n </span>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\r\n {b2bTenants.map((tenant) => (\r\n <TenantCard\r\n key={tenant.id}\r\n tenant={tenant}\r\n isSelected={currentTenant?.id === tenant.id}\r\n onSetDefault={() => handleSetDefault(tenant.id)}\r\n onEnter={() => handleEnterTenant(tenant.id)}\r\n onManage={tenant.isOwner ? () => handleManageTenant(tenant.id) : undefined}\r\n />\r\n ))}\r\n </div>\r\n </section>\r\n )}\r\n\r\n {/* Personal Tenant Section - only show if B2C is enabled */}\r\n {enableB2C && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <User className=\"w-5 h-5 text-violet-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.personal.title', 'Personal Workspace')}\r\n </h2>\r\n <span className=\"px-2 py-0.5 text-xs font-medium rounded-full bg-violet-500/10 text-violet-600\">\r\n B2C\r\n </span>\r\n </div>\r\n\r\n {personalTenant ? (\r\n <div className=\"max-w-md\">\r\n <TenantCard\r\n tenant={personalTenant}\r\n isSelected={currentTenant?.id === personalTenant.id}\r\n onSetDefault={() => handleSetDefault(personalTenant.id)}\r\n onEnter={() => handleEnterTenant(personalTenant.id)}\r\n />\r\n </div>\r\n ) : (\r\n <div\r\n className=\"flex items-start gap-3 p-4 bg-[var(--warning-bg)] border border-[var(--warning-border)]\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <AlertCircle className=\"w-5 h-5 text-[var(--warning-text)] flex-shrink-0 mt-0.5\" />\r\n <div>\r\n <p className=\"font-medium text-[var(--warning-text)]\">\r\n {t('myspace.tenants.personal.noWorkspace', 'No personal workspace')}\r\n </p>\r\n <p className=\"text-sm text-[var(--warning-text)] opacity-80 mt-1\">\r\n {t(\r\n 'myspace.tenants.personal.noWorkspaceDescription',\r\n 'Your personal workspace will be created automatically when you first access the platform.'\r\n )}\r\n </p>\r\n </div>\r\n </div>\r\n )}\r\n </section>\r\n )}\r\n\r\n {/* Other Tenants Section */}\r\n {otherTenants.length > 0 && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Layers className=\"w-5 h-5 text-gray-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.other.title', 'Other Workspaces')}\r\n </h2>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\r\n {otherTenants.map((tenant) => (\r\n <TenantCard\r\n key={tenant.id}\r\n tenant={tenant}\r\n isSelected={currentTenant?.id === tenant.id}\r\n onSetDefault={() => handleSetDefault(tenant.id)}\r\n onEnter={() => handleEnterTenant(tenant.id)}\r\n onManage={tenant.isOwner ? () => handleManageTenant(tenant.id) : undefined}\r\n />\r\n ))}\r\n </div>\r\n </section>\r\n )}\r\n\r\n {/* Empty state */}\r\n {b2bTenants.length === 0 && !personalTenant && otherTenants.length === 0 && (\r\n <div\r\n className=\"text-center py-12 px-6 bg-[var(--bg-card)] border border-[var(--border-color)]\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <Building2 className=\"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4\" />\r\n <h3 className=\"text-lg font-medium text-[var(--text-primary)] mb-2\">\r\n {t('myspace.tenants.empty.title', 'No workspaces available')}\r\n </h3>\r\n <p className=\"text-[var(--text-secondary)] max-w-md mx-auto\">\r\n {t(\r\n 'myspace.tenants.empty.description',\r\n 'You don\\'t have access to any workspace yet. Contact your administrator to get access.'\r\n )}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MyTenantsPage;\r\n"],"names":["MyTenantsPage","t","useTranslation","navigate","useNavigate","currentTenant","userTenants","b2bTenants","personalTenant","switchTenant","setDefaultTenant","clearDefaultTenant","isLoading","hasGlobalRoles","useTenant","enableB2C","useFeatureConfig","isGlobalDefault","handleEnterTenant","useCallback","tenantId","error","handleSetDefault","handleClearDefault","handleManageTenant","jsx","defaultTenant","otherTenants","jsxs","Star","Globe","Building2","User","tenant","TenantCard","AlertCircle","Layers"],"mappings":"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"}
1
+ {"version":3,"file":"MyTenantsPage-CK4-klmd.js","sources":["../../src/pages/personal/myspace/MyTenantsPage.tsx"],"sourcesContent":["import { useCallback } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Building2, User, AlertCircle, Globe, Star, Layers } from 'lucide-react';\r\nimport { useTenant } from '@/contexts/TenantContext';\r\nimport { useFeatureConfig } from '@/contexts/FeatureConfigContext';\r\nimport { TenantCard } from '@/components/tenants/TenantCard';\r\n\r\nexport function MyTenantsPage(): ReactElement {\r\n const { t } = useTranslation('navigation');\r\n const navigate = useNavigate();\r\n const {\r\n currentTenant,\r\n userTenants,\r\n b2bTenants,\r\n personalTenant,\r\n switchTenant,\r\n setDefaultTenant,\r\n clearDefaultTenant,\r\n isLoading,\r\n hasGlobalRoles\r\n } = useTenant();\r\n const { enableB2C } = useFeatureConfig();\r\n\r\n const isGlobalDefault = !userTenants.some(t => t.isDefault);\r\n\r\n const handleEnterTenant = useCallback(async (tenantId: string) => {\r\n try {\r\n await switchTenant(tenantId);\r\n navigate('/myspace');\r\n } catch (error) {\r\n console.error('Failed to switch tenant:', error);\r\n }\r\n }, [switchTenant, navigate]);\r\n\r\n const handleSetDefault = useCallback(async (tenantId: string) => {\r\n try {\r\n await setDefaultTenant(tenantId);\r\n } catch (error) {\r\n console.error('Failed to set default tenant:', error);\r\n }\r\n }, [setDefaultTenant]);\r\n\r\n const handleClearDefault = useCallback(async () => {\r\n try {\r\n await clearDefaultTenant();\r\n } catch (error) {\r\n console.error('Failed to clear default tenant:', error);\r\n }\r\n }, [clearDefaultTenant]);\r\n\r\n const handleManageTenant = useCallback((tenantId: string) => {\r\n navigate(`/administration/tenants/${tenantId}`);\r\n }, [navigate]);\r\n\r\n if (isLoading) {\r\n return (\r\n <div className=\"flex items-center justify-center min-h-[400px]\">\r\n <div className=\"animate-spin rounded-full h-8 w-8 border-b-2 border-[var(--color-accent-500)]\" />\r\n </div>\r\n );\r\n }\r\n\r\n const defaultTenant = userTenants.find(t => t.isDefault);\r\n const otherTenants = userTenants.filter(t => t.type !== 'Business' && t.type !== 'Personal');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-2xl font-bold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.title', 'My Workspaces')}\r\n </h1>\r\n <p className=\"text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.description', 'Manage your workspace access and set your default workspace')}\r\n </p>\r\n </div>\r\n\r\n {/* Default Preference Section */}\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Star className=\"w-5 h-5 text-amber-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.defaultPreference.title', 'Default Preference')}\r\n </h2>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-2xl\">\r\n {/* Global option - only for global admins (Super Administrator / Platform Administrator) */}\r\n {hasGlobalRoles && (\r\n <button\r\n onClick={!isGlobalDefault ? handleClearDefault : undefined}\r\n disabled={isGlobalDefault}\r\n className={`relative text-left p-5 bg-[var(--bg-card)] border overflow-hidden transition-all duration-200 ${\r\n isGlobalDefault\r\n ? 'border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20'\r\n : 'border-[var(--border-color)] hover:border-[var(--color-accent-300)] cursor-pointer'\r\n }`}\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <div className=\"flex items-start gap-3\">\r\n <div className=\"w-12 h-12 rounded-xl flex items-center justify-center bg-gradient-to-br from-emerald-500/20 to-emerald-600/20\">\r\n <Globe className=\"w-6 h-6 text-emerald-500\" />\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <h3 className=\"font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.defaultPreference.global', 'Global')}\r\n </h3>\r\n {isGlobalDefault && (\r\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]\">\r\n <Star className=\"w-3 h-3 fill-current\" />\r\n {t('tenants.default', 'Default')}\r\n </span>\r\n )}\r\n </div>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.defaultPreference.globalDescription', 'No specific workspace on login — choose each time')}\r\n </p>\r\n </div>\r\n </div>\r\n </button>\r\n )}\r\n\r\n {/* Current default tenant summary */}\r\n {defaultTenant && (\r\n <div\r\n className=\"relative p-5 bg-[var(--bg-card)] border border-[var(--color-accent-500)] ring-2 ring-[var(--color-accent-500)]/20 overflow-hidden\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <div className=\"flex items-start gap-3\">\r\n <div className={`w-12 h-12 rounded-xl flex items-center justify-center ${\r\n defaultTenant.type === 'Business'\r\n ? 'bg-gradient-to-br from-blue-500/20 to-blue-600/20'\r\n : 'bg-gradient-to-br from-violet-500/20 to-violet-600/20'\r\n }`}>\r\n {defaultTenant.type === 'Business' ? (\r\n <Building2 className=\"w-6 h-6 text-blue-500\" />\r\n ) : (\r\n <User className=\"w-6 h-6 text-violet-500\" />\r\n )}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <h3 className=\"font-semibold text-[var(--text-primary)] truncate\">\r\n {defaultTenant.name}\r\n </h3>\r\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]\">\r\n <Star className=\"w-3 h-3 fill-current\" />\r\n {t('tenants.default', 'Default')}\r\n </span>\r\n </div>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">\r\n {t('myspace.tenants.defaultPreference.specificDescription', 'Auto-connect to this workspace on login')}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n\r\n {/* B2B Tenants Section */}\r\n {b2bTenants.length > 0 && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Building2 className=\"w-5 h-5 text-blue-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.b2b.title', 'Professional Workspaces')}\r\n </h2>\r\n <span className=\"px-2 py-0.5 text-xs font-medium rounded-full bg-blue-500/10 text-blue-600\">\r\n B2B\r\n </span>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\r\n {b2bTenants.map((tenant) => (\r\n <TenantCard\r\n key={tenant.id}\r\n tenant={tenant}\r\n isSelected={currentTenant?.id === tenant.id}\r\n onSetDefault={() => handleSetDefault(tenant.id)}\r\n onEnter={() => handleEnterTenant(tenant.id)}\r\n onManage={tenant.isOwner ? () => handleManageTenant(tenant.id) : undefined}\r\n />\r\n ))}\r\n </div>\r\n </section>\r\n )}\r\n\r\n {/* Personal Tenant Section - only show if B2C is enabled */}\r\n {enableB2C && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <User className=\"w-5 h-5 text-violet-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.personal.title', 'Personal Workspace')}\r\n </h2>\r\n <span className=\"px-2 py-0.5 text-xs font-medium rounded-full bg-violet-500/10 text-violet-600\">\r\n B2C\r\n </span>\r\n </div>\r\n\r\n {personalTenant ? (\r\n <div className=\"max-w-md\">\r\n <TenantCard\r\n tenant={personalTenant}\r\n isSelected={currentTenant?.id === personalTenant.id}\r\n onSetDefault={() => handleSetDefault(personalTenant.id)}\r\n onEnter={() => handleEnterTenant(personalTenant.id)}\r\n />\r\n </div>\r\n ) : (\r\n <div\r\n className=\"flex items-start gap-3 p-4 bg-[var(--warning-bg)] border border-[var(--warning-border)]\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <AlertCircle className=\"w-5 h-5 text-[var(--warning-text)] flex-shrink-0 mt-0.5\" />\r\n <div>\r\n <p className=\"font-medium text-[var(--warning-text)]\">\r\n {t('myspace.tenants.personal.noWorkspace', 'No personal workspace')}\r\n </p>\r\n <p className=\"text-sm text-[var(--warning-text)] opacity-80 mt-1\">\r\n {t(\r\n 'myspace.tenants.personal.noWorkspaceDescription',\r\n 'Your personal workspace will be created automatically when you first access the platform.'\r\n )}\r\n </p>\r\n </div>\r\n </div>\r\n )}\r\n </section>\r\n )}\r\n\r\n {/* Other Tenants Section */}\r\n {otherTenants.length > 0 && (\r\n <section>\r\n <div className=\"flex items-center gap-2 mb-4\">\r\n <Layers className=\"w-5 h-5 text-gray-500\" />\r\n <h2 className=\"text-lg font-semibold text-[var(--text-primary)]\">\r\n {t('myspace.tenants.other.title', 'Other Workspaces')}\r\n </h2>\r\n </div>\r\n\r\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\r\n {otherTenants.map((tenant) => (\r\n <TenantCard\r\n key={tenant.id}\r\n tenant={tenant}\r\n isSelected={currentTenant?.id === tenant.id}\r\n onSetDefault={() => handleSetDefault(tenant.id)}\r\n onEnter={() => handleEnterTenant(tenant.id)}\r\n onManage={tenant.isOwner ? () => handleManageTenant(tenant.id) : undefined}\r\n />\r\n ))}\r\n </div>\r\n </section>\r\n )}\r\n\r\n {/* Empty state */}\r\n {b2bTenants.length === 0 && !personalTenant && otherTenants.length === 0 && (\r\n <div\r\n className=\"text-center py-12 px-6 bg-[var(--bg-card)] border border-[var(--border-color)]\"\r\n style={{ borderRadius: 'var(--radius-card)' }}\r\n >\r\n <Building2 className=\"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4\" />\r\n <h3 className=\"text-lg font-medium text-[var(--text-primary)] mb-2\">\r\n {t('myspace.tenants.empty.title', 'No workspaces available')}\r\n </h3>\r\n <p className=\"text-[var(--text-secondary)] max-w-md mx-auto\">\r\n {t(\r\n 'myspace.tenants.empty.description',\r\n 'You don\\'t have access to any workspace yet. Contact your administrator to get access.'\r\n )}\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default MyTenantsPage;\r\n"],"names":["MyTenantsPage","t","useTranslation","navigate","useNavigate","currentTenant","userTenants","b2bTenants","personalTenant","switchTenant","setDefaultTenant","clearDefaultTenant","isLoading","hasGlobalRoles","useTenant","enableB2C","useFeatureConfig","isGlobalDefault","handleEnterTenant","useCallback","tenantId","error","handleSetDefault","handleClearDefault","handleManageTenant","jsx","defaultTenant","otherTenants","jsxs","Star","Globe","Building2","User","tenant","TenantCard","AlertCircle","Layers"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
2
  import { useTranslation as i } from "react-i18next";
3
- import { B as r, _ as a } from "./index-DA5VyW0k.js";
3
+ import { B as r, _ as a } from "./index-CpY95_ro.js";
4
4
  function m() {
5
5
  const { t } = i("support");
6
6
  return /* @__PURE__ */ s("div", { className: "space-y-4", children: [
@@ -29,4 +29,4 @@ function m() {
29
29
  export {
30
30
  m as MyTicketsPage
31
31
  };
32
- //# sourceMappingURL=MyTicketsPage-D9IGVofj.js.map
32
+ //# sourceMappingURL=MyTicketsPage-CFZ1G4dG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MyTicketsPage-D9IGVofj.js","sources":["../../src/pages/platform/support/MyTicketsPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Breadcrumb } from '@/components/ui/Breadcrumb';\r\nimport { TicketsListView } from '@/components/platform/support/TicketsListView';\r\n\r\nexport function MyTicketsPage(): ReactElement {\r\n const { t } = useTranslation('support');\r\n\r\n return (\r\n <div className=\"space-y-4\">\r\n <Breadcrumb\r\n items={[\r\n { label: t('title', 'Support'), href: '/support' },\r\n { label: t('list.myTicketsTitle', 'My Tickets') }\r\n ]}\r\n />\r\n <TicketsListView\r\n mode=\"user\"\r\n showDrafts={true}\r\n basePath=\"/support/my-tickets\"\r\n title={t('list.myTitle', 'Submitted Tickets')}\r\n subtitle={t('list.mySubtitle', 'Tickets you have created')}\r\n createPath=\"/support/my-tickets/create\"\r\n />\r\n </div>\r\n );\r\n}\r\n"],"names":["MyTicketsPage","useTranslation","jsxs","jsx","Breadcrumb","TicketsListView"],"mappings":";;;AAKO,SAASA,IAA8B;AAC5C,QAAM,EAAE,EAAA,IAAMC,EAAe,SAAS;AAEtC,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,EAAE,OAAO,EAAE,SAAS,SAAS,GAAG,MAAM,WAAA;AAAA,UACtC,EAAE,OAAO,EAAE,uBAAuB,YAAY,EAAA;AAAA,QAAE;AAAA,MAClD;AAAA,IAAA;AAAA,IAEF,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,YAAY;AAAA,QACZ,UAAS;AAAA,QACT,OAAO,EAAE,gBAAgB,mBAAmB;AAAA,QAC5C,UAAU,EAAE,mBAAmB,0BAA0B;AAAA,QACzD,YAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EACb,GACF;AAEJ;"}
1
+ {"version":3,"file":"MyTicketsPage-CFZ1G4dG.js","sources":["../../src/pages/platform/support/MyTicketsPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Breadcrumb } from '@/components/ui/Breadcrumb';\r\nimport { TicketsListView } from '@/components/platform/support/TicketsListView';\r\n\r\nexport function MyTicketsPage(): ReactElement {\r\n const { t } = useTranslation('support');\r\n\r\n return (\r\n <div className=\"space-y-4\">\r\n <Breadcrumb\r\n items={[\r\n { label: t('title', 'Support'), href: '/support' },\r\n { label: t('list.myTicketsTitle', 'My Tickets') }\r\n ]}\r\n />\r\n <TicketsListView\r\n mode=\"user\"\r\n showDrafts={true}\r\n basePath=\"/support/my-tickets\"\r\n title={t('list.myTitle', 'Submitted Tickets')}\r\n subtitle={t('list.mySubtitle', 'Tickets you have created')}\r\n createPath=\"/support/my-tickets/create\"\r\n />\r\n </div>\r\n );\r\n}\r\n"],"names":["MyTicketsPage","useTranslation","jsxs","jsx","Breadcrumb","TicketsListView"],"mappings":";;;AAKO,SAASA,IAA8B;AAC5C,QAAM,EAAE,EAAA,IAAMC,EAAe,SAAS;AAEtC,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,EAAE,OAAO,EAAE,SAAS,SAAS,GAAG,MAAM,WAAA;AAAA,UACtC,EAAE,OAAO,EAAE,uBAAuB,YAAY,EAAA;AAAA,QAAE;AAAA,MAClD;AAAA,IAAA;AAAA,IAEF,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,YAAY;AAAA,QACZ,UAAS;AAAA,QACT,OAAO,EAAE,gBAAgB,mBAAmB;AAAA,QAC5C,UAAU,EAAE,mBAAmB,0BAA0B;AAAA,QACzD,YAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EACb,GACF;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react-i18next"),s=require("./index-vXiLh35n.js");function r(){const{t:e}=i.useTranslation("support");return t.jsxs("div",{className:"space-y-4",children:[t.jsx(s.Breadcrumb,{items:[{label:e("title","Support"),href:"/support"},{label:e("list.myTicketsTitle","My Tickets")}]}),t.jsx(s.TicketsListView,{mode:"user",showDrafts:!0,basePath:"/support/my-tickets",title:e("list.myTitle","Submitted Tickets"),subtitle:e("list.mySubtitle","Tickets you have created"),createPath:"/support/my-tickets/create"})]})}exports.MyTicketsPage=r;
2
- //# sourceMappingURL=MyTicketsPage-BvZeiTXu.js.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react-i18next"),s=require("./index-DK5czlkn.js");function r(){const{t:e}=i.useTranslation("support");return t.jsxs("div",{className:"space-y-4",children:[t.jsx(s.Breadcrumb,{items:[{label:e("title","Support"),href:"/support"},{label:e("list.myTicketsTitle","My Tickets")}]}),t.jsx(s.TicketsListView,{mode:"user",showDrafts:!0,basePath:"/support/my-tickets",title:e("list.myTitle","Submitted Tickets"),subtitle:e("list.mySubtitle","Tickets you have created"),createPath:"/support/my-tickets/create"})]})}exports.MyTicketsPage=r;
2
+ //# sourceMappingURL=MyTicketsPage-DuhpwhZx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MyTicketsPage-BvZeiTXu.js","sources":["../../src/pages/platform/support/MyTicketsPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Breadcrumb } from '@/components/ui/Breadcrumb';\r\nimport { TicketsListView } from '@/components/platform/support/TicketsListView';\r\n\r\nexport function MyTicketsPage(): ReactElement {\r\n const { t } = useTranslation('support');\r\n\r\n return (\r\n <div className=\"space-y-4\">\r\n <Breadcrumb\r\n items={[\r\n { label: t('title', 'Support'), href: '/support' },\r\n { label: t('list.myTicketsTitle', 'My Tickets') }\r\n ]}\r\n />\r\n <TicketsListView\r\n mode=\"user\"\r\n showDrafts={true}\r\n basePath=\"/support/my-tickets\"\r\n title={t('list.myTitle', 'Submitted Tickets')}\r\n subtitle={t('list.mySubtitle', 'Tickets you have created')}\r\n createPath=\"/support/my-tickets/create\"\r\n />\r\n </div>\r\n );\r\n}\r\n"],"names":["MyTicketsPage","t","useTranslation","jsxs","jsx","Breadcrumb","TicketsListView"],"mappings":"iLAKO,SAASA,GAA8B,CAC5C,KAAM,CAAE,EAAAC,CAAA,EAAMC,EAAAA,eAAe,SAAS,EAEtC,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAACC,EAAAA,WAAA,CACC,MAAO,CACL,CAAE,MAAOJ,EAAE,QAAS,SAAS,EAAG,KAAM,UAAA,EACtC,CAAE,MAAOA,EAAE,sBAAuB,YAAY,CAAA,CAAE,CAClD,CAAA,EAEFG,EAAAA,IAACE,EAAAA,gBAAA,CACC,KAAK,OACL,WAAY,GACZ,SAAS,sBACT,MAAOL,EAAE,eAAgB,mBAAmB,EAC5C,SAAUA,EAAE,kBAAmB,0BAA0B,EACzD,WAAW,4BAAA,CAAA,CACb,EACF,CAEJ"}
1
+ {"version":3,"file":"MyTicketsPage-DuhpwhZx.js","sources":["../../src/pages/platform/support/MyTicketsPage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Breadcrumb } from '@/components/ui/Breadcrumb';\r\nimport { TicketsListView } from '@/components/platform/support/TicketsListView';\r\n\r\nexport function MyTicketsPage(): ReactElement {\r\n const { t } = useTranslation('support');\r\n\r\n return (\r\n <div className=\"space-y-4\">\r\n <Breadcrumb\r\n items={[\r\n { label: t('title', 'Support'), href: '/support' },\r\n { label: t('list.myTicketsTitle', 'My Tickets') }\r\n ]}\r\n />\r\n <TicketsListView\r\n mode=\"user\"\r\n showDrafts={true}\r\n basePath=\"/support/my-tickets\"\r\n title={t('list.myTitle', 'Submitted Tickets')}\r\n subtitle={t('list.mySubtitle', 'Tickets you have created')}\r\n createPath=\"/support/my-tickets/create\"\r\n />\r\n </div>\r\n );\r\n}\r\n"],"names":["MyTicketsPage","t","useTranslation","jsxs","jsx","Breadcrumb","TicketsListView"],"mappings":"iLAKO,SAASA,GAA8B,CAC5C,KAAM,CAAE,EAAAC,CAAA,EAAMC,EAAAA,eAAe,SAAS,EAEtC,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAACC,EAAAA,WAAA,CACC,MAAO,CACL,CAAE,MAAOJ,EAAE,QAAS,SAAS,EAAG,KAAM,UAAA,EACtC,CAAE,MAAOA,EAAE,sBAAuB,YAAY,CAAA,CAAE,CAClD,CAAA,EAEFG,EAAAA,IAACE,EAAAA,gBAAA,CACC,KAAK,OACL,WAAY,GACZ,SAAS,sBACT,MAAOL,EAAE,eAAgB,mBAAmB,EAC5C,SAAUA,EAAE,kBAAmB,0BAA0B,EACzD,WAAW,4BAAA,CAAA,CACb,EACF,CAEJ"}
@@ -3,7 +3,7 @@ import { useState as i, useCallback as K, useEffect as Q } from "react";
3
3
  import { useTranslation as V } from "react-i18next";
4
4
  import * as W from "lucide-react";
5
5
  import { Loader2 as T, ChevronDown as Y, ChevronRight as Z, MoreHorizontal as _, Edit2 as S, EyeOff as $, Eye as ee, X as E } from "lucide-react";
6
- import { k as u, B as re } from "./index-DA5VyW0k.js";
6
+ import { k as u, B as re } from "./index-CpY95_ro.js";
7
7
  const D = ({ name: o, className: p }) => {
8
8
  const s = W[o];
9
9
  return s ? /* @__PURE__ */ r(s, { className: p }) : null;
@@ -437,4 +437,4 @@ function ne() {
437
437
  export {
438
438
  ne as NavigationAppsPage
439
439
  };
440
- //# sourceMappingURL=NavigationAppsPage-ChtMK1yt.js.map
440
+ //# sourceMappingURL=NavigationAppsPage-BnNQRfBP.js.map