@atlashub/smartstack 3.21.0 → 3.25.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.
- package/dist/chunks/{AgentSkillsPage-7si3Ng8e.js → AgentSkillsPage-BWQSCYl-.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-7si3Ng8e.js.map → AgentSkillsPage-BWQSCYl-.js.map} +1 -1
- package/dist/chunks/{AgentSkillsPage-D0cD1QdM.js → AgentSkillsPage-IQcMnBaD.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-D0cD1QdM.js.map → AgentSkillsPage-IQcMnBaD.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-H_7ze33H.js → AgentWorkloadPage-DqrjkvWL.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-H_7ze33H.js.map → AgentWorkloadPage-DqrjkvWL.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-D4d86cdV.js → AgentWorkloadPage-w-HiyFYP.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-D4d86cdV.js.map → AgentWorkloadPage-w-HiyFYP.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-2ktkRrCb.js → ApiCatalogDetailPage-D3L8Yf4G.js} +3 -3
- package/dist/chunks/{ApiCatalogDetailPage-2ktkRrCb.js.map → ApiCatalogDetailPage-D3L8Yf4G.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-BQ53xuwD.js → ApiCatalogDetailPage-MPT3Kz6H.js} +2 -2
- package/dist/chunks/{ApiCatalogDetailPage-BQ53xuwD.js.map → ApiCatalogDetailPage-MPT3Kz6H.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-BEqTDJz8.js → ApiCatalogPage-D4Hg3uiS.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-BEqTDJz8.js.map → ApiCatalogPage-D4Hg3uiS.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-BBkWSLI8.js → ApiCatalogPage-DRg5Cz0r.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-BBkWSLI8.js.map → ApiCatalogPage-DRg5Cz0r.js.map} +1 -1
- package/dist/chunks/{ApplicationDetailPage-BYJ2YMPq.js → ApplicationDetailPage-Caizuyn2.js} +2 -2
- package/dist/chunks/{ApplicationDetailPage-BYJ2YMPq.js.map → ApplicationDetailPage-Caizuyn2.js.map} +1 -1
- package/dist/chunks/{ApplicationDetailPage-D8-bf1as.js → ApplicationDetailPage-CuCW6aMB.js} +4 -4
- package/dist/chunks/{ApplicationDetailPage-D8-bf1as.js.map → ApplicationDetailPage-CuCW6aMB.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-BBlLms2r.js → ApplicationsDashboardPage-B2MW8-Kc.js} +2 -2
- package/dist/chunks/{ApplicationsDashboardPage-BBlLms2r.js.map → ApplicationsDashboardPage-B2MW8-Kc.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-DTWZxJJM.js → ApplicationsDashboardPage-BDIjFIYZ.js} +3 -3
- package/dist/chunks/{ApplicationsDashboardPage-DTWZxJJM.js.map → ApplicationsDashboardPage-BDIjFIYZ.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-BQaMsK1K.js → ApplicationsGridPage-DV-FihKj.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-BQaMsK1K.js.map → ApplicationsGridPage-DV-FihKj.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-DbVcvezt.js → ApplicationsGridPage-DXsTfXPI.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-DbVcvezt.js.map → ApplicationsGridPage-DXsTfXPI.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-DYKM2Yeo.js → ApplicationsListPage--CGkyBuJ.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-DYKM2Yeo.js.map → ApplicationsListPage--CGkyBuJ.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-C91v2rZt.js → ApplicationsListPage-JUX823bh.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-C91v2rZt.js.map → ApplicationsListPage-JUX823bh.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-BCbgotIx.js → ApplicationsPage-6zgFye6w.js} +2 -2
- package/dist/chunks/{ApplicationsPage-BCbgotIx.js.map → ApplicationsPage-6zgFye6w.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-CW3-Hjlu.js → ApplicationsPage-CQPuuiO6.js} +4 -4
- package/dist/chunks/{ApplicationsPage-CW3-Hjlu.js.map → ApplicationsPage-CQPuuiO6.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-D8vfGDBN.js → AssignmentRulesPage-CFffeEbo.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-D8vfGDBN.js.map → AssignmentRulesPage-CFffeEbo.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-CxktlEMB.js → AssignmentRulesPage-D78UeUId.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-CxktlEMB.js.map → AssignmentRulesPage-D78UeUId.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-DmfBYQAD.js → AssignmentsPage-Cww2ifZF.js} +2 -2
- package/dist/chunks/{AssignmentsPage-DmfBYQAD.js.map → AssignmentsPage-Cww2ifZF.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-sRCCBmRc.js → AssignmentsPage-DE_QS2LO.js} +2 -2
- package/dist/chunks/{AssignmentsPage-sRCCBmRc.js.map → AssignmentsPage-DE_QS2LO.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-C7XiZxKb.js → AuthCallbackPage-CA2nO6DG.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-C7XiZxKb.js.map → AuthCallbackPage-CA2nO6DG.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-BCe_bwJM.js → AuthCallbackPage-CDUAoX-N.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-BCe_bwJM.js.map → AuthCallbackPage-CDUAoX-N.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-BUfGSqxF.js → ConfirmEmailPage-BqsILAYH.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-BUfGSqxF.js.map → ConfirmEmailPage-BqsILAYH.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-Buj4x-rx.js → ConfirmEmailPage-INeHCuMB.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-Buj4x-rx.js.map → ConfirmEmailPage-INeHCuMB.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-CKDX_HQm.js → CreateSupportTicketPage-BWeuV2aU.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-CKDX_HQm.js.map → CreateSupportTicketPage-BWeuV2aU.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-0LgY-_pu.js → CreateSupportTicketPage-OBwF4v7b.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-0LgY-_pu.js.map → CreateSupportTicketPage-OBwF4v7b.js.map} +1 -1
- package/dist/chunks/{DashboardPage-CUZ80NGV.js → DashboardPage-CKHqWrdS.js} +3 -3
- package/dist/chunks/{DashboardPage-CUZ80NGV.js.map → DashboardPage-CKHqWrdS.js.map} +1 -1
- package/dist/chunks/{DashboardPage-CaNOAstg.js → DashboardPage-COmc9b__.js} +3 -3
- package/dist/chunks/{DashboardPage-CaNOAstg.js.map → DashboardPage-COmc9b__.js.map} +1 -1
- package/dist/chunks/{DashboardPage-B48_rQFi.js → DashboardPage-CfKZHiSj.js} +2 -2
- package/dist/chunks/{DashboardPage-B48_rQFi.js.map → DashboardPage-CfKZHiSj.js.map} +1 -1
- package/dist/chunks/{DashboardPage-CUZV1J9t.js → DashboardPage-CwEZZ3jx.js} +2 -2
- package/dist/chunks/{DashboardPage-CUZV1J9t.js.map → DashboardPage-CwEZZ3jx.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-CdzAbnGy.js → EscalationConfigPage--7lgZ0kJ.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-CdzAbnGy.js.map → EscalationConfigPage--7lgZ0kJ.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-CYGIl_e6.js → EscalationConfigPage-DPyiBcqV.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-CYGIl_e6.js.map → EscalationConfigPage-DPyiBcqV.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-lRpkwcX7.js → ForceChangePasswordPage-BE-6umub.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-lRpkwcX7.js.map → ForceChangePasswordPage-BE-6umub.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-CvmYAV3r.js → ForceChangePasswordPage-CnsYoWmV.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-CvmYAV3r.js.map → ForceChangePasswordPage-CnsYoWmV.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage-0u49E4Pw.js → ForgotPasswordPage-CSq4DnFF.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage-0u49E4Pw.js.map → ForgotPasswordPage-CSq4DnFF.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage-CxQUqKOm.js → ForgotPasswordPage-DZLVolAC.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage-CxQUqKOm.js.map → ForgotPasswordPage-DZLVolAC.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-DFBvVO1S.js → GroupDetailPage-Bf9Wb_2j.js} +5 -5
- package/dist/chunks/{GroupDetailPage-DFBvVO1S.js.map → GroupDetailPage-Bf9Wb_2j.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-B2FkKrGG.js → GroupDetailPage-R-hf3rJ7.js} +2 -2
- package/dist/chunks/{GroupDetailPage-B2FkKrGG.js.map → GroupDetailPage-R-hf3rJ7.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-C9IX4c0K.js → MyAccessRequestsPage-BIisvWM6.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-C9IX4c0K.js.map → MyAccessRequestsPage-BIisvWM6.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-D6pVULNM.js → MyAccessRequestsPage-BLSV7Tbx.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-D6pVULNM.js.map → MyAccessRequestsPage-BLSV7Tbx.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-BEcYYdGR.js → MyTenantsPage-D-7k9CP1.js} +3 -3
- package/dist/chunks/{MyTenantsPage-BEcYYdGR.js.map → MyTenantsPage-D-7k9CP1.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-D9f85zjF.js → MyTenantsPage-DqGW6aDt.js} +2 -2
- package/dist/chunks/{MyTenantsPage-D9f85zjF.js.map → MyTenantsPage-DqGW6aDt.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-DJR8h6y1.js → MyTicketsPage--DgDsnZA.js} +2 -2
- package/dist/chunks/{MyTicketsPage-DJR8h6y1.js.map → MyTicketsPage--DgDsnZA.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-DiOUExKJ.js → MyTicketsPage-CqJ3Aqob.js} +2 -2
- package/dist/chunks/{MyTicketsPage-DiOUExKJ.js.map → MyTicketsPage-CqJ3Aqob.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-CeHbxfZw.js → NavigationAppsPage-Bebis_RT.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-CeHbxfZw.js.map → NavigationAppsPage-Bebis_RT.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-If7tmCFY.js → NavigationAppsPage-THNPOAjv.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-If7tmCFY.js.map → NavigationAppsPage-THNPOAjv.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-C29Lln5o.js → NotificationsPage-CAbNW_Cn.js} +2 -2
- package/dist/chunks/{NotificationsPage-C29Lln5o.js.map → NotificationsPage-CAbNW_Cn.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-BiaLRb0s.js → NotificationsPage-DxwizUhL.js} +2 -2
- package/dist/chunks/{NotificationsPage-BiaLRb0s.js.map → NotificationsPage-DxwizUhL.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-DQrBKNBq.js → OnboardingWizardPage-C6HlbJ3K.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-DQrBKNBq.js.map → OnboardingWizardPage-C6HlbJ3K.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-BQah4cI8.js → OnboardingWizardPage-CyC2zONO.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-BQah4cI8.js.map → OnboardingWizardPage-CyC2zONO.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-Ckjdjvf9.js → PermissionDetailPage-BDHiNgky.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-Ckjdjvf9.js.map → PermissionDetailPage-BDHiNgky.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-Dh8v7mGj.js → PermissionDetailPage-C5K17ydY.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-Dh8v7mGj.js.map → PermissionDetailPage-C5K17ydY.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-l0PnY-EE.js → PermissionsPage-COI5LJPo.js} +2 -2
- package/dist/chunks/{PermissionsPage-l0PnY-EE.js.map → PermissionsPage-COI5LJPo.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-DLy9U3P3.js → PermissionsPage-CkOwH2_d.js} +2 -2
- package/dist/chunks/{PermissionsPage-DLy9U3P3.js.map → PermissionsPage-CkOwH2_d.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-DFBx38-x.js → PortalDashboardPage-CoEC4CmC.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-DFBx38-x.js.map → PortalDashboardPage-CoEC4CmC.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-rQYhrX0q.js → PortalDashboardPage-DrYymEf-.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-rQYhrX0q.js.map → PortalDashboardPage-DrYymEf-.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-BBu8yZQB.js → PreferencesPage-CJRaU3ba.js} +2 -2
- package/dist/chunks/{PreferencesPage-BBu8yZQB.js.map → PreferencesPage-CJRaU3ba.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-B81MsNV1.js → PreferencesPage-Cqr9mAab.js} +2 -2
- package/dist/chunks/{PreferencesPage-B81MsNV1.js.map → PreferencesPage-Cqr9mAab.js.map} +1 -1
- package/dist/chunks/{ProfilePage-DDrl10zj.js → ProfilePage-BZVpg6-l.js} +2 -2
- package/dist/chunks/{ProfilePage-DDrl10zj.js.map → ProfilePage-BZVpg6-l.js.map} +1 -1
- package/dist/chunks/{ProfilePage-DPoXwdnc.js → ProfilePage-Cu_FITeL.js} +2 -2
- package/dist/chunks/{ProfilePage-DPoXwdnc.js.map → ProfilePage-Cu_FITeL.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-eFsKjIEK.js → ReferencesManagementPage-DUlVk9Ps.js} +3 -3
- package/dist/chunks/{ReferencesManagementPage-eFsKjIEK.js.map → ReferencesManagementPage-DUlVk9Ps.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-DhVsuElE.js → ReferencesManagementPage-ZCuYtqd7.js} +2 -2
- package/dist/chunks/{ReferencesManagementPage-DhVsuElE.js.map → ReferencesManagementPage-ZCuYtqd7.js.map} +1 -1
- package/dist/chunks/{RegisterPage-CiQib3-6.js → RegisterPage-C4xmVwh9.js} +2 -2
- package/dist/chunks/{RegisterPage-CiQib3-6.js.map → RegisterPage-C4xmVwh9.js.map} +1 -1
- package/dist/chunks/{RegisterPage-bXCcJD88.js → RegisterPage-DGyzoIHT.js} +2 -2
- package/dist/chunks/{RegisterPage-bXCcJD88.js.map → RegisterPage-DGyzoIHT.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-Dqiahhnj.js → ResetPasswordPage-DqDD6VPR.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-Dqiahhnj.js.map → ResetPasswordPage-DqDD6VPR.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-CubPG3yv.js → ResetPasswordPage-Glu-aeqv.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-CubPG3yv.js.map → ResetPasswordPage-Glu-aeqv.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-Bg7XZmR1.js → ResolutionModal-CxjANAOP.js} +2 -2
- package/dist/chunks/{ResolutionModal-Bg7XZmR1.js.map → ResolutionModal-CxjANAOP.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-DqRk_T0n.js → ResolutionModal-Duat18qV.js} +2 -2
- package/dist/chunks/{ResolutionModal-DqRk_T0n.js.map → ResolutionModal-Duat18qV.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-Blau6_4c.js → RoleDetailPage-BQffUSnt.js} +3 -3
- package/dist/chunks/{RoleDetailPage-Blau6_4c.js.map → RoleDetailPage-BQffUSnt.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-CiRVxxIP.js → RoleDetailPage-JTm5lD1_.js} +2 -2
- package/dist/chunks/{RoleDetailPage-CiRVxxIP.js.map → RoleDetailPage-JTm5lD1_.js.map} +1 -1
- package/dist/chunks/{RolesPage-Pm-RN3lP.js → RolesPage-B9rRzciI.js} +2 -2
- package/dist/chunks/{RolesPage-Pm-RN3lP.js.map → RolesPage-B9rRzciI.js.map} +1 -1
- package/dist/chunks/{RolesPage-Cb8joqdJ.js → RolesPage-BN8_zMOC.js} +2 -2
- package/dist/chunks/{RolesPage-Cb8joqdJ.js.map → RolesPage-BN8_zMOC.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-B86McKM6.js → SlaConfigPage-B7kZNig4.js} +2 -2
- package/dist/chunks/{SlaConfigPage-B86McKM6.js.map → SlaConfigPage-B7kZNig4.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-BY7gvYU6.js → SlaConfigPage-okvZfA_K.js} +2 -2
- package/dist/chunks/{SlaConfigPage-BY7gvYU6.js.map → SlaConfigPage-okvZfA_K.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-BYxcLMSd.js → SupportPermissionsPage-DGAPqJbl.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-BYxcLMSd.js.map → SupportPermissionsPage-DGAPqJbl.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-MXqXNJIZ.js → SupportPermissionsPage-Dg_wLOme.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-MXqXNJIZ.js.map → SupportPermissionsPage-Dg_wLOme.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-BDguJ401.js → TemplatesPage-DT9fhlAU.js} +2 -2
- package/dist/chunks/{TemplatesPage-BDguJ401.js.map → TemplatesPage-DT9fhlAU.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-DdnGgioU.js → TemplatesPage-DiEk538p.js} +2 -2
- package/dist/chunks/{TemplatesPage-DdnGgioU.js.map → TemplatesPage-DiEk538p.js.map} +1 -1
- package/dist/chunks/{TenantCard-ffwWsgFQ.js → TenantCard-BbSYk9_Z.js} +2 -2
- package/dist/chunks/{TenantCard-ffwWsgFQ.js.map → TenantCard-BbSYk9_Z.js.map} +1 -1
- package/dist/chunks/{TenantCard-CUjb6og9.js → TenantCard-CEkiKxcZ.js} +2 -2
- package/dist/chunks/{TenantCard-CUjb6og9.js.map → TenantCard-CEkiKxcZ.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-Dz7i1I43.js → TenantScopeSelector-BWfYxvEa.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-Dz7i1I43.js.map → TenantScopeSelector-BWfYxvEa.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-Cym_Zyps.js → TenantScopeSelector-D-BKgQPV.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-Cym_Zyps.js.map → TenantScopeSelector-D-BKgQPV.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-GOh9GX7E.js → TicketDetailPage-C1mNS9Up.js} +2 -2
- package/dist/chunks/{TicketDetailPage-GOh9GX7E.js.map → TicketDetailPage-C1mNS9Up.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-Du8WMyqf.js → TicketDetailPage-ieVDRh42.js} +2 -2
- package/dist/chunks/{TicketDetailPage-Du8WMyqf.js.map → TicketDetailPage-ieVDRh42.js.map} +1 -1
- package/dist/chunks/{TicketsPage-Bqd6moQy.js → TicketsPage-CnuWsnIW.js} +2 -2
- package/dist/chunks/{TicketsPage-Bqd6moQy.js.map → TicketsPage-CnuWsnIW.js.map} +1 -1
- package/dist/chunks/{TicketsPage-WdU4Bb7M.js → TicketsPage-jjyY15_D.js} +2 -2
- package/dist/chunks/{TicketsPage-WdU4Bb7M.js.map → TicketsPage-jjyY15_D.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-Cm1emgwR.js → UserCreateTicketPage-B8Tvf-ag.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-Cm1emgwR.js.map → UserCreateTicketPage-B8Tvf-ag.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-BPw-5Y_D.js → UserCreateTicketPage-DnOsDlfO.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-BPw-5Y_D.js.map → UserCreateTicketPage-DnOsDlfO.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-BP5WeXPS.js → UserDashboardPage-BrtkJ-NB.js} +2 -2
- package/dist/chunks/{UserDashboardPage-BP5WeXPS.js.map → UserDashboardPage-BrtkJ-NB.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-B53C8fUq.js → UserDashboardPage-KLB5CQP5.js} +2 -2
- package/dist/chunks/{UserDashboardPage-B53C8fUq.js.map → UserDashboardPage-KLB5CQP5.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-B110bmGX.js → UserDetailPage-U7smBQoF.js} +5 -5
- package/dist/chunks/{UserDetailPage-B110bmGX.js.map → UserDetailPage-U7smBQoF.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-CV2VCE46.js → UserDetailPage-_J6lcKAU.js} +2 -2
- package/dist/chunks/{UserDetailPage-CV2VCE46.js.map → UserDetailPage-_J6lcKAU.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-CCNJON1V.js → UserTicketDetailPage-CWoYQgH-.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-CCNJON1V.js.map → UserTicketDetailPage-CWoYQgH-.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-V0mLXrox.js → UserTicketDetailPage-DkufSlvZ.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-V0mLXrox.js.map → UserTicketDetailPage-DkufSlvZ.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-CmdaU-z-.js → UsersGroupsPage-C38s2-Rq.js} +3 -3
- package/dist/chunks/{UsersGroupsPage-CmdaU-z-.js.map → UsersGroupsPage-C38s2-Rq.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-BgfAMgEP.js → UsersGroupsPage-Dq3rAteo.js} +2 -2
- package/dist/chunks/{UsersGroupsPage-BgfAMgEP.js.map → UsersGroupsPage-Dq3rAteo.js.map} +1 -1
- package/dist/chunks/{UsersPage-Bg7033pp.js → UsersPage-B5C5KEUR.js} +2 -2
- package/dist/chunks/{UsersPage-Bg7033pp.js.map → UsersPage-B5C5KEUR.js.map} +1 -1
- package/dist/chunks/{UsersPage-TYAfwPY1.js → UsersPage-CXC9Hvq6.js} +2 -2
- package/dist/chunks/{UsersPage-TYAfwPY1.js.map → UsersPage-CXC9Hvq6.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-DZeDvzwv.js → accessRequestsApi-B-4TJ5_U.js} +2 -2
- package/dist/chunks/{accessRequestsApi-DZeDvzwv.js.map → accessRequestsApi-B-4TJ5_U.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-ZXFPCid2.js → accessRequestsApi-DZSfThpd.js} +2 -2
- package/dist/chunks/{accessRequestsApi-ZXFPCid2.js.map → accessRequestsApi-DZSfThpd.js.map} +1 -1
- package/dist/chunks/{aiApi-CsH8DXgs.js → aiApi-B20Teu2v.js} +2 -2
- package/dist/chunks/{aiApi-CsH8DXgs.js.map → aiApi-B20Teu2v.js.map} +1 -1
- package/dist/chunks/{aiApi-CVPzFTXa.js → aiApi-DMGz-RPM.js} +2 -2
- package/dist/chunks/{aiApi-CVPzFTXa.js.map → aiApi-DMGz-RPM.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-B8AhFYLr.js → applicationAnalyticsApi-Bwa75Fzd.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-B8AhFYLr.js.map → applicationAnalyticsApi-Bwa75Fzd.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-Ce_1qOk-.js → applicationAnalyticsApi-CLBqRPfN.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-Ce_1qOk-.js.map → applicationAnalyticsApi-CLBqRPfN.js.map} +1 -1
- package/dist/chunks/{groupsApi-BgCk2fsp.js → groupsApi-QzXI-5xu.js} +2 -2
- package/dist/chunks/{groupsApi-BgCk2fsp.js.map → groupsApi-QzXI-5xu.js.map} +1 -1
- package/dist/chunks/{groupsApi-BIbG665N.js → groupsApi-hB9kSWEd.js} +2 -2
- package/dist/chunks/{groupsApi-BIbG665N.js.map → groupsApi-hB9kSWEd.js.map} +1 -1
- package/dist/chunks/{index-Cb3LotuT.js → index--NGcBYUu.js} +3 -3
- package/dist/chunks/{index-Cb3LotuT.js.map → index--NGcBYUu.js.map} +1 -1
- package/dist/chunks/{index-C33zcyF4.js → index--aPwOFjF.js} +2 -2
- package/dist/chunks/{index-C33zcyF4.js.map → index--aPwOFjF.js.map} +1 -1
- package/dist/chunks/{index-sMr9qND_.js → index-0VrOtwP0.js} +2 -2
- package/dist/chunks/{index-sMr9qND_.js.map → index-0VrOtwP0.js.map} +1 -1
- package/dist/chunks/{index-DDKetfKq.js → index-37U271aw.js} +2 -2
- package/dist/chunks/{index-DDKetfKq.js.map → index-37U271aw.js.map} +1 -1
- package/dist/chunks/{index-B9fS7ir6.js → index-B7qZTuQ-.js} +2 -2
- package/dist/chunks/{index-B9fS7ir6.js.map → index-B7qZTuQ-.js.map} +1 -1
- package/dist/chunks/{index-CdjBY7L8.js → index-Bedzmqr-.js} +2 -2
- package/dist/chunks/{index-CdjBY7L8.js.map → index-Bedzmqr-.js.map} +1 -1
- package/dist/chunks/{index-CHG_O1fS.js → index-Betxo5g5.js} +2 -2
- package/dist/chunks/{index-CHG_O1fS.js.map → index-Betxo5g5.js.map} +1 -1
- package/dist/chunks/{index-jiGu-H8x.js → index-BmaJz475.js} +2 -2
- package/dist/chunks/{index-jiGu-H8x.js.map → index-BmaJz475.js.map} +1 -1
- package/dist/chunks/{index-C53JoVNk.js → index-Buhqag3v.js} +2 -2
- package/dist/chunks/{index-C53JoVNk.js.map → index-Buhqag3v.js.map} +1 -1
- package/dist/chunks/{index-DO0Rw7hX.js → index-C3VxlfKq.js} +2 -2
- package/dist/chunks/{index-DO0Rw7hX.js.map → index-C3VxlfKq.js.map} +1 -1
- package/dist/chunks/{index-CSQ60fpG.js → index-CgpRo8Oe.js} +2 -2
- package/dist/chunks/{index-CSQ60fpG.js.map → index-CgpRo8Oe.js.map} +1 -1
- package/dist/chunks/{index-B-e-ELsf.js → index-DOY0w8Iu.js} +8 -8
- package/dist/chunks/{index-B-e-ELsf.js.map → index-DOY0w8Iu.js.map} +1 -1
- package/dist/chunks/{index-D2REDIRX.js → index-DwuvIOrQ.js} +2 -2
- package/dist/chunks/{index-D2REDIRX.js.map → index-DwuvIOrQ.js.map} +1 -1
- package/dist/chunks/{index-DCcl7Qof.js → index-DzedSLdI.js} +2 -2
- package/dist/chunks/{index-DCcl7Qof.js.map → index-DzedSLdI.js.map} +1 -1
- package/dist/chunks/{index-2wUhd9Lu.js → index-IgLVXPg8.js} +10 -10
- package/dist/chunks/index-IgLVXPg8.js.map +1 -0
- package/dist/chunks/{index-CwSaRXXg.js → index-lpIzhufD.js} +1916 -1900
- package/dist/chunks/index-lpIzhufD.js.map +1 -0
- package/dist/chunks/{index-Cuwn2q-f.js → index-mLUKwbGl.js} +4 -4
- package/dist/chunks/{index-Cuwn2q-f.js.map → index-mLUKwbGl.js.map} +1 -1
- package/dist/chunks/{index-B0mk2tNY.js → index-tO6MMIFB.js} +2 -2
- package/dist/chunks/{index-B0mk2tNY.js.map → index-tO6MMIFB.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-BpNANQ5s.js → tenantIconMap-BQD9byc8.js} +2 -2
- package/dist/chunks/{tenantIconMap-BpNANQ5s.js.map → tenantIconMap-BQD9byc8.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-DtdUgvJO.js → tenantIconMap-CTMuSt18.js} +2 -2
- package/dist/chunks/{tenantIconMap-DtdUgvJO.js.map → tenantIconMap-CTMuSt18.js.map} +1 -1
- package/dist/chunks/{ticketingApi-Bu4rKwLl.js → ticketingApi-BNIdox5t.js} +2 -2
- package/dist/chunks/{ticketingApi-Bu4rKwLl.js.map → ticketingApi-BNIdox5t.js.map} +1 -1
- package/dist/chunks/{ticketingApi-r4Avm9iS.js → ticketingApi-J0vC_t7r.js} +2 -2
- package/dist/chunks/{ticketingApi-r4Avm9iS.js.map → ticketingApi-J0vC_t7r.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-B9bF4swg.js → useAccessRequests-DCNNLnxk.js} +3 -3
- package/dist/chunks/{useAccessRequests-B9bF4swg.js.map → useAccessRequests-DCNNLnxk.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-JyPUX3Om.js → useAccessRequests-DT7X4FAK.js} +2 -2
- package/dist/chunks/{useAccessRequests-JyPUX3Om.js.map → useAccessRequests-DT7X4FAK.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-DjPQenC2.js → useUserAccessRequests-BYbmG4c7.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-DjPQenC2.js.map → useUserAccessRequests-BYbmG4c7.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-BB6FHW14.js → useUserAccessRequests-CylKxRN6.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-BB6FHW14.js.map → useUserAccessRequests-CylKxRN6.js.map} +1 -1
- package/dist/hooks/useCollapsibleState.d.ts +5 -2
- package/dist/hooks/useCollapsibleState.d.ts.map +1 -1
- package/dist/i18n/config.d.ts +1 -0
- package/dist/i18n/config.d.ts.map +1 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/smartstack.cjs +1 -1
- package/dist/smartstack.js +1 -1
- package/dist/utils/permissions.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/index-2wUhd9Lu.js.map +0 -1
- package/dist/chunks/index-CwSaRXXg.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-
|
|
2
|
-
//# sourceMappingURL=MyAccessRequestsPage-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react-i18next"),i=require("./useUserAccessRequests-BYbmG4c7.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-BIisvWM6.js.map
|
package/dist/chunks/{MyAccessRequestsPage-C9IX4c0K.js.map → MyAccessRequestsPage-BIisvWM6.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyAccessRequestsPage-
|
|
1
|
+
{"version":3,"file":"MyAccessRequestsPage-BIisvWM6.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":"+QAMA,SAAwBA,GAAqC,CAC3D,KAAM,CAAE,CAAA,EAAMC,EAAAA,eAAe,OAAO,EAC9B,CAAE,SAAAC,EAAU,QAAAC,CAAA,EAAYC,wBAAA,EAExBC,EAAY,CAChB,CACE,MAAO,EAAE,8BAA8B,EACvC,MAAOH,EAAS,UAAYI,EAAE,SAAW,SAAS,EAAE,OACpD,MAAO,QAAA,EAET,CACE,MAAO,EAAE,+BAA+B,EACxC,MAAOJ,EAAS,UAAYI,EAAE,SAAW,UAAU,EAAE,OACrD,MAAO,OAAA,EAET,CACE,MAAO,EAAE,6BAA6B,EACtC,MAAOJ,EAAS,UAAYI,EAAE,SAAW,QAAQ,EAAE,OACnD,MAAO,KAAA,CACT,EAGIC,EAAuC,CAC3C,MAAO,mFACP,OAAQ,mFACR,IAAK,4EAAA,EAGDC,EAAkB,IAClBL,EAEAM,MAAC,OAAI,UAAU,yCACb,eAACC,EAAAA,QAAA,CAAQ,UAAU,sDAAsD,CAAA,CAC3E,EAIAR,EAAS,SAAW,EAEpBS,EAAAA,KAAC,MAAA,CAAI,UAAU,8DACb,SAAA,CAAAF,EAAAA,IAACG,EAAAA,MAAA,CAAM,UAAU,6CAAA,CAA8C,QAC9D,IAAA,CAAE,UAAU,+BAAgC,SAAA,EAAE,2BAA2B,CAAA,CAAE,CAAA,EAC9E,QAKD,MAAA,CAAI,UAAU,kBACb,SAAAD,EAAAA,KAAC,QAAA,CAAM,UAAU,iBACf,SAAA,CAAAF,MAAC,QAAA,CACC,SAAAE,EAAAA,KAAC,KAAA,CAAG,UAAU,+EACZ,SAAA,CAAAF,MAAC,KAAA,CAAG,UAAU,wBAAyB,SAAA,EAAE,kCAAkC,EAAE,QAC5E,KAAA,CAAG,UAAU,wBAAyB,SAAA,EAAE,6BAA6B,EAAE,QACvE,KAAA,CAAG,UAAU,wBAAyB,SAAA,EAAE,6BAA6B,EAAE,QACvE,KAAA,CAAG,UAAU,wBAAyB,SAAA,EAAE,kCAAkC,EAAE,QAC5E,KAAA,CAAG,UAAU,wBAAyB,SAAA,EAAE,6BAA6B,EAAE,QACvE,KAAA,CAAG,UAAU,wBAAyB,SAAA,EAAE,kCAAkC,EAAE,QAC5E,KAAA,CAAG,UAAU,wBAAyB,SAAA,EAAE,4BAA4B,CAAA,CAAE,CAAA,CAAA,CACzE,CAAA,CACF,EACAA,EAAAA,IAAC,QAAA,CAAM,UAAU,wCACd,SAAAP,EAAS,IAAKW,GACbF,EAAAA,KAAC,KAAA,CAAoB,UAAU,kDAC7B,SAAA,CAAAF,EAAAA,IAAC,KAAA,CAAG,UAAU,wBAAyB,SAAAI,EAAQ,iBAAiB,QAC/D,KAAA,CAAG,UAAU,YAAa,SAAAA,EAAQ,YAAc,IAAI,QACpD,KAAA,CAAG,UAAU,gEACX,SAAAA,EAAQ,QAAU,IACrB,EACAJ,EAAAA,IAAC,KAAA,CAAG,UAAU,2DACX,SAAA,IAAI,KAAKI,EAAQ,WAAW,EAAE,mBAAA,CAAmB,CACpD,EACAJ,EAAAA,IAAC,MAAG,UAAU,YACZ,eAACK,EAAAA,yBAAA,CAAyB,OAAQD,EAAQ,MAAA,CAAQ,CAAA,CACpD,EACAJ,EAAAA,IAAC,KAAA,CAAG,UAAU,2DACX,SAAAI,EAAQ,YAAc,IAAI,KAAKA,EAAQ,WAAW,EAAE,mBAAA,EAAuB,GAAA,CAC9E,QACC,KAAA,CAAG,UAAU,gEACX,SAAAA,EAAQ,iBAAmB,GAAA,CAC9B,CAAA,GAjBOA,EAAQ,EAkBjB,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CACF,EAIJ,OACEF,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,OAAC,MAAA,CACC,SAAA,CAAAF,MAAC,KAAA,CAAG,UAAU,qBAAsB,SAAA,EAAE,2BAA2B,EAAE,QAClE,IAAA,CAAE,UAAU,+BAAgC,SAAA,EAAE,sCAAsC,CAAA,CAAE,CAAA,EACzF,QAGC,MAAA,CAAI,UAAU,yBACZ,SAAAJ,EAAU,IAAKU,GACdJ,EAAAA,KAAC,MAAA,CAAqB,UAAW,+BAA+BJ,EAAaQ,EAAK,KAAK,CAAC,GACtF,SAAA,CAAAN,EAAAA,IAAC,MAAA,CAAI,UAAU,qBAAsB,SAAAM,EAAK,MAAM,EAChDN,EAAAA,IAAC,MAAA,CAAI,UAAU,qBAAsB,WAAK,KAAA,CAAM,CAAA,CAAA,EAFxCM,EAAK,KAGf,CACD,EACH,EAGAN,EAAAA,IAAC,MAAA,CAAI,UAAU,4FACZ,YAAgB,CACnB,CAAA,EACF,CAEJ"}
|
|
@@ -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-
|
|
3
|
+
import { u as i } from "./useUserAccessRequests-CylKxRN6.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-
|
|
65
|
+
//# sourceMappingURL=MyAccessRequestsPage-BLSV7Tbx.js.map
|
package/dist/chunks/{MyAccessRequestsPage-D6pVULNM.js.map → MyAccessRequestsPage-BLSV7Tbx.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyAccessRequestsPage-
|
|
1
|
+
{"version":3,"file":"MyAccessRequestsPage-BLSV7Tbx.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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"}
|
|
@@ -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-
|
|
7
|
-
import { T as v } from "./TenantCard-
|
|
6
|
+
import { a as R, ad as E } from "./index-lpIzhufD.js";
|
|
7
|
+
import { T as v } from "./TenantCard-BbSYk9_Z.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-
|
|
186
|
+
//# sourceMappingURL=MyTenantsPage-D-7k9CP1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyTenantsPage-BEcYYdGR.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-D-7k9CP1.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-
|
|
2
|
-
//# sourceMappingURL=MyTenantsPage-
|
|
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-IgLVXPg8.js"),f=require("./TenantCard-CEkiKxcZ.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-DqGW6aDt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyTenantsPage-D9f85zjF.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-DqGW6aDt.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 t=require("react/jsx-runtime"),i=require("react-i18next"),s=require("./index-
|
|
2
|
-
//# sourceMappingURL=MyTicketsPage
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react-i18next"),s=require("./index-IgLVXPg8.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--DgDsnZA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyTicketsPage
|
|
1
|
+
{"version":3,"file":"MyTicketsPage--DgDsnZA.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,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-
|
|
3
|
+
import { B as r, _ as a } from "./index-lpIzhufD.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-
|
|
32
|
+
//# sourceMappingURL=MyTicketsPage-CqJ3Aqob.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyTicketsPage-
|
|
1
|
+
{"version":3,"file":"MyTicketsPage-CqJ3Aqob.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;"}
|
|
@@ -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-
|
|
6
|
+
import { k as u, B as re } from "./index-lpIzhufD.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-
|
|
440
|
+
//# sourceMappingURL=NavigationAppsPage-Bebis_RT.js.map
|