@atlashub/smartstack 3.39.0-preview.1049 → 3.40.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-DgqyaZwI.js → AgentSkillsPage-BS_W2KTh.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-DgqyaZwI.js.map → AgentSkillsPage-BS_W2KTh.js.map} +1 -1
- package/dist/chunks/{AgentSkillsPage-ojivq0Cu.js → AgentSkillsPage-CmDFLnp7.js} +2 -2
- package/dist/chunks/{AgentSkillsPage-ojivq0Cu.js.map → AgentSkillsPage-CmDFLnp7.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-BGGTfOLs.js → AgentWorkloadPage-C8IvYfhT.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-BGGTfOLs.js.map → AgentWorkloadPage-C8IvYfhT.js.map} +1 -1
- package/dist/chunks/{AgentWorkloadPage-DWsC5VoS.js → AgentWorkloadPage-JXsQbwuM.js} +2 -2
- package/dist/chunks/{AgentWorkloadPage-DWsC5VoS.js.map → AgentWorkloadPage-JXsQbwuM.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-7EifQOAh.js → ApiCatalogDetailPage-CYOt34Vy.js} +2 -2
- package/dist/chunks/{ApiCatalogDetailPage-7EifQOAh.js.map → ApiCatalogDetailPage-CYOt34Vy.js.map} +1 -1
- package/dist/chunks/{ApiCatalogDetailPage-BD7XE4xK.js → ApiCatalogDetailPage-wFZDsTGy.js} +3 -3
- package/dist/chunks/{ApiCatalogDetailPage-BD7XE4xK.js.map → ApiCatalogDetailPage-wFZDsTGy.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-BfPoZGD3.js → ApiCatalogPage-Bdm3HNGP.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-BfPoZGD3.js.map → ApiCatalogPage-Bdm3HNGP.js.map} +1 -1
- package/dist/chunks/{ApiCatalogPage-BOPTnk-b.js → ApiCatalogPage-m_TWQyGv.js} +2 -2
- package/dist/chunks/{ApiCatalogPage-BOPTnk-b.js.map → ApiCatalogPage-m_TWQyGv.js.map} +1 -1
- package/dist/chunks/ApplicationDetailPage-C2BSpEoW.js +2 -0
- package/dist/chunks/{ApplicationDetailPage-CWdz0TS4.js.map → ApplicationDetailPage-C2BSpEoW.js.map} +1 -1
- package/dist/chunks/{ApplicationDetailPage-CDQqViuH.js → ApplicationDetailPage-CcgDAP-J.js} +503 -501
- package/dist/chunks/{ApplicationDetailPage-CDQqViuH.js.map → ApplicationDetailPage-CcgDAP-J.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-ZyXm2Cd1.js → ApplicationsDashboardPage-CDIjziL3.js} +3 -3
- package/dist/chunks/{ApplicationsDashboardPage-ZyXm2Cd1.js.map → ApplicationsDashboardPage-CDIjziL3.js.map} +1 -1
- package/dist/chunks/{ApplicationsDashboardPage-BH4S3qA2.js → ApplicationsDashboardPage-DslDyNzJ.js} +2 -2
- package/dist/chunks/{ApplicationsDashboardPage-BH4S3qA2.js.map → ApplicationsDashboardPage-DslDyNzJ.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-D0fU1_Le.js → ApplicationsGridPage-BCjsQGU0.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-D0fU1_Le.js.map → ApplicationsGridPage-BCjsQGU0.js.map} +1 -1
- package/dist/chunks/{ApplicationsGridPage-C1WF2Htv.js → ApplicationsGridPage-CIfKiCND.js} +2 -2
- package/dist/chunks/{ApplicationsGridPage-C1WF2Htv.js.map → ApplicationsGridPage-CIfKiCND.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-Cxvt2_WQ.js → ApplicationsListPage-CT75kNcH.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-Cxvt2_WQ.js.map → ApplicationsListPage-CT75kNcH.js.map} +1 -1
- package/dist/chunks/{ApplicationsListPage-B3ItaY4r.js → ApplicationsListPage-D2B4PZ5n.js} +2 -2
- package/dist/chunks/{ApplicationsListPage-B3ItaY4r.js.map → ApplicationsListPage-D2B4PZ5n.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-BqfNR-kc.js → ApplicationsPage-CaTBtduL.js} +2 -2
- package/dist/chunks/{ApplicationsPage-BqfNR-kc.js.map → ApplicationsPage-CaTBtduL.js.map} +1 -1
- package/dist/chunks/{ApplicationsPage-DuxuWfrN.js → ApplicationsPage-DW1LhL0U.js} +4 -4
- package/dist/chunks/{ApplicationsPage-DuxuWfrN.js.map → ApplicationsPage-DW1LhL0U.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-CR1C7V0a.js → AssignmentRulesPage-Bt9M0ki7.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-CR1C7V0a.js.map → AssignmentRulesPage-Bt9M0ki7.js.map} +1 -1
- package/dist/chunks/{AssignmentRulesPage-C4Jouh2g.js → AssignmentRulesPage-Y7xv60NY.js} +2 -2
- package/dist/chunks/{AssignmentRulesPage-C4Jouh2g.js.map → AssignmentRulesPage-Y7xv60NY.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-v8QUJkE7.js → AssignmentsPage-1eQGTjTi.js} +2 -2
- package/dist/chunks/{AssignmentsPage-v8QUJkE7.js.map → AssignmentsPage-1eQGTjTi.js.map} +1 -1
- package/dist/chunks/{AssignmentsPage-CjuGAd8n.js → AssignmentsPage-RURdPvfZ.js} +2 -2
- package/dist/chunks/{AssignmentsPage-CjuGAd8n.js.map → AssignmentsPage-RURdPvfZ.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-BxIXPUJk.js → AuthCallbackPage-8hF0jYlK.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-BxIXPUJk.js.map → AuthCallbackPage-8hF0jYlK.js.map} +1 -1
- package/dist/chunks/{AuthCallbackPage-CuS-efzY.js → AuthCallbackPage-DPL68Asu.js} +2 -2
- package/dist/chunks/{AuthCallbackPage-CuS-efzY.js.map → AuthCallbackPage-DPL68Asu.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-CWIqy2bT.js → ConfirmEmailPage-BKlpZkVk.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-CWIqy2bT.js.map → ConfirmEmailPage-BKlpZkVk.js.map} +1 -1
- package/dist/chunks/{ConfirmEmailPage-CkN8IfP-.js → ConfirmEmailPage-CawSZypI.js} +2 -2
- package/dist/chunks/{ConfirmEmailPage-CkN8IfP-.js.map → ConfirmEmailPage-CawSZypI.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-Df0ow5ge.js → CreateSupportTicketPage-AwbMbBIH.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-Df0ow5ge.js.map → CreateSupportTicketPage-AwbMbBIH.js.map} +1 -1
- package/dist/chunks/{CreateSupportTicketPage-CmrDfFxP.js → CreateSupportTicketPage-Dg1YW1eA.js} +2 -2
- package/dist/chunks/{CreateSupportTicketPage-CmrDfFxP.js.map → CreateSupportTicketPage-Dg1YW1eA.js.map} +1 -1
- package/dist/chunks/{DashboardPage-B4Pi5P3O.js → DashboardPage-B4YxOF-9.js} +3 -3
- package/dist/chunks/{DashboardPage-B4Pi5P3O.js.map → DashboardPage-B4YxOF-9.js.map} +1 -1
- package/dist/chunks/{DashboardPage-wEKZ_DWf.js → DashboardPage-BZxjinar.js} +2 -2
- package/dist/chunks/{DashboardPage-wEKZ_DWf.js.map → DashboardPage-BZxjinar.js.map} +1 -1
- package/dist/chunks/{DashboardPage-BAqpoxCW.js → DashboardPage-Bo09y8r7.js} +3 -3
- package/dist/chunks/{DashboardPage-BAqpoxCW.js.map → DashboardPage-Bo09y8r7.js.map} +1 -1
- package/dist/chunks/{DashboardPage-BT5kFaQA.js → DashboardPage-Cq5adDjP.js} +2 -2
- package/dist/chunks/{DashboardPage-BT5kFaQA.js.map → DashboardPage-Cq5adDjP.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-4pF38E4N.js → EscalationConfigPage-C8Hv5naz.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-4pF38E4N.js.map → EscalationConfigPage-C8Hv5naz.js.map} +1 -1
- package/dist/chunks/{EscalationConfigPage-Bcifnt_h.js → EscalationConfigPage-DNAqMRxA.js} +2 -2
- package/dist/chunks/{EscalationConfigPage-Bcifnt_h.js.map → EscalationConfigPage-DNAqMRxA.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-CBaMV_PS.js → ForceChangePasswordPage-BURE_vNg.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-CBaMV_PS.js.map → ForceChangePasswordPage-BURE_vNg.js.map} +1 -1
- package/dist/chunks/{ForceChangePasswordPage-ClDXluX1.js → ForceChangePasswordPage-C6jDZshk.js} +2 -2
- package/dist/chunks/{ForceChangePasswordPage-ClDXluX1.js.map → ForceChangePasswordPage-C6jDZshk.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage--ueWRNSO.js → ForgotPasswordPage-C5HLYbz4.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage--ueWRNSO.js.map → ForgotPasswordPage-C5HLYbz4.js.map} +1 -1
- package/dist/chunks/{ForgotPasswordPage-CzpAkP5R.js → ForgotPasswordPage-D3ZQBtjd.js} +2 -2
- package/dist/chunks/{ForgotPasswordPage-CzpAkP5R.js.map → ForgotPasswordPage-D3ZQBtjd.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-dXNOoSXE.js → GroupDetailPage-CTuzp9Vp.js} +5 -5
- package/dist/chunks/{GroupDetailPage-dXNOoSXE.js.map → GroupDetailPage-CTuzp9Vp.js.map} +1 -1
- package/dist/chunks/{GroupDetailPage-BIgBzQk0.js → GroupDetailPage-NJc2zCxC.js} +2 -2
- package/dist/chunks/{GroupDetailPage-BIgBzQk0.js.map → GroupDetailPage-NJc2zCxC.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-K2NXkdy4.js → MyAccessRequestsPage-Cvr29Pnq.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-K2NXkdy4.js.map → MyAccessRequestsPage-Cvr29Pnq.js.map} +1 -1
- package/dist/chunks/{MyAccessRequestsPage-Be8VvLhh.js → MyAccessRequestsPage-t6I24rHN.js} +2 -2
- package/dist/chunks/{MyAccessRequestsPage-Be8VvLhh.js.map → MyAccessRequestsPage-t6I24rHN.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-BXx1nPC8.js → MyTenantsPage-Dy2RZ_Ei.js} +2 -2
- package/dist/chunks/{MyTenantsPage-BXx1nPC8.js.map → MyTenantsPage-Dy2RZ_Ei.js.map} +1 -1
- package/dist/chunks/{MyTenantsPage-B9ZAUeCa.js → MyTenantsPage-SvDCQ4Wt.js} +3 -3
- package/dist/chunks/{MyTenantsPage-B9ZAUeCa.js.map → MyTenantsPage-SvDCQ4Wt.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-C9MSmmR5.js → MyTicketsPage-C3lEBFD9.js} +2 -2
- package/dist/chunks/{MyTicketsPage-C9MSmmR5.js.map → MyTicketsPage-C3lEBFD9.js.map} +1 -1
- package/dist/chunks/{MyTicketsPage-d0PoJpnX.js → MyTicketsPage-DydDgFyz.js} +2 -2
- package/dist/chunks/{MyTicketsPage-d0PoJpnX.js.map → MyTicketsPage-DydDgFyz.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-CJ3BjLlz.js → NavigationAppsPage-Dyv767w8.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-CJ3BjLlz.js.map → NavigationAppsPage-Dyv767w8.js.map} +1 -1
- package/dist/chunks/{NavigationAppsPage-8t2xbddT.js → NavigationAppsPage-WqSspaVo.js} +2 -2
- package/dist/chunks/{NavigationAppsPage-8t2xbddT.js.map → NavigationAppsPage-WqSspaVo.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-_62-bmuk.js → NotificationsPage-Di4I95PM.js} +2 -2
- package/dist/chunks/{NotificationsPage-_62-bmuk.js.map → NotificationsPage-Di4I95PM.js.map} +1 -1
- package/dist/chunks/{NotificationsPage-CLHfVUxm.js → NotificationsPage-elSovpBw.js} +2 -2
- package/dist/chunks/{NotificationsPage-CLHfVUxm.js.map → NotificationsPage-elSovpBw.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-Dkc22Jc4.js → OnboardingWizardPage-fdWdkwiT.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-Dkc22Jc4.js.map → OnboardingWizardPage-fdWdkwiT.js.map} +1 -1
- package/dist/chunks/{OnboardingWizardPage-D1rzD6gR.js → OnboardingWizardPage-nPLe2buQ.js} +2 -2
- package/dist/chunks/{OnboardingWizardPage-D1rzD6gR.js.map → OnboardingWizardPage-nPLe2buQ.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-BSvSe4SI.js → PermissionDetailPage-B8C7tWFP.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-BSvSe4SI.js.map → PermissionDetailPage-B8C7tWFP.js.map} +1 -1
- package/dist/chunks/{PermissionDetailPage-_HhbxzlG.js → PermissionDetailPage-IUgUaTkE.js} +2 -2
- package/dist/chunks/{PermissionDetailPage-_HhbxzlG.js.map → PermissionDetailPage-IUgUaTkE.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-Xb92YAHn.js → PermissionsPage-CmX5sQf2.js} +2 -2
- package/dist/chunks/{PermissionsPage-Xb92YAHn.js.map → PermissionsPage-CmX5sQf2.js.map} +1 -1
- package/dist/chunks/{PermissionsPage-B0M4gA5m.js → PermissionsPage-Kg0rduOM.js} +2 -2
- package/dist/chunks/{PermissionsPage-B0M4gA5m.js.map → PermissionsPage-Kg0rduOM.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-DTeMESj9.js → PortalDashboardPage-CCAYuhtI.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-DTeMESj9.js.map → PortalDashboardPage-CCAYuhtI.js.map} +1 -1
- package/dist/chunks/{PortalDashboardPage-pt9hipR4.js → PortalDashboardPage-Dme1XmzN.js} +2 -2
- package/dist/chunks/{PortalDashboardPage-pt9hipR4.js.map → PortalDashboardPage-Dme1XmzN.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-Cy30AWIN.js → PreferencesPage-Ct6xWAFp.js} +2 -2
- package/dist/chunks/{PreferencesPage-Cy30AWIN.js.map → PreferencesPage-Ct6xWAFp.js.map} +1 -1
- package/dist/chunks/{PreferencesPage-CsHVGMgp.js → PreferencesPage-Db2RjMpm.js} +2 -2
- package/dist/chunks/{PreferencesPage-CsHVGMgp.js.map → PreferencesPage-Db2RjMpm.js.map} +1 -1
- package/dist/chunks/{ProfilePage-6Gf7igUI.js → ProfilePage-D6Xb1ALH.js} +2 -2
- package/dist/chunks/{ProfilePage-6Gf7igUI.js.map → ProfilePage-D6Xb1ALH.js.map} +1 -1
- package/dist/chunks/{ProfilePage-BzBWkztf.js → ProfilePage-DN2s-lfp.js} +2 -2
- package/dist/chunks/{ProfilePage-BzBWkztf.js.map → ProfilePage-DN2s-lfp.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-DEDoHrnU.js → ReferencesManagementPage-B5mcshG1.js} +2 -2
- package/dist/chunks/{ReferencesManagementPage-DEDoHrnU.js.map → ReferencesManagementPage-B5mcshG1.js.map} +1 -1
- package/dist/chunks/{ReferencesManagementPage-DD1QiFYr.js → ReferencesManagementPage-DB975ktX.js} +3 -3
- package/dist/chunks/{ReferencesManagementPage-DD1QiFYr.js.map → ReferencesManagementPage-DB975ktX.js.map} +1 -1
- package/dist/chunks/{RegisterPage-asdx33fV.js → RegisterPage-ZskZrLZH.js} +2 -2
- package/dist/chunks/{RegisterPage-asdx33fV.js.map → RegisterPage-ZskZrLZH.js.map} +1 -1
- package/dist/chunks/{RegisterPage-CIPHRYkl.js → RegisterPage-b8yIPVgh.js} +2 -2
- package/dist/chunks/{RegisterPage-CIPHRYkl.js.map → RegisterPage-b8yIPVgh.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-B4Dj24vU.js → ResetPasswordPage-CeAvfsE-.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-B4Dj24vU.js.map → ResetPasswordPage-CeAvfsE-.js.map} +1 -1
- package/dist/chunks/{ResetPasswordPage-B8MWH_Vi.js → ResetPasswordPage-Dzp5dCp8.js} +2 -2
- package/dist/chunks/{ResetPasswordPage-B8MWH_Vi.js.map → ResetPasswordPage-Dzp5dCp8.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-Cs6T441o.js → ResolutionModal-CRVN7gHv.js} +2 -2
- package/dist/chunks/{ResolutionModal-Cs6T441o.js.map → ResolutionModal-CRVN7gHv.js.map} +1 -1
- package/dist/chunks/{ResolutionModal-rLoFOxm9.js → ResolutionModal-DJOw1sLT.js} +2 -2
- package/dist/chunks/{ResolutionModal-rLoFOxm9.js.map → ResolutionModal-DJOw1sLT.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-Pkw0wU5g.js → RoleDetailPage-CLVoFVF8.js} +2 -2
- package/dist/chunks/{RoleDetailPage-Pkw0wU5g.js.map → RoleDetailPage-CLVoFVF8.js.map} +1 -1
- package/dist/chunks/{RoleDetailPage-CNFG6j6P.js → RoleDetailPage-XGnPD_8C.js} +3 -3
- package/dist/chunks/{RoleDetailPage-CNFG6j6P.js.map → RoleDetailPage-XGnPD_8C.js.map} +1 -1
- package/dist/chunks/{RolesPage-BHEkMR2O.js → RolesPage-BnAMpR2b.js} +2 -2
- package/dist/chunks/{RolesPage-BHEkMR2O.js.map → RolesPage-BnAMpR2b.js.map} +1 -1
- package/dist/chunks/{RolesPage-D35jwDJU.js → RolesPage-Czj9LMkL.js} +2 -2
- package/dist/chunks/{RolesPage-D35jwDJU.js.map → RolesPage-Czj9LMkL.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-DtonDehw.js → SlaConfigPage-HM0MpIlg.js} +2 -2
- package/dist/chunks/{SlaConfigPage-DtonDehw.js.map → SlaConfigPage-HM0MpIlg.js.map} +1 -1
- package/dist/chunks/{SlaConfigPage-C5Jstix-.js → SlaConfigPage-ZRyAs8aY.js} +2 -2
- package/dist/chunks/{SlaConfigPage-C5Jstix-.js.map → SlaConfigPage-ZRyAs8aY.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-6pC73oCY.js → SupportPermissionsPage-CxJuGgcQ.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-6pC73oCY.js.map → SupportPermissionsPage-CxJuGgcQ.js.map} +1 -1
- package/dist/chunks/{SupportPermissionsPage-CsJKGt__.js → SupportPermissionsPage-DNd323OK.js} +2 -2
- package/dist/chunks/{SupportPermissionsPage-CsJKGt__.js.map → SupportPermissionsPage-DNd323OK.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-DjmYOGEC.js → TemplatesPage-CdwPLsHj.js} +2 -2
- package/dist/chunks/{TemplatesPage-DjmYOGEC.js.map → TemplatesPage-CdwPLsHj.js.map} +1 -1
- package/dist/chunks/{TemplatesPage-DlY91VO_.js → TemplatesPage-Co3ygZvF.js} +2 -2
- package/dist/chunks/{TemplatesPage-DlY91VO_.js.map → TemplatesPage-Co3ygZvF.js.map} +1 -1
- package/dist/chunks/{TenantCard-BHLcv2gD.js → TenantCard-CmCfIK2F.js} +2 -2
- package/dist/chunks/{TenantCard-BHLcv2gD.js.map → TenantCard-CmCfIK2F.js.map} +1 -1
- package/dist/chunks/{TenantCard-DGCKVvKI.js → TenantCard-DI66acce.js} +2 -2
- package/dist/chunks/{TenantCard-DGCKVvKI.js.map → TenantCard-DI66acce.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-dsSwnOWg.js → TenantScopeSelector-5NOwmFX2.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-dsSwnOWg.js.map → TenantScopeSelector-5NOwmFX2.js.map} +1 -1
- package/dist/chunks/{TenantScopeSelector-CU5z5PJH.js → TenantScopeSelector-CEFgxiWt.js} +2 -2
- package/dist/chunks/{TenantScopeSelector-CU5z5PJH.js.map → TenantScopeSelector-CEFgxiWt.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-BQHMaRmq.js → TicketDetailPage-BhZ-mpv7.js} +2 -2
- package/dist/chunks/{TicketDetailPage-BQHMaRmq.js.map → TicketDetailPage-BhZ-mpv7.js.map} +1 -1
- package/dist/chunks/{TicketDetailPage-Bk_0uQ3B.js → TicketDetailPage-BxOiOG22.js} +2 -2
- package/dist/chunks/{TicketDetailPage-Bk_0uQ3B.js.map → TicketDetailPage-BxOiOG22.js.map} +1 -1
- package/dist/chunks/{TicketsPage-CufUJctx.js → TicketsPage-BiTvIcM8.js} +2 -2
- package/dist/chunks/{TicketsPage-CufUJctx.js.map → TicketsPage-BiTvIcM8.js.map} +1 -1
- package/dist/chunks/{TicketsPage-C8QQ4SKy.js → TicketsPage-CSiinHME.js} +2 -2
- package/dist/chunks/{TicketsPage-C8QQ4SKy.js.map → TicketsPage-CSiinHME.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-DoEMtJoe.js → UserCreateTicketPage-B3TW1oV7.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-DoEMtJoe.js.map → UserCreateTicketPage-B3TW1oV7.js.map} +1 -1
- package/dist/chunks/{UserCreateTicketPage-XxjNlR9K.js → UserCreateTicketPage-BszUd_WZ.js} +2 -2
- package/dist/chunks/{UserCreateTicketPage-XxjNlR9K.js.map → UserCreateTicketPage-BszUd_WZ.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-fdhZwMLg.js → UserDashboardPage-C6MvatAb.js} +2 -2
- package/dist/chunks/{UserDashboardPage-fdhZwMLg.js.map → UserDashboardPage-C6MvatAb.js.map} +1 -1
- package/dist/chunks/{UserDashboardPage-BV1d2hMG.js → UserDashboardPage-Dtt9VzG_.js} +2 -2
- package/dist/chunks/{UserDashboardPage-BV1d2hMG.js.map → UserDashboardPage-Dtt9VzG_.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-C97e-Dax.js → UserDetailPage-BEEV2vlJ.js} +5 -5
- package/dist/chunks/{UserDetailPage-C97e-Dax.js.map → UserDetailPage-BEEV2vlJ.js.map} +1 -1
- package/dist/chunks/{UserDetailPage-BcA7Vhb2.js → UserDetailPage-Dw5OHheZ.js} +2 -2
- package/dist/chunks/{UserDetailPage-BcA7Vhb2.js.map → UserDetailPage-Dw5OHheZ.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-BA2syxXG.js → UserTicketDetailPage-B4YkzzbR.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-BA2syxXG.js.map → UserTicketDetailPage-B4YkzzbR.js.map} +1 -1
- package/dist/chunks/{UserTicketDetailPage-CXuZVAa2.js → UserTicketDetailPage-DCFV-0ny.js} +2 -2
- package/dist/chunks/{UserTicketDetailPage-CXuZVAa2.js.map → UserTicketDetailPage-DCFV-0ny.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-CPVk31Dh.js → UsersGroupsPage-CY-l9fTp.js} +3 -3
- package/dist/chunks/{UsersGroupsPage-CPVk31Dh.js.map → UsersGroupsPage-CY-l9fTp.js.map} +1 -1
- package/dist/chunks/{UsersGroupsPage-DS2YiUE4.js → UsersGroupsPage-c28vYHN9.js} +2 -2
- package/dist/chunks/{UsersGroupsPage-DS2YiUE4.js.map → UsersGroupsPage-c28vYHN9.js.map} +1 -1
- package/dist/chunks/{UsersPage-BIXWHFmG.js → UsersPage-1sLlq9QD.js} +2 -2
- package/dist/chunks/{UsersPage-BIXWHFmG.js.map → UsersPage-1sLlq9QD.js.map} +1 -1
- package/dist/chunks/{UsersPage-DS8aWUKj.js → UsersPage-Bm-uNxh0.js} +2 -2
- package/dist/chunks/{UsersPage-DS8aWUKj.js.map → UsersPage-Bm-uNxh0.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-C-r0mrCH.js → accessRequestsApi-CJPjyEkH.js} +2 -2
- package/dist/chunks/{accessRequestsApi-C-r0mrCH.js.map → accessRequestsApi-CJPjyEkH.js.map} +1 -1
- package/dist/chunks/{accessRequestsApi-k3ZwhcFb.js → accessRequestsApi-D_pj1wl6.js} +2 -2
- package/dist/chunks/{accessRequestsApi-k3ZwhcFb.js.map → accessRequestsApi-D_pj1wl6.js.map} +1 -1
- package/dist/chunks/{aiApi-B-H-76wM.js → aiApi-ByF-oo1J.js} +2 -2
- package/dist/chunks/{aiApi-B-H-76wM.js.map → aiApi-ByF-oo1J.js.map} +1 -1
- package/dist/chunks/{aiApi-CcdrBILv.js → aiApi-Dt3fj0dU.js} +2 -2
- package/dist/chunks/{aiApi-CcdrBILv.js.map → aiApi-Dt3fj0dU.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-CO3tk6Ju.js → applicationAnalyticsApi-BgG3SGJm.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-CO3tk6Ju.js.map → applicationAnalyticsApi-BgG3SGJm.js.map} +1 -1
- package/dist/chunks/{applicationAnalyticsApi-CLVdVLDu.js → applicationAnalyticsApi-ktD65iLO.js} +2 -2
- package/dist/chunks/{applicationAnalyticsApi-CLVdVLDu.js.map → applicationAnalyticsApi-ktD65iLO.js.map} +1 -1
- package/dist/chunks/{groupsApi-DExOJZPF.js → groupsApi-C-FLWPCO.js} +2 -2
- package/dist/chunks/{groupsApi-DExOJZPF.js.map → groupsApi-C-FLWPCO.js.map} +1 -1
- package/dist/chunks/{groupsApi-CyqyYsmi.js → groupsApi-CBI5vMLa.js} +2 -2
- package/dist/chunks/{groupsApi-CyqyYsmi.js.map → groupsApi-CBI5vMLa.js.map} +1 -1
- package/dist/chunks/{index-DtAReZI6.js → index-B727-QSU.js} +2 -2
- package/dist/chunks/{index-DtAReZI6.js.map → index-B727-QSU.js.map} +1 -1
- package/dist/chunks/{index-BlOgmQzc.js → index-B9q3vx13.js} +2 -2
- package/dist/chunks/{index-BlOgmQzc.js.map → index-B9q3vx13.js.map} +1 -1
- package/dist/chunks/{index-VSQ2prtJ.js → index-BD-REzV9.js} +2 -2
- package/dist/chunks/{index-VSQ2prtJ.js.map → index-BD-REzV9.js.map} +1 -1
- package/dist/chunks/{index-XOOiD_zY.js → index-BDRogQH_.js} +3 -3
- package/dist/chunks/{index-XOOiD_zY.js.map → index-BDRogQH_.js.map} +1 -1
- package/dist/chunks/{index-DOQyf5yZ.js → index-C-DYxdvd.js} +8 -8
- package/dist/chunks/{index-DOQyf5yZ.js.map → index-C-DYxdvd.js.map} +1 -1
- package/dist/chunks/{index-Cq80YBne.js → index-CBtjGPod.js} +105 -105
- package/dist/chunks/{index-Cq80YBne.js.map → index-CBtjGPod.js.map} +1 -1
- package/dist/chunks/{index-dlXYTPWH.js → index-CF1cvNUL.js} +4 -4
- package/dist/chunks/{index-dlXYTPWH.js.map → index-CF1cvNUL.js.map} +1 -1
- package/dist/chunks/{index-COA_xJVJ.js → index-CH0pTHy1.js} +2 -2
- package/dist/chunks/{index-COA_xJVJ.js.map → index-CH0pTHy1.js.map} +1 -1
- package/dist/chunks/{index-DjZQ6ZG_.js → index-Ca88RIuT.js} +2 -2
- package/dist/chunks/{index-DjZQ6ZG_.js.map → index-Ca88RIuT.js.map} +1 -1
- package/dist/chunks/{index-Cj-9tGpd.js → index-CkWvsvKW.js} +2 -2
- package/dist/chunks/{index-Cj-9tGpd.js.map → index-CkWvsvKW.js.map} +1 -1
- package/dist/chunks/{index-EL_ZNnMH.js → index-CzYKE5fL.js} +2 -2
- package/dist/chunks/{index-EL_ZNnMH.js.map → index-CzYKE5fL.js.map} +1 -1
- package/dist/chunks/{index-qXfYaEmV.js → index-D32ol7lq.js} +2 -2
- package/dist/chunks/{index-qXfYaEmV.js.map → index-D32ol7lq.js.map} +1 -1
- package/dist/chunks/{index-DMQQ0KyA.js → index-D7hmx9IX.js} +2 -2
- package/dist/chunks/{index-DMQQ0KyA.js.map → index-D7hmx9IX.js.map} +1 -1
- package/dist/chunks/{index-BetDcNZm.js → index-DThcQmwZ.js} +2 -2
- package/dist/chunks/{index-BetDcNZm.js.map → index-DThcQmwZ.js.map} +1 -1
- package/dist/chunks/{index-C7h5yvcP.js → index-D_3J6ziZ.js} +2 -2
- package/dist/chunks/{index-C7h5yvcP.js.map → index-D_3J6ziZ.js.map} +1 -1
- package/dist/chunks/{index-C_nDTEP5.js → index-JSjfMShT.js} +2 -2
- package/dist/chunks/{index-C_nDTEP5.js.map → index-JSjfMShT.js.map} +1 -1
- package/dist/chunks/{index-COXxU0FH.js → index-gzXJw_ow.js} +3 -3
- package/dist/chunks/{index-COXxU0FH.js.map → index-gzXJw_ow.js.map} +1 -1
- package/dist/chunks/{index-jJxtz2bs.js → index-rRAbl04H.js} +2 -2
- package/dist/chunks/{index-jJxtz2bs.js.map → index-rRAbl04H.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-Ddvguo0l.js → tenantIconMap-Cw-hQ9n4.js} +2 -2
- package/dist/chunks/{tenantIconMap-Ddvguo0l.js.map → tenantIconMap-Cw-hQ9n4.js.map} +1 -1
- package/dist/chunks/{tenantIconMap-DBa5MjIz.js → tenantIconMap-DinwojNW.js} +2 -2
- package/dist/chunks/{tenantIconMap-DBa5MjIz.js.map → tenantIconMap-DinwojNW.js.map} +1 -1
- package/dist/chunks/{ticketingApi-Cr6QSv0g.js → ticketingApi-CcWdebXv.js} +2 -2
- package/dist/chunks/{ticketingApi-Cr6QSv0g.js.map → ticketingApi-CcWdebXv.js.map} +1 -1
- package/dist/chunks/{ticketingApi-D6s75rOB.js → ticketingApi-x0BwZ1NH.js} +2 -2
- package/dist/chunks/{ticketingApi-D6s75rOB.js.map → ticketingApi-x0BwZ1NH.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-VuQT-n-P.js → useAccessRequests-BBTIYht3.js} +2 -2
- package/dist/chunks/{useAccessRequests-VuQT-n-P.js.map → useAccessRequests-BBTIYht3.js.map} +1 -1
- package/dist/chunks/{useAccessRequests-CanI2ypo.js → useAccessRequests-BBUj9XY9.js} +71 -71
- package/dist/chunks/{useAccessRequests-CanI2ypo.js.map → useAccessRequests-BBUj9XY9.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-BEVZLX_M.js → useUserAccessRequests-BKQxcOXH.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-BEVZLX_M.js.map → useUserAccessRequests-BKQxcOXH.js.map} +1 -1
- package/dist/chunks/{useUserAccessRequests-Ba40FDLm.js → useUserAccessRequests-BPUPiP55.js} +2 -2
- package/dist/chunks/{useUserAccessRequests-Ba40FDLm.js.map → useUserAccessRequests-BPUPiP55.js.map} +1 -1
- package/dist/pages/platform/administration/applications/ApplicationDetailPage.d.ts.map +1 -1
- package/dist/smartstack.cjs +1 -1
- package/dist/smartstack.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/ApplicationDetailPage-CWdz0TS4.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),a=require("react"),us=require("axios"),re=require("react-i18next"),Lt=require("i18next"),rn=require("i18next-browser-languagedetector"),S=require("react-router-dom"),an=require("@microsoft/signalr"),l=require("lucide-react"),hr=require("react-error-boundary"),Ft=require("react-dom"),Es=require("modern-screenshot"),bt=require("react-resizable-panels"),nn=require("dompurify");function gr(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(s,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return s.default=t,Object.freeze(s)}const oe=gr(an),ft=gr(l),Je={none:"0px",small:"4px",medium:"8px",large:"12px",xlarge:"16px",xxlarge:"24px"},on={none:"Carré",small:"Léger",medium:"Moyen",large:"Arrondi",xlarge:"Très arrondi",xxlarge:"Pill"},qe={slate:{name:"Ardoise",shades:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"}},gray:{name:"Gris",shades:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"}},zinc:{name:"Zinc",shades:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"}},stone:{name:"Pierre",shades:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"}},indigo:{name:"Indigo",shades:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"}},violet:{name:"Violet",shades:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"}},blue:{name:"Bleu",shades:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"}},cyan:{name:"Cyan",shades:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"}},teal:{name:"Teal",shades:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"}},emerald:{name:"Émeraude",shades:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"}},amber:{name:"Ambre",shades:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"}},orange:{name:"Orange",shades:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"}},rose:{name:"Rose",shades:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"}},pink:{name:"Pink",shades:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"}}},ln={card:"large",button:"medium",badge:"medium",input:"medium",modal:"xlarge",menuItem:"medium"},pt={neutral:{name:"Neutre",icon:"⚪",colors:{light:{light:"#ffffff",medium:"#f4f4f5",dark:"#e4e4e7",border:"#d4d4d8"},dark:{light:"#1c1c1f",medium:"#27272a",dark:"#3f3f46",border:"#52525b"}}},ocean:{name:"Océan",icon:"🌊",colors:{light:{light:"#e0f2fe",medium:"#bae6fd",dark:"#7dd3fc",border:"#93c5fd"},dark:{light:"#141c24",medium:"#1a2836",dark:"#2a4a5e",border:"#3a5a70"}}},forest:{name:"Forêt",icon:"🌲",colors:{light:{light:"#d1fae5",medium:"#a7f3d0",dark:"#6ee7b7",border:"#86efac"},dark:{light:"#121d18",medium:"#182a22",dark:"#2a4a3a",border:"#3a5a4a"}}},sunset:{name:"Coucher de soleil",icon:"🌅",colors:{light:{light:"#fef3c7",medium:"#fde68a",dark:"#fbbf24",border:"#fcd34d"},dark:{light:"#1c1810",medium:"#2a2418",dark:"#4a3a24",border:"#5a4a34"}}},lavender:{name:"Lavande",icon:"💜",colors:{light:{light:"#ede9fe",medium:"#ddd6fe",dark:"#c4b5fd",border:"#c4b5fd"},dark:{light:"#1a1820",medium:"#24222e",dark:"#3a3650",border:"#4a4660"}}},rose:{name:"Rose",icon:"🌸",colors:{light:{light:"#fce7f3",medium:"#fbcfe8",dark:"#f9a8d4",border:"#f9a8d4"},dark:{light:"#1c1418",medium:"#2a1e24",dark:"#4a3040",border:"#5a4050"}}}},ms="neutral",ht=t=>{const s=qe[t]?.shades||qe.indigo.shades;return{name:"Clair",primary:qe.indigo.shades,accent:s,backgrounds:{app:"#fafafa",primary:"#ffffff",secondary:"#f4f4f5",tertiary:"#e4e4e7",card:"#ffffff",hover:"#f4f4f5",active:"#e4e4e7"},text:{primary:"#18181b",secondary:"#52525b",tertiary:"#71717a",muted:"#a1a1aa",inverse:"#fafafa"},border:{default:"#e4e4e7",subtle:"#f4f4f5",strong:"#d4d4d8"},status:{success:{bg:"#f0fdfa",text:"#0f766e",border:"#99f6e4",dot:"#14b8a6"},warning:{bg:"#fffbeb",text:"#b45309",border:"#fde68a",dot:"#f59e0b"},error:{bg:"#fff1f2",text:"#be123c",border:"#fecdd3",dot:"#f43f5e"},info:{bg:"#f0f9ff",text:"#0369a1",border:"#bae6fd",dot:"#0ea5e9"}},accentTransparent:{bg:`${s[50]}`,text:s[700],border:s[200]}}},gt=t=>{const s=qe[t]?.shades||qe.indigo.shades;return{name:"Sombre",primary:qe.indigo.shades,accent:s,backgrounds:{app:"#161618",primary:"#1c1c1f",secondary:"#232326",tertiary:"#2a2a2e",card:"#1c1c1f",hover:"#27272a",active:"#3f3f46"},text:{primary:"#fafafa",secondary:"#d4d4d8",tertiary:"#a1a1aa",muted:"#71717a",inverse:"#18181b"},border:{default:"#3f3f46",subtle:"#27272a",strong:"#52525b"},status:{success:{bg:"rgba(20, 184, 166, 0.15)",text:"#5eead4",border:"rgba(20, 184, 166, 0.3)",dot:"#14b8a6"},warning:{bg:"rgba(245, 158, 11, 0.15)",text:"#fbbf24",border:"rgba(245, 158, 11, 0.3)",dot:"#f59e0b"},error:{bg:"rgba(244, 63, 94, 0.15)",text:"#fb7185",border:"rgba(244, 63, 94, 0.3)",dot:"#f43f5e"},info:{bg:"rgba(14, 165, 233, 0.15)",text:"#7dd3fc",border:"rgba(14, 165, 233, 0.3)",dot:"#0ea5e9"}},accentTransparent:{bg:`rgba(${Is(s[500])}, 0.15)`,text:s[300],border:`rgba(${Is(s[500])}, 0.3)`}}};function Is(t){const s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return s?`${parseInt(s[1],16)}, ${parseInt(s[2],16)}, ${parseInt(s[3],16)}`:"99, 102, 241"}const Nt={mode:"dark",borderRadius:ln,colors:{light:ht("indigo"),dark:gt("indigo")},accentColorKey:"indigo",itemPaletteKey:ms},cn=[{id:"default",name:"Par défaut",description:"Style SmartStack classique avec coins arrondis",icon:"✨",config:{borderRadius:{card:"large",button:"medium",badge:"medium",input:"medium",modal:"xlarge",menuItem:"medium"},accentColorKey:"indigo",itemPaletteKey:"neutral"}},{id:"minimal",name:"Minimal",description:"Style épuré et professionnel",icon:"⚪",config:{borderRadius:{card:"medium",button:"small",badge:"small",input:"small",modal:"medium",menuItem:"small"},accentColorKey:"slate",itemPaletteKey:"neutral"}},{id:"corporate",name:"Corporate",description:"Style sobre pour environnement professionnel",icon:"🏢",config:{borderRadius:{card:"small",button:"small",badge:"medium",input:"small",modal:"medium",menuItem:"small"},accentColorKey:"gray",itemPaletteKey:"neutral"}},{id:"ocean",name:"Océan",description:"Teintes bleues apaisantes",icon:"🌊",config:{borderRadius:{card:"large",button:"medium",badge:"medium",input:"medium",modal:"xlarge",menuItem:"medium"},accentColorKey:"cyan",itemPaletteKey:"ocean"}},{id:"forest",name:"Forêt",description:"Tons verts naturels",icon:"🌲",config:{borderRadius:{card:"medium",button:"medium",badge:"medium",input:"medium",modal:"large",menuItem:"medium"},accentColorKey:"emerald",itemPaletteKey:"forest"}},{id:"sunset",name:"Coucher de soleil",description:"Couleurs chaudes et accueillantes",icon:"🌅",config:{borderRadius:{card:"large",button:"large",badge:"xxlarge",input:"medium",modal:"xlarge",menuItem:"medium"},accentColorKey:"orange",itemPaletteKey:"sunset"}},{id:"lavender",name:"Lavande",description:"Tons violets élégants",icon:"💜",config:{borderRadius:{card:"xlarge",button:"large",badge:"xlarge",input:"large",modal:"xlarge",menuItem:"large"},accentColorKey:"violet",itemPaletteKey:"lavender"}},{id:"rose",name:"Rose",description:"Teintes roses douces",icon:"🌸",config:{borderRadius:{card:"xxlarge",button:"xlarge",badge:"xxlarge",input:"large",modal:"xxlarge",menuItem:"large"},accentColorKey:"pink",itemPaletteKey:"rose"}}],fr="smartstack-theme-config";class kt extends Error{statusCode;details;constructor(s,r,n){super(s),this.name="AppError",this.statusCode=r,this.details=n}}class xs extends Error{constructor(s="Network error occurred"){super(s),this.name="NetworkError"}}class br extends Error{code;constructor(s="Authentication required",r){super(s),this.name="AuthenticationError",this.code=r}}class dn extends Error{constructor(s="Access denied"){super(s),this.name="ForbiddenError"}}const un=10;class mn{queue=[];recentErrors=[];isProcessing=!1;batchSize=10;batchDelay=2e3;async logError(s,r,n){const o=typeof s=="string"?s:s.message;let c=o;if(n?.url){const d=String(n.url),u=n.status?` [${n.status}]`:"";c=`${o}${u} - ${d}`}const i={message:c,stack:typeof s=="string"?void 0:s.stack,url:window.location.href,component:r,level:"Error",metadata:n};this.storeRecentError(i),this.queue.push({type:"error",data:i}),this.processQueue()}async logCritical(s,r,n){const o=typeof s=="string"?s:s.message;let c=o;if(n?.url){const u=String(n.url),m=n.status?` [${n.status}]`:"";c=`${o}${m} - ${u}`}const i={message:c,stack:typeof s=="string"?void 0:s.stack,url:window.location.href,component:r,level:"Critical",metadata:n};return this.storeRecentError(i),await this.sendErrorWithResponse(i)}getRecentErrors(){return[...this.recentErrors]}clearRecentErrors(){this.recentErrors=[]}storeRecentError(s){this.recentErrors.unshift({...s,timestamp:new Date}),this.recentErrors.length>un&&this.recentErrors.pop()}async logEvent(s,r,n){const o={event:s,category:r,data:n};this.queue.push({type:"event",data:o}),this.processQueue()}async processQueue(){if(this.isProcessing||this.queue.length===0)return;this.isProcessing=!0,await new Promise(r=>setTimeout(r,this.batchDelay));const s=this.queue.splice(0,this.batchSize);for(const r of s)try{r.type==="error"?await this.sendError(r.data):await this.sendEvent(r.data)}catch{}this.isProcessing=!1,this.queue.length>0&&this.processQueue()}async sendError(s){await fetch("/api/logs/client-error",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})}async sendErrorWithResponse(s){try{const r=await fetch("/api/logs/client-error",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});return r.ok&&r.status===200&&(await r.json()).ticketNumber||null}catch{return null}}async sendEvent(s){await fetch("/api/logs/client-event",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})}}const Le=new mn;window.onerror=(t,s,r,n,o)=>{Le.logError(o||String(t),"window.onerror",{source:s,lineno:r,colno:n})};window.onunhandledrejection=t=>{Le.logError(t.reason instanceof Error?t.reason:String(t.reason),"unhandledrejection")};function ps(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")try{return crypto.randomUUID()}catch{}return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,t=>{const s=Number(t);return(s^crypto.getRandomValues(new Uint8Array(1))[0]&15>>s/4).toString(16)})}const Pe=us.create({timeout:3e4,withCredentials:!0,headers:{"Content-Type":"application/json"}});Pe.interceptors.request.use(t=>{const s=ps();t.headers&&(t.headers["X-Correlation-ID"]=s);const r=localStorage.getItem("i18nextLng")||navigator.language||"fr";t.headers&&(t.headers["Accept-Language"]=r);const n=localStorage.getItem("currentTenantSlug");return n&&t.headers&&!t.headers["X-Tenant-Slug"]&&(t.headers["X-Tenant-Slug"]=n),t},t=>(Le.logError(t,"apiClient.request"),Promise.reject(t)));Pe.interceptors.response.use(t=>t,async t=>{const s=t.config?.headers?.["X-Correlation-ID"];if(us.isCancel(t)||t.code==="ERR_CANCELED")return Promise.reject(t);if(!t.response){const i=new xs("Impossible de se connecter au serveur. Vérifiez votre connexion internet.");return Le.logError(i,"apiClient.response",{correlationId:s}),Promise.reject(i)}const{status:r,data:n}=t.response,o=n?.message||n?.detail||n?.title||t.message,c=n?.code;switch(r){case 401:{const i=new br(o,c);Le.logError(i,"apiClient.response",{correlationId:s,url:t.config?.url,code:c});const d=t.config?.url||"",m=["/api/user/preferences","/api/auth/session-info","/api/auth/refresh","/api/navigation/menu","/api/navigation/favorites","/api/navigation/contexts","/api/onboarding/status","/api/administration/tenants/tenant-analytics/track/"].some(x=>d.startsWith(x));if(!window.location.pathname.includes("/login")&&!m){localStorage.removeItem("user");const p=c==="SESSION_EXPIRED"?"/login?reason=session_expired":"/login";window.location.href=p}return Promise.reject(i)}case 403:{const i=new dn(o),d=["/api/administration/tenants/tenant-analytics/track/","/api/support/notifications"],u=t.config?.url||"";return d.some(x=>u.startsWith(x))||Le.logError(i,"apiClient.response",{correlationId:s,url:t.config?.url,method:t.config?.method}),Promise.reject(i)}case 404:return Promise.reject(new kt(o||"Resource not found",r));case 400:return Promise.reject(new kt(o||"Invalid request",r,n?.details||n?.errors));case 500:case 502:case 503:case 504:{if(r===503&&c==="LICENSE_HALTED"){const d=new CustomEvent("license:refresh");window.dispatchEvent(d)}const i=new kt(o||"Server error",r);return Le.logCritical(i,"apiClient.response",{correlationId:s,url:t.config?.url,status:r,code:c}),Promise.reject(i)}default:{const i=new kt(o,r,n?.details);return Le.logError(i,"apiClient.response",{correlationId:s,status:r}),Promise.reject(i)}}});const I={get:(t,s)=>Pe.get(t,s).then(r=>r.data),post:(t,s,r)=>Pe.post(t,s,r).then(n=>n.data),put:(t,s,r)=>Pe.put(t,s,r).then(n=>n.data),patch:(t,s,r)=>Pe.patch(t,s,r).then(n=>n.data),delete:(t,s)=>Pe.delete(t,s).then(r=>r.data)},_t={preferences:{get:()=>I.get("/api/user/preferences"),updateTheme:t=>I.put("/api/user/preferences/theme",t),updateLanguage:t=>I.put("/api/user/preferences/language",t),updateNotifications:t=>I.put("/api/user/preferences/notifications",t)},dashboard:{getAll:(t=30,s=10)=>I.get(`/api/user/dashboard/all?period=${t}&errorLimit=${s}`),getSessionAnalytics:(t=30)=>I.get(`/api/user/dashboard/session-analytics?period=${t}`),getLoginErrors:(t=10)=>I.get(`/api/user/dashboard/login-errors?limit=${t}`),getCurrentSession:()=>I.get("/api/user/dashboard/current-session"),getDeviceStats:()=>I.get("/api/user/dashboard/device-stats"),getWeeklyStats:(t=30)=>I.get(`/api/user/dashboard/weekly-stats?period=${t}`),getHourlyStats:(t=30)=>I.get(`/api/user/dashboard/hourly-stats?period=${t}`),getApplicationUsage:(t=30)=>I.get(`/api/user/dashboard/application-usage?period=${t}`)}},xn=t=>({get:(s,r)=>Pe.get(s,{...r,headers:t?{...r?.headers,"X-Tenant-Slug":t}:r?.headers}).then(n=>n.data),post:(s,r,n)=>Pe.post(s,r,{...n,headers:t?{...n?.headers,"X-Tenant-Slug":t}:n?.headers}).then(o=>o.data),put:(s,r,n)=>Pe.put(s,r,{...n,headers:t?{...n?.headers,"X-Tenant-Slug":t}:n?.headers}).then(o=>o.data),patch:(s,r,n)=>Pe.patch(s,r,{...n,headers:t?{...n?.headers,"X-Tenant-Slug":t}:n?.headers}).then(o=>o.data),delete:(s,r)=>Pe.delete(s,{...r,headers:t?{...r?.headers,"X-Tenant-Slug":t}:r?.headers}).then(n=>n.data)}),pn={PasswordResetMalfunction:1,FalsePositive:2,UrgentBusinessNeed:3,TechnicalSystemError:4,SupportTicketVerified:5},hn=t=>({getAll:s=>t.get("/api/administration/users",{params:s}),getById:s=>t.get(`/api/administration/users/${s}`),create:s=>t.post("/api/administration/users",s),update:(s,r)=>t.put(`/api/administration/users/${s}`,r),sendPasswordResetLink:s=>t.post(`/api/administration/users/${s}/send-password-reset`),resetPasswordDirect:(s,r)=>t.post(`/api/administration/users/${s}/reset-password-direct`,r?{temporaryPassword:r}:{}),activate:s=>t.patch(`/api/administration/users/${s}/activate`),deactivate:s=>t.patch(`/api/administration/users/${s}/deactivate`),unlock:(s,r)=>t.post(`/api/administration/users/${s}/unlock`,r),clearFailedAttempts:s=>t.post(`/api/administration/users/${s}/clear-failed-attempts`),delete:s=>t.delete(`/api/administration/users/${s}`),getSessions:s=>t.get(`/api/administration/users/${s}/sessions`),endAllSessions:s=>t.post(`/api/administration/users/${s}/sessions/end-all`),endSession:(s,r)=>t.delete(`/api/administration/users/${s}/sessions/${r}`),getActivity:s=>t.get(`/api/administration/users/${s}/activity`),getCustomRole:s=>t.get(`/api/administration/users/${s}/custom-role`),createCustomRole:s=>t.post(`/api/administration/users/${s}/custom-role`),deleteCustomRole:s=>t.delete(`/api/administration/users/${s}/custom-role`),getHistory:(s,r=50)=>t.get(`/api/administration/users/${s}/history`,{params:{limit:r}}),restoreFromHistory:(s,r)=>t.post(`/api/administration/users/${s}/history/${r}/restore`),getOrganizationReferences:()=>t.get("/api/administration/users/organization-references"),references:{getCompanies:s=>t.get("/api/administration/users/references/companies",{params:s}),getDepartments:s=>t.get("/api/administration/users/references/departments",{params:s}),getJobTitles:s=>t.get("/api/administration/users/references/job-titles",{params:s}),getOffices:s=>t.get("/api/administration/users/references/offices",{params:s}),createCompany:(s,r)=>t.post(`/api/administration/users/references/companies${r?`?tenantId=${r}`:""}`,s),createDepartment:(s,r)=>t.post(`/api/administration/users/references/departments${r?`?tenantId=${r}`:""}`,s),createJobTitle:(s,r)=>t.post(`/api/administration/users/references/job-titles${r?`?tenantId=${r}`:""}`,s),createOffice:(s,r)=>t.post(`/api/administration/users/references/offices${r?`?tenantId=${r}`:""}`,s),updateCompany:(s,r)=>t.put(`/api/administration/users/references/companies/${s}`,r),updateDepartment:(s,r)=>t.put(`/api/administration/users/references/departments/${s}`,r),updateJobTitle:(s,r)=>t.put(`/api/administration/users/references/job-titles/${s}`,r),updateOffice:(s,r)=>t.put(`/api/administration/users/references/offices/${s}`,r),activateCompany:s=>t.patch(`/api/administration/users/references/companies/${s}/activate`),activateDepartment:s=>t.patch(`/api/administration/users/references/departments/${s}/activate`),activateJobTitle:s=>t.patch(`/api/administration/users/references/job-titles/${s}/activate`),activateOffice:s=>t.patch(`/api/administration/users/references/offices/${s}/activate`),deactivateCompany:s=>t.patch(`/api/administration/users/references/companies/${s}/deactivate`),deactivateDepartment:s=>t.patch(`/api/administration/users/references/departments/${s}/deactivate`),deactivateJobTitle:s=>t.patch(`/api/administration/users/references/job-titles/${s}/deactivate`),deactivateOffice:s=>t.patch(`/api/administration/users/references/offices/${s}/deactivate`),deleteCompany:s=>t.delete(`/api/administration/users/references/companies/${s}`),deleteDepartment:s=>t.delete(`/api/administration/users/references/departments/${s}`),deleteJobTitle:s=>t.delete(`/api/administration/users/references/job-titles/${s}`),deleteOffice:s=>t.delete(`/api/administration/users/references/offices/${s}`)},updateProfile:(s,r)=>t.put(`/api/administration/users/${s}/profile`,r),updateOrganization:(s,r)=>t.put(`/api/administration/users/${s}/organization`,r),updateJobInfo:(s,r)=>t.put(`/api/administration/users/${s}/job-info`,r),updatePhones:(s,r)=>t.put(`/api/administration/users/${s}/phones`,r),updateAddress:(s,r)=>t.put(`/api/administration/users/${s}/address`,r),updateContact:(s,r)=>t.put(`/api/administration/users/${s}/contact`,r),getTenants:s=>t.get(`/api/administration/users/${s}/tenants`),getGroups:s=>t.get(`/api/administration/users/${s}/groups`),getConsolidatedRoles:(s,r)=>{const n=r?`/api/administration/users/${s}/consolidated-roles?tenantId=${r}`:`/api/administration/users/${s}/consolidated-roles`;return t.get(n)},getApplicationAccess:(s,r)=>{const n=r?`/api/administration/users/${s}/application-access?tenantId=${r}`:`/api/administration/users/${s}/application-access`;return t.get(n)}}),gn=hn,fn=t=>({getAll:s=>t.get("/api/administration/permissions/roles",{params:s}),getAssignable:()=>t.get("/api/administration/permissions/roles",{params:{excludeCategories:"Custom",minPermissionsCount:1}}),getServiceAssignable:()=>t.get("/api/administration/permissions/roles",{params:{forExternalApps:!0,minPermissionsCount:1}}),getByApplication:s=>t.get("/api/administration/permissions/roles",{params:{applicationId:s,excludeCategories:"Custom",minPermissionsCount:1}}),getById:s=>t.get(`/api/administration/permissions/roles/${s}`),create:s=>t.post("/api/administration/permissions/roles",s),update:(s,r)=>t.put(`/api/administration/permissions/roles/${s}`,r),delete:s=>t.delete(`/api/administration/permissions/roles/${s}`),assignUser:(s,r)=>t.post(`/api/administration/permissions/roles/${s}/users/${r}`),removeUser:(s,r)=>t.delete(`/api/administration/permissions/roles/${s}/users/${r}`),getGroups:s=>t.get(`/api/administration/permissions/roles/${s}/groups`),assignGroup:(s,r)=>t.post(`/api/administration/permissions/roles/${s}/groups/${r}`),removeGroup:(s,r)=>t.delete(`/api/administration/permissions/roles/${s}/groups/${r}`),getTranslations:s=>t.get(`/api/administration/permissions/roles/${s}/translations`),upsertTranslation:(s,r,n)=>t.put(`/api/administration/permissions/roles/${s}/translations/${r}`,n),deleteTranslation:(s,r)=>t.delete(`/api/administration/permissions/roles/${s}/translations/${r}`)}),bn=fn,vn=t=>({getAll:s=>t.get("/api/administration/permissions",{params:s}),getById:s=>t.get(`/api/administration/permissions/${s}`),getTree:()=>t.get("/api/administration/permissions/tree"),getMatrix:()=>t.get("/api/administration/permissions/matrix"),delete:s=>t.delete(`/api/administration/permissions/${s}`)}),yn=vn,jn=t=>({getAll:s=>t.get("/api/administration/applications",{params:s}),getById:s=>t.get(`/api/administration/applications/${s}`),update:(s,r)=>t.put(`/api/administration/applications/${s}`,r),activate:s=>t.patch(`/api/administration/applications/${s}/activate`),deactivate:s=>t.patch(`/api/administration/applications/${s}/deactivate`),getModules:s=>t.get(`/api/administration/applications/${s}/modules`),updateModule:(s,r,n)=>t.put(`/api/administration/applications/${s}/modules/${r}`,n),getModuleSections:(s,r)=>t.get(`/api/administration/applications/${s}/modules/${r}/sections`),reorderModules:(s,r)=>t.put(`/api/administration/applications/${s}/modules/reorder`,{items:r}),reorderSections:(s,r,n)=>t.put(`/api/administration/applications/${s}/modules/${r}/sections/reorder`,{items:n}),getTenants:s=>t.get(`/api/administration/applications/${s}/tenants`),getAvailableTenants:s=>t.get(`/api/administration/applications/${s}/tenants/available`),assignToTenant:(s,r,n)=>t.post(`/api/administration/applications/${s}/tenants/${r}`,n?{accessLevel:n}:{}),removeFromTenant:(s,r)=>t.delete(`/api/administration/applications/${s}/tenants/${r}`),updateTenantAccessLevel:(s,r,n)=>t.patch(`/api/administration/applications/${s}/tenants/${r}/access-level`,{accessLevel:n}),bulkAssignTenants:(s,r)=>t.post(`/api/administration/applications/${s}/tenants/bulk`,r)}),Nn=jn,wn=t=>({getOverview:(s=30,r)=>t.get("/api/administration/users/dashboard/overview",{params:{days:s},signal:r?.signal}),getByStatus:s=>t.get("/api/administration/users/dashboard/by-status",{signal:s?.signal}),getByRole:s=>t.get("/api/administration/users/dashboard/by-role",{signal:s?.signal}),getByType:s=>t.get("/api/administration/users/dashboard/by-type",{signal:s?.signal}),getLoginActivity:(s=30,r)=>t.get("/api/administration/users/dashboard/login-activity",{params:{days:s},signal:r?.signal}),getTrends:(s=30,r)=>t.get("/api/administration/users/dashboard/trends",{params:{days:s},signal:r?.signal}),getRecentUsers:(s=10,r)=>t.get("/api/administration/users/dashboard/recent-users",{params:{limit:s},signal:r?.signal}),getSecurityAlerts:(s=3,r=24,n)=>t.get("/api/administration/users/dashboard/security-alerts",{params:{threshold:s,hours:r},signal:n?.signal}),getActiveSessions:s=>t.get("/api/administration/users/dashboard/active-sessions",{signal:s?.signal}),getLatestActiveSessions:(s=5,r)=>t.get("/api/administration/users/dashboard/latest-active-sessions",{params:{limit:s},signal:r?.signal})}),Sn=wn,Cn=t=>({getAll:()=>t.get("/api/administration/configuration/settings"),getByCategory:s=>t.get(`/api/administration/configuration/settings/${s}`),get:(s,r)=>t.get(`/api/administration/configuration/settings/${s}/${r}`),update:(s,r,n)=>t.put(`/api/administration/configuration/settings/${s}/${r}`,{value:n}),reset:(s,r)=>t.post(`/api/administration/configuration/settings/${s}/${r}/reset`),getHistory:(s,r)=>t.get(`/api/administration/configuration/settings/${s}/${r}/history`),getCategories:()=>t.get("/api/administration/configuration/settings/categories")}),kn=Cn,Pn=t=>({get:()=>t.get("/api/user/preferences"),getGlobal:()=>t.get("/api/user/preferences/global"),getForTenant:s=>t.get(`/api/user/preferences/for-tenant/${s}`),getThemeOverrides:()=>t.get("/api/user/preferences/theme-overrides"),deleteTenantOverride:()=>t.delete("/api/user/preferences/tenant-override"),applyToTenant:()=>t.post("/api/user/preferences/apply-to-tenant")}),An=Pn,Tn=t=>({getConfig:()=>t.get("/api/administration/tenants/config"),getAll:s=>{const{excludeTypes:r,...n}=s||{},o=new URLSearchParams;n.page&&o.set("page",String(n.page)),n.pageSize&&o.set("pageSize",String(n.pageSize)),n.search&&o.set("search",n.search),n.status&&o.set("status",n.status),n.type&&o.set("type",n.type),n.sortBy&&o.set("sortBy",n.sortBy),n.sortDesc&&o.set("sortDesc","true"),r?.length&&r.forEach(i=>o.append("excludeTypes",i));const c=o.toString();return t.get(`/api/administration/tenants${c?`?${c}`:""}`)},getById:s=>t.get(`/api/administration/tenants/${s}`),createB2C:s=>t.post("/api/administration/tenants/b2c",s),createB2B:s=>t.post("/api/administration/tenants/b2b",s),update:(s,r)=>t.put(`/api/administration/tenants/${s}`,r),delete:s=>t.delete(`/api/administration/tenants/${s}`),activate:s=>t.post(`/api/administration/tenants/${s}/activate`),suspend:s=>t.post(`/api/administration/tenants/${s}/suspend`),archive:s=>t.delete(`/api/administration/tenants/${s}`),checkSlugAvailable:s=>t.get(`/api/administration/tenants/check-slug/${s}`),assignTemplate:(s,r)=>t.post(`/api/administration/tenants/${s}/template`,{templateId:r}),removeTemplate:s=>t.delete(`/api/administration/tenants/${s}/template`),getMembers:s=>t.get(`/api/administration/tenants/${s}/members`),getMember:(s,r)=>t.get(`/api/administration/tenants/${s}/members/${r}`),addMember:(s,r)=>t.post(`/api/administration/tenants/${s}/members`,r),removeMember:(s,r)=>t.delete(`/api/administration/tenants/${s}/members/${r}`),setMemberDefault:(s,r)=>t.patch(`/api/administration/tenants/${s}/members/${r}/set-default`),transferOwnership:(s,r)=>t.post(`/api/administration/tenants/${s}/members/transfer-ownership`,{toUserId:r}),assignRole:(s,r,n)=>t.post(`/api/administration/tenants/${s}/members/${r}/roles/${n}`),removeRole:(s,r,n)=>t.delete(`/api/administration/tenants/${s}/members/${r}/roles/${n}`),assignMemberRoles:(s,r,n)=>t.put(`/api/administration/tenants/${s}/members/${r}/roles`,{roleIds:n}),getMemberCustomRole:(s,r)=>t.get(`/api/administration/tenants/${s}/members/${r}/custom-role`),createMemberCustomRole:(s,r)=>t.post(`/api/administration/tenants/${s}/members/${r}/custom-role`),deleteMemberCustomRole:(s,r)=>t.delete(`/api/administration/tenants/${s}/members/${r}/custom-role`),getTenantRoles:s=>t.get(`/api/administration/tenants/${s}/roles`),getGroups:s=>t.get(`/api/administration/tenants/${s}/groups`),getAvailableGroups:s=>t.get(`/api/administration/tenants/${s}/groups/available`),addGroupToTenant:(s,r)=>t.post(`/api/administration/tenants/${s}/groups`,{groupId:r}),removeGroupFromTenant:(s,r)=>t.delete(`/api/administration/tenants/${s}/groups/${r}`),getApplications:s=>t.get(`/api/administration/tenants/${s}/applications`),getAvailableApplications:s=>t.get(`/api/administration/tenants/${s}/applications/available`),assignApplication:(s,r)=>t.post(`/api/administration/tenants/${s}/applications/${r}`),removeApplication:(s,r)=>t.delete(`/api/administration/tenants/${s}/applications/${r}`),bulkAssignApplications:(s,r)=>t.post(`/api/administration/tenants/${s}/applications/bulk`,r),toggleApplication:(s,r,n)=>t.patch(`/api/administration/tenants/${s}/applications/${r}/toggle`,{isActive:n}),updateApplicationAccessLevel:(s,r,n)=>t.patch(`/api/administration/tenants/${s}/applications/${r}/access-level`,{accessLevel:n}),getEffectiveTree:(s,r)=>t.get(`/api/administration/tenants/${s}/applications/${r}/effective-tree`),saveOverrides:(s,r,n)=>t.put(`/api/administration/tenants/${s}/applications/${r}/overrides`,n),getModules:s=>t.get(`/api/administration/tenants/${s}/modules`),getAvailableModules:s=>t.get(`/api/administration/tenants/${s}/modules/available`),assignModule:(s,r)=>t.post(`/api/administration/tenants/${s}/modules/${r}`),removeModule:(s,r)=>t.delete(`/api/administration/tenants/${s}/modules/${r}`),toggleModule:(s,r,n)=>t.patch(`/api/administration/tenants/${s}/modules/${r}/toggle`,{isActive:n}),getSections:s=>t.get(`/api/administration/tenants/${s}/sections`),getAvailableSections:s=>t.get(`/api/administration/tenants/${s}/sections/available`),assignSection:(s,r)=>t.post(`/api/administration/tenants/${s}/sections/${r}`),removeSection:(s,r)=>t.delete(`/api/administration/tenants/${s}/sections/${r}`),toggleSection:(s,r,n)=>t.patch(`/api/administration/tenants/${s}/sections/${r}/toggle`,{isActive:n}),getModulesWithSections:(s,r)=>t.get(`/api/administration/tenants/${s}/applications/${r}/modules-tree`),linkOrganisation:(s,r)=>t.post(`/api/administration/tenants/${s}/organisation`,{organisationId:r}),unlinkOrganisation:s=>t.delete(`/api/administration/tenants/${s}/organisation`)}),Rn=Tn,En=t=>({getAll:()=>t.get("/api/administration/tenants/templates"),getById:s=>t.get(`/api/administration/tenants/templates/${s}`),create:s=>t.post("/api/administration/tenants/templates",s),update:(s,r)=>t.put(`/api/administration/tenants/templates/${s}`,r),delete:s=>t.delete(`/api/administration/tenants/templates/${s}`),assignApplication:(s,r)=>t.post(`/api/administration/tenants/templates/${s}/applications/${r}`),removeApplication:(s,r)=>t.delete(`/api/administration/tenants/templates/${s}/applications/${r}`),bulkAssignApplications:(s,r)=>t.post(`/api/administration/tenants/templates/${s}/applications/bulk`,r),getTenants:s=>t.get(`/api/administration/tenants/templates/${s}/tenants`),getApplications:s=>t.get(`/api/administration/tenants/templates/${s}/applications`),getAvailableApplications:s=>t.get(`/api/administration/tenants/templates/${s}/applications/available`),updateApplicationAccessLevel:(s,r,n)=>t.patch(`/api/administration/tenants/templates/${s}/applications/${r}/access-level`,{accessLevel:n}),getApplicationModules:(s,r)=>t.get(`/api/administration/tenants/templates/${s}/applications/${r}/modules`),updateApplicationModules:(s,r,n)=>t.put(`/api/administration/tenants/templates/${s}/applications/${r}/modules`,n),getAiInstances:s=>t.get(`/api/administration/tenants/templates/${s}/ai-instances`),assignAiInstance:(s,r)=>t.post(`/api/administration/tenants/templates/${s}/ai-instances/${r}`),removeAiInstance:(s,r)=>t.delete(`/api/administration/tenants/templates/${s}/ai-instances/${r}`)}),In=En,Ln=t=>({getAll:s=>t.get("/api/administration/tenants/organisations",{params:s}),getAvailable:s=>t.get("/api/administration/tenants/organisations/available",{params:s?{search:s}:void 0}),getPendingVerification:()=>t.get("/api/administration/tenants/organisations/pending-verification"),getById:s=>t.get(`/api/administration/tenants/organisations/${s}`),findById:async s=>{const r=await Pe.get(`/api/administration/tenants/organisations/${s}`,{validateStatus:n=>n===200||n===404});return r.status===200?r.data:null},create:s=>t.post("/api/administration/tenants/organisations",s),updateContact:(s,r)=>t.put(`/api/administration/tenants/organisations/${s}/contact`,r),updateAddress:(s,r)=>t.put(`/api/administration/tenants/organisations/${s}/address`,r),verify:(s,r)=>t.post(`/api/administration/tenants/organisations/${s}/verify`,{notes:r}),reject:(s,r)=>t.post(`/api/administration/tenants/organisations/${s}/reject`,{reason:r}),lookup:(s,r)=>t.get("/api/administration/tenants/organisations/lookup",{params:{countryCode:s,identifier:r}})}),$n=Ln,Dn=t=>({getAll:s=>t.get("/api/administration/tenants/my",{params:s?{search:s}:void 0}),getDefault:()=>t.get("/api/administration/tenants/my/default"),setDefault:s=>t.post(`/api/administration/tenants/${s}/set-default`),clearDefault:()=>t.delete("/api/administration/tenants/clear-default"),getFavorites:()=>t.get("/api/user/preferences/tenant-favorites"),addFavorite:s=>t.post(`/api/user/preferences/tenant-favorites/${s}`),removeFavorite:s=>t.delete(`/api/user/preferences/tenant-favorites/${s}`),recordRecent:s=>t.post(`/api/user/preferences/tenant-recent/${s}`)}),Mn=Dn,On=t=>({getAll:s=>t.get("/api/accounts",{params:s}),getById:s=>t.get(`/api/accounts/${s}`),create:s=>t.post("/api/accounts",s),update:(s,r)=>t.put(`/api/accounts/${s}`,r),delete:s=>t.delete(`/api/accounts/${s}`),activate:s=>t.patch(`/api/accounts/${s}/activate`),deactivate:s=>t.patch(`/api/accounts/${s}/deactivate`),rotateSecret:(s,r="Primary")=>t.post(`/api/accounts/${s}/rotate-secret?keySlot=${r}`),revokeSecondarySecret:s=>t.delete(`/api/accounts/${s}/secondary-secret`),assignRole:(s,r)=>t.post(`/api/accounts/${s}/roles`,r),removeRole:(s,r,n)=>t.delete(`/api/accounts/${s}/roles/${r}`,{params:n?{tenantId:n}:void 0}),generateSecret:()=>t.post("/api/accounts/generate-secret"),getAuditLogs:(s,r=1,n=20)=>t.get(`/api/accounts/${s}/audit-logs`,{params:{page:r,pageSize:n}}),getUsageStats:(s,r=30)=>t.get(`/api/accounts/${s}/usage-stats`,{params:{days:r}}),getKeyUsage:s=>t.get(`/api/accounts/${s}/key-usage`),getApiEndpoints:()=>t.get("/api/accounts/api-endpoints"),getAppApiAccess:s=>t.get(`/api/accounts/${s}/api-access`),updateApiAccess:(s,r,n)=>t.put(`/api/accounts/${s}/api-access/${r}`,n),removeApiAccess:(s,r)=>t.delete(`/api/accounts/${s}/api-access/${r}`)}),Fn=On,_n=t=>({getNavigationLookup:()=>t.get("/api/apis/navigation-lookup")}),Un=_n,vr=t=>{const s=t?xn(t):I;return{users:gn(s),roles:bn(s),permissions:yn(s),applications:Nn(s),dashboard:Sn(s),settings:kn(s),tenants:Rn(s),templates:In(s),organisations:$n(s),myTenants:Mn(s),preferences:An(s),externalApps:Fn(s),apiCatalog:Un(s)}},we=vr(),me=(t,s,r)=>{const n=t[s];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((o,c)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(c.bind(null,new Error("Unknown variable dynamic import: "+s+(s.split("/").length!==r?". Note that variables only represent file names one level deep.":""))))})},rs=async t=>{if(!t)return null;try{const[s,r,n,o,c,i,d,u,m,x,p,f,y,h,N,b,w,g,v,j,L,$,k,P,A,D,U,C,M,X,R,B,J,G,Y]=await Promise.all([me(Object.assign({"./locales/de/common.json":()=>Promise.resolve().then(()=>require("./common-Rz3UdIko.js")),"./locales/en/common.json":()=>Promise.resolve().then(()=>require("./common-CDcNYOxO.js")),"./locales/fr/common.json":()=>Promise.resolve().then(()=>require("./common-hy5JFCcL.js")),"./locales/it/common.json":()=>Promise.resolve().then(()=>require("./common-C-PRBz69.js"))}),`./locales/${t}/common.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/navigation.json":()=>Promise.resolve().then(()=>require("./navigation-D8yOGHza.js")),"./locales/en/navigation.json":()=>Promise.resolve().then(()=>require("./navigation-rEtU7BPw.js")),"./locales/fr/navigation.json":()=>Promise.resolve().then(()=>require("./navigation-BI8iMTJl.js")),"./locales/it/navigation.json":()=>Promise.resolve().then(()=>require("./navigation-BTkWh95c.js"))}),`./locales/${t}/navigation.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/auth.json":()=>Promise.resolve().then(()=>require("./auth-F4QivQwP.js")),"./locales/en/auth.json":()=>Promise.resolve().then(()=>require("./auth-CPtE6oEM.js")),"./locales/fr/auth.json":()=>Promise.resolve().then(()=>require("./auth-DfrsK5v-.js")),"./locales/it/auth.json":()=>Promise.resolve().then(()=>require("./auth-hRu3r3XK.js"))}),`./locales/${t}/auth.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/admin.json":()=>Promise.resolve().then(()=>require("./admin-B2LSENtf.js")),"./locales/en/admin.json":()=>Promise.resolve().then(()=>require("./admin-DbdkMKIr.js")),"./locales/fr/admin.json":()=>Promise.resolve().then(()=>require("./admin-CxWRfBxp.js")),"./locales/it/admin.json":()=>Promise.resolve().then(()=>require("./admin-DRivGadv.js"))}),`./locales/${t}/admin.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/support.json":()=>Promise.resolve().then(()=>require("./support-BU6GoEbW.js")),"./locales/en/support.json":()=>Promise.resolve().then(()=>require("./support-DnSiwJx7.js")),"./locales/fr/support.json":()=>Promise.resolve().then(()=>require("./support-B0kcB-tL.js")),"./locales/it/support.json":()=>Promise.resolve().then(()=>require("./support-Cm84X3pP.js"))}),`./locales/${t}/support.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs.json":()=>Promise.resolve().then(()=>require("./docs-sqOeJ3Lg.js")),"./locales/en/docs.json":()=>Promise.resolve().then(()=>require("./docs-BR4q7sou.js")),"./locales/fr/docs.json":()=>Promise.resolve().then(()=>require("./docs-CDz8QplV.js")),"./locales/it/docs.json":()=>Promise.resolve().then(()=>require("./docs-DCOsvfv7.js"))}),`./locales/${t}/docs.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/ai.json":()=>Promise.resolve().then(()=>require("./ai-BGanmkGz.js")),"./locales/en/ai.json":()=>Promise.resolve().then(()=>require("./ai-CnWgG5hN.js")),"./locales/fr/ai.json":()=>Promise.resolve().then(()=>require("./ai-wRnnMW5a.js")),"./locales/it/ai.json":()=>Promise.resolve().then(()=>require("./ai-Cgn4sP2c.js"))}),`./locales/${t}/ai.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/communications.json":()=>Promise.resolve().then(()=>require("./communications-DBbKXpf1.js")),"./locales/en/communications.json":()=>Promise.resolve().then(()=>require("./communications-BPsS3Vfm.js")),"./locales/fr/communications.json":()=>Promise.resolve().then(()=>require("./communications-DElJaoVw.js")),"./locales/it/communications.json":()=>Promise.resolve().then(()=>require("./communications-BKaku0MU.js"))}),`./locales/${t}/communications.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/entra.json":()=>Promise.resolve().then(()=>require("./entra-BadKCc7Y.js")),"./locales/en/entra.json":()=>Promise.resolve().then(()=>require("./entra-CfLYpxKq.js")),"./locales/fr/entra.json":()=>Promise.resolve().then(()=>require("./entra-Bc0Dwf7d.js")),"./locales/it/entra.json":()=>Promise.resolve().then(()=>require("./entra-DDgx1JoT.js"))}),`./locales/${t}/entra.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/en/structure.json":()=>Promise.resolve().then(()=>require("./structure-BL5cd83u.js")),"./locales/fr/structure.json":()=>Promise.resolve().then(()=>require("./structure-BblXL_QG.js"))}),`./locales/${t}/structure.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/preferences.json":()=>Promise.resolve().then(()=>require("./preferences-DLJ9mTYQ.js")),"./locales/en/preferences.json":()=>Promise.resolve().then(()=>require("./preferences-pkUX3R0G.js")),"./locales/fr/preferences.json":()=>Promise.resolve().then(()=>require("./preferences-Di_IL1wh.js")),"./locales/it/preferences.json":()=>Promise.resolve().then(()=>require("./preferences-B65OLntJ.js"))}),`./locales/${t}/preferences.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/groups.json":()=>Promise.resolve().then(()=>require("./groups-DGDNx8Hf.js")),"./locales/en/groups.json":()=>Promise.resolve().then(()=>require("./groups-5uqhFMN4.js")),"./locales/fr/groups.json":()=>Promise.resolve().then(()=>require("./groups-Cp2Q-pWt.js")),"./locales/it/groups.json":()=>Promise.resolve().then(()=>require("./groups-cV3gnMYo.js"))}),`./locales/${t}/groups.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/en/ba.json":()=>Promise.resolve().then(()=>require("./ba-9HglDm-t.js")),"./locales/fr/ba.json":()=>Promise.resolve().then(()=>require("./ba-CXlHUyjN.js"))}),`./locales/${t}/ba.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/home.json":()=>Promise.resolve().then(()=>require("./home-BJUrAgKh.js")),"./locales/en/home.json":()=>Promise.resolve().then(()=>require("./home-kOg_qmWN.js")),"./locales/fr/home.json":()=>Promise.resolve().then(()=>require("./home-CqwbawDU.js")),"./locales/it/home.json":()=>Promise.resolve().then(()=>require("./home-BFGCKgny.js"))}),`./locales/${t}/home.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-users.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-CsRMxznf.js")),"./locales/en/docs-administration-users.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-BUnDEWjL.js")),"./locales/fr/docs-administration-users.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-DRITa5fK.js")),"./locales/it/docs-administration-users.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-qLwE7c_z.js"))}),`./locales/${t}/docs-administration-users.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-permissions.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-BHJfnRA-.js")),"./locales/en/docs-administration-permissions.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-CXsWrgCA.js")),"./locales/fr/docs-administration-permissions.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-BLmrJB-I.js")),"./locales/it/docs-administration-permissions.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-BmiGStz4.js"))}),`./locales/${t}/docs-administration-permissions.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-Cmjpaxwy.js")),"./locales/en/docs-administration-tenants.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-CvYnhoo5.js")),"./locales/fr/docs-administration-tenants.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-xhQOAORE.js")),"./locales/it/docs-administration-tenants.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-CuHqwklv.js"))}),`./locales/${t}/docs-administration-tenants.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-ai.json":()=>Promise.resolve().then(()=>require("./docs-administration-ai-CPqGrO8q.js")),"./locales/en/docs-administration-ai.json":()=>Promise.resolve().then(()=>require("./docs-administration-ai-EVzVu3kS.js")),"./locales/fr/docs-administration-ai.json":()=>Promise.resolve().then(()=>require("./docs-administration-ai-B0zkD6zQ.js")),"./locales/it/docs-administration-ai.json":()=>Promise.resolve().then(()=>require("./docs-administration-ai-DngqfS6k.js"))}),`./locales/${t}/docs-administration-ai.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-workflows.json":()=>Promise.resolve().then(()=>require("./docs-administration-workflows-DRw16ooP.js")),"./locales/en/docs-administration-workflows.json":()=>Promise.resolve().then(()=>require("./docs-administration-workflows-Da6XQxlv.js")),"./locales/fr/docs-administration-workflows.json":()=>Promise.resolve().then(()=>require("./docs-administration-workflows-CofvuK9f.js")),"./locales/it/docs-administration-workflows.json":()=>Promise.resolve().then(()=>require("./docs-administration-workflows-DW4kFs3z.js"))}),`./locales/${t}/docs-administration-workflows.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-entra.json":()=>Promise.resolve().then(()=>require("./docs-administration-entra-D3hQEI3V.js")),"./locales/en/docs-administration-entra.json":()=>Promise.resolve().then(()=>require("./docs-administration-entra-griadux5.js")),"./locales/fr/docs-administration-entra.json":()=>Promise.resolve().then(()=>require("./docs-administration-entra-BbS4ZUu7.js")),"./locales/it/docs-administration-entra.json":()=>Promise.resolve().then(()=>require("./docs-administration-entra-D0KuJ7Ps.js"))}),`./locales/${t}/docs-administration-entra.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-applications-C6VsiHxH.js")),"./locales/en/docs-administration-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-applications-DRYyRp3S.js")),"./locales/fr/docs-administration-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-applications-BEepPuXf.js")),"./locales/it/docs-administration-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-applications-BiZBTxgS.js"))}),`./locales/${t}/docs-administration-applications.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-configuration.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-BdZl4hL4.js")),"./locales/en/docs-administration-configuration.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-DvZxFmnH.js")),"./locales/fr/docs-administration-configuration.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-CXro3iiT.js")),"./locales/it/docs-administration-configuration.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-B1YtxR_A.js"))}),`./locales/${t}/docs-administration-configuration.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-configuration-license.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-license-DSMqi4PQ.js")),"./locales/en/docs-administration-configuration-license.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-license-C3rm7u1h.js")),"./locales/fr/docs-administration-configuration-license.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-license-CJsMRPaR.js")),"./locales/it/docs-administration-configuration-license.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-license-_LdQyRjT.js"))}),`./locales/${t}/docs-administration-configuration-license.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-template.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-template-HRqVNkqP.js")),"./locales/en/docs-administration-tenants-template.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-template-XQ-IiS31.js")),"./locales/fr/docs-administration-tenants-template.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-template-B3IDsztG.js")),"./locales/it/docs-administration-tenants-template.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-template-DKbpQgBH.js"))}),`./locales/${t}/docs-administration-tenants-template.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-business.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-business-BtAQiVRM.js")),"./locales/en/docs-administration-tenants-business.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-business-Cs4N4jrq.js")),"./locales/fr/docs-administration-tenants-business.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-business-XRmC4aRE.js")),"./locales/it/docs-administration-tenants-business.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-business-D1T8STQX.js"))}),`./locales/${t}/docs-administration-tenants-business.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-personal.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-personal-DHGVmv0D.js")),"./locales/en/docs-administration-tenants-personal.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-personal-Bk0D7emY.js")),"./locales/fr/docs-administration-tenants-personal.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-personal-DSnrN4MO.js")),"./locales/it/docs-administration-tenants-personal.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-personal-KFjQQGdW.js"))}),`./locales/${t}/docs-administration-tenants-personal.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-other.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-other-B5w2xFPJ.js")),"./locales/en/docs-administration-tenants-other.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-other-Dh2ohplZ.js")),"./locales/fr/docs-administration-tenants-other.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-other-WV4RsrVj.js")),"./locales/it/docs-administration-tenants-other.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-other-DeZKiNkH.js"))}),`./locales/${t}/docs-administration-tenants-other.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-permissions-assignments.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-assignments-BbAfGAzk.js")),"./locales/en/docs-administration-permissions-assignments.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-assignments-cv88prRo.js")),"./locales/fr/docs-administration-permissions-assignments.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-assignments-Clm4Yhy7.js")),"./locales/it/docs-administration-permissions-assignments.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-assignments-Xtrdol6a.js"))}),`./locales/${t}/docs-administration-permissions-assignments.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-applications-BXTwlVt_.js")),"./locales/en/docs-administration-tenants-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-applications-DxKx9YEc.js")),"./locales/fr/docs-administration-tenants-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-applications-DehK43TA.js")),"./locales/it/docs-administration-tenants-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-applications-D2SCJxWE.js"))}),`./locales/${t}/docs-administration-tenants-applications.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-access-requests.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-access-requests-CMJEiBDZ.js")),"./locales/en/docs-administration-tenants-access-requests.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-access-requests-BDCjPv_a.js")),"./locales/fr/docs-administration-tenants-access-requests.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-access-requests-DXBq6rZX.js")),"./locales/it/docs-administration-tenants-access-requests.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-access-requests-7mBPVsvv.js"))}),`./locales/${t}/docs-administration-tenants-access-requests.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-organisations.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-organisations-DV-_MnD2.js")),"./locales/en/docs-administration-tenants-organisations.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-organisations-BJS2qchs.js")),"./locales/fr/docs-administration-tenants-organisations.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-organisations-DDPYmh_7.js")),"./locales/it/docs-administration-tenants-organisations.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-organisations-BWchU3XZ.js"))}),`./locales/${t}/docs-administration-tenants-organisations.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-platform-support-tickets.json":()=>Promise.resolve().then(()=>require("./docs-platform-support-tickets-nvIWiI_l.js")),"./locales/en/docs-platform-support-tickets.json":()=>Promise.resolve().then(()=>require("./docs-platform-support-tickets-yc0oKKrD.js")),"./locales/fr/docs-platform-support-tickets.json":()=>Promise.resolve().then(()=>require("./docs-platform-support-tickets-jObWdig-.js")),"./locales/it/docs-platform-support-tickets.json":()=>Promise.resolve().then(()=>require("./docs-platform-support-tickets-BtPIdbRr.js"))}),`./locales/${t}/docs-platform-support-tickets.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-users-dashboard.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-dashboard-D6Oy2YkN.js")),"./locales/en/docs-administration-users-dashboard.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-dashboard-sPBt_1c4.js")),"./locales/fr/docs-administration-users-dashboard.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-dashboard-BVpRmDsI.js")),"./locales/it/docs-administration-users-dashboard.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-dashboard-lQ9K3m9K.js"))}),`./locales/${t}/docs-administration-users-dashboard.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-users-references.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-references-Du_ykq8Q.js")),"./locales/en/docs-administration-users-references.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-references-CNWOU2Wq.js")),"./locales/fr/docs-administration-users-references.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-references-Dc8nUoSy.js")),"./locales/it/docs-administration-users-references.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-references-C5YUKBpW.js"))}),`./locales/${t}/docs-administration-users-references.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-users-groups.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-groups-WmOKFuUm.js")),"./locales/en/docs-administration-users-groups.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-groups-C6xh7MWi.js")),"./locales/fr/docs-administration-users-groups.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-groups-DgWpE7cP.js")),"./locales/it/docs-administration-users-groups.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-groups-7NuH5xFT.js"))}),`./locales/${t}/docs-administration-users-groups.json`,4).catch(()=>({default:{}}))]);return{common:s.default||{},navigation:r.default||{},auth:n.default||{},admin:o.default||{},support:c.default||{},docs:i.default||{},ai:d.default||{},communications:u.default||{},entra:m.default||{},structure:x.default||{},preferences:p.default||{},groups:f.default||{},ba:y.default||{},home:h.default||{},docsAdministrationUsers:N.default||{},docsAdministrationPermissions:b.default||{},docsAdministrationTenants:w.default||{},docsAdministrationAi:g.default||{},docsAdministrationWorkflows:v.default||{},docsAdministrationEntra:j.default||{},docsAdministrationApplications:L.default||{},docsAdministrationConfiguration:$.default||{},docsAdministrationConfigurationLicense:k.default||{},docsAdministrationTenantsTemplate:P.default||{},docsAdministrationTenantsBusiness:A.default||{},docsAdministrationTenantsPersonal:D.default||{},docsAdministrationTenantsOther:U.default||{},docsAdministrationPermissionsAssignments:C.default||{},docsAdministrationTenantsApplications:M.default||{},docsAdministrationTenantsAccessRequests:X.default||{},docsAdministrationTenantsOrganisations:R.default||{},docsPlatformSupportTickets:B.default||{},docsAdministrationUsersDashboard:J.default||{},docsAdministrationUsersReferences:G.default||{},docsAdministrationUsersGroups:Y.default||{}}}catch(s){return console.warn(`Failed to load language: ${t}`,s),null}},qn={},Bn=()=>{const t=localStorage.getItem("i18nextLng");if(t&&["en","fr","de","it"].includes(t))return t;const s=navigator.language.split("-")[0];return["en","fr","de","it"].includes(s)?s:"en"},Rt=Bn();Lt.use(rn).use(re.initReactI18next).init({resources:qn,lng:Rt,fallbackLng:"en",defaultNS:"common",ns:["common","navigation","auth","admin","support","docs","ai","communications","entra","structure","preferences","groups","ba","home","docsAdministrationUsers","docsAdministrationPermissions","docsAdministrationTenants","docsAdministrationAi","docsAdministrationWorkflows","docsAdministrationEntra","docsAdministrationApplications","docsAdministrationConfiguration","docsAdministrationConfigurationLicense","docsAdministrationTenantsTemplate","docsAdministrationTenantsBusiness","docsAdministrationTenantsPersonal","docsAdministrationTenantsOther","docsAdministrationPermissionsAssignments","docsAdministrationTenantsApplications","docsAdministrationTenantsAccessRequests","docsAdministrationTenantsOrganisations","docsPlatformSupportTickets","docsAdministrationUsersReferences","docsAdministrationUsersGroups"],interpolation:{escapeValue:!1},detection:{order:["localStorage","navigator","htmlTag"],caches:["localStorage"]},react:{bindI18nStore:"added removed",useSuspense:!1}});const as=(t,s)=>{Object.entries(s).forEach(([r,n])=>{Lt.addResourceBundle(t,r,n,!0,!0)})},yr=(async()=>{const t=[];Rt!=="en"&&t.push(rs("en").then(s=>{s&&as("en",s)})),t.push(rs(Rt).then(s=>{s&&as(Rt,s)})),await Promise.all(t)})(),jr=yr,hs=async t=>{if(await yr,!Lt.hasResourceBundle(t,"common")){const s=await rs(t);s&&as(t,s)}await Lt.changeLanguage(t)},Nr=a.createContext(void 0);function zn(){if(typeof window>"u")return Nt;try{const s=localStorage.getItem(fr);if(s){const r=JSON.parse(s);return{...Nt,...r,borderRadius:{...Nt.borderRadius,...r.borderRadius},itemPaletteKey:r.itemPaletteKey||ms,colors:{light:ht(r.accentColorKey||"indigo"),dark:gt(r.accentColorKey||"indigo")}}}}catch{}const t=window.matchMedia("(prefers-color-scheme: dark)").matches;return{...Nt,mode:t?"dark":"light"}}function Pt(t){const s=t.accentColorKey||"indigo",r=t.borderRadius;return{mode:t.theme||"dark",accentColorKey:s,borderRadius:{card:r?.card||"large",button:r?.button||"medium",badge:r?.badge||"medium",input:r?.input||"medium",modal:r?.modal||"xlarge",menuItem:r?.menuItem||"medium"},itemPaletteKey:t.itemPaletteKey||ms,colors:{light:ht(s),dark:gt(s)}}}function Kn(t){const s=document.documentElement,r=t.mode==="dark"?t.colors.dark:t.colors.light,n=qe[t.accentColorKey]?.shades||qe.indigo.shades,o=pt[t.itemPaletteKey]||pt.neutral,c=t.mode==="dark"?o.colors.dark:o.colors.light;t.mode==="dark"?s.classList.add("dark"):s.classList.remove("dark"),s.style.setProperty("--radius-card",Je[t.borderRadius.card]),s.style.setProperty("--radius-button",Je[t.borderRadius.button]),s.style.setProperty("--radius-badge",Je[t.borderRadius.badge]),s.style.setProperty("--radius-input",Je[t.borderRadius.input]),s.style.setProperty("--radius-modal",Je[t.borderRadius.modal]),s.style.setProperty("--radius-menu-item",Je[t.borderRadius.menuItem]),Object.entries(n).forEach(([i,d])=>{s.style.setProperty(`--color-accent-${i}`,d)}),s.style.setProperty("--item-color-light",c.light),s.style.setProperty("--item-color-medium",c.medium),s.style.setProperty("--item-color-dark",c.dark),s.style.setProperty("--item-color-border",c.border),s.style.setProperty("--bg-app",r.backgrounds.app),s.style.setProperty("--bg-primary",r.backgrounds.primary),s.style.setProperty("--bg-secondary",r.backgrounds.secondary),s.style.setProperty("--bg-tertiary",r.backgrounds.tertiary),s.style.setProperty("--bg-card",r.backgrounds.card),s.style.setProperty("--bg-hover",r.backgrounds.hover),s.style.setProperty("--bg-active",r.backgrounds.active),s.style.setProperty("--text-primary",r.text.primary),s.style.setProperty("--text-secondary",r.text.secondary),s.style.setProperty("--text-tertiary",r.text.tertiary),s.style.setProperty("--text-muted",r.text.muted),s.style.setProperty("--text-inverse",r.text.inverse),s.style.setProperty("--border-color",r.border.default),s.style.setProperty("--border-subtle",r.border.subtle),s.style.setProperty("--border-strong",r.border.strong),s.style.setProperty("--success-bg",r.status.success.bg),s.style.setProperty("--success-text",r.status.success.text),s.style.setProperty("--success-border",r.status.success.border),s.style.setProperty("--success-dot",r.status.success.dot),s.style.setProperty("--warning-bg",r.status.warning.bg),s.style.setProperty("--warning-text",r.status.warning.text),s.style.setProperty("--warning-border",r.status.warning.border),s.style.setProperty("--warning-dot",r.status.warning.dot),s.style.setProperty("--error-bg",r.status.error.bg),s.style.setProperty("--error-text",r.status.error.text),s.style.setProperty("--error-border",r.status.error.border),s.style.setProperty("--error-dot",r.status.error.dot),s.style.setProperty("--info-bg",r.status.info.bg),s.style.setProperty("--info-text",r.status.info.text),s.style.setProperty("--info-border",r.status.info.border),s.style.setProperty("--info-dot",r.status.info.dot),s.style.setProperty("--accent-bg",r.accentTransparent.bg),s.style.setProperty("--accent-text",r.accentTransparent.text),s.style.setProperty("--accent-border",r.accentTransparent.border)}function wr({children:t}){const[s,r]=a.useState(zn),[n,o]=a.useState(!1),[c,i]=a.useState(null),[d,u]=a.useState(void 0),[m,x]=a.useState([]),{i18n:p}=re.useTranslation(),f=a.useRef(null),y=a.useRef(!0),h=a.useRef(!1),N=a.useRef(!1),b=a.useCallback(async(R,B=void 0)=>{if(!localStorage.getItem("user")||N.current)return;let G=null;const Y=localStorage.getItem("currentTenantId");if(B===void 0)Y?G=Y:G=null;else{if(B!==null&&Y&&B!==Y)return;G=B}try{o(!0),await _t.preferences.updateTheme({mode:R.mode,accentColorKey:R.accentColorKey,borderRadius:{card:R.borderRadius.card,button:R.borderRadius.button,badge:R.borderRadius.badge,input:R.borderRadius.input,modal:R.borderRadius.modal,menuItem:R.borderRadius.menuItem},itemPaletteKey:R.itemPaletteKey,targetTenantId:G}),G&&!m.includes(G)&&x(ge=>[...ge,G])}catch(ge){console.error("[ThemeContext] ❌ Failed to save theme to server:",{error:ge,targetTenantId:G,mode:R.mode,accentColorKey:R.accentColorKey,localStorage_currentTenantId:localStorage.getItem("currentTenantId"),localStorage_currentTenantSlug:localStorage.getItem("currentTenantSlug")})}finally{o(!1)}},[m]),w=a.useCallback((R,B=void 0)=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{b(R,B)},1e3)},[b]);a.useLayoutEffect(()=>{Kn(s)},[s]),a.useEffect(()=>{const R={mode:s.mode,borderRadius:s.borderRadius,accentColorKey:s.accentColorKey,itemPaletteKey:s.itemPaletteKey};localStorage.setItem(fr,JSON.stringify(R)),!N.current&&!y.current&&w(s,d),y.current=!1},[s,w,d]),a.useEffect(()=>()=>{f.current&&clearTimeout(f.current)},[]);const g=a.useCallback(async R=>{const B=localStorage.getItem("user"),J=localStorage.getItem("currentTenantSlug");if(!B)return;const G=R==="global";if(!(!G&&!J))try{o(!0);const Y=G?await we.preferences.getGlobal():await we.preferences.get();i(Y.scope);const ge=Pt(Y);y.current=!0,r(ge),h.current=!0,Y.language&&Y.language!==p.language&&(await hs(Y.language),document.documentElement.lang=Y.language)}catch(Y){console.error("[ThemeContext] Failed to load theme from server:",Y)}finally{o(!1)}},[p]),v=a.useCallback(async()=>{const R=localStorage.getItem("user"),B=localStorage.getItem("currentTenantSlug");if(!(!R||!B))try{o(!0);const J=await we.preferences.applyToTenant();i(J.scope)}catch(J){throw console.error("[ThemeContext] Failed to create tenant-specific preferences:",J),J}finally{o(!1)}},[]),j=a.useCallback(async()=>{const R=localStorage.getItem("user"),B=localStorage.getItem("currentTenantSlug");if(!(!R||!B))try{o(!0);const J=await we.preferences.deleteTenantOverride();i(J.scope);const G=Pt(J);y.current=!0,r(G)}catch(J){throw console.error("[ThemeContext] Failed to delete tenant-specific preferences:",J),J}finally{o(!1)}},[]),L=a.useCallback(async()=>{if(localStorage.getItem("user"))try{const B=await we.preferences.getThemeOverrides();x(B)}catch(B){console.error("[ThemeContext] Failed to load tenant overrides:",B)}},[]),$=a.useCallback(async(R,B=!1)=>{if(f.current&&(clearTimeout(f.current),f.current=null),N.current=!0,h.current=!0,y.current=!0,u(R),B){N.current=!1;return}if(!localStorage.getItem("user")){N.current=!1;return}try{if(o(!0),R===null){const G=await we.preferences.getGlobal();i(G.scope);const Y=Pt(G);y.current=!0,r(Y)}else{const G=await we.preferences.getForTenant(R);i(G.scope);const Y=Pt(G);y.current=!0,r(Y)}}catch(G){console.error("[ThemeContext] Failed to load preferences for tenant:",G)}finally{o(!1),N.current=!1}},[]),k=a.useCallback(()=>{r(R=>({...R,mode:R.mode==="light"?"dark":"light",colors:{light:ht(R.accentColorKey),dark:gt(R.accentColorKey)}}))},[]),P=a.useCallback(R=>{r(B=>({...B,mode:R}))},[]),A=a.useCallback((R,B)=>{r(J=>({...J,borderRadius:{...J.borderRadius,[R]:B}}))},[]),D=a.useCallback(R=>{qe[R]&&r(B=>({...B,accentColorKey:R,colors:{light:ht(R),dark:gt(R)}}))},[]),U=a.useCallback(R=>{pt[R]&&r(B=>({...B,itemPaletteKey:R}))},[]),C=a.useCallback(R=>{r(B=>{const J=R.accentColorKey||B.accentColorKey;return{...B,...R,borderRadius:{...B.borderRadius,...R.borderRadius},accentColorKey:J,itemPaletteKey:R.itemPaletteKey||B.itemPaletteKey,colors:{light:ht(J),dark:gt(J)}}})},[]),M=a.useCallback(()=>{r(Nt)},[]),X=a.useCallback(R=>Je[s.borderRadius[R]],[s.borderRadius]);return e.jsx(Nr.Provider,{value:{config:s,mode:s.mode,toggleMode:k,setMode:P,setBorderRadius:A,setAccentColor:D,setItemPalette:U,applyPreset:C,resetToDefault:M,getBorderRadius:X,loadFromServer:g,isSyncing:n,scopeInfo:c,applyToTenant:v,resetToGlobal:j,selectedThemeTenant:d,setSelectedThemeTenant:$,tenantOverrides:m,loadTenantOverrides:L},children:t})}function wt(){const t=a.useContext(Nr);if(t===void 0)throw new Error("useTheme must be used within a ThemeProvider");return t}let vt=null,lt=null;const Gn={async getFeatureConfig(t){return vt||lt||(lt=(async()=>{try{return vt=(await us.get("/api/config/features",{timeout:1e4,signal:t,headers:{"Content-Type":"application/json"}})).data,vt}finally{lt=null}})(),lt)},clearCache(){vt=null,lt=null}},Sr=a.createContext(void 0);function Hn({children:t}){const[s,r]=a.useState(null),[n,o]=a.useState(!0);a.useEffect(()=>{const i=new AbortController;return Gn.getFeatureConfig(i.signal).then(d=>{i.signal.aborted||r(d)}).catch(d=>{d.name==="CanceledError"||i.signal.aborted||(console.error("Failed to load feature config:",d),r({multiTenantEnabled:!0,enableB2B:!0,enableB2C:!0,useUrlRouting:!0}))}).finally(()=>{i.signal.aborted||o(!1)}),()=>i.abort()},[]);const c={config:s,isLoading:n,isMultiTenant:!0,isHybridMode:s?.multiTenantEnabled===!0&&s?.enableB2B===!1&&s?.enableB2C===!0,enableB2B:s?.enableB2B??!0,enableB2C:s?.enableB2C??!0,useUrlRouting:s?.useUrlRouting??!0};return e.jsx(Sr.Provider,{value:c,children:t})}function Ut(){const t=a.useContext(Sr);if(!t)throw new Error("useFeatureConfig must be used within FeatureConfigProvider");return t}const Cr="*";function qt(t,s){const r=t.toLowerCase(),n=s.toLowerCase();if(r==="*"||r===n)return!0;if(r.endsWith(".*")){const o=r.slice(0,-2);return n.startsWith(o+".")||n===o}return!1}function kr(t,s){if(t.includes(s))return!0;for(const r of t)if(qt(r,s))return!0;return!1}function $t(t){return t.includes(Cr)}function gs(t,s){if(!s||$t(t))return!0;const r=s.toLowerCase(),n=r+".";for(const o of t){const c=o.toLowerCase();if(c==="*"||c===r||c.startsWith(n))return!0;if(c.endsWith(".*")){const i=c.slice(0,-1);if(r.startsWith(i)||n.startsWith(i))return!0}}return!1}const fs=a.createContext(void 0),ct="user";function Pr({children:t}){const[s,r]=a.useState(()=>{if(typeof window<"u"){const x=localStorage.getItem(ct);if(x)try{return JSON.parse(x)}catch{return null}}return null}),[n,o]=a.useState(!0),c=a.useCallback((x,p)=>{localStorage.setItem(ct,JSON.stringify(p)),r(p)},[]),i=a.useCallback(async()=>{try{await I.post("/api/auth/logout")}catch{}localStorage.removeItem(ct),r(null),window.location.href="/login"},[]),d=a.useCallback(x=>s?kr(s.permissions,x):!1,[s]),u=a.useCallback(async()=>{try{const x=await I.get("/api/auth/me");r(x),localStorage.setItem(ct,JSON.stringify(x))}catch(x){console.error("Failed to refresh permissions:",x)}},[]),m=a.useRef(!1);return a.useEffect(()=>{m.current?o(!1):(m.current=!0,I.get("/api/auth/me").then(x=>{r(x),localStorage.setItem(ct,JSON.stringify(x))}).catch(()=>{localStorage.removeItem(ct),r(null)}).finally(()=>o(!1)))},[]),e.jsx(fs.Provider,{value:{user:s,isAuthenticated:!!s,isLoading:n,login:c,logout:i,hasPermission:d,refreshPermissions:u},children:t})}function Re(){const t=a.useContext(fs);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}function Vn(){return a.useContext(fs)??null}function Ar(t){return t.includes("*")}function Wn(t,s,r){if(!t||t.length===0)return!1;for(const n of t)if((n.applicationCode.toLowerCase()===s.toLowerCase()||n.applicationCode==="*")&&(!r||n.modules.some(o=>o.moduleCode.toLowerCase()===r.toLowerCase())))return!0;return!1}function Tr(t,s){if(!t)return;const r=Object.keys(t).find(n=>n.toLowerCase()===s.toLowerCase());return r!==void 0?t[r]:void 0}function Xn(t,s,r){const n=Tr(t,s);return n===void 0||r<=n}const Rr=a.createContext(void 0);function Er({children:t}){const[s,r]=a.useState(null),[n,o]=a.useState(null),[c,i]=a.useState(!0),[d,u]=a.useState(null),m=a.useRef(null),x=a.useCallback(async g=>{try{i(!0),u(null);const[v,j]=await Promise.all([I.get("/api/administration/license",{signal:g}),I.get("/api/administration/license/usage",{signal:g}).catch(()=>null)]);g?.aborted||(r(v),o(j))}catch(v){if(v instanceof Error&&v.name==="CanceledError"||g?.aborted)return;u(v instanceof Error?v.message:"Failed to load license info"),console.error("Failed to fetch license:",v)}finally{g?.aborted||i(!1)}},[]);a.useEffect(()=>{m.current?.abort();const g=new AbortController;m.current=g,x(g.signal);const v=()=>{g.signal.aborted||x(g.signal)};return window.addEventListener("license:refresh",v),()=>{window.removeEventListener("license:refresh",v),g.abort()}},[x]);const p=a.useCallback(g=>s?Ar(s.enabledFeatures)?!0:s.enabledFeatures.some(v=>v.toLowerCase()===g.toLowerCase()):!1,[s]),f=a.useCallback((g,v)=>s?s.permissionScopes&&s.permissionScopes.length>0?Wn(s.permissionScopes,g,v):v?p(v):!0:!1,[s,p]),y=a.useCallback(g=>s?s.featureFlags&&s.featureFlags.length>0?s.featureFlags.some(v=>v.toLowerCase()===g.toLowerCase()):p(g):!1,[s,p]),h=a.useCallback(g=>{if(s)return Tr(s.limits?.custom,g)},[s]),N=a.useCallback((g,v)=>s?Xn(s.limits?.custom,g,v):!0,[s]),b=a.useCallback(async()=>{m.current?.abort();const g=new AbortController;m.current=g,await x(g.signal)},[x]),w=a.useCallback(async g=>{try{const v=await I.post("/api/administration/license/activate",{licenseKey:g});return v.success?(await b(),{success:!0}):{success:!1,error:v.errorMessage||"Activation failed"}}catch(v){return{success:!1,error:v instanceof Error?v.message:"Activation failed"}}},[b]);return e.jsx(Rr.Provider,{value:{license:s,usage:n,isLoading:c,error:d,isFeatureEnabled:p,hasModule:f,hasFeatureFlag:y,getLimit:h,isWithinLimit:N,isReadOnlyMode:s?.isReadOnlyMode??!1,isServerDowntimeBlocked:s?.isServerDowntimeBlocked??!1,isHalted:s?.isHalted??!1,haltReason:s?.haltReason,haltedAt:s?.haltedAt,refreshLicense:b,activateLicense:w},children:t})}function Be(){const t=a.useContext(Rr);if(t===void 0)throw new Error("useLicense must be used within a LicenseProvider");return t}const Ir=a.createContext(void 0),He="currentTenantId",Ve="currentTenantSlug",ze="isGlobalView";function Yn({children:t}){const{isAuthenticated:s,user:r,refreshPermissions:n}=Re(),{isLoading:o}=Ut(),[c,i]=a.useState(null),[d,u]=a.useState([]),[m,x]=a.useState(!0),[p,f]=a.useState(null),[y,h]=a.useState(()=>localStorage.getItem(ze)==="true"),N=a.useRef(!1),b=a.useRef(""),w=d.filter(C=>C.type==="Business"),g=d.find(C=>C.type==="Personal")||null,v=a.useCallback((C,M)=>{if(u(C),C.length===0){i(null),h(!1),localStorage.removeItem(He),localStorage.removeItem(Ve),localStorage.removeItem(ze),x(!1);return}const X=localStorage.getItem(He),R=X?C.find(Y=>Y.id===X):null;if(R?.status==="Active"){i(R),h(!1),localStorage.setItem(He,R.id),localStorage.setItem(Ve,R.slug),localStorage.removeItem(ze),x(!1);return}if(localStorage.getItem(ze)==="true"){h(!0),i(null),x(!1);return}const J=C.find(Y=>Y.isDefault&&Y.status==="Active");if(J){i(J),h(!1),localStorage.setItem(He,J.id),localStorage.setItem(Ve,J.slug),localStorage.removeItem(ze),x(!1);return}if(M){h(!0),i(null),localStorage.setItem(ze,"true"),x(!1);return}const G=C.find(Y=>Y.status==="Active");i(G||null),G&&(localStorage.setItem(He,G.id),localStorage.setItem(Ve,G.slug)),x(!1)},[]),j=a.useCallback(async C=>{const M=d.find(X=>X.id===C);if(!M)throw new Error("Tenant not found");if(M.status!=="Active")throw new Error("Cannot switch to inactive tenant");h(!1),localStorage.removeItem(ze),i(M),localStorage.setItem(He,C),localStorage.setItem(Ve,M.slug),await n()},[d,n]),L=a.useCallback(async()=>{h(!0),localStorage.setItem(ze,"true"),i(null),localStorage.removeItem(He),localStorage.removeItem(Ve),await n()},[n]),$=a.useCallback(async()=>{h(!1),localStorage.removeItem(ze);const C=d.find(R=>R.isDefault&&R.status==="Active"),M=d.find(R=>R.status==="Active"),X=C||M||null;X&&(i(X),localStorage.setItem(He,X.id),localStorage.setItem(Ve,X.slug)),await n()},[d,n]),k=a.useCallback(async C=>{try{await we.myTenants.setDefault(C),u(M=>M.map(R=>({...R,isDefault:R.id===C}))),await j(C)}catch(M){throw console.error("[TenantContext] Failed to set default tenant:",M),M}},[j]),P=a.useCallback(async()=>{try{await we.myTenants.clearDefault(),u(C=>C.map(M=>({...M,isDefault:!1}))),await L()}catch(C){throw console.error("[TenantContext] Failed to clear default tenant:",C),C}},[L]),A=a.useCallback(async()=>{x(!0),f(null);try{await n()}catch(C){console.error("Failed to refresh tenants:",C),f("Failed to refresh tenants")}finally{x(!1)}},[n]);a.useEffect(()=>{if(!s||!r){N.current&&(u([]),i(null),x(!1),N.current=!1,b.current="");return}const C=r.tenants||[],M=C.map(X=>`${X.id}:${X.status}:${X.isDefault}`).sort((X,R)=>X.localeCompare(R)).join(",");if(!N.current||M!==b.current){N.current=!0,b.current=M;const X=$t(r.permissions||[]);v(C,X),localStorage.getItem(Ve)&&n().catch(B=>console.error("[TenantContext] Failed to refresh permissions after tenant init:",B))}},[s,r,v,n]),a.useEffect(()=>{s||(i(null),u([]),h(!1),localStorage.removeItem(He),localStorage.removeItem(Ve),localStorage.removeItem(ze))},[s]);const D=r?$t(r.permissions||[]):!1,U={currentTenant:c,userTenants:d,b2bTenants:w,personalTenant:g,isLoading:m||o,error:p,switchTenant:j,setDefaultTenant:k,clearDefaultTenant:P,refreshTenants:A,hasMultipleTenants:d.filter(C=>C.status==="Active").length>1,isCurrentTenantOwner:c?.isOwner??!1,hasGlobalRoles:D,isGlobalView:y,enterGlobalView:L,exitGlobalView:$};return e.jsx(Ir.Provider,{value:U,children:t})}function De(){const t=a.useContext(Ir);if(t===void 0)throw new Error("useTenant must be used within a TenantProvider");return t}const At=5,Lr=a.createContext(null);function $r({children:t}){const{i18n:s}=re.useTranslation(),{isAuthenticated:r}=Re(),{currentTenant:n,isLoading:o}=De(),[c,i]=a.useState([]),[d,u]=a.useState(!1),[m,x]=a.useState(null),[p,f]=a.useState(!1),y=a.useCallback(()=>{f(!0)},[]),h=a.useCallback(()=>{f(!1)},[]),N=a.useCallback(async()=>{try{u(!0),x(null);const P=(await I.get("/api/navigation/module-favorites")).map(A=>({id:A.id,code:A.code,label:A.label,icon:A.icon||"Star",route:A.route||"",applicationId:A.applicationId,applicationCode:A.applicationCode,applicationLabel:A.applicationLabel,displayOrder:A.displayOrder}));i(P)}catch(k){console.error("Failed to load favorite modules:",k),x("Erreur lors du chargement des favoris"),i([])}finally{u(!1)}},[]);a.useEffect(()=>{r&&!o?N():r||(i([]),x(null))},[r,o,n,N]),a.useEffect(()=>{const k=()=>{r&&!o&&N()};return s.on("languageChanged",k),()=>{s.off("languageChanged",k)}},[s,r,o,N]);const b=a.useCallback(async k=>{if(c.length>=At||c.some(P=>P.id===k.id))return!1;try{return x(null),await I.post(`/api/navigation/module-favorites/${k.id}`),i(P=>[...P,{...k,displayOrder:P.length+1}]),!0}catch(P){return console.error("Failed to add favorite module:",P),await N(),!1}},[c,N]),w=a.useCallback(async k=>{try{return x(null),await I.delete(`/api/navigation/module-favorites/${k}`),i(P=>P.filter(A=>A.id!==k)),!0}catch(P){return console.error("Failed to remove favorite module:",P),await N(),!1}},[N]),g=a.useCallback(k=>c.some(P=>P.id===k),[c]),v=a.useCallback(async k=>g(k.id)?await w(k.id):await b(k),[g,w,b]),j=a.useCallback(async k=>{const P=k.slice(0,At),A=P.map(U=>U.id),D=[...c];i(P.map((U,C)=>({...U,displayOrder:C+1})));try{return x(null),await I.put("/api/navigation/module-favorites/reorder",A),!0}catch(U){return console.error("Failed to reorder favorite modules:",U),i(D),!1}},[c]),L=c.length<At;return e.jsx(Lr.Provider,{value:{favorites:c,loading:d,error:m,addFavorite:b,removeFavorite:w,toggleFavorite:v,isFavorite:g,reorderFavorites:j,canAddMore:L,maxFavorites:At,reload:N,expandFavorites:p,triggerExpand:y,clearExpand:h,requiresTenant:!1},children:t})}function Ge(){const t=a.useContext(Lr);if(!t)throw new Error("useFavorites must be used within a FavoritesProvider");return t}const Dr="smartstack-sidebar-collapsed",Mr=a.createContext(void 0);function Jn(){if(typeof window>"u")return!1;try{return localStorage.getItem(Dr)==="true"}catch{return!1}}function Or({children:t}){const[s,r]=a.useState(Jn);a.useEffect(()=>{localStorage.setItem(Dr,String(s))},[s]);const n=a.useCallback(()=>{r(i=>!i)},[]),o=a.useCallback(i=>{r(i)},[]),c=s?64:256;return e.jsx(Mr.Provider,{value:{isCollapsed:s,toggleCollapsed:n,setCollapsed:o,sidebarWidth:c},children:t})}function Bt(){const t=a.useContext(Mr);if(t===void 0)throw new Error("useSidebar must be used within a SidebarProvider");return t}const Fr=["login","callback","logout","onboarding","system","applications","notifications"],_r=a.createContext(void 0);function Qn(t){let s=t.split("/").filter(Boolean);return s.length>=2&&s[0]==="t"&&(s=s.slice(2)),s.length===0?{app:null,module:null}:Fr.includes(s[0])?{app:null,module:null}:{app:s[0]||null,module:s[1]||null}}function bs({children:t}){const s=S.useLocation(),{i18n:r}=re.useTranslation(),{currentTenant:n,isLoading:o,isGlobalView:c}=De(),[i,d]=a.useState(null),[u,m]=a.useState([]),[x,p]=a.useState(!0),f=a.useRef(!1),y=a.useRef(void 0),h=a.useRef(0),N=c?"global":n?.id??"none";f.current&&N!==y.current&&!x&&p(!0);const{app:b,module:w}=Qn(s.pathname),g=a.useCallback(async()=>{try{const C=await I.get("/api/navigation/menu");d(C)}catch(C){console.error("Failed to fetch menu:",C),d({applications:[]})}},[]),v=a.useCallback(async()=>{try{const C=await I.get("/api/navigation/favorites");m(C)}catch(C){console.error("Failed to fetch favorites:",C)}},[]),j=a.useCallback(async()=>{const C=++h.current;if(p(!0),await g(),C===h.current){if(n){if(await v(),C!==h.current)return}else m([]);p(!1)}},[g,v,n]);a.useEffect(()=>{const C=localStorage.getItem("user"),M=c?"global":n?.id??"none";if(!(!C||o)){if(!f.current){f.current=!0,y.current=M,j();return}M!==y.current&&(y.current=M,j())}},[n?.id,c,o]),a.useEffect(()=>{const C=()=>{localStorage.getItem("user")&&j()};return r.on("languageChanged",C),()=>{r.off("languageChanged",C)}},[r,j]);const L=a.useCallback(C=>C.startsWith("core_")?C.slice(5):C.startsWith("ext_")?C.slice(4):C,[]),$=a.useCallback((C,M)=>C&&C.split("/").filter(Boolean)[M]||null,[]),k=a.useCallback(()=>i?.applications.find(C=>$(C.route,0)===b||L(C.code)===b),[i,b,$,L]),P=a.useCallback(()=>k()?.modules.find(M=>$(M.route,1)===w||L(M.code)===w),[k,w,$,L]),A=a.useCallback(C=>i?.applications.filter(M=>M.zone===C)||[],[i]),D=a.useCallback(C=>u.some(M=>M.id===C),[u]),U=a.useCallback(async C=>{if(n)try{D(C)?(await I.delete(`/api/navigation/favorites/${C}`),m(M=>M.filter(X=>X.id!==C))):(await I.post(`/api/navigation/favorites/${C}`,{}),await v())}catch(M){console.error("Failed to toggle favorite:",M)}},[n,D,v]);return e.jsx(_r.Provider,{value:{menu:i,favorites:u,currentAppCode:b,currentModuleCode:w,isLoading:x,getCurrentApplication:k,getCurrentModule:P,getApplicationsByZone:A,getApplicationsForContext:A,toggleFavorite:U,isFavorite:D,refreshMenu:j},children:t})}function Ae(){const t=a.useContext(_r);if(t===void 0)throw new Error("useNavigation must be used within a NavigationProvider");return t}const Ur=a.createContext(null);function qr({children:t}){const{isAuthenticated:s,refreshPermissions:r}=Re(),{refreshLicense:n}=Be(),{refreshMenu:o}=Ae(),c=a.useRef(null),[i,d]=a.useState(oe.HubConnectionState.Disconnected),u=a.useRef(new Set),m=a.useRef(new Set),x=a.useRef(!1),p=a.useCallback(async()=>{if(!x.current){x.current=!0;try{await Promise.all([r(),o(),n()])}catch(g){console.error("[SignalR] Failed to refresh permissions:",g)}finally{x.current=!1}}},[r,o,n]),f=a.useCallback(async()=>{try{await Promise.all([n(),o()])}catch(g){console.error("[SignalR] Failed to refresh license:",g)}},[n,o]),y=a.useCallback(async()=>{if(s&&!(c.current?.state===oe.HubConnectionState.Connected||c.current?.state===oe.HubConnectionState.Connecting))try{const g=new oe.HubConnectionBuilder().withUrl("/hubs/notifications").withAutomaticReconnect({nextRetryDelayInMilliseconds:v=>v.previousRetryCount===0?0:v.previousRetryCount===1?2e3:v.previousRetryCount===2?1e4:v.previousRetryCount<5?3e4:null}).configureLogging(oe.LogLevel.Warning).build();g.on("ReceiveNotification",v=>{u.current.forEach(j=>j(v))}),g.on("UnreadCountUpdate",v=>{m.current.forEach(j=>j(v))}),g.on("PermissionsChanged",p),g.on("LicenseChanged",f),g.onreconnecting(()=>{d(oe.HubConnectionState.Reconnecting)}),g.onreconnected(()=>{d(oe.HubConnectionState.Connected)}),g.onclose(()=>{d(oe.HubConnectionState.Disconnected)}),await g.start(),c.current=g,d(oe.HubConnectionState.Connected)}catch(g){console.error("[SignalR] Failed to connect:",g),d(oe.HubConnectionState.Disconnected)}},[s,p,f]),h=a.useCallback(async()=>{if(c.current)try{await c.current.stop(),c.current=null,d(oe.HubConnectionState.Disconnected)}catch(g){console.error("[SignalR] Failed to disconnect:",g)}},[]);a.useEffect(()=>(s?y():h(),()=>{h()}),[s,y,h]);const N=a.useCallback(g=>(u.current.add(g),()=>{u.current.delete(g)}),[]),b=a.useCallback(g=>(m.current.add(g),()=>{m.current.delete(g)}),[]),w={isConnected:i===oe.HubConnectionState.Connected,connectionState:i,onNotification:N,onUnreadCountUpdate:b};return e.jsx(Ur.Provider,{value:w,children:t})}function Br(){const t=a.useContext(Ur);if(!t)throw new Error("useSignalRContext must be used within a SignalRProvider");return t}const Dt={register:async t=>I.post("/api/auth/register",t),confirmEmail:async t=>I.post("/api/auth/confirm-email",{token:t}),resendConfirmation:async t=>I.post("/api/auth/resend-confirmation",{email:t}),forgotPassword:async t=>I.post("/api/auth/forgot-password",{email:t}),resetPassword:async(t,s)=>I.post("/api/auth/reset-password",{token:t,newPassword:s}),login:async(t,s)=>await I.post("/api/auth/login",{email:t,password:s}),logout:async()=>{try{await I.post("/api/auth/logout")}finally{localStorage.removeItem("user")}},changePassword:async(t,s)=>I.post("/api/auth/change-password",{currentPassword:t,newPassword:s}),refreshSession:async()=>await I.post("/api/auth/refresh"),getSessionInfo:async t=>I.get("/api/auth/session-info",{signal:t?.signal})};function zr(t={}){const{checkIntervalMs:s=6e4,onSessionExpired:r,onWarningThreshold:n,enabled:o=!0}=t,[c,i]=a.useState({isActive:!0,timeRemainingSeconds:0,isWarning:!1,sessionInfo:null}),[d,u]=a.useState(!1),m=a.useRef(!1),x=a.useRef(null),p=a.useRef(null),f=a.useCallback(async h=>{if(!o)return;if(!localStorage.getItem("user")){i(b=>({...b,isActive:!1}));return}try{const b=await Dt.getSessionInfo({signal:h});if(h?.aborted)return;const w=Math.min(b.timeUntilIdleExpirySeconds,b.timeUntilAbsoluteExpirySeconds);i({isActive:!0,timeRemainingSeconds:w,isWarning:b.isWarningThreshold,sessionInfo:b}),b.isWarningThreshold&&!m.current&&(m.current=!0,n?.()),b.isWarningThreshold||(m.current=!1)}catch(b){if(b instanceof Error&&b.name==="CanceledError"||h?.aborted)return;i(w=>({...w,isActive:!1})),r?.()}},[o,r,n]),y=a.useCallback(async()=>{if(d)return!1;u(!0);try{return await Dt.refreshSession(),m.current=!1,await f(),!0}catch{return i(h=>({...h,isActive:!1})),!1}finally{u(!1)}},[d,f]);return a.useEffect(()=>{if(!o)return;p.current?.abort();const h=new AbortController;return p.current=h,f(h.signal),x.current=setInterval(()=>f(),s),()=>{h.abort(),x.current&&clearInterval(x.current)}},[o,s,f]),a.useEffect(()=>{if(!o)return;const h=()=>{c.isWarning&&f()},N=["mousedown","keydown","touchstart","scroll"];return N.forEach(b=>{window.addEventListener(b,h,{passive:!0})}),()=>{N.forEach(b=>{window.removeEventListener(b,h)})}},[o,c.isWarning,f]),{...c,isRefreshing:d,refreshSession:y,checkSession:f}}function Zn(t){if(t<=0)return"0:00";const s=Math.floor(t/60),r=t%60;if(s>=60){const n=Math.floor(s/60),o=s%60;return`${n}h ${o}min`}return`${s}:${r.toString().padStart(2,"0")}`}function Kr({isOpen:t,timeRemainingSeconds:s,onExtendSession:r,onLogout:n}){const{t:o}=re.useTranslation("common"),[c,i]=a.useState(!1),[d,u]=a.useState(s);a.useEffect(()=>{u(s)},[s]),a.useEffect(()=>{if(!t||d<=0)return;const p=setInterval(()=>{u(f=>f<=1?(n(),0):f-1)},1e3);return()=>clearInterval(p)},[t,d,n]);const m=async()=>{i(!0);try{await r()||n()}finally{i(!1)}};if(!t)return null;const x=Math.max(0,Math.min(100,d/300*100));return e.jsx("div",{className:"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm",children:e.jsxs("div",{className:"relative w-full max-w-md bg-[var(--bg-card)] rounded-2xl shadow-2xl border border-amber-500/30 overflow-hidden animate-in fade-in zoom-in duration-200",children:[e.jsx("div",{className:"absolute top-0 left-0 h-1 bg-amber-500/30 w-full",children:e.jsx("div",{className:"h-full bg-gradient-to-r from-amber-500 to-orange-500 transition-all duration-1000 ease-linear",style:{width:`${x}%`}})}),e.jsxs("div",{className:"p-6 pt-8",children:[e.jsxs("div",{className:"flex flex-col items-center text-center mb-6",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-amber-500/20 flex items-center justify-center mb-4",children:e.jsx(l.Clock,{className:"w-8 h-8 text-amber-500"})}),e.jsx("h2",{className:"text-xl font-semibold text-[var(--text-primary)] mb-2",children:o("session.warningTitle","Session Expiring")}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-4",children:o("session.warningMessage","Your session will expire due to inactivity.")}),e.jsx("div",{className:"text-4xl font-mono font-bold text-amber-500 tabular-nums",children:Zn(d)}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-2",children:o("session.remainingTime","remaining")})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs("button",{onClick:n,className:"flex-1 flex items-center justify-center gap-2 px-6 py-3 rounded-xl border border-[var(--border-color)] text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-all font-medium",children:[e.jsx(l.LogOut,{className:"w-4 h-4"}),o("session.logout","Logout")]}),e.jsxs("button",{onClick:m,disabled:c,className:"flex-1 flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-medium transition-all bg-gradient-to-r from-amber-500 to-orange-500 text-white hover:from-amber-600 hover:to-orange-600 shadow-lg shadow-amber-500/30 disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx(l.RefreshCw,{className:`w-4 h-4 ${c?"animate-spin":""}`}),c?o("session.extending","Extending..."):o("session.extend","Continue Session")]})]})]})]})})}const eo=a.createContext(void 0);function Gr({children:t}){const{isAuthenticated:s,logout:r}=Re(),n=a.useCallback(()=>{localStorage.removeItem("user"),window.location.href="/login?reason=session_expired"},[]),{isActive:o,timeRemainingSeconds:c,isWarning:i,refreshSession:d}=zr({enabled:s,checkIntervalMs:3e4,onSessionExpired:n}),u=a.useCallback(async()=>{try{await Dt.logout()}finally{r()}},[r]),m=a.useCallback(async()=>await d(),[d]);return e.jsxs(eo.Provider,{value:{isSessionActive:o,timeRemainingSeconds:c,isWarning:i,refreshSession:d},children:[t,e.jsx(Kr,{isOpen:i&&s,timeRemainingSeconds:c,onExtendSession:m,onLogout:u})]})}const to=150;function so({children:t}){const s=Vn(),r=s?.isAuthenticated??!1,n=s?.isLoading??!0,{currentTenant:o,isLoading:c,isGlobalView:i}=De(),{setSelectedThemeTenant:d,loadFromServer:u}=wt(),m=a.useRef(null),x=a.useRef(!1),p=a.useRef(null),f=a.useRef(null),y=a.useCallback(()=>{p.current&&(clearTimeout(p.current),p.current=null)},[]),h=a.useCallback(()=>m.current==="global"?!1:(y(),f.current=null,m.current="global",x.current=!0,u("global"),d(null,!0),!0),[y,u,d]),N=a.useCallback((g,v)=>{f.current=g,p.current=setTimeout(()=>{f.current===g&&(m.current=g,x.current=!0,f.current=null,d(g,!1)),p.current=null},to)},[d]),b=a.useCallback(()=>{if(!o)return;const g=o.id!==m.current,v=f.current!==null&&f.current!==o.id;!g&&!v||(y(),g?N(o.id,o.slug):f.current=null)},[o,y,N]),w=a.useCallback(()=>{y(),m.current=null,f.current=null,x.current=!1},[y]);return a.useEffect(()=>{if(!r){w();return}if(!(n||c)){if(i&&!o){h();return}o&&b()}},[r,n,c,o,i,h,b,w]),a.useEffect(()=>()=>{y()},[y]),e.jsx(e.Fragment,{children:t})}function ro(t){const s=t.message.toLowerCase(),r=t.name.toLowerCase();return s.includes("network")||s.includes("fetch")||s.includes("failed to fetch")||s.includes("econnrefused")||s.includes("timeout")?"network":s.includes("401")||s.includes("403")||s.includes("unauthorized")||s.includes("forbidden")||s.includes("permission")?"permission":s.includes("404")||s.includes("not found")?"notFound":r.includes("validation")||s.includes("validation")||s.includes("invalid")?"validation":"technical"}function ao(){const t=Date.now().toString(36),s=Math.random().toString(36).substring(2,6);return`ERR-${t}-${s}`.toUpperCase()}const no={network:{icon:l.WifiOff,color:"text-orange-500",bgColor:"bg-orange-500/10"},permission:{icon:l.ShieldX,color:"text-red-500",bgColor:"bg-red-500/10"},notFound:{icon:l.FileWarning,color:"text-yellow-500",bgColor:"bg-yellow-500/10"},validation:{icon:l.AlertTriangle,color:"text-amber-500",bgColor:"bg-amber-500/10"},technical:{icon:l.Bug,color:"text-red-500",bgColor:"bg-red-500/10"}};function Hr({error:t,resetErrorBoundary:s}){const{t:r}=re.useTranslation("common"),[n,o]=a.useState(!1),[c]=a.useState(()=>ao()),i=ro(t),d=no[i],u=d.icon,m=()=>{window.history.length>2&&document.referrer?window.location.href=document.referrer:window.history.length>2?(window.history.back(),setTimeout(()=>window.location.reload(),50)):window.location.href="/"};return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-[var(--bg-primary)] p-4",children:e.jsx("div",{className:"max-w-lg w-full p-8 bg-[var(--bg-card)] border border-[var(--border-color)] rounded-2xl shadow-xl",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:`w-16 h-16 rounded-full ${d.bgColor} flex items-center justify-center mb-6`,children:e.jsx(u,{className:`w-8 h-8 ${d.color}`})}),e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)] mb-2",children:r(`errors.${i}.title`,{defaultValue:r("errors.technical.title")})}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-4",children:r(`errors.${i}.description`,{defaultValue:r("errors.technical.description")})}),e.jsxs("div",{className:"mb-6 px-3 py-1.5 bg-[var(--bg-tertiary)] rounded-lg border border-[var(--border-color)]",children:[e.jsxs("span",{className:"text-xs text-[var(--text-tertiary)]",children:[r("errors.errorId"),": "]}),e.jsx("span",{className:"text-xs font-mono text-[var(--text-secondary)]",children:c})]}),!1,e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full",children:[e.jsxs("button",{onClick:s,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--color-accent-600)] hover:bg-[var(--color-accent-700)] text-white font-medium transition-all",children:[e.jsx(l.RefreshCw,{className:"w-4 h-4"}),r("errors.retry")]}),e.jsxs("button",{onClick:m,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.ArrowLeft,{className:"w-4 h-4"}),r("errors.goBack")]}),e.jsxs("a",{href:"/",className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.Home,{className:"w-4 h-4"}),r("errors.home")]})]}),e.jsxs("p",{className:"mt-6 text-sm text-[var(--text-tertiary)]",children:[r("errors.persistsHelp")," ",e.jsx("a",{href:"mailto:support@atlashub.ch",className:"text-[var(--color-accent-500)] hover:underline",children:r("errors.contactSupport")})]})]})})})}function oo(t,s){Le.logCritical(t,"GlobalErrorBoundary",{componentStack:s.componentStack})}function io(){window.location.reload()}function Vr({children:t}){return e.jsx(hr.ErrorBoundary,{FallbackComponent:Hr,onError:oo,onReset:io,children:t})}const zt=a.createContext(null);function Wr(){const t=a.useContext(zt);if(!t)throw new Error("useSlotFill must be used within a SlotFillProvider");return t}function Xr({children:t,initialFills:s}){const r=a.useMemo(()=>{const o=new Map;return s&&Object.entries(s).forEach(([c,i])=>{const d=o.get(c)||[];Array.isArray(i)?o.set(c,[...d,...i]):o.set(c,[...d,i])}),o},[s]),n=a.useMemo(()=>({fills:r,registerFill:(o,c)=>{const i=r.get(o)||[];r.set(o,[...i,c])},unregisterFill:(o,c)=>{const i=r.get(o)||[];r.set(o,i.filter(d=>d!==c))},getSlotContent:o=>r.get(o)||[]}),[r]);return e.jsx(zt.Provider,{value:n,children:t})}function Yr({name:t,context:s={},children:r,fallback:n,wrapper:o}){const c=a.useContext(zt),i=a.useMemo(()=>c?.getSlotContent(t)||[],[c,t]),d=a.useMemo(()=>({slotName:t,context:s}),[t,s]),u=a.useMemo(()=>i.length===0?n||null:i.map((x,p)=>{const f=`${t}-${p}`;return e.jsx(a.Fragment,{children:Qr(x,d)},f)}),[i,t,d,n]),m=e.jsxs(e.Fragment,{children:[u,r]});return o?e.jsx(o,{children:m}):e.jsx(e.Fragment,{children:m})}function Jr({slot:t,children:s}){const{registerFill:r,unregisterFill:n}=Wr();return a.useMemo(()=>(r(t,s),()=>n(t,s)),[t,s,r,n]),null}function Qr(t,s){if(t==null)return null;if(Array.isArray(t))return e.jsx(e.Fragment,{children:t.map((r,n)=>e.jsx(a.Fragment,{children:Qr(r,s)},`slot-item-${n}`))});if(a.isValidElement(t))return t;if(typeof t=="function"){const r=t;return e.jsx(r,{...s})}return t}function lo(t){return(a.useContext(zt)?.getSlotContent(t)?.length||0)>0}function co(t){function s(n){return e.jsx(Yr,{...n,name:t})}s.displayName=`Slot(${t})`;function r({children:n}){return e.jsx(Jr,{slot:t,children:n})}return r.displayName=`Fill(${t})`,{Slot:s,Fill:r,slotName:t}}const Zr=a.createContext(null);function St(){const t=a.useContext(Zr);return t||{config:{},getPage:()=>{},getSlotContent:()=>{},getTableColumns:()=>[],getFormFields:()=>[],hasExtension:()=>!1}}function Kt(t){const{getPage:s}=St();return s(t)}function uo(t){const{getTableColumns:s}=St();return s(t)}function mo(t){const{getFormFields:s}=St();return s(t)}function xo(t){const{hasExtension:s}=St();return s(t)}function ea({config:t={},children:s}){const r=a.useMemo(()=>{const{pages:n={},slots:o={},tableColumns:c={},formFields:i={}}=t;return{config:t,getPage:d=>n[d],getSlotContent:d=>o[d],getTableColumns:d=>c[d]||[],getFormFields:d=>i[d]||[],hasExtension:d=>d in n||d in o||d in c||d in i}},[t]);return e.jsx(Zr.Provider,{value:r,children:e.jsx(Xr,{initialFills:t.slots,children:s})})}class po{pages=new Map;register(s,r,n=[]){this.pages.set(s,{key:s,defaultComponent:r,slots:n})}get(s){return this.pages.get(s)}resolve(s){return this.pages.get(s)?.defaultComponent}getAll(){return Array.from(this.pages.values())}has(s){return this.pages.has(s)}getSlots(s){return this.pages.get(s)?.slots||[]}keys(){return Array.from(this.pages.keys())}}const O=new po;function ho(t,s){function r(n){const o=Kt(t);return o?e.jsx(o,{...n}):e.jsx(s,{...n})}return r.displayName=`Overridable(${t})`,r}function go(t){const s=Kt(t),r=O.get(t);return s||r?.defaultComponent}function fo({pageKey:t,defaultComponent:s,params:r}){const n=Kt(t),o={pageKey:t,params:r};return n?e.jsx(n,{...o}):e.jsx(s,{...o})}const _={ADMIN_INDEX:"administration",ADMIN_DASHBOARD:"administration.dashboard",USERS_LIST:"administration.users.list",USERS_DETAIL:"administration.users.detail",USERS_DASHBOARD:"administration.users.dashboard",USERS_GROUPS:"administration.users.groups",USERS_GROUPS_DETAIL:"administration.users.groups.detail",USERS_REFERENCES:"administration.users.references",ROLES_LIST:"administration.permissions.roles",ROLES_DETAIL:"administration.permissions.roles.detail",PERMISSIONS_LIST:"administration.permissions.permissions",PERMISSIONS_DETAIL:"administration.permissions.permissions.detail",ASSIGNMENTS:"administration.permissions.assignments",APPLICATIONS_INDEX:"administration.applications",APPLICATIONS_DASHBOARD:"administration.applications.dashboard",APPLICATIONS_LIST:"administration.applications.list",APPLICATIONS_DETAIL:"administration.applications.detail",AI_DASHBOARD:"administration.ai.dashboard",AI_SETTINGS:"administration.ai.settings",AI_SKILLS_LIST:"administration.ai.skills",AI_SKILLS_DETAIL:"administration.ai.skills.detail",AI_SKILLS_CREATE:"administration.ai.skills.create",AI_SKILLS_EDIT:"administration.ai.skills.edit",AI_BLOCKS_LIST:"administration.ai.skills.blocks",AI_BLOCKS_DETAIL:"administration.ai.skills.blocks.detail",AI_BLOCKS_CREATE:"administration.ai.skills.blocks.create",AI_BLOCKS_EDIT:"administration.ai.skills.blocks.edit",AI_MONITORING:"administration.ai.monitoring",AI_AGENTS:"administration.ai.agents",AI_AGENTS_DETAIL:"administration.ai.agents.detail",AI_AGENTS_EDIT:"administration.ai.agents.edit",WORKFLOWS_LIST:"administration.workflows.list",WORKFLOWS_DETAIL:"administration.workflows.detail",WORKFLOWS_CREATE:"administration.workflows.create",WORKFLOWS_EDIT:"administration.workflows.edit",WORKFLOWS_TRIGGERS:"administration.workflows.triggers",WORKFLOWS_HISTORY:"administration.workflows.history",EMAIL_TEMPLATES_LIST:"administration.workflows.email-templates",EMAIL_TEMPLATES_DETAIL:"administration.workflows.email-templates.detail",EMAIL_TEMPLATES_CREATE:"administration.workflows.email-templates.create",EMAIL_TEMPLATES_EDIT:"administration.workflows.email-templates.edit",SMS_TEMPLATES_LIST:"administration.workflows.email-templates.sms",ENTRA_DASHBOARD:"administration.entra.dashboard",ENTRA_GROUPS:"administration.entra.groups",ENTRA_USERS:"administration.entra.users",ENTRA_CONFLICTS:"administration.entra.conflicts",ENTRA_SETTINGS:"administration.entra.settings",TENANTS_DASHBOARD:"administration.tenants.dashboard",TENANTS_LIST:"administration.tenants.list",TENANTS_DETAIL:"administration.tenants.detail",TENANTS_CREATE:"administration.tenants.create",TENANTS_SETTINGS:"administration.tenants.settings",TENANTS_TYPE_SETTINGS:"administration.tenants.type-settings",TENANTS_TEMPLATE:"administration.tenants.template",TENANTS_TEMPLATE_CREATE:"administration.tenants.template.create",TENANTS_TEMPLATE_DETAIL:"administration.tenants.template.detail",TENANTS_BUSINESS:"administration.tenants.list.enterprise",TENANTS_PERSONAL:"administration.tenants.list.personal",TENANTS_OTHER:"administration.tenants.list.other",TENANTS_ACCESS_REQUESTS:"administration.tenants.access-requests",ORGANISATIONS_LIST:"administration.tenants.organisations",ORGANISATIONS_CREATE:"administration.tenants.organisations.create",ORGANISATIONS_DETAIL:"administration.tenants.organisations.detail",SETTINGS:"administration.configuration.settings",SETTINGS_GENERAL:"administration.configuration.settings.general",SETTINGS_FILE_UPLOAD:"administration.configuration.settings.file-upload",SETTINGS_LEGAL_FILE:"administration.configuration.settings.legal-file",APPSETTINGS:"administration.configuration.appsettings",APPSETTINGS_INFRASTRUCTURE:"administration.configuration.appsettings.infrastructure",APPSETTINGS_AUTHENTICATION:"administration.configuration.appsettings.authentication",APPSETTINGS_LOGGING:"administration.configuration.appsettings.logging",APPSETTINGS_EMAIL:"administration.configuration.appsettings.email",APPSETTINGS_ENTRA:"administration.configuration.appsettings.entra",LICENSE:"administration.configuration.license",API_ACCOUNTS:"api.accounts",API_ACCOUNTS_LIST:"api.accounts.list",API_ACCOUNTS_CREATE:"api.accounts.create",API_ACCOUNTS_DETAIL:"api.accounts.detail",API_APIS:"api.apis",API_CATALOG:"api.apis.catalog",API_CATALOG_DETAIL:"api.apis.catalog.detail",SUPPORT_DASHBOARD:"support.tickets",TICKETS_LIST:"support.tickets.list",TICKETS_DETAIL:"support.tickets.detail",TICKETS_ESCALATION:"support.tickets.escalation",TICKETS_NEW:"support.tickets.new",MY_TICKETS_LIST:"support.my-tickets",MY_TICKETS_DETAIL:"support.my-tickets.detail",MY_TICKETS_CREATE:"support.my-tickets.create",SUPPORT_SLA:"support.admin.sla",SUPPORT_TEMPLATES:"support.admin.templates",SUPPORT_PERMISSIONS:"support.admin.permissions",SUPPORT_ASSIGNMENT:"support.assignment",SUPPORT_ASSIGNMENT_SKILLS:"support.assignment.skills",SUPPORT_ASSIGNMENT_WORKLOAD:"support.assignment.workload",MYSPACE_DASHBOARD:"myspace.dashboard",USER_PROFILE:"myspace.profile",USER_PREFERENCES:"myspace.preferences",MYSPACE_TENANTS:"myspace.tenants.workspaces",MYSPACE_ACCESS_REQUESTS:"myspace.tenants.access-requests",MYSPACE_PORTAL:"myspace.portal",NOTIFICATIONS:"notifications",APPLICATIONS_HUB:"applications"};O.register(_.ADMIN_INDEX,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsGridPage-C1WF2Htv.js")).then(t=>({default:t.ApplicationsGridPage}))));O.register(_.ADMIN_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./DashboardPage-wEKZ_DWf.js")).then(t=>({default:t.AdminDashboardPage}))));O.register(_.USERS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./UsersPage-BIXWHFmG.js")).then(t=>({default:t.UsersPage}))));O.register(_.USERS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./UserDetailPage-BcA7Vhb2.js")).then(t=>({default:t.UserDetailPage}))));O.register(_.USERS_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./DashboardPage-wEKZ_DWf.js")).then(t=>({default:t.AdminDashboardPage}))));O.register(_.USERS_GROUPS,a.lazy(()=>Promise.resolve().then(()=>require("./UsersGroupsPage-DS2YiUE4.js")).then(t=>({default:t.UsersGroupsPage}))));O.register(_.USERS_GROUPS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./GroupDetailPage-BIgBzQk0.js")).then(t=>({default:t.GroupDetailPage}))));O.register(_.USERS_REFERENCES,a.lazy(()=>Promise.resolve().then(()=>require("./ReferencesManagementPage-DEDoHrnU.js")).then(t=>({default:t.ReferencesManagementPage}))));O.register(_.ROLES_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./RolesPage-D35jwDJU.js")).then(t=>({default:t.RolesPage}))));O.register(_.ROLES_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./RoleDetailPage-Pkw0wU5g.js")).then(t=>({default:t.RoleDetailPage}))));O.register(_.PERMISSIONS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./PermissionsPage-B0M4gA5m.js")).then(t=>({default:t.PermissionsPage}))));O.register(_.PERMISSIONS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./PermissionDetailPage-BSvSe4SI.js")).then(t=>({default:t.PermissionDetailPage}))));O.register(_.ASSIGNMENTS,a.lazy(()=>Promise.resolve().then(()=>require("./AssignmentsPage-CjuGAd8n.js")).then(t=>({default:t.AssignmentsPage}))));O.register(_.APPLICATIONS_INDEX,a.lazy(()=>Promise.resolve().then(()=>require("./NavigationAppsPage-CJ3BjLlz.js")).then(t=>({default:t.NavigationAppsPage}))));O.register(_.APPLICATIONS_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsDashboardPage-BH4S3qA2.js")).then(t=>({default:t.ApplicationsDashboardPage}))));O.register(_.APPLICATIONS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsListPage-B3ItaY4r.js")).then(t=>({default:t.ApplicationsListPage}))));O.register(_.APPLICATIONS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationDetailPage-CWdz0TS4.js"))));O.register(_.AI_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiDashboardPage}))));O.register(_.AI_SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiSettingsPage}))));O.register(_.AI_SKILLS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiSkillsListPage}))));O.register(_.AI_SKILLS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiSkillsDetailPage}))));O.register(_.AI_SKILLS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiSkillsEditPage}))));O.register(_.AI_SKILLS_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiSkillsEditPage}))));O.register(_.AI_BLOCKS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiBlockDefinitionsListPage}))));O.register(_.AI_BLOCKS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiBlockDefinitionDetailPage}))));O.register(_.AI_BLOCKS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiBlockDefinitionEditPage}))));O.register(_.AI_BLOCKS_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiBlockDefinitionEditPage}))));O.register(_.AI_MONITORING,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiMonitoringPage}))));O.register(_.AI_AGENTS,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiAgentsPage}))));O.register(_.AI_AGENTS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiAgentDetailPage}))));O.register(_.AI_AGENTS_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-DtAReZI6.js")).then(t=>({default:t.AiAgentEditPage}))));O.register(_.WORKFLOWS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.WorkflowsListPage}))));O.register(_.WORKFLOWS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.WorkflowDetailPage}))));O.register(_.WORKFLOWS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.WorkflowCreatePage}))));O.register(_.WORKFLOWS_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.WorkflowEditPage}))));O.register(_.WORKFLOWS_TRIGGERS,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.WorkflowsTriggersPage}))));O.register(_.WORKFLOWS_HISTORY,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.WorkflowHistoryPage}))));O.register(_.EMAIL_TEMPLATES_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.EmailTemplatesListPage}))));O.register(_.EMAIL_TEMPLATES_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.EmailTemplateDetailPage}))));O.register(_.EMAIL_TEMPLATES_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.EmailTemplateCreatePage}))));O.register(_.EMAIL_TEMPLATES_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.EmailTemplateEditPage}))));O.register(_.SMS_TEMPLATES_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-qXfYaEmV.js")).then(t=>({default:t.SmsTemplatesListPage}))));O.register(_.ENTRA_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./index-BlOgmQzc.js")).then(t=>({default:t.EntraDashboardPage}))));O.register(_.ENTRA_GROUPS,a.lazy(()=>Promise.resolve().then(()=>require("./index-BlOgmQzc.js")).then(t=>({default:t.EntraGroupsPage}))));O.register(_.ENTRA_USERS,a.lazy(()=>Promise.resolve().then(()=>require("./index-BlOgmQzc.js")).then(t=>({default:t.EntraUsersPage}))));O.register(_.ENTRA_CONFLICTS,a.lazy(()=>Promise.resolve().then(()=>require("./index-BlOgmQzc.js")).then(t=>({default:t.EntraConflictsPage}))));O.register(_.ENTRA_SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-BlOgmQzc.js")).then(t=>({default:t.EntraSettingsPage}))));O.register(_.TENANTS_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantsDashboardPage}))));O.register(_.TENANTS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantsPage}))));O.register(_.TENANTS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantDetailPage}))));O.register(_.TENANTS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantCreatePage}))));O.register(_.TENANTS_SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantSettingsPage}))));O.register(_.TENANTS_TYPE_SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantTypeSettingsPage}))));O.register(_.TENANTS_TEMPLATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantsTemplatePage}))));O.register(_.TENANTS_TEMPLATE_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantTemplateCreatePage}))));O.register(_.TENANTS_TEMPLATE_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantTemplateDetailPage}))));O.register(_.TENANTS_BUSINESS,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantsBusinessPage}))));O.register(_.TENANTS_PERSONAL,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantsPersonalPage}))));O.register(_.TENANTS_OTHER,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantsOtherPage}))));O.register(_.TENANTS_ACCESS_REQUESTS,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.TenantAccessRequestsPage}))));O.register(_.ORGANISATIONS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.OrganisationsListPage}))));O.register(_.ORGANISATIONS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.OrganisationCreatePage}))));O.register(_.ORGANISATIONS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-C_nDTEP5.js")).then(t=>({default:t.OrganisationDetailPage}))));O.register(_.SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-DjZQ6ZG_.js")).then(t=>({default:t.SettingsPage}))));O.register(_.SETTINGS_GENERAL,a.lazy(()=>Promise.resolve().then(()=>require("./index-DjZQ6ZG_.js")).then(t=>({default:t.GeneralSettingsSection}))));O.register(_.SETTINGS_FILE_UPLOAD,a.lazy(()=>Promise.resolve().then(()=>require("./index-DjZQ6ZG_.js")).then(t=>({default:t.FileUploadSettingsSection}))));O.register(_.SETTINGS_LEGAL_FILE,a.lazy(()=>Promise.resolve().then(()=>require("./index-DjZQ6ZG_.js")).then(t=>({default:t.LegalFileSettingsSection}))));O.register(_.APPSETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-DMQQ0KyA.js")).then(t=>({default:t.AppSettingsPage}))));O.register(_.APPSETTINGS_INFRASTRUCTURE,a.lazy(()=>Promise.resolve().then(()=>require("./index-DMQQ0KyA.js")).then(t=>({default:t.InfrastructureSection}))));O.register(_.APPSETTINGS_AUTHENTICATION,a.lazy(()=>Promise.resolve().then(()=>require("./index-DMQQ0KyA.js")).then(t=>({default:t.AuthenticationSection}))));O.register(_.APPSETTINGS_LOGGING,a.lazy(()=>Promise.resolve().then(()=>require("./index-DMQQ0KyA.js")).then(t=>({default:t.LoggingSection}))));O.register(_.APPSETTINGS_EMAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-DMQQ0KyA.js")).then(t=>({default:t.EmailSection}))));O.register(_.APPSETTINGS_ENTRA,a.lazy(()=>Promise.resolve().then(()=>require("./index-DMQQ0KyA.js")).then(t=>({default:t.EntraSection}))));O.register(_.LICENSE,a.lazy(()=>Promise.resolve().then(()=>require("./index-COA_xJVJ.js")).then(t=>({default:t.LicenseManagementPage}))));O.register(_.API_ACCOUNTS,a.lazy(()=>Promise.resolve().then(()=>require("./index-EL_ZNnMH.js")).then(t=>({default:t.ExternalAppsListPage}))));O.register(_.API_ACCOUNTS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-EL_ZNnMH.js")).then(t=>({default:t.ExternalAppsListPage}))));O.register(_.API_ACCOUNTS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-EL_ZNnMH.js")).then(t=>({default:t.ExternalAppCreatePage}))));O.register(_.API_ACCOUNTS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-EL_ZNnMH.js")).then(t=>({default:t.ExternalAppDetailPage}))));O.register(_.API_APIS,a.lazy(()=>Promise.resolve().then(()=>require("./ApiCatalogPage-BfPoZGD3.js")).then(t=>({default:t.ApiCatalogPage}))));O.register(_.API_CATALOG,a.lazy(()=>Promise.resolve().then(()=>require("./ApiCatalogPage-BfPoZGD3.js")).then(t=>({default:t.ApiCatalogPage}))));O.register(_.API_CATALOG_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./ApiCatalogDetailPage-7EifQOAh.js")).then(t=>({default:t.ApiCatalogDetailPage}))));O.register(_.SUPPORT_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./DashboardPage-BT5kFaQA.js")).then(t=>({default:t.DashboardPage}))));O.register(_.TICKETS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./TicketsPage-C8QQ4SKy.js")).then(t=>({default:t.TicketsPage}))));O.register(_.TICKETS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./TicketDetailPage-Bk_0uQ3B.js")).then(t=>({default:t.TicketDetailPage}))));O.register(_.TICKETS_ESCALATION,a.lazy(()=>Promise.resolve().then(()=>require("./EscalationConfigPage-Bcifnt_h.js")).then(t=>({default:t.EscalationConfigPage}))));O.register(_.TICKETS_NEW,a.lazy(()=>Promise.resolve().then(()=>require("./CreateSupportTicketPage-CmrDfFxP.js")).then(t=>({default:t.CreateSupportTicketPage}))));O.register(_.MY_TICKETS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./MyTicketsPage-C9MSmmR5.js")).then(t=>({default:t.MyTicketsPage}))));O.register(_.MY_TICKETS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./UserTicketDetailPage-BA2syxXG.js")).then(t=>({default:t.UserTicketDetailPage}))));O.register(_.MY_TICKETS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./UserCreateTicketPage-DoEMtJoe.js")).then(t=>({default:t.UserCreateTicketPage}))));O.register(_.SUPPORT_SLA,a.lazy(()=>Promise.resolve().then(()=>require("./SlaConfigPage-C5Jstix-.js")).then(t=>({default:t.SlaConfigPage}))));O.register(_.SUPPORT_TEMPLATES,a.lazy(()=>Promise.resolve().then(()=>require("./TemplatesPage-DjmYOGEC.js")).then(t=>({default:t.TemplatesPage}))));O.register(_.SUPPORT_PERMISSIONS,a.lazy(()=>Promise.resolve().then(()=>require("./SupportPermissionsPage-CsJKGt__.js")).then(t=>({default:t.SupportPermissionsPage}))));O.register(_.SUPPORT_ASSIGNMENT,a.lazy(()=>Promise.resolve().then(()=>require("./AssignmentRulesPage-C4Jouh2g.js")).then(t=>({default:t.AssignmentRulesPage}))));O.register(_.SUPPORT_ASSIGNMENT_SKILLS,a.lazy(()=>Promise.resolve().then(()=>require("./AgentSkillsPage-DgqyaZwI.js")).then(t=>({default:t.AgentSkillsPage}))));O.register(_.SUPPORT_ASSIGNMENT_WORKLOAD,a.lazy(()=>Promise.resolve().then(()=>require("./AgentWorkloadPage-BGGTfOLs.js")).then(t=>({default:t.AgentWorkloadPage}))));O.register(_.MYSPACE_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./UserDashboardPage-fdhZwMLg.js")).then(t=>({default:t.UserDashboardPage}))));O.register(_.USER_PROFILE,a.lazy(()=>Promise.resolve().then(()=>require("./ProfilePage-6Gf7igUI.js")).then(t=>({default:t.ProfilePage}))));O.register(_.USER_PREFERENCES,a.lazy(()=>Promise.resolve().then(()=>require("./PreferencesPage-Cy30AWIN.js")).then(t=>({default:t.PreferencesPage}))));O.register(_.MYSPACE_TENANTS,a.lazy(()=>Promise.resolve().then(()=>require("./MyTenantsPage-BXx1nPC8.js")).then(t=>({default:t.MyTenantsPage}))));O.register(_.MYSPACE_ACCESS_REQUESTS,a.lazy(()=>Promise.resolve().then(()=>require("./MyAccessRequestsPage-Be8VvLhh.js"))));O.register(_.MYSPACE_PORTAL,a.lazy(()=>Promise.resolve().then(()=>require("./PortalDashboardPage-DTeMESj9.js")).then(t=>({default:t.PortalDashboardPage}))));O.register(_.NOTIFICATIONS,a.lazy(()=>Promise.resolve().then(()=>require("./NotificationsPage-CLHfVUxm.js")).then(t=>({default:t.NotificationsPage}))));O.register(_.APPLICATIONS_HUB,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsPage-BqfNR-kc.js")).then(t=>({default:t.ApplicationsPage}))));const bo=a.createContext(null);function vo({config:t,children:s}){const[r,n]=a.useState(!1);a.useEffect(()=>{jr.then(()=>n(!0)).catch(()=>n(!0))},[]),a.useEffect(()=>{typeof window<"u"&&(window.__SMARTSTACK_CONFIG__=t)},[t]);const o=a.useMemo(()=>({config:t}),[t]);return e.jsx(bo.Provider,{value:o,children:e.jsx(Vr,{children:r?e.jsx(ea,{config:t.extensions,children:e.jsx(wr,{children:e.jsx(Hn,{children:e.jsx(Pr,{children:e.jsx(Yn,{children:e.jsx(Er,{children:e.jsx($r,{children:e.jsx(Or,{children:e.jsx(Gr,{children:e.jsx(so,{children:e.jsx(bs,{children:e.jsx(qr,{children:s})})})})})})})})})})})}):null})})}const ta="smartstack-doc-panel-size",sa=a.createContext(void 0);function yo(){if(typeof window>"u")return 33;try{const t=localStorage.getItem(ta);if(t){const s=parseFloat(t);if(s>=20&&s<=60)return s}}catch{}return 33}const Ls={"administration/users":"/docs/business/administration/users","administration/users/dashboard":"/docs/business/administration/users","administration/users/list":"/docs/business/administration/users","administration/users/create":"/docs/business/administration/users","administration/users/groups":"/docs/business/administration/users/groups","administration/users/references":"/docs/business/administration/users/references","administration/permissions":"/docs/business/administration/permissions","administration/permissions/roles":"/docs/business/administration/permissions","administration/permissions/permissions":"/docs/business/administration/permissions","administration/permissions/assignments":"/docs/business/administration/permissions/assignments","administration/applications":"/docs/business/administration/applications","administration/applications/list":"/docs/business/administration/applications","administration/applications/grid":"/docs/business/administration/applications","administration/applications/dashboard":"/docs/business/administration/applications","administration/tenants":"/docs/business/administration/tenants","administration/tenants/dashboard":"/docs/business/administration/tenants","administration/tenants/create":"/docs/business/administration/tenants","administration/tenants/list":"/docs/business/administration/tenants/business","administration/tenants/list/enterprise":"/docs/business/administration/tenants/business","administration/tenants/list/personal":"/docs/business/administration/tenants/personal","administration/tenants/list/other":"/docs/business/administration/tenants/other","administration/tenants/template":"/docs/business/administration/tenants/template","administration/tenants/business":"/docs/business/administration/tenants/business","administration/tenants/personal":"/docs/business/administration/tenants","administration/tenants/organisations":"/docs/business/administration/tenants/organisations","administration/tenants/organisations/create":"/docs/business/administration/tenants/organisations","administration/tenants/access-requests":"/docs/business/administration/tenants/access-requests","administration/tenants/applications":"/docs/business/administration/tenants/applications","administration/workflows":"/docs/business/administration/workflows","administration/workflows/list":"/docs/business/administration/workflows","administration/workflows/create":"/docs/business/administration/workflows","administration/workflows/triggers":"/docs/business/administration/workflows","administration/workflows/history":"/docs/business/administration/workflows","administration/workflows/email-templates":"/docs/business/administration/workflows","administration/workflows/email-templates/email":"/docs/business/administration/workflows","administration/workflows/email-templates/sms":"/docs/business/administration/workflows","administration/workflows/email-templates/create":"/docs/business/administration/workflows","administration/ai":"/docs/business/administration/ai","administration/ai/dashboard":"/docs/business/administration/ai","administration/ai/settings":"/docs/business/administration/ai","administration/ai/providers":"/docs/business/administration/ai","administration/ai/models":"/docs/business/administration/ai","administration/ai/prompts":"/docs/business/administration/ai","administration/ai/blocks":"/docs/business/administration/ai","administration/entra":"/docs/business/administration/entra","administration/entra/dashboard":"/docs/business/administration/entra","administration/entra/groups":"/docs/business/administration/entra","administration/entra/users":"/docs/business/administration/entra","administration/entra/conflicts":"/docs/business/administration/entra","administration/entra/settings":"/docs/business/administration/entra","administration/configuration":"/docs/business/administration/configuration","administration/configuration/settings":"/docs/business/administration/configuration","administration/configuration/appsettings":"/docs/business/administration/configuration","administration/configuration/license":"/docs/business/administration/configuration/license","support/tickets":"/system/docs/user/support-dashboard","support/tickets/list":"/docs/business/platform/support/tickets","support/tickets/escalation":"/system/docs/user/support-escalation","support/my-tickets":"/docs/business/platform/support/tickets","support/my-tickets/list":"/docs/business/platform/support/tickets","support/my-tickets/create":"/docs/business/platform/support/tickets","support/admin/sla":"/system/docs/user/support-sla","support/admin/templates":"/system/docs/user/support-templates","myspace/profile":"/system/docs/user/modules","myspace/preferences":"/system/docs/user/modules","myspace/tenants":"/system/docs/user/modules","myspace/portal":"/system/docs/user/modules"},$s={administration:"/docs/business/administration/users",support:"/system/docs/user/support-dashboard",myspace:"/system/docs/user/modules"};function Ds(t){const s=t.split("/").filter(Boolean),n=s[0]==="t"&&s.length>=3?2:0,o=s.slice(n),c=o[0],i=o.slice(1);if(i.length>0)for(let d=i.length;d>0;d--){const u=`${c}/${i.slice(0,d).join("/")}`;if(Ls[u])return Ls[u]}return c&&$s[c]?$s[c]:"/system/docs/user"}function ra({children:t}){const[s,r]=a.useState(!1),[n,o]=a.useState(yo),[c,i]=a.useState(null),d=S.useLocation(),u=a.useRef(d.pathname);a.useEffect(()=>{u.current!==d.pathname&&(u.current=d.pathname,r(!1))},[d.pathname]),a.useEffect(()=>{n>=20&&n<=60&&localStorage.setItem(ta,String(n))},[n]);const m=a.useCallback(y=>{const h=y||Ds(d.pathname);i(h),r(!0)},[d.pathname]),x=a.useCallback(()=>{r(!1)},[]),p=a.useCallback(()=>{if(s)r(!1);else{const y=Ds(d.pathname);i(y),r(!0)}},[s,d.pathname]),f=a.useCallback(y=>{y>=20&&y<=60&&o(y)},[]);return e.jsx(sa.Provider,{value:{isOpen:s,panelSize:n,docUrl:c,openDocPanel:m,closeDocPanel:x,toggleDocPanel:p,setPanelSize:f},children:t})}function Gt(){const t=a.useContext(sa);if(t===void 0)throw new Error("useDocPanel must be used within a DocPanelProvider");return t}class jo{captureBrowserInfo(){const s=navigator.userAgent;return{browser:this.getBrowserName(s),browserVersion:this.getBrowserVersion(s),os:this.getOSName(s),osVersion:this.getOSVersion(s),language:navigator.language,screenResolution:`${window.screen.width}x${window.screen.height}`,deviceType:this.getDeviceType(s)}}getBrowserName(s){return s.includes("Firefox")?"Firefox":s.includes("Edg/")?"Microsoft Edge":s.includes("Chrome")&&!s.includes("Edg/")?"Google Chrome":s.includes("Safari")&&!s.includes("Chrome")?"Safari":s.includes("Opera")||s.includes("OPR/")?"Opera":s.includes("MSIE")||s.includes("Trident/")?"Internet Explorer":"Unknown Browser"}getBrowserVersion(s){let r=null;return s.includes("Firefox")?r=/Firefox\/(\d+(?:\.\d+)*)/.exec(s):s.includes("Edg/")?r=/Edg\/(\d+(?:\.\d+)*)/.exec(s):s.includes("Chrome")&&!s.includes("Edg/")?r=/Chrome\/(\d+(?:\.\d+)*)/.exec(s):s.includes("Safari")&&!s.includes("Chrome")?r=/Version\/(\d+(?:\.\d+)*)/.exec(s):s.includes("OPR/")&&(r=/OPR\/(\d+(?:\.\d+)*)/.exec(s)),r?r[1]:"Unknown"}getOSName(s){return s.includes("Windows NT 10")?"Windows 10/11":s.includes("Windows NT 6.3")?"Windows 8.1":s.includes("Windows NT 6.2")?"Windows 8":s.includes("Windows NT 6.1")?"Windows 7":s.includes("Windows")?"Windows":s.includes("Mac OS X")?"macOS":s.includes("Linux")&&s.includes("Android")?"Android":s.includes("Linux")?"Linux":s.includes("iPhone")||s.includes("iPad")?"iOS":s.includes("CrOS")?"Chrome OS":"Unknown OS"}getWindowsVersion(s){return s==="10.0"?"10/11":s==="6.3"?"8.1":s==="6.2"?"8":s==="6.1"?"7":s}getOSVersion(s){if(s.includes("Windows NT")){const r=/Windows NT (\d+\.\d+)/.exec(s);if(r)return this.getWindowsVersion(r[1])}if(s.includes("Mac OS X")){const r=/Mac OS X (\d+[._]\d+(?:[._]\d+)?)/.exec(s);if(r)return r[1].replace(/_/g,".")}if(s.includes("Android")){const r=/Android (\d+(?:\.\d+)*)/.exec(s);if(r)return r[1]}if(s.includes("iPhone OS")||s.includes("iPad")){const r=/(?:iPhone|iPad|CPU) OS (\d+[._]\d+(?:[._]\d+)?)/.exec(s);if(r)return r[1].replace(/_/g,".")}return"Unknown"}getDeviceType(s){return/Tablet|iPad/i.test(s)?"Tablet":/Mobile|iPhone|Android.*Mobile/i.test(s)?"Mobile":"Desktop"}formatForDescription(s){return[`Browser: ${s.browser} ${s.browserVersion}`,`OS: ${s.os} ${s.osVersion}`,`Device: ${s.deviceType}`,`Screen: ${s.screenResolution}`,`Language: ${s.language}`].join(`
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),a=require("react"),us=require("axios"),re=require("react-i18next"),Lt=require("i18next"),rn=require("i18next-browser-languagedetector"),S=require("react-router-dom"),an=require("@microsoft/signalr"),l=require("lucide-react"),hr=require("react-error-boundary"),Ft=require("react-dom"),Es=require("modern-screenshot"),bt=require("react-resizable-panels"),nn=require("dompurify");function gr(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(s,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return s.default=t,Object.freeze(s)}const oe=gr(an),ft=gr(l),Je={none:"0px",small:"4px",medium:"8px",large:"12px",xlarge:"16px",xxlarge:"24px"},on={none:"Carré",small:"Léger",medium:"Moyen",large:"Arrondi",xlarge:"Très arrondi",xxlarge:"Pill"},qe={slate:{name:"Ardoise",shades:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"}},gray:{name:"Gris",shades:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"}},zinc:{name:"Zinc",shades:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"}},stone:{name:"Pierre",shades:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"}},indigo:{name:"Indigo",shades:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"}},violet:{name:"Violet",shades:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"}},blue:{name:"Bleu",shades:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"}},cyan:{name:"Cyan",shades:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"}},teal:{name:"Teal",shades:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"}},emerald:{name:"Émeraude",shades:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"}},amber:{name:"Ambre",shades:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"}},orange:{name:"Orange",shades:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"}},rose:{name:"Rose",shades:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"}},pink:{name:"Pink",shades:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"}}},ln={card:"large",button:"medium",badge:"medium",input:"medium",modal:"xlarge",menuItem:"medium"},pt={neutral:{name:"Neutre",icon:"⚪",colors:{light:{light:"#ffffff",medium:"#f4f4f5",dark:"#e4e4e7",border:"#d4d4d8"},dark:{light:"#1c1c1f",medium:"#27272a",dark:"#3f3f46",border:"#52525b"}}},ocean:{name:"Océan",icon:"🌊",colors:{light:{light:"#e0f2fe",medium:"#bae6fd",dark:"#7dd3fc",border:"#93c5fd"},dark:{light:"#141c24",medium:"#1a2836",dark:"#2a4a5e",border:"#3a5a70"}}},forest:{name:"Forêt",icon:"🌲",colors:{light:{light:"#d1fae5",medium:"#a7f3d0",dark:"#6ee7b7",border:"#86efac"},dark:{light:"#121d18",medium:"#182a22",dark:"#2a4a3a",border:"#3a5a4a"}}},sunset:{name:"Coucher de soleil",icon:"🌅",colors:{light:{light:"#fef3c7",medium:"#fde68a",dark:"#fbbf24",border:"#fcd34d"},dark:{light:"#1c1810",medium:"#2a2418",dark:"#4a3a24",border:"#5a4a34"}}},lavender:{name:"Lavande",icon:"💜",colors:{light:{light:"#ede9fe",medium:"#ddd6fe",dark:"#c4b5fd",border:"#c4b5fd"},dark:{light:"#1a1820",medium:"#24222e",dark:"#3a3650",border:"#4a4660"}}},rose:{name:"Rose",icon:"🌸",colors:{light:{light:"#fce7f3",medium:"#fbcfe8",dark:"#f9a8d4",border:"#f9a8d4"},dark:{light:"#1c1418",medium:"#2a1e24",dark:"#4a3040",border:"#5a4050"}}}},ms="neutral",ht=t=>{const s=qe[t]?.shades||qe.indigo.shades;return{name:"Clair",primary:qe.indigo.shades,accent:s,backgrounds:{app:"#fafafa",primary:"#ffffff",secondary:"#f4f4f5",tertiary:"#e4e4e7",card:"#ffffff",hover:"#f4f4f5",active:"#e4e4e7"},text:{primary:"#18181b",secondary:"#52525b",tertiary:"#71717a",muted:"#a1a1aa",inverse:"#fafafa"},border:{default:"#e4e4e7",subtle:"#f4f4f5",strong:"#d4d4d8"},status:{success:{bg:"#f0fdfa",text:"#0f766e",border:"#99f6e4",dot:"#14b8a6"},warning:{bg:"#fffbeb",text:"#b45309",border:"#fde68a",dot:"#f59e0b"},error:{bg:"#fff1f2",text:"#be123c",border:"#fecdd3",dot:"#f43f5e"},info:{bg:"#f0f9ff",text:"#0369a1",border:"#bae6fd",dot:"#0ea5e9"}},accentTransparent:{bg:`${s[50]}`,text:s[700],border:s[200]}}},gt=t=>{const s=qe[t]?.shades||qe.indigo.shades;return{name:"Sombre",primary:qe.indigo.shades,accent:s,backgrounds:{app:"#161618",primary:"#1c1c1f",secondary:"#232326",tertiary:"#2a2a2e",card:"#1c1c1f",hover:"#27272a",active:"#3f3f46"},text:{primary:"#fafafa",secondary:"#d4d4d8",tertiary:"#a1a1aa",muted:"#71717a",inverse:"#18181b"},border:{default:"#3f3f46",subtle:"#27272a",strong:"#52525b"},status:{success:{bg:"rgba(20, 184, 166, 0.15)",text:"#5eead4",border:"rgba(20, 184, 166, 0.3)",dot:"#14b8a6"},warning:{bg:"rgba(245, 158, 11, 0.15)",text:"#fbbf24",border:"rgba(245, 158, 11, 0.3)",dot:"#f59e0b"},error:{bg:"rgba(244, 63, 94, 0.15)",text:"#fb7185",border:"rgba(244, 63, 94, 0.3)",dot:"#f43f5e"},info:{bg:"rgba(14, 165, 233, 0.15)",text:"#7dd3fc",border:"rgba(14, 165, 233, 0.3)",dot:"#0ea5e9"}},accentTransparent:{bg:`rgba(${Is(s[500])}, 0.15)`,text:s[300],border:`rgba(${Is(s[500])}, 0.3)`}}};function Is(t){const s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return s?`${parseInt(s[1],16)}, ${parseInt(s[2],16)}, ${parseInt(s[3],16)}`:"99, 102, 241"}const Nt={mode:"dark",borderRadius:ln,colors:{light:ht("indigo"),dark:gt("indigo")},accentColorKey:"indigo",itemPaletteKey:ms},cn=[{id:"default",name:"Par défaut",description:"Style SmartStack classique avec coins arrondis",icon:"✨",config:{borderRadius:{card:"large",button:"medium",badge:"medium",input:"medium",modal:"xlarge",menuItem:"medium"},accentColorKey:"indigo",itemPaletteKey:"neutral"}},{id:"minimal",name:"Minimal",description:"Style épuré et professionnel",icon:"⚪",config:{borderRadius:{card:"medium",button:"small",badge:"small",input:"small",modal:"medium",menuItem:"small"},accentColorKey:"slate",itemPaletteKey:"neutral"}},{id:"corporate",name:"Corporate",description:"Style sobre pour environnement professionnel",icon:"🏢",config:{borderRadius:{card:"small",button:"small",badge:"medium",input:"small",modal:"medium",menuItem:"small"},accentColorKey:"gray",itemPaletteKey:"neutral"}},{id:"ocean",name:"Océan",description:"Teintes bleues apaisantes",icon:"🌊",config:{borderRadius:{card:"large",button:"medium",badge:"medium",input:"medium",modal:"xlarge",menuItem:"medium"},accentColorKey:"cyan",itemPaletteKey:"ocean"}},{id:"forest",name:"Forêt",description:"Tons verts naturels",icon:"🌲",config:{borderRadius:{card:"medium",button:"medium",badge:"medium",input:"medium",modal:"large",menuItem:"medium"},accentColorKey:"emerald",itemPaletteKey:"forest"}},{id:"sunset",name:"Coucher de soleil",description:"Couleurs chaudes et accueillantes",icon:"🌅",config:{borderRadius:{card:"large",button:"large",badge:"xxlarge",input:"medium",modal:"xlarge",menuItem:"medium"},accentColorKey:"orange",itemPaletteKey:"sunset"}},{id:"lavender",name:"Lavande",description:"Tons violets élégants",icon:"💜",config:{borderRadius:{card:"xlarge",button:"large",badge:"xlarge",input:"large",modal:"xlarge",menuItem:"large"},accentColorKey:"violet",itemPaletteKey:"lavender"}},{id:"rose",name:"Rose",description:"Teintes roses douces",icon:"🌸",config:{borderRadius:{card:"xxlarge",button:"xlarge",badge:"xxlarge",input:"large",modal:"xxlarge",menuItem:"large"},accentColorKey:"pink",itemPaletteKey:"rose"}}],fr="smartstack-theme-config";class kt extends Error{statusCode;details;constructor(s,r,n){super(s),this.name="AppError",this.statusCode=r,this.details=n}}class xs extends Error{constructor(s="Network error occurred"){super(s),this.name="NetworkError"}}class br extends Error{code;constructor(s="Authentication required",r){super(s),this.name="AuthenticationError",this.code=r}}class dn extends Error{constructor(s="Access denied"){super(s),this.name="ForbiddenError"}}const un=10;class mn{queue=[];recentErrors=[];isProcessing=!1;batchSize=10;batchDelay=2e3;async logError(s,r,n){const o=typeof s=="string"?s:s.message;let c=o;if(n?.url){const d=String(n.url),u=n.status?` [${n.status}]`:"";c=`${o}${u} - ${d}`}const i={message:c,stack:typeof s=="string"?void 0:s.stack,url:window.location.href,component:r,level:"Error",metadata:n};this.storeRecentError(i),this.queue.push({type:"error",data:i}),this.processQueue()}async logCritical(s,r,n){const o=typeof s=="string"?s:s.message;let c=o;if(n?.url){const u=String(n.url),m=n.status?` [${n.status}]`:"";c=`${o}${m} - ${u}`}const i={message:c,stack:typeof s=="string"?void 0:s.stack,url:window.location.href,component:r,level:"Critical",metadata:n};return this.storeRecentError(i),await this.sendErrorWithResponse(i)}getRecentErrors(){return[...this.recentErrors]}clearRecentErrors(){this.recentErrors=[]}storeRecentError(s){this.recentErrors.unshift({...s,timestamp:new Date}),this.recentErrors.length>un&&this.recentErrors.pop()}async logEvent(s,r,n){const o={event:s,category:r,data:n};this.queue.push({type:"event",data:o}),this.processQueue()}async processQueue(){if(this.isProcessing||this.queue.length===0)return;this.isProcessing=!0,await new Promise(r=>setTimeout(r,this.batchDelay));const s=this.queue.splice(0,this.batchSize);for(const r of s)try{r.type==="error"?await this.sendError(r.data):await this.sendEvent(r.data)}catch{}this.isProcessing=!1,this.queue.length>0&&this.processQueue()}async sendError(s){await fetch("/api/logs/client-error",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})}async sendErrorWithResponse(s){try{const r=await fetch("/api/logs/client-error",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});return r.ok&&r.status===200&&(await r.json()).ticketNumber||null}catch{return null}}async sendEvent(s){await fetch("/api/logs/client-event",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})}}const Le=new mn;window.onerror=(t,s,r,n,o)=>{Le.logError(o||String(t),"window.onerror",{source:s,lineno:r,colno:n})};window.onunhandledrejection=t=>{Le.logError(t.reason instanceof Error?t.reason:String(t.reason),"unhandledrejection")};function ps(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")try{return crypto.randomUUID()}catch{}return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,t=>{const s=Number(t);return(s^crypto.getRandomValues(new Uint8Array(1))[0]&15>>s/4).toString(16)})}const Pe=us.create({timeout:3e4,withCredentials:!0,headers:{"Content-Type":"application/json"}});Pe.interceptors.request.use(t=>{const s=ps();t.headers&&(t.headers["X-Correlation-ID"]=s);const r=localStorage.getItem("i18nextLng")||navigator.language||"fr";t.headers&&(t.headers["Accept-Language"]=r);const n=localStorage.getItem("currentTenantSlug");return n&&t.headers&&!t.headers["X-Tenant-Slug"]&&(t.headers["X-Tenant-Slug"]=n),t},t=>(Le.logError(t,"apiClient.request"),Promise.reject(t)));Pe.interceptors.response.use(t=>t,async t=>{const s=t.config?.headers?.["X-Correlation-ID"];if(us.isCancel(t)||t.code==="ERR_CANCELED")return Promise.reject(t);if(!t.response){const i=new xs("Impossible de se connecter au serveur. Vérifiez votre connexion internet.");return Le.logError(i,"apiClient.response",{correlationId:s}),Promise.reject(i)}const{status:r,data:n}=t.response,o=n?.message||n?.detail||n?.title||t.message,c=n?.code;switch(r){case 401:{const i=new br(o,c);Le.logError(i,"apiClient.response",{correlationId:s,url:t.config?.url,code:c});const d=t.config?.url||"",m=["/api/user/preferences","/api/auth/session-info","/api/auth/refresh","/api/navigation/menu","/api/navigation/favorites","/api/navigation/contexts","/api/onboarding/status","/api/administration/tenants/tenant-analytics/track/"].some(x=>d.startsWith(x));if(!window.location.pathname.includes("/login")&&!m){localStorage.removeItem("user");const p=c==="SESSION_EXPIRED"?"/login?reason=session_expired":"/login";window.location.href=p}return Promise.reject(i)}case 403:{const i=new dn(o),d=["/api/administration/tenants/tenant-analytics/track/","/api/support/notifications"],u=t.config?.url||"";return d.some(x=>u.startsWith(x))||Le.logError(i,"apiClient.response",{correlationId:s,url:t.config?.url,method:t.config?.method}),Promise.reject(i)}case 404:return Promise.reject(new kt(o||"Resource not found",r));case 400:return Promise.reject(new kt(o||"Invalid request",r,n?.details||n?.errors));case 500:case 502:case 503:case 504:{if(r===503&&c==="LICENSE_HALTED"){const d=new CustomEvent("license:refresh");window.dispatchEvent(d)}const i=new kt(o||"Server error",r);return Le.logCritical(i,"apiClient.response",{correlationId:s,url:t.config?.url,status:r,code:c}),Promise.reject(i)}default:{const i=new kt(o,r,n?.details);return Le.logError(i,"apiClient.response",{correlationId:s,status:r}),Promise.reject(i)}}});const I={get:(t,s)=>Pe.get(t,s).then(r=>r.data),post:(t,s,r)=>Pe.post(t,s,r).then(n=>n.data),put:(t,s,r)=>Pe.put(t,s,r).then(n=>n.data),patch:(t,s,r)=>Pe.patch(t,s,r).then(n=>n.data),delete:(t,s)=>Pe.delete(t,s).then(r=>r.data)},_t={preferences:{get:()=>I.get("/api/user/preferences"),updateTheme:t=>I.put("/api/user/preferences/theme",t),updateLanguage:t=>I.put("/api/user/preferences/language",t),updateNotifications:t=>I.put("/api/user/preferences/notifications",t)},dashboard:{getAll:(t=30,s=10)=>I.get(`/api/user/dashboard/all?period=${t}&errorLimit=${s}`),getSessionAnalytics:(t=30)=>I.get(`/api/user/dashboard/session-analytics?period=${t}`),getLoginErrors:(t=10)=>I.get(`/api/user/dashboard/login-errors?limit=${t}`),getCurrentSession:()=>I.get("/api/user/dashboard/current-session"),getDeviceStats:()=>I.get("/api/user/dashboard/device-stats"),getWeeklyStats:(t=30)=>I.get(`/api/user/dashboard/weekly-stats?period=${t}`),getHourlyStats:(t=30)=>I.get(`/api/user/dashboard/hourly-stats?period=${t}`),getApplicationUsage:(t=30)=>I.get(`/api/user/dashboard/application-usage?period=${t}`)}},xn=t=>({get:(s,r)=>Pe.get(s,{...r,headers:t?{...r?.headers,"X-Tenant-Slug":t}:r?.headers}).then(n=>n.data),post:(s,r,n)=>Pe.post(s,r,{...n,headers:t?{...n?.headers,"X-Tenant-Slug":t}:n?.headers}).then(o=>o.data),put:(s,r,n)=>Pe.put(s,r,{...n,headers:t?{...n?.headers,"X-Tenant-Slug":t}:n?.headers}).then(o=>o.data),patch:(s,r,n)=>Pe.patch(s,r,{...n,headers:t?{...n?.headers,"X-Tenant-Slug":t}:n?.headers}).then(o=>o.data),delete:(s,r)=>Pe.delete(s,{...r,headers:t?{...r?.headers,"X-Tenant-Slug":t}:r?.headers}).then(n=>n.data)}),pn={PasswordResetMalfunction:1,FalsePositive:2,UrgentBusinessNeed:3,TechnicalSystemError:4,SupportTicketVerified:5},hn=t=>({getAll:s=>t.get("/api/administration/users",{params:s}),getById:s=>t.get(`/api/administration/users/${s}`),create:s=>t.post("/api/administration/users",s),update:(s,r)=>t.put(`/api/administration/users/${s}`,r),sendPasswordResetLink:s=>t.post(`/api/administration/users/${s}/send-password-reset`),resetPasswordDirect:(s,r)=>t.post(`/api/administration/users/${s}/reset-password-direct`,r?{temporaryPassword:r}:{}),activate:s=>t.patch(`/api/administration/users/${s}/activate`),deactivate:s=>t.patch(`/api/administration/users/${s}/deactivate`),unlock:(s,r)=>t.post(`/api/administration/users/${s}/unlock`,r),clearFailedAttempts:s=>t.post(`/api/administration/users/${s}/clear-failed-attempts`),delete:s=>t.delete(`/api/administration/users/${s}`),getSessions:s=>t.get(`/api/administration/users/${s}/sessions`),endAllSessions:s=>t.post(`/api/administration/users/${s}/sessions/end-all`),endSession:(s,r)=>t.delete(`/api/administration/users/${s}/sessions/${r}`),getActivity:s=>t.get(`/api/administration/users/${s}/activity`),getCustomRole:s=>t.get(`/api/administration/users/${s}/custom-role`),createCustomRole:s=>t.post(`/api/administration/users/${s}/custom-role`),deleteCustomRole:s=>t.delete(`/api/administration/users/${s}/custom-role`),getHistory:(s,r=50)=>t.get(`/api/administration/users/${s}/history`,{params:{limit:r}}),restoreFromHistory:(s,r)=>t.post(`/api/administration/users/${s}/history/${r}/restore`),getOrganizationReferences:()=>t.get("/api/administration/users/organization-references"),references:{getCompanies:s=>t.get("/api/administration/users/references/companies",{params:s}),getDepartments:s=>t.get("/api/administration/users/references/departments",{params:s}),getJobTitles:s=>t.get("/api/administration/users/references/job-titles",{params:s}),getOffices:s=>t.get("/api/administration/users/references/offices",{params:s}),createCompany:(s,r)=>t.post(`/api/administration/users/references/companies${r?`?tenantId=${r}`:""}`,s),createDepartment:(s,r)=>t.post(`/api/administration/users/references/departments${r?`?tenantId=${r}`:""}`,s),createJobTitle:(s,r)=>t.post(`/api/administration/users/references/job-titles${r?`?tenantId=${r}`:""}`,s),createOffice:(s,r)=>t.post(`/api/administration/users/references/offices${r?`?tenantId=${r}`:""}`,s),updateCompany:(s,r)=>t.put(`/api/administration/users/references/companies/${s}`,r),updateDepartment:(s,r)=>t.put(`/api/administration/users/references/departments/${s}`,r),updateJobTitle:(s,r)=>t.put(`/api/administration/users/references/job-titles/${s}`,r),updateOffice:(s,r)=>t.put(`/api/administration/users/references/offices/${s}`,r),activateCompany:s=>t.patch(`/api/administration/users/references/companies/${s}/activate`),activateDepartment:s=>t.patch(`/api/administration/users/references/departments/${s}/activate`),activateJobTitle:s=>t.patch(`/api/administration/users/references/job-titles/${s}/activate`),activateOffice:s=>t.patch(`/api/administration/users/references/offices/${s}/activate`),deactivateCompany:s=>t.patch(`/api/administration/users/references/companies/${s}/deactivate`),deactivateDepartment:s=>t.patch(`/api/administration/users/references/departments/${s}/deactivate`),deactivateJobTitle:s=>t.patch(`/api/administration/users/references/job-titles/${s}/deactivate`),deactivateOffice:s=>t.patch(`/api/administration/users/references/offices/${s}/deactivate`),deleteCompany:s=>t.delete(`/api/administration/users/references/companies/${s}`),deleteDepartment:s=>t.delete(`/api/administration/users/references/departments/${s}`),deleteJobTitle:s=>t.delete(`/api/administration/users/references/job-titles/${s}`),deleteOffice:s=>t.delete(`/api/administration/users/references/offices/${s}`)},updateProfile:(s,r)=>t.put(`/api/administration/users/${s}/profile`,r),updateOrganization:(s,r)=>t.put(`/api/administration/users/${s}/organization`,r),updateJobInfo:(s,r)=>t.put(`/api/administration/users/${s}/job-info`,r),updatePhones:(s,r)=>t.put(`/api/administration/users/${s}/phones`,r),updateAddress:(s,r)=>t.put(`/api/administration/users/${s}/address`,r),updateContact:(s,r)=>t.put(`/api/administration/users/${s}/contact`,r),getTenants:s=>t.get(`/api/administration/users/${s}/tenants`),getGroups:s=>t.get(`/api/administration/users/${s}/groups`),getConsolidatedRoles:(s,r)=>{const n=r?`/api/administration/users/${s}/consolidated-roles?tenantId=${r}`:`/api/administration/users/${s}/consolidated-roles`;return t.get(n)},getApplicationAccess:(s,r)=>{const n=r?`/api/administration/users/${s}/application-access?tenantId=${r}`:`/api/administration/users/${s}/application-access`;return t.get(n)}}),gn=hn,fn=t=>({getAll:s=>t.get("/api/administration/permissions/roles",{params:s}),getAssignable:()=>t.get("/api/administration/permissions/roles",{params:{excludeCategories:"Custom",minPermissionsCount:1}}),getServiceAssignable:()=>t.get("/api/administration/permissions/roles",{params:{forExternalApps:!0,minPermissionsCount:1}}),getByApplication:s=>t.get("/api/administration/permissions/roles",{params:{applicationId:s,excludeCategories:"Custom",minPermissionsCount:1}}),getById:s=>t.get(`/api/administration/permissions/roles/${s}`),create:s=>t.post("/api/administration/permissions/roles",s),update:(s,r)=>t.put(`/api/administration/permissions/roles/${s}`,r),delete:s=>t.delete(`/api/administration/permissions/roles/${s}`),assignUser:(s,r)=>t.post(`/api/administration/permissions/roles/${s}/users/${r}`),removeUser:(s,r)=>t.delete(`/api/administration/permissions/roles/${s}/users/${r}`),getGroups:s=>t.get(`/api/administration/permissions/roles/${s}/groups`),assignGroup:(s,r)=>t.post(`/api/administration/permissions/roles/${s}/groups/${r}`),removeGroup:(s,r)=>t.delete(`/api/administration/permissions/roles/${s}/groups/${r}`),getTranslations:s=>t.get(`/api/administration/permissions/roles/${s}/translations`),upsertTranslation:(s,r,n)=>t.put(`/api/administration/permissions/roles/${s}/translations/${r}`,n),deleteTranslation:(s,r)=>t.delete(`/api/administration/permissions/roles/${s}/translations/${r}`)}),bn=fn,vn=t=>({getAll:s=>t.get("/api/administration/permissions",{params:s}),getById:s=>t.get(`/api/administration/permissions/${s}`),getTree:()=>t.get("/api/administration/permissions/tree"),getMatrix:()=>t.get("/api/administration/permissions/matrix"),delete:s=>t.delete(`/api/administration/permissions/${s}`)}),yn=vn,jn=t=>({getAll:s=>t.get("/api/administration/applications",{params:s}),getById:s=>t.get(`/api/administration/applications/${s}`),update:(s,r)=>t.put(`/api/administration/applications/${s}`,r),activate:s=>t.patch(`/api/administration/applications/${s}/activate`),deactivate:s=>t.patch(`/api/administration/applications/${s}/deactivate`),getModules:s=>t.get(`/api/administration/applications/${s}/modules`),updateModule:(s,r,n)=>t.put(`/api/administration/applications/${s}/modules/${r}`,n),getModuleSections:(s,r)=>t.get(`/api/administration/applications/${s}/modules/${r}/sections`),reorderModules:(s,r)=>t.put(`/api/administration/applications/${s}/modules/reorder`,{items:r}),reorderSections:(s,r,n)=>t.put(`/api/administration/applications/${s}/modules/${r}/sections/reorder`,{items:n}),getTenants:s=>t.get(`/api/administration/applications/${s}/tenants`),getAvailableTenants:s=>t.get(`/api/administration/applications/${s}/tenants/available`),assignToTenant:(s,r,n)=>t.post(`/api/administration/applications/${s}/tenants/${r}`,n?{accessLevel:n}:{}),removeFromTenant:(s,r)=>t.delete(`/api/administration/applications/${s}/tenants/${r}`),updateTenantAccessLevel:(s,r,n)=>t.patch(`/api/administration/applications/${s}/tenants/${r}/access-level`,{accessLevel:n}),bulkAssignTenants:(s,r)=>t.post(`/api/administration/applications/${s}/tenants/bulk`,r)}),Nn=jn,wn=t=>({getOverview:(s=30,r)=>t.get("/api/administration/users/dashboard/overview",{params:{days:s},signal:r?.signal}),getByStatus:s=>t.get("/api/administration/users/dashboard/by-status",{signal:s?.signal}),getByRole:s=>t.get("/api/administration/users/dashboard/by-role",{signal:s?.signal}),getByType:s=>t.get("/api/administration/users/dashboard/by-type",{signal:s?.signal}),getLoginActivity:(s=30,r)=>t.get("/api/administration/users/dashboard/login-activity",{params:{days:s},signal:r?.signal}),getTrends:(s=30,r)=>t.get("/api/administration/users/dashboard/trends",{params:{days:s},signal:r?.signal}),getRecentUsers:(s=10,r)=>t.get("/api/administration/users/dashboard/recent-users",{params:{limit:s},signal:r?.signal}),getSecurityAlerts:(s=3,r=24,n)=>t.get("/api/administration/users/dashboard/security-alerts",{params:{threshold:s,hours:r},signal:n?.signal}),getActiveSessions:s=>t.get("/api/administration/users/dashboard/active-sessions",{signal:s?.signal}),getLatestActiveSessions:(s=5,r)=>t.get("/api/administration/users/dashboard/latest-active-sessions",{params:{limit:s},signal:r?.signal})}),Sn=wn,Cn=t=>({getAll:()=>t.get("/api/administration/configuration/settings"),getByCategory:s=>t.get(`/api/administration/configuration/settings/${s}`),get:(s,r)=>t.get(`/api/administration/configuration/settings/${s}/${r}`),update:(s,r,n)=>t.put(`/api/administration/configuration/settings/${s}/${r}`,{value:n}),reset:(s,r)=>t.post(`/api/administration/configuration/settings/${s}/${r}/reset`),getHistory:(s,r)=>t.get(`/api/administration/configuration/settings/${s}/${r}/history`),getCategories:()=>t.get("/api/administration/configuration/settings/categories")}),kn=Cn,Pn=t=>({get:()=>t.get("/api/user/preferences"),getGlobal:()=>t.get("/api/user/preferences/global"),getForTenant:s=>t.get(`/api/user/preferences/for-tenant/${s}`),getThemeOverrides:()=>t.get("/api/user/preferences/theme-overrides"),deleteTenantOverride:()=>t.delete("/api/user/preferences/tenant-override"),applyToTenant:()=>t.post("/api/user/preferences/apply-to-tenant")}),An=Pn,Tn=t=>({getConfig:()=>t.get("/api/administration/tenants/config"),getAll:s=>{const{excludeTypes:r,...n}=s||{},o=new URLSearchParams;n.page&&o.set("page",String(n.page)),n.pageSize&&o.set("pageSize",String(n.pageSize)),n.search&&o.set("search",n.search),n.status&&o.set("status",n.status),n.type&&o.set("type",n.type),n.sortBy&&o.set("sortBy",n.sortBy),n.sortDesc&&o.set("sortDesc","true"),r?.length&&r.forEach(i=>o.append("excludeTypes",i));const c=o.toString();return t.get(`/api/administration/tenants${c?`?${c}`:""}`)},getById:s=>t.get(`/api/administration/tenants/${s}`),createB2C:s=>t.post("/api/administration/tenants/b2c",s),createB2B:s=>t.post("/api/administration/tenants/b2b",s),update:(s,r)=>t.put(`/api/administration/tenants/${s}`,r),delete:s=>t.delete(`/api/administration/tenants/${s}`),activate:s=>t.post(`/api/administration/tenants/${s}/activate`),suspend:s=>t.post(`/api/administration/tenants/${s}/suspend`),archive:s=>t.delete(`/api/administration/tenants/${s}`),checkSlugAvailable:s=>t.get(`/api/administration/tenants/check-slug/${s}`),assignTemplate:(s,r)=>t.post(`/api/administration/tenants/${s}/template`,{templateId:r}),removeTemplate:s=>t.delete(`/api/administration/tenants/${s}/template`),getMembers:s=>t.get(`/api/administration/tenants/${s}/members`),getMember:(s,r)=>t.get(`/api/administration/tenants/${s}/members/${r}`),addMember:(s,r)=>t.post(`/api/administration/tenants/${s}/members`,r),removeMember:(s,r)=>t.delete(`/api/administration/tenants/${s}/members/${r}`),setMemberDefault:(s,r)=>t.patch(`/api/administration/tenants/${s}/members/${r}/set-default`),transferOwnership:(s,r)=>t.post(`/api/administration/tenants/${s}/members/transfer-ownership`,{toUserId:r}),assignRole:(s,r,n)=>t.post(`/api/administration/tenants/${s}/members/${r}/roles/${n}`),removeRole:(s,r,n)=>t.delete(`/api/administration/tenants/${s}/members/${r}/roles/${n}`),assignMemberRoles:(s,r,n)=>t.put(`/api/administration/tenants/${s}/members/${r}/roles`,{roleIds:n}),getMemberCustomRole:(s,r)=>t.get(`/api/administration/tenants/${s}/members/${r}/custom-role`),createMemberCustomRole:(s,r)=>t.post(`/api/administration/tenants/${s}/members/${r}/custom-role`),deleteMemberCustomRole:(s,r)=>t.delete(`/api/administration/tenants/${s}/members/${r}/custom-role`),getTenantRoles:s=>t.get(`/api/administration/tenants/${s}/roles`),getGroups:s=>t.get(`/api/administration/tenants/${s}/groups`),getAvailableGroups:s=>t.get(`/api/administration/tenants/${s}/groups/available`),addGroupToTenant:(s,r)=>t.post(`/api/administration/tenants/${s}/groups`,{groupId:r}),removeGroupFromTenant:(s,r)=>t.delete(`/api/administration/tenants/${s}/groups/${r}`),getApplications:s=>t.get(`/api/administration/tenants/${s}/applications`),getAvailableApplications:s=>t.get(`/api/administration/tenants/${s}/applications/available`),assignApplication:(s,r)=>t.post(`/api/administration/tenants/${s}/applications/${r}`),removeApplication:(s,r)=>t.delete(`/api/administration/tenants/${s}/applications/${r}`),bulkAssignApplications:(s,r)=>t.post(`/api/administration/tenants/${s}/applications/bulk`,r),toggleApplication:(s,r,n)=>t.patch(`/api/administration/tenants/${s}/applications/${r}/toggle`,{isActive:n}),updateApplicationAccessLevel:(s,r,n)=>t.patch(`/api/administration/tenants/${s}/applications/${r}/access-level`,{accessLevel:n}),getEffectiveTree:(s,r)=>t.get(`/api/administration/tenants/${s}/applications/${r}/effective-tree`),saveOverrides:(s,r,n)=>t.put(`/api/administration/tenants/${s}/applications/${r}/overrides`,n),getModules:s=>t.get(`/api/administration/tenants/${s}/modules`),getAvailableModules:s=>t.get(`/api/administration/tenants/${s}/modules/available`),assignModule:(s,r)=>t.post(`/api/administration/tenants/${s}/modules/${r}`),removeModule:(s,r)=>t.delete(`/api/administration/tenants/${s}/modules/${r}`),toggleModule:(s,r,n)=>t.patch(`/api/administration/tenants/${s}/modules/${r}/toggle`,{isActive:n}),getSections:s=>t.get(`/api/administration/tenants/${s}/sections`),getAvailableSections:s=>t.get(`/api/administration/tenants/${s}/sections/available`),assignSection:(s,r)=>t.post(`/api/administration/tenants/${s}/sections/${r}`),removeSection:(s,r)=>t.delete(`/api/administration/tenants/${s}/sections/${r}`),toggleSection:(s,r,n)=>t.patch(`/api/administration/tenants/${s}/sections/${r}/toggle`,{isActive:n}),getModulesWithSections:(s,r)=>t.get(`/api/administration/tenants/${s}/applications/${r}/modules-tree`),linkOrganisation:(s,r)=>t.post(`/api/administration/tenants/${s}/organisation`,{organisationId:r}),unlinkOrganisation:s=>t.delete(`/api/administration/tenants/${s}/organisation`)}),Rn=Tn,En=t=>({getAll:()=>t.get("/api/administration/tenants/templates"),getById:s=>t.get(`/api/administration/tenants/templates/${s}`),create:s=>t.post("/api/administration/tenants/templates",s),update:(s,r)=>t.put(`/api/administration/tenants/templates/${s}`,r),delete:s=>t.delete(`/api/administration/tenants/templates/${s}`),assignApplication:(s,r)=>t.post(`/api/administration/tenants/templates/${s}/applications/${r}`),removeApplication:(s,r)=>t.delete(`/api/administration/tenants/templates/${s}/applications/${r}`),bulkAssignApplications:(s,r)=>t.post(`/api/administration/tenants/templates/${s}/applications/bulk`,r),getTenants:s=>t.get(`/api/administration/tenants/templates/${s}/tenants`),getApplications:s=>t.get(`/api/administration/tenants/templates/${s}/applications`),getAvailableApplications:s=>t.get(`/api/administration/tenants/templates/${s}/applications/available`),updateApplicationAccessLevel:(s,r,n)=>t.patch(`/api/administration/tenants/templates/${s}/applications/${r}/access-level`,{accessLevel:n}),getApplicationModules:(s,r)=>t.get(`/api/administration/tenants/templates/${s}/applications/${r}/modules`),updateApplicationModules:(s,r,n)=>t.put(`/api/administration/tenants/templates/${s}/applications/${r}/modules`,n),getAiInstances:s=>t.get(`/api/administration/tenants/templates/${s}/ai-instances`),assignAiInstance:(s,r)=>t.post(`/api/administration/tenants/templates/${s}/ai-instances/${r}`),removeAiInstance:(s,r)=>t.delete(`/api/administration/tenants/templates/${s}/ai-instances/${r}`)}),In=En,Ln=t=>({getAll:s=>t.get("/api/administration/tenants/organisations",{params:s}),getAvailable:s=>t.get("/api/administration/tenants/organisations/available",{params:s?{search:s}:void 0}),getPendingVerification:()=>t.get("/api/administration/tenants/organisations/pending-verification"),getById:s=>t.get(`/api/administration/tenants/organisations/${s}`),findById:async s=>{const r=await Pe.get(`/api/administration/tenants/organisations/${s}`,{validateStatus:n=>n===200||n===404});return r.status===200?r.data:null},create:s=>t.post("/api/administration/tenants/organisations",s),updateContact:(s,r)=>t.put(`/api/administration/tenants/organisations/${s}/contact`,r),updateAddress:(s,r)=>t.put(`/api/administration/tenants/organisations/${s}/address`,r),verify:(s,r)=>t.post(`/api/administration/tenants/organisations/${s}/verify`,{notes:r}),reject:(s,r)=>t.post(`/api/administration/tenants/organisations/${s}/reject`,{reason:r}),lookup:(s,r)=>t.get("/api/administration/tenants/organisations/lookup",{params:{countryCode:s,identifier:r}})}),$n=Ln,Dn=t=>({getAll:s=>t.get("/api/administration/tenants/my",{params:s?{search:s}:void 0}),getDefault:()=>t.get("/api/administration/tenants/my/default"),setDefault:s=>t.post(`/api/administration/tenants/${s}/set-default`),clearDefault:()=>t.delete("/api/administration/tenants/clear-default"),getFavorites:()=>t.get("/api/user/preferences/tenant-favorites"),addFavorite:s=>t.post(`/api/user/preferences/tenant-favorites/${s}`),removeFavorite:s=>t.delete(`/api/user/preferences/tenant-favorites/${s}`),recordRecent:s=>t.post(`/api/user/preferences/tenant-recent/${s}`)}),Mn=Dn,On=t=>({getAll:s=>t.get("/api/accounts",{params:s}),getById:s=>t.get(`/api/accounts/${s}`),create:s=>t.post("/api/accounts",s),update:(s,r)=>t.put(`/api/accounts/${s}`,r),delete:s=>t.delete(`/api/accounts/${s}`),activate:s=>t.patch(`/api/accounts/${s}/activate`),deactivate:s=>t.patch(`/api/accounts/${s}/deactivate`),rotateSecret:(s,r="Primary")=>t.post(`/api/accounts/${s}/rotate-secret?keySlot=${r}`),revokeSecondarySecret:s=>t.delete(`/api/accounts/${s}/secondary-secret`),assignRole:(s,r)=>t.post(`/api/accounts/${s}/roles`,r),removeRole:(s,r,n)=>t.delete(`/api/accounts/${s}/roles/${r}`,{params:n?{tenantId:n}:void 0}),generateSecret:()=>t.post("/api/accounts/generate-secret"),getAuditLogs:(s,r=1,n=20)=>t.get(`/api/accounts/${s}/audit-logs`,{params:{page:r,pageSize:n}}),getUsageStats:(s,r=30)=>t.get(`/api/accounts/${s}/usage-stats`,{params:{days:r}}),getKeyUsage:s=>t.get(`/api/accounts/${s}/key-usage`),getApiEndpoints:()=>t.get("/api/accounts/api-endpoints"),getAppApiAccess:s=>t.get(`/api/accounts/${s}/api-access`),updateApiAccess:(s,r,n)=>t.put(`/api/accounts/${s}/api-access/${r}`,n),removeApiAccess:(s,r)=>t.delete(`/api/accounts/${s}/api-access/${r}`)}),Fn=On,_n=t=>({getNavigationLookup:()=>t.get("/api/apis/navigation-lookup")}),Un=_n,vr=t=>{const s=t?xn(t):I;return{users:gn(s),roles:bn(s),permissions:yn(s),applications:Nn(s),dashboard:Sn(s),settings:kn(s),tenants:Rn(s),templates:In(s),organisations:$n(s),myTenants:Mn(s),preferences:An(s),externalApps:Fn(s),apiCatalog:Un(s)}},we=vr(),me=(t,s,r)=>{const n=t[s];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((o,c)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(c.bind(null,new Error("Unknown variable dynamic import: "+s+(s.split("/").length!==r?". Note that variables only represent file names one level deep.":""))))})},rs=async t=>{if(!t)return null;try{const[s,r,n,o,c,i,d,u,m,x,p,f,y,h,N,b,w,g,v,j,L,$,k,P,A,D,U,C,M,X,R,B,J,G,Y]=await Promise.all([me(Object.assign({"./locales/de/common.json":()=>Promise.resolve().then(()=>require("./common-Rz3UdIko.js")),"./locales/en/common.json":()=>Promise.resolve().then(()=>require("./common-CDcNYOxO.js")),"./locales/fr/common.json":()=>Promise.resolve().then(()=>require("./common-hy5JFCcL.js")),"./locales/it/common.json":()=>Promise.resolve().then(()=>require("./common-C-PRBz69.js"))}),`./locales/${t}/common.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/navigation.json":()=>Promise.resolve().then(()=>require("./navigation-D8yOGHza.js")),"./locales/en/navigation.json":()=>Promise.resolve().then(()=>require("./navigation-rEtU7BPw.js")),"./locales/fr/navigation.json":()=>Promise.resolve().then(()=>require("./navigation-BI8iMTJl.js")),"./locales/it/navigation.json":()=>Promise.resolve().then(()=>require("./navigation-BTkWh95c.js"))}),`./locales/${t}/navigation.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/auth.json":()=>Promise.resolve().then(()=>require("./auth-F4QivQwP.js")),"./locales/en/auth.json":()=>Promise.resolve().then(()=>require("./auth-CPtE6oEM.js")),"./locales/fr/auth.json":()=>Promise.resolve().then(()=>require("./auth-DfrsK5v-.js")),"./locales/it/auth.json":()=>Promise.resolve().then(()=>require("./auth-hRu3r3XK.js"))}),`./locales/${t}/auth.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/admin.json":()=>Promise.resolve().then(()=>require("./admin-B2LSENtf.js")),"./locales/en/admin.json":()=>Promise.resolve().then(()=>require("./admin-DbdkMKIr.js")),"./locales/fr/admin.json":()=>Promise.resolve().then(()=>require("./admin-CxWRfBxp.js")),"./locales/it/admin.json":()=>Promise.resolve().then(()=>require("./admin-DRivGadv.js"))}),`./locales/${t}/admin.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/support.json":()=>Promise.resolve().then(()=>require("./support-BU6GoEbW.js")),"./locales/en/support.json":()=>Promise.resolve().then(()=>require("./support-DnSiwJx7.js")),"./locales/fr/support.json":()=>Promise.resolve().then(()=>require("./support-B0kcB-tL.js")),"./locales/it/support.json":()=>Promise.resolve().then(()=>require("./support-Cm84X3pP.js"))}),`./locales/${t}/support.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs.json":()=>Promise.resolve().then(()=>require("./docs-sqOeJ3Lg.js")),"./locales/en/docs.json":()=>Promise.resolve().then(()=>require("./docs-BR4q7sou.js")),"./locales/fr/docs.json":()=>Promise.resolve().then(()=>require("./docs-CDz8QplV.js")),"./locales/it/docs.json":()=>Promise.resolve().then(()=>require("./docs-DCOsvfv7.js"))}),`./locales/${t}/docs.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/ai.json":()=>Promise.resolve().then(()=>require("./ai-BGanmkGz.js")),"./locales/en/ai.json":()=>Promise.resolve().then(()=>require("./ai-CnWgG5hN.js")),"./locales/fr/ai.json":()=>Promise.resolve().then(()=>require("./ai-wRnnMW5a.js")),"./locales/it/ai.json":()=>Promise.resolve().then(()=>require("./ai-Cgn4sP2c.js"))}),`./locales/${t}/ai.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/communications.json":()=>Promise.resolve().then(()=>require("./communications-DBbKXpf1.js")),"./locales/en/communications.json":()=>Promise.resolve().then(()=>require("./communications-BPsS3Vfm.js")),"./locales/fr/communications.json":()=>Promise.resolve().then(()=>require("./communications-DElJaoVw.js")),"./locales/it/communications.json":()=>Promise.resolve().then(()=>require("./communications-BKaku0MU.js"))}),`./locales/${t}/communications.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/entra.json":()=>Promise.resolve().then(()=>require("./entra-BadKCc7Y.js")),"./locales/en/entra.json":()=>Promise.resolve().then(()=>require("./entra-CfLYpxKq.js")),"./locales/fr/entra.json":()=>Promise.resolve().then(()=>require("./entra-Bc0Dwf7d.js")),"./locales/it/entra.json":()=>Promise.resolve().then(()=>require("./entra-DDgx1JoT.js"))}),`./locales/${t}/entra.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/en/structure.json":()=>Promise.resolve().then(()=>require("./structure-BL5cd83u.js")),"./locales/fr/structure.json":()=>Promise.resolve().then(()=>require("./structure-BblXL_QG.js"))}),`./locales/${t}/structure.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/preferences.json":()=>Promise.resolve().then(()=>require("./preferences-DLJ9mTYQ.js")),"./locales/en/preferences.json":()=>Promise.resolve().then(()=>require("./preferences-pkUX3R0G.js")),"./locales/fr/preferences.json":()=>Promise.resolve().then(()=>require("./preferences-Di_IL1wh.js")),"./locales/it/preferences.json":()=>Promise.resolve().then(()=>require("./preferences-B65OLntJ.js"))}),`./locales/${t}/preferences.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/groups.json":()=>Promise.resolve().then(()=>require("./groups-DGDNx8Hf.js")),"./locales/en/groups.json":()=>Promise.resolve().then(()=>require("./groups-5uqhFMN4.js")),"./locales/fr/groups.json":()=>Promise.resolve().then(()=>require("./groups-Cp2Q-pWt.js")),"./locales/it/groups.json":()=>Promise.resolve().then(()=>require("./groups-cV3gnMYo.js"))}),`./locales/${t}/groups.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/en/ba.json":()=>Promise.resolve().then(()=>require("./ba-9HglDm-t.js")),"./locales/fr/ba.json":()=>Promise.resolve().then(()=>require("./ba-CXlHUyjN.js"))}),`./locales/${t}/ba.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/home.json":()=>Promise.resolve().then(()=>require("./home-BJUrAgKh.js")),"./locales/en/home.json":()=>Promise.resolve().then(()=>require("./home-kOg_qmWN.js")),"./locales/fr/home.json":()=>Promise.resolve().then(()=>require("./home-CqwbawDU.js")),"./locales/it/home.json":()=>Promise.resolve().then(()=>require("./home-BFGCKgny.js"))}),`./locales/${t}/home.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-users.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-CsRMxznf.js")),"./locales/en/docs-administration-users.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-BUnDEWjL.js")),"./locales/fr/docs-administration-users.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-DRITa5fK.js")),"./locales/it/docs-administration-users.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-qLwE7c_z.js"))}),`./locales/${t}/docs-administration-users.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-permissions.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-BHJfnRA-.js")),"./locales/en/docs-administration-permissions.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-CXsWrgCA.js")),"./locales/fr/docs-administration-permissions.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-BLmrJB-I.js")),"./locales/it/docs-administration-permissions.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-BmiGStz4.js"))}),`./locales/${t}/docs-administration-permissions.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-Cmjpaxwy.js")),"./locales/en/docs-administration-tenants.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-CvYnhoo5.js")),"./locales/fr/docs-administration-tenants.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-xhQOAORE.js")),"./locales/it/docs-administration-tenants.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-CuHqwklv.js"))}),`./locales/${t}/docs-administration-tenants.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-ai.json":()=>Promise.resolve().then(()=>require("./docs-administration-ai-CPqGrO8q.js")),"./locales/en/docs-administration-ai.json":()=>Promise.resolve().then(()=>require("./docs-administration-ai-EVzVu3kS.js")),"./locales/fr/docs-administration-ai.json":()=>Promise.resolve().then(()=>require("./docs-administration-ai-B0zkD6zQ.js")),"./locales/it/docs-administration-ai.json":()=>Promise.resolve().then(()=>require("./docs-administration-ai-DngqfS6k.js"))}),`./locales/${t}/docs-administration-ai.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-workflows.json":()=>Promise.resolve().then(()=>require("./docs-administration-workflows-DRw16ooP.js")),"./locales/en/docs-administration-workflows.json":()=>Promise.resolve().then(()=>require("./docs-administration-workflows-Da6XQxlv.js")),"./locales/fr/docs-administration-workflows.json":()=>Promise.resolve().then(()=>require("./docs-administration-workflows-CofvuK9f.js")),"./locales/it/docs-administration-workflows.json":()=>Promise.resolve().then(()=>require("./docs-administration-workflows-DW4kFs3z.js"))}),`./locales/${t}/docs-administration-workflows.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-entra.json":()=>Promise.resolve().then(()=>require("./docs-administration-entra-D3hQEI3V.js")),"./locales/en/docs-administration-entra.json":()=>Promise.resolve().then(()=>require("./docs-administration-entra-griadux5.js")),"./locales/fr/docs-administration-entra.json":()=>Promise.resolve().then(()=>require("./docs-administration-entra-BbS4ZUu7.js")),"./locales/it/docs-administration-entra.json":()=>Promise.resolve().then(()=>require("./docs-administration-entra-D0KuJ7Ps.js"))}),`./locales/${t}/docs-administration-entra.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-applications-C6VsiHxH.js")),"./locales/en/docs-administration-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-applications-DRYyRp3S.js")),"./locales/fr/docs-administration-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-applications-BEepPuXf.js")),"./locales/it/docs-administration-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-applications-BiZBTxgS.js"))}),`./locales/${t}/docs-administration-applications.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-configuration.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-BdZl4hL4.js")),"./locales/en/docs-administration-configuration.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-DvZxFmnH.js")),"./locales/fr/docs-administration-configuration.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-CXro3iiT.js")),"./locales/it/docs-administration-configuration.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-B1YtxR_A.js"))}),`./locales/${t}/docs-administration-configuration.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-configuration-license.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-license-DSMqi4PQ.js")),"./locales/en/docs-administration-configuration-license.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-license-C3rm7u1h.js")),"./locales/fr/docs-administration-configuration-license.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-license-CJsMRPaR.js")),"./locales/it/docs-administration-configuration-license.json":()=>Promise.resolve().then(()=>require("./docs-administration-configuration-license-_LdQyRjT.js"))}),`./locales/${t}/docs-administration-configuration-license.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-template.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-template-HRqVNkqP.js")),"./locales/en/docs-administration-tenants-template.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-template-XQ-IiS31.js")),"./locales/fr/docs-administration-tenants-template.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-template-B3IDsztG.js")),"./locales/it/docs-administration-tenants-template.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-template-DKbpQgBH.js"))}),`./locales/${t}/docs-administration-tenants-template.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-business.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-business-BtAQiVRM.js")),"./locales/en/docs-administration-tenants-business.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-business-Cs4N4jrq.js")),"./locales/fr/docs-administration-tenants-business.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-business-XRmC4aRE.js")),"./locales/it/docs-administration-tenants-business.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-business-D1T8STQX.js"))}),`./locales/${t}/docs-administration-tenants-business.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-personal.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-personal-DHGVmv0D.js")),"./locales/en/docs-administration-tenants-personal.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-personal-Bk0D7emY.js")),"./locales/fr/docs-administration-tenants-personal.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-personal-DSnrN4MO.js")),"./locales/it/docs-administration-tenants-personal.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-personal-KFjQQGdW.js"))}),`./locales/${t}/docs-administration-tenants-personal.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-other.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-other-B5w2xFPJ.js")),"./locales/en/docs-administration-tenants-other.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-other-Dh2ohplZ.js")),"./locales/fr/docs-administration-tenants-other.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-other-WV4RsrVj.js")),"./locales/it/docs-administration-tenants-other.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-other-DeZKiNkH.js"))}),`./locales/${t}/docs-administration-tenants-other.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-permissions-assignments.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-assignments-BbAfGAzk.js")),"./locales/en/docs-administration-permissions-assignments.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-assignments-cv88prRo.js")),"./locales/fr/docs-administration-permissions-assignments.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-assignments-Clm4Yhy7.js")),"./locales/it/docs-administration-permissions-assignments.json":()=>Promise.resolve().then(()=>require("./docs-administration-permissions-assignments-Xtrdol6a.js"))}),`./locales/${t}/docs-administration-permissions-assignments.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-applications-BXTwlVt_.js")),"./locales/en/docs-administration-tenants-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-applications-DxKx9YEc.js")),"./locales/fr/docs-administration-tenants-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-applications-DehK43TA.js")),"./locales/it/docs-administration-tenants-applications.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-applications-D2SCJxWE.js"))}),`./locales/${t}/docs-administration-tenants-applications.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-access-requests.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-access-requests-CMJEiBDZ.js")),"./locales/en/docs-administration-tenants-access-requests.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-access-requests-BDCjPv_a.js")),"./locales/fr/docs-administration-tenants-access-requests.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-access-requests-DXBq6rZX.js")),"./locales/it/docs-administration-tenants-access-requests.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-access-requests-7mBPVsvv.js"))}),`./locales/${t}/docs-administration-tenants-access-requests.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-tenants-organisations.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-organisations-DV-_MnD2.js")),"./locales/en/docs-administration-tenants-organisations.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-organisations-BJS2qchs.js")),"./locales/fr/docs-administration-tenants-organisations.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-organisations-DDPYmh_7.js")),"./locales/it/docs-administration-tenants-organisations.json":()=>Promise.resolve().then(()=>require("./docs-administration-tenants-organisations-BWchU3XZ.js"))}),`./locales/${t}/docs-administration-tenants-organisations.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-platform-support-tickets.json":()=>Promise.resolve().then(()=>require("./docs-platform-support-tickets-nvIWiI_l.js")),"./locales/en/docs-platform-support-tickets.json":()=>Promise.resolve().then(()=>require("./docs-platform-support-tickets-yc0oKKrD.js")),"./locales/fr/docs-platform-support-tickets.json":()=>Promise.resolve().then(()=>require("./docs-platform-support-tickets-jObWdig-.js")),"./locales/it/docs-platform-support-tickets.json":()=>Promise.resolve().then(()=>require("./docs-platform-support-tickets-BtPIdbRr.js"))}),`./locales/${t}/docs-platform-support-tickets.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-users-dashboard.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-dashboard-D6Oy2YkN.js")),"./locales/en/docs-administration-users-dashboard.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-dashboard-sPBt_1c4.js")),"./locales/fr/docs-administration-users-dashboard.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-dashboard-BVpRmDsI.js")),"./locales/it/docs-administration-users-dashboard.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-dashboard-lQ9K3m9K.js"))}),`./locales/${t}/docs-administration-users-dashboard.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-users-references.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-references-Du_ykq8Q.js")),"./locales/en/docs-administration-users-references.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-references-CNWOU2Wq.js")),"./locales/fr/docs-administration-users-references.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-references-Dc8nUoSy.js")),"./locales/it/docs-administration-users-references.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-references-C5YUKBpW.js"))}),`./locales/${t}/docs-administration-users-references.json`,4).catch(()=>({default:{}})),me(Object.assign({"./locales/de/docs-administration-users-groups.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-groups-WmOKFuUm.js")),"./locales/en/docs-administration-users-groups.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-groups-C6xh7MWi.js")),"./locales/fr/docs-administration-users-groups.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-groups-DgWpE7cP.js")),"./locales/it/docs-administration-users-groups.json":()=>Promise.resolve().then(()=>require("./docs-administration-users-groups-7NuH5xFT.js"))}),`./locales/${t}/docs-administration-users-groups.json`,4).catch(()=>({default:{}}))]);return{common:s.default||{},navigation:r.default||{},auth:n.default||{},admin:o.default||{},support:c.default||{},docs:i.default||{},ai:d.default||{},communications:u.default||{},entra:m.default||{},structure:x.default||{},preferences:p.default||{},groups:f.default||{},ba:y.default||{},home:h.default||{},docsAdministrationUsers:N.default||{},docsAdministrationPermissions:b.default||{},docsAdministrationTenants:w.default||{},docsAdministrationAi:g.default||{},docsAdministrationWorkflows:v.default||{},docsAdministrationEntra:j.default||{},docsAdministrationApplications:L.default||{},docsAdministrationConfiguration:$.default||{},docsAdministrationConfigurationLicense:k.default||{},docsAdministrationTenantsTemplate:P.default||{},docsAdministrationTenantsBusiness:A.default||{},docsAdministrationTenantsPersonal:D.default||{},docsAdministrationTenantsOther:U.default||{},docsAdministrationPermissionsAssignments:C.default||{},docsAdministrationTenantsApplications:M.default||{},docsAdministrationTenantsAccessRequests:X.default||{},docsAdministrationTenantsOrganisations:R.default||{},docsPlatformSupportTickets:B.default||{},docsAdministrationUsersDashboard:J.default||{},docsAdministrationUsersReferences:G.default||{},docsAdministrationUsersGroups:Y.default||{}}}catch(s){return console.warn(`Failed to load language: ${t}`,s),null}},qn={},Bn=()=>{const t=localStorage.getItem("i18nextLng");if(t&&["en","fr","de","it"].includes(t))return t;const s=navigator.language.split("-")[0];return["en","fr","de","it"].includes(s)?s:"en"},Rt=Bn();Lt.use(rn).use(re.initReactI18next).init({resources:qn,lng:Rt,fallbackLng:"en",defaultNS:"common",ns:["common","navigation","auth","admin","support","docs","ai","communications","entra","structure","preferences","groups","ba","home","docsAdministrationUsers","docsAdministrationPermissions","docsAdministrationTenants","docsAdministrationAi","docsAdministrationWorkflows","docsAdministrationEntra","docsAdministrationApplications","docsAdministrationConfiguration","docsAdministrationConfigurationLicense","docsAdministrationTenantsTemplate","docsAdministrationTenantsBusiness","docsAdministrationTenantsPersonal","docsAdministrationTenantsOther","docsAdministrationPermissionsAssignments","docsAdministrationTenantsApplications","docsAdministrationTenantsAccessRequests","docsAdministrationTenantsOrganisations","docsPlatformSupportTickets","docsAdministrationUsersReferences","docsAdministrationUsersGroups"],interpolation:{escapeValue:!1},detection:{order:["localStorage","navigator","htmlTag"],caches:["localStorage"]},react:{bindI18nStore:"added removed",useSuspense:!1}});const as=(t,s)=>{Object.entries(s).forEach(([r,n])=>{Lt.addResourceBundle(t,r,n,!0,!0)})},yr=(async()=>{const t=[];Rt!=="en"&&t.push(rs("en").then(s=>{s&&as("en",s)})),t.push(rs(Rt).then(s=>{s&&as(Rt,s)})),await Promise.all(t)})(),jr=yr,hs=async t=>{if(await yr,!Lt.hasResourceBundle(t,"common")){const s=await rs(t);s&&as(t,s)}await Lt.changeLanguage(t)},Nr=a.createContext(void 0);function zn(){if(typeof window>"u")return Nt;try{const s=localStorage.getItem(fr);if(s){const r=JSON.parse(s);return{...Nt,...r,borderRadius:{...Nt.borderRadius,...r.borderRadius},itemPaletteKey:r.itemPaletteKey||ms,colors:{light:ht(r.accentColorKey||"indigo"),dark:gt(r.accentColorKey||"indigo")}}}}catch{}const t=window.matchMedia("(prefers-color-scheme: dark)").matches;return{...Nt,mode:t?"dark":"light"}}function Pt(t){const s=t.accentColorKey||"indigo",r=t.borderRadius;return{mode:t.theme||"dark",accentColorKey:s,borderRadius:{card:r?.card||"large",button:r?.button||"medium",badge:r?.badge||"medium",input:r?.input||"medium",modal:r?.modal||"xlarge",menuItem:r?.menuItem||"medium"},itemPaletteKey:t.itemPaletteKey||ms,colors:{light:ht(s),dark:gt(s)}}}function Kn(t){const s=document.documentElement,r=t.mode==="dark"?t.colors.dark:t.colors.light,n=qe[t.accentColorKey]?.shades||qe.indigo.shades,o=pt[t.itemPaletteKey]||pt.neutral,c=t.mode==="dark"?o.colors.dark:o.colors.light;t.mode==="dark"?s.classList.add("dark"):s.classList.remove("dark"),s.style.setProperty("--radius-card",Je[t.borderRadius.card]),s.style.setProperty("--radius-button",Je[t.borderRadius.button]),s.style.setProperty("--radius-badge",Je[t.borderRadius.badge]),s.style.setProperty("--radius-input",Je[t.borderRadius.input]),s.style.setProperty("--radius-modal",Je[t.borderRadius.modal]),s.style.setProperty("--radius-menu-item",Je[t.borderRadius.menuItem]),Object.entries(n).forEach(([i,d])=>{s.style.setProperty(`--color-accent-${i}`,d)}),s.style.setProperty("--item-color-light",c.light),s.style.setProperty("--item-color-medium",c.medium),s.style.setProperty("--item-color-dark",c.dark),s.style.setProperty("--item-color-border",c.border),s.style.setProperty("--bg-app",r.backgrounds.app),s.style.setProperty("--bg-primary",r.backgrounds.primary),s.style.setProperty("--bg-secondary",r.backgrounds.secondary),s.style.setProperty("--bg-tertiary",r.backgrounds.tertiary),s.style.setProperty("--bg-card",r.backgrounds.card),s.style.setProperty("--bg-hover",r.backgrounds.hover),s.style.setProperty("--bg-active",r.backgrounds.active),s.style.setProperty("--text-primary",r.text.primary),s.style.setProperty("--text-secondary",r.text.secondary),s.style.setProperty("--text-tertiary",r.text.tertiary),s.style.setProperty("--text-muted",r.text.muted),s.style.setProperty("--text-inverse",r.text.inverse),s.style.setProperty("--border-color",r.border.default),s.style.setProperty("--border-subtle",r.border.subtle),s.style.setProperty("--border-strong",r.border.strong),s.style.setProperty("--success-bg",r.status.success.bg),s.style.setProperty("--success-text",r.status.success.text),s.style.setProperty("--success-border",r.status.success.border),s.style.setProperty("--success-dot",r.status.success.dot),s.style.setProperty("--warning-bg",r.status.warning.bg),s.style.setProperty("--warning-text",r.status.warning.text),s.style.setProperty("--warning-border",r.status.warning.border),s.style.setProperty("--warning-dot",r.status.warning.dot),s.style.setProperty("--error-bg",r.status.error.bg),s.style.setProperty("--error-text",r.status.error.text),s.style.setProperty("--error-border",r.status.error.border),s.style.setProperty("--error-dot",r.status.error.dot),s.style.setProperty("--info-bg",r.status.info.bg),s.style.setProperty("--info-text",r.status.info.text),s.style.setProperty("--info-border",r.status.info.border),s.style.setProperty("--info-dot",r.status.info.dot),s.style.setProperty("--accent-bg",r.accentTransparent.bg),s.style.setProperty("--accent-text",r.accentTransparent.text),s.style.setProperty("--accent-border",r.accentTransparent.border)}function wr({children:t}){const[s,r]=a.useState(zn),[n,o]=a.useState(!1),[c,i]=a.useState(null),[d,u]=a.useState(void 0),[m,x]=a.useState([]),{i18n:p}=re.useTranslation(),f=a.useRef(null),y=a.useRef(!0),h=a.useRef(!1),N=a.useRef(!1),b=a.useCallback(async(R,B=void 0)=>{if(!localStorage.getItem("user")||N.current)return;let G=null;const Y=localStorage.getItem("currentTenantId");if(B===void 0)Y?G=Y:G=null;else{if(B!==null&&Y&&B!==Y)return;G=B}try{o(!0),await _t.preferences.updateTheme({mode:R.mode,accentColorKey:R.accentColorKey,borderRadius:{card:R.borderRadius.card,button:R.borderRadius.button,badge:R.borderRadius.badge,input:R.borderRadius.input,modal:R.borderRadius.modal,menuItem:R.borderRadius.menuItem},itemPaletteKey:R.itemPaletteKey,targetTenantId:G}),G&&!m.includes(G)&&x(ge=>[...ge,G])}catch(ge){console.error("[ThemeContext] ❌ Failed to save theme to server:",{error:ge,targetTenantId:G,mode:R.mode,accentColorKey:R.accentColorKey,localStorage_currentTenantId:localStorage.getItem("currentTenantId"),localStorage_currentTenantSlug:localStorage.getItem("currentTenantSlug")})}finally{o(!1)}},[m]),w=a.useCallback((R,B=void 0)=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{b(R,B)},1e3)},[b]);a.useLayoutEffect(()=>{Kn(s)},[s]),a.useEffect(()=>{const R={mode:s.mode,borderRadius:s.borderRadius,accentColorKey:s.accentColorKey,itemPaletteKey:s.itemPaletteKey};localStorage.setItem(fr,JSON.stringify(R)),!N.current&&!y.current&&w(s,d),y.current=!1},[s,w,d]),a.useEffect(()=>()=>{f.current&&clearTimeout(f.current)},[]);const g=a.useCallback(async R=>{const B=localStorage.getItem("user"),J=localStorage.getItem("currentTenantSlug");if(!B)return;const G=R==="global";if(!(!G&&!J))try{o(!0);const Y=G?await we.preferences.getGlobal():await we.preferences.get();i(Y.scope);const ge=Pt(Y);y.current=!0,r(ge),h.current=!0,Y.language&&Y.language!==p.language&&(await hs(Y.language),document.documentElement.lang=Y.language)}catch(Y){console.error("[ThemeContext] Failed to load theme from server:",Y)}finally{o(!1)}},[p]),v=a.useCallback(async()=>{const R=localStorage.getItem("user"),B=localStorage.getItem("currentTenantSlug");if(!(!R||!B))try{o(!0);const J=await we.preferences.applyToTenant();i(J.scope)}catch(J){throw console.error("[ThemeContext] Failed to create tenant-specific preferences:",J),J}finally{o(!1)}},[]),j=a.useCallback(async()=>{const R=localStorage.getItem("user"),B=localStorage.getItem("currentTenantSlug");if(!(!R||!B))try{o(!0);const J=await we.preferences.deleteTenantOverride();i(J.scope);const G=Pt(J);y.current=!0,r(G)}catch(J){throw console.error("[ThemeContext] Failed to delete tenant-specific preferences:",J),J}finally{o(!1)}},[]),L=a.useCallback(async()=>{if(localStorage.getItem("user"))try{const B=await we.preferences.getThemeOverrides();x(B)}catch(B){console.error("[ThemeContext] Failed to load tenant overrides:",B)}},[]),$=a.useCallback(async(R,B=!1)=>{if(f.current&&(clearTimeout(f.current),f.current=null),N.current=!0,h.current=!0,y.current=!0,u(R),B){N.current=!1;return}if(!localStorage.getItem("user")){N.current=!1;return}try{if(o(!0),R===null){const G=await we.preferences.getGlobal();i(G.scope);const Y=Pt(G);y.current=!0,r(Y)}else{const G=await we.preferences.getForTenant(R);i(G.scope);const Y=Pt(G);y.current=!0,r(Y)}}catch(G){console.error("[ThemeContext] Failed to load preferences for tenant:",G)}finally{o(!1),N.current=!1}},[]),k=a.useCallback(()=>{r(R=>({...R,mode:R.mode==="light"?"dark":"light",colors:{light:ht(R.accentColorKey),dark:gt(R.accentColorKey)}}))},[]),P=a.useCallback(R=>{r(B=>({...B,mode:R}))},[]),A=a.useCallback((R,B)=>{r(J=>({...J,borderRadius:{...J.borderRadius,[R]:B}}))},[]),D=a.useCallback(R=>{qe[R]&&r(B=>({...B,accentColorKey:R,colors:{light:ht(R),dark:gt(R)}}))},[]),U=a.useCallback(R=>{pt[R]&&r(B=>({...B,itemPaletteKey:R}))},[]),C=a.useCallback(R=>{r(B=>{const J=R.accentColorKey||B.accentColorKey;return{...B,...R,borderRadius:{...B.borderRadius,...R.borderRadius},accentColorKey:J,itemPaletteKey:R.itemPaletteKey||B.itemPaletteKey,colors:{light:ht(J),dark:gt(J)}}})},[]),M=a.useCallback(()=>{r(Nt)},[]),X=a.useCallback(R=>Je[s.borderRadius[R]],[s.borderRadius]);return e.jsx(Nr.Provider,{value:{config:s,mode:s.mode,toggleMode:k,setMode:P,setBorderRadius:A,setAccentColor:D,setItemPalette:U,applyPreset:C,resetToDefault:M,getBorderRadius:X,loadFromServer:g,isSyncing:n,scopeInfo:c,applyToTenant:v,resetToGlobal:j,selectedThemeTenant:d,setSelectedThemeTenant:$,tenantOverrides:m,loadTenantOverrides:L},children:t})}function wt(){const t=a.useContext(Nr);if(t===void 0)throw new Error("useTheme must be used within a ThemeProvider");return t}let vt=null,lt=null;const Gn={async getFeatureConfig(t){return vt||lt||(lt=(async()=>{try{return vt=(await us.get("/api/config/features",{timeout:1e4,signal:t,headers:{"Content-Type":"application/json"}})).data,vt}finally{lt=null}})(),lt)},clearCache(){vt=null,lt=null}},Sr=a.createContext(void 0);function Hn({children:t}){const[s,r]=a.useState(null),[n,o]=a.useState(!0);a.useEffect(()=>{const i=new AbortController;return Gn.getFeatureConfig(i.signal).then(d=>{i.signal.aborted||r(d)}).catch(d=>{d.name==="CanceledError"||i.signal.aborted||(console.error("Failed to load feature config:",d),r({multiTenantEnabled:!0,enableB2B:!0,enableB2C:!0,useUrlRouting:!0}))}).finally(()=>{i.signal.aborted||o(!1)}),()=>i.abort()},[]);const c={config:s,isLoading:n,isMultiTenant:!0,isHybridMode:s?.multiTenantEnabled===!0&&s?.enableB2B===!1&&s?.enableB2C===!0,enableB2B:s?.enableB2B??!0,enableB2C:s?.enableB2C??!0,useUrlRouting:s?.useUrlRouting??!0};return e.jsx(Sr.Provider,{value:c,children:t})}function Ut(){const t=a.useContext(Sr);if(!t)throw new Error("useFeatureConfig must be used within FeatureConfigProvider");return t}const Cr="*";function qt(t,s){const r=t.toLowerCase(),n=s.toLowerCase();if(r==="*"||r===n)return!0;if(r.endsWith(".*")){const o=r.slice(0,-2);return n.startsWith(o+".")||n===o}return!1}function kr(t,s){if(t.includes(s))return!0;for(const r of t)if(qt(r,s))return!0;return!1}function $t(t){return t.includes(Cr)}function gs(t,s){if(!s||$t(t))return!0;const r=s.toLowerCase(),n=r+".";for(const o of t){const c=o.toLowerCase();if(c==="*"||c===r||c.startsWith(n))return!0;if(c.endsWith(".*")){const i=c.slice(0,-1);if(r.startsWith(i)||n.startsWith(i))return!0}}return!1}const fs=a.createContext(void 0),ct="user";function Pr({children:t}){const[s,r]=a.useState(()=>{if(typeof window<"u"){const x=localStorage.getItem(ct);if(x)try{return JSON.parse(x)}catch{return null}}return null}),[n,o]=a.useState(!0),c=a.useCallback((x,p)=>{localStorage.setItem(ct,JSON.stringify(p)),r(p)},[]),i=a.useCallback(async()=>{try{await I.post("/api/auth/logout")}catch{}localStorage.removeItem(ct),r(null),window.location.href="/login"},[]),d=a.useCallback(x=>s?kr(s.permissions,x):!1,[s]),u=a.useCallback(async()=>{try{const x=await I.get("/api/auth/me");r(x),localStorage.setItem(ct,JSON.stringify(x))}catch(x){console.error("Failed to refresh permissions:",x)}},[]),m=a.useRef(!1);return a.useEffect(()=>{m.current?o(!1):(m.current=!0,I.get("/api/auth/me").then(x=>{r(x),localStorage.setItem(ct,JSON.stringify(x))}).catch(()=>{localStorage.removeItem(ct),r(null)}).finally(()=>o(!1)))},[]),e.jsx(fs.Provider,{value:{user:s,isAuthenticated:!!s,isLoading:n,login:c,logout:i,hasPermission:d,refreshPermissions:u},children:t})}function Re(){const t=a.useContext(fs);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}function Vn(){return a.useContext(fs)??null}function Ar(t){return t.includes("*")}function Wn(t,s,r){if(!t||t.length===0)return!1;for(const n of t)if((n.applicationCode.toLowerCase()===s.toLowerCase()||n.applicationCode==="*")&&(!r||n.modules.some(o=>o.moduleCode.toLowerCase()===r.toLowerCase())))return!0;return!1}function Tr(t,s){if(!t)return;const r=Object.keys(t).find(n=>n.toLowerCase()===s.toLowerCase());return r!==void 0?t[r]:void 0}function Xn(t,s,r){const n=Tr(t,s);return n===void 0||r<=n}const Rr=a.createContext(void 0);function Er({children:t}){const[s,r]=a.useState(null),[n,o]=a.useState(null),[c,i]=a.useState(!0),[d,u]=a.useState(null),m=a.useRef(null),x=a.useCallback(async g=>{try{i(!0),u(null);const[v,j]=await Promise.all([I.get("/api/administration/license",{signal:g}),I.get("/api/administration/license/usage",{signal:g}).catch(()=>null)]);g?.aborted||(r(v),o(j))}catch(v){if(v instanceof Error&&v.name==="CanceledError"||g?.aborted)return;u(v instanceof Error?v.message:"Failed to load license info"),console.error("Failed to fetch license:",v)}finally{g?.aborted||i(!1)}},[]);a.useEffect(()=>{m.current?.abort();const g=new AbortController;m.current=g,x(g.signal);const v=()=>{g.signal.aborted||x(g.signal)};return window.addEventListener("license:refresh",v),()=>{window.removeEventListener("license:refresh",v),g.abort()}},[x]);const p=a.useCallback(g=>s?Ar(s.enabledFeatures)?!0:s.enabledFeatures.some(v=>v.toLowerCase()===g.toLowerCase()):!1,[s]),f=a.useCallback((g,v)=>s?s.permissionScopes&&s.permissionScopes.length>0?Wn(s.permissionScopes,g,v):v?p(v):!0:!1,[s,p]),y=a.useCallback(g=>s?s.featureFlags&&s.featureFlags.length>0?s.featureFlags.some(v=>v.toLowerCase()===g.toLowerCase()):p(g):!1,[s,p]),h=a.useCallback(g=>{if(s)return Tr(s.limits?.custom,g)},[s]),N=a.useCallback((g,v)=>s?Xn(s.limits?.custom,g,v):!0,[s]),b=a.useCallback(async()=>{m.current?.abort();const g=new AbortController;m.current=g,await x(g.signal)},[x]),w=a.useCallback(async g=>{try{const v=await I.post("/api/administration/license/activate",{licenseKey:g});return v.success?(await b(),{success:!0}):{success:!1,error:v.errorMessage||"Activation failed"}}catch(v){return{success:!1,error:v instanceof Error?v.message:"Activation failed"}}},[b]);return e.jsx(Rr.Provider,{value:{license:s,usage:n,isLoading:c,error:d,isFeatureEnabled:p,hasModule:f,hasFeatureFlag:y,getLimit:h,isWithinLimit:N,isReadOnlyMode:s?.isReadOnlyMode??!1,isServerDowntimeBlocked:s?.isServerDowntimeBlocked??!1,isHalted:s?.isHalted??!1,haltReason:s?.haltReason,haltedAt:s?.haltedAt,refreshLicense:b,activateLicense:w},children:t})}function Be(){const t=a.useContext(Rr);if(t===void 0)throw new Error("useLicense must be used within a LicenseProvider");return t}const Ir=a.createContext(void 0),He="currentTenantId",Ve="currentTenantSlug",ze="isGlobalView";function Yn({children:t}){const{isAuthenticated:s,user:r,refreshPermissions:n}=Re(),{isLoading:o}=Ut(),[c,i]=a.useState(null),[d,u]=a.useState([]),[m,x]=a.useState(!0),[p,f]=a.useState(null),[y,h]=a.useState(()=>localStorage.getItem(ze)==="true"),N=a.useRef(!1),b=a.useRef(""),w=d.filter(C=>C.type==="Business"),g=d.find(C=>C.type==="Personal")||null,v=a.useCallback((C,M)=>{if(u(C),C.length===0){i(null),h(!1),localStorage.removeItem(He),localStorage.removeItem(Ve),localStorage.removeItem(ze),x(!1);return}const X=localStorage.getItem(He),R=X?C.find(Y=>Y.id===X):null;if(R?.status==="Active"){i(R),h(!1),localStorage.setItem(He,R.id),localStorage.setItem(Ve,R.slug),localStorage.removeItem(ze),x(!1);return}if(localStorage.getItem(ze)==="true"){h(!0),i(null),x(!1);return}const J=C.find(Y=>Y.isDefault&&Y.status==="Active");if(J){i(J),h(!1),localStorage.setItem(He,J.id),localStorage.setItem(Ve,J.slug),localStorage.removeItem(ze),x(!1);return}if(M){h(!0),i(null),localStorage.setItem(ze,"true"),x(!1);return}const G=C.find(Y=>Y.status==="Active");i(G||null),G&&(localStorage.setItem(He,G.id),localStorage.setItem(Ve,G.slug)),x(!1)},[]),j=a.useCallback(async C=>{const M=d.find(X=>X.id===C);if(!M)throw new Error("Tenant not found");if(M.status!=="Active")throw new Error("Cannot switch to inactive tenant");h(!1),localStorage.removeItem(ze),i(M),localStorage.setItem(He,C),localStorage.setItem(Ve,M.slug),await n()},[d,n]),L=a.useCallback(async()=>{h(!0),localStorage.setItem(ze,"true"),i(null),localStorage.removeItem(He),localStorage.removeItem(Ve),await n()},[n]),$=a.useCallback(async()=>{h(!1),localStorage.removeItem(ze);const C=d.find(R=>R.isDefault&&R.status==="Active"),M=d.find(R=>R.status==="Active"),X=C||M||null;X&&(i(X),localStorage.setItem(He,X.id),localStorage.setItem(Ve,X.slug)),await n()},[d,n]),k=a.useCallback(async C=>{try{await we.myTenants.setDefault(C),u(M=>M.map(R=>({...R,isDefault:R.id===C}))),await j(C)}catch(M){throw console.error("[TenantContext] Failed to set default tenant:",M),M}},[j]),P=a.useCallback(async()=>{try{await we.myTenants.clearDefault(),u(C=>C.map(M=>({...M,isDefault:!1}))),await L()}catch(C){throw console.error("[TenantContext] Failed to clear default tenant:",C),C}},[L]),A=a.useCallback(async()=>{x(!0),f(null);try{await n()}catch(C){console.error("Failed to refresh tenants:",C),f("Failed to refresh tenants")}finally{x(!1)}},[n]);a.useEffect(()=>{if(!s||!r){N.current&&(u([]),i(null),x(!1),N.current=!1,b.current="");return}const C=r.tenants||[],M=C.map(X=>`${X.id}:${X.status}:${X.isDefault}`).sort((X,R)=>X.localeCompare(R)).join(",");if(!N.current||M!==b.current){N.current=!0,b.current=M;const X=$t(r.permissions||[]);v(C,X),localStorage.getItem(Ve)&&n().catch(B=>console.error("[TenantContext] Failed to refresh permissions after tenant init:",B))}},[s,r,v,n]),a.useEffect(()=>{s||(i(null),u([]),h(!1),localStorage.removeItem(He),localStorage.removeItem(Ve),localStorage.removeItem(ze))},[s]);const D=r?$t(r.permissions||[]):!1,U={currentTenant:c,userTenants:d,b2bTenants:w,personalTenant:g,isLoading:m||o,error:p,switchTenant:j,setDefaultTenant:k,clearDefaultTenant:P,refreshTenants:A,hasMultipleTenants:d.filter(C=>C.status==="Active").length>1,isCurrentTenantOwner:c?.isOwner??!1,hasGlobalRoles:D,isGlobalView:y,enterGlobalView:L,exitGlobalView:$};return e.jsx(Ir.Provider,{value:U,children:t})}function De(){const t=a.useContext(Ir);if(t===void 0)throw new Error("useTenant must be used within a TenantProvider");return t}const At=5,Lr=a.createContext(null);function $r({children:t}){const{i18n:s}=re.useTranslation(),{isAuthenticated:r}=Re(),{currentTenant:n,isLoading:o}=De(),[c,i]=a.useState([]),[d,u]=a.useState(!1),[m,x]=a.useState(null),[p,f]=a.useState(!1),y=a.useCallback(()=>{f(!0)},[]),h=a.useCallback(()=>{f(!1)},[]),N=a.useCallback(async()=>{try{u(!0),x(null);const P=(await I.get("/api/navigation/module-favorites")).map(A=>({id:A.id,code:A.code,label:A.label,icon:A.icon||"Star",route:A.route||"",applicationId:A.applicationId,applicationCode:A.applicationCode,applicationLabel:A.applicationLabel,displayOrder:A.displayOrder}));i(P)}catch(k){console.error("Failed to load favorite modules:",k),x("Erreur lors du chargement des favoris"),i([])}finally{u(!1)}},[]);a.useEffect(()=>{r&&!o?N():r||(i([]),x(null))},[r,o,n,N]),a.useEffect(()=>{const k=()=>{r&&!o&&N()};return s.on("languageChanged",k),()=>{s.off("languageChanged",k)}},[s,r,o,N]);const b=a.useCallback(async k=>{if(c.length>=At||c.some(P=>P.id===k.id))return!1;try{return x(null),await I.post(`/api/navigation/module-favorites/${k.id}`),i(P=>[...P,{...k,displayOrder:P.length+1}]),!0}catch(P){return console.error("Failed to add favorite module:",P),await N(),!1}},[c,N]),w=a.useCallback(async k=>{try{return x(null),await I.delete(`/api/navigation/module-favorites/${k}`),i(P=>P.filter(A=>A.id!==k)),!0}catch(P){return console.error("Failed to remove favorite module:",P),await N(),!1}},[N]),g=a.useCallback(k=>c.some(P=>P.id===k),[c]),v=a.useCallback(async k=>g(k.id)?await w(k.id):await b(k),[g,w,b]),j=a.useCallback(async k=>{const P=k.slice(0,At),A=P.map(U=>U.id),D=[...c];i(P.map((U,C)=>({...U,displayOrder:C+1})));try{return x(null),await I.put("/api/navigation/module-favorites/reorder",A),!0}catch(U){return console.error("Failed to reorder favorite modules:",U),i(D),!1}},[c]),L=c.length<At;return e.jsx(Lr.Provider,{value:{favorites:c,loading:d,error:m,addFavorite:b,removeFavorite:w,toggleFavorite:v,isFavorite:g,reorderFavorites:j,canAddMore:L,maxFavorites:At,reload:N,expandFavorites:p,triggerExpand:y,clearExpand:h,requiresTenant:!1},children:t})}function Ge(){const t=a.useContext(Lr);if(!t)throw new Error("useFavorites must be used within a FavoritesProvider");return t}const Dr="smartstack-sidebar-collapsed",Mr=a.createContext(void 0);function Jn(){if(typeof window>"u")return!1;try{return localStorage.getItem(Dr)==="true"}catch{return!1}}function Or({children:t}){const[s,r]=a.useState(Jn);a.useEffect(()=>{localStorage.setItem(Dr,String(s))},[s]);const n=a.useCallback(()=>{r(i=>!i)},[]),o=a.useCallback(i=>{r(i)},[]),c=s?64:256;return e.jsx(Mr.Provider,{value:{isCollapsed:s,toggleCollapsed:n,setCollapsed:o,sidebarWidth:c},children:t})}function Bt(){const t=a.useContext(Mr);if(t===void 0)throw new Error("useSidebar must be used within a SidebarProvider");return t}const Fr=["login","callback","logout","onboarding","system","applications","notifications"],_r=a.createContext(void 0);function Qn(t){let s=t.split("/").filter(Boolean);return s.length>=2&&s[0]==="t"&&(s=s.slice(2)),s.length===0?{app:null,module:null}:Fr.includes(s[0])?{app:null,module:null}:{app:s[0]||null,module:s[1]||null}}function bs({children:t}){const s=S.useLocation(),{i18n:r}=re.useTranslation(),{currentTenant:n,isLoading:o,isGlobalView:c}=De(),[i,d]=a.useState(null),[u,m]=a.useState([]),[x,p]=a.useState(!0),f=a.useRef(!1),y=a.useRef(void 0),h=a.useRef(0),N=c?"global":n?.id??"none";f.current&&N!==y.current&&!x&&p(!0);const{app:b,module:w}=Qn(s.pathname),g=a.useCallback(async()=>{try{const C=await I.get("/api/navigation/menu");d(C)}catch(C){console.error("Failed to fetch menu:",C),d({applications:[]})}},[]),v=a.useCallback(async()=>{try{const C=await I.get("/api/navigation/favorites");m(C)}catch(C){console.error("Failed to fetch favorites:",C)}},[]),j=a.useCallback(async()=>{const C=++h.current;if(p(!0),await g(),C===h.current){if(n){if(await v(),C!==h.current)return}else m([]);p(!1)}},[g,v,n]);a.useEffect(()=>{const C=localStorage.getItem("user"),M=c?"global":n?.id??"none";if(!(!C||o)){if(!f.current){f.current=!0,y.current=M,j();return}M!==y.current&&(y.current=M,j())}},[n?.id,c,o]),a.useEffect(()=>{const C=()=>{localStorage.getItem("user")&&j()};return r.on("languageChanged",C),()=>{r.off("languageChanged",C)}},[r,j]);const L=a.useCallback(C=>C.startsWith("core_")?C.slice(5):C.startsWith("ext_")?C.slice(4):C,[]),$=a.useCallback((C,M)=>C&&C.split("/").filter(Boolean)[M]||null,[]),k=a.useCallback(()=>i?.applications.find(C=>$(C.route,0)===b||L(C.code)===b),[i,b,$,L]),P=a.useCallback(()=>k()?.modules.find(M=>$(M.route,1)===w||L(M.code)===w),[k,w,$,L]),A=a.useCallback(C=>i?.applications.filter(M=>M.zone===C)||[],[i]),D=a.useCallback(C=>u.some(M=>M.id===C),[u]),U=a.useCallback(async C=>{if(n)try{D(C)?(await I.delete(`/api/navigation/favorites/${C}`),m(M=>M.filter(X=>X.id!==C))):(await I.post(`/api/navigation/favorites/${C}`,{}),await v())}catch(M){console.error("Failed to toggle favorite:",M)}},[n,D,v]);return e.jsx(_r.Provider,{value:{menu:i,favorites:u,currentAppCode:b,currentModuleCode:w,isLoading:x,getCurrentApplication:k,getCurrentModule:P,getApplicationsByZone:A,getApplicationsForContext:A,toggleFavorite:U,isFavorite:D,refreshMenu:j},children:t})}function Ae(){const t=a.useContext(_r);if(t===void 0)throw new Error("useNavigation must be used within a NavigationProvider");return t}const Ur=a.createContext(null);function qr({children:t}){const{isAuthenticated:s,refreshPermissions:r}=Re(),{refreshLicense:n}=Be(),{refreshMenu:o}=Ae(),c=a.useRef(null),[i,d]=a.useState(oe.HubConnectionState.Disconnected),u=a.useRef(new Set),m=a.useRef(new Set),x=a.useRef(!1),p=a.useCallback(async()=>{if(!x.current){x.current=!0;try{await Promise.all([r(),o(),n()])}catch(g){console.error("[SignalR] Failed to refresh permissions:",g)}finally{x.current=!1}}},[r,o,n]),f=a.useCallback(async()=>{try{await Promise.all([n(),o()])}catch(g){console.error("[SignalR] Failed to refresh license:",g)}},[n,o]),y=a.useCallback(async()=>{if(s&&!(c.current?.state===oe.HubConnectionState.Connected||c.current?.state===oe.HubConnectionState.Connecting))try{const g=new oe.HubConnectionBuilder().withUrl("/hubs/notifications").withAutomaticReconnect({nextRetryDelayInMilliseconds:v=>v.previousRetryCount===0?0:v.previousRetryCount===1?2e3:v.previousRetryCount===2?1e4:v.previousRetryCount<5?3e4:null}).configureLogging(oe.LogLevel.Warning).build();g.on("ReceiveNotification",v=>{u.current.forEach(j=>j(v))}),g.on("UnreadCountUpdate",v=>{m.current.forEach(j=>j(v))}),g.on("PermissionsChanged",p),g.on("LicenseChanged",f),g.onreconnecting(()=>{d(oe.HubConnectionState.Reconnecting)}),g.onreconnected(()=>{d(oe.HubConnectionState.Connected)}),g.onclose(()=>{d(oe.HubConnectionState.Disconnected)}),await g.start(),c.current=g,d(oe.HubConnectionState.Connected)}catch(g){console.error("[SignalR] Failed to connect:",g),d(oe.HubConnectionState.Disconnected)}},[s,p,f]),h=a.useCallback(async()=>{if(c.current)try{await c.current.stop(),c.current=null,d(oe.HubConnectionState.Disconnected)}catch(g){console.error("[SignalR] Failed to disconnect:",g)}},[]);a.useEffect(()=>(s?y():h(),()=>{h()}),[s,y,h]);const N=a.useCallback(g=>(u.current.add(g),()=>{u.current.delete(g)}),[]),b=a.useCallback(g=>(m.current.add(g),()=>{m.current.delete(g)}),[]),w={isConnected:i===oe.HubConnectionState.Connected,connectionState:i,onNotification:N,onUnreadCountUpdate:b};return e.jsx(Ur.Provider,{value:w,children:t})}function Br(){const t=a.useContext(Ur);if(!t)throw new Error("useSignalRContext must be used within a SignalRProvider");return t}const Dt={register:async t=>I.post("/api/auth/register",t),confirmEmail:async t=>I.post("/api/auth/confirm-email",{token:t}),resendConfirmation:async t=>I.post("/api/auth/resend-confirmation",{email:t}),forgotPassword:async t=>I.post("/api/auth/forgot-password",{email:t}),resetPassword:async(t,s)=>I.post("/api/auth/reset-password",{token:t,newPassword:s}),login:async(t,s)=>await I.post("/api/auth/login",{email:t,password:s}),logout:async()=>{try{await I.post("/api/auth/logout")}finally{localStorage.removeItem("user")}},changePassword:async(t,s)=>I.post("/api/auth/change-password",{currentPassword:t,newPassword:s}),refreshSession:async()=>await I.post("/api/auth/refresh"),getSessionInfo:async t=>I.get("/api/auth/session-info",{signal:t?.signal})};function zr(t={}){const{checkIntervalMs:s=6e4,onSessionExpired:r,onWarningThreshold:n,enabled:o=!0}=t,[c,i]=a.useState({isActive:!0,timeRemainingSeconds:0,isWarning:!1,sessionInfo:null}),[d,u]=a.useState(!1),m=a.useRef(!1),x=a.useRef(null),p=a.useRef(null),f=a.useCallback(async h=>{if(!o)return;if(!localStorage.getItem("user")){i(b=>({...b,isActive:!1}));return}try{const b=await Dt.getSessionInfo({signal:h});if(h?.aborted)return;const w=Math.min(b.timeUntilIdleExpirySeconds,b.timeUntilAbsoluteExpirySeconds);i({isActive:!0,timeRemainingSeconds:w,isWarning:b.isWarningThreshold,sessionInfo:b}),b.isWarningThreshold&&!m.current&&(m.current=!0,n?.()),b.isWarningThreshold||(m.current=!1)}catch(b){if(b instanceof Error&&b.name==="CanceledError"||h?.aborted)return;i(w=>({...w,isActive:!1})),r?.()}},[o,r,n]),y=a.useCallback(async()=>{if(d)return!1;u(!0);try{return await Dt.refreshSession(),m.current=!1,await f(),!0}catch{return i(h=>({...h,isActive:!1})),!1}finally{u(!1)}},[d,f]);return a.useEffect(()=>{if(!o)return;p.current?.abort();const h=new AbortController;return p.current=h,f(h.signal),x.current=setInterval(()=>f(),s),()=>{h.abort(),x.current&&clearInterval(x.current)}},[o,s,f]),a.useEffect(()=>{if(!o)return;const h=()=>{c.isWarning&&f()},N=["mousedown","keydown","touchstart","scroll"];return N.forEach(b=>{window.addEventListener(b,h,{passive:!0})}),()=>{N.forEach(b=>{window.removeEventListener(b,h)})}},[o,c.isWarning,f]),{...c,isRefreshing:d,refreshSession:y,checkSession:f}}function Zn(t){if(t<=0)return"0:00";const s=Math.floor(t/60),r=t%60;if(s>=60){const n=Math.floor(s/60),o=s%60;return`${n}h ${o}min`}return`${s}:${r.toString().padStart(2,"0")}`}function Kr({isOpen:t,timeRemainingSeconds:s,onExtendSession:r,onLogout:n}){const{t:o}=re.useTranslation("common"),[c,i]=a.useState(!1),[d,u]=a.useState(s);a.useEffect(()=>{u(s)},[s]),a.useEffect(()=>{if(!t||d<=0)return;const p=setInterval(()=>{u(f=>f<=1?(n(),0):f-1)},1e3);return()=>clearInterval(p)},[t,d,n]);const m=async()=>{i(!0);try{await r()||n()}finally{i(!1)}};if(!t)return null;const x=Math.max(0,Math.min(100,d/300*100));return e.jsx("div",{className:"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm",children:e.jsxs("div",{className:"relative w-full max-w-md bg-[var(--bg-card)] rounded-2xl shadow-2xl border border-amber-500/30 overflow-hidden animate-in fade-in zoom-in duration-200",children:[e.jsx("div",{className:"absolute top-0 left-0 h-1 bg-amber-500/30 w-full",children:e.jsx("div",{className:"h-full bg-gradient-to-r from-amber-500 to-orange-500 transition-all duration-1000 ease-linear",style:{width:`${x}%`}})}),e.jsxs("div",{className:"p-6 pt-8",children:[e.jsxs("div",{className:"flex flex-col items-center text-center mb-6",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-amber-500/20 flex items-center justify-center mb-4",children:e.jsx(l.Clock,{className:"w-8 h-8 text-amber-500"})}),e.jsx("h2",{className:"text-xl font-semibold text-[var(--text-primary)] mb-2",children:o("session.warningTitle","Session Expiring")}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-4",children:o("session.warningMessage","Your session will expire due to inactivity.")}),e.jsx("div",{className:"text-4xl font-mono font-bold text-amber-500 tabular-nums",children:Zn(d)}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-2",children:o("session.remainingTime","remaining")})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs("button",{onClick:n,className:"flex-1 flex items-center justify-center gap-2 px-6 py-3 rounded-xl border border-[var(--border-color)] text-[var(--text-secondary)] hover:bg-[var(--bg-hover)] transition-all font-medium",children:[e.jsx(l.LogOut,{className:"w-4 h-4"}),o("session.logout","Logout")]}),e.jsxs("button",{onClick:m,disabled:c,className:"flex-1 flex items-center justify-center gap-2 px-6 py-3 rounded-xl font-medium transition-all bg-gradient-to-r from-amber-500 to-orange-500 text-white hover:from-amber-600 hover:to-orange-600 shadow-lg shadow-amber-500/30 disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx(l.RefreshCw,{className:`w-4 h-4 ${c?"animate-spin":""}`}),c?o("session.extending","Extending..."):o("session.extend","Continue Session")]})]})]})]})})}const eo=a.createContext(void 0);function Gr({children:t}){const{isAuthenticated:s,logout:r}=Re(),n=a.useCallback(()=>{localStorage.removeItem("user"),window.location.href="/login?reason=session_expired"},[]),{isActive:o,timeRemainingSeconds:c,isWarning:i,refreshSession:d}=zr({enabled:s,checkIntervalMs:3e4,onSessionExpired:n}),u=a.useCallback(async()=>{try{await Dt.logout()}finally{r()}},[r]),m=a.useCallback(async()=>await d(),[d]);return e.jsxs(eo.Provider,{value:{isSessionActive:o,timeRemainingSeconds:c,isWarning:i,refreshSession:d},children:[t,e.jsx(Kr,{isOpen:i&&s,timeRemainingSeconds:c,onExtendSession:m,onLogout:u})]})}const to=150;function so({children:t}){const s=Vn(),r=s?.isAuthenticated??!1,n=s?.isLoading??!0,{currentTenant:o,isLoading:c,isGlobalView:i}=De(),{setSelectedThemeTenant:d,loadFromServer:u}=wt(),m=a.useRef(null),x=a.useRef(!1),p=a.useRef(null),f=a.useRef(null),y=a.useCallback(()=>{p.current&&(clearTimeout(p.current),p.current=null)},[]),h=a.useCallback(()=>m.current==="global"?!1:(y(),f.current=null,m.current="global",x.current=!0,u("global"),d(null,!0),!0),[y,u,d]),N=a.useCallback((g,v)=>{f.current=g,p.current=setTimeout(()=>{f.current===g&&(m.current=g,x.current=!0,f.current=null,d(g,!1)),p.current=null},to)},[d]),b=a.useCallback(()=>{if(!o)return;const g=o.id!==m.current,v=f.current!==null&&f.current!==o.id;!g&&!v||(y(),g?N(o.id,o.slug):f.current=null)},[o,y,N]),w=a.useCallback(()=>{y(),m.current=null,f.current=null,x.current=!1},[y]);return a.useEffect(()=>{if(!r){w();return}if(!(n||c)){if(i&&!o){h();return}o&&b()}},[r,n,c,o,i,h,b,w]),a.useEffect(()=>()=>{y()},[y]),e.jsx(e.Fragment,{children:t})}function ro(t){const s=t.message.toLowerCase(),r=t.name.toLowerCase();return s.includes("network")||s.includes("fetch")||s.includes("failed to fetch")||s.includes("econnrefused")||s.includes("timeout")?"network":s.includes("401")||s.includes("403")||s.includes("unauthorized")||s.includes("forbidden")||s.includes("permission")?"permission":s.includes("404")||s.includes("not found")?"notFound":r.includes("validation")||s.includes("validation")||s.includes("invalid")?"validation":"technical"}function ao(){const t=Date.now().toString(36),s=Math.random().toString(36).substring(2,6);return`ERR-${t}-${s}`.toUpperCase()}const no={network:{icon:l.WifiOff,color:"text-orange-500",bgColor:"bg-orange-500/10"},permission:{icon:l.ShieldX,color:"text-red-500",bgColor:"bg-red-500/10"},notFound:{icon:l.FileWarning,color:"text-yellow-500",bgColor:"bg-yellow-500/10"},validation:{icon:l.AlertTriangle,color:"text-amber-500",bgColor:"bg-amber-500/10"},technical:{icon:l.Bug,color:"text-red-500",bgColor:"bg-red-500/10"}};function Hr({error:t,resetErrorBoundary:s}){const{t:r}=re.useTranslation("common"),[n,o]=a.useState(!1),[c]=a.useState(()=>ao()),i=ro(t),d=no[i],u=d.icon,m=()=>{window.history.length>2&&document.referrer?window.location.href=document.referrer:window.history.length>2?(window.history.back(),setTimeout(()=>window.location.reload(),50)):window.location.href="/"};return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-[var(--bg-primary)] p-4",children:e.jsx("div",{className:"max-w-lg w-full p-8 bg-[var(--bg-card)] border border-[var(--border-color)] rounded-2xl shadow-xl",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:`w-16 h-16 rounded-full ${d.bgColor} flex items-center justify-center mb-6`,children:e.jsx(u,{className:`w-8 h-8 ${d.color}`})}),e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)] mb-2",children:r(`errors.${i}.title`,{defaultValue:r("errors.technical.title")})}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-4",children:r(`errors.${i}.description`,{defaultValue:r("errors.technical.description")})}),e.jsxs("div",{className:"mb-6 px-3 py-1.5 bg-[var(--bg-tertiary)] rounded-lg border border-[var(--border-color)]",children:[e.jsxs("span",{className:"text-xs text-[var(--text-tertiary)]",children:[r("errors.errorId"),": "]}),e.jsx("span",{className:"text-xs font-mono text-[var(--text-secondary)]",children:c})]}),!1,e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full",children:[e.jsxs("button",{onClick:s,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--color-accent-600)] hover:bg-[var(--color-accent-700)] text-white font-medium transition-all",children:[e.jsx(l.RefreshCw,{className:"w-4 h-4"}),r("errors.retry")]}),e.jsxs("button",{onClick:m,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.ArrowLeft,{className:"w-4 h-4"}),r("errors.goBack")]}),e.jsxs("a",{href:"/",className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.Home,{className:"w-4 h-4"}),r("errors.home")]})]}),e.jsxs("p",{className:"mt-6 text-sm text-[var(--text-tertiary)]",children:[r("errors.persistsHelp")," ",e.jsx("a",{href:"mailto:support@atlashub.ch",className:"text-[var(--color-accent-500)] hover:underline",children:r("errors.contactSupport")})]})]})})})}function oo(t,s){Le.logCritical(t,"GlobalErrorBoundary",{componentStack:s.componentStack})}function io(){window.location.reload()}function Vr({children:t}){return e.jsx(hr.ErrorBoundary,{FallbackComponent:Hr,onError:oo,onReset:io,children:t})}const zt=a.createContext(null);function Wr(){const t=a.useContext(zt);if(!t)throw new Error("useSlotFill must be used within a SlotFillProvider");return t}function Xr({children:t,initialFills:s}){const r=a.useMemo(()=>{const o=new Map;return s&&Object.entries(s).forEach(([c,i])=>{const d=o.get(c)||[];Array.isArray(i)?o.set(c,[...d,...i]):o.set(c,[...d,i])}),o},[s]),n=a.useMemo(()=>({fills:r,registerFill:(o,c)=>{const i=r.get(o)||[];r.set(o,[...i,c])},unregisterFill:(o,c)=>{const i=r.get(o)||[];r.set(o,i.filter(d=>d!==c))},getSlotContent:o=>r.get(o)||[]}),[r]);return e.jsx(zt.Provider,{value:n,children:t})}function Yr({name:t,context:s={},children:r,fallback:n,wrapper:o}){const c=a.useContext(zt),i=a.useMemo(()=>c?.getSlotContent(t)||[],[c,t]),d=a.useMemo(()=>({slotName:t,context:s}),[t,s]),u=a.useMemo(()=>i.length===0?n||null:i.map((x,p)=>{const f=`${t}-${p}`;return e.jsx(a.Fragment,{children:Qr(x,d)},f)}),[i,t,d,n]),m=e.jsxs(e.Fragment,{children:[u,r]});return o?e.jsx(o,{children:m}):e.jsx(e.Fragment,{children:m})}function Jr({slot:t,children:s}){const{registerFill:r,unregisterFill:n}=Wr();return a.useMemo(()=>(r(t,s),()=>n(t,s)),[t,s,r,n]),null}function Qr(t,s){if(t==null)return null;if(Array.isArray(t))return e.jsx(e.Fragment,{children:t.map((r,n)=>e.jsx(a.Fragment,{children:Qr(r,s)},`slot-item-${n}`))});if(a.isValidElement(t))return t;if(typeof t=="function"){const r=t;return e.jsx(r,{...s})}return t}function lo(t){return(a.useContext(zt)?.getSlotContent(t)?.length||0)>0}function co(t){function s(n){return e.jsx(Yr,{...n,name:t})}s.displayName=`Slot(${t})`;function r({children:n}){return e.jsx(Jr,{slot:t,children:n})}return r.displayName=`Fill(${t})`,{Slot:s,Fill:r,slotName:t}}const Zr=a.createContext(null);function St(){const t=a.useContext(Zr);return t||{config:{},getPage:()=>{},getSlotContent:()=>{},getTableColumns:()=>[],getFormFields:()=>[],hasExtension:()=>!1}}function Kt(t){const{getPage:s}=St();return s(t)}function uo(t){const{getTableColumns:s}=St();return s(t)}function mo(t){const{getFormFields:s}=St();return s(t)}function xo(t){const{hasExtension:s}=St();return s(t)}function ea({config:t={},children:s}){const r=a.useMemo(()=>{const{pages:n={},slots:o={},tableColumns:c={},formFields:i={}}=t;return{config:t,getPage:d=>n[d],getSlotContent:d=>o[d],getTableColumns:d=>c[d]||[],getFormFields:d=>i[d]||[],hasExtension:d=>d in n||d in o||d in c||d in i}},[t]);return e.jsx(Zr.Provider,{value:r,children:e.jsx(Xr,{initialFills:t.slots,children:s})})}class po{pages=new Map;register(s,r,n=[]){this.pages.set(s,{key:s,defaultComponent:r,slots:n})}get(s){return this.pages.get(s)}resolve(s){return this.pages.get(s)?.defaultComponent}getAll(){return Array.from(this.pages.values())}has(s){return this.pages.has(s)}getSlots(s){return this.pages.get(s)?.slots||[]}keys(){return Array.from(this.pages.keys())}}const O=new po;function ho(t,s){function r(n){const o=Kt(t);return o?e.jsx(o,{...n}):e.jsx(s,{...n})}return r.displayName=`Overridable(${t})`,r}function go(t){const s=Kt(t),r=O.get(t);return s||r?.defaultComponent}function fo({pageKey:t,defaultComponent:s,params:r}){const n=Kt(t),o={pageKey:t,params:r};return n?e.jsx(n,{...o}):e.jsx(s,{...o})}const _={ADMIN_INDEX:"administration",ADMIN_DASHBOARD:"administration.dashboard",USERS_LIST:"administration.users.list",USERS_DETAIL:"administration.users.detail",USERS_DASHBOARD:"administration.users.dashboard",USERS_GROUPS:"administration.users.groups",USERS_GROUPS_DETAIL:"administration.users.groups.detail",USERS_REFERENCES:"administration.users.references",ROLES_LIST:"administration.permissions.roles",ROLES_DETAIL:"administration.permissions.roles.detail",PERMISSIONS_LIST:"administration.permissions.permissions",PERMISSIONS_DETAIL:"administration.permissions.permissions.detail",ASSIGNMENTS:"administration.permissions.assignments",APPLICATIONS_INDEX:"administration.applications",APPLICATIONS_DASHBOARD:"administration.applications.dashboard",APPLICATIONS_LIST:"administration.applications.list",APPLICATIONS_DETAIL:"administration.applications.detail",AI_DASHBOARD:"administration.ai.dashboard",AI_SETTINGS:"administration.ai.settings",AI_SKILLS_LIST:"administration.ai.skills",AI_SKILLS_DETAIL:"administration.ai.skills.detail",AI_SKILLS_CREATE:"administration.ai.skills.create",AI_SKILLS_EDIT:"administration.ai.skills.edit",AI_BLOCKS_LIST:"administration.ai.skills.blocks",AI_BLOCKS_DETAIL:"administration.ai.skills.blocks.detail",AI_BLOCKS_CREATE:"administration.ai.skills.blocks.create",AI_BLOCKS_EDIT:"administration.ai.skills.blocks.edit",AI_MONITORING:"administration.ai.monitoring",AI_AGENTS:"administration.ai.agents",AI_AGENTS_DETAIL:"administration.ai.agents.detail",AI_AGENTS_EDIT:"administration.ai.agents.edit",WORKFLOWS_LIST:"administration.workflows.list",WORKFLOWS_DETAIL:"administration.workflows.detail",WORKFLOWS_CREATE:"administration.workflows.create",WORKFLOWS_EDIT:"administration.workflows.edit",WORKFLOWS_TRIGGERS:"administration.workflows.triggers",WORKFLOWS_HISTORY:"administration.workflows.history",EMAIL_TEMPLATES_LIST:"administration.workflows.email-templates",EMAIL_TEMPLATES_DETAIL:"administration.workflows.email-templates.detail",EMAIL_TEMPLATES_CREATE:"administration.workflows.email-templates.create",EMAIL_TEMPLATES_EDIT:"administration.workflows.email-templates.edit",SMS_TEMPLATES_LIST:"administration.workflows.email-templates.sms",ENTRA_DASHBOARD:"administration.entra.dashboard",ENTRA_GROUPS:"administration.entra.groups",ENTRA_USERS:"administration.entra.users",ENTRA_CONFLICTS:"administration.entra.conflicts",ENTRA_SETTINGS:"administration.entra.settings",TENANTS_DASHBOARD:"administration.tenants.dashboard",TENANTS_LIST:"administration.tenants.list",TENANTS_DETAIL:"administration.tenants.detail",TENANTS_CREATE:"administration.tenants.create",TENANTS_SETTINGS:"administration.tenants.settings",TENANTS_TYPE_SETTINGS:"administration.tenants.type-settings",TENANTS_TEMPLATE:"administration.tenants.template",TENANTS_TEMPLATE_CREATE:"administration.tenants.template.create",TENANTS_TEMPLATE_DETAIL:"administration.tenants.template.detail",TENANTS_BUSINESS:"administration.tenants.list.enterprise",TENANTS_PERSONAL:"administration.tenants.list.personal",TENANTS_OTHER:"administration.tenants.list.other",TENANTS_ACCESS_REQUESTS:"administration.tenants.access-requests",ORGANISATIONS_LIST:"administration.tenants.organisations",ORGANISATIONS_CREATE:"administration.tenants.organisations.create",ORGANISATIONS_DETAIL:"administration.tenants.organisations.detail",SETTINGS:"administration.configuration.settings",SETTINGS_GENERAL:"administration.configuration.settings.general",SETTINGS_FILE_UPLOAD:"administration.configuration.settings.file-upload",SETTINGS_LEGAL_FILE:"administration.configuration.settings.legal-file",APPSETTINGS:"administration.configuration.appsettings",APPSETTINGS_INFRASTRUCTURE:"administration.configuration.appsettings.infrastructure",APPSETTINGS_AUTHENTICATION:"administration.configuration.appsettings.authentication",APPSETTINGS_LOGGING:"administration.configuration.appsettings.logging",APPSETTINGS_EMAIL:"administration.configuration.appsettings.email",APPSETTINGS_ENTRA:"administration.configuration.appsettings.entra",LICENSE:"administration.configuration.license",API_ACCOUNTS:"api.accounts",API_ACCOUNTS_LIST:"api.accounts.list",API_ACCOUNTS_CREATE:"api.accounts.create",API_ACCOUNTS_DETAIL:"api.accounts.detail",API_APIS:"api.apis",API_CATALOG:"api.apis.catalog",API_CATALOG_DETAIL:"api.apis.catalog.detail",SUPPORT_DASHBOARD:"support.tickets",TICKETS_LIST:"support.tickets.list",TICKETS_DETAIL:"support.tickets.detail",TICKETS_ESCALATION:"support.tickets.escalation",TICKETS_NEW:"support.tickets.new",MY_TICKETS_LIST:"support.my-tickets",MY_TICKETS_DETAIL:"support.my-tickets.detail",MY_TICKETS_CREATE:"support.my-tickets.create",SUPPORT_SLA:"support.admin.sla",SUPPORT_TEMPLATES:"support.admin.templates",SUPPORT_PERMISSIONS:"support.admin.permissions",SUPPORT_ASSIGNMENT:"support.assignment",SUPPORT_ASSIGNMENT_SKILLS:"support.assignment.skills",SUPPORT_ASSIGNMENT_WORKLOAD:"support.assignment.workload",MYSPACE_DASHBOARD:"myspace.dashboard",USER_PROFILE:"myspace.profile",USER_PREFERENCES:"myspace.preferences",MYSPACE_TENANTS:"myspace.tenants.workspaces",MYSPACE_ACCESS_REQUESTS:"myspace.tenants.access-requests",MYSPACE_PORTAL:"myspace.portal",NOTIFICATIONS:"notifications",APPLICATIONS_HUB:"applications"};O.register(_.ADMIN_INDEX,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsGridPage-CIfKiCND.js")).then(t=>({default:t.ApplicationsGridPage}))));O.register(_.ADMIN_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./DashboardPage-BZxjinar.js")).then(t=>({default:t.AdminDashboardPage}))));O.register(_.USERS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./UsersPage-1sLlq9QD.js")).then(t=>({default:t.UsersPage}))));O.register(_.USERS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./UserDetailPage-Dw5OHheZ.js")).then(t=>({default:t.UserDetailPage}))));O.register(_.USERS_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./DashboardPage-BZxjinar.js")).then(t=>({default:t.AdminDashboardPage}))));O.register(_.USERS_GROUPS,a.lazy(()=>Promise.resolve().then(()=>require("./UsersGroupsPage-c28vYHN9.js")).then(t=>({default:t.UsersGroupsPage}))));O.register(_.USERS_GROUPS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./GroupDetailPage-NJc2zCxC.js")).then(t=>({default:t.GroupDetailPage}))));O.register(_.USERS_REFERENCES,a.lazy(()=>Promise.resolve().then(()=>require("./ReferencesManagementPage-B5mcshG1.js")).then(t=>({default:t.ReferencesManagementPage}))));O.register(_.ROLES_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./RolesPage-Czj9LMkL.js")).then(t=>({default:t.RolesPage}))));O.register(_.ROLES_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./RoleDetailPage-CLVoFVF8.js")).then(t=>({default:t.RoleDetailPage}))));O.register(_.PERMISSIONS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./PermissionsPage-Kg0rduOM.js")).then(t=>({default:t.PermissionsPage}))));O.register(_.PERMISSIONS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./PermissionDetailPage-B8C7tWFP.js")).then(t=>({default:t.PermissionDetailPage}))));O.register(_.ASSIGNMENTS,a.lazy(()=>Promise.resolve().then(()=>require("./AssignmentsPage-RURdPvfZ.js")).then(t=>({default:t.AssignmentsPage}))));O.register(_.APPLICATIONS_INDEX,a.lazy(()=>Promise.resolve().then(()=>require("./NavigationAppsPage-Dyv767w8.js")).then(t=>({default:t.NavigationAppsPage}))));O.register(_.APPLICATIONS_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsDashboardPage-DslDyNzJ.js")).then(t=>({default:t.ApplicationsDashboardPage}))));O.register(_.APPLICATIONS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsListPage-D2B4PZ5n.js")).then(t=>({default:t.ApplicationsListPage}))));O.register(_.APPLICATIONS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationDetailPage-C2BSpEoW.js"))));O.register(_.AI_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiDashboardPage}))));O.register(_.AI_SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiSettingsPage}))));O.register(_.AI_SKILLS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiSkillsListPage}))));O.register(_.AI_SKILLS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiSkillsDetailPage}))));O.register(_.AI_SKILLS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiSkillsEditPage}))));O.register(_.AI_SKILLS_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiSkillsEditPage}))));O.register(_.AI_BLOCKS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiBlockDefinitionsListPage}))));O.register(_.AI_BLOCKS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiBlockDefinitionDetailPage}))));O.register(_.AI_BLOCKS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiBlockDefinitionEditPage}))));O.register(_.AI_BLOCKS_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiBlockDefinitionEditPage}))));O.register(_.AI_MONITORING,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiMonitoringPage}))));O.register(_.AI_AGENTS,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiAgentsPage}))));O.register(_.AI_AGENTS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiAgentDetailPage}))));O.register(_.AI_AGENTS_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-B727-QSU.js")).then(t=>({default:t.AiAgentEditPage}))));O.register(_.WORKFLOWS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.WorkflowsListPage}))));O.register(_.WORKFLOWS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.WorkflowDetailPage}))));O.register(_.WORKFLOWS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.WorkflowCreatePage}))));O.register(_.WORKFLOWS_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.WorkflowEditPage}))));O.register(_.WORKFLOWS_TRIGGERS,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.WorkflowsTriggersPage}))));O.register(_.WORKFLOWS_HISTORY,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.WorkflowHistoryPage}))));O.register(_.EMAIL_TEMPLATES_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.EmailTemplatesListPage}))));O.register(_.EMAIL_TEMPLATES_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.EmailTemplateDetailPage}))));O.register(_.EMAIL_TEMPLATES_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.EmailTemplateCreatePage}))));O.register(_.EMAIL_TEMPLATES_EDIT,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.EmailTemplateEditPage}))));O.register(_.SMS_TEMPLATES_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-D32ol7lq.js")).then(t=>({default:t.SmsTemplatesListPage}))));O.register(_.ENTRA_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./index-B9q3vx13.js")).then(t=>({default:t.EntraDashboardPage}))));O.register(_.ENTRA_GROUPS,a.lazy(()=>Promise.resolve().then(()=>require("./index-B9q3vx13.js")).then(t=>({default:t.EntraGroupsPage}))));O.register(_.ENTRA_USERS,a.lazy(()=>Promise.resolve().then(()=>require("./index-B9q3vx13.js")).then(t=>({default:t.EntraUsersPage}))));O.register(_.ENTRA_CONFLICTS,a.lazy(()=>Promise.resolve().then(()=>require("./index-B9q3vx13.js")).then(t=>({default:t.EntraConflictsPage}))));O.register(_.ENTRA_SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-B9q3vx13.js")).then(t=>({default:t.EntraSettingsPage}))));O.register(_.TENANTS_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantsDashboardPage}))));O.register(_.TENANTS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantsPage}))));O.register(_.TENANTS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantDetailPage}))));O.register(_.TENANTS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantCreatePage}))));O.register(_.TENANTS_SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantSettingsPage}))));O.register(_.TENANTS_TYPE_SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantTypeSettingsPage}))));O.register(_.TENANTS_TEMPLATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantsTemplatePage}))));O.register(_.TENANTS_TEMPLATE_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantTemplateCreatePage}))));O.register(_.TENANTS_TEMPLATE_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantTemplateDetailPage}))));O.register(_.TENANTS_BUSINESS,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantsBusinessPage}))));O.register(_.TENANTS_PERSONAL,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantsPersonalPage}))));O.register(_.TENANTS_OTHER,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantsOtherPage}))));O.register(_.TENANTS_ACCESS_REQUESTS,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.TenantAccessRequestsPage}))));O.register(_.ORGANISATIONS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.OrganisationsListPage}))));O.register(_.ORGANISATIONS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.OrganisationCreatePage}))));O.register(_.ORGANISATIONS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-JSjfMShT.js")).then(t=>({default:t.OrganisationDetailPage}))));O.register(_.SETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-Ca88RIuT.js")).then(t=>({default:t.SettingsPage}))));O.register(_.SETTINGS_GENERAL,a.lazy(()=>Promise.resolve().then(()=>require("./index-Ca88RIuT.js")).then(t=>({default:t.GeneralSettingsSection}))));O.register(_.SETTINGS_FILE_UPLOAD,a.lazy(()=>Promise.resolve().then(()=>require("./index-Ca88RIuT.js")).then(t=>({default:t.FileUploadSettingsSection}))));O.register(_.SETTINGS_LEGAL_FILE,a.lazy(()=>Promise.resolve().then(()=>require("./index-Ca88RIuT.js")).then(t=>({default:t.LegalFileSettingsSection}))));O.register(_.APPSETTINGS,a.lazy(()=>Promise.resolve().then(()=>require("./index-D7hmx9IX.js")).then(t=>({default:t.AppSettingsPage}))));O.register(_.APPSETTINGS_INFRASTRUCTURE,a.lazy(()=>Promise.resolve().then(()=>require("./index-D7hmx9IX.js")).then(t=>({default:t.InfrastructureSection}))));O.register(_.APPSETTINGS_AUTHENTICATION,a.lazy(()=>Promise.resolve().then(()=>require("./index-D7hmx9IX.js")).then(t=>({default:t.AuthenticationSection}))));O.register(_.APPSETTINGS_LOGGING,a.lazy(()=>Promise.resolve().then(()=>require("./index-D7hmx9IX.js")).then(t=>({default:t.LoggingSection}))));O.register(_.APPSETTINGS_EMAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-D7hmx9IX.js")).then(t=>({default:t.EmailSection}))));O.register(_.APPSETTINGS_ENTRA,a.lazy(()=>Promise.resolve().then(()=>require("./index-D7hmx9IX.js")).then(t=>({default:t.EntraSection}))));O.register(_.LICENSE,a.lazy(()=>Promise.resolve().then(()=>require("./index-CH0pTHy1.js")).then(t=>({default:t.LicenseManagementPage}))));O.register(_.API_ACCOUNTS,a.lazy(()=>Promise.resolve().then(()=>require("./index-CzYKE5fL.js")).then(t=>({default:t.ExternalAppsListPage}))));O.register(_.API_ACCOUNTS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./index-CzYKE5fL.js")).then(t=>({default:t.ExternalAppsListPage}))));O.register(_.API_ACCOUNTS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./index-CzYKE5fL.js")).then(t=>({default:t.ExternalAppCreatePage}))));O.register(_.API_ACCOUNTS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./index-CzYKE5fL.js")).then(t=>({default:t.ExternalAppDetailPage}))));O.register(_.API_APIS,a.lazy(()=>Promise.resolve().then(()=>require("./ApiCatalogPage-Bdm3HNGP.js")).then(t=>({default:t.ApiCatalogPage}))));O.register(_.API_CATALOG,a.lazy(()=>Promise.resolve().then(()=>require("./ApiCatalogPage-Bdm3HNGP.js")).then(t=>({default:t.ApiCatalogPage}))));O.register(_.API_CATALOG_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./ApiCatalogDetailPage-CYOt34Vy.js")).then(t=>({default:t.ApiCatalogDetailPage}))));O.register(_.SUPPORT_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./DashboardPage-Cq5adDjP.js")).then(t=>({default:t.DashboardPage}))));O.register(_.TICKETS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./TicketsPage-CSiinHME.js")).then(t=>({default:t.TicketsPage}))));O.register(_.TICKETS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./TicketDetailPage-BxOiOG22.js")).then(t=>({default:t.TicketDetailPage}))));O.register(_.TICKETS_ESCALATION,a.lazy(()=>Promise.resolve().then(()=>require("./EscalationConfigPage-DNAqMRxA.js")).then(t=>({default:t.EscalationConfigPage}))));O.register(_.TICKETS_NEW,a.lazy(()=>Promise.resolve().then(()=>require("./CreateSupportTicketPage-Dg1YW1eA.js")).then(t=>({default:t.CreateSupportTicketPage}))));O.register(_.MY_TICKETS_LIST,a.lazy(()=>Promise.resolve().then(()=>require("./MyTicketsPage-C3lEBFD9.js")).then(t=>({default:t.MyTicketsPage}))));O.register(_.MY_TICKETS_DETAIL,a.lazy(()=>Promise.resolve().then(()=>require("./UserTicketDetailPage-B4YkzzbR.js")).then(t=>({default:t.UserTicketDetailPage}))));O.register(_.MY_TICKETS_CREATE,a.lazy(()=>Promise.resolve().then(()=>require("./UserCreateTicketPage-B3TW1oV7.js")).then(t=>({default:t.UserCreateTicketPage}))));O.register(_.SUPPORT_SLA,a.lazy(()=>Promise.resolve().then(()=>require("./SlaConfigPage-ZRyAs8aY.js")).then(t=>({default:t.SlaConfigPage}))));O.register(_.SUPPORT_TEMPLATES,a.lazy(()=>Promise.resolve().then(()=>require("./TemplatesPage-CdwPLsHj.js")).then(t=>({default:t.TemplatesPage}))));O.register(_.SUPPORT_PERMISSIONS,a.lazy(()=>Promise.resolve().then(()=>require("./SupportPermissionsPage-DNd323OK.js")).then(t=>({default:t.SupportPermissionsPage}))));O.register(_.SUPPORT_ASSIGNMENT,a.lazy(()=>Promise.resolve().then(()=>require("./AssignmentRulesPage-Y7xv60NY.js")).then(t=>({default:t.AssignmentRulesPage}))));O.register(_.SUPPORT_ASSIGNMENT_SKILLS,a.lazy(()=>Promise.resolve().then(()=>require("./AgentSkillsPage-BS_W2KTh.js")).then(t=>({default:t.AgentSkillsPage}))));O.register(_.SUPPORT_ASSIGNMENT_WORKLOAD,a.lazy(()=>Promise.resolve().then(()=>require("./AgentWorkloadPage-C8IvYfhT.js")).then(t=>({default:t.AgentWorkloadPage}))));O.register(_.MYSPACE_DASHBOARD,a.lazy(()=>Promise.resolve().then(()=>require("./UserDashboardPage-C6MvatAb.js")).then(t=>({default:t.UserDashboardPage}))));O.register(_.USER_PROFILE,a.lazy(()=>Promise.resolve().then(()=>require("./ProfilePage-D6Xb1ALH.js")).then(t=>({default:t.ProfilePage}))));O.register(_.USER_PREFERENCES,a.lazy(()=>Promise.resolve().then(()=>require("./PreferencesPage-Ct6xWAFp.js")).then(t=>({default:t.PreferencesPage}))));O.register(_.MYSPACE_TENANTS,a.lazy(()=>Promise.resolve().then(()=>require("./MyTenantsPage-Dy2RZ_Ei.js")).then(t=>({default:t.MyTenantsPage}))));O.register(_.MYSPACE_ACCESS_REQUESTS,a.lazy(()=>Promise.resolve().then(()=>require("./MyAccessRequestsPage-t6I24rHN.js"))));O.register(_.MYSPACE_PORTAL,a.lazy(()=>Promise.resolve().then(()=>require("./PortalDashboardPage-CCAYuhtI.js")).then(t=>({default:t.PortalDashboardPage}))));O.register(_.NOTIFICATIONS,a.lazy(()=>Promise.resolve().then(()=>require("./NotificationsPage-elSovpBw.js")).then(t=>({default:t.NotificationsPage}))));O.register(_.APPLICATIONS_HUB,a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsPage-CaTBtduL.js")).then(t=>({default:t.ApplicationsPage}))));const bo=a.createContext(null);function vo({config:t,children:s}){const[r,n]=a.useState(!1);a.useEffect(()=>{jr.then(()=>n(!0)).catch(()=>n(!0))},[]),a.useEffect(()=>{typeof window<"u"&&(window.__SMARTSTACK_CONFIG__=t)},[t]);const o=a.useMemo(()=>({config:t}),[t]);return e.jsx(bo.Provider,{value:o,children:e.jsx(Vr,{children:r?e.jsx(ea,{config:t.extensions,children:e.jsx(wr,{children:e.jsx(Hn,{children:e.jsx(Pr,{children:e.jsx(Yn,{children:e.jsx(Er,{children:e.jsx($r,{children:e.jsx(Or,{children:e.jsx(Gr,{children:e.jsx(so,{children:e.jsx(bs,{children:e.jsx(qr,{children:s})})})})})})})})})})})}):null})})}const ta="smartstack-doc-panel-size",sa=a.createContext(void 0);function yo(){if(typeof window>"u")return 33;try{const t=localStorage.getItem(ta);if(t){const s=parseFloat(t);if(s>=20&&s<=60)return s}}catch{}return 33}const Ls={"administration/users":"/docs/business/administration/users","administration/users/dashboard":"/docs/business/administration/users","administration/users/list":"/docs/business/administration/users","administration/users/create":"/docs/business/administration/users","administration/users/groups":"/docs/business/administration/users/groups","administration/users/references":"/docs/business/administration/users/references","administration/permissions":"/docs/business/administration/permissions","administration/permissions/roles":"/docs/business/administration/permissions","administration/permissions/permissions":"/docs/business/administration/permissions","administration/permissions/assignments":"/docs/business/administration/permissions/assignments","administration/applications":"/docs/business/administration/applications","administration/applications/list":"/docs/business/administration/applications","administration/applications/grid":"/docs/business/administration/applications","administration/applications/dashboard":"/docs/business/administration/applications","administration/tenants":"/docs/business/administration/tenants","administration/tenants/dashboard":"/docs/business/administration/tenants","administration/tenants/create":"/docs/business/administration/tenants","administration/tenants/list":"/docs/business/administration/tenants/business","administration/tenants/list/enterprise":"/docs/business/administration/tenants/business","administration/tenants/list/personal":"/docs/business/administration/tenants/personal","administration/tenants/list/other":"/docs/business/administration/tenants/other","administration/tenants/template":"/docs/business/administration/tenants/template","administration/tenants/business":"/docs/business/administration/tenants/business","administration/tenants/personal":"/docs/business/administration/tenants","administration/tenants/organisations":"/docs/business/administration/tenants/organisations","administration/tenants/organisations/create":"/docs/business/administration/tenants/organisations","administration/tenants/access-requests":"/docs/business/administration/tenants/access-requests","administration/tenants/applications":"/docs/business/administration/tenants/applications","administration/workflows":"/docs/business/administration/workflows","administration/workflows/list":"/docs/business/administration/workflows","administration/workflows/create":"/docs/business/administration/workflows","administration/workflows/triggers":"/docs/business/administration/workflows","administration/workflows/history":"/docs/business/administration/workflows","administration/workflows/email-templates":"/docs/business/administration/workflows","administration/workflows/email-templates/email":"/docs/business/administration/workflows","administration/workflows/email-templates/sms":"/docs/business/administration/workflows","administration/workflows/email-templates/create":"/docs/business/administration/workflows","administration/ai":"/docs/business/administration/ai","administration/ai/dashboard":"/docs/business/administration/ai","administration/ai/settings":"/docs/business/administration/ai","administration/ai/providers":"/docs/business/administration/ai","administration/ai/models":"/docs/business/administration/ai","administration/ai/prompts":"/docs/business/administration/ai","administration/ai/blocks":"/docs/business/administration/ai","administration/entra":"/docs/business/administration/entra","administration/entra/dashboard":"/docs/business/administration/entra","administration/entra/groups":"/docs/business/administration/entra","administration/entra/users":"/docs/business/administration/entra","administration/entra/conflicts":"/docs/business/administration/entra","administration/entra/settings":"/docs/business/administration/entra","administration/configuration":"/docs/business/administration/configuration","administration/configuration/settings":"/docs/business/administration/configuration","administration/configuration/appsettings":"/docs/business/administration/configuration","administration/configuration/license":"/docs/business/administration/configuration/license","support/tickets":"/system/docs/user/support-dashboard","support/tickets/list":"/docs/business/platform/support/tickets","support/tickets/escalation":"/system/docs/user/support-escalation","support/my-tickets":"/docs/business/platform/support/tickets","support/my-tickets/list":"/docs/business/platform/support/tickets","support/my-tickets/create":"/docs/business/platform/support/tickets","support/admin/sla":"/system/docs/user/support-sla","support/admin/templates":"/system/docs/user/support-templates","myspace/profile":"/system/docs/user/modules","myspace/preferences":"/system/docs/user/modules","myspace/tenants":"/system/docs/user/modules","myspace/portal":"/system/docs/user/modules"},$s={administration:"/docs/business/administration/users",support:"/system/docs/user/support-dashboard",myspace:"/system/docs/user/modules"};function Ds(t){const s=t.split("/").filter(Boolean),n=s[0]==="t"&&s.length>=3?2:0,o=s.slice(n),c=o[0],i=o.slice(1);if(i.length>0)for(let d=i.length;d>0;d--){const u=`${c}/${i.slice(0,d).join("/")}`;if(Ls[u])return Ls[u]}return c&&$s[c]?$s[c]:"/system/docs/user"}function ra({children:t}){const[s,r]=a.useState(!1),[n,o]=a.useState(yo),[c,i]=a.useState(null),d=S.useLocation(),u=a.useRef(d.pathname);a.useEffect(()=>{u.current!==d.pathname&&(u.current=d.pathname,r(!1))},[d.pathname]),a.useEffect(()=>{n>=20&&n<=60&&localStorage.setItem(ta,String(n))},[n]);const m=a.useCallback(y=>{const h=y||Ds(d.pathname);i(h),r(!0)},[d.pathname]),x=a.useCallback(()=>{r(!1)},[]),p=a.useCallback(()=>{if(s)r(!1);else{const y=Ds(d.pathname);i(y),r(!0)}},[s,d.pathname]),f=a.useCallback(y=>{y>=20&&y<=60&&o(y)},[]);return e.jsx(sa.Provider,{value:{isOpen:s,panelSize:n,docUrl:c,openDocPanel:m,closeDocPanel:x,toggleDocPanel:p,setPanelSize:f},children:t})}function Gt(){const t=a.useContext(sa);if(t===void 0)throw new Error("useDocPanel must be used within a DocPanelProvider");return t}class jo{captureBrowserInfo(){const s=navigator.userAgent;return{browser:this.getBrowserName(s),browserVersion:this.getBrowserVersion(s),os:this.getOSName(s),osVersion:this.getOSVersion(s),language:navigator.language,screenResolution:`${window.screen.width}x${window.screen.height}`,deviceType:this.getDeviceType(s)}}getBrowserName(s){return s.includes("Firefox")?"Firefox":s.includes("Edg/")?"Microsoft Edge":s.includes("Chrome")&&!s.includes("Edg/")?"Google Chrome":s.includes("Safari")&&!s.includes("Chrome")?"Safari":s.includes("Opera")||s.includes("OPR/")?"Opera":s.includes("MSIE")||s.includes("Trident/")?"Internet Explorer":"Unknown Browser"}getBrowserVersion(s){let r=null;return s.includes("Firefox")?r=/Firefox\/(\d+(?:\.\d+)*)/.exec(s):s.includes("Edg/")?r=/Edg\/(\d+(?:\.\d+)*)/.exec(s):s.includes("Chrome")&&!s.includes("Edg/")?r=/Chrome\/(\d+(?:\.\d+)*)/.exec(s):s.includes("Safari")&&!s.includes("Chrome")?r=/Version\/(\d+(?:\.\d+)*)/.exec(s):s.includes("OPR/")&&(r=/OPR\/(\d+(?:\.\d+)*)/.exec(s)),r?r[1]:"Unknown"}getOSName(s){return s.includes("Windows NT 10")?"Windows 10/11":s.includes("Windows NT 6.3")?"Windows 8.1":s.includes("Windows NT 6.2")?"Windows 8":s.includes("Windows NT 6.1")?"Windows 7":s.includes("Windows")?"Windows":s.includes("Mac OS X")?"macOS":s.includes("Linux")&&s.includes("Android")?"Android":s.includes("Linux")?"Linux":s.includes("iPhone")||s.includes("iPad")?"iOS":s.includes("CrOS")?"Chrome OS":"Unknown OS"}getWindowsVersion(s){return s==="10.0"?"10/11":s==="6.3"?"8.1":s==="6.2"?"8":s==="6.1"?"7":s}getOSVersion(s){if(s.includes("Windows NT")){const r=/Windows NT (\d+\.\d+)/.exec(s);if(r)return this.getWindowsVersion(r[1])}if(s.includes("Mac OS X")){const r=/Mac OS X (\d+[._]\d+(?:[._]\d+)?)/.exec(s);if(r)return r[1].replace(/_/g,".")}if(s.includes("Android")){const r=/Android (\d+(?:\.\d+)*)/.exec(s);if(r)return r[1]}if(s.includes("iPhone OS")||s.includes("iPad")){const r=/(?:iPhone|iPad|CPU) OS (\d+[._]\d+(?:[._]\d+)?)/.exec(s);if(r)return r[1].replace(/_/g,".")}return"Unknown"}getDeviceType(s){return/Tablet|iPad/i.test(s)?"Tablet":/Mobile|iPhone|Android.*Mobile/i.test(s)?"Mobile":"Desktop"}formatForDescription(s){return[`Browser: ${s.browser} ${s.browserVersion}`,`OS: ${s.os} ${s.osVersion}`,`Device: ${s.deviceType}`,`Screen: ${s.screenResolution}`,`Language: ${s.language}`].join(`
|
|
2
2
|
`)}}const aa=new jo;function No(){return{captureContext:a.useCallback(()=>{const s=aa.captureBrowserInfo(),r=Le.getRecentErrors().slice(0,5);return{sourceUrl:window.location.href,browser:{name:s.browser,version:s.browserVersion,language:s.language},os:{name:s.os,version:s.osVersion},device:{type:s.deviceType,screenResolution:s.screenResolution},recentErrors:r.map(n=>({message:n.message,stack:n.stack,component:n.component,timestamp:n.timestamp.toISOString()}))}},[])}}function wo(){const[t,s]=a.useState(new Set),[r,n]=a.useState(new Set),o=a.useCallback(x=>{s(p=>{const f=new Set(p);return f.has(x)?f.delete(x):f.add(x),f})},[]),c=a.useCallback(x=>{n(p=>{const f=new Set(p);return f.has(x)?f.delete(x):f.add(x),f})},[]),i=a.useCallback(()=>{s(new Set),n(new Set)},[]),d=a.useCallback((x,p)=>{s(new Set(x)),n(new Set(p))},[]),u=a.useCallback(x=>t.has(x),[t]),m=a.useCallback(x=>r.has(x),[r]);return{collapsedContexts:t,collapsedApps:r,toggleContext:o,toggleApp:c,expandAll:i,collapseAll:d,isContextCollapsed:u,isAppCollapsed:m}}const vs="/api/myspace/application-tracking",So="00000000-0000-0000-0000-000000000000",Ms=t=>!!t&&t!==So,na=t=>{const s=/^\/t\/[^/]+(\/.*)$/.exec(t);return s?s[1]:t},Co=t=>{const s=na(t);return s.startsWith("/administration/")||s.startsWith("/support/")||s.startsWith("/myspace/")},oa=(t,s)=>{if(!t||typeof t!="object"||!("status"in t))return!0;const r=t.status;return!s.includes(r??-1)},ko=async(t,s)=>{const r=new Date,n=Math.floor((r.getTime()-s.getTime())/1e3);try{await I.post(`${vs}/end`,{accessId:t,endedAt:r.toISOString(),durationSeconds:n})}catch(o){oa(o,[401,408])&&console.error("Failed to end page tracking:",o)}},Po=async t=>{const s=new Date;try{return(await I.post(`${vs}/start`,{route:t,accessedAt:s.toISOString()})).accessId}catch(r){return oa(r,[401])&&console.error("Failed to track page access:",r),null}},Ao=(t,s)=>{if(!localStorage.getItem("user"))return;const n=new Date,o=Math.floor((n.getTime()-s.getTime())/1e3);fetch(`${vs}/end`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessId:t,endedAt:n.toISOString(),durationSeconds:o}),keepalive:!0}).catch(()=>{})};function ia(){const t=S.useLocation(),s=a.useRef(new Date),r=a.useRef(null),n=a.useRef(!1);a.useEffect(()=>n.current?void 0:((async()=>{const c=na(t.pathname);Co(c)&&(n.current=!0,Ms(r.current)&&await ko(r.current,s.current),s.current=new Date,r.current=await Po(c),n.current=!1)})(),()=>{Ms(r.current)&&Ao(r.current,s.current)}),[t.pathname])}function To(t={}){const{canEditSystemRoles:s=!1}=t,{t:r,i18n:n}=re.useTranslation("admin"),[o,c]=a.useState(!0),[i,d]=a.useState(null),[u,m]=a.useState(null),[x,p]=a.useState(!1),[f,y]=a.useState(!1),[h,N]=a.useState([]),[b,w]=a.useState([]),[g,v]=a.useState(new Map),[j,L]=a.useState({}),[$,k]=a.useState({}),[P,A]=a.useState({}),[D,U]=a.useState({selectedRoleIds:[],resourceSearch:"",applicationFilter:"all",moduleFilter:"all",categoryFilter:"all"}),C=a.useRef(null),M=a.useRef(new Map),X=a.useCallback((q,Z,te)=>{const ne=q.has(te),de=Z.get(te);if(!de)return{isDirect:ne,isInherited:!1};const Ne=de.path.toLowerCase();let ae,he,ve=1/0;for(const ye of Array.from(q)){const Ce=Z.get(ye);if(!Ce||ye===te)continue;const ke=Ce.path.toLowerCase();if((Ce.isWildcard||ke.endsWith(".*"))&&qt(ke,Ne)){const Me=ke.split(".").length;Me<ve&&(ve=Me,ae=Ce.path,he=Ce.id)}}return{isDirect:ne,isInherited:ae!==void 0,inheritedFromPath:ae,inheritedFromId:he}},[]),R=a.useCallback((q,Z)=>{const te={};return Object.entries(q).forEach(([ne,de])=>{const Ne=new Map;Z.forEach((ae,he)=>{const ve=X(de,Z,he);Ne.set(he,ve)}),te[ne]=Ne}),te},[X]),B=a.useCallback((q,Z)=>{const te=[];if(!q||!q.applications||!Z||!Array.isArray(Z))return te;const ne=new Map;Z.forEach(ae=>{const ve=ae.path.toLowerCase().split(".");if(ve.length>=2){const Ee=ve.slice(0,-1).join("."),ye=ne.get(Ee)||[];ye.push({id:ae.id,action:ve.at(-1),path:ae.path}),ne.set(Ee,ye)}});const de=(ae,he,ve)=>{const Ee=[],ye=[];return ae.resources.forEach(Ce=>{const ke=Ce.permissionPath.toLowerCase().replace(/\.\*$/,"").replace(/\*$/,""),Ie=ne.get(ke)||[],Me={id:Ce.id,path:Ce.permissionPath,label:Ce.label,applicationLabel:ve.label,moduleLabel:Ce.label,parentModuleLabel:he.label,parentModuleId:he.id,parentSectionLabel:ae.label,parentSectionId:ae.id,level:"resource",permissions:Ie,totalPermissions:Ie.length};Ee.push(Me),ye.push(Me)}),{childResources:Ee,nodes:ye}},Ne=(ae,he)=>{const ve=[],Ee=[];return ae.sections.forEach(ye=>{const Ce=ye.permissionPath.toLowerCase().replace(/\.\*$/,"").replace(/\*$/,""),ke=ne.get(Ce)||[],{childResources:Ie,nodes:Me}=de(ye,ae,he),Xe=Ie.reduce((at,nt)=>at+nt.totalPermissions,0),Ze=ke.length+Xe,rt={id:ye.id,path:ye.permissionPath,label:ye.label,applicationLabel:he.label,moduleLabel:ye.label,parentModuleLabel:ae.label,parentModuleId:ae.id,level:"section",permissions:ke,totalPermissions:Ze,childResources:Ie.length>0?Ie:void 0};ve.push(rt),Ee.push(rt),Ee.push(...Me)}),{childSections:ve,nodes:Ee}};return q.applications.forEach(ae=>{ae.modules.forEach(he=>{const ve=he.permissionPath.toLowerCase().replace(/\.\*$/,"").replace(/\*$/,""),Ee=ne.get(ve)||[],{childSections:ye,nodes:Ce}=Ne(he,ae),ke=ye.reduce((Me,Xe)=>Me+Xe.totalPermissions,0),Ie=Ee.length+ke;te.push({id:he.id,path:he.permissionPath,label:he.label,applicationLabel:ae.label,moduleLabel:he.label,level:"module",permissions:Ee,totalPermissions:Ie,childSections:ye.length>0?ye:void 0}),te.push(...Ce)})}),te.sort((ae,he)=>{const ve=ae.applicationLabel.localeCompare(he.applicationLabel);return ve!==0?ve:ae.moduleLabel.localeCompare(he.moduleLabel)})},[]),J=a.useCallback(async()=>{try{c(!0),d(null);const q=await we.permissions.getMatrix(),Z={};q.roles.forEach(ae=>{Z[ae.id]=new Set(ae.permissionIds)});const te=new Map(q.permissions.map(ae=>[ae.id,ae])),ne=B(q.tree,q.permissions),de=R(Z,te);N(q.roles),w(ne),v(te),L(Z),A(de);const Ne=Object.entries(Z).reduce((ae,[he,ve])=>(ae[he]=new Set(Array.from(ve)),ae),{});k(Ne),M.current.clear()}catch(q){d(q instanceof Error?q.message:"Failed to load permission matrix data")}finally{c(!1)}},[B,R]);a.useEffect(()=>{J()},[J,n.language]),a.useEffect(()=>{if(g.size>0){const q=R(j,g);A(q)}},[j,g,R]);const G=a.useCallback(async()=>{if(M.current.size===0)return;const q=new Map(M.current);M.current.clear(),p(!0),m(null);try{const Z=Array.from(q.entries()).map(async([de,Ne])=>{const ae=h.find(he=>he.id===de);ae&&await we.roles.update(de,{name:ae.name,shortName:ae.shortName,category:ae.category,description:ae.description||void 0,permissionIds:Array.from(Ne)})});await Promise.all(Z);const te=JSON.parse(JSON.stringify(Object.fromEntries(Object.entries(j).map(([de,Ne])=>[de,Array.from(Ne)])))),ne=Object.entries(te).reduce((de,[Ne,ae])=>(de[Ne]=new Set(ae),de),{});k(ne),y(!0),setTimeout(()=>{y(!1)},3e3)}catch(Z){console.error("Failed to save permission changes:",Z);let te="Failed to save changes";if(Z&&typeof Z=="object"&&"response"in Z){const ne=Z.response;ne?.status===403?te=r("assignments.noPermissionToEditRole"):ne?.data?.message&&(te=ne.data.message)}else Z instanceof Error&&(te=Z.message);m(te),await J()}finally{p(!1)}},[h,j,J,r]),Y=a.useCallback(()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>{G()},500)},[G]),ge=a.useCallback((q,Z)=>{h.find(ne=>ne.id===q)?.isSystem&&!s||L(ne=>{const de=new Set(ne[q]||[]);return de.has(Z)?de.delete(Z):de.add(Z),M.current.set(q,de),Y(),{...ne,[q]:de}})},[h,s,Y]),z=a.useCallback(q=>{b.forEach(Z=>{Z.permissions.forEach(te=>{q.add(te.id)})})},[b]),F=a.useCallback((q,Z)=>{h.find(ne=>ne.id===q)?.isSystem&&!s||L(ne=>{const de=new Set;return Z&&z(de),M.current.set(q,de),Y(),{...ne,[q]:de}})},[h,s,Y,z]),E=(q,Z,te)=>{Z.permissions.forEach(ne=>{te?q.add(ne.id):q.delete(ne.id)})},K=a.useCallback((q,Z)=>{L(te=>{const ne={...te};return h.forEach(de=>{if(de.isSystem&&!s)return;const Ne=new Set(ne[de.id]||[]);E(Ne,q,Z),ne[de.id]=Ne,M.current.set(de.id,Ne)}),Y(),ne})},[h,s,Y]),Q=a.useCallback(q=>{U(Z=>({...Z,...q}))},[]),ee=a.useCallback(()=>{const q=Object.entries($).reduce((Z,[te,ne])=>(Z[te]=new Set(Array.from(ne)),Z),{});L(q),M.current.clear(),C.current&&clearTimeout(C.current)},[$]),se=a.useMemo(()=>h.filter(q=>D.selectedRoleIds.length===0?!0:D.selectedRoleIds.includes(q.id)),[h,D.selectedRoleIds]),ce=a.useMemo(()=>b.filter(q=>!(D.resourceSearch&&!q.moduleLabel.toLowerCase().includes(D.resourceSearch.toLowerCase())||D.applicationFilter!=="all"&&q.applicationLabel!==D.applicationFilter||D.moduleFilter!=="all"&&q.moduleLabel!==D.moduleFilter)),[b,D]),fe=a.useMemo(()=>Array.from(Object.entries(j)).some(([q,Z])=>{const te=$[q];return te?Z.size!==te.size?!0:Array.from(Z).some(ne=>!te.has(ne)):Z.size>0}),[j,$]),H=a.useMemo(()=>{const q=new Map;return b.forEach(Z=>{q.has(Z.applicationLabel)||q.set(Z.applicationLabel,{app:Z.applicationLabel,label:Z.applicationLabel})}),Array.from(q.values()).sort((Z,te)=>Z.label.localeCompare(te.label))},[b]),ie=a.useMemo(()=>b.filter(q=>q.level==="module").map(q=>({app:q.applicationLabel,module:q.label,label:q.label})).sort((q,Z)=>q.label.localeCompare(Z.label)),[b]),ue=a.useMemo(()=>{const q=new Set(h.map(te=>te.category));return["Global","Admin","Manager","Contributor","Viewer","Custom"].filter(te=>q.has(te))},[h]),pe=a.useCallback((q,Z)=>{const te=P[q];return te?te.get(Z)||{isDirect:!1,isInherited:!1}:{isDirect:!1,isInherited:!1}},[P]),be=a.useCallback(()=>{m(null)},[]);return{loading:o,error:i,saveError:u,saving:x,saveSuccess:f,roles:h,resources:b,permissions:g,assignments:j,inheritanceMap:P,filters:D,filteredRoles:se,filteredResources:ce,hasChanges:fe,canEditSystemRoles:s,applications:H,modules:ie,categories:ue,togglePermission:ge,toggleAllForRole:F,toggleAllForResource:K,updateFilters:Q,reloadData:J,resetChanges:ee,saveChanges:G,clearSaveError:be,getPermissionInheritance:pe}}function la(t={}){const s=a.useRef(null),[r,n]=a.useState(oe.HubConnectionState.Disconnected),o=a.useRef(t);o.current=t;const c=a.useCallback(()=>!!localStorage.getItem("user"),[]),i=a.useCallback(async()=>{if(c()&&s.current?.state!==oe.HubConnectionState.Connected)try{const u=new oe.HubConnectionBuilder().withUrl("/hubs/notifications").withAutomaticReconnect({nextRetryDelayInMilliseconds:m=>m.previousRetryCount===0?0:m.previousRetryCount===1?2e3:m.previousRetryCount===2?1e4:m.previousRetryCount<5?3e4:null}).configureLogging(oe.LogLevel.Warning).build();u.on("ReceiveNotification",m=>{o.current.onNotification?.(m)}),u.on("UnreadCountUpdate",m=>{o.current.onUnreadCountUpdate?.(m)}),u.on("PermissionsChanged",()=>{o.current.onPermissionsChanged?.()}),u.onreconnecting(()=>{n(oe.HubConnectionState.Reconnecting),o.current.onConnectionStateChange?.(oe.HubConnectionState.Reconnecting)}),u.onreconnected(()=>{n(oe.HubConnectionState.Connected),o.current.onConnectionStateChange?.(oe.HubConnectionState.Connected)}),u.onclose(()=>{n(oe.HubConnectionState.Disconnected),o.current.onConnectionStateChange?.(oe.HubConnectionState.Disconnected)}),await u.start(),s.current=u,n(oe.HubConnectionState.Connected),o.current.onConnectionStateChange?.(oe.HubConnectionState.Connected)}catch(u){console.error("SignalR: Failed to connect",u),n(oe.HubConnectionState.Disconnected)}},[c]),d=a.useCallback(async()=>{if(s.current)try{await s.current.stop(),s.current=null,n(oe.HubConnectionState.Disconnected)}catch(u){console.error("SignalR: Failed to disconnect",u)}},[]);return a.useEffect(()=>(i(),()=>{d()}),[i,d]),a.useEffect(()=>{const u=m=>{m.key==="token"&&(m.newValue?i():d())};return window.addEventListener("storage",u),()=>window.removeEventListener("storage",u)},[i,d]),{connectionState:r,isConnected:r===oe.HubConnectionState.Connected,connect:i,disconnect:d}}function Ro(){const{refreshPermissions:t,user:s}=Re(),{refreshMenu:r}=Ae(),n=a.useRef(!1),o=a.useCallback(async()=>{if(!n.current){n.current=!0;try{await Promise.all([t(),r()])}catch(d){console.error("[PermissionSync] Failed to refresh permissions:",d)}finally{n.current=!1}}},[t,r]),{isConnected:c,connectionState:i}=la({onPermissionsChanged:o});return{isConnected:c,connectionState:i,isAuthenticated:!!s}}function ca(t){const{ticketId:s,onCommentAdded:r,onTicketUpdated:n,onConnectionStateChange:o}=t,c=a.useRef(null),i=a.useRef(null),[d,u]=a.useState(oe.HubConnectionState.Disconnected),m=a.useCallback(()=>!!localStorage.getItem("user"),[]),x=a.useCallback(async h=>{if(c.current?.state===oe.HubConnectionState.Connected)try{await c.current.invoke("JoinTicket",h),i.current=h}catch(N){console.error("SignalR: Failed to join ticket group",N)}},[]),p=a.useCallback(async h=>{if(c.current?.state===oe.HubConnectionState.Connected)try{await c.current.invoke("LeaveTicket",h)}catch(N){console.error("SignalR: Failed to leave ticket group",N)}i.current=null},[]),f=a.useCallback(async()=>{if(m()){if(c.current?.state===oe.HubConnectionState.Connected)return c.current;try{const h=new oe.HubConnectionBuilder().withUrl("/hubs/notifications").withAutomaticReconnect({nextRetryDelayInMilliseconds:N=>N.previousRetryCount===0?0:N.previousRetryCount===1?2e3:N.previousRetryCount===2?1e4:N.previousRetryCount<5?3e4:null}).configureLogging(oe.LogLevel.Warning).build();return h.on("TicketCommentAdded",N=>{r?.(N)}),h.on("TicketUpdated",N=>{n?.(N)}),h.onreconnecting(()=>{u(oe.HubConnectionState.Reconnecting),o?.(oe.HubConnectionState.Reconnecting)}),h.onreconnected(async()=>{u(oe.HubConnectionState.Connected),o?.(oe.HubConnectionState.Connected),i.current&&await x(i.current)}),h.onclose(()=>{u(oe.HubConnectionState.Disconnected),o?.(oe.HubConnectionState.Disconnected)}),await h.start(),c.current=h,u(oe.HubConnectionState.Connected),o?.(oe.HubConnectionState.Connected),h}catch(h){return console.error("SignalR: Failed to connect",h),u(oe.HubConnectionState.Disconnected),null}}},[m,x,r,n,o]),y=a.useCallback(async()=>{if(i.current&&await p(i.current),c.current)try{await c.current.stop(),c.current=null,u(oe.HubConnectionState.Disconnected)}catch(h){console.error("SignalR: Failed to disconnect",h)}},[p]);return a.useEffect(()=>{let h=!0;return(async()=>(await f(),h&&s&&await x(s)))(),()=>{h=!1,y()}},[f,y,s,x]),a.useEffect(()=>{const h=async()=>{i.current&&i.current!==s&&await p(i.current),s&&s!==i.current&&await x(s)};c.current?.state===oe.HubConnectionState.Connected&&h()},[s,x,p]),{connectionState:d,isConnected:d===oe.HubConnectionState.Connected,joinTicket:x,leaveTicket:p}}function Eo(t,s,r,n){const o=[];for(const c of n.resources)c.route&&o.push({componentKey:c.componentKey,permissionPath:c.permissionPath,route:c.route,hasComponent:O.has(c.componentKey),requiredFeature:r,isOpen:s,level:"resource",applicationCode:t});return o}function Io(t,s,r,n){const o=[];for(const c of n.sections)c.route&&o.push({componentKey:c.componentKey,permissionPath:c.permissionPath,route:c.route,hasComponent:O.has(c.componentKey),requiredFeature:r,isOpen:s,level:"section",applicationCode:t}),o.push(...Eo(t,s,r,c));return o}function Lo(t,s,r){const n=[];for(const o of r.modules)o.route&&n.push({componentKey:o.componentKey,permissionPath:o.permissionPath,route:o.route,hasComponent:O.has(o.componentKey),requiredFeature:o.requiredFeature,isOpen:s,level:"module",applicationCode:t}),n.push(...Io(t,s,o.requiredFeature,o));return n}function $o(t){const s=[];for(const r of t)r.route&&s.push({componentKey:r.componentKey,permissionPath:r.permissionPath,route:r.route,hasComponent:O.has(r.componentKey),requiredFeature:r.requiredFeature,isOpen:r.isOpen,level:"application",applicationCode:r.code}),s.push(...Lo(r.code,r.isOpen,r));return s}function Do(){const{menu:t,isLoading:s}=Ae();return a.useMemo(()=>{if(!t||s)return{entries:[],byKey:new Map,isLoading:!0,byApplication:new Map};const r=$o(t.applications),n=new Map(r.map(c=>[c.componentKey,c])),o=new Map;for(const c of r){const i=o.get(c.applicationCode)||[];i.push(c),o.set(c.applicationCode,i)}return{entries:r,byKey:n,isLoading:!1,byApplication:o}},[t,s])}const Mo=(t,s,r)=>{const n=t.has(r),o=s.get(r);if(!o)return{isDirect:n,isInherited:!1};const c=o.path;let i,d,u=1/0;for(const x of Array.from(t)){const p=s.get(x);if(!(!p||!p.isWildcard||x===r)&&qt(p.path,c)){const f=p.path.split(".").length;f<u&&(u=f,i=p.path,d=p.id)}}return{isDirect:n,isInherited:i!==void 0,inheritedFromPath:i,inheritedFromId:d}},Os=(t,s)=>{const r={};return Object.entries(t).forEach(([n,o])=>{const c=new Map;s.forEach((i,d)=>{const u=Mo(o,s,d);c.set(d,u)}),r[n]=c}),r},Oo=t=>{const s=new Map;return t.forEach(r=>{const o=r.path.toLowerCase().split(".");if(o.length>=2){const c=o.slice(0,-1).join("."),i=s.get(c)||[];i.push({id:r.id,action:o.at(-1),path:r.path}),s.set(c,i)}}),s},Vt=(t,s)=>{const r=s.toLowerCase().replace(/\.\*$/,"").replace(/\*$/,"");return t.get(r)||[]};function da(t){const{entityId:s,tenantId:r,loadEntity:n,loadRoles:o}=t,{i18n:c}=re.useTranslation(),[i,d]=a.useState(!0),[u,m]=a.useState(null),[x,p]=a.useState(null),[f,y]=a.useState([]),[h,N]=a.useState([]),[b,w]=a.useState(new Map),[g,v]=a.useState({}),[j,L]=a.useState({}),[$,k]=a.useState({selectedRoleIds:[],resourceSearch:"",applicationFilter:"all",moduleFilter:"all"}),P=!!r,A=a.useCallback((F,E,K,Q)=>{const ee=Vt(Q,E.permissionPath);F.push({id:E.id,path:E.permissionPath,label:E.label,applicationLabel:K.label,moduleLabel:E.label,level:"module",permissions:ee,totalPermissions:ee.length})},[]),D=a.useCallback((F,E,K,Q,ee)=>{const se=Vt(ee,E.permissionPath);E.resources.forEach(ce=>{const fe=Vt(ee,ce.permissionPath);F.push({id:ce.id,path:ce.permissionPath,label:ce.label,applicationLabel:Q.label,moduleLabel:K.label,parentModuleLabel:K.label,parentModuleId:K.id,parentSectionLabel:E.label,parentSectionId:E.id,level:"resource",permissions:fe,totalPermissions:fe.length})}),F.push({id:E.id,path:E.permissionPath,label:E.label,applicationLabel:Q.label,moduleLabel:K.label,parentModuleLabel:K.label,parentModuleId:K.id,level:"section",permissions:se,totalPermissions:se.length})},[]),U=a.useCallback((F,E,K,Q)=>{A(Q,F,E,K),F.sections.forEach(ee=>{D(Q,ee,F,E,K)})},[A,D]),C=a.useCallback((F,E,K)=>{F.modules.forEach(Q=>{U(Q,F,E,K)})},[U]),M=a.useCallback((F,E)=>{if(!F?.applications||!Array.isArray(E))return[];const K=Oo(E),Q=[];return F.applications.forEach(ee=>{C(ee,K,Q)}),Q.sort((ee,se)=>{const ce=ee.applicationLabel.localeCompare(se.applicationLabel);return ce!==0?ce:ee.moduleLabel.localeCompare(se.moduleLabel)})},[C]),X=a.useCallback(async()=>{try{d(!0),m(null);const[F,E,K]=await Promise.all([n(s),o(s,r),we.permissions.getMatrix()]);p(F),y(E);const Q=new Set(E.map(ie=>ie.id)),ee=K.roles.filter(ie=>Q.has(ie.id)),se={};ee.forEach(ie=>{se[ie.id]=new Set(ie.permissionIds)});const ce=new Map(K.permissions.map(ie=>[ie.id,ie])),fe=M(K.tree,K.permissions),H=Os(se,ce);N(fe),w(ce),v(se),L(H)}catch(F){m(F instanceof Error?F.message:"Failed to load permissions data")}finally{d(!1)}},[s,r,n,o,M]);a.useEffect(()=>{X()},[X,c.language]),a.useEffect(()=>{if(b.size>0){const F=Os(g,b);L(F)}},[g,b]);const R=a.useMemo(()=>{const F=new Set;return Object.entries(j).forEach(([E,K])=>{K.forEach((Q,ee)=>{(Q.isDirect||Q.isInherited)&&F.add(ee)})}),F},[j]),B=a.useMemo(()=>h.filter(F=>{if($.resourceSearch&&!F.label.toLowerCase().includes($.resourceSearch.toLowerCase())||$.applicationFilter!=="all"&&F.applicationLabel!==$.applicationFilter)return!1;if($.moduleFilter!=="all"){if(F.level==="module"){if(F.label!==$.moduleFilter)return!1}else if(F.parentModuleLabel!==$.moduleFilter)return!1}return!0}),[h,$]),J=a.useMemo(()=>{const F=new Map;return h.forEach(E=>{F.has(E.applicationLabel)||F.set(E.applicationLabel,{app:E.applicationLabel,label:E.applicationLabel})}),Array.from(F.values()).sort((E,K)=>E.label.localeCompare(K.label))},[h]),G=a.useMemo(()=>h.filter(F=>F.level==="module").map(F=>({app:F.applicationLabel,module:F.label,label:F.label})).sort((F,E)=>F.label.localeCompare(E.label)),[h]),Y=a.useCallback(F=>{k(E=>({...E,...F}))},[]),ge=a.useCallback((F,E)=>{const K=j[F];return K?K.get(E)||{isDirect:!1,isInherited:!1}:{isDirect:!1,isInherited:!1}},[j]),z=a.useCallback(F=>{const E=[];return f.forEach(K=>{const Q=j[K.id];if(Q){const ee=Q.get(F);ee&&(ee.isDirect||ee.isInherited)&&E.push(K)}}),E},[f,j]);return{loading:i,error:u,entity:x,roles:f,resources:h,assignments:g,inheritanceMap:j,effectivePermissions:R,filters:$,filteredResources:B,applications:J,modules:G,updateFilters:Y,getPermissionInheritance:ge,getPermissionSources:z,reloadData:X,isTenantMode:P}}function Fo(t){const{userId:s,tenantId:r}=t,[n,o]=a.useState(null),[c,i]=a.useState([]),d=!!r,u=a.useCallback(async N=>we.users.getById(N),[]),m=a.useCallback(async(N,b)=>{const w=await we.users.getById(N);let g=[];try{const j=await we.users.getConsolidatedRoles(N,b);if(i(j),g=j.map(L=>({id:L.roleId,name:L.roleName,shortName:L.roleShortName||L.roleName,category:"Custom",description:null})),b)try{const $=(await we.tenants.getMembers(b)).find(k=>k.userId===N);o($||null)}catch{o(null)}else o(null)}catch{i([]),o(null),g=w.roles}return Array.from(new Map(g.map(j=>[j.id,j])).values())},[]),x=da({entityId:s,tenantId:r,loadEntity:u,loadRoles:m}),p=x.entity,f=x.roles,y=a.useCallback(N=>{const b=[];return f.forEach(w=>{const g=x.inheritanceMap[w.id];if(g){const v=g.get(N);v&&(v.isDirect||v.isInherited)&&b.push(w)}}),b},[f,x.inheritanceMap]),h=a.useCallback(async N=>{if(!d||!r||!n)throw new Error("Cannot assign tenant roles: not in tenant mode or no tenant member found");await we.tenants.assignMemberRoles(r,n.userId,N),await x.reloadData()},[d,r,n,x]);return{loading:x.loading,error:x.error,user:p,userRoles:f,resources:x.resources,assignments:x.assignments,inheritanceMap:x.inheritanceMap,effectivePermissions:x.effectivePermissions,filters:x.filters,filteredResources:x.filteredResources,applications:x.applications,modules:x.modules,updateFilters:x.updateFilters,getPermissionInheritance:x.getPermissionInheritance,getPermissionSources:y,reloadData:x.reloadData,isTenantMode:d,tenantMember:n,assignTenantRoles:h,consolidatedRoles:c}}function Ht(){const{mode:t,toggleMode:s}=wt(),n=(t==="dark"?"dark":"light")==="light";return e.jsx("button",{onClick:s,className:"relative p-2 bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] transition-all duration-300 group rounded-[var(--radius-button)]","aria-label":`Basculer vers le mode ${n?"sombre":"clair"}`,children:e.jsxs("div",{className:"relative w-6 h-6",children:[e.jsx(l.Sun,{className:`absolute inset-0 w-6 h-6 text-amber-500 transition-all duration-300 ${n?"opacity-100 rotate-0 scale-100":"opacity-0 rotate-90 scale-0"}`}),e.jsx(l.Moon,{className:`absolute inset-0 w-6 h-6 text-[var(--color-accent-400)] transition-all duration-300 ${n?"opacity-0 -rotate-90 scale-0":"opacity-100 rotate-0 scale-100"}`})]})})}const Wt=[{code:"en",label:"English",short:"EN"},{code:"fr",label:"Français",short:"FR"},{code:"de",label:"Deutsch",short:"DE"},{code:"it",label:"Italiano",short:"IT"}];function ys(){const{i18n:t}=re.useTranslation(),{isAuthenticated:s}=Re(),[r,n]=a.useState(!1),o=a.useRef(null),c=t.language?.split("-")[0]||"en",i=Wt.find(u=>u.code===c)||Wt[0],d=async u=>{if(await hs(u),document.documentElement.lang=u,n(!1),s)try{await _t.preferences.updateLanguage({language:u})}catch{}};return a.useEffect(()=>{const u=m=>{o.current&&!o.current.contains(m.target)&&n(!1)};return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[]),e.jsxs("div",{ref:o,className:"relative",children:[e.jsx("button",{onClick:()=>n(!r),className:"relative p-2 bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] transition-all duration-300 rounded-[var(--radius-button)]","aria-label":"Change language",children:e.jsx("span",{className:"flex items-center justify-center w-6 h-6 text-xs font-bold text-[var(--text-secondary)]",children:i.short})}),r&&e.jsx("div",{className:"absolute right-0 mt-2 py-1 bg-[var(--bg-tertiary)] border border-[var(--border-color)] shadow-lg shadow-[var(--shadow-color)] z-50 overflow-hidden rounded-[var(--radius-card)]",children:Wt.map(u=>{const m=u.code===c;return e.jsxs("button",{onClick:()=>d(u.code),className:`w-full flex items-center gap-3 px-4 py-2.5 text-left transition-colors whitespace-nowrap ${m?"bg-primary-600/10 text-primary-500":"text-[var(--text-secondary)] hover:bg-[var(--bg-secondary)] hover:text-[var(--text-primary)]"}`,children:[e.jsx("span",{className:"text-xs font-bold w-6",children:u.short}),e.jsx("span",{className:"text-sm font-medium",children:u.label}),m&&e.jsx(l.Check,{className:"w-4 h-4 ml-auto text-primary-500"})]},u.code)})})]})}function _o(t,s){if(!s.useUrlRouting||!s.slug)return xt(t);if(t.startsWith(`/t/${s.slug}`))return t;const r=xt(t);return`/t/${s.slug}${r}`}function Fs(t){const s=/^\/t\/([^/]+)/.exec(t);return s?s[1]:null}function xt(t){return t.replace(/^\/t\/[^/]+/,"")||"/"}function Qe(){const{currentTenant:t}=De(),{useUrlRouting:s}=Ut();return a.useCallback(r=>_o(r,{slug:t?.slug,useUrlRouting:s}),[t?.slug,s])}const _s={background:"linear-gradient(to bottom right, var(--color-accent-500), var(--color-accent-600))"};function ua(){const{t}=re.useTranslation("navigation"),{user:s,logout:r}=Re(),{refreshMenu:n}=Ae(),{refreshTenants:o}=De(),c=S.useLocation(),i=S.useNavigate(),d=Qe(),[u,m]=a.useState(!1),[x,p]=a.useState(!1),f=a.useRef(null),y=async()=>{p(!0);try{await I.post("/api/navigation/invalidate-cache").catch(()=>{}),await Promise.all([n(),o()])}catch(w){console.error("Failed to refresh cache:",w)}finally{p(!1),m(!1)}},h=w=>{const g=d(w);c.pathname!==g&&i(g),m(!1)};a.useEffect(()=>{function w(g){f.current&&!f.current.contains(g.target)&&m(!1)}return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[]),a.useEffect(()=>{function w(g){g.key==="Escape"&&m(!1)}return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[]);const N=()=>{if(!s)return"?";const w=s.firstName?.[0]||"",g=s.lastName?.[0]||"";return(w+g).toUpperCase()||s.email.at(0)?.toUpperCase()||"?"},b=()=>s?s.firstName||s.lastName?`${s.firstName||""} ${s.lastName||""}`.trim():s.email.split("@")[0]:"";return e.jsxs("div",{ref:f,className:"relative",children:[e.jsxs("button",{onClick:()=>m(!u),className:"flex items-center gap-2 p-1.5 pr-3 bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] transition-all duration-200 group rounded-[var(--radius-button)]","aria-expanded":u,"aria-haspopup":"true",children:[e.jsx("div",{className:"w-8 h-8 rounded-full flex items-center justify-center text-white text-sm font-medium shadow-sm",style:_s,children:N()}),e.jsx(l.ChevronDown,{className:`w-4 h-4 text-[var(--text-tertiary)] transition-transform duration-200 ${u?"rotate-180":""}`})]}),e.jsx("div",{className:`absolute right-0 mt-2 w-72 origin-top-right transition-all duration-200 ease-out ${u?"opacity-100 scale-100 translate-y-0":"opacity-0 scale-95 -translate-y-2 pointer-events-none"}`,children:e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] shadow-xl overflow-hidden rounded-[var(--radius-card)]",children:[e.jsx("div",{className:"p-4 bg-gradient-to-br from-[var(--bg-secondary)] to-[var(--bg-tertiary)]",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-12 h-12 rounded-full flex items-center justify-center text-white text-lg font-semibold shadow-lg",style:_s,children:N()}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-[var(--text-primary)] truncate",children:b()}),e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] truncate",children:s?.email})]})]})}),e.jsx("div",{className:"p-2 border-b border-[var(--border-color)]",children:e.jsxs("div",{className:"space-y-1",children:[e.jsxs("button",{onClick:()=>h("/applications"),className:"w-full flex items-center gap-3 px-3 py-2.5 hover:bg-[var(--bg-tertiary)] transition-colors rounded-[var(--radius-menu-item)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-[var(--bg-tertiary)] flex items-center justify-center text-[var(--text-secondary)]",children:e.jsx(l.LayoutGrid,{className:"w-4 h-4"})}),e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t("avatarMenu.applications")})]}),e.jsxs("button",{onClick:()=>h("/myspace"),className:"w-full flex items-center gap-3 px-3 py-2.5 hover:bg-[var(--bg-tertiary)] transition-colors rounded-[var(--radius-menu-item)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-[var(--bg-tertiary)] flex items-center justify-center text-[var(--text-secondary)]",children:e.jsx(l.User,{className:"w-4 h-4"})}),e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t("avatarMenu.mySpace")})]})]})}),e.jsx("div",{className:"p-2",children:e.jsxs("button",{onClick:y,disabled:x,className:"w-full flex items-center gap-3 px-3 py-2.5 hover:bg-[var(--bg-tertiary)] transition-colors disabled:opacity-50 rounded-[var(--radius-menu-item)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-[var(--bg-tertiary)] flex items-center justify-center text-[var(--text-secondary)]",children:e.jsx(l.RefreshCw,{className:`w-4 h-4 ${x?"animate-spin":""}`})}),e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t("avatarMenu.refreshCache")})]})}),e.jsx("div",{className:"p-2 border-t border-[var(--border-color)]",children:e.jsxs("button",{onClick:()=>{m(!1),r()},className:"w-full flex items-center gap-3 px-3 py-2.5 hover:bg-red-500/10 transition-colors group rounded-[var(--radius-menu-item)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-[var(--bg-tertiary)] group-hover:bg-red-500/20 flex items-center justify-center text-[var(--text-secondary)] group-hover:text-red-500 transition-colors",children:e.jsx(l.LogOut,{className:"w-4 h-4"})}),e.jsx("span",{className:"font-medium text-[var(--text-primary)] group-hover:text-red-500 transition-colors",children:t("avatarMenu.logout")})]})})]})})]})}const Uo={settings:l.Settings,users:l.Users,key:l.Key,briefcase:l.Briefcase,folder:l.FolderOpen,file:l.FileText,box:l.Box};function qo(t,s){const r=t&&Uo[t.toLowerCase()]||l.Box;return e.jsx(r,{className:s})}function Us({app:t,isFavorite:s,showFavorite:r,onToggleFavorite:n,onSelect:o}){return e.jsxs("div",{className:"group relative",children:[e.jsxs("button",{onClick:o,className:"w-full flex flex-col items-center gap-2 p-3 hover:bg-[var(--bg-tertiary)] transition-all duration-200 rounded-[var(--radius-menu-item)]",children:[e.jsx("div",{className:"w-12 h-12 bg-gradient-to-br from-[var(--color-accent-500)]/20 to-[var(--color-accent-600)]/20 flex items-center justify-center group-hover:from-[var(--color-accent-500)]/30 group-hover:to-[var(--color-accent-600)]/30 transition-all rounded-[var(--radius-card)]",children:qo(t.icon,"w-6 h-6 text-[var(--color-accent-500)]")}),e.jsx("span",{className:"text-xs font-medium text-[var(--text-primary)] text-center line-clamp-2",children:t.label})]}),r&&e.jsx("button",{onClick:c=>{c.stopPropagation(),n()},className:`absolute top-1 right-1 p-1.5 transition-all duration-200 ${s?"text-amber-500 bg-amber-500/10":"text-[var(--text-tertiary)] opacity-0 group-hover:opacity-100 hover:bg-[var(--bg-secondary)]"} rounded-[var(--radius-button)]`,title:s?"Retirer des favoris":"Ajouter aux favoris",children:e.jsx(l.Star,{className:`w-4 h-4 ${s?"fill-current":""}`})})]})}function ma(){const{t}=re.useTranslation("navigation"),{favorites:s,menu:r,toggleFavorite:n,isFavorite:o}=Ae(),{currentTenant:c}=De(),[i,d]=a.useState(!1),u=a.useRef(null),m=S.useNavigate(),x=Qe(),p=!!c,f=r?.applications||[];a.useEffect(()=>{function h(N){u.current&&!u.current.contains(N.target)&&d(!1)}return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[]),a.useEffect(()=>{function h(N){N.key==="Escape"&&d(!1)}return document.addEventListener("keydown",h),()=>document.removeEventListener("keydown",h)},[]);const y=h=>{d(!1),h.route&&m(x(h.route))};return e.jsxs("div",{ref:u,className:"relative",children:[e.jsx("button",{onClick:()=>d(!i),className:"p-2 hover:bg-[var(--bg-tertiary)] transition-colors rounded-[var(--radius-button)]","aria-expanded":i,"aria-haspopup":"true",title:t("appSwitcher.title","Applications"),children:e.jsx(l.LayoutGrid,{className:"w-5 h-5 text-[var(--text-secondary)]"})}),e.jsx("div",{className:`absolute right-0 mt-2 w-80 origin-top-right transition-all duration-200 ease-out ${i?"opacity-100 scale-100 translate-y-0":"opacity-0 scale-95 -translate-y-2 pointer-events-none"}`,children:e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] shadow-xl overflow-hidden rounded-[var(--radius-card)]",children:[s.length>0&&e.jsxs("div",{className:"p-3 border-b border-[var(--border-color)]",children:[e.jsxs("p",{className:"px-2 py-1 text-xs font-medium text-[var(--text-tertiary)] uppercase tracking-wider flex items-center gap-2",children:[e.jsx(l.Star,{className:"w-3 h-3 text-amber-500 fill-amber-500"}),t("appSwitcher.favorites","Favoris")]}),e.jsx("div",{className:"grid grid-cols-3 gap-1 mt-2",children:s.slice(0,6).map(h=>e.jsx(Us,{app:h,isFavorite:!0,showFavorite:p,onToggleFavorite:()=>n(h.id),onSelect:()=>{d(!1),h.route&&m(x(h.route))}},h.id))})]}),e.jsxs("div",{className:"p-3",children:[e.jsx("p",{className:"px-2 py-1 text-xs font-medium text-[var(--text-tertiary)] uppercase tracking-wider",children:t("appSwitcher.allApps","Toutes les applications")}),f.length>0?e.jsx("div",{className:"grid grid-cols-3 gap-1 mt-2 max-h-64 overflow-y-auto",children:f.map(h=>e.jsx(Us,{app:h,isFavorite:o(h.id),showFavorite:p,onToggleFavorite:()=>n(h.id),onSelect:()=>y(h)},h.id))}):e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] text-center py-6",children:t("appSwitcher.noApps","Aucune application disponible")})]})]})})]})}function Bo(){const[t,s]=a.useState([]),r=a.useCallback(async()=>{try{const c=await we.myTenants.getFavorites();s(c)}catch{}},[]),n=a.useCallback(async c=>{const i=t.includes(c);try{if(i){const d=await we.myTenants.removeFavorite(c);s(d)}else{const d=await we.myTenants.addFavorite(c);s(d)}}catch(d){console.error("Failed to toggle favorite:",d)}},[t]),o=a.useCallback(c=>{we.myTenants.recordRecent(c).catch(console.error)},[]);return{favorites:t,loadFavorites:r,toggleFavorite:n,recordRecent:o}}const zo={Pending:"bg-blue-500",Active:"bg-emerald-500",Suspended:"bg-amber-500",Archived:"bg-gray-400"},Ko={Pending:"En attente",Active:"Actif",Suspended:"Suspendu",Archived:"Archivé"};function Xt({tenant:t,isSelected:s,isFavorite:r,hasThemeOverride:n,onSelect:o,onToggleFavorite:c,showStatus:i=!0}){const d=t.type==="Business",u=t.status==="Active",m=(x,p)=>x?"bg-[var(--color-accent-500)]/10 text-[var(--color-accent-600)]":p?"hover:bg-[var(--bg-tertiary)] text-[var(--text-primary)]":"opacity-50 cursor-not-allowed text-[var(--text-tertiary)]";return e.jsxs("div",{className:"flex items-center group",children:[e.jsxs("button",{onClick:o,disabled:!u,className:`flex-1 flex items-center gap-3 px-3 py-2.5 text-left transition-all duration-150 ${m(s,u)} rounded-[var(--radius-menu-item)]`,children:[e.jsx("div",{className:`flex-shrink-0 w-8 h-8 flex items-center justify-center ${d?"bg-blue-500/10":"bg-violet-500/10"} rounded-[var(--radius-card)]`,children:d?e.jsx(l.Building2,{className:"w-4 h-4 text-blue-500"}):e.jsx(l.User,{className:"w-4 h-4 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("span",{className:"font-medium truncate",children:t.name}),n&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-[var(--color-accent-500)]",title:"Thème personnalisé"})]}),e.jsxs("div",{className:"flex items-center gap-2 mt-0.5",children:[e.jsx("span",{className:"text-xs text-[var(--text-tertiary)] truncate",children:t.organisationName||t.slug}),i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${zo[t.status]}`}),t.status!=="Active"&&e.jsx("span",{className:"text-xs text-[var(--text-tertiary)]",children:Ko[t.status]})]})]})]}),s&&e.jsx(l.Check,{className:"w-4 h-4 text-[var(--color-accent-500)] flex-shrink-0"})]}),c&&u&&e.jsx("button",{onClick:x=>{x.stopPropagation(),c()},className:`p-2 transition-colors ${r?"text-amber-500":"text-[var(--text-tertiary)] opacity-0 group-hover:opacity-100 hover:text-amber-500"}`,title:r?"Retirer des favoris":"Ajouter aux favoris",children:e.jsx(l.Star,{className:`w-4 h-4 ${r?"fill-amber-500":""}`})})]})}const xa="tenant_recents",ns=5;function pa(){try{return JSON.parse(localStorage.getItem(xa)||"[]")}catch{return[]}}function Go(t){const s=pa().filter(r=>r!==t);s.unshift(t),localStorage.setItem(xa,JSON.stringify(s.slice(0,ns)))}const Ho=(t,s,r)=>{const n=o=>{t.current&&!t.current.contains(o.target)&&(s(!1),r(""))};return document.addEventListener("mousedown",n),()=>document.removeEventListener("mousedown",n)},Vo=(t,s)=>{const r=n=>{n.key==="Escape"&&(t(!1),s(""))};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},Wo=(t,s,r,n,o)=>{const c=a.useMemo(()=>t.filter(u=>s.includes(u.id)&&u.status==="Active"),[t,s]),i=a.useMemo(()=>{if(o.trim())return[];const u=new Set(s);return r.map(m=>n.find(x=>x.id===m)).filter(m=>!!m&&m.status==="Active"&&!u.has(m.id)).slice(0,ns)},[r,n,s,o]),d=a.useMemo(()=>{const u=new Set([...s,...r.slice(0,ns)]);return t.filter(m=>!u.has(m.id))},[t,s,r]);return{favoriteTenants:c,recentTenants:i,otherTenants:d}};function Xo(){const{t}=re.useTranslation("navigation"),{refreshMenu:s}=Ae(),{currentTenant:r,userTenants:n,switchTenant:o,isLoading:c,hasMultipleTenants:i,hasGlobalRoles:d,isGlobalView:u,enterGlobalView:m}=De(),{tenantOverrides:x,loadTenantOverrides:p}=wt(),[f,y]=a.useState(!1),[h,N]=a.useState(""),[b]=a.useState(()=>pa()),w=a.useRef(null),g=a.useRef(null),{favorites:v,loadFavorites:j,toggleFavorite:L,recordRecent:$}=Bo();a.useEffect(()=>{f&&(j(),p())},[f,j,p]),a.useEffect(()=>{f&&g.current&&setTimeout(()=>g.current?.focus(),100)},[f]),a.useEffect(()=>Ho(w,y,N),[]),a.useEffect(()=>Vo(y,N),[]);const k=a.useCallback(async R=>{if(R===r?.id&&!u){y(!1);return}try{Go(R),$(R),await o(R),y(!1),N(""),await s()}catch(B){console.error("Failed to switch tenant:",B)}},[r?.id,u,o,s,$]),P=a.useCallback(async()=>{await m(),y(!1),N(""),await s()},[m,s]),A=a.useCallback(async R=>{await L(R)},[L]),D=a.useMemo(()=>{if(!h.trim())return n;const R=h.toLowerCase();return n.filter(B=>B.name.toLowerCase().includes(R)||B.slug.toLowerCase().includes(R)||B.organisationName?.toLowerCase().includes(R))},[n,h]),{favoriteTenants:U,recentTenants:C,otherTenants:M}=Wo(D,v,b,n,h);if(c)return null;if(!(i||d)&&r){const R=r.type==="Business";return e.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded-[var(--radius-button)]",children:[R?e.jsx(l.Building2,{className:"w-4 h-4 text-blue-500"}):e.jsx(l.User,{className:"w-4 h-4 text-violet-500"}),e.jsx("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:r.name})]})}return e.jsxs("div",{ref:w,className:"relative",children:[e.jsxs("button",{onClick:()=>y(!f),className:`flex items-center gap-2 px-3 py-1.5 border transition-colors ${u?"bg-emerald-500/10 border-emerald-500/30 hover:bg-emerald-500/20":"bg-[var(--bg-secondary)] border-[var(--border-color)] hover:bg-[var(--bg-tertiary)]"} rounded-[var(--radius-button)]`,"aria-expanded":f,"aria-haspopup":"true",children:[u&&e.jsxs(e.Fragment,{children:[e.jsx(l.Globe,{className:"w-4 h-4 text-emerald-600"}),e.jsx("span",{className:"text-sm font-medium text-emerald-700",children:t("tenants.selector.global","Global")})]}),!u&&r&&e.jsxs(e.Fragment,{children:[r.type==="Business"?e.jsx(l.Building2,{className:"w-4 h-4 text-blue-500"}):e.jsx(l.User,{className:"w-4 h-4 text-violet-500"}),e.jsx("span",{className:"text-sm font-medium text-[var(--text-primary)] max-w-[120px] truncate",children:r.name})]}),!u&&!r&&e.jsxs(e.Fragment,{children:[e.jsx(l.Building2,{className:"w-4 h-4 text-[var(--text-secondary)]"}),e.jsx("span",{className:"text-sm font-medium text-[var(--text-secondary)]",children:t("tenants.selector.select","Select")})]}),e.jsx(l.ChevronDown,{className:`w-4 h-4 text-[var(--text-tertiary)] transition-transform ${f?"rotate-180":""}`})]}),e.jsx("div",{className:`absolute left-0 mt-2 w-80 origin-top-left transition-all duration-200 ease-out z-50 ${f?"opacity-100 scale-100 translate-y-0":"opacity-0 scale-95 -translate-y-2 pointer-events-none"}`,children:e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] shadow-xl overflow-hidden rounded-[var(--radius-card)]",children:[e.jsx("div",{className:"p-2 border-b border-[var(--border-color)]",children:e.jsxs("div",{className:"relative",children:[e.jsx(l.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("input",{ref:g,type:"text",value:h,onChange:R=>N(R.target.value),placeholder:t("tenants.selector.search","Rechercher..."),className:"w-full pl-9 pr-3 py-2 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] focus:border-[var(--color-accent-500)] focus:outline-none rounded-[var(--radius-input)]"})]})}),e.jsxs("div",{className:"max-h-80 overflow-y-auto",children:[d&&!h&&e.jsx("div",{className:"p-2 border-b border-[var(--border-color)]",children:e.jsxs("button",{onClick:P,className:`w-full flex items-center gap-3 px-3 py-2.5 text-left transition-all duration-150 ${u?"bg-emerald-500/10 text-emerald-700":"hover:bg-[var(--bg-tertiary)] text-[var(--text-primary)]"} rounded-[var(--radius-menu-item)]`,children:[e.jsx("div",{className:"flex-shrink-0 w-8 h-8 bg-emerald-500/10 flex items-center justify-center rounded-[var(--radius-card)]",children:e.jsx(l.Globe,{className:"w-4 h-4 text-emerald-600"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"font-medium",children:t("tenants.selector.global","Global")}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mt-0.5",children:t("tenants.selector.globalDesc","Voir tous les tenants")})]}),u&&e.jsx(l.Check,{className:"w-4 h-4 text-emerald-600 flex-shrink-0"})]})}),U.length>0&&e.jsxs("div",{className:"p-2",children:[e.jsxs("p",{className:"px-2 py-1 text-xs font-medium text-[var(--text-tertiary)] uppercase tracking-wider flex items-center gap-1.5",children:[e.jsx(l.Star,{className:"w-3 h-3 text-amber-500"}),t("tenants.selector.favorites","Favoris")]}),e.jsx("div",{className:"mt-1",children:U.map(R=>e.jsx(Xt,{tenant:R,isSelected:!u&&r?.id===R.id,isFavorite:!0,hasThemeOverride:x.includes(R.id),onSelect:()=>k(R.id),onToggleFavorite:()=>A(R.id)},R.id))})]}),C.length>0&&e.jsxs("div",{className:`p-2 ${U.length>0?"border-t border-[var(--border-color)]":""}`,children:[e.jsxs("p",{className:"px-2 py-1 text-xs font-medium text-[var(--text-tertiary)] uppercase tracking-wider flex items-center gap-1.5",children:[e.jsx(l.Clock,{className:"w-3 h-3"}),t("tenants.selector.recent","Récents")]}),e.jsx("div",{className:"mt-1",children:C.map(R=>e.jsx(Xt,{tenant:R,isSelected:!u&&r?.id===R.id,isFavorite:v.includes(R.id),hasThemeOverride:x.includes(R.id),onSelect:()=>k(R.id),onToggleFavorite:()=>A(R.id)},R.id))})]}),M.length>0&&e.jsxs("div",{className:`p-2 ${U.length>0||C.length>0?"border-t border-[var(--border-color)]":""}`,children:[!h&&e.jsxs("p",{className:"px-2 py-1 text-xs font-medium text-[var(--text-tertiary)] uppercase tracking-wider flex items-center gap-1.5",children:[e.jsx(l.Building2,{className:"w-3 h-3"}),t("tenants.selector.all","Tous")]}),e.jsx("div",{className:"mt-1 max-h-40 overflow-y-auto",children:M.map(R=>e.jsx(Xt,{tenant:R,isSelected:!u&&r?.id===R.id,isFavorite:v.includes(R.id),hasThemeOverride:x.includes(R.id),onSelect:()=>k(R.id),onToggleFavorite:()=>A(R.id)},R.id))})]}),h&&D.length===0&&e.jsx("div",{className:"p-4 text-center text-sm text-[var(--text-tertiary)]",children:t("tenants.selector.noResults","Aucun résultat")})]}),e.jsx("div",{className:"p-2 border-t border-[var(--border-color)]",children:e.jsxs(S.Link,{to:"/myspace/tenants",className:"flex items-center justify-center gap-2 px-3 py-2 text-sm text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-tertiary)] transition-colors rounded-[var(--radius-button)]",onClick:()=>y(!1),children:[e.jsx(l.Eye,{className:"w-4 h-4"}),t("tenants.selector.viewAll","Voir tous mes espaces")," (",n.length,")"]})})]})})]})}function js(t,s){return t?s===t?"current":"other":"global"}const Yo={getOverview:(t=30)=>I.get("/api/support/dashboard/overview",{params:{days:t}}),getByStatus:()=>I.get("/api/support/dashboard/by-status"),getByPriority:()=>I.get("/api/support/dashboard/by-priority"),getByType:(t=30)=>I.get("/api/support/dashboard/by-type",{params:{days:t}}),getAgentWorkload:()=>I.get("/api/support/dashboard/agent-workload"),getTrends:(t=30)=>I.get("/api/support/dashboard/trends",{params:{days:t}}),getSatisfactionStats:(t=30)=>I.get("/api/support/dashboard/satisfaction",{params:{days:t}}),getSlaCompliance:(t=30)=>I.get("/api/support/dashboard/sla-compliance",{params:{days:t}})},ha={getConfigurations:()=>I.get("/api/support/sla/configurations"),updateConfiguration:(t,s)=>I.put(`/api/support/sla/configurations/${t}`,s),getEscalationRules:()=>I.get("/api/support/sla/escalation-rules"),getBreachedTickets:(t=!0,s=!0)=>I.get("/api/support/sla/breached",{params:{responseBreached:t,resolutionBreached:s}}),getTicketsApproachingBreach:(t=60)=>I.get("/api/support/sla/approaching-breach",{params:{warningMinutes:t}}),getMetrics:(t,s)=>I.get("/api/support/sla/metrics",{params:{fromDate:t,toDate:s}}),escalateTicket:(t,s,r)=>I.post(`/api/support/sla/tickets/${t}/escalate`,{level:s,reason:r})},tt={getAll:(t=1,s=20,r,n)=>I.get("/api/support/notifications",{params:{page:t,pageSize:s,isRead:r,tenantId:n}}),getUnread:(t=10)=>I.get("/api/support/notifications/unread",{params:{limit:t}}),getUnreadCount:()=>I.get("/api/support/notifications/unread/count"),markAsRead:t=>I.patch(`/api/support/notifications/${t}/read`),markAllAsRead:()=>I.patch("/api/support/notifications/read-all"),delete:t=>I.delete(`/api/support/notifications/${t}`),deleteAll:()=>I.delete("/api/support/notifications/all"),getPreferences:()=>I.get("/api/support/notifications/preferences"),updatePreferences:t=>I.put("/api/support/notifications/preferences",t)},Et={getAll:(t,s=!0,r)=>I.get("/api/support/templates",{params:{category:t,activeOnly:s,language:r}}),getById:t=>I.get(`/api/support/templates/${t}`),getCategories:()=>I.get("/api/support/templates/categories"),getByCategory:t=>I.get(`/api/support/templates/by-category/${t}`),create:t=>I.post("/api/support/templates",t),update:(t,s)=>I.put(`/api/support/templates/${t}`,s),activate:t=>I.patch(`/api/support/templates/${t}/activate`),deactivate:t=>I.patch(`/api/support/templates/${t}/deactivate`),delete:t=>I.delete(`/api/support/templates/${t}`),render:(t,s)=>I.post(`/api/support/templates/${t}/render`,{variables:s})},os={STARTED:"EntraSyncStarted",COMPLETED:"EntraSyncCompleted",FAILED:"EntraSyncFailed"};function Jo(t,s,r){if(r){const o=s.relatedEntityId,c=t.filter(i=>!(i.type===os.STARTED&&i.relatedEntityId===o));return[s,...c].slice(0,10)}return t.some(o=>o.id===s.id)?t:[s,...t].slice(0,10)}function Qo(t){return{id:t.id,type:t.type,title:t.title,message:t.message,relatedEntityType:t.relatedEntityType,relatedEntityId:t.relatedEntityId,actionUrl:t.actionUrl,isRead:t.isRead,readAt:t.readAt,createdAt:t.createdAt,tenantId:t.tenantId,tenantName:t.tenantName,tenantSlug:t.tenantSlug}}function Zo(){const[t,s]=a.useState(0),[r,n]=a.useState([]),[o,c]=a.useState(!1),{isConnected:i,onNotification:d,onUnreadCountUpdate:u}=Br(),{isFeatureEnabled:m}=Be(),x=m("support");a.useEffect(()=>{const b=d(g=>{const v=Qo(g),j=g.type===os.COMPLETED||g.type===os.FAILED;n(L=>Jo(L,v,j))}),w=u(g=>{s(g)});return()=>{b(),w()}},[d,u]),a.useEffect(()=>{if(!x)return;let b=!1;async function w(){try{const g=await tt.getUnreadCount();b||s(g.count)}catch(g){b||console.error("Failed to load unread count:",g)}}return w(),()=>{b=!0}},[x]);const p=a.useCallback(async()=>{if(x)try{c(!0);const b=await tt.getUnread(10);n(b)}catch(b){console.error("Failed to load notifications:",b)}finally{c(!1)}},[x]),f=a.useCallback(async b=>{try{await tt.markAsRead(b),n(w=>w.map(g=>g.id===b?{...g,isRead:!0}:g)),s(w=>Math.max(0,w-1))}catch(w){console.error("Failed to mark as read:",w)}},[]),y=a.useCallback(async()=>{try{await tt.markAllAsRead(),n(b=>b.map(w=>({...w,isRead:!0}))),s(0)}catch(b){console.error("Failed to mark all as read:",b)}},[]),h=a.useCallback(async b=>{try{await tt.delete(b);const w=r.find(g=>g.id===b);n(g=>g.filter(v=>v.id!==b)),w&&!w.isRead&&s(g=>Math.max(0,g-1))}catch(w){console.error("Failed to delete notification:",w)}},[r]),N=a.useCallback(b=>{tt.markAsRead(b),s(w=>Math.max(0,w-1))},[]);return{notifications:r,unreadCount:t,loading:o,isConnected:i,loadNotifications:p,markAsRead:f,markAllAsRead:y,deleteNotification:h,markAsReadSilent:N}}const yt={STARTED:"EntraSyncStarted",COMPLETED:"EntraSyncCompleted",FAILED:"EntraSyncFailed"};function ga(){const t=S.useNavigate(),{currentTenant:s,hasMultipleTenants:r}=De(),[n,o]=a.useState(!1),c=a.useRef(null),{notifications:i,unreadCount:d,loading:u,isConnected:m,loadNotifications:x,markAsRead:p,markAllAsRead:f,deleteNotification:y,markAsReadSilent:h}=Zo(),[,N]=a.useState(0);a.useEffect(()=>{if(!i.some(A=>A.type===yt.STARTED&&!A.isRead))return;const P=setInterval(()=>{N(A=>A+1)},1e3);return()=>clearInterval(P)},[i]),a.useEffect(()=>{n&&x()},[n,x]),a.useEffect(()=>{const k=P=>{c.current&&!c.current.contains(P.target)&&o(!1)};return document.addEventListener("mousedown",k),()=>document.removeEventListener("mousedown",k)},[]);const b=(k,P)=>{P.stopPropagation(),p(k)},w=(k,P)=>{P.stopPropagation(),y(k)},g=k=>{k.isRead||h(k.id),o(!1),k.actionUrl&&t(k.actionUrl)},v=k=>{switch(k){case"TicketCreated":return"🎫";case"TicketAssigned":return"👤";case"TicketStatusChanged":case"StatusChanged":return"🔄";case"TicketCommented":case"CommentAdded":return"💬";case"TicketResolved":return"✅";case"TicketClosed":return"🔒";case"TicketUpdated":return"📝";case"SlaResponseBreached":case"SlaResolutionBreached":return"⚠️";case"SlaWarning":return"⏰";case"TicketEscalated":return"📈";case"SatisfactionRequested":return"⭐";case"GroupMemberAdded":return"👥";case"GroupMemberRemoved":return"🚪";case"RoleAssigned":return"🎭";case"RoleRemoved":return"🚫";case"RolePermissionsChanged":return"🔑";case"AccountUpdated":return"👤";case"SystemAnnouncement":return"📢";case yt.STARTED:return null;case yt.COMPLETED:return"✅";case yt.FAILED:return"❌";default:return"📌"}},j=k=>{const P=new Date(k).getTime(),A=Date.now(),D=Math.floor((A-P)/1e3),U=Math.floor(D/60),C=D%60;return`${U.toString().padStart(2,"0")}:${C.toString().padStart(2,"0")}`},L=k=>{const P=new Date(k),D=new Date().getTime()-P.getTime(),U=Math.floor(D/6e4),C=Math.floor(U/60),M=Math.floor(C/24);return U<1?"Just now":U<60?`${U}m ago`:C<24?`${C}h ago`:M<7?`${M}d ago`:P.toLocaleDateString()},$=k=>{if(!r)return null;const P=js(k.tenantId,s?.id??null);return P==="global"?e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 border border-purple-200 dark:border-purple-700",children:"System"}):P==="current"?e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--bg-secondary)] text-[var(--text-secondary)] border border-[var(--border-color)] truncate max-w-[120px]",children:k.tenantName}):e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 border border-blue-200 dark:border-blue-700 font-medium truncate max-w-[120px]",children:k.tenantName})};return e.jsxs("div",{className:"relative",ref:c,children:[e.jsxs("button",{onClick:()=>o(!n),className:"relative p-2 rounded-lg hover:bg-[var(--bg-hover)] transition-colors","aria-label":"Notifications",children:[e.jsx(l.Bell,{className:"w-5 h-5"}),d>0&&e.jsx("span",{className:"absolute -top-1 -right-1 w-5 h-5 bg-red-500 text-white text-xs font-bold rounded-full flex items-center justify-center",children:d>9?"9+":d})]}),n&&e.jsxs("div",{className:"absolute right-0 mt-2 w-96 bg-[var(--bg-primary)] rounded-lg shadow-xl border border-[var(--border-color)] z-50 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-[var(--border-color)]",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold",children:"Notifications"}),m?e.jsx("span",{title:"Real-time connected",children:e.jsx(l.Wifi,{className:"w-3 h-3 text-green-500"})}):e.jsx("span",{title:"Offline mode",children:e.jsx(l.WifiOff,{className:"w-3 h-3 text-gray-400"})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[d>0&&e.jsxs("button",{onClick:f,className:"text-sm text-[var(--color-primary-600)] hover:underline flex items-center gap-1",children:[e.jsx(l.CheckCheck,{className:"w-4 h-4"}),"Mark all read"]}),e.jsx("button",{onClick:()=>o(!1),className:"p-1 rounded hover:bg-[var(--bg-hover)]",children:e.jsx(l.X,{className:"w-4 h-4"})})]})]}),e.jsxs("div",{className:"max-h-96 overflow-y-auto",children:[u&&e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--color-primary-600)]"})}),!u&&i.length>0&&i.map(k=>{const P=k.type===yt.STARTED&&!k.isRead,A=v(k.type);return e.jsx("div",{role:"button",tabIndex:0,onClick:()=>g(k),onKeyDown:D=>{(D.key==="Enter"||D.key===" ")&&(D.preventDefault(),g(k))},className:`w-full text-left p-4 border-b border-[var(--border-color)] cursor-pointer hover:bg-[var(--bg-hover)] transition-colors ${k.isRead?"":"bg-blue-50/50 dark:bg-blue-900/10"} ${P?"bg-[var(--color-accent-50)] dark:bg-[var(--color-accent-900)]/20":""}`,children:e.jsxs("div",{className:"flex gap-3",children:[e.jsx("span",{className:"text-xl flex-shrink-0",children:P?e.jsx(l.RefreshCw,{className:"w-5 h-5 text-[var(--color-accent-600)] animate-spin"}):A}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h4",{className:`text-sm ${k.isRead?"":"font-semibold"}`,children:k.title}),$(k)]}),P?e.jsxs("span",{className:"text-xs font-mono font-bold text-[var(--color-accent-600)] flex-shrink-0 bg-[var(--color-accent-100)] px-2 py-0.5 rounded",children:["⏱ ",j(k.createdAt)]}):e.jsx("span",{className:"text-xs text-[var(--text-secondary)] flex-shrink-0",children:L(k.createdAt)})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] line-clamp-2 mt-1",children:k.message})]}),e.jsxs("div",{className:"flex flex-col gap-1 flex-shrink-0",children:[!k.isRead&&!P&&e.jsx("button",{onClick:D=>b(k.id,D),className:"p-1 rounded hover:bg-[var(--bg-secondary)]",title:"Mark as read",children:e.jsx(l.Check,{className:"w-4 h-4 text-green-600"})}),!P&&e.jsx("button",{onClick:D=>w(k.id,D),className:"p-1 rounded hover:bg-[var(--bg-secondary)]",title:"Delete",children:e.jsx(l.Trash2,{className:"w-4 h-4 text-red-500"})})]})]})},k.id)}),!u&&i.length===0&&e.jsxs("div",{className:"py-8 text-center text-[var(--text-secondary)]",children:[e.jsx(l.Bell,{className:"w-12 h-12 mx-auto mb-2 opacity-50"}),e.jsx("p",{children:"No notifications"})]})]}),e.jsx("div",{className:"p-3 border-t border-[var(--border-color)] text-center",children:e.jsx("button",{onClick:()=>{o(!1),t("/notifications")},className:"text-sm text-[var(--color-primary-600)] hover:underline",children:"View all notifications"})})]})]})}const ei={default:{bg:"bg-[var(--bg-tertiary)]",text:"text-[var(--text-primary)]",border:"border-[var(--border-color)]",arrow:"bg-[var(--bg-tertiary)] border-[var(--border-color)]"},error:{bg:"bg-[var(--tooltip-error-bg)]",text:"text-[var(--error-text)]",border:"border-[var(--error-border)]",arrow:"bg-[var(--tooltip-error-bg)] border-[var(--error-border)]"},warning:{bg:"bg-[var(--tooltip-warning-bg)]",text:"text-[var(--warning-text)]",border:"border-[var(--warning-border)]",arrow:"bg-[var(--tooltip-warning-bg)] border-[var(--warning-border)]"},success:{bg:"bg-[var(--tooltip-success-bg)]",text:"text-[var(--success-text)]",border:"border-[var(--success-border)]",arrow:"bg-[var(--tooltip-success-bg)] border-[var(--success-border)]"},info:{bg:"bg-[var(--tooltip-info-bg)]",text:"text-[var(--info-text)]",border:"border-[var(--info-border)]",arrow:"bg-[var(--tooltip-info-bg)] border-[var(--info-border)]"}};function fa({content:t,children:s,position:r="top",variant:n="default",delay:o=200,disabled:c=!1,className:i=""}){const d=ei[n],[u,m]=a.useState(!1),[x,p]=a.useState({top:0,left:0}),f=a.useRef(null),y=a.useRef(null),h=a.useRef(null),N=a.useCallback(()=>{if(!f.current||!y.current)return;const v=f.current.getBoundingClientRect(),j=y.current.getBoundingClientRect(),L=window.scrollX,$=window.scrollY,k=8;let P=0,A=0;switch(r){case"top":P=v.top+$-j.height-k,A=v.left+L+(v.width-j.width)/2;break;case"bottom":P=v.bottom+$+k,A=v.left+L+(v.width-j.width)/2;break;case"left":P=v.top+$+(v.height-j.height)/2,A=v.left+L-j.width-k;break;case"right":P=v.top+$+(v.height-j.height)/2,A=v.right+L+k;break}const D=window.innerWidth,U=window.innerHeight,C=8;A<C?A=C:A+j.width>D-C&&(A=D-j.width-C),P<C+$?P=C+$:P+j.height>U+$-C&&(P=U+$-j.height-C),p({top:P,left:A})},[r]);a.useEffect(()=>(u&&(N(),window.addEventListener("scroll",N,!0),window.addEventListener("resize",N)),()=>{window.removeEventListener("scroll",N,!0),window.removeEventListener("resize",N)}),[u,N]);const b=()=>{c||!t||(h.current=setTimeout(()=>{m(!0)},o))},w=()=>{h.current&&(clearTimeout(h.current),h.current=null),m(!1)};a.useEffect(()=>()=>{h.current&&clearTimeout(h.current)},[]);const g=()=>{const v=`absolute w-2 h-2 ${d.arrow} transform rotate-45`;switch(r){case"top":return`${v} -bottom-1 left-1/2 -translate-x-1/2 border-r border-b`;case"bottom":return`${v} -top-1 left-1/2 -translate-x-1/2 border-l border-t`;case"left":return`${v} -right-1 top-1/2 -translate-y-1/2 border-t border-r`;case"right":return`${v} -left-1 top-1/2 -translate-y-1/2 border-b border-l`}};return e.jsxs(e.Fragment,{children:[e.jsx("div",{ref:f,onMouseEnter:b,onMouseLeave:w,onFocus:b,onBlur:w,className:"inline-flex",children:s}),u&&t&&Ft.createPortal(e.jsxs("div",{ref:y,role:"tooltip",style:{position:"absolute",top:x.top,left:x.left,zIndex:9999},className:`
|
|
3
3
|
px-3 py-2 text-sm font-medium
|
|
4
4
|
${d.bg} ${d.text}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
${i("errors.accessDenied.ticket.navigationContext")}:
|
|
28
28
|
${g.join(`
|
|
29
|
-
`)}`},[y,i]),N=a.useMemo(()=>{if(!t||!r||!s||!n)return null;const v=`${n.replace(/\/applications$/,"")}/support/my-tickets/create`,j=t==="tenant"?"ApplicationRequest":"Support",L=r.split(".")[0],$=t==="tenant"?i("errors.accessDenied.ticket.accessSubject",{permissionPath:r,tenantName:s}):i("errors.accessDenied.ticket.permissionSubject",{permissionPath:r,tenantName:s}),P=(t==="tenant"?i("errors.accessDenied.ticket.accessBody",{appCode:L,tenantName:s,permissionPath:r}):i("errors.accessDenied.ticket.permissionBody",{permissionPath:r,tenantName:s}))+h,A=new URLSearchParams({type:j,subject:$,body:P});return`${v}?${A.toString()}`},[t,r,s,n,i,h]),w=t==="tenant"&&s?i("errors.accessDenied.tenantNotAvailable",{tenantName:s}):t==="permission"&&s?i("errors.accessDenied.permissionMissing",{tenantName:s}):s?i("errors.accessDenied.tenantDescription",{tenantName:s}):i("errors.accessDenied.description");return e.jsx("div",{className:"min-h-[60vh] flex items-center justify-center p-4",children:e.jsx("div",{className:"max-w-lg w-full p-8 bg-[var(--bg-card)] border border-[var(--border-color)] rounded-2xl shadow-xl",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-red-500/10 flex items-center justify-center mb-6",children:e.jsx(l.ShieldX,{className:"w-8 h-8 text-red-500"})}),e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)] mb-2",children:i("errors.accessDenied.title")}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-4",children:w}),f&&e.jsxs("div",{className:"w-full mb-6 bg-[var(--bg-secondary)] rounded-lg border border-[var(--border-color)] divide-y divide-[var(--border-color)]",children:[e.jsxs("div",{className:"p-3",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-1",children:i("errors.accessDenied.requiredPermission")}),e.jsx("p",{className:"text-sm font-mono font-medium text-red-500",children:r})]}),(o?.length??0)>0&&e.jsxs("div",{className:"p-3",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-2",children:i("errors.accessDenied.yourRoles")}),e.jsx("div",{className:"flex flex-wrap gap-1.5 justify-center",children:o?.map(g=>e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-medium bg-[var(--bg-tertiary)] text-[var(--text-secondary)] border border-[var(--border-color)]",children:g},g))})]}),c&&e.jsxs("div",{className:"p-3",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-2",children:i("errors.accessDenied.yourPermissionsFor",{appCode:x??""})}),p.length>0?e.jsx("div",{className:"flex flex-col gap-1 items-start",children:p.map(g=>e.jsx("span",{className:"text-xs font-mono text-[var(--text-secondary)]",children:g},g))}):e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] italic",children:i("errors.accessDenied.noPermissions")})]})]}),!f&&r&&e.jsxs("div",{className:"w-full mb-6 p-3 bg-[var(--bg-secondary)] rounded-lg border border-[var(--border-color)]",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-1",children:i("errors.accessDenied.requiredPermission")}),e.jsx("p",{className:"text-sm font-mono text-[var(--text-primary)]",children:r})]}),e.jsxs("div",{className:"flex flex-col gap-3 w-full",children:[N&&e.jsxs("a",{href:N,className:"flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--color-accent-600)] hover:bg-[var(--color-accent-700)] text-white font-medium transition-all",children:[e.jsx(l.TicketPlus,{className:"w-4 h-4"}),i(t==="tenant"?"errors.accessDenied.requestAccess":"errors.accessDenied.requestPermission")]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full",children:[n?e.jsxs("a",{href:n,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.LayoutGrid,{className:"w-4 h-4"}),i("errors.accessDenied.goToApplications")]}):e.jsxs("button",{onClick:m,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.ArrowLeft,{className:"w-4 h-4"}),i("errors.goBack")]}),e.jsxs("a",{href:"/",className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.Home,{className:"w-4 h-4"}),i("errors.home")]})]})]})]})})})}function Zi(){const{t}=re.useTranslation("common"),{logout:s}=Re();return e.jsx("div",{className:"min-h-[60vh] flex items-center justify-center p-4",children:e.jsx("div",{className:"max-w-lg w-full p-8 bg-[var(--bg-card)] border border-[var(--border-color)] rounded-2xl shadow-xl",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-orange-500/10 flex items-center justify-center mb-6",children:e.jsx(l.Building2,{className:"w-8 h-8 text-orange-500"})}),e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)] mb-2",children:t("errors.noActiveWorkspace.title")}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-6",children:t("errors.noActiveWorkspace.description")}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full",children:[e.jsxs("a",{href:"mailto:support@atlashub.ch",className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--color-accent-600)] hover:bg-[var(--color-accent-700)] text-white font-medium transition-all",children:[e.jsx(l.Mail,{className:"w-4 h-4"}),t("errors.noActiveWorkspace.contactAdmin")]}),e.jsxs("button",{onClick:()=>{s()},className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.LogOut,{className:"w-4 h-4"}),t("errors.noActiveWorkspace.logout")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] mt-6",children:t("errors.noActiveWorkspace.hint")})]})})})}function V(){return e.jsx("div",{className:"flex items-center justify-center min-h-[400px] w-full",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx(l.Loader2,{className:"w-10 h-10 animate-spin text-[var(--color-primary-500)]"}),e.jsx("span",{className:"text-sm text-[var(--color-text-secondary)]",children:"Chargement..."})]})})}function Ra(){const{user:t,isLoading:s}=Re(),r=S.useLocation(),{currentAppCode:n,currentModuleCode:o,isLoading:c,menu:i}=Ae(),{currentTenant:d,userTenants:u,isLoading:m,isGlobalView:x}=De(),p=d?.id||"global",f=a.useRef(null),y=(v,j)=>{const L=`${v}:${j}:${r.pathname}`;f.current!==L&&(f.current=L,I.post("/security/access-denied",{reason:v,permissionPath:j,attemptedPath:r.pathname}).catch(()=>{}))},h=a.useRef(d?.id);let N=!1;if(d?.id!==h.current&&(h.current=d?.id,N=!0),s)return e.jsx(V,{});if(!t)return e.jsx(S.Navigate,{to:"/login",state:{from:r},replace:!0});if(N||c||m||!i)return e.jsx(V,{});if(!d&&!x&&!u.some(j=>j.status==="Active"))return e.jsx(Zi,{});if(!n)return e.jsx(S.Outlet,{},p);if(Fr.includes(n))return e.jsx(S.Outlet,{},p);const w=(i?.applications||[]).find(v=>v.route?.split("/").filter(Boolean)[0]===n||v.code===n);if(w?.isOpen)return e.jsx(S.Outlet,{},p);if(!w){const v=[n,o].filter(Boolean).join("."),j=d?.slug?`/t/${d.slug}/applications`:"/applications";return y("tenant",v),e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Ot,{reason:"tenant",tenantName:d?.name,permissionPath:v,applicationsUrl:j,userRoles:t.roles,userPermissions:t.permissions})})})]})}const g=[n,o].filter(Boolean).join(".");if(!gs(t.permissions,g)&&w.accessLevel!=="RequestAccess"){const v=d?.slug?`/t/${d.slug}/applications`:"/applications";return y("permission",g),e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Ot,{reason:"permission",tenantName:d?.name,permissionPath:g,applicationsUrl:v,userRoles:t.roles,userPermissions:t.permissions})})})]})}return e.jsx(S.Outlet,{},p)}function Vs(){const{slug:t}=S.useParams(),s=S.useNavigate(),r=S.useLocation(),{currentTenant:n,userTenants:o,switchTenant:c,isLoading:i,isGlobalView:d}=De(),{useUrlRouting:u,isLoading:m}=Ut(),x=a.useRef(!1),p=a.useRef(null),f=a.useRef(null);return a.useEffect(()=>{if(i||m||!u||d)return;const y=t||Fs(r.pathname),h=y!==f.current;if(f.current=y,!!h&&y&&y!==n?.slug){const N=o.find(b=>b.slug===y&&b.status==="Active");if(N)p.current=y,c(N.id).then(()=>{p.current=null}).catch(b=>{p.current=null,console.error("[TenantRouteWrapper] Failed to switch tenant:",b)});else if(n){const b=xt(r.pathname);s(`/t/${n.slug}${b}`,{replace:!0})}else s("/",{replace:!0})}},[t,r.pathname,n,o,u,i,m,d,c,s]),a.useEffect(()=>{if(i||m||x.current)return;const y=r.pathname,h=Fs(y);if(d&&h){x.current=!0;const N=xt(y);s(N,{replace:!0}),setTimeout(()=>{x.current=!1},100);return}if(!u&&h){x.current=!0;const N=xt(y);s(N,{replace:!0}),setTimeout(()=>{x.current=!1},100);return}if(u&&n&&!h&&!d&&y!=="/"&&!y.startsWith("/login")&&!y.startsWith("/auth")&&!y.startsWith("/public")){x.current=!0,s(`/t/${n.slug}${y}`,{replace:!0}),setTimeout(()=>{x.current=!1},100);return}if(u&&n&&h&&!d&&h!==n.slug&&h!==p.current){x.current=!0;const N=xt(y);s(`/t/${n.slug}${N}`,{replace:!0}),setTimeout(()=>{x.current=!1},100);return}},[r.pathname,n,u,i,m,d,s]),e.jsx(S.Outlet,{})}function _e({to:t,replace:s=!0}){const{slug:r}=S.useParams(),n=r?`/t/${r}${t}`:t;return e.jsx(S.Navigate,{to:n,replace:s})}function el(){const{t}=re.useTranslation("admin"),{license:s,isHalted:r,haltReason:n}=Be(),o=Qe();return r?e.jsxs("div",{className:"fixed inset-0 z-40 flex items-center justify-center",children:[e.jsx("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm"}),e.jsxs("div",{className:"relative bg-white dark:bg-gray-800 rounded-lg shadow-2xl w-full max-w-md mx-4 overflow-hidden",children:[e.jsx("div",{className:"flex justify-center pt-8 pb-4",children:e.jsx("div",{className:"p-4 bg-red-100 dark:bg-red-900/30 rounded-full",children:e.jsx(l.Lock,{className:"w-10 h-10 text-red-600 dark:text-red-400"})})}),e.jsxs("div",{className:"px-6 pb-6 text-center",children:[e.jsx("h2",{className:"text-xl font-bold text-gray-900 dark:text-white mb-2",children:t("license.halted.title","Licence suspendue")}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-6",children:n||t("license.halted.description","Votre licence a été suspendue. Veuillez contacter votre administrateur pour réactiver la plateforme.")}),e.jsx("div",{className:"flex flex-col gap-3",children:e.jsxs(S.Link,{to:o("/administration/configuration/license"),className:"w-full inline-flex items-center justify-center gap-2 px-4 py-2.5 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors",children:[e.jsx(l.Settings,{className:"w-4 h-4"}),t("license.halted.manageLicense","Manage License")]})})]})]})]}):!s||s.status==="NoLicense"?e.jsx(Ta,{open:!0,onOpenChange:()=>{}}):e.jsxs("div",{className:"fixed inset-0 z-40 flex items-center justify-center",children:[e.jsx("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm"}),e.jsxs("div",{className:"relative bg-white dark:bg-gray-800 rounded-lg shadow-2xl w-full max-w-md mx-4 overflow-hidden",children:[e.jsx("div",{className:"flex justify-center pt-8 pb-4",children:e.jsx("div",{className:"p-4 bg-red-100 dark:bg-red-900/30 rounded-full",children:e.jsx(l.Lock,{className:"w-10 h-10 text-red-600 dark:text-red-400"})})}),e.jsxs("div",{className:"px-6 pb-6 text-center",children:[e.jsx("h2",{className:"text-xl font-bold text-gray-900 dark:text-white mb-2",children:t("license.guard.title","License Required")}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-6",children:t("license.guard.description","Your license has expired or is invalid. Access to this area is restricted. Please activate a valid license to continue using the platform.")}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsxs(S.Link,{to:o("/administration/configuration/license"),className:"w-full inline-flex items-center justify-center gap-2 px-4 py-2.5 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors",children:[e.jsx(l.Settings,{className:"w-4 h-4"}),t("license.guard.manageLicense","Manage License")]}),e.jsxs(S.Link,{to:o("/myspace/profile"),className:"w-full inline-flex items-center justify-center gap-2 px-4 py-2.5 text-sm font-medium text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-600 transition-colors",children:[e.jsx(l.User,{className:"w-4 h-4"}),t("license.guard.myProfile","My Profile")]})]})]})]})]})}const tl=["/myspace","/administration/configuration"];function sl(t){const s=/^\/t\/[^/]+\/(.*)/.exec(t);return s?`/${s[1]}`:t}function Ea(){const{license:t,isLoading:s,isReadOnlyMode:r,isServerDowntimeBlocked:n}=Be(),o=S.useLocation();if(s)return e.jsx(S.Outlet,{});const c=sl(o.pathname);return tl.some(d=>c.startsWith(d))?e.jsx(S.Outlet,{}):!t?.isValid||r||n?e.jsxs(e.Fragment,{children:[e.jsx(S.Outlet,{}),e.jsx(el,{})]}):e.jsx(S.Outlet,{})}function Cs({feature:t}){const{t:s}=re.useTranslation("admin"),{isFeatureEnabled:r,license:n,isLoading:o}=Be();return o?e.jsx(S.Outlet,{}):r(t)?e.jsx(S.Outlet,{}):e.jsx("div",{className:"flex items-center justify-center min-h-[60vh] p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center p-8 bg-gray-50 dark:bg-gray-800/50 rounded-xl border-2 border-dashed border-gray-200 dark:border-gray-700 max-w-md",children:[e.jsx("div",{className:"p-4 bg-gray-100 dark:bg-gray-700 rounded-full mb-4",children:e.jsx(l.Lock,{className:"w-8 h-8 text-gray-400 dark:text-gray-500"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:s("license.featureNotAvailable","Feature Not Available")}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 text-center max-w-sm mb-4",children:s("license.upgradeToAccess","Upgrade your license to access the {{feature}} feature.",{feature:t})}),e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-400 dark:text-gray-500",children:[e.jsx(l.Sparkles,{className:"w-4 h-4"}),e.jsx("span",{children:s("license.currentEdition","Current: {{edition}}",{edition:n?.edition||"Unknown"})})]})]})})}function rl(){return ia(),null}function al(){return S.useInRouterContext()?e.jsx(rl,{}):null}const jt="/api/administration/tenants/tenant-analytics",cs={getDashboardStats:async(t=30)=>await I.get(`${jt}/dashboard`,{params:{period:t}}),getTopTenants:async(t=10,s=30,r="access")=>await I.get(`${jt}/top-tenants`,{params:{limit:t,period:s,sortBy:r}}),getTrends:async(t=30)=>await I.get(`${jt}/trends`,{params:{period:t}}),trackStart:async t=>await I.post(`${jt}/track/start`,{tenantId:t}),trackEnd:async t=>{await I.post(`${jt}/track/end`,{accessId:t})}},nl="/api/administration/tenants/tenant-analytics";function ol(){const{currentTenant:t}=De(),{isAuthenticated:s}=Re(),r=a.useRef(null),n=a.useRef(null),o=a.useRef(!1);a.useEffect(()=>{if(!s)return;const c=window.location.pathname;if(c.startsWith("/auth/")||c.startsWith("/login"))return;const i=t?.id??null;return i===n.current||o.current?void 0:(o.current=!0,(async()=>{if(r.current){try{await cs.trackEnd(r.current)}catch{}r.current=null}if(n.current=i,i)try{const u=await cs.trackStart(i);r.current=u.accessId}catch{r.current=null}o.current=!1})(),()=>{if(r.current){if(!localStorage.getItem("user"))return;fetch(`${nl}/track/end`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessId:r.current}),keepalive:!0}).catch(()=>{}),r.current=null,n.current=null}})},[t?.id,s])}function il(){return ol(),null}const Ws=a.lazy(()=>Promise.resolve().then(()=>Ni).then(t=>({default:t.DocsLayout}))),ll=a.lazy(()=>Promise.resolve().then(()=>require("./DocsIndexPage-BPfi0FQD.js")).then(t=>({default:t.DocsIndexPage}))),cl=a.lazy(()=>Promise.resolve().then(()=>require("./SmartStackPresentationPage-52Nb7F0X.js")).then(t=>({default:t.SmartStackPresentationPage}))),dl=a.lazy(()=>Promise.resolve().then(()=>require("./DeveloperIndexPage-CtBfD2JI.js")).then(t=>({default:t.DeveloperIndexPage}))),ul=a.lazy(()=>Promise.resolve().then(()=>require("./InfrastructurePage-D4ZjLzI_.js")).then(t=>({default:t.InfrastructurePage}))),ml=a.lazy(()=>Promise.resolve().then(()=>require("./InstallationPage-YYNZEPO4.js")).then(t=>({default:t.InstallationPage}))),xl=a.lazy(()=>Promise.resolve().then(()=>require("./DatabasePage-BecBXPio.js")).then(t=>({default:t.DatabasePage}))),pl=a.lazy(()=>Promise.resolve().then(()=>require("./DualDbContextPage-Dz8NAewk.js")).then(t=>({default:t.DualDbContextPage}))),hl=a.lazy(()=>Promise.resolve().then(()=>require("./CrossSchemaFkPage-DqFNORYd.js")).then(t=>({default:t.CrossSchemaFkPage}))),gl=a.lazy(()=>Promise.resolve().then(()=>require("./index-C0AgM8YN.js")).then(t=>({default:t.TenantIndexPage}))),fl=a.lazy(()=>Promise.resolve().then(()=>require("./index-C0AgM8YN.js")).then(t=>({default:t.MultiTenantModePage}))),bl=a.lazy(()=>Promise.resolve().then(()=>require("./index-C0AgM8YN.js")).then(t=>({default:t.TenantB2CPage}))),vl=a.lazy(()=>Promise.resolve().then(()=>require("./TeamsIntegrationPage-DXj5MDRS.js")).then(t=>({default:t.TeamsIntegrationPage}))),yl=a.lazy(()=>Promise.resolve().then(()=>require("./index-CdORB0b4.js")).then(t=>({default:t.SecurityTestingPage}))),jl=a.lazy(()=>Promise.resolve().then(()=>require("./UserIndexPage-DahU6wzK.js")).then(t=>({default:t.UserIndexPage}))),Nl=a.lazy(()=>Promise.resolve().then(()=>require("./ArchitecturePage-Cn_XCDAo.js")).then(t=>({default:t.ArchitecturePage}))),wl=a.lazy(()=>Promise.resolve().then(()=>require("./ModulesPage-lz8DUm3X.js")).then(t=>({default:t.ModulesPage}))),Sl=a.lazy(()=>Promise.resolve().then(()=>require("./SlaDocPage-D44QWNY8.js")).then(t=>({default:t.SlaDocPage}))),Cl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportIndexPage-CsDQ35Cu.js")).then(t=>({default:t.SupportIndexPage}))),kl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportDashboardDocPage-CF6dzYmo.js")).then(t=>({default:t.SupportDashboardDocPage}))),Pl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportTicketsDocPage-B_603CpY.js")).then(t=>({default:t.SupportTicketsDocPage}))),Al=a.lazy(()=>Promise.resolve().then(()=>require("./SupportMyTicketsDocPage-Dbp6XBnH.js")).then(t=>({default:t.SupportMyTicketsDocPage}))),Tl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportTemplatesDocPage-BkeDpR-8.js")).then(t=>({default:t.SupportTemplatesDocPage}))),Rl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportEscalationDocPage-C65oCDZL.js")).then(t=>({default:t.SupportEscalationDocPage}))),El=a.lazy(()=>Promise.resolve().then(()=>require("./AiDocPage-CM7j_50_.js")).then(t=>({default:t.AiDocPage}))),Il=a.lazy(()=>Promise.resolve().then(()=>require("./SettingsDocPage-Dqj8KzOa.js")).then(t=>({default:t.SettingsDocPage}))),Ll=a.lazy(()=>Promise.resolve().then(()=>require("./ThemeDocPage-Dfop2wWC.js")).then(t=>({default:t.ThemeDocPage}))),$l=a.lazy(()=>Promise.resolve().then(()=>require("./BaIndexPage-Df6ld4jp.js")).then(t=>({default:t.BaIndexPage}))),Xs=a.lazy(()=>Promise.resolve().then(()=>require("./BaViewerPage-CX3yS6tI.js")).then(t=>({default:t.BaViewerPage}))),Dl=a.lazy(()=>Promise.resolve().then(()=>require("./index-CO5QP9C1.js"))),Ml=a.lazy(()=>Promise.resolve().then(()=>require("./index-BASU1QDx.js"))),Ol=a.lazy(()=>Promise.resolve().then(()=>require("./index-DYJbiXHU.js"))),Fl=a.lazy(()=>Promise.resolve().then(()=>require("./index-BBQMnq4P.js"))),_l=a.lazy(()=>Promise.resolve().then(()=>require("./index-Bz8ggekC.js"))),Ul=a.lazy(()=>Promise.resolve().then(()=>require("./index-D1WPBG1_.js"))),ql=a.lazy(()=>Promise.resolve().then(()=>require("./index-DIuoVYFu.js"))),Bl=a.lazy(()=>Promise.resolve().then(()=>require("./index-Cdu0fSs8.js"))),zl=a.lazy(()=>Promise.resolve().then(()=>require("./index-BVUCDL0k.js"))),Kl=a.lazy(()=>Promise.resolve().then(()=>require("./index-DRT2wvEs.js"))),Gl=a.lazy(()=>Promise.resolve().then(()=>require("./index-xCGnOlox.js"))),Hl=a.lazy(()=>Promise.resolve().then(()=>require("./index-DQBVnnd6.js"))),Vl=a.lazy(()=>Promise.resolve().then(()=>require("./index-C0rFTzxZ.js"))),Wl=a.lazy(()=>Promise.resolve().then(()=>require("./index-HWG-CG1i.js"))),Xl=a.lazy(()=>Promise.resolve().then(()=>require("./index-DlX3cwCY.js"))),Yl=a.lazy(()=>Promise.resolve().then(()=>require("./index-IuHTxwV6.js"))),Jl=a.lazy(()=>Promise.resolve().then(()=>require("./index-DiazxhY7.js"))),Ql=a.lazy(()=>Promise.resolve().then(()=>require("./index-i8XTb32s.js"))),Zl=a.lazy(()=>Promise.resolve().then(()=>require("./index-BHim8lfc.js"))),ec=a.lazy(()=>Promise.resolve().then(()=>require("./index-BEpBEF5G.js"))),tc=a.lazy(()=>Promise.resolve().then(()=>require("./index-p2jNjCTo.js")));function sc(){return e.jsxs(e.Fragment,{children:[e.jsxs(S.Route,{path:"/system/docs",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ws,{})}),children:[e.jsx(S.Route,{index:!0,element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ll,{})})}),e.jsx(S.Route,{path:"developer",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(dl,{})})}),e.jsx(S.Route,{path:"developer/infrastructure",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ul,{})})}),e.jsx(S.Route,{path:"developer/installation",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ml,{})})}),e.jsx(S.Route,{path:"developer/database",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(xl,{})})}),e.jsx(S.Route,{path:"developer/dual-dbcontext",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(pl,{})})}),e.jsx(S.Route,{path:"developer/cross-schema-fk",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(hl,{})})}),e.jsx(S.Route,{path:"developer/tenants",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(gl,{})})}),e.jsx(S.Route,{path:"developer/tenants/multi-tenant-mode",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(fl,{})})}),e.jsx(S.Route,{path:"developer/tenants/b2c",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(bl,{})})}),e.jsx(S.Route,{path:"developer/multi-tenant-mode",element:e.jsx(S.Navigate,{to:"/system/docs/developer/tenants/multi-tenant-mode",replace:!0})}),e.jsx(S.Route,{path:"developer/teams-integration",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(vl,{})})}),e.jsx(S.Route,{path:"developer/testing/security",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(yl,{})})}),e.jsx(S.Route,{path:"user",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(jl,{})})}),e.jsx(S.Route,{path:"user/architecture",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Nl,{})})}),e.jsx(S.Route,{path:"user/modules",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(wl,{})})}),e.jsx(S.Route,{path:"user/support",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Cl,{})})}),e.jsx(S.Route,{path:"user/support-dashboard",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(kl,{})})}),e.jsx(S.Route,{path:"user/support-tickets",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Pl,{})})}),e.jsx(S.Route,{path:"user/support-my-tickets",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Al,{})})}),e.jsx(S.Route,{path:"user/support-sla",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Sl,{})})}),e.jsx(S.Route,{path:"user/support-templates",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Tl,{})})}),e.jsx(S.Route,{path:"user/support-escalation",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Rl,{})})}),e.jsx(S.Route,{path:"user/ai",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(El,{})})}),e.jsx(S.Route,{path:"user/settings",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Il,{})})}),e.jsx(S.Route,{path:"user/theme",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ll,{})})}),e.jsx(S.Route,{path:"ba",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx($l,{})})}),e.jsx(S.Route,{path:"ba/:appCode",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Xs,{})})}),e.jsx(S.Route,{path:"ba/:appCode/:moduleCode",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Xs,{})})})]}),e.jsxs(S.Route,{path:"/docs/business",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ws,{})}),children:[e.jsx(S.Route,{path:"administration/users",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Dl,{})})}),e.jsx(S.Route,{path:"administration/users/dashboard",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ml,{})})}),e.jsx(S.Route,{path:"administration/users/references",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ol,{})})}),e.jsx(S.Route,{path:"administration/users/groups",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Fl,{})})}),e.jsx(S.Route,{path:"administration/permissions",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(_l,{})})}),e.jsx(S.Route,{path:"administration/permissions/assignments",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ul,{})})}),e.jsx(S.Route,{path:"administration/tenants",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ql,{})})}),e.jsx(S.Route,{path:"administration/tenants/template",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Bl,{})})}),e.jsx(S.Route,{path:"administration/tenants/business",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(zl,{})})}),e.jsx(S.Route,{path:"administration/tenants/personal",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Kl,{})})}),e.jsx(S.Route,{path:"administration/tenants/other",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Gl,{})})}),e.jsx(S.Route,{path:"administration/tenants/applications",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Hl,{})})}),e.jsx(S.Route,{path:"administration/tenants/access-requests",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Vl,{})})}),e.jsx(S.Route,{path:"administration/tenants/organisations",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Wl,{})})}),e.jsx(S.Route,{path:"administration/ai",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Xl,{})})}),e.jsx(S.Route,{path:"administration/workflows",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Yl,{})})}),e.jsx(S.Route,{path:"administration/entra",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Jl,{})})}),e.jsx(S.Route,{path:"administration/applications",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ql,{})})}),e.jsx(S.Route,{path:"administration/configuration",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Zl,{})})}),e.jsx(S.Route,{path:"administration/configuration/license",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ec,{})})}),e.jsx(S.Route,{path:"platform/support/tickets",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(tc,{})})})]}),e.jsx(S.Route,{path:"/system/docs/presentation",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(cl,{})})}),e.jsx(S.Route,{path:"/docs/*",element:e.jsx(S.Navigate,{to:"/system/docs",replace:!0})}),e.jsx(S.Route,{path:"/docs",element:e.jsx(S.Navigate,{to:"/system/docs",replace:!0})})]})}const rc={"administration.configuration.settings":{defaultTab:"general",tabs:["general","file-upload","legal-file"]},"administration.configuration.appsettings":{defaultTab:"infrastructure",tabs:["infrastructure","authentication","logging","email","entra"]}};function ac(){const{t}=re.useTranslation("home"),s=[{icon:l.Users,titleKey:"features.users.title",descKey:"features.users.description",color:"from-blue-500 to-cyan-500"},{icon:l.Bell,titleKey:"features.notifications.title",descKey:"features.notifications.description",color:"from-amber-500 to-orange-500"},{icon:l.HeadphonesIcon,titleKey:"features.support.title",descKey:"features.support.description",color:"from-emerald-500 to-teal-500"},{icon:l.Shield,titleKey:"features.admin.title",descKey:"features.admin.description",color:"from-purple-500 to-pink-500"},{icon:l.Key,titleKey:"features.roles.title",descKey:"features.roles.description",color:"from-red-500 to-rose-500"},{icon:l.Layers,titleKey:"features.architecture.title",descKey:"features.architecture.description",color:"from-indigo-500 to-violet-500"}],r=[{icon:l.Zap,textKey:"benefits.fastStart"},{icon:l.Lock,textKey:"benefits.builtInSecurity"},{icon:l.Rocket,textKey:"benefits.optimalPerformance"}],n=[".NET 10","React 19","TypeScript","EF Core","SQL Server","Tailwind CSS"],o=["modules.levels.context","modules.levels.application","modules.levels.module","modules.levels.section","modules.levels.resource"];return e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("section",{className:"relative pt-32 pb-20 md:pt-40 md:pb-32 overflow-hidden",children:[e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute -top-40 -right-40 w-80 h-80 rounded-full bg-primary-500/10 blur-3xl"}),e.jsx("div",{className:"absolute -bottom-40 -left-40 w-80 h-80 rounded-full bg-accent-500/10 blur-3xl"}),e.jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] rounded-full bg-gradient-to-r from-primary-500/5 to-accent-500/5 blur-3xl"})]}),e.jsx("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"text-center",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary-500/10 border border-primary-500/20 mb-8",children:[e.jsx(l.Zap,{className:"w-4 h-4 text-primary-500"}),e.jsx("span",{className:"text-sm font-medium text-primary-500",children:t("hero.badge")})]}),e.jsxs("h1",{className:"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight mb-6",children:[t("hero.title"),e.jsx("br",{}),e.jsx("span",{className:"gradient-text",children:t("hero.titleHighlight")})]}),e.jsx("p",{className:"max-w-2xl mx-auto text-lg md:text-xl text-[var(--text-secondary)] mb-10",children:t("hero.subtitle")}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4 mb-16",children:[e.jsxs("a",{href:"/register",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-8 py-4 rounded-xl bg-primary-600 hover:bg-primary-700 text-white font-semibold transition-all shadow-lg shadow-primary-500/25 hover:shadow-primary-500/40",children:[t("cta.getStarted"),e.jsx(l.ArrowRight,{className:"w-5 h-5"})]}),e.jsx("a",{href:"#features",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-8 py-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] font-semibold transition-all",children:t("cta.discoverFeatures")})]}),e.jsx("div",{className:"flex flex-wrap items-center justify-center gap-6",children:r.map(c=>e.jsxs("div",{className:"flex items-center gap-2 text-[var(--text-secondary)]",children:[e.jsx(c.icon,{className:"w-5 h-5 text-primary-500"}),e.jsx("span",{children:t(c.textKey)})]},c.textKey))})]})})]}),e.jsx("section",{className:"py-8 bg-[var(--bg-secondary)] border-y border-[var(--border-color)]",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-8 md:gap-12",children:[e.jsx("span",{className:"text-[var(--text-tertiary)] text-sm uppercase tracking-wider",children:t("techStack.builtWith")}),n.map(c=>e.jsx("span",{className:"text-[var(--text-secondary)] font-medium",children:c},c))]})})}),e.jsx("section",{id:"features",className:"py-20 md:py-32",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:t("features.sectionTitle")}),e.jsx("p",{className:"max-w-2xl mx-auto text-[var(--text-secondary)]",children:t("features.sectionDescription")})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:s.map(c=>e.jsxs("div",{className:"group p-6 rounded-2xl bg-[var(--bg-card)] border border-[var(--border-color)] hover-card",children:[e.jsx("div",{className:`w-12 h-12 rounded-xl bg-gradient-to-br ${c.color} flex items-center justify-center mb-4`,children:e.jsx(c.icon,{className:"w-6 h-6 text-white"})}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:t(c.titleKey)}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:t(c.descKey)})]},c.titleKey))})]})}),e.jsx("section",{id:"modules",className:"py-20 md:py-32 bg-[var(--bg-secondary)]",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[e.jsxs("div",{children:[e.jsxs("h2",{className:"text-3xl md:text-4xl font-bold mb-6",children:[t("modules.title"),e.jsx("br",{}),e.jsx("span",{className:"gradient-text",children:t("modules.titleHighlight")})]}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-8",children:t("modules.description")}),e.jsx("ul",{className:"space-y-4 mb-8",children:o.map(c=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-primary-500/10 flex items-center justify-center mt-0.5",children:e.jsx(l.Check,{className:"w-4 h-4 text-primary-500"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:t(c)})]},c))})]}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-primary-500/20 to-accent-500/20 rounded-3xl blur-2xl"}),e.jsx("div",{className:"relative p-8 rounded-3xl bg-[var(--bg-card)] border border-[var(--border-color)]",children:e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{className:"p-4 rounded-xl bg-gradient-to-r from-primary-500/10 to-primary-500/5 border border-primary-500/20",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-primary-500"}),e.jsx("span",{className:"font-semibold text-primary-500",children:t("modules.contextLabel")})]}),e.jsxs("div",{className:"ml-4 mt-3 p-3 rounded-lg bg-accent-500/10 border border-accent-500/20",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-accent-500"}),e.jsx("span",{className:"font-medium text-accent-500",children:t("modules.applicationLabel")})]}),e.jsxs("div",{className:"ml-4 mt-2 space-y-2",children:[e.jsx("div",{className:"p-2 rounded bg-[var(--bg-tertiary)] border border-[var(--border-color)]",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.Users,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("span",{className:"text-sm",children:t("modules.moduleUsers")})]})}),e.jsx("div",{className:"p-2 rounded bg-[var(--bg-tertiary)] border border-[var(--border-color)]",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.Key,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("span",{className:"text-sm",children:t("modules.moduleRoles")})]})})]})]})]})})})]})]})})}),e.jsx("section",{id:"contact",className:"py-20 md:py-32",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsx("div",{className:"relative overflow-hidden rounded-3xl animated-gradient p-px",children:e.jsxs("div",{className:"relative rounded-3xl bg-[var(--bg-primary)] p-8 md:p-16 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:t("cta.readyToStart")}),e.jsx("p",{className:"max-w-2xl mx-auto text-[var(--text-secondary)] mb-8",children:t("cta.startDescription")}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[e.jsxs("a",{href:"/register",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-8 py-4 rounded-xl bg-primary-600 hover:bg-primary-700 text-white font-semibold transition-all shadow-lg shadow-primary-500/25 hover:shadow-primary-500/40",children:[t("cta.createAccount"),e.jsx(l.ArrowRight,{className:"w-5 h-5"})]}),e.jsx("a",{href:"/contact",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-8 py-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] font-semibold transition-all",children:t("cta.contact")})]})]})})})})]})}const nc=(t,s)=>{const r=s.exec(t);return r?r[1]:""},oc=[{detect:t=>t.includes("edg/")||t.includes("edge/"),name:"Edge",pattern:/Edg(?:e)?\/(\d+)/i},{detect:t=>t.includes("opr/")||t.includes("opera"),name:"Opera",pattern:/(?:OPR|Opera)\/(\d+)/i},{detect:t=>t.includes("chrome")&&!t.includes("edg"),name:"Chrome",pattern:/Chrome\/(\d+)/i},{detect:t=>t.includes("safari")&&!t.includes("chrome"),name:"Safari",pattern:/Version\/(\d+)/i},{detect:t=>t.includes("firefox"),name:"Firefox",pattern:/Firefox\/(\d+)/i},{detect:t=>t.includes("msie")||t.includes("trident"),name:"Internet Explorer",pattern:/(?:MSIE |rv:)(\d+)/i}],ic=(t,s)=>{const r=oc.find(n=>n.detect(t));return r?{browser:r.name,version:nc(s,r.pattern)}:{browser:"Unknown",version:""}},lc={"windows nt 10":"10/11","windows nt 6.3":"8.1","windows nt 6.2":"8","windows nt 6.1":"7"},cc=t=>{for(const[s,r]of Object.entries(lc))if(t.includes(s))return r;return""},dc=[{detect:t=>t.includes("windows nt"),name:"Windows",getVersion:t=>cc(t)},{detect:t=>t.includes("windows"),name:"Windows",getVersion:()=>""},{detect:t=>t.includes("iphone"),name:"iOS",getVersion:(t,s)=>{const r=/OS (\d+)_/i.exec(s);return r?r[1]:""}},{detect:t=>t.includes("ipad"),name:"iPadOS",getVersion:(t,s)=>{const r=/OS (\d+)_/i.exec(s);return r?r[1]:""}},{detect:t=>t.includes("mac os x"),name:"macOS",getVersion:(t,s)=>{const r=/Mac OS X (\d+)[._](\d+)/i.exec(s);return r?`${r[1]}.${r[2]}`:""}},{detect:t=>t.includes("android"),name:"Android",getVersion:(t,s)=>{const r=/Android (\d+)/i.exec(s);return r?r[1]:""}},{detect:t=>t.includes("linux"),name:"Linux",getVersion:()=>""},{detect:t=>t.includes("cros"),name:"Chrome OS",getVersion:()=>""}],uc=(t,s)=>{const r=dc.find(n=>n.detect(t));if(r){const n=r.getVersion(t,s);return{os:r.name,version:n}}return{os:"Unknown",version:""}},mc=t=>/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk)/i.test(t)?"Tablet":/(android|webos|iphone|ipod|blackberry|iemobile|opera mini|mobile|phone)/i.test(t)?"Mobile":"Desktop";function xc(t){if(!t)return{browser:"Unknown",browserVersion:"",os:"Unknown",osVersion:"",device:"Unknown",formatted:"Unknown"};const s=t.toLowerCase(),{browser:r,version:n}=ic(s,t),{os:o,version:c}=uc(s,t),i=mc(s);let d=r;if(o!=="Unknown"){const u=n?n+" ":"",m=c?" "+c:"";d=`${r} ${u}sur ${o}${m}`}return{browser:r,browserVersion:n,os:o,osVersion:c,device:i,formatted:d}}function Ia(){const t=navigator.userAgent.toLowerCase();return/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(t)?"tablet":/(android|webos|iphone|ipod|blackberry|iemobile|opera mini|mobile|phone)/.test(t)?"mobile":/(windows|macintosh|linux|x11)/.test(t)?"desktop":"unknown"}async function La(){try{const t=await fetch("https://api.ipify.org?format=json",{method:"GET",signal:AbortSignal.timeout(5e3)});return t.ok&&(await t.json()).ip||null}catch{return null}}function pc(){const[t,s]=a.useState(""),[r,n]=a.useState(""),[o,c]=a.useState(!1),[i,d]=a.useState(!1),[u,m]=a.useState("auth"),[x,p]=a.useState(null),[f]=a.useState(()=>{const h=new URLSearchParams(window.location.search).get("redirect_uri");return h?(sessionStorage.setItem("sso_redirect_uri",h),h):sessionStorage.getItem("sso_redirect_uri")}),y=a.useCallback(async h=>{h.preventDefault(),p(null),m("auth"),d(!0);try{Le.logEvent("login_attempt","auth",{email:t});const N=Ia(),b=await La(),w=await I.post("/api/auth/login",{email:t,password:r,deviceType:N,clientIp:b});localStorage.setItem("user",JSON.stringify(w.user)),Le.logEvent("login_success","auth",{email:t}),m("prefs");try{if(!(await I.get("/api/onboarding/status")).hasCompletedOnboarding){window.location.href="/auth/onboarding";return}}catch{}try{const g=await _t.preferences.get(),v={mode:g.theme||"dark",accentColorKey:g.accentColorKey||"indigo",borderRadius:g.borderRadius||{},itemPaletteKey:g.itemPaletteKey||"neutral"};localStorage.setItem("smartstack-theme-config",JSON.stringify(v)),g.language&&localStorage.setItem("i18nextLng",g.language)}catch{}if(localStorage.removeItem("currentTenantId"),localStorage.removeItem("currentTenantSlug"),localStorage.removeItem("isGlobalView"),f){sessionStorage.removeItem("sso_redirect_uri");const g=f.includes("?")?"&":"?";window.location.href=`${f}${g}token=${encodeURIComponent(w.token)}&refreshToken=${encodeURIComponent(w.refreshToken)}`;return}window.location.href="/myspace"}catch(N){if(N instanceof xs)p({message:N.message,code:"NETWORK_ERROR"});else if(N instanceof br)p({message:N.message,code:N.code});else{const b=N instanceof Error?N.message:"Une erreur inattendue est survenue";p({message:b})}Le.logError(N instanceof Error?N:new Error(String(N)),"LoginPage.handleSubmit",{email:t})}finally{d(!1)}},[t,r,f]);return{email:t,setEmail:s,password:r,setPassword:n,showPassword:o,setShowPassword:c,isLoading:i,loadingStep:u,error:x,handleSubmit:y}}const hc=[{icon:l.Shield,titleKey:"features.security",descKey:"features.securityDesc"},{icon:l.Zap,titleKey:"features.performance",descKey:"features.performanceDesc"},{icon:l.Users,titleKey:"features.collaboration",descKey:"features.collaborationDesc"},{icon:l.BarChart3,titleKey:"features.analytics",descKey:"features.analyticsDesc"}],gc=t=>{switch(t){case"ACCOUNT_DISABLED":return e.jsx(l.UserX,{className:"w-5 h-5 flex-shrink-0"});case"ACCOUNT_LOCKED":return e.jsx(l.Clock,{className:"w-5 h-5 flex-shrink-0"});case"EXTERNAL_AUTH_REQUIRED":return e.jsx(l.KeyRound,{className:"w-5 h-5 flex-shrink-0"});case"NETWORK_ERROR":return e.jsx(l.WifiOff,{className:"w-5 h-5 flex-shrink-0"});default:return e.jsx(l.AlertCircle,{className:"w-5 h-5 flex-shrink-0"})}},fc=t=>{switch(t){case"ACCOUNT_DISABLED":return"bg-orange-500/10 border-orange-500/20 text-orange-600 dark:text-orange-400";case"ACCOUNT_LOCKED":return"bg-amber-500/10 border-amber-500/20 text-amber-600 dark:text-amber-400";case"EXTERNAL_AUTH_REQUIRED":return"bg-blue-500/10 border-blue-500/20 text-blue-600 dark:text-blue-400";case"NETWORK_ERROR":return"bg-gray-500/10 border-gray-500/20 text-gray-600 dark:text-gray-400";default:return"bg-red-500/10 border-red-500/20 text-red-500"}};function bc(){const{t}=re.useTranslation("auth"),{email:s,setEmail:r,password:n,setPassword:o,showPassword:c,setShowPassword:i,isLoading:d,loadingStep:u,error:m,handleSubmit:x}=pc();return e.jsxs("div",{className:"min-h-screen flex",children:[e.jsxs("div",{className:"hidden lg:flex lg:w-1/2 xl:w-[55%] relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 animated-gradient"}),e.jsx("div",{className:"absolute inset-0 opacity-10",style:{backgroundImage:"radial-gradient(circle at 1px 1px, white 1px, transparent 0)",backgroundSize:"40px 40px"}}),e.jsx("div",{className:"absolute top-20 left-20 w-72 h-72 bg-white/10 rounded-full blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute bottom-20 right-20 w-96 h-96 bg-white/10 rounded-full blur-3xl animate-pulse",style:{animationDelay:"1s"}}),e.jsx("div",{className:"absolute top-1/2 left-1/3 w-64 h-64 bg-white/5 rounded-full blur-2xl animate-pulse",style:{animationDelay:"2s"}}),e.jsxs("div",{className:"relative z-10 flex flex-col justify-between p-12 xl:p-16 text-white w-full",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-12 h-12 bg-white/20 backdrop-blur-sm rounded-xl flex items-center justify-center",children:e.jsx(l.Layers,{className:"w-7 h-7 text-white"})}),e.jsx("span",{className:"text-2xl font-bold",children:"SmartStack"})]}),e.jsxs("div",{className:"max-w-lg",children:[e.jsx("h1",{className:"text-4xl xl:text-5xl font-bold leading-tight mb-6",children:t("login.heroTitle")}),e.jsx("p",{className:"text-xl text-white/80 mb-12",children:t("login.heroSubtitle")}),e.jsx("div",{className:"grid grid-cols-2 gap-6",children:hc.map(p=>e.jsxs("div",{className:"bg-white/10 backdrop-blur-sm rounded-2xl p-5 hover:bg-white/15 transition-colors",children:[e.jsx(p.icon,{className:"w-8 h-8 mb-3 text-white/90"}),e.jsx("h3",{className:"font-semibold mb-1",children:t(p.titleKey)}),e.jsx("p",{className:"text-sm text-white/70",children:t(p.descKey)})]},p.titleKey))})]}),e.jsxs("p",{className:"text-sm text-white/60",children:["© ",new Date().getFullYear()," SmartStack — ",t("login.tagline")]})]})]}),e.jsxs("div",{className:"w-full lg:w-1/2 xl:w-[45%] flex flex-col relative bg-[var(--bg-primary)]",children:[e.jsx("div",{className:"lg:hidden absolute inset-0",children:e.jsxs("div",{className:"absolute inset-0 overflow-hidden",children:[e.jsx("div",{className:"absolute -top-40 -right-40 w-96 h-96 rounded-full bg-primary-500/20 blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute -bottom-40 -left-40 w-96 h-96 rounded-full bg-accent-500/20 blur-3xl animate-pulse",style:{animationDelay:"1s"}})]})}),e.jsxs("div",{className:"absolute top-6 right-6 z-10 flex items-center gap-2",children:[e.jsx("a",{href:"/",className:"p-2 rounded-lg bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] transition-colors",title:t("login.backToHome"),children:e.jsx(l.Home,{className:"w-5 h-5 text-[var(--text-secondary)]"})}),e.jsx(Ht,{})]}),e.jsx("div",{className:"flex-1 flex items-center justify-center p-6 sm:p-8 lg:p-12",children:e.jsxs("div",{className:"w-full max-w-md relative",children:[e.jsxs("div",{className:"lg:hidden flex flex-col items-center mb-8",children:[e.jsx("div",{className:"w-16 h-16 rounded-2xl animated-gradient flex items-center justify-center mb-4 shadow-lg",children:e.jsx(l.Layers,{className:"w-8 h-8 text-white"})}),e.jsx("h1",{className:"text-2xl font-bold",children:"SmartStack"})]}),e.jsxs("div",{className:"hidden lg:block mb-8",children:[e.jsx("h2",{className:"text-3xl font-bold mb-2",children:t("login.welcome")}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:t("login.welcomeSubtitle")})]}),m&&e.jsxs("div",{className:`mb-6 p-4 rounded-xl border text-sm flex items-start gap-3 ${fc(m.code)}`,children:[gc(m.code),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"font-medium",children:m.message}),m.code==="ACCOUNT_DISABLED"&&e.jsx("p",{className:"text-xs mt-1 opacity-80",children:t("login.contactSupport")}),m.code==="EXTERNAL_AUTH_REQUIRED"&&e.jsx("p",{className:"text-xs mt-1 opacity-80",children:t("login.useExternalAuth")})]})]}),e.jsxs("form",{onSubmit:x,className:"space-y-5",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"email",className:"block text-sm font-medium mb-2",children:t("login.email")}),e.jsxs("div",{className:"relative",children:[e.jsx(l.Mail,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-[var(--text-tertiary)]"}),e.jsx("input",{id:"email",type:"email",value:s,onChange:p=>r(p.target.value),placeholder:t("login.emailPlaceholder"),required:!0,className:"w-full pl-12 pr-4 py-3.5 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border-color)] focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20 outline-none transition-all placeholder:text-[var(--text-tertiary)]"})]})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"password",className:"block text-sm font-medium mb-2",children:t("login.password")}),e.jsxs("div",{className:"relative",children:[e.jsx(l.Lock,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-[var(--text-tertiary)]"}),e.jsx("input",{id:"password",type:c?"text":"password",value:n,onChange:p=>o(p.target.value),placeholder:"••••••••",required:!0,className:"w-full pl-12 pr-12 py-3.5 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border-color)] focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20 outline-none transition-all placeholder:text-[var(--text-tertiary)]"}),e.jsx("button",{type:"button",onClick:()=>i(!c),className:"absolute right-4 top-1/2 -translate-y-1/2 text-[var(--text-tertiary)] hover:text-[var(--text-primary)] transition-colors",children:c?e.jsx(l.EyeOff,{className:"w-5 h-5"}):e.jsx(l.Eye,{className:"w-5 h-5"})})]})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"w-4 h-4 rounded border-[var(--border-color)] bg-[var(--bg-tertiary)] text-primary-600 focus:ring-primary-500/20"}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:t("login.rememberMe")})]}),e.jsx("a",{href:"/forgot-password",className:"text-primary-500 hover:text-primary-600 font-medium transition-colors",children:t("login.forgotPassword")})]}),e.jsx("button",{type:"submit",disabled:d,className:"w-full py-3.5 px-4 rounded-xl bg-primary-600 hover:bg-primary-700 disabled:bg-primary-600/50 text-white font-semibold transition-all shadow-lg shadow-primary-500/25 hover:shadow-primary-500/40 disabled:shadow-none flex items-center justify-center gap-2",children:d?e.jsxs(e.Fragment,{children:[e.jsx(l.Loader2,{className:"w-5 h-5 animate-spin"}),t(u==="auth"?"login.loading":"login.loadingPreferences")]}):t("login.submit")})]}),e.jsxs("div",{className:"relative my-8",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("div",{className:"w-full border-t border-[var(--border-color)]"})}),e.jsx("div",{className:"relative flex justify-center text-sm",children:e.jsx("span",{className:"px-4 bg-[var(--bg-primary)] text-[var(--text-tertiary)]",children:t("login.or")})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("button",{type:"button",onClick:()=>window.location.href="/api/auth/microsoft",className:"flex items-center justify-center gap-3 py-3.5 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] font-medium transition-all",children:[e.jsxs("svg",{className:"w-5 h-5",viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("rect",{x:"1",y:"1",width:"9",height:"9",fill:"#F25022"}),e.jsx("rect",{x:"11",y:"1",width:"9",height:"9",fill:"#7FBA00"}),e.jsx("rect",{x:"1",y:"11",width:"9",height:"9",fill:"#00A4EF"}),e.jsx("rect",{x:"11",y:"11",width:"9",height:"9",fill:"#FFB900"})]}),"Microsoft"]}),e.jsxs("button",{type:"button",onClick:()=>window.location.href="/api/auth/google",className:"flex items-center justify-center gap-3 py-3.5 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] font-medium transition-all",children:[e.jsxs("svg",{className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),e.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),e.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),e.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]}),"Google"]})]}),e.jsxs("p",{className:"text-center text-[var(--text-secondary)] mt-8",children:[t("login.noAccount")," ",e.jsx("a",{href:"/register",className:"text-primary-500 hover:text-primary-600 font-semibold transition-colors",children:t("login.createAccount")})]})]})}),e.jsx("div",{className:"p-6 text-center",children:e.jsx("p",{className:"text-sm text-[var(--text-tertiary)]",children:t("login.copyright",{year:new Date().getFullYear()})})})]})]})}function vc(){const{t}=re.useTranslation("common"),s=S.useNavigate(),r=()=>{window.history.length>2?s(-1):s("/")};return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-[var(--bg-primary)] p-4",children:e.jsx("div",{className:"max-w-md w-full p-8 bg-[var(--bg-card)] border border-[var(--border-color)] rounded-2xl shadow-xl",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-yellow-500/10 flex items-center justify-center mb-6",children:e.jsx(l.FileWarning,{className:"w-8 h-8 text-yellow-500"})}),e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)] mb-2",children:t("errors.notFound.title")}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-6",children:t("errors.notFound.description")}),e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] mb-6 font-mono",children:window.location.pathname}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full",children:[e.jsxs("button",{onClick:r,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--color-accent-600)] hover:bg-[var(--color-accent-700)] text-white font-medium transition-all",children:[e.jsx(l.ArrowLeft,{className:"w-4 h-4"}),t("errors.goBack")]}),e.jsxs("a",{href:"/",className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.Home,{className:"w-4 h-4"}),t("errors.home")]})]})]})})})}function We({component:t}){return e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(t,{})})}const yc=a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsPage-BqfNR-kc.js")).then(t=>({default:t.ApplicationsPage}))),jc=a.lazy(()=>Promise.resolve().then(()=>require("./NotificationsPage-CLHfVUxm.js")).then(t=>({default:t.NotificationsPage}))),Nc=a.lazy(()=>Promise.resolve().then(()=>wi).then(t=>({default:t.PublicLayout}))),es=a.lazy(()=>Promise.resolve().then(()=>gi).then(t=>({default:t.AppLayout}))),wc=a.lazy(()=>Promise.resolve().then(()=>require("./RegisterPage-asdx33fV.js")).then(t=>({default:t.RegisterPage}))),Sc=a.lazy(()=>Promise.resolve().then(()=>require("./ConfirmEmailPage-CkN8IfP-.js")).then(t=>({default:t.ConfirmEmailPage}))),Cc=a.lazy(()=>Promise.resolve().then(()=>require("./ForgotPasswordPage-CzpAkP5R.js")).then(t=>({default:t.ForgotPasswordPage}))),kc=a.lazy(()=>Promise.resolve().then(()=>require("./ResetPasswordPage-B4Dj24vU.js")).then(t=>({default:t.ResetPasswordPage}))),Pc=a.lazy(()=>Promise.resolve().then(()=>require("./ForceChangePasswordPage-ClDXluX1.js")).then(t=>({default:t.ForceChangePasswordPage}))),Ac=a.lazy(()=>Promise.resolve().then(()=>require("./AuthCallbackPage-CuS-efzY.js")).then(t=>({default:t.AuthCallbackPage}))),Tc=a.lazy(()=>Promise.resolve().then(()=>require("./OnboardingWizardPage-D1rzD6gR.js")).then(t=>({default:t.OnboardingWizardPage}))),Rc={".detail":"/:id",".edit":"/:id/edit",".create":"/create",".new":"/new",".duplicate":"/:id/duplicate",".settings":"/:id/settings",".configure":"/:id/configure",".permissions":"/:id/permissions",".members":"/:id/members",".history":"/:id/history",".logs":"/:id/logs",".analytics":"/:id/analytics",".preview":"/:id/preview",".versions":"/:id/versions",".comments":"/:id/comments",".attachments":"/:id/attachments",".audit":"/:id/audit",".export":"/:id/export",".notifications":"/:id/notifications",".schedule":"/:id/schedule",".workflow":"/:id/workflow",".summary":"/:id/summary",".test":"/:id/test",".runs":"/:id/runs",".import":"/import"};function ks(t,s){const r=[];for(const[n,o]of Object.entries(Rc)){const c=`${t}${n}`,i=O.resolve(c);if(i){const d=s.replace(/^\//,"")+o;r.push({path:d,Component:i})}}return r}function Ec(t,s,r,n){const o=[],c=r.route?.replace(`/${n}/`,"")||`${t.code}/${s.code}/${r.code}`,i=O.resolve(r.componentKey);if(i&&o.push(e.jsx(S.Route,{path:c,element:e.jsx(We,{component:i})},r.componentKey)),r.route)for(const d of ks(r.componentKey,c))o.push(e.jsx(S.Route,{path:d.path,element:e.jsx(We,{component:d.Component})},`${r.componentKey}-implicit-${d.path}`));return o}function Ic(t,s,r){const n=[],o=s.route?.replace(`/${r}/`,"")||`${t.code}/${s.code}`,c=rc[s.componentKey];if(c){const d=O.resolve(s.componentKey);if(d){const u=c.tabs.map(m=>{const x=`${s.componentKey}.${m}`,p=O.resolve(x);return p?e.jsx(S.Route,{path:m,element:e.jsx(We,{component:p})},x):null}).filter(Boolean);return n.push(e.jsxs(S.Route,{path:o,element:e.jsx(We,{component:d}),children:[e.jsx(S.Route,{index:!0,element:e.jsx(S.Navigate,{to:c.defaultTab,replace:!0})}),u]},s.componentKey)),n}}const i=O.resolve(s.componentKey);if(i&&n.push(e.jsx(S.Route,{path:o,element:e.jsx(We,{component:i})},s.componentKey)),!i&&s.resources.length>0){const d=s.resources[0];n.push(e.jsx(S.Route,{path:o,element:e.jsx(S.Navigate,{to:d.code,replace:!0})},`${s.componentKey}-redirect`))}if(s.route)for(const d of ks(s.componentKey,o))n.push(e.jsx(S.Route,{path:d.path,element:e.jsx(We,{component:d.Component})},`${s.componentKey}-implicit-${d.path}`));for(const d of s.resources){const u=Ec(t,s,d,r);n.push(...u)}return n}function Lc(t,s){const r=[],n=t.route?.replace(`/${s}/`,"")||t.code,o=O.resolve(t.componentKey);if(o&&r.push(e.jsx(S.Route,{path:n,element:e.jsx(We,{component:o})},t.componentKey)),!o&&t.sections.length>0){const c=t.sections[0];r.push(e.jsx(S.Route,{path:n,element:e.jsx(S.Navigate,{to:c.code,replace:!0})},`${t.componentKey}-redirect`))}if(t.route)for(const c of ks(t.componentKey,n))r.push(e.jsx(S.Route,{path:c.path,element:e.jsx(We,{component:c.Component})},`${t.componentKey}-implicit-${c.path}`));for(const c of t.sections){const i=Ic(t,c,s);r.push(...i)}return r}function $c(t){const s=[],r=O.resolve(t.componentKey);if(r)s.push(e.jsx(S.Route,{index:!0,element:e.jsx(We,{component:r})},`${t.code}-index`));else if(t.modules.length>0){const n=t.modules[0],o=n.route?.replace(/^\//,"").replace(new RegExp(`^${t.code}/?`),"")||n.code;s.push(e.jsx(S.Route,{index:!0,element:e.jsx(S.Navigate,{to:o,replace:!0})},`${t.code}-index`))}for(const n of t.modules){const o=Lc(n,t.code);n.requiredFeature?s.push(e.jsx(S.Route,{element:e.jsx(Cs,{feature:n.requiredFeature}),children:o},`feature-${n.componentKey}`)):s.push(...o)}return s}function Dc(t,s){return t.requiredFeature?[e.jsx(S.Route,{element:e.jsx(Cs,{feature:t.requiredFeature}),children:s},`feature-${t.code}`)]:s}function Mc(t){switch(t){case"administration":return[e.jsx(S.Route,{path:"settings",element:e.jsx(S.Navigate,{to:"../configuration/settings",relative:"path",replace:!0})},"legacy-settings"),e.jsx(S.Route,{path:"settings/*",element:e.jsx(_e,{to:"/administration/configuration/settings"})},"legacy-settings-wc"),e.jsx(S.Route,{path:"appsettings",element:e.jsx(S.Navigate,{to:"../configuration/appsettings",relative:"path",replace:!0})},"legacy-appsettings"),e.jsx(S.Route,{path:"appsettings/*",element:e.jsx(_e,{to:"/administration/configuration/appsettings"})},"legacy-appsettings-wc"),e.jsx(S.Route,{path:"email-templates",element:e.jsx(S.Navigate,{to:"../workflows/email-templates",relative:"path",replace:!0})},"legacy-email-templates"),e.jsx(S.Route,{path:"email-templates/list",element:e.jsx(S.Navigate,{to:"../../workflows/email-templates",relative:"path",replace:!0})},"legacy-email-templates-list"),e.jsx(S.Route,{path:"email-templates/create",element:e.jsx(S.Navigate,{to:"../../workflows/email-templates/create",relative:"path",replace:!0})},"legacy-email-templates-create"),e.jsx(S.Route,{path:"workflows/templates",element:e.jsx(S.Navigate,{to:"../email-templates",relative:"path",replace:!0})},"legacy-wf-templates"),e.jsx(S.Route,{path:"workflows/templates/*",element:e.jsx(_e,{to:"/administration/workflows/email-templates"})},"legacy-wf-templates-wc"),e.jsx(S.Route,{path:"tenants/business",element:e.jsx(S.Navigate,{to:"../tenants/list/enterprise",replace:!0})},"legacy-tenants-biz"),e.jsx(S.Route,{path:"tenants/personal",element:e.jsx(S.Navigate,{to:"../tenants/list/personal",replace:!0})},"legacy-tenants-perso")];case"support":return[e.jsx(S.Route,{path:"dashboard",element:e.jsx(S.Navigate,{to:"tickets",replace:!0})},"legacy-dashboard"),e.jsx(S.Route,{path:"sla",element:e.jsx(S.Navigate,{to:"admin/sla",replace:!0})},"legacy-sla"),e.jsx(S.Route,{path:"templates",element:e.jsx(S.Navigate,{to:"admin/templates",replace:!0})},"legacy-templates"),e.jsx(S.Route,{path:"admin/escalation",element:e.jsx(S.Navigate,{to:"tickets/escalation",replace:!0})},"legacy-admin-esc")];default:return[]}}function Oc(){const{isLoading:t,menu:s}=Ae(),{currentTenant:r}=De(),{user:n}=Re(),o=S.useLocation();if(t||!s)return e.jsx(V,{});const c=o.pathname.split("/").filter(Boolean),i=c[0]==="t"?c.slice(2):c,d=i.slice(0,2).join("."),u=r?.slug?`/t/${r.slug}/applications`:"/applications",m=i[0]?.toLowerCase(),x=n?.permissions??[];if(d&&gs(x,d)){if(m?s?.applications.some(b=>b.code?.toLowerCase()===m||b.route?.split("/").filter(Boolean)[0]===m):!1)return e.jsx(V,{});const h=m+".";if(m?O.keys().some(b=>b===m||b.startsWith(h)):!1){const w=s?.applications.some(g=>g.code?.toLowerCase()===m)??!1?"permission":"tenant";return e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Ot,{reason:w,tenantName:r?.name,permissionPath:d||void 0,applicationsUrl:u,userRoles:n?.roles,userPermissions:x})})})]})}return e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Aa,{})})})]})}const f=(m?s?.applications.some(y=>y.code?.toLowerCase()===m)??!1:!1)?"permission":"tenant";return e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Ot,{reason:f,tenantName:r?.name,permissionPath:d||void 0,applicationsUrl:u,userRoles:n?.roles,userPermissions:x})})})]})}function Fc(){const{isLoading:t}=Ae();return!!localStorage.getItem("user")&&t?e.jsx(V,{}):e.jsx(vc,{})}function _c(){const{menu:t,isLoading:s}=Ae(),r=a.useMemo(()=>!t||s?[]:t.applications.map(o=>{const c=o.route?.replace(/^\//,"")||o.code,i=$c(o),d=Dc(o,i),u=Mc(o.code);return e.jsxs(S.Route,{path:c,element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(es,{})}),children:[d,u]},o.code)}),[t,s]),n=e.jsx(e.Fragment,{children:e.jsx(S.Route,{element:e.jsx(Ra,{}),children:e.jsxs(S.Route,{element:e.jsx(Ea,{}),children:[r,e.jsx(S.Route,{path:"applications",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(es,{})}),children:e.jsx(S.Route,{index:!0,element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(yc,{})})})}),e.jsx(S.Route,{path:"notifications",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(es,{})}),children:e.jsx(S.Route,{index:!0,element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(jc,{})})})}),e.jsx(S.Route,{path:"administration/external-apps",element:e.jsx(_e,{to:"/api/accounts/list"})}),e.jsx(S.Route,{path:"administration/external-apps/*",element:e.jsx(_e,{to:"/api/accounts/list"})}),e.jsx(S.Route,{path:"api/external-apps",element:e.jsx(_e,{to:"/api/accounts/list"})}),e.jsx(S.Route,{path:"api/external-apps/*",element:e.jsx(_e,{to:"/api/accounts/list"})}),e.jsx(S.Route,{path:"support-client",element:e.jsx(_e,{to:"/support/my-tickets"})}),e.jsx(S.Route,{path:"support-client/*",element:e.jsx(_e,{to:"/support/my-tickets"})}),e.jsx(S.Route,{path:"user",element:e.jsx(_e,{to:"/myspace"})}),e.jsx(S.Route,{path:"user/*",element:e.jsx(_e,{to:"/myspace"})}),e.jsx(S.Route,{path:"*",element:e.jsx(Oc,{})})]})})});return e.jsxs(a.Suspense,{fallback:e.jsx(V,{}),children:[e.jsx(al,{}),e.jsx(il,{}),e.jsxs(S.Routes,{children:[e.jsx(S.Route,{path:"/",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Nc,{})}),children:e.jsx(S.Route,{index:!0,element:e.jsx(ac,{})})}),sc(),e.jsx(S.Route,{path:"/login",element:e.jsx(bc,{})}),e.jsx(S.Route,{path:"/register",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(wc,{})})}),e.jsx(S.Route,{path:"/confirm-email",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Sc,{})})}),e.jsx(S.Route,{path:"/forgot-password",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Cc,{})})}),e.jsx(S.Route,{path:"/reset-password",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(kc,{})})}),e.jsx(S.Route,{path:"/force-change-password",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Pc,{})})}),e.jsx(S.Route,{path:"/auth/callback",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ac,{})})}),e.jsx(S.Route,{path:"/auth/onboarding",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Tc,{})})}),e.jsx(S.Route,{path:"/t/:slug",element:e.jsx(Vs,{}),children:n}),e.jsx(S.Route,{element:e.jsx(Vs,{}),children:n}),e.jsx(S.Route,{path:"/admin",element:e.jsx(S.Navigate,{to:"/administration",replace:!0})}),e.jsx(S.Route,{path:"/platform",element:e.jsx(S.Navigate,{to:"/administration",replace:!0})}),e.jsx(S.Route,{path:"/platform/admin/*",element:e.jsx(S.Navigate,{to:"/administration",replace:!0})}),e.jsx(S.Route,{path:"/platform/administration/*",element:e.jsx(S.Navigate,{to:"/administration",replace:!0})}),e.jsx(S.Route,{path:"/platform/support/*",element:e.jsx(S.Navigate,{to:"/support",replace:!0})}),e.jsx(S.Route,{path:"/dashboard",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/personal",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/personal/myspace",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/personal/myspace/*",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/user",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/user/*",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/business",element:e.jsx(S.Navigate,{to:"/applications",replace:!0})}),e.jsx(S.Route,{path:"/business/support-client/*",element:e.jsx(S.Navigate,{to:"/support/my-tickets",replace:!0})}),e.jsx(S.Route,{path:"/support-client/*",element:e.jsx(S.Navigate,{to:"/support/my-tickets",replace:!0})}),e.jsx(S.Route,{path:"/support-client",element:e.jsx(S.Navigate,{to:"/support/my-tickets",replace:!0})}),e.jsx(S.Route,{path:"*",element:e.jsx(Fc,{})})]})]})}function Ys({name:t,className:s}){const n=ft[t];return n?e.jsx(n,{className:s}):e.jsx(l.Star,{className:s})}function Uc(t,s){return t?"bg-[var(--color-accent-100)] border border-[var(--color-accent-500)]":s?"opacity-50 cursor-not-allowed bg-[var(--bg-secondary)]":"bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] border border-transparent hover:border-[var(--border-color)]"}function $a({isOpen:t,onClose:s}){const{t:r}=re.useTranslation(["common","navigation"]),{menu:n}=Ae(),{favorites:o,toggleFavorite:c,isFavorite:i,canAddMore:d,maxFavorites:u}=Ge();if(!t)return null;const m=[];n?.applications.forEach(p=>{(p.modules?.length??0)>0&&m.push({app:p,modules:p.modules})});const x=(p,f)=>{const y=[...p.sections||[]].sort((b,w)=>b.displayOrder-w.displayOrder),h=y.length>0&&y[0].route?y[0].route:`/${f.code}/${p.code}`,N={id:p.id,code:p.code,label:p.label,icon:p.icon||"Star",route:h,applicationCode:f.code,applicationLabel:f.label};c(N)};return e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-[var(--radius-modal)] shadow-xl w-full max-w-lg max-h-[80vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-[var(--border-color)]",children:[e.jsxs("div",{children:[e.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[e.jsx(l.Star,{className:"w-5 h-5 text-[var(--color-accent-500)]"}),r("common:favorites.manageTitle")]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:r("common:favorites.selectModules",{count:o.length,max:u})})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>{const p={component:"FavoritesModal",url:window.location.href},f=`https://github.com/anthropics/claude-code/issues/new?title=${encodeURIComponent("[Bug] Favorites Modal")}&body=${encodeURIComponent(`## Context
|
|
29
|
+
`)}`},[y,i]),N=a.useMemo(()=>{if(!t||!r||!s||!n)return null;const v=`${n.replace(/\/applications$/,"")}/support/my-tickets/create`,j=t==="tenant"?"ApplicationRequest":"Support",L=r.split(".")[0],$=t==="tenant"?i("errors.accessDenied.ticket.accessSubject",{permissionPath:r,tenantName:s}):i("errors.accessDenied.ticket.permissionSubject",{permissionPath:r,tenantName:s}),P=(t==="tenant"?i("errors.accessDenied.ticket.accessBody",{appCode:L,tenantName:s,permissionPath:r}):i("errors.accessDenied.ticket.permissionBody",{permissionPath:r,tenantName:s}))+h,A=new URLSearchParams({type:j,subject:$,body:P});return`${v}?${A.toString()}`},[t,r,s,n,i,h]),w=t==="tenant"&&s?i("errors.accessDenied.tenantNotAvailable",{tenantName:s}):t==="permission"&&s?i("errors.accessDenied.permissionMissing",{tenantName:s}):s?i("errors.accessDenied.tenantDescription",{tenantName:s}):i("errors.accessDenied.description");return e.jsx("div",{className:"min-h-[60vh] flex items-center justify-center p-4",children:e.jsx("div",{className:"max-w-lg w-full p-8 bg-[var(--bg-card)] border border-[var(--border-color)] rounded-2xl shadow-xl",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-red-500/10 flex items-center justify-center mb-6",children:e.jsx(l.ShieldX,{className:"w-8 h-8 text-red-500"})}),e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)] mb-2",children:i("errors.accessDenied.title")}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-4",children:w}),f&&e.jsxs("div",{className:"w-full mb-6 bg-[var(--bg-secondary)] rounded-lg border border-[var(--border-color)] divide-y divide-[var(--border-color)]",children:[e.jsxs("div",{className:"p-3",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-1",children:i("errors.accessDenied.requiredPermission")}),e.jsx("p",{className:"text-sm font-mono font-medium text-red-500",children:r})]}),(o?.length??0)>0&&e.jsxs("div",{className:"p-3",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-2",children:i("errors.accessDenied.yourRoles")}),e.jsx("div",{className:"flex flex-wrap gap-1.5 justify-center",children:o?.map(g=>e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-medium bg-[var(--bg-tertiary)] text-[var(--text-secondary)] border border-[var(--border-color)]",children:g},g))})]}),c&&e.jsxs("div",{className:"p-3",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-2",children:i("errors.accessDenied.yourPermissionsFor",{appCode:x??""})}),p.length>0?e.jsx("div",{className:"flex flex-col gap-1 items-start",children:p.map(g=>e.jsx("span",{className:"text-xs font-mono text-[var(--text-secondary)]",children:g},g))}):e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] italic",children:i("errors.accessDenied.noPermissions")})]})]}),!f&&r&&e.jsxs("div",{className:"w-full mb-6 p-3 bg-[var(--bg-secondary)] rounded-lg border border-[var(--border-color)]",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-1",children:i("errors.accessDenied.requiredPermission")}),e.jsx("p",{className:"text-sm font-mono text-[var(--text-primary)]",children:r})]}),e.jsxs("div",{className:"flex flex-col gap-3 w-full",children:[N&&e.jsxs("a",{href:N,className:"flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--color-accent-600)] hover:bg-[var(--color-accent-700)] text-white font-medium transition-all",children:[e.jsx(l.TicketPlus,{className:"w-4 h-4"}),i(t==="tenant"?"errors.accessDenied.requestAccess":"errors.accessDenied.requestPermission")]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full",children:[n?e.jsxs("a",{href:n,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.LayoutGrid,{className:"w-4 h-4"}),i("errors.accessDenied.goToApplications")]}):e.jsxs("button",{onClick:m,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.ArrowLeft,{className:"w-4 h-4"}),i("errors.goBack")]}),e.jsxs("a",{href:"/",className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.Home,{className:"w-4 h-4"}),i("errors.home")]})]})]})]})})})}function Zi(){const{t}=re.useTranslation("common"),{logout:s}=Re();return e.jsx("div",{className:"min-h-[60vh] flex items-center justify-center p-4",children:e.jsx("div",{className:"max-w-lg w-full p-8 bg-[var(--bg-card)] border border-[var(--border-color)] rounded-2xl shadow-xl",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-orange-500/10 flex items-center justify-center mb-6",children:e.jsx(l.Building2,{className:"w-8 h-8 text-orange-500"})}),e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)] mb-2",children:t("errors.noActiveWorkspace.title")}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-6",children:t("errors.noActiveWorkspace.description")}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full",children:[e.jsxs("a",{href:"mailto:support@atlashub.ch",className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--color-accent-600)] hover:bg-[var(--color-accent-700)] text-white font-medium transition-all",children:[e.jsx(l.Mail,{className:"w-4 h-4"}),t("errors.noActiveWorkspace.contactAdmin")]}),e.jsxs("button",{onClick:()=>{s()},className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.LogOut,{className:"w-4 h-4"}),t("errors.noActiveWorkspace.logout")]})]}),e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] mt-6",children:t("errors.noActiveWorkspace.hint")})]})})})}function V(){return e.jsx("div",{className:"flex items-center justify-center min-h-[400px] w-full",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx(l.Loader2,{className:"w-10 h-10 animate-spin text-[var(--color-primary-500)]"}),e.jsx("span",{className:"text-sm text-[var(--color-text-secondary)]",children:"Chargement..."})]})})}function Ra(){const{user:t,isLoading:s}=Re(),r=S.useLocation(),{currentAppCode:n,currentModuleCode:o,isLoading:c,menu:i}=Ae(),{currentTenant:d,userTenants:u,isLoading:m,isGlobalView:x}=De(),p=d?.id||"global",f=a.useRef(null),y=(v,j)=>{const L=`${v}:${j}:${r.pathname}`;f.current!==L&&(f.current=L,I.post("/security/access-denied",{reason:v,permissionPath:j,attemptedPath:r.pathname}).catch(()=>{}))},h=a.useRef(d?.id);let N=!1;if(d?.id!==h.current&&(h.current=d?.id,N=!0),s)return e.jsx(V,{});if(!t)return e.jsx(S.Navigate,{to:"/login",state:{from:r},replace:!0});if(N||c||m||!i)return e.jsx(V,{});if(!d&&!x&&!u.some(j=>j.status==="Active"))return e.jsx(Zi,{});if(!n)return e.jsx(S.Outlet,{},p);if(Fr.includes(n))return e.jsx(S.Outlet,{},p);const w=(i?.applications||[]).find(v=>v.route?.split("/").filter(Boolean)[0]===n||v.code===n);if(w?.isOpen)return e.jsx(S.Outlet,{},p);if(!w){const v=[n,o].filter(Boolean).join("."),j=d?.slug?`/t/${d.slug}/applications`:"/applications";return y("tenant",v),e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Ot,{reason:"tenant",tenantName:d?.name,permissionPath:v,applicationsUrl:j,userRoles:t.roles,userPermissions:t.permissions})})})]})}const g=[n,o].filter(Boolean).join(".");if(!gs(t.permissions,g)&&w.accessLevel!=="RequestAccess"){const v=d?.slug?`/t/${d.slug}/applications`:"/applications";return y("permission",g),e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Ot,{reason:"permission",tenantName:d?.name,permissionPath:g,applicationsUrl:v,userRoles:t.roles,userPermissions:t.permissions})})})]})}return e.jsx(S.Outlet,{},p)}function Vs(){const{slug:t}=S.useParams(),s=S.useNavigate(),r=S.useLocation(),{currentTenant:n,userTenants:o,switchTenant:c,isLoading:i,isGlobalView:d}=De(),{useUrlRouting:u,isLoading:m}=Ut(),x=a.useRef(!1),p=a.useRef(null),f=a.useRef(null);return a.useEffect(()=>{if(i||m||!u||d)return;const y=t||Fs(r.pathname),h=y!==f.current;if(f.current=y,!!h&&y&&y!==n?.slug){const N=o.find(b=>b.slug===y&&b.status==="Active");if(N)p.current=y,c(N.id).then(()=>{p.current=null}).catch(b=>{p.current=null,console.error("[TenantRouteWrapper] Failed to switch tenant:",b)});else if(n){const b=xt(r.pathname);s(`/t/${n.slug}${b}`,{replace:!0})}else s("/",{replace:!0})}},[t,r.pathname,n,o,u,i,m,d,c,s]),a.useEffect(()=>{if(i||m||x.current)return;const y=r.pathname,h=Fs(y);if(d&&h){x.current=!0;const N=xt(y);s(N,{replace:!0}),setTimeout(()=>{x.current=!1},100);return}if(!u&&h){x.current=!0;const N=xt(y);s(N,{replace:!0}),setTimeout(()=>{x.current=!1},100);return}if(u&&n&&!h&&!d&&y!=="/"&&!y.startsWith("/login")&&!y.startsWith("/auth")&&!y.startsWith("/public")){x.current=!0,s(`/t/${n.slug}${y}`,{replace:!0}),setTimeout(()=>{x.current=!1},100);return}if(u&&n&&h&&!d&&h!==n.slug&&h!==p.current){x.current=!0;const N=xt(y);s(`/t/${n.slug}${N}`,{replace:!0}),setTimeout(()=>{x.current=!1},100);return}},[r.pathname,n,u,i,m,d,s]),e.jsx(S.Outlet,{})}function _e({to:t,replace:s=!0}){const{slug:r}=S.useParams(),n=r?`/t/${r}${t}`:t;return e.jsx(S.Navigate,{to:n,replace:s})}function el(){const{t}=re.useTranslation("admin"),{license:s,isHalted:r,haltReason:n}=Be(),o=Qe();return r?e.jsxs("div",{className:"fixed inset-0 z-40 flex items-center justify-center",children:[e.jsx("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm"}),e.jsxs("div",{className:"relative bg-white dark:bg-gray-800 rounded-lg shadow-2xl w-full max-w-md mx-4 overflow-hidden",children:[e.jsx("div",{className:"flex justify-center pt-8 pb-4",children:e.jsx("div",{className:"p-4 bg-red-100 dark:bg-red-900/30 rounded-full",children:e.jsx(l.Lock,{className:"w-10 h-10 text-red-600 dark:text-red-400"})})}),e.jsxs("div",{className:"px-6 pb-6 text-center",children:[e.jsx("h2",{className:"text-xl font-bold text-gray-900 dark:text-white mb-2",children:t("license.halted.title","Licence suspendue")}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-6",children:n||t("license.halted.description","Votre licence a été suspendue. Veuillez contacter votre administrateur pour réactiver la plateforme.")}),e.jsx("div",{className:"flex flex-col gap-3",children:e.jsxs(S.Link,{to:o("/administration/configuration/license"),className:"w-full inline-flex items-center justify-center gap-2 px-4 py-2.5 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors",children:[e.jsx(l.Settings,{className:"w-4 h-4"}),t("license.halted.manageLicense","Manage License")]})})]})]})]}):!s||s.status==="NoLicense"?e.jsx(Ta,{open:!0,onOpenChange:()=>{}}):e.jsxs("div",{className:"fixed inset-0 z-40 flex items-center justify-center",children:[e.jsx("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm"}),e.jsxs("div",{className:"relative bg-white dark:bg-gray-800 rounded-lg shadow-2xl w-full max-w-md mx-4 overflow-hidden",children:[e.jsx("div",{className:"flex justify-center pt-8 pb-4",children:e.jsx("div",{className:"p-4 bg-red-100 dark:bg-red-900/30 rounded-full",children:e.jsx(l.Lock,{className:"w-10 h-10 text-red-600 dark:text-red-400"})})}),e.jsxs("div",{className:"px-6 pb-6 text-center",children:[e.jsx("h2",{className:"text-xl font-bold text-gray-900 dark:text-white mb-2",children:t("license.guard.title","License Required")}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-6",children:t("license.guard.description","Your license has expired or is invalid. Access to this area is restricted. Please activate a valid license to continue using the platform.")}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsxs(S.Link,{to:o("/administration/configuration/license"),className:"w-full inline-flex items-center justify-center gap-2 px-4 py-2.5 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors",children:[e.jsx(l.Settings,{className:"w-4 h-4"}),t("license.guard.manageLicense","Manage License")]}),e.jsxs(S.Link,{to:o("/myspace/profile"),className:"w-full inline-flex items-center justify-center gap-2 px-4 py-2.5 text-sm font-medium text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-600 transition-colors",children:[e.jsx(l.User,{className:"w-4 h-4"}),t("license.guard.myProfile","My Profile")]})]})]})]})]})}const tl=["/myspace","/administration/configuration"];function sl(t){const s=/^\/t\/[^/]+\/(.*)/.exec(t);return s?`/${s[1]}`:t}function Ea(){const{license:t,isLoading:s,isReadOnlyMode:r,isServerDowntimeBlocked:n}=Be(),o=S.useLocation();if(s)return e.jsx(S.Outlet,{});const c=sl(o.pathname);return tl.some(d=>c.startsWith(d))?e.jsx(S.Outlet,{}):!t?.isValid||r||n?e.jsxs(e.Fragment,{children:[e.jsx(S.Outlet,{}),e.jsx(el,{})]}):e.jsx(S.Outlet,{})}function Cs({feature:t}){const{t:s}=re.useTranslation("admin"),{isFeatureEnabled:r,license:n,isLoading:o}=Be();return o?e.jsx(S.Outlet,{}):r(t)?e.jsx(S.Outlet,{}):e.jsx("div",{className:"flex items-center justify-center min-h-[60vh] p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center p-8 bg-gray-50 dark:bg-gray-800/50 rounded-xl border-2 border-dashed border-gray-200 dark:border-gray-700 max-w-md",children:[e.jsx("div",{className:"p-4 bg-gray-100 dark:bg-gray-700 rounded-full mb-4",children:e.jsx(l.Lock,{className:"w-8 h-8 text-gray-400 dark:text-gray-500"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:s("license.featureNotAvailable","Feature Not Available")}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 text-center max-w-sm mb-4",children:s("license.upgradeToAccess","Upgrade your license to access the {{feature}} feature.",{feature:t})}),e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-400 dark:text-gray-500",children:[e.jsx(l.Sparkles,{className:"w-4 h-4"}),e.jsx("span",{children:s("license.currentEdition","Current: {{edition}}",{edition:n?.edition||"Unknown"})})]})]})})}function rl(){return ia(),null}function al(){return S.useInRouterContext()?e.jsx(rl,{}):null}const jt="/api/administration/tenants/tenant-analytics",cs={getDashboardStats:async(t=30)=>await I.get(`${jt}/dashboard`,{params:{period:t}}),getTopTenants:async(t=10,s=30,r="access")=>await I.get(`${jt}/top-tenants`,{params:{limit:t,period:s,sortBy:r}}),getTrends:async(t=30)=>await I.get(`${jt}/trends`,{params:{period:t}}),trackStart:async t=>await I.post(`${jt}/track/start`,{tenantId:t}),trackEnd:async t=>{await I.post(`${jt}/track/end`,{accessId:t})}},nl="/api/administration/tenants/tenant-analytics";function ol(){const{currentTenant:t}=De(),{isAuthenticated:s}=Re(),r=a.useRef(null),n=a.useRef(null),o=a.useRef(!1);a.useEffect(()=>{if(!s)return;const c=window.location.pathname;if(c.startsWith("/auth/")||c.startsWith("/login"))return;const i=t?.id??null;return i===n.current||o.current?void 0:(o.current=!0,(async()=>{if(r.current){try{await cs.trackEnd(r.current)}catch{}r.current=null}if(n.current=i,i)try{const u=await cs.trackStart(i);r.current=u.accessId}catch{r.current=null}o.current=!1})(),()=>{if(r.current){if(!localStorage.getItem("user"))return;fetch(`${nl}/track/end`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessId:r.current}),keepalive:!0}).catch(()=>{}),r.current=null,n.current=null}})},[t?.id,s])}function il(){return ol(),null}const Ws=a.lazy(()=>Promise.resolve().then(()=>Ni).then(t=>({default:t.DocsLayout}))),ll=a.lazy(()=>Promise.resolve().then(()=>require("./DocsIndexPage-BPfi0FQD.js")).then(t=>({default:t.DocsIndexPage}))),cl=a.lazy(()=>Promise.resolve().then(()=>require("./SmartStackPresentationPage-52Nb7F0X.js")).then(t=>({default:t.SmartStackPresentationPage}))),dl=a.lazy(()=>Promise.resolve().then(()=>require("./DeveloperIndexPage-CtBfD2JI.js")).then(t=>({default:t.DeveloperIndexPage}))),ul=a.lazy(()=>Promise.resolve().then(()=>require("./InfrastructurePage-D4ZjLzI_.js")).then(t=>({default:t.InfrastructurePage}))),ml=a.lazy(()=>Promise.resolve().then(()=>require("./InstallationPage-YYNZEPO4.js")).then(t=>({default:t.InstallationPage}))),xl=a.lazy(()=>Promise.resolve().then(()=>require("./DatabasePage-BecBXPio.js")).then(t=>({default:t.DatabasePage}))),pl=a.lazy(()=>Promise.resolve().then(()=>require("./DualDbContextPage-Dz8NAewk.js")).then(t=>({default:t.DualDbContextPage}))),hl=a.lazy(()=>Promise.resolve().then(()=>require("./CrossSchemaFkPage-DqFNORYd.js")).then(t=>({default:t.CrossSchemaFkPage}))),gl=a.lazy(()=>Promise.resolve().then(()=>require("./index-C0AgM8YN.js")).then(t=>({default:t.TenantIndexPage}))),fl=a.lazy(()=>Promise.resolve().then(()=>require("./index-C0AgM8YN.js")).then(t=>({default:t.MultiTenantModePage}))),bl=a.lazy(()=>Promise.resolve().then(()=>require("./index-C0AgM8YN.js")).then(t=>({default:t.TenantB2CPage}))),vl=a.lazy(()=>Promise.resolve().then(()=>require("./TeamsIntegrationPage-DXj5MDRS.js")).then(t=>({default:t.TeamsIntegrationPage}))),yl=a.lazy(()=>Promise.resolve().then(()=>require("./index-CdORB0b4.js")).then(t=>({default:t.SecurityTestingPage}))),jl=a.lazy(()=>Promise.resolve().then(()=>require("./UserIndexPage-DahU6wzK.js")).then(t=>({default:t.UserIndexPage}))),Nl=a.lazy(()=>Promise.resolve().then(()=>require("./ArchitecturePage-Cn_XCDAo.js")).then(t=>({default:t.ArchitecturePage}))),wl=a.lazy(()=>Promise.resolve().then(()=>require("./ModulesPage-lz8DUm3X.js")).then(t=>({default:t.ModulesPage}))),Sl=a.lazy(()=>Promise.resolve().then(()=>require("./SlaDocPage-D44QWNY8.js")).then(t=>({default:t.SlaDocPage}))),Cl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportIndexPage-CsDQ35Cu.js")).then(t=>({default:t.SupportIndexPage}))),kl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportDashboardDocPage-CF6dzYmo.js")).then(t=>({default:t.SupportDashboardDocPage}))),Pl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportTicketsDocPage-B_603CpY.js")).then(t=>({default:t.SupportTicketsDocPage}))),Al=a.lazy(()=>Promise.resolve().then(()=>require("./SupportMyTicketsDocPage-Dbp6XBnH.js")).then(t=>({default:t.SupportMyTicketsDocPage}))),Tl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportTemplatesDocPage-BkeDpR-8.js")).then(t=>({default:t.SupportTemplatesDocPage}))),Rl=a.lazy(()=>Promise.resolve().then(()=>require("./SupportEscalationDocPage-C65oCDZL.js")).then(t=>({default:t.SupportEscalationDocPage}))),El=a.lazy(()=>Promise.resolve().then(()=>require("./AiDocPage-CM7j_50_.js")).then(t=>({default:t.AiDocPage}))),Il=a.lazy(()=>Promise.resolve().then(()=>require("./SettingsDocPage-Dqj8KzOa.js")).then(t=>({default:t.SettingsDocPage}))),Ll=a.lazy(()=>Promise.resolve().then(()=>require("./ThemeDocPage-Dfop2wWC.js")).then(t=>({default:t.ThemeDocPage}))),$l=a.lazy(()=>Promise.resolve().then(()=>require("./BaIndexPage-Df6ld4jp.js")).then(t=>({default:t.BaIndexPage}))),Xs=a.lazy(()=>Promise.resolve().then(()=>require("./BaViewerPage-CX3yS6tI.js")).then(t=>({default:t.BaViewerPage}))),Dl=a.lazy(()=>Promise.resolve().then(()=>require("./index-CO5QP9C1.js"))),Ml=a.lazy(()=>Promise.resolve().then(()=>require("./index-BASU1QDx.js"))),Ol=a.lazy(()=>Promise.resolve().then(()=>require("./index-DYJbiXHU.js"))),Fl=a.lazy(()=>Promise.resolve().then(()=>require("./index-BBQMnq4P.js"))),_l=a.lazy(()=>Promise.resolve().then(()=>require("./index-Bz8ggekC.js"))),Ul=a.lazy(()=>Promise.resolve().then(()=>require("./index-D1WPBG1_.js"))),ql=a.lazy(()=>Promise.resolve().then(()=>require("./index-DIuoVYFu.js"))),Bl=a.lazy(()=>Promise.resolve().then(()=>require("./index-Cdu0fSs8.js"))),zl=a.lazy(()=>Promise.resolve().then(()=>require("./index-BVUCDL0k.js"))),Kl=a.lazy(()=>Promise.resolve().then(()=>require("./index-DRT2wvEs.js"))),Gl=a.lazy(()=>Promise.resolve().then(()=>require("./index-xCGnOlox.js"))),Hl=a.lazy(()=>Promise.resolve().then(()=>require("./index-DQBVnnd6.js"))),Vl=a.lazy(()=>Promise.resolve().then(()=>require("./index-C0rFTzxZ.js"))),Wl=a.lazy(()=>Promise.resolve().then(()=>require("./index-HWG-CG1i.js"))),Xl=a.lazy(()=>Promise.resolve().then(()=>require("./index-DlX3cwCY.js"))),Yl=a.lazy(()=>Promise.resolve().then(()=>require("./index-IuHTxwV6.js"))),Jl=a.lazy(()=>Promise.resolve().then(()=>require("./index-DiazxhY7.js"))),Ql=a.lazy(()=>Promise.resolve().then(()=>require("./index-i8XTb32s.js"))),Zl=a.lazy(()=>Promise.resolve().then(()=>require("./index-BHim8lfc.js"))),ec=a.lazy(()=>Promise.resolve().then(()=>require("./index-BEpBEF5G.js"))),tc=a.lazy(()=>Promise.resolve().then(()=>require("./index-p2jNjCTo.js")));function sc(){return e.jsxs(e.Fragment,{children:[e.jsxs(S.Route,{path:"/system/docs",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ws,{})}),children:[e.jsx(S.Route,{index:!0,element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ll,{})})}),e.jsx(S.Route,{path:"developer",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(dl,{})})}),e.jsx(S.Route,{path:"developer/infrastructure",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ul,{})})}),e.jsx(S.Route,{path:"developer/installation",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ml,{})})}),e.jsx(S.Route,{path:"developer/database",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(xl,{})})}),e.jsx(S.Route,{path:"developer/dual-dbcontext",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(pl,{})})}),e.jsx(S.Route,{path:"developer/cross-schema-fk",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(hl,{})})}),e.jsx(S.Route,{path:"developer/tenants",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(gl,{})})}),e.jsx(S.Route,{path:"developer/tenants/multi-tenant-mode",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(fl,{})})}),e.jsx(S.Route,{path:"developer/tenants/b2c",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(bl,{})})}),e.jsx(S.Route,{path:"developer/multi-tenant-mode",element:e.jsx(S.Navigate,{to:"/system/docs/developer/tenants/multi-tenant-mode",replace:!0})}),e.jsx(S.Route,{path:"developer/teams-integration",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(vl,{})})}),e.jsx(S.Route,{path:"developer/testing/security",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(yl,{})})}),e.jsx(S.Route,{path:"user",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(jl,{})})}),e.jsx(S.Route,{path:"user/architecture",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Nl,{})})}),e.jsx(S.Route,{path:"user/modules",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(wl,{})})}),e.jsx(S.Route,{path:"user/support",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Cl,{})})}),e.jsx(S.Route,{path:"user/support-dashboard",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(kl,{})})}),e.jsx(S.Route,{path:"user/support-tickets",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Pl,{})})}),e.jsx(S.Route,{path:"user/support-my-tickets",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Al,{})})}),e.jsx(S.Route,{path:"user/support-sla",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Sl,{})})}),e.jsx(S.Route,{path:"user/support-templates",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Tl,{})})}),e.jsx(S.Route,{path:"user/support-escalation",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Rl,{})})}),e.jsx(S.Route,{path:"user/ai",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(El,{})})}),e.jsx(S.Route,{path:"user/settings",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Il,{})})}),e.jsx(S.Route,{path:"user/theme",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ll,{})})}),e.jsx(S.Route,{path:"ba",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx($l,{})})}),e.jsx(S.Route,{path:"ba/:appCode",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Xs,{})})}),e.jsx(S.Route,{path:"ba/:appCode/:moduleCode",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Xs,{})})})]}),e.jsxs(S.Route,{path:"/docs/business",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ws,{})}),children:[e.jsx(S.Route,{path:"administration/users",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Dl,{})})}),e.jsx(S.Route,{path:"administration/users/dashboard",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ml,{})})}),e.jsx(S.Route,{path:"administration/users/references",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ol,{})})}),e.jsx(S.Route,{path:"administration/users/groups",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Fl,{})})}),e.jsx(S.Route,{path:"administration/permissions",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(_l,{})})}),e.jsx(S.Route,{path:"administration/permissions/assignments",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ul,{})})}),e.jsx(S.Route,{path:"administration/tenants",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ql,{})})}),e.jsx(S.Route,{path:"administration/tenants/template",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Bl,{})})}),e.jsx(S.Route,{path:"administration/tenants/business",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(zl,{})})}),e.jsx(S.Route,{path:"administration/tenants/personal",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Kl,{})})}),e.jsx(S.Route,{path:"administration/tenants/other",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Gl,{})})}),e.jsx(S.Route,{path:"administration/tenants/applications",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Hl,{})})}),e.jsx(S.Route,{path:"administration/tenants/access-requests",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Vl,{})})}),e.jsx(S.Route,{path:"administration/tenants/organisations",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Wl,{})})}),e.jsx(S.Route,{path:"administration/ai",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Xl,{})})}),e.jsx(S.Route,{path:"administration/workflows",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Yl,{})})}),e.jsx(S.Route,{path:"administration/entra",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Jl,{})})}),e.jsx(S.Route,{path:"administration/applications",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ql,{})})}),e.jsx(S.Route,{path:"administration/configuration",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Zl,{})})}),e.jsx(S.Route,{path:"administration/configuration/license",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(ec,{})})}),e.jsx(S.Route,{path:"platform/support/tickets",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(tc,{})})})]}),e.jsx(S.Route,{path:"/system/docs/presentation",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(cl,{})})}),e.jsx(S.Route,{path:"/docs/*",element:e.jsx(S.Navigate,{to:"/system/docs",replace:!0})}),e.jsx(S.Route,{path:"/docs",element:e.jsx(S.Navigate,{to:"/system/docs",replace:!0})})]})}const rc={"administration.configuration.settings":{defaultTab:"general",tabs:["general","file-upload","legal-file"]},"administration.configuration.appsettings":{defaultTab:"infrastructure",tabs:["infrastructure","authentication","logging","email","entra"]}};function ac(){const{t}=re.useTranslation("home"),s=[{icon:l.Users,titleKey:"features.users.title",descKey:"features.users.description",color:"from-blue-500 to-cyan-500"},{icon:l.Bell,titleKey:"features.notifications.title",descKey:"features.notifications.description",color:"from-amber-500 to-orange-500"},{icon:l.HeadphonesIcon,titleKey:"features.support.title",descKey:"features.support.description",color:"from-emerald-500 to-teal-500"},{icon:l.Shield,titleKey:"features.admin.title",descKey:"features.admin.description",color:"from-purple-500 to-pink-500"},{icon:l.Key,titleKey:"features.roles.title",descKey:"features.roles.description",color:"from-red-500 to-rose-500"},{icon:l.Layers,titleKey:"features.architecture.title",descKey:"features.architecture.description",color:"from-indigo-500 to-violet-500"}],r=[{icon:l.Zap,textKey:"benefits.fastStart"},{icon:l.Lock,textKey:"benefits.builtInSecurity"},{icon:l.Rocket,textKey:"benefits.optimalPerformance"}],n=[".NET 10","React 19","TypeScript","EF Core","SQL Server","Tailwind CSS"],o=["modules.levels.context","modules.levels.application","modules.levels.module","modules.levels.section","modules.levels.resource"];return e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("section",{className:"relative pt-32 pb-20 md:pt-40 md:pb-32 overflow-hidden",children:[e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute -top-40 -right-40 w-80 h-80 rounded-full bg-primary-500/10 blur-3xl"}),e.jsx("div",{className:"absolute -bottom-40 -left-40 w-80 h-80 rounded-full bg-accent-500/10 blur-3xl"}),e.jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] rounded-full bg-gradient-to-r from-primary-500/5 to-accent-500/5 blur-3xl"})]}),e.jsx("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"text-center",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary-500/10 border border-primary-500/20 mb-8",children:[e.jsx(l.Zap,{className:"w-4 h-4 text-primary-500"}),e.jsx("span",{className:"text-sm font-medium text-primary-500",children:t("hero.badge")})]}),e.jsxs("h1",{className:"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight mb-6",children:[t("hero.title"),e.jsx("br",{}),e.jsx("span",{className:"gradient-text",children:t("hero.titleHighlight")})]}),e.jsx("p",{className:"max-w-2xl mx-auto text-lg md:text-xl text-[var(--text-secondary)] mb-10",children:t("hero.subtitle")}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4 mb-16",children:[e.jsxs("a",{href:"/register",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-8 py-4 rounded-xl bg-primary-600 hover:bg-primary-700 text-white font-semibold transition-all shadow-lg shadow-primary-500/25 hover:shadow-primary-500/40",children:[t("cta.getStarted"),e.jsx(l.ArrowRight,{className:"w-5 h-5"})]}),e.jsx("a",{href:"#features",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-8 py-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] font-semibold transition-all",children:t("cta.discoverFeatures")})]}),e.jsx("div",{className:"flex flex-wrap items-center justify-center gap-6",children:r.map(c=>e.jsxs("div",{className:"flex items-center gap-2 text-[var(--text-secondary)]",children:[e.jsx(c.icon,{className:"w-5 h-5 text-primary-500"}),e.jsx("span",{children:t(c.textKey)})]},c.textKey))})]})})]}),e.jsx("section",{className:"py-8 bg-[var(--bg-secondary)] border-y border-[var(--border-color)]",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-8 md:gap-12",children:[e.jsx("span",{className:"text-[var(--text-tertiary)] text-sm uppercase tracking-wider",children:t("techStack.builtWith")}),n.map(c=>e.jsx("span",{className:"text-[var(--text-secondary)] font-medium",children:c},c))]})})}),e.jsx("section",{id:"features",className:"py-20 md:py-32",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:t("features.sectionTitle")}),e.jsx("p",{className:"max-w-2xl mx-auto text-[var(--text-secondary)]",children:t("features.sectionDescription")})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:s.map(c=>e.jsxs("div",{className:"group p-6 rounded-2xl bg-[var(--bg-card)] border border-[var(--border-color)] hover-card",children:[e.jsx("div",{className:`w-12 h-12 rounded-xl bg-gradient-to-br ${c.color} flex items-center justify-center mb-4`,children:e.jsx(c.icon,{className:"w-6 h-6 text-white"})}),e.jsx("h3",{className:"text-xl font-semibold mb-2",children:t(c.titleKey)}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:t(c.descKey)})]},c.titleKey))})]})}),e.jsx("section",{id:"modules",className:"py-20 md:py-32 bg-[var(--bg-secondary)]",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[e.jsxs("div",{children:[e.jsxs("h2",{className:"text-3xl md:text-4xl font-bold mb-6",children:[t("modules.title"),e.jsx("br",{}),e.jsx("span",{className:"gradient-text",children:t("modules.titleHighlight")})]}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-8",children:t("modules.description")}),e.jsx("ul",{className:"space-y-4 mb-8",children:o.map(c=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-primary-500/10 flex items-center justify-center mt-0.5",children:e.jsx(l.Check,{className:"w-4 h-4 text-primary-500"})}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:t(c)})]},c))})]}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-primary-500/20 to-accent-500/20 rounded-3xl blur-2xl"}),e.jsx("div",{className:"relative p-8 rounded-3xl bg-[var(--bg-card)] border border-[var(--border-color)]",children:e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{className:"p-4 rounded-xl bg-gradient-to-r from-primary-500/10 to-primary-500/5 border border-primary-500/20",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-primary-500"}),e.jsx("span",{className:"font-semibold text-primary-500",children:t("modules.contextLabel")})]}),e.jsxs("div",{className:"ml-4 mt-3 p-3 rounded-lg bg-accent-500/10 border border-accent-500/20",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-accent-500"}),e.jsx("span",{className:"font-medium text-accent-500",children:t("modules.applicationLabel")})]}),e.jsxs("div",{className:"ml-4 mt-2 space-y-2",children:[e.jsx("div",{className:"p-2 rounded bg-[var(--bg-tertiary)] border border-[var(--border-color)]",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.Users,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("span",{className:"text-sm",children:t("modules.moduleUsers")})]})}),e.jsx("div",{className:"p-2 rounded bg-[var(--bg-tertiary)] border border-[var(--border-color)]",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.Key,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("span",{className:"text-sm",children:t("modules.moduleRoles")})]})})]})]})]})})})]})]})})}),e.jsx("section",{id:"contact",className:"py-20 md:py-32",children:e.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsx("div",{className:"relative overflow-hidden rounded-3xl animated-gradient p-px",children:e.jsxs("div",{className:"relative rounded-3xl bg-[var(--bg-primary)] p-8 md:p-16 text-center",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:t("cta.readyToStart")}),e.jsx("p",{className:"max-w-2xl mx-auto text-[var(--text-secondary)] mb-8",children:t("cta.startDescription")}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[e.jsxs("a",{href:"/register",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-8 py-4 rounded-xl bg-primary-600 hover:bg-primary-700 text-white font-semibold transition-all shadow-lg shadow-primary-500/25 hover:shadow-primary-500/40",children:[t("cta.createAccount"),e.jsx(l.ArrowRight,{className:"w-5 h-5"})]}),e.jsx("a",{href:"/contact",className:"w-full sm:w-auto inline-flex items-center justify-center gap-2 px-8 py-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] font-semibold transition-all",children:t("cta.contact")})]})]})})})})]})}const nc=(t,s)=>{const r=s.exec(t);return r?r[1]:""},oc=[{detect:t=>t.includes("edg/")||t.includes("edge/"),name:"Edge",pattern:/Edg(?:e)?\/(\d+)/i},{detect:t=>t.includes("opr/")||t.includes("opera"),name:"Opera",pattern:/(?:OPR|Opera)\/(\d+)/i},{detect:t=>t.includes("chrome")&&!t.includes("edg"),name:"Chrome",pattern:/Chrome\/(\d+)/i},{detect:t=>t.includes("safari")&&!t.includes("chrome"),name:"Safari",pattern:/Version\/(\d+)/i},{detect:t=>t.includes("firefox"),name:"Firefox",pattern:/Firefox\/(\d+)/i},{detect:t=>t.includes("msie")||t.includes("trident"),name:"Internet Explorer",pattern:/(?:MSIE |rv:)(\d+)/i}],ic=(t,s)=>{const r=oc.find(n=>n.detect(t));return r?{browser:r.name,version:nc(s,r.pattern)}:{browser:"Unknown",version:""}},lc={"windows nt 10":"10/11","windows nt 6.3":"8.1","windows nt 6.2":"8","windows nt 6.1":"7"},cc=t=>{for(const[s,r]of Object.entries(lc))if(t.includes(s))return r;return""},dc=[{detect:t=>t.includes("windows nt"),name:"Windows",getVersion:t=>cc(t)},{detect:t=>t.includes("windows"),name:"Windows",getVersion:()=>""},{detect:t=>t.includes("iphone"),name:"iOS",getVersion:(t,s)=>{const r=/OS (\d+)_/i.exec(s);return r?r[1]:""}},{detect:t=>t.includes("ipad"),name:"iPadOS",getVersion:(t,s)=>{const r=/OS (\d+)_/i.exec(s);return r?r[1]:""}},{detect:t=>t.includes("mac os x"),name:"macOS",getVersion:(t,s)=>{const r=/Mac OS X (\d+)[._](\d+)/i.exec(s);return r?`${r[1]}.${r[2]}`:""}},{detect:t=>t.includes("android"),name:"Android",getVersion:(t,s)=>{const r=/Android (\d+)/i.exec(s);return r?r[1]:""}},{detect:t=>t.includes("linux"),name:"Linux",getVersion:()=>""},{detect:t=>t.includes("cros"),name:"Chrome OS",getVersion:()=>""}],uc=(t,s)=>{const r=dc.find(n=>n.detect(t));if(r){const n=r.getVersion(t,s);return{os:r.name,version:n}}return{os:"Unknown",version:""}},mc=t=>/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk)/i.test(t)?"Tablet":/(android|webos|iphone|ipod|blackberry|iemobile|opera mini|mobile|phone)/i.test(t)?"Mobile":"Desktop";function xc(t){if(!t)return{browser:"Unknown",browserVersion:"",os:"Unknown",osVersion:"",device:"Unknown",formatted:"Unknown"};const s=t.toLowerCase(),{browser:r,version:n}=ic(s,t),{os:o,version:c}=uc(s,t),i=mc(s);let d=r;if(o!=="Unknown"){const u=n?n+" ":"",m=c?" "+c:"";d=`${r} ${u}sur ${o}${m}`}return{browser:r,browserVersion:n,os:o,osVersion:c,device:i,formatted:d}}function Ia(){const t=navigator.userAgent.toLowerCase();return/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(t)?"tablet":/(android|webos|iphone|ipod|blackberry|iemobile|opera mini|mobile|phone)/.test(t)?"mobile":/(windows|macintosh|linux|x11)/.test(t)?"desktop":"unknown"}async function La(){try{const t=await fetch("https://api.ipify.org?format=json",{method:"GET",signal:AbortSignal.timeout(5e3)});return t.ok&&(await t.json()).ip||null}catch{return null}}function pc(){const[t,s]=a.useState(""),[r,n]=a.useState(""),[o,c]=a.useState(!1),[i,d]=a.useState(!1),[u,m]=a.useState("auth"),[x,p]=a.useState(null),[f]=a.useState(()=>{const h=new URLSearchParams(window.location.search).get("redirect_uri");return h?(sessionStorage.setItem("sso_redirect_uri",h),h):sessionStorage.getItem("sso_redirect_uri")}),y=a.useCallback(async h=>{h.preventDefault(),p(null),m("auth"),d(!0);try{Le.logEvent("login_attempt","auth",{email:t});const N=Ia(),b=await La(),w=await I.post("/api/auth/login",{email:t,password:r,deviceType:N,clientIp:b});localStorage.setItem("user",JSON.stringify(w.user)),Le.logEvent("login_success","auth",{email:t}),m("prefs");try{if(!(await I.get("/api/onboarding/status")).hasCompletedOnboarding){window.location.href="/auth/onboarding";return}}catch{}try{const g=await _t.preferences.get(),v={mode:g.theme||"dark",accentColorKey:g.accentColorKey||"indigo",borderRadius:g.borderRadius||{},itemPaletteKey:g.itemPaletteKey||"neutral"};localStorage.setItem("smartstack-theme-config",JSON.stringify(v)),g.language&&localStorage.setItem("i18nextLng",g.language)}catch{}if(localStorage.removeItem("currentTenantId"),localStorage.removeItem("currentTenantSlug"),localStorage.removeItem("isGlobalView"),f){sessionStorage.removeItem("sso_redirect_uri");const g=f.includes("?")?"&":"?";window.location.href=`${f}${g}token=${encodeURIComponent(w.token)}&refreshToken=${encodeURIComponent(w.refreshToken)}`;return}window.location.href="/myspace"}catch(N){if(N instanceof xs)p({message:N.message,code:"NETWORK_ERROR"});else if(N instanceof br)p({message:N.message,code:N.code});else{const b=N instanceof Error?N.message:"Une erreur inattendue est survenue";p({message:b})}Le.logError(N instanceof Error?N:new Error(String(N)),"LoginPage.handleSubmit",{email:t})}finally{d(!1)}},[t,r,f]);return{email:t,setEmail:s,password:r,setPassword:n,showPassword:o,setShowPassword:c,isLoading:i,loadingStep:u,error:x,handleSubmit:y}}const hc=[{icon:l.Shield,titleKey:"features.security",descKey:"features.securityDesc"},{icon:l.Zap,titleKey:"features.performance",descKey:"features.performanceDesc"},{icon:l.Users,titleKey:"features.collaboration",descKey:"features.collaborationDesc"},{icon:l.BarChart3,titleKey:"features.analytics",descKey:"features.analyticsDesc"}],gc=t=>{switch(t){case"ACCOUNT_DISABLED":return e.jsx(l.UserX,{className:"w-5 h-5 flex-shrink-0"});case"ACCOUNT_LOCKED":return e.jsx(l.Clock,{className:"w-5 h-5 flex-shrink-0"});case"EXTERNAL_AUTH_REQUIRED":return e.jsx(l.KeyRound,{className:"w-5 h-5 flex-shrink-0"});case"NETWORK_ERROR":return e.jsx(l.WifiOff,{className:"w-5 h-5 flex-shrink-0"});default:return e.jsx(l.AlertCircle,{className:"w-5 h-5 flex-shrink-0"})}},fc=t=>{switch(t){case"ACCOUNT_DISABLED":return"bg-orange-500/10 border-orange-500/20 text-orange-600 dark:text-orange-400";case"ACCOUNT_LOCKED":return"bg-amber-500/10 border-amber-500/20 text-amber-600 dark:text-amber-400";case"EXTERNAL_AUTH_REQUIRED":return"bg-blue-500/10 border-blue-500/20 text-blue-600 dark:text-blue-400";case"NETWORK_ERROR":return"bg-gray-500/10 border-gray-500/20 text-gray-600 dark:text-gray-400";default:return"bg-red-500/10 border-red-500/20 text-red-500"}};function bc(){const{t}=re.useTranslation("auth"),{email:s,setEmail:r,password:n,setPassword:o,showPassword:c,setShowPassword:i,isLoading:d,loadingStep:u,error:m,handleSubmit:x}=pc();return e.jsxs("div",{className:"min-h-screen flex",children:[e.jsxs("div",{className:"hidden lg:flex lg:w-1/2 xl:w-[55%] relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 animated-gradient"}),e.jsx("div",{className:"absolute inset-0 opacity-10",style:{backgroundImage:"radial-gradient(circle at 1px 1px, white 1px, transparent 0)",backgroundSize:"40px 40px"}}),e.jsx("div",{className:"absolute top-20 left-20 w-72 h-72 bg-white/10 rounded-full blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute bottom-20 right-20 w-96 h-96 bg-white/10 rounded-full blur-3xl animate-pulse",style:{animationDelay:"1s"}}),e.jsx("div",{className:"absolute top-1/2 left-1/3 w-64 h-64 bg-white/5 rounded-full blur-2xl animate-pulse",style:{animationDelay:"2s"}}),e.jsxs("div",{className:"relative z-10 flex flex-col justify-between p-12 xl:p-16 text-white w-full",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-12 h-12 bg-white/20 backdrop-blur-sm rounded-xl flex items-center justify-center",children:e.jsx(l.Layers,{className:"w-7 h-7 text-white"})}),e.jsx("span",{className:"text-2xl font-bold",children:"SmartStack"})]}),e.jsxs("div",{className:"max-w-lg",children:[e.jsx("h1",{className:"text-4xl xl:text-5xl font-bold leading-tight mb-6",children:t("login.heroTitle")}),e.jsx("p",{className:"text-xl text-white/80 mb-12",children:t("login.heroSubtitle")}),e.jsx("div",{className:"grid grid-cols-2 gap-6",children:hc.map(p=>e.jsxs("div",{className:"bg-white/10 backdrop-blur-sm rounded-2xl p-5 hover:bg-white/15 transition-colors",children:[e.jsx(p.icon,{className:"w-8 h-8 mb-3 text-white/90"}),e.jsx("h3",{className:"font-semibold mb-1",children:t(p.titleKey)}),e.jsx("p",{className:"text-sm text-white/70",children:t(p.descKey)})]},p.titleKey))})]}),e.jsxs("p",{className:"text-sm text-white/60",children:["© ",new Date().getFullYear()," SmartStack — ",t("login.tagline")]})]})]}),e.jsxs("div",{className:"w-full lg:w-1/2 xl:w-[45%] flex flex-col relative bg-[var(--bg-primary)]",children:[e.jsx("div",{className:"lg:hidden absolute inset-0",children:e.jsxs("div",{className:"absolute inset-0 overflow-hidden",children:[e.jsx("div",{className:"absolute -top-40 -right-40 w-96 h-96 rounded-full bg-primary-500/20 blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute -bottom-40 -left-40 w-96 h-96 rounded-full bg-accent-500/20 blur-3xl animate-pulse",style:{animationDelay:"1s"}})]})}),e.jsxs("div",{className:"absolute top-6 right-6 z-10 flex items-center gap-2",children:[e.jsx("a",{href:"/",className:"p-2 rounded-lg bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] transition-colors",title:t("login.backToHome"),children:e.jsx(l.Home,{className:"w-5 h-5 text-[var(--text-secondary)]"})}),e.jsx(Ht,{})]}),e.jsx("div",{className:"flex-1 flex items-center justify-center p-6 sm:p-8 lg:p-12",children:e.jsxs("div",{className:"w-full max-w-md relative",children:[e.jsxs("div",{className:"lg:hidden flex flex-col items-center mb-8",children:[e.jsx("div",{className:"w-16 h-16 rounded-2xl animated-gradient flex items-center justify-center mb-4 shadow-lg",children:e.jsx(l.Layers,{className:"w-8 h-8 text-white"})}),e.jsx("h1",{className:"text-2xl font-bold",children:"SmartStack"})]}),e.jsxs("div",{className:"hidden lg:block mb-8",children:[e.jsx("h2",{className:"text-3xl font-bold mb-2",children:t("login.welcome")}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:t("login.welcomeSubtitle")})]}),m&&e.jsxs("div",{className:`mb-6 p-4 rounded-xl border text-sm flex items-start gap-3 ${fc(m.code)}`,children:[gc(m.code),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"font-medium",children:m.message}),m.code==="ACCOUNT_DISABLED"&&e.jsx("p",{className:"text-xs mt-1 opacity-80",children:t("login.contactSupport")}),m.code==="EXTERNAL_AUTH_REQUIRED"&&e.jsx("p",{className:"text-xs mt-1 opacity-80",children:t("login.useExternalAuth")})]})]}),e.jsxs("form",{onSubmit:x,className:"space-y-5",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"email",className:"block text-sm font-medium mb-2",children:t("login.email")}),e.jsxs("div",{className:"relative",children:[e.jsx(l.Mail,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-[var(--text-tertiary)]"}),e.jsx("input",{id:"email",type:"email",value:s,onChange:p=>r(p.target.value),placeholder:t("login.emailPlaceholder"),required:!0,className:"w-full pl-12 pr-4 py-3.5 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border-color)] focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20 outline-none transition-all placeholder:text-[var(--text-tertiary)]"})]})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"password",className:"block text-sm font-medium mb-2",children:t("login.password")}),e.jsxs("div",{className:"relative",children:[e.jsx(l.Lock,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-[var(--text-tertiary)]"}),e.jsx("input",{id:"password",type:c?"text":"password",value:n,onChange:p=>o(p.target.value),placeholder:"••••••••",required:!0,className:"w-full pl-12 pr-12 py-3.5 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border-color)] focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20 outline-none transition-all placeholder:text-[var(--text-tertiary)]"}),e.jsx("button",{type:"button",onClick:()=>i(!c),className:"absolute right-4 top-1/2 -translate-y-1/2 text-[var(--text-tertiary)] hover:text-[var(--text-primary)] transition-colors",children:c?e.jsx(l.EyeOff,{className:"w-5 h-5"}):e.jsx(l.Eye,{className:"w-5 h-5"})})]})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"w-4 h-4 rounded border-[var(--border-color)] bg-[var(--bg-tertiary)] text-primary-600 focus:ring-primary-500/20"}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:t("login.rememberMe")})]}),e.jsx("a",{href:"/forgot-password",className:"text-primary-500 hover:text-primary-600 font-medium transition-colors",children:t("login.forgotPassword")})]}),e.jsx("button",{type:"submit",disabled:d,className:"w-full py-3.5 px-4 rounded-xl bg-primary-600 hover:bg-primary-700 disabled:bg-primary-600/50 text-white font-semibold transition-all shadow-lg shadow-primary-500/25 hover:shadow-primary-500/40 disabled:shadow-none flex items-center justify-center gap-2",children:d?e.jsxs(e.Fragment,{children:[e.jsx(l.Loader2,{className:"w-5 h-5 animate-spin"}),t(u==="auth"?"login.loading":"login.loadingPreferences")]}):t("login.submit")})]}),e.jsxs("div",{className:"relative my-8",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("div",{className:"w-full border-t border-[var(--border-color)]"})}),e.jsx("div",{className:"relative flex justify-center text-sm",children:e.jsx("span",{className:"px-4 bg-[var(--bg-primary)] text-[var(--text-tertiary)]",children:t("login.or")})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("button",{type:"button",onClick:()=>window.location.href="/api/auth/microsoft",className:"flex items-center justify-center gap-3 py-3.5 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] font-medium transition-all",children:[e.jsxs("svg",{className:"w-5 h-5",viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("rect",{x:"1",y:"1",width:"9",height:"9",fill:"#F25022"}),e.jsx("rect",{x:"11",y:"1",width:"9",height:"9",fill:"#7FBA00"}),e.jsx("rect",{x:"1",y:"11",width:"9",height:"9",fill:"#00A4EF"}),e.jsx("rect",{x:"11",y:"11",width:"9",height:"9",fill:"#FFB900"})]}),"Microsoft"]}),e.jsxs("button",{type:"button",onClick:()=>window.location.href="/api/auth/google",className:"flex items-center justify-center gap-3 py-3.5 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-secondary)] border border-[var(--border-color)] font-medium transition-all",children:[e.jsxs("svg",{className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),e.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),e.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),e.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]}),"Google"]})]}),e.jsxs("p",{className:"text-center text-[var(--text-secondary)] mt-8",children:[t("login.noAccount")," ",e.jsx("a",{href:"/register",className:"text-primary-500 hover:text-primary-600 font-semibold transition-colors",children:t("login.createAccount")})]})]})}),e.jsx("div",{className:"p-6 text-center",children:e.jsx("p",{className:"text-sm text-[var(--text-tertiary)]",children:t("login.copyright",{year:new Date().getFullYear()})})})]})]})}function vc(){const{t}=re.useTranslation("common"),s=S.useNavigate(),r=()=>{window.history.length>2?s(-1):s("/")};return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-[var(--bg-primary)] p-4",children:e.jsx("div",{className:"max-w-md w-full p-8 bg-[var(--bg-card)] border border-[var(--border-color)] rounded-2xl shadow-xl",children:e.jsxs("div",{className:"flex flex-col items-center text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-yellow-500/10 flex items-center justify-center mb-6",children:e.jsx(l.FileWarning,{className:"w-8 h-8 text-yellow-500"})}),e.jsx("h1",{className:"text-2xl font-bold text-[var(--text-primary)] mb-2",children:t("errors.notFound.title")}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-6",children:t("errors.notFound.description")}),e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] mb-6 font-mono",children:window.location.pathname}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full",children:[e.jsxs("button",{onClick:r,className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--color-accent-600)] hover:bg-[var(--color-accent-700)] text-white font-medium transition-all",children:[e.jsx(l.ArrowLeft,{className:"w-4 h-4"}),t("errors.goBack")]}),e.jsxs("a",{href:"/",className:"flex-1 flex items-center justify-center gap-2 py-3 px-4 rounded-xl bg-[var(--bg-tertiary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] text-[var(--text-primary)] font-medium transition-all",children:[e.jsx(l.Home,{className:"w-4 h-4"}),t("errors.home")]})]})]})})})}function We({component:t}){return e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(t,{})})}const yc=a.lazy(()=>Promise.resolve().then(()=>require("./ApplicationsPage-CaTBtduL.js")).then(t=>({default:t.ApplicationsPage}))),jc=a.lazy(()=>Promise.resolve().then(()=>require("./NotificationsPage-elSovpBw.js")).then(t=>({default:t.NotificationsPage}))),Nc=a.lazy(()=>Promise.resolve().then(()=>wi).then(t=>({default:t.PublicLayout}))),es=a.lazy(()=>Promise.resolve().then(()=>gi).then(t=>({default:t.AppLayout}))),wc=a.lazy(()=>Promise.resolve().then(()=>require("./RegisterPage-ZskZrLZH.js")).then(t=>({default:t.RegisterPage}))),Sc=a.lazy(()=>Promise.resolve().then(()=>require("./ConfirmEmailPage-CawSZypI.js")).then(t=>({default:t.ConfirmEmailPage}))),Cc=a.lazy(()=>Promise.resolve().then(()=>require("./ForgotPasswordPage-D3ZQBtjd.js")).then(t=>({default:t.ForgotPasswordPage}))),kc=a.lazy(()=>Promise.resolve().then(()=>require("./ResetPasswordPage-CeAvfsE-.js")).then(t=>({default:t.ResetPasswordPage}))),Pc=a.lazy(()=>Promise.resolve().then(()=>require("./ForceChangePasswordPage-C6jDZshk.js")).then(t=>({default:t.ForceChangePasswordPage}))),Ac=a.lazy(()=>Promise.resolve().then(()=>require("./AuthCallbackPage-DPL68Asu.js")).then(t=>({default:t.AuthCallbackPage}))),Tc=a.lazy(()=>Promise.resolve().then(()=>require("./OnboardingWizardPage-nPLe2buQ.js")).then(t=>({default:t.OnboardingWizardPage}))),Rc={".detail":"/:id",".edit":"/:id/edit",".create":"/create",".new":"/new",".duplicate":"/:id/duplicate",".settings":"/:id/settings",".configure":"/:id/configure",".permissions":"/:id/permissions",".members":"/:id/members",".history":"/:id/history",".logs":"/:id/logs",".analytics":"/:id/analytics",".preview":"/:id/preview",".versions":"/:id/versions",".comments":"/:id/comments",".attachments":"/:id/attachments",".audit":"/:id/audit",".export":"/:id/export",".notifications":"/:id/notifications",".schedule":"/:id/schedule",".workflow":"/:id/workflow",".summary":"/:id/summary",".test":"/:id/test",".runs":"/:id/runs",".import":"/import"};function ks(t,s){const r=[];for(const[n,o]of Object.entries(Rc)){const c=`${t}${n}`,i=O.resolve(c);if(i){const d=s.replace(/^\//,"")+o;r.push({path:d,Component:i})}}return r}function Ec(t,s,r,n){const o=[],c=r.route?.replace(`/${n}/`,"")||`${t.code}/${s.code}/${r.code}`,i=O.resolve(r.componentKey);if(i&&o.push(e.jsx(S.Route,{path:c,element:e.jsx(We,{component:i})},r.componentKey)),r.route)for(const d of ks(r.componentKey,c))o.push(e.jsx(S.Route,{path:d.path,element:e.jsx(We,{component:d.Component})},`${r.componentKey}-implicit-${d.path}`));return o}function Ic(t,s,r){const n=[],o=s.route?.replace(`/${r}/`,"")||`${t.code}/${s.code}`,c=rc[s.componentKey];if(c){const d=O.resolve(s.componentKey);if(d){const u=c.tabs.map(m=>{const x=`${s.componentKey}.${m}`,p=O.resolve(x);return p?e.jsx(S.Route,{path:m,element:e.jsx(We,{component:p})},x):null}).filter(Boolean);return n.push(e.jsxs(S.Route,{path:o,element:e.jsx(We,{component:d}),children:[e.jsx(S.Route,{index:!0,element:e.jsx(S.Navigate,{to:c.defaultTab,replace:!0})}),u]},s.componentKey)),n}}const i=O.resolve(s.componentKey);if(i&&n.push(e.jsx(S.Route,{path:o,element:e.jsx(We,{component:i})},s.componentKey)),!i&&s.resources.length>0){const d=s.resources[0];n.push(e.jsx(S.Route,{path:o,element:e.jsx(S.Navigate,{to:d.code,replace:!0})},`${s.componentKey}-redirect`))}if(s.route)for(const d of ks(s.componentKey,o))n.push(e.jsx(S.Route,{path:d.path,element:e.jsx(We,{component:d.Component})},`${s.componentKey}-implicit-${d.path}`));for(const d of s.resources){const u=Ec(t,s,d,r);n.push(...u)}return n}function Lc(t,s){const r=[],n=t.route?.replace(`/${s}/`,"")||t.code,o=O.resolve(t.componentKey);if(o&&r.push(e.jsx(S.Route,{path:n,element:e.jsx(We,{component:o})},t.componentKey)),!o&&t.sections.length>0){const c=t.sections[0];r.push(e.jsx(S.Route,{path:n,element:e.jsx(S.Navigate,{to:c.code,replace:!0})},`${t.componentKey}-redirect`))}if(t.route)for(const c of ks(t.componentKey,n))r.push(e.jsx(S.Route,{path:c.path,element:e.jsx(We,{component:c.Component})},`${t.componentKey}-implicit-${c.path}`));for(const c of t.sections){const i=Ic(t,c,s);r.push(...i)}return r}function $c(t){const s=[],r=O.resolve(t.componentKey);if(r)s.push(e.jsx(S.Route,{index:!0,element:e.jsx(We,{component:r})},`${t.code}-index`));else if(t.modules.length>0){const n=t.modules[0],o=n.route?.replace(/^\//,"").replace(new RegExp(`^${t.code}/?`),"")||n.code;s.push(e.jsx(S.Route,{index:!0,element:e.jsx(S.Navigate,{to:o,replace:!0})},`${t.code}-index`))}for(const n of t.modules){const o=Lc(n,t.code);n.requiredFeature?s.push(e.jsx(S.Route,{element:e.jsx(Cs,{feature:n.requiredFeature}),children:o},`feature-${n.componentKey}`)):s.push(...o)}return s}function Dc(t,s){return t.requiredFeature?[e.jsx(S.Route,{element:e.jsx(Cs,{feature:t.requiredFeature}),children:s},`feature-${t.code}`)]:s}function Mc(t){switch(t){case"administration":return[e.jsx(S.Route,{path:"settings",element:e.jsx(S.Navigate,{to:"../configuration/settings",relative:"path",replace:!0})},"legacy-settings"),e.jsx(S.Route,{path:"settings/*",element:e.jsx(_e,{to:"/administration/configuration/settings"})},"legacy-settings-wc"),e.jsx(S.Route,{path:"appsettings",element:e.jsx(S.Navigate,{to:"../configuration/appsettings",relative:"path",replace:!0})},"legacy-appsettings"),e.jsx(S.Route,{path:"appsettings/*",element:e.jsx(_e,{to:"/administration/configuration/appsettings"})},"legacy-appsettings-wc"),e.jsx(S.Route,{path:"email-templates",element:e.jsx(S.Navigate,{to:"../workflows/email-templates",relative:"path",replace:!0})},"legacy-email-templates"),e.jsx(S.Route,{path:"email-templates/list",element:e.jsx(S.Navigate,{to:"../../workflows/email-templates",relative:"path",replace:!0})},"legacy-email-templates-list"),e.jsx(S.Route,{path:"email-templates/create",element:e.jsx(S.Navigate,{to:"../../workflows/email-templates/create",relative:"path",replace:!0})},"legacy-email-templates-create"),e.jsx(S.Route,{path:"workflows/templates",element:e.jsx(S.Navigate,{to:"../email-templates",relative:"path",replace:!0})},"legacy-wf-templates"),e.jsx(S.Route,{path:"workflows/templates/*",element:e.jsx(_e,{to:"/administration/workflows/email-templates"})},"legacy-wf-templates-wc"),e.jsx(S.Route,{path:"tenants/business",element:e.jsx(S.Navigate,{to:"../tenants/list/enterprise",replace:!0})},"legacy-tenants-biz"),e.jsx(S.Route,{path:"tenants/personal",element:e.jsx(S.Navigate,{to:"../tenants/list/personal",replace:!0})},"legacy-tenants-perso")];case"support":return[e.jsx(S.Route,{path:"dashboard",element:e.jsx(S.Navigate,{to:"tickets",replace:!0})},"legacy-dashboard"),e.jsx(S.Route,{path:"sla",element:e.jsx(S.Navigate,{to:"admin/sla",replace:!0})},"legacy-sla"),e.jsx(S.Route,{path:"templates",element:e.jsx(S.Navigate,{to:"admin/templates",replace:!0})},"legacy-templates"),e.jsx(S.Route,{path:"admin/escalation",element:e.jsx(S.Navigate,{to:"tickets/escalation",replace:!0})},"legacy-admin-esc")];default:return[]}}function Oc(){const{isLoading:t,menu:s}=Ae(),{currentTenant:r}=De(),{user:n}=Re(),o=S.useLocation();if(t||!s)return e.jsx(V,{});const c=o.pathname.split("/").filter(Boolean),i=c[0]==="t"?c.slice(2):c,d=i.slice(0,2).join("."),u=r?.slug?`/t/${r.slug}/applications`:"/applications",m=i[0]?.toLowerCase(),x=n?.permissions??[];if(d&&gs(x,d)){if(m?s?.applications.some(b=>b.code?.toLowerCase()===m||b.route?.split("/").filter(Boolean)[0]===m):!1)return e.jsx(V,{});const h=m+".";if(m?O.keys().some(b=>b===m||b.startsWith(h)):!1){const w=s?.applications.some(g=>g.code?.toLowerCase()===m)??!1?"permission":"tenant";return e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Ot,{reason:w,tenantName:r?.name,permissionPath:d||void 0,applicationsUrl:u,userRoles:n?.roles,userPermissions:x})})})]})}return e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Aa,{})})})]})}const f=(m?s?.applications.some(y=>y.code?.toLowerCase()===m)??!1:!1)?"permission":"tenant";return e.jsxs("div",{className:"min-h-screen bg-[var(--bg-primary)]",children:[e.jsx(st,{onMenuToggle:()=>{}}),e.jsx("main",{className:"pt-16 transition-all duration-300 h-[calc(100vh-4rem)]",children:e.jsx("div",{className:"p-4 sm:p-6 lg:px-10 h-full overflow-auto",children:e.jsx(Ot,{reason:f,tenantName:r?.name,permissionPath:d||void 0,applicationsUrl:u,userRoles:n?.roles,userPermissions:x})})})]})}function Fc(){const{isLoading:t}=Ae();return!!localStorage.getItem("user")&&t?e.jsx(V,{}):e.jsx(vc,{})}function _c(){const{menu:t,isLoading:s}=Ae(),r=a.useMemo(()=>!t||s?[]:t.applications.map(o=>{const c=o.route?.replace(/^\//,"")||o.code,i=$c(o),d=Dc(o,i),u=Mc(o.code);return e.jsxs(S.Route,{path:c,element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(es,{})}),children:[d,u]},o.code)}),[t,s]),n=e.jsx(e.Fragment,{children:e.jsx(S.Route,{element:e.jsx(Ra,{}),children:e.jsxs(S.Route,{element:e.jsx(Ea,{}),children:[r,e.jsx(S.Route,{path:"applications",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(es,{})}),children:e.jsx(S.Route,{index:!0,element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(yc,{})})})}),e.jsx(S.Route,{path:"notifications",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(es,{})}),children:e.jsx(S.Route,{index:!0,element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(jc,{})})})}),e.jsx(S.Route,{path:"administration/external-apps",element:e.jsx(_e,{to:"/api/accounts/list"})}),e.jsx(S.Route,{path:"administration/external-apps/*",element:e.jsx(_e,{to:"/api/accounts/list"})}),e.jsx(S.Route,{path:"api/external-apps",element:e.jsx(_e,{to:"/api/accounts/list"})}),e.jsx(S.Route,{path:"api/external-apps/*",element:e.jsx(_e,{to:"/api/accounts/list"})}),e.jsx(S.Route,{path:"support-client",element:e.jsx(_e,{to:"/support/my-tickets"})}),e.jsx(S.Route,{path:"support-client/*",element:e.jsx(_e,{to:"/support/my-tickets"})}),e.jsx(S.Route,{path:"user",element:e.jsx(_e,{to:"/myspace"})}),e.jsx(S.Route,{path:"user/*",element:e.jsx(_e,{to:"/myspace"})}),e.jsx(S.Route,{path:"*",element:e.jsx(Oc,{})})]})})});return e.jsxs(a.Suspense,{fallback:e.jsx(V,{}),children:[e.jsx(al,{}),e.jsx(il,{}),e.jsxs(S.Routes,{children:[e.jsx(S.Route,{path:"/",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Nc,{})}),children:e.jsx(S.Route,{index:!0,element:e.jsx(ac,{})})}),sc(),e.jsx(S.Route,{path:"/login",element:e.jsx(bc,{})}),e.jsx(S.Route,{path:"/register",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(wc,{})})}),e.jsx(S.Route,{path:"/confirm-email",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Sc,{})})}),e.jsx(S.Route,{path:"/forgot-password",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Cc,{})})}),e.jsx(S.Route,{path:"/reset-password",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(kc,{})})}),e.jsx(S.Route,{path:"/force-change-password",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Pc,{})})}),e.jsx(S.Route,{path:"/auth/callback",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Ac,{})})}),e.jsx(S.Route,{path:"/auth/onboarding",element:e.jsx(a.Suspense,{fallback:e.jsx(V,{}),children:e.jsx(Tc,{})})}),e.jsx(S.Route,{path:"/t/:slug",element:e.jsx(Vs,{}),children:n}),e.jsx(S.Route,{element:e.jsx(Vs,{}),children:n}),e.jsx(S.Route,{path:"/admin",element:e.jsx(S.Navigate,{to:"/administration",replace:!0})}),e.jsx(S.Route,{path:"/platform",element:e.jsx(S.Navigate,{to:"/administration",replace:!0})}),e.jsx(S.Route,{path:"/platform/admin/*",element:e.jsx(S.Navigate,{to:"/administration",replace:!0})}),e.jsx(S.Route,{path:"/platform/administration/*",element:e.jsx(S.Navigate,{to:"/administration",replace:!0})}),e.jsx(S.Route,{path:"/platform/support/*",element:e.jsx(S.Navigate,{to:"/support",replace:!0})}),e.jsx(S.Route,{path:"/dashboard",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/personal",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/personal/myspace",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/personal/myspace/*",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/user",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/user/*",element:e.jsx(S.Navigate,{to:"/myspace",replace:!0})}),e.jsx(S.Route,{path:"/business",element:e.jsx(S.Navigate,{to:"/applications",replace:!0})}),e.jsx(S.Route,{path:"/business/support-client/*",element:e.jsx(S.Navigate,{to:"/support/my-tickets",replace:!0})}),e.jsx(S.Route,{path:"/support-client/*",element:e.jsx(S.Navigate,{to:"/support/my-tickets",replace:!0})}),e.jsx(S.Route,{path:"/support-client",element:e.jsx(S.Navigate,{to:"/support/my-tickets",replace:!0})}),e.jsx(S.Route,{path:"*",element:e.jsx(Fc,{})})]})]})}function Ys({name:t,className:s}){const n=ft[t];return n?e.jsx(n,{className:s}):e.jsx(l.Star,{className:s})}function Uc(t,s){return t?"bg-[var(--color-accent-100)] border border-[var(--color-accent-500)]":s?"opacity-50 cursor-not-allowed bg-[var(--bg-secondary)]":"bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] border border-transparent hover:border-[var(--border-color)]"}function $a({isOpen:t,onClose:s}){const{t:r}=re.useTranslation(["common","navigation"]),{menu:n}=Ae(),{favorites:o,toggleFavorite:c,isFavorite:i,canAddMore:d,maxFavorites:u}=Ge();if(!t)return null;const m=[];n?.applications.forEach(p=>{(p.modules?.length??0)>0&&m.push({app:p,modules:p.modules})});const x=(p,f)=>{const y=[...p.sections||[]].sort((b,w)=>b.displayOrder-w.displayOrder),h=y.length>0&&y[0].route?y[0].route:`/${f.code}/${p.code}`,N={id:p.id,code:p.code,label:p.label,icon:p.icon||"Star",route:h,applicationCode:f.code,applicationLabel:f.label};c(N)};return e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:"bg-[var(--bg-primary)] rounded-[var(--radius-modal)] shadow-xl w-full max-w-lg max-h-[80vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-[var(--border-color)]",children:[e.jsxs("div",{children:[e.jsxs("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[e.jsx(l.Star,{className:"w-5 h-5 text-[var(--color-accent-500)]"}),r("common:favorites.manageTitle")]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:r("common:favorites.selectModules",{count:o.length,max:u})})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>{const p={component:"FavoritesModal",url:window.location.href},f=`https://github.com/anthropics/claude-code/issues/new?title=${encodeURIComponent("[Bug] Favorites Modal")}&body=${encodeURIComponent(`## Context
|
|
30
30
|
- Component: ${p.component}
|
|
31
31
|
- URL: ${p.url}
|
|
32
32
|
|
|
@@ -45,4 +45,4 @@ ${g.join(`
|
|
|
45
45
|
## Actual Behavior
|
|
46
46
|
`)}`;window.open(f,"_blank")},className:"p-2 rounded-[var(--radius-button)] hover:bg-[var(--bg-hover)] transition-colors text-[var(--text-secondary)]",title:r("common:buttons.reportBug"),children:e.jsx(l.Bug,{className:"w-5 h-5"})}),e.jsx("button",{onClick:s,className:"p-2 rounded-[var(--radius-button)] hover:bg-[var(--bg-hover)] transition-colors",children:e.jsx(l.X,{className:"w-5 h-5"})})]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4",children:[m.map(({app:p,modules:f})=>e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(Ys,{name:p.icon||"Folder",className:"w-4 h-4 text-[var(--text-secondary)]"}),e.jsx("span",{className:"text-sm font-medium text-[var(--text-secondary)]",children:p.label})]}),e.jsx("div",{className:"space-y-1 ml-6",children:f.map(y=>{const h=i(y.id),N=!h&&!d;return e.jsxs("button",{onClick:()=>x(y,p),disabled:N,className:`w-full flex items-center gap-3 p-2.5 rounded-[var(--radius-button)] transition-all ${Uc(h,N)}`,children:[e.jsx("div",{className:`w-8 h-8 flex items-center justify-center rounded-[var(--radius-button)] ${h?"bg-[var(--color-accent-600)] text-white":"bg-[var(--bg-tertiary)] text-[var(--text-secondary)]"}`,children:e.jsx(Ys,{name:y.icon||"Star",className:"w-4 h-4"})}),e.jsx("span",{className:`flex-1 text-left text-sm ${h?"font-medium text-[var(--color-accent-700)]":"text-[var(--text-primary)]"}`,children:y.label}),h&&e.jsx(l.Check,{className:"w-4 h-4 text-[var(--color-accent-600)]"})]},y.id)})})]},p.id)),m.length===0&&e.jsx("div",{className:"text-center py-8 text-[var(--text-secondary)]",children:r("common:favorites.noModules")})]}),e.jsx("div",{className:"p-4 border-t border-[var(--border-color)]",children:e.jsx("button",{onClick:s,className:"w-full px-4 py-2 bg-[var(--color-accent-600)] text-white rounded-[var(--radius-button)] hover:bg-[var(--color-accent-700)] transition-colors font-medium",children:r("common:actions.done")})})]})})}function qc({name:t,className:s}){const n=ft[t];return n?e.jsx(n,{className:s}):e.jsx(l.Star,{className:s})}function Bc({className:t=""}){const{t:s}=re.useTranslation(["common"]),r=S.useNavigate(),{favorites:n,maxFavorites:o}=Ge(),{triggerExpand:c}=Ge(),{menu:i}=Ae(),[d,u]=a.useState(!1),m=o-n.length,x=f=>{if(i)for(const y of i.applications){const h=y.modules.find(N=>N.id===f.id);if(h?.sections?.length){const N=[...h.sections].sort((b,w)=>b.displayOrder-w.displayOrder)[0];if(N.route)return N.route}}return f.route},p=f=>{const y=x(f);y&&(c(),r(y))};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[var(--radius-card)] p-4 ${t}`,children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.Star,{className:"w-4 h-4 text-[var(--color-accent-500)]"}),e.jsx("span",{className:"text-sm font-medium text-[var(--text-primary)]",children:s("common:favorites.quickAccess")})]}),e.jsxs("button",{onClick:()=>u(!0),className:"flex items-center gap-1.5 px-2 py-1 text-xs font-medium text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:bg-[var(--bg-hover)] rounded-[var(--radius-button)] transition-colors",children:[e.jsx(l.Settings2,{className:"w-3.5 h-3.5"}),s("common:favorites.manage")]})]}),e.jsxs("div",{className:"flex gap-2 overflow-x-auto pb-1",children:[n.map(f=>e.jsxs("button",{onClick:()=>p(f),className:"flex flex-col items-center gap-1.5 min-w-[80px] p-3 bg-[var(--bg-secondary)] hover:bg-[var(--bg-hover)] border border-[var(--border-color)] hover:border-[var(--color-accent-500)] rounded-[var(--radius-card)] transition-all group",title:`${f.applicationLabel} - ${f.label}`,children:[e.jsx("div",{className:"w-8 h-8 flex items-center justify-center rounded-[var(--radius-button)] bg-[var(--color-accent-100)] text-[var(--color-accent-600)] group-hover:bg-[var(--color-accent-600)] group-hover:text-white transition-colors",children:e.jsx(qc,{name:f.icon||"Star",className:"w-4 h-4"})}),e.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)] group-hover:text-[var(--text-primary)] truncate max-w-[70px]",children:f.label})]},f.id)),Array.from({length:m}).map((f,y)=>e.jsxs("button",{onClick:()=>u(!0),className:"flex flex-col items-center justify-center gap-1.5 min-w-[80px] p-3 border-2 border-dashed border-[var(--border-color)] hover:border-[var(--color-accent-500)] rounded-[var(--radius-card)] transition-colors group",children:[e.jsx("div",{className:"w-8 h-8 flex items-center justify-center rounded-[var(--radius-button)] bg-[var(--bg-tertiary)] text-[var(--text-muted)] group-hover:bg-[var(--color-accent-100)] group-hover:text-[var(--color-accent-600)] transition-colors",children:e.jsx(l.Plus,{className:"w-4 h-4"})}),e.jsx("span",{className:"text-xs text-[var(--text-muted)] group-hover:text-[var(--text-secondary)]",children:s("common:favorites.add")})]},`empty-slot-${y}`))]})]}),e.jsx($a,{isOpen:d,onClose:()=>u(!1)})]})}function zc({activities:t,loading:s=!1}){return s?e.jsx("div",{className:"animate-pulse space-y-4",children:[1,2,3].map(r=>e.jsxs("div",{className:"flex gap-4",children:[e.jsx("div",{className:"w-8 h-8 bg-[var(--bg-secondary)] rounded-full"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"h-4 bg-[var(--bg-secondary)] rounded w-3/4 mb-2"}),e.jsx("div",{className:"h-3 bg-[var(--bg-secondary)] rounded w-1/4"})]})]},`skeleton-${r}`))}):t.length===0?e.jsxs("div",{className:"text-center py-8 text-[var(--text-secondary)]",children:[e.jsx(l.RefreshCcw,{className:"w-12 h-12 mx-auto mb-4 opacity-30"}),e.jsx("p",{children:"No activity recorded yet"})]}):e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute left-4 top-0 bottom-0 w-0.5 bg-[var(--border-color)]"}),e.jsx("div",{className:"space-y-4",children:t.map((r,n)=>e.jsx(Kc,{activity:r,isLast:n===t.length-1},r.id))})]})}function Kc({activity:t,isLast:s}){const{icon:r,color:n,bgColor:o}=Vc(t.action),c=r;return e.jsxs("div",{className:"relative flex gap-4 pl-0",children:[e.jsx("div",{className:`relative z-10 w-8 h-8 rounded-full flex items-center justify-center ${o}`,children:e.jsx(c,{className:`w-4 h-4 ${n}`})}),e.jsx("div",{className:"flex-1 pb-4 ",children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-sm",children:[t.changedByUserName?e.jsx("span",{className:"font-medium",children:t.changedByUserName}):e.jsx("span",{className:"font-medium text-[var(--text-secondary)]",children:"System"})," ",e.jsx("span",{className:"text-[var(--text-secondary)]",children:rd(t)})]}),t.fieldChanged&&t.oldValue&&t.newValue&&e.jsxs("div",{className:"mt-2 flex items-center gap-2 text-sm",children:[e.jsx("span",{className:"px-2 py-0.5 bg-[var(--error-bg)] text-[var(--error-text)] rounded line-through",children:t.oldValue}),e.jsx(l.ArrowRight,{className:"w-4 h-4 text-[var(--text-secondary)]"}),e.jsx("span",{className:"px-2 py-0.5 bg-[var(--success-bg)] text-[var(--success-text)] rounded",children:t.newValue})]})]}),e.jsx("span",{className:"text-xs text-[var(--text-secondary)] whitespace-nowrap",children:ad(t.createdAt)})]})})]})}const Gc={Created:{icon:l.PlusCircle,color:"text-[var(--success-text)]",bgColor:"bg-[var(--success-bg)]"},StatusChanged:{icon:l.RefreshCcw,color:"text-[var(--info-text)]",bgColor:"bg-[var(--info-bg)]"},PriorityChanged:{icon:l.AlertTriangle,color:"text-[var(--warning-text)]",bgColor:"bg-[var(--warning-bg)]"},Assigned:{icon:l.UserPlus,color:"text-[var(--accent-text)]",bgColor:"bg-[var(--accent-bg)]"},Commented:{icon:l.MessageSquare,color:"text-[var(--info-text)]",bgColor:"bg-[var(--info-bg)]"},AttachmentAdded:{icon:l.Paperclip,color:"text-[var(--text-secondary)]",bgColor:"bg-[var(--bg-secondary)]"},Resolved:{icon:l.CheckCircle,color:"text-[var(--success-text)]",bgColor:"bg-[var(--success-bg)]"},Closed:{icon:l.XCircle,color:"text-[var(--text-secondary)]",bgColor:"bg-[var(--bg-secondary)]"},Reopened:{icon:l.RefreshCcw,color:"text-[var(--warning-text)]",bgColor:"bg-[var(--warning-bg)]"},SlaBreached:{icon:l.AlertTriangle,color:"text-[var(--error-text)]",bgColor:"bg-[var(--error-bg)]"},Escalated:{icon:l.TrendingUp,color:"text-[var(--error-text)]",bgColor:"bg-[var(--error-bg)]"},Updated:{icon:l.Edit,color:"text-[var(--info-text)]",bgColor:"bg-[var(--info-bg)]"},Deleted:{icon:l.Trash2,color:"text-[var(--error-text)]",bgColor:"bg-[var(--error-bg)]"},OnHold:{icon:l.Pause,color:"text-[var(--warning-text)]",bgColor:"bg-[var(--warning-bg)]"},InProgress:{icon:l.Play,color:"text-[var(--info-text)]",bgColor:"bg-[var(--info-bg)]"}},Hc={icon:l.RefreshCcw,color:"text-[var(--text-secondary)]",bgColor:"bg-[var(--bg-secondary)]"};function Vc(t){return Gc[t]||Hc}const Wc=t=>t.oldValue&&t.newValue?`changed status from ${t.oldValue} to ${t.newValue}`:"changed the status",Xc=t=>t.oldValue&&t.newValue?`changed priority from ${t.oldValue} to ${t.newValue}`:"changed the priority",Yc=t=>t.newValue?`assigned to ${t.newValue}`:"unassigned the ticket",Jc=t=>t.newValue==="internal"?"added an internal note":"added a comment",Qc=t=>t.newValue?`added attachment: ${t.newValue}`:"added an attachment",Zc=t=>t.newValue==="response"?"Response SLA was breached":"Resolution SLA was breached",ed=t=>t.newValue?`escalated to ${t.newValue}`:"escalated this ticket",td=t=>t.fieldChanged?`updated ${t.fieldChanged}`:"updated the ticket",sd={Created:()=>"created this ticket",StatusChanged:Wc,PriorityChanged:Xc,Assigned:Yc,Commented:Jc,AttachmentAdded:Qc,Resolved:()=>"resolved this ticket",Closed:()=>"closed this ticket",Reopened:()=>"reopened this ticket",SlaBreached:Zc,Escalated:ed,Updated:td,OnHold:()=>"put this ticket on hold",InProgress:()=>"started working on this ticket"};function rd(t){const s=sd[t.action];return s?s(t):t.action.toLowerCase()}function ad(t){const s=new Date(t),n=new Date().getTime()-s.getTime(),o=Math.floor(n/6e4),c=Math.floor(o/60),i=Math.floor(c/24);return o<1?"Just now":o<60?`${o}m ago`:c<24?`${c}h ago`:i<7?`${i}d ago`:s.toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function nd({responseDueAt:t,resolutionDueAt:s,responseBreached:r,resolutionBreached:n,firstResponseAt:o,isPaused:c,responseSlaPercentage:i=0,resolutionSlaPercentage:d=0,showDetails:u=!1}){const m=new Date,x=new Date(t),p=new Date(s),f=x.getTime()-m.getTime(),y=p.getTime()-m.getTime(),h=!!o;let N="ok",b="green",w=l.CheckCircle;c?(N="paused",b="gray",w=l.Pause):r||n?(N="breached",b="red",w=l.XCircle):(!h&&f<1800*1e3||y<3600*1e3)&&(N="warning",b="yellow",w=l.AlertTriangle);const g={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)]",gray:"bg-[var(--bg-secondary)] text-[var(--text-secondary)] border-[var(--border-color)]"};return u?e.jsxs("div",{className:`p-3 rounded-lg border ${g[b]}`,children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(w,{className:"w-4 h-4"}),e.jsxs("span",{className:"font-medium",children:[N==="paused"&&"SLA Paused",N==="breached"&&"SLA Breached",N==="warning"&&"SLA Warning",N==="ok"&&"Within SLA"]})]}),e.jsxs("div",{className:"space-y-2 text-sm",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx("span",{className:"opacity-80",children:"Response"}),r&&e.jsx("span",{className:"text-[var(--error-text)] font-medium",children:"Breached"}),!r&&h&&e.jsx("span",{className:"text-[var(--success-text)] font-medium",children:"Completed"}),!r&&!h&&e.jsx("span",{children:Qs(f)})]}),!h&&!r&&e.jsx(Js,{percentage:i})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx("span",{className:"opacity-80",children:"Resolution"}),n?e.jsx("span",{className:"text-[var(--error-text)] font-medium",children:"Breached"}):e.jsx("span",{children:Qs(y)})]}),!n&&e.jsx(Js,{percentage:d})]})]})]}):e.jsxs("span",{className:`inline-flex items-center gap-1 px-2 py-1 rounded text-xs font-medium border ${g[b]}`,children:[e.jsx(w,{className:"w-3 h-3"}),N==="paused"&&"SLA Paused",N==="breached"&&"SLA Breached",N==="warning"&&"SLA Warning",N==="ok"&&"Within SLA"]})}function Js({percentage:t}){const s=()=>t>=90?"bg-[var(--error-text)]":t>=75?"bg-[var(--warning-text)]":"bg-[var(--success-text)]";return e.jsx("div",{className:"h-1.5 bg-white/50 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all duration-300 ${s()}`,style:{width:`${Math.min(t,100)}%`}})})}function Qs(t){if(t<=0)return"Overdue";const s=Math.floor(t/(1e3*60)),r=Math.floor(s/60),n=Math.floor(r/24);if(n>0){const o=r%24;return o>0?`${n}d ${o}h`:`${n}d`}if(r>0){const o=s%60;return o>0?`${r}h ${o}m`:`${r}h`}return`${s}m`}const Zs={Greeting:"bg-[var(--info-bg)] text-[var(--info-text)]",Acknowledgment:"bg-[var(--success-bg)] text-[var(--success-text)]",RequestInfo:"bg-[var(--warning-bg)] text-[var(--warning-text)]",InProgress:"bg-[var(--info-bg)] text-[var(--info-text)]",Resolution:"bg-[var(--accent-bg)] text-[var(--accent-text)]",Escalation:"bg-[var(--warning-bg)] text-[var(--warning-text)]",OnHold:"bg-[var(--bg-secondary)] text-[var(--text-secondary)]",Closure:"bg-[var(--bg-secondary)] text-[var(--text-secondary)]",Rejection:"bg-[var(--error-bg)] text-[var(--error-text)]",General:"bg-[var(--bg-secondary)] text-[var(--text-secondary)]"},od=[{code:"fr",label:"Français"},{code:"en",label:"English"},{code:"de",label:"Deutsch"},{code:"it",label:"Italiano"}];function id({isOpen:t,onClose:s,onSelect:r,ticketVariables:n}){const{t:o,i18n:c}=re.useTranslation("support"),[i,d]=a.useState([]),[u,m]=a.useState(!1),[x,p]=a.useState(null),[f,y]=a.useState(""),[h,N]=a.useState(""),[b,w]=a.useState(c.language?.substring(0,2)||"fr"),[g,v]=a.useState([]),j=a.useCallback(P=>{m(!0),Promise.all([Et.getAll(void 0,!0,P),Et.getCategories()]).then(([A,D])=>{d(A),v(D)}).catch(console.error).finally(()=>m(!1))},[]);a.useEffect(()=>{t&&(w(c.language?.substring(0,2)||"fr"),j(c.language?.substring(0,2)||"fr"))},[t,c.language,j]);const L=P=>{w(P),j(P)};if(!t)return null;const $=i.filter(P=>{const A=!f||P.title.toLowerCase().includes(f.toLowerCase())||P.content.toLowerCase().includes(f.toLowerCase()),D=!h||P.category===h;return A&&D}),k=async P=>{try{p(P.id);const A=await Et.render(P.id,n);r(A.content),s()}catch(A){console.error("Failed to render template:",A)}finally{p(null)}};return e.jsx("div",{className:"fixed inset-0 bg-black/50 z-50 flex items-center justify-center p-4",onClick:s,onKeyDown:P=>P.key==="Escape"&&s(),role:"presentation",children:e.jsxs("div",{className:"bg-[var(--bg-card)] rounded-xl shadow-xl w-full max-w-lg max-h-[70vh] flex flex-col",onClick:P=>P.stopPropagation(),role:"presentation",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-[var(--border-color)]",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.FileText,{className:"w-5 h-5 text-[var(--color-primary-500)]"}),e.jsx("h3",{className:"font-semibold text-[var(--text-primary)]",children:o("templatePicker.title")})]}),e.jsx("button",{onClick:s,className:"p-1 rounded hover:bg-[var(--bg-secondary)]",children:e.jsx(l.X,{className:"w-5 h-5 text-[var(--text-secondary)]"})})]}),e.jsxs("div",{className:"p-3 space-y-2 border-b border-[var(--border-color)]",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.Globe,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("div",{className:"flex gap-1",children:od.map(P=>e.jsx("button",{onClick:()=>L(P.code),className:`px-2 py-1 text-xs rounded transition-colors ${b===P.code?"bg-[var(--color-primary-500)] text-white":"bg-[var(--bg-secondary)] text-[var(--text-secondary)] hover:bg-[var(--bg-tertiary)]"}`,children:P.label},P.code))})]}),e.jsxs("div",{className:"relative",children:[e.jsx(l.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("input",{type:"text",value:f,onChange:P=>y(P.target.value),placeholder:o("templatePicker.searchPlaceholder"),className:"w-full pl-9 pr-3 py-2 text-sm bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded-lg outline-none focus:ring-1 focus:ring-[var(--color-primary-500)]",autoFocus:!0})]}),e.jsxs("div",{className:"flex gap-1 flex-wrap",children:[e.jsx("button",{onClick:()=>N(""),className:`px-2 py-1 text-xs rounded-full transition-colors ${h?"bg-[var(--bg-secondary)] text-[var(--text-secondary)] hover:bg-[var(--bg-tertiary)]":"bg-[var(--color-primary-500)] text-white"}`,children:o("templatePicker.allCategories")}),g.map(P=>e.jsx("button",{onClick:()=>N(P===h?"":P),className:`px-2 py-1 text-xs rounded-full transition-colors ${P===h?"bg-[var(--color-primary-500)] text-white":`${Zs[P]||"bg-[var(--bg-secondary)] text-[var(--text-secondary)]"} hover:opacity-80`}`,children:o(`templates.categories.${P}`,{defaultValue:P})},P))]})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-2",children:[u&&e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--text-tertiary)]"})}),!u&&$.length===0&&e.jsx("p",{className:"text-center py-8 text-sm text-[var(--text-tertiary)]",children:o("templatePicker.noResults")}),!u&&$.length>0&&e.jsx("div",{className:"space-y-1",children:$.map(P=>e.jsxs("button",{onClick:()=>k(P),disabled:x!==null,className:"w-full text-left p-3 rounded-lg hover:bg-[var(--bg-secondary)] transition-colors group disabled:opacity-50",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("span",{className:`px-2 py-0.5 text-[10px] rounded-full ${Zs[P.category]||"bg-[var(--bg-secondary)]"}`,children:o(`templates.categories.${P.category}`,{defaultValue:P.category})}),e.jsx("span",{className:"font-medium text-sm text-[var(--text-primary)]",children:P.title}),x===P.id&&e.jsx(l.Loader2,{className:"w-3 h-3 animate-spin ml-auto"})]}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] line-clamp-2",children:P.content})]},P.id))})]}),e.jsx("div",{className:"p-3 border-t border-[var(--border-color)]",children:e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] text-center",children:o("templatePicker.selectTemplate")})})]})})}const er={Created:{icon:l.Clock,color:"var(--color-primary-500)",labelKey:"history.actions.Created"},StatusChanged:{icon:l.ArrowRightLeft,color:"var(--info-text)",labelKey:"history.actions.StatusChanged"},PriorityChanged:{icon:l.AlertTriangle,color:"var(--warning-text)",labelKey:"history.actions.PriorityChanged"},Assigned:{icon:l.UserPlus,color:"var(--success-text)",labelKey:"history.actions.Assigned"},Unassigned:{icon:l.UserPlus,color:"var(--text-secondary)",labelKey:"history.actions.Unassigned"},Commented:{icon:l.MessageSquare,color:"var(--color-primary-500)",labelKey:"history.actions.Commented"},InternalCommented:{icon:l.MessageSquare,color:"var(--warning-text)",labelKey:"history.actions.InternalCommented"},AttachmentAdded:{icon:l.Paperclip,color:"var(--success-text)",labelKey:"history.actions.AttachmentAdded"},AttachmentRemoved:{icon:l.Paperclip,color:"var(--error-text)",labelKey:"history.actions.AttachmentRemoved"},Resolved:{icon:l.CheckCircle,color:"var(--success-text)",labelKey:"history.actions.Resolved"},Closed:{icon:l.XCircle,color:"var(--text-secondary)",labelKey:"history.actions.Closed"},Reopened:{icon:l.RotateCcw,color:"var(--warning-text)",labelKey:"history.actions.Reopened"},Rejected:{icon:l.XCircle,color:"var(--error-text)",labelKey:"history.actions.Rejected"},SlaResponseBreached:{icon:l.AlertTriangle,color:"var(--error-text)",labelKey:"history.actions.SlaResponseBreached"},SlaResolutionBreached:{icon:l.AlertTriangle,color:"var(--error-text)",labelKey:"history.actions.SlaResolutionBreached"},Escalated:{icon:l.ArrowRightLeft,color:"var(--warning-text)",labelKey:"history.actions.Escalated"},TitleChanged:{icon:l.MessageSquare,color:"var(--text-secondary)",labelKey:"history.actions.TitleChanged"},DescriptionChanged:{icon:l.MessageSquare,color:"var(--text-secondary)",labelKey:"history.actions.DescriptionChanged"},TypeChanged:{icon:l.ArrowRightLeft,color:"var(--text-secondary)",labelKey:"history.actions.TypeChanged"},SatisfactionSubmitted:{icon:l.CheckCircle,color:"var(--success-text)",labelKey:"history.actions.SatisfactionSubmitted"}},Da=(t,s,r)=>{const n=new Date(t),c=new Date().getTime()-n.getTime(),i=Math.floor(c/6e4),d=Math.floor(c/36e5),u=Math.floor(c/864e5);return i<1?s("history.timeAgo.now"):i<60?s("history.timeAgo.minutes",{count:i}):d<24?s("history.timeAgo.hours",{count:d}):u<7?s("history.timeAgo.days",{count:u}):n.toLocaleDateString(r,{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"})},ld=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`,tr=t=>t?.startsWith("image/")||!1,cd=(t,s)=>t?"px-4 py-2.5 shadow-sm rounded-2xl bg-[var(--warning-bg)] border border-[var(--warning-border)]":s?"px-4 py-2.5 shadow-sm rounded-2xl rounded-tr-md bg-[var(--color-accent-600)] text-white":"px-4 py-2.5 shadow-sm rounded-2xl rounded-tl-md bg-[var(--bg-card)] border border-[var(--border-color)]";function dd(t,s,r){const n=[];(r?t:t.filter(i=>!i.isInternal)).forEach(i=>{n.push({type:"comment",id:`comment-${i.id}`,timestamp:new Date(i.createdAt),data:i})});const c=["Commented","InternalCommented"];return s.filter(i=>!c.includes(i.action)).forEach(i=>{n.push({type:"activity",id:`activity-${i.id}`,timestamp:new Date(i.createdAt),data:i})}),n.sort((i,d)=>i.timestamp.getTime()-d.timestamp.getTime()),n}function ud({activity:t,t:s,locale:r}){const n=er[t.action]||er.Created,o=n.icon;return e.jsx("div",{className:"flex justify-center my-4",children:e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-[var(--bg-secondary)] border border-[var(--border-color)] text-sm",children:[e.jsx(o,{className:"w-4 h-4",style:{color:n.color}}),e.jsx("span",{className:"text-[var(--text-secondary)]",children:s(n.labelKey)}),t.newValue&&t.action==="StatusChanged"&&e.jsxs("span",{className:"font-medium text-[var(--text-primary)]",children:["→ ",t.newValue]}),t.newValue&&t.action==="Assigned"&&e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t.newValue}),e.jsx("span",{className:"text-xs text-[var(--text-tertiary)]",children:Da(t.createdAt,s,r)})]})})}const md=t=>{const s=t.trim().split(/\s+/);return s.length>=2?((s[0]?.at(0)??"")+(s.at(-1)?.at(0)??"")).toUpperCase():t.slice(0,2).toUpperCase()},xd=t=>{const s=["#6366f1","#8b5cf6","#ec4899","#f43f5e","#f97316","#eab308","#22c55e","#14b8a6","#06b6d4","#3b82f6"];let r=0;for(let n=0;n<t.length;n++)r=t.charCodeAt(n)+((r<<5)-r);return s[Math.abs(r)%s.length]};function sr({src:t,alt:s,className:r,onClick:n}){const[o,c]=a.useState(null),[i,d]=a.useState(!0),[u,m]=a.useState(!1);return a.useEffect(()=>{let x=!0;const p=new AbortController;return Pe.get(t,{responseType:"blob",signal:p.signal}).then(f=>{if(x){const y=URL.createObjectURL(f.data);c(y),d(!1)}}).catch(()=>{x&&(m(!0),d(!1))}),()=>{x=!1,p.abort(),o&&URL.revokeObjectURL(o)}},[t]),i?e.jsx("button",{type:"button",className:`flex items-center justify-center bg-[var(--bg-secondary)] ${r}`,onClick:n,children:e.jsx(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--text-tertiary)]"})}):u||!o?e.jsx("button",{type:"button",className:`flex items-center justify-center bg-[var(--bg-secondary)] ${r}`,onClick:n,children:e.jsx(l.Image,{className:"w-6 h-6 text-[var(--text-tertiary)]"})}):e.jsx("img",{src:o,alt:s,className:r,onClick:n})}function pd({comment:t,isOwn:s,isSupport:r,attachments:n,getAttachmentUrl:o,onDownloadAttachment:c,t:i,locale:d}){const[u,m]=a.useState(null),x=new Date(t.createdAt).getTime(),p=n.filter(b=>{const w=new Date(b.createdAt).getTime();return Math.abs(w-x)<6e4}),f=p.filter(b=>tr(b.contentType)),y=p.filter(b=>!tr(b.contentType)),h=md(t.userName),N=xd(t.userName);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`flex gap-3 mb-4 ${s?"flex-row-reverse":"flex-row"}`,children:[e.jsx("div",{className:"w-9 h-9 rounded-full flex items-center justify-center flex-shrink-0 text-white text-sm font-semibold shadow-sm",style:{backgroundColor:N},title:t.userName,children:h}),e.jsxs("div",{className:`flex flex-col max-w-[70%] ${s?"items-end":"items-start"}`,children:[e.jsxs("div",{className:`flex items-center gap-2 mb-1 ${s?"flex-row-reverse":"flex-row"}`,children:[e.jsx("span",{className:"text-xs font-medium text-[var(--text-secondary)]",children:t.userName}),r&&t.isInternal&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded bg-[var(--warning-bg)] text-[var(--warning-text)] border border-[var(--warning-border)]",children:i("conversation.internalNoteLabel")}),t.isEdited&&e.jsx("span",{className:"text-xs text-[var(--text-tertiary)]",children:i("conversation.edited")})]}),e.jsxs("div",{className:cd(t.isInternal||!1,s),children:[e.jsx("p",{className:"whitespace-pre-wrap text-sm leading-relaxed",children:t.content}),f.length>0&&e.jsx("div",{className:`mt-3 grid gap-2 ${f.length>1?"grid-cols-2":"grid-cols-1"}`,children:f.map(b=>e.jsxs("button",{className:"relative cursor-pointer rounded-lg overflow-hidden group",onClick:()=>m(b),type:"button",children:[e.jsx(sr,{src:o(b),alt:b.fileName,className:"w-full h-32 object-cover"}),e.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/30 transition-colors flex items-center justify-center",children:e.jsx(l.Eye,{className:"w-6 h-6 text-white opacity-0 group-hover:opacity-100 transition-opacity"})})]},b.id))}),y.length>0&&e.jsx("div",{className:"mt-3 space-y-2",children:y.map(b=>e.jsxs("button",{onClick:()=>c(b),className:`flex items-center gap-2 w-full p-2 rounded-lg transition-colors ${s&&!t.isInternal?"bg-white/10 hover:bg-white/20":"bg-[var(--bg-secondary)] hover:bg-[var(--bg-tertiary)]"}`,children:[e.jsx(l.FileText,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{className:"text-xs truncate flex-1 text-left",children:b.fileName}),e.jsx("span",{className:"text-xs opacity-70",children:ld(b.fileSize)}),e.jsx(l.Download,{className:"w-3.5 h-3.5"})]},b.id))})]}),e.jsx("div",{className:"text-[10px] text-[var(--text-tertiary)] mt-1 px-1",children:Da(t.createdAt,i,d)})]})]}),u&&e.jsx("div",{className:"fixed inset-0 bg-black/80 backdrop-blur-sm flex items-center justify-center z-50 p-4",onClick:()=>m(null),onKeyDown:b=>b.key==="Escape"&&m(null),role:"presentation",children:e.jsxs("div",{className:"relative max-w-4xl max-h-[90vh] w-full",children:[e.jsx("button",{onClick:()=>m(null),className:"absolute -top-10 right-0 text-white hover:text-gray-300",children:e.jsx(l.X,{className:"w-6 h-6"})}),e.jsx(sr,{src:o(u),alt:u?.fileName,className:"max-w-full max-h-[80vh] mx-auto object-contain rounded-lg",onClick:b=>b.stopPropagation()}),e.jsxs("div",{className:"mt-4 flex items-center justify-center gap-4",children:[e.jsx("p",{className:"text-white text-sm",children:u.fileName}),e.jsxs("button",{onClick:b=>{b.stopPropagation(),c(u)},className:"btn btn-secondary",children:[e.jsx(l.Download,{className:"w-4 h-4 mr-2"}),i("conversation.download")]})]})]})})]})}const hd=(t,s,r)=>t?r("conversation.internalPlaceholder","Ajouter une note interne..."):s?r("conversation.supportPlaceholder","Répondre au client..."):r("conversation.clientPlaceholder","Écrire un message..."),gd=t=>`flex items-end gap-2 rounded-xl border ${t?"border-[var(--warning-border)] bg-[var(--warning-bg)]/30":"border-[var(--border-color)] bg-[var(--bg-secondary)]"} p-2`,fd=(t,s)=>`p-2.5 rounded-lg transition-colors ${t?"bg-[var(--color-primary-600)] text-white hover:bg-[var(--color-primary-700)]":"bg-[var(--bg-tertiary)] text-[var(--text-tertiary)]"} disabled:opacity-50`;function bd({isConnected:t,commentCount:s,t:r}){return e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border-color)] bg-[var(--bg-card)]",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.MessageSquare,{className:"w-5 h-5 text-[var(--color-accent-600)]"}),e.jsx("h2",{className:"font-semibold",children:r("conversation.title","Conversation")}),e.jsxs("span",{className:"text-sm text-[var(--text-secondary)]",children:["(",s,")"]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",title:r(t?"conversation.realtimeActive":"conversation.realtimeInactive"),children:[t?e.jsx(l.Wifi,{className:"w-4 h-4 text-[var(--success-text)]"}):e.jsx(l.WifiOff,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("span",{className:`text-xs ${t?"text-[var(--success-text)]":"text-[var(--text-tertiary)]"}`,children:r(t?"conversation.live":"conversation.offline")})]})]})}function vd({t}){return e.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-[var(--text-secondary)]",children:[e.jsx(l.MessageSquare,{className:"w-12 h-12 mb-3 opacity-50"}),e.jsx("p",{children:t("conversation.empty","Aucun message pour le moment")}),e.jsx("p",{className:"text-sm mt-1",children:t("conversation.startHint","Commencez la conversation ci-dessous")})]})}function yd({timeline:t,currentUserName:s,isSupport:r,attachments:n,getAttachmentUrl:o,onDownloadAttachment:c,messagesEndRef:i,t:d,locale:u}){return e.jsxs(e.Fragment,{children:[t.map(m=>{if(m.type==="activity")return e.jsx(ud,{activity:m.data,t:d,locale:u},m.id);const x=m.data,p=x.userName===s;return e.jsx(pd,{comment:x,isOwn:p,isSupport:r,attachments:n,getAttachmentUrl:o,onDownloadAttachment:c,t:d,locale:u},m.id)}),e.jsx("div",{ref:i})]})}function jd({isInternalComment:t,onToggle:s,t:r}){return e.jsx("div",{className:"mb-2",children:e.jsxs("label",{className:"inline-flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:t,onChange:n=>s(n.target.checked),className:"rounded border-[var(--border-color)]"}),e.jsx("span",{className:`text-sm ${t?"text-[var(--warning-text)] font-medium":"text-[var(--text-secondary)]"}`,children:r("conversation.internalNote","Note interne (invisible pour le client)")})]})})}function Nd({newComment:t,onCommentChange:s,onKeyDown:r,onSend:n,isInternalComment:o,onInternalToggle:c,sending:i,isSupport:d,textareaRef:u,ticketVariables:m,onOpenTemplatePicker:x,t:p}){const f=t.trim();return e.jsxs("div",{className:"border-t border-[var(--border-color)] bg-[var(--bg-card)] p-3",children:[d&&e.jsx(jd,{isInternalComment:o,onToggle:c,t:p}),e.jsxs("div",{className:gd(o),children:[e.jsx("textarea",{ref:u,value:t,onChange:y=>s(y.target.value),onKeyDown:r,placeholder:hd(o,d,p),className:"flex-1 bg-transparent border-none outline-none resize-none text-sm min-h-[24px] max-h-[150px] py-1 px-2",rows:1}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[d&&m&&x&&e.jsx("button",{onClick:x,className:"p-2 rounded-lg text-[var(--text-tertiary)] hover:text-[var(--color-primary-500)] hover:bg-[var(--bg-tertiary)] transition-colors",title:p("templatePicker.buttonTitle"),children:e.jsx(l.FileText,{className:"w-4 h-4"})}),e.jsx("button",{onClick:n,disabled:!f||i,className:fd(!!f),children:i?e.jsx(l.Loader2,{className:"w-5 h-5 animate-spin"}):e.jsx(l.Send,{className:"w-5 h-5"})})]})]}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mt-2 text-center",children:p("conversation.hint","Appuyez sur Entrée pour envoyer, Maj+Entrée pour un saut de ligne")})]})}function wd({t}){return e.jsx("div",{className:"border-t border-[var(--border-color)] bg-[var(--bg-secondary)] p-4 text-center",children:e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:t("conversation.closed","Ce ticket est fermé. Aucun nouveau message ne peut être ajouté.")})})}function Ma({comments:t,activities:s,attachments:r,isSupport:n,isClosed:o,isConnected:c,currentUserName:i,ticketVariables:d,onAddComment:u,onDownloadAttachment:m,getAttachmentUrl:x}){const{t:p,i18n:f}=re.useTranslation("support"),[y,h]=a.useState(""),[N,b]=a.useState(!1),[w,g]=a.useState(!1),[v,j]=a.useState(!1),L=a.useRef(null),$=a.useRef(null),k=dd(t,s,n),P=t.filter(C=>n||!C.isInternal).length;a.useEffect(()=>{L.current?.scrollIntoView({behavior:"smooth"})},[k.length]),a.useEffect(()=>{$.current&&($.current.style.height="auto",$.current.style.height=`${Math.min($.current.scrollHeight,150)}px`)},[y]);const A=async()=>{if(!(!y.trim()||w))try{g(!0),await u(y,N),h(""),b(!1)}finally{g(!1)}},D=C=>{C.key==="Enter"&&!C.shiftKey&&(C.preventDefault(),A())},U=C=>{h(M=>M?M+`
|
|
47
47
|
`+C:C)};return e.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[e.jsx(bd,{isConnected:c,commentCount:P,t:p}),e.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 bg-[var(--bg-primary)]",children:k.length===0?e.jsx(vd,{t:p}):e.jsx(yd,{timeline:k,currentUserName:i,isSupport:n,attachments:r,getAttachmentUrl:x,onDownloadAttachment:m,messagesEndRef:L,t:p,locale:f.language})}),o?e.jsx(wd,{t:p}):e.jsx(Nd,{newComment:y,onCommentChange:h,onKeyDown:D,onSend:A,isInternalComment:N,onInternalToggle:b,sending:w,isSupport:n,textareaRef:$,ticketVariables:d,onOpenTemplatePicker:n&&d?()=>j(!0):void 0,t:p}),d&&e.jsx(id,{isOpen:v,onClose:()=>j(!1),onSelect:U,ticketVariables:d})]})}const je={tickets:{getAll:t=>I.get("/api/support/tickets",{params:t}),getMyTickets:t=>I.get("/api/support/tickets/my-assigned",{params:t}),getById:t=>I.get(`/api/support/tickets/${t}`),create:t=>I.post("/api/support/tickets",t),update:(t,s)=>I.put(`/api/support/tickets/${t}`,s),updateStatus:(t,s)=>I.patch(`/api/support/tickets/${t}/status`,{status:s}),assign:(t,s,r,n)=>I.patch(`/api/support/tickets/${t}/assign`,{assignedToUserId:s,userIds:r,groupIds:n}),resolve:(t,s)=>I.patch(`/api/support/tickets/${t}/resolve`,{resolution:s}),close:t=>I.patch(`/api/support/tickets/${t}/close`),reopen:t=>I.patch(`/api/support/tickets/${t}/reopen`),addComment:(t,s)=>I.post(`/api/support/tickets/${t}/comments`,s),delete:t=>I.delete(`/api/support/tickets/${t}`),getStats:t=>I.get("/api/support/tickets/stats",{params:{tenantId:t}}),getMyAssignedStats:()=>I.get("/api/support/tickets/my-assigned/stats"),getAttachmentUrl:(t,s)=>`/api/support/tickets/${t}/attachments/${s}`,downloadAttachment:(t,s)=>I.get(`/api/support/tickets/${t}/attachments/${s}`,{responseType:"blob"}),uploadAttachment:(t,s)=>{const r=new FormData;return r.append("file",s),I.post(`/api/support/tickets/${t}/attachments`,r,{headers:{"Content-Type":"multipart/form-data"}})},getActivities:(t,s=10)=>I.get(`/api/support/tickets/${t}/activities`,{params:{limit:s}}),getTicketingProvider:()=>I.get("/api/support/tickets/provider"),getGlpiSyncStats:()=>I.get("/api/support/tickets/glpi-sync-stats"),proposeSolution:(t,s)=>I.post(`/api/support/tickets/${t}/solutions`,{content:s}),getSolutions:t=>I.get(`/api/support/tickets/${t}/solutions`),approveSolution:t=>I.patch(`/api/support/tickets/${t}/solutions/approve`),rejectSolution:(t,s)=>I.patch(`/api/support/tickets/${t}/solutions/reject`,{reason:s})}},Ue={getAll:t=>I.get("/api/support/my-tickets",{params:t}),getById:t=>I.get(`/api/support/my-tickets/${t}`),create:t=>I.post("/api/support/my-tickets",t),update:(t,s)=>I.put(`/api/support/my-tickets/${t}`,s),addComment:(t,s)=>I.post(`/api/support/my-tickets/${t}/comments`,{content:s}),getStats:()=>I.get("/api/support/my-tickets/stats"),uploadAttachment:(t,s)=>{const r=new FormData;return r.append("file",s),I.post(`/api/support/my-tickets/${t}/attachments`,r,{headers:{"Content-Type":"multipart/form-data"}})},downloadAttachment:(t,s)=>I.get(`/api/support/my-tickets/${t}/attachments/${s}`,{responseType:"blob"}),deleteAttachment:(t,s)=>I.delete(`/api/support/my-tickets/${t}/attachments/${s}`),getActivities:(t,s=10)=>I.get(`/api/support/my-tickets/${t}/activities`,{params:{limit:s}}),getAttachmentUrl:(t,s)=>`/api/support/my-tickets/${t}/attachments/${s}`,submitSatisfaction:(t,s)=>I.post(`/api/support/my-tickets/${t}/satisfaction`,s),getSatisfaction:t=>I.get(`/api/support/my-tickets/${t}/satisfaction`),getSolutions:t=>I.get(`/api/support/my-tickets/${t}/solutions`),approveSolution:t=>I.patch(`/api/support/my-tickets/${t}/solutions/approve`),rejectSolution:(t,s)=>I.patch(`/api/support/my-tickets/${t}/solutions/reject`,{reason:s})};function Ps(){const{currentTenant:t}=De(),[s,r]=a.useState(null),[n,o]=a.useState(!!t),[c,i]=a.useState(null),d=a.useCallback(async()=>{if(!t){r(null);return}o(!0),i(null);try{const u=await je.tickets.getTicketingProvider();r(u)}catch{i("Failed to load ticketing provider configuration"),r(null)}finally{o(!1)}},[t]);return a.useEffect(()=>{d()},[d]),{provider:s?.provider??"SmartStack",isGlpi:s?.provider==="Glpi",isConfigured:s?.isConfigured??!1,glpiBaseUrl:s?.glpiBaseUrl??void 0,loading:n,error:c,refresh:d}}const ds={Open:"pending",InProgress:"active",OnHold:"warning",Resolved:"active",Closed:"inactive",Rejected:"error"},rr={Low:{bg:"var(--info-bg)",text:"var(--info-text)"},Medium:{bg:"var(--warning-bg)",text:"var(--warning-text)"},High:{bg:"var(--error-bg)",text:"var(--error-text)"},Critical:{bg:"var(--error-text)",text:"white"}},ts=["Open","InProgress","Resolved","Closed"],Ye={Open:{label:"Ouvert",icon:l.Clock,color:"var(--warning-text)"},InProgress:{label:"En cours",icon:l.Play,color:"var(--info-text)"},OnHold:{label:"En attente",icon:l.Pause,color:"var(--warning-text)"},Resolved:{label:"Résolu",icon:l.CheckCircle,color:"var(--success-text)"},Closed:{label:"Fermé",icon:l.XCircle,color:"var(--text-secondary)"},Rejected:{label:"Rejeté",icon:l.AlertTriangle,color:"var(--error-text)"}},Sd=t=>new Date(t).toLocaleDateString("fr-FR",{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"}),Cd=t=>t.isActive?"ring-4 ring-opacity-30":t.isPast?"bg-[var(--success-bg)]":"bg-[var(--bg-secondary)] border-2 border-[var(--border-color)]",kd=(t,s)=>{if(t.isActive)return s.color;if(t.isPast)return"var(--success-bg)"},Pd=(t,s)=>({backgroundColor:kd(t,s),boxShadow:t.isActive?`0 0 0 4px ${s.color}30`:void 0}),Ad=t=>t.isActive?"white":t.isPast?"var(--success-text)":"var(--text-tertiary)",Td=t=>t.isActive?"text-[var(--text-primary)]":t.isPast?"text-[var(--success-text)]":"text-[var(--text-tertiary)]",Rd=(t,s)=>t.isPast?"var(--success-text)":t.isActive?s.color:"var(--border-color)";function Ed({step:t,config:s}){const r=t.icon;return e.jsx("div",{className:`relative w-10 h-10 rounded-full flex items-center justify-center shrink-0 transition-all ${Cd(t)}`,style:Pd(t,s),children:e.jsx(r,{className:"w-5 h-5",style:{color:Ad(t)}})})}function Id({step:t}){return e.jsxs("div",{className:"mt-2 text-center",children:[e.jsx("p",{className:`text-xs font-medium ${Td(t)}`,children:t.label}),t.date&&(t.isActive||t.isPast)&&e.jsx("p",{className:"text-[10px] text-[var(--text-secondary)] mt-0.5",children:Sd(t.date)})]})}function Ld({step:t,config:s,isLast:r}){return r?null:e.jsx("div",{className:"flex-1 h-0.5 mx-2 mt-[-20px]",style:{backgroundColor:Rd(t,s)}})}function $d({currentStatus:t,createdAt:s,resolvedAt:r,closedAt:n,activities:o=[],isSupport:c,saving:i,assignees:d,onAssign:u,onStatusChange:m,onResolve:x,onCloseTicket:p,onReopen:f,onEscalate:y}){const{t:h}=re.useTranslation("support"),N=t==="Rejected",b=o.some(v=>v.action==="Reopened"),g=(()=>{if(N)return[{status:"Open",label:h("tickets.statuses.Open",Ye.Open.label),icon:Ye.Open.icon,date:s,isActive:!1,isPast:!0,isFuture:!1},{status:"Rejected",label:h("tickets.statuses.Rejected",Ye.Rejected.label),icon:Ye.Rejected.icon,date:n,isActive:!0,isPast:!1,isFuture:!1}];const v=ts.indexOf(t),j=[],L={Open:s};o.filter(k=>k.action==="StatusChanged"&&k.newValue).forEach(k=>{k.newValue&&(L[k.newValue]=k.createdAt)}),r&&(L.Resolved=r),n&&(L.Closed=n);const $=o.some(k=>k.action==="StatusChanged"&&k.newValue==="OnHold");if(ts.forEach(k=>{const P=Ye[k],A=k===t?v:ts.indexOf(k),D=k===t,U=A<v,C=A>v;j.push({status:k,label:h(`tickets.statuses.${k}`,{defaultValue:P.label}),icon:P.icon,date:L[k],isActive:D,isPast:U,isFuture:C})}),$){const k=j.findIndex(P=>P.status==="Resolved");j.splice(k,0,{status:"OnHold",label:h("tickets.statuses.OnHold",Ye.OnHold.label),icon:Ye.OnHold.icon,date:L.OnHold,isActive:t==="OnHold",isPast:t!=="OnHold"&&t!=="Open"&&t!=="InProgress",isFuture:!1})}return j})();return e.jsx("div",{className:"w-full px-4 py-2 bg-[var(--bg-card)] border-b border-[var(--border-color)]",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex items-center flex-1 min-w-0",children:[g.map((v,j)=>{const L=Ye[v.status],$=j===g.length-1;return e.jsxs("div",{className:"flex items-center flex-1",children:[e.jsxs("div",{className:`flex flex-col items-center ${v.isFuture?"opacity-40":""}`,children:[e.jsx(Ed,{step:v,config:L}),e.jsx(Id,{step:v})]}),e.jsx(Ld,{step:v,config:L,isLast:$})]},v.status)}),b&&e.jsxs("div",{className:"ml-2 flex items-center gap-1 text-[10px] text-[var(--warning-text)] shrink-0",children:[e.jsx(l.RotateCcw,{className:"w-3 h-3"}),e.jsx("span",{children:h("workflow.reopened","Réouvert")})]})]}),c&&e.jsx("div",{className:"w-px h-12 bg-[var(--border-color)] shrink-0"}),c&&e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[(d?.length??0)>0?e.jsxs("div",{className:"flex items-center -space-x-1.5",title:d?.map(v=>v.fullName).join(", "),children:[d?.slice(0,3).map(v=>e.jsx("div",{className:"w-7 h-7 rounded-full bg-[var(--color-accent-500)] flex items-center justify-center text-white text-[10px] font-medium border-2 border-[var(--bg-card)]",title:`${v.fullName}${v.isPrimary?` (${h("workflow.primary","principal")})`:""}${v.assignedViaGroupName?` (${h("workflow.viaGroup","via")} ${v.assignedViaGroupName})`:""}`,children:v.fullName.charAt(0).toUpperCase()},v.userId)),(d?.length??0)>3&&e.jsxs("div",{className:"w-7 h-7 rounded-full bg-[var(--bg-tertiary)] flex items-center justify-center text-[10px] font-medium text-[var(--text-secondary)] border-2 border-[var(--bg-card)]",children:["+",(d?.length??0)-3]})]}):e.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)] italic",children:h("workflow.notAssigned","Non assigné")}),u&&e.jsx("button",{onClick:u,className:"w-7 h-7 rounded-full border border-dashed border-[var(--border-color)] flex items-center justify-center hover:border-[var(--color-accent-500)] hover:bg-[var(--bg-secondary)] transition-colors",title:h("workflow.assign","Assigner"),children:e.jsx(l.UserPlus,{className:"w-3.5 h-3.5 text-[var(--color-accent-600)]"})})]}),i&&e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin text-[var(--color-primary-600)]"}),t==="Open"&&m&&e.jsxs("button",{onClick:()=>m("InProgress"),disabled:i,className:"btn btn-secondary btn-sm text-xs",children:[e.jsx(l.Play,{className:"w-3.5 h-3.5 mr-1"}),h("workflow.actions.start","Commencer")]}),t==="InProgress"&&m&&e.jsxs("button",{onClick:()=>m("OnHold"),disabled:i,className:"btn btn-secondary btn-sm text-xs",children:[e.jsx(l.Pause,{className:"w-3.5 h-3.5 mr-1"}),h("workflow.actions.hold","En attente")]}),t==="InProgress"&&x&&e.jsxs("button",{onClick:x,disabled:i,className:"btn btn-primary btn-sm text-xs",children:[e.jsx(l.CheckCircle,{className:"w-3.5 h-3.5 mr-1"}),h("workflow.actions.resolve","Résoudre")]}),t==="OnHold"&&m&&e.jsxs("button",{onClick:()=>m("InProgress"),disabled:i,className:"btn btn-secondary btn-sm text-xs",children:[e.jsx(l.Play,{className:"w-3.5 h-3.5 mr-1"}),h("workflow.actions.resume","Reprendre")]}),t==="Resolved"&&p&&e.jsxs("button",{onClick:p,disabled:i,className:"btn btn-primary btn-sm text-xs",children:[e.jsx(l.XCircle,{className:"w-3.5 h-3.5 mr-1"}),h("workflow.actions.close","Fermer")]}),(t==="Closed"||t==="Resolved")&&f&&e.jsxs("button",{onClick:f,disabled:i,className:"btn btn-secondary btn-sm text-xs",children:[e.jsx(l.RotateCcw,{className:"w-3.5 h-3.5 mr-1"}),h("workflow.actions.reopen","Réouvrir")]}),t!=="Closed"&&t!=="Rejected"&&y&&e.jsxs("button",{onClick:y,disabled:i,className:"btn btn-sm text-xs border border-[var(--warning-border)] bg-[var(--warning-bg)] text-[var(--warning-text)] hover:bg-[var(--warning-border)]",children:[e.jsx(l.ArrowUpCircle,{className:"w-3.5 h-3.5 mr-1"}),h("workflow.actions.escalate","Escalader")]})]})]})})}function Dd({satisfaction:t,showRatingForm:s,ratingValue:r,ratingComment:n,submittingRating:o,onShowForm:c,onRatingChange:i,onCommentChange:d,onCancel:u,onSubmit:m,t:x}){return t?e.jsxs("div",{children:[e.jsxs("h3",{className:"font-medium flex items-center gap-2 mb-2",children:[e.jsx(l.Star,{className:"w-4 h-4 text-amber-500 fill-amber-500"}),x("satisfaction.yourRating","Votre évaluation")]}),e.jsxs("div",{className:"flex items-center gap-1 mb-2",children:[[1,2,3,4,5].map(p=>e.jsx(l.Star,{className:`w-5 h-5 ${p<=t.rating?"text-amber-500 fill-amber-500":"text-[var(--text-tertiary)]"}`},p)),e.jsxs("span",{className:"ml-2 text-sm text-[var(--text-secondary)]",children:[t.rating,"/5"]})]}),t.comment&&e.jsxs("p",{className:"text-sm text-[var(--text-secondary)] italic",children:['"',t.comment,'"']})]}):s?e.jsxs("div",{children:[e.jsxs("h3",{className:"font-medium flex items-center gap-2 mb-3",children:[e.jsx(l.Star,{className:"w-4 h-4 text-amber-500"}),x("satisfaction.rateTitle","Évaluez cette résolution")]}),e.jsx("div",{className:"flex items-center gap-1 mb-3",children:[1,2,3,4,5].map(p=>e.jsx("button",{type:"button",onClick:()=>i(p),className:"p-1 hover:scale-110 transition-transform",children:e.jsx(l.Star,{className:`w-7 h-7 transition-colors ${p<=r?"text-amber-500 fill-amber-500":"text-[var(--text-tertiary)] hover:text-amber-300"}`})},p))}),e.jsx("textarea",{value:n,onChange:p=>d(p.target.value),placeholder:x("satisfaction.commentPlaceholder","Commentaire (optionnel)..."),className:"input w-full h-20 mb-3 text-sm"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:u,className:"btn btn-secondary btn-sm",children:x("common.cancel","Annuler")}),e.jsxs("button",{onClick:m,disabled:r===0||o,className:"btn btn-primary btn-sm",children:[o?e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin mr-1"}):e.jsx(l.Star,{className:"w-4 h-4 mr-1"}),x("satisfaction.submit","Envoyer")]})]})]}):e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h3",{className:"font-medium flex items-center gap-2",children:[e.jsx(l.Star,{className:"w-4 h-4 text-amber-500"}),x("satisfaction.askTitle","Comment évaluez-vous cette résolution ?")]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mt-1",children:x("satisfaction.askDescription","Votre avis nous aide à améliorer notre service.")})]}),e.jsxs("button",{onClick:c,className:"btn btn-primary btn-sm",children:[e.jsx(l.Star,{className:"w-4 h-4 mr-1"}),x("satisfaction.rateButton","Évaluer")]})]})}function Md({show:t,resolution:s,saving:r,onResolutionChange:n,onClose:o,onResolve:c,t:i}){return t?e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center z-50",children:e.jsxs("div",{className:"card w-full max-w-lg p-6 m-4",children:[e.jsx("h2",{className:"text-xl font-bold mb-4",children:i("resolve.title","Proposer une solution")}),e.jsx("textarea",{value:s,onChange:d=>n(d.target.value),placeholder:i("resolve.placeholder","Décrivez la résolution..."),className:"input w-full h-32 mb-4"}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx("button",{onClick:o,className:"btn btn-secondary",children:i("common.cancel","Annuler")}),e.jsxs("button",{onClick:c,disabled:!s.trim()||r,className:"btn btn-primary",children:[r&&e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin mr-2"}),i("resolve.confirm","Proposer")]})]})]})}):null}function Od({show:t,filteredUsers:s,selectedUserIds:r,selectedGroupIds:n,groups:o,userSearchQuery:c,groupSearchQuery:i,loadingUsers:d,loadingGroups:u,saving:m,activeTab:x,onUserSearchChange:p,onGroupSearchChange:f,onSelectUser:y,onSelectGroup:h,onTabChange:N,onClose:b,onAssign:w,t:g}){const v=a.useMemo(()=>{if(!i.trim())return o;const j=i.toLowerCase();return o.filter(L=>L.name.toLowerCase().includes(j))},[o,i]);return t?e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center z-50",children:e.jsxs("div",{className:"card w-full max-w-lg p-6 m-4 max-h-[80vh] flex flex-col",children:[e.jsx("h2",{className:"text-xl font-bold mb-4",children:g("assign.title","Assigner le ticket")}),e.jsxs("div",{className:"flex gap-2 mb-4 border-b border-[var(--border-color)]",children:[e.jsx("button",{onClick:()=>N("users"),className:`pb-2 px-3 font-medium transition-colors border-b-2 ${x==="users"?"border-[var(--color-accent-500)] text-[var(--color-accent-500)]":"border-transparent text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,children:g("assign.tabUsers","Utilisateurs")}),e.jsx("button",{onClick:()=>N("groups"),className:`pb-2 px-3 font-medium transition-colors border-b-2 ${x==="groups"?"border-[var(--color-accent-500)] text-[var(--color-accent-500)]":"border-transparent text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,children:g("assign.tabGroups","Groupes")})]}),e.jsxs("div",{className:"relative mb-3",children:[e.jsx(l.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("input",{type:"text",value:x==="users"?c:i,onChange:j=>x==="users"?p(j.target.value):f(j.target.value),placeholder:x==="users"?g("assign.searchUserPlaceholder","Rechercher un utilisateur..."):g("assign.searchGroupPlaceholder","Rechercher un groupe..."),className:"input w-full pl-10",autoFocus:!0})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto mb-4",children:[x==="users"&&e.jsx(e.Fragment,{children:d?e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--color-primary-600)]"})}):e.jsx("div",{className:"border border-[var(--border-color)] rounded-lg overflow-hidden",children:s.length===0?e.jsx("div",{className:"px-4 py-6 text-center text-sm text-[var(--text-tertiary)]",children:g("assign.noUsersFound","Aucun utilisateur trouvé")}):s.map(j=>e.jsxs("button",{onClick:()=>y(j.id),className:`w-full flex items-center gap-3 px-4 py-3 text-left hover:bg-[var(--bg-secondary)] transition-colors border-t border-[var(--border-color)] first:border-t-0 ${r.includes(j.id)?"bg-[var(--color-accent-500)]/10":""}`,children:[e.jsx("div",{className:"w-5 h-5 border-2 border-[var(--border-color)] rounded flex items-center justify-center flex-shrink-0",children:r.includes(j.id)&&e.jsx("div",{className:"w-3 h-3 bg-[var(--color-accent-500)] rounded-sm"})}),e.jsx("div",{className:"w-8 h-8 rounded-full bg-[var(--color-accent-500)] flex items-center justify-center text-white font-medium text-sm flex-shrink-0",children:j.fullName.charAt(0).toUpperCase()}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium truncate",children:j.fullName}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] truncate",children:j.email})]})]},j.id))})}),x==="groups"&&e.jsx(e.Fragment,{children:u?e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--color-primary-600)]"})}):e.jsx("div",{className:"border border-[var(--border-color)] rounded-lg overflow-hidden",children:v.length===0?e.jsx("div",{className:"px-4 py-6 text-center text-sm text-[var(--text-tertiary)]",children:g("assign.noGroupsFound","Aucun groupe trouvé")}):v.map(j=>e.jsxs("button",{onClick:()=>h(j.id),className:`w-full flex items-center gap-3 px-4 py-3 text-left hover:bg-[var(--bg-secondary)] transition-colors border-t border-[var(--border-color)] first:border-t-0 ${n.includes(j.id)?"bg-[var(--color-accent-500)]/10":""}`,children:[e.jsx("div",{className:"w-5 h-5 border-2 border-[var(--border-color)] rounded flex items-center justify-center flex-shrink-0",children:n.includes(j.id)&&e.jsx("div",{className:"w-3 h-3 bg-[var(--color-accent-500)] rounded-sm"})}),e.jsx("div",{className:"w-8 h-8 rounded-full bg-[var(--color-accent-500)] flex items-center justify-center text-white font-medium text-sm flex-shrink-0",children:j.name.charAt(0).toUpperCase()}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx("p",{className:"font-medium truncate",children:j.name})}),e.jsx("span",{className:"text-xs px-2 py-1 rounded bg-[var(--bg-tertiary)] text-[var(--text-secondary)] flex-shrink-0",children:j.memberCount})]},j.id))})})]}),e.jsx("div",{className:"text-sm text-[var(--text-secondary)] mb-4 px-3 py-2 bg-[var(--bg-secondary)] rounded",children:g("assign.selectedSummary","{{userCount}} utilisateur(s), {{groupCount}} groupe(s) sélectionné(s)",{userCount:r.length,groupCount:n.length})}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx("button",{onClick:()=>{b(),p(""),f("")},className:"btn btn-secondary",children:g("common.cancel","Annuler")}),e.jsxs("button",{onClick:w,disabled:m||d||u,className:"btn btn-primary",children:[m&&e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin mr-2"}),g("assign.confirm","Assigner")]})]})]})}):null}const Fd=["Supervisor","Manager","Director"];function _d({show:t,escalationLevel:s,escalationReason:r,saving:n,onLevelChange:o,onReasonChange:c,onClose:i,onEscalate:d,t:u}){return t?e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center z-50",children:e.jsxs("div",{className:"card w-full max-w-lg p-6 m-4",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-[var(--warning-bg)] flex items-center justify-center",children:e.jsx(l.ArrowUpCircle,{className:"w-5 h-5 text-[var(--warning-text)]"})}),e.jsx("h2",{className:"text-xl font-bold",children:u("escalate.title")})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-4",children:u("escalate.description")}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:u("escalate.level")}),e.jsx("div",{className:"space-y-2",children:Fd.map(m=>e.jsxs("button",{onClick:()=>o(m),className:`w-full flex items-center gap-3 px-4 py-3 text-left rounded-lg border transition-colors ${s===m?"border-[var(--warning-border)] bg-[var(--warning-bg)]":"border-[var(--border-color)] hover:bg-[var(--bg-secondary)]"}`,children:[e.jsx("div",{className:`w-4 h-4 rounded-full border-2 flex items-center justify-center ${s===m?"border-[var(--warning-text)]":"border-[var(--border-color)]"}`,children:s===m&&e.jsx("div",{className:"w-2 h-2 rounded-full bg-[var(--warning-text)]"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"font-medium",children:u(`escalate.levels.${m}`)}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)]",children:u(`escalate.levels.${m}Desc`)})]})]},m))})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"block text-sm font-medium mb-2",children:u("escalate.reason")}),e.jsx("textarea",{value:r,onChange:m=>c(m.target.value),placeholder:u("escalate.reasonPlaceholder"),className:"input w-full h-24"})]}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx("button",{onClick:()=>{i(),o("Supervisor"),c("")},className:"btn btn-secondary",children:u("common.cancel")}),e.jsxs("button",{onClick:d,disabled:n,className:"btn border border-[var(--warning-border)] bg-[var(--warning-bg)] text-[var(--warning-text)] hover:bg-[var(--warning-border)]",children:[n&&e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin mr-2"}),e.jsx(l.ArrowUpCircle,{className:"w-4 h-4 mr-2"}),u("escalate.confirm")]})]})]})}):null}const ar=t=>{const s=t.contentType?.toLowerCase()||"",n=t.fileName.toLowerCase().split(".").pop()||"";if(s.startsWith("image/"))return"image";if(s==="application/pdf")return"pdf";if(s.startsWith("text/")||s==="application/json")return"text";if(s.startsWith("video/"))return"video";if(s.startsWith("audio/"))return"audio";const o=["png","jpg","jpeg","gif","webp","svg","bmp","ico"],c=["txt","csv","json","md","xml","log","html","css","js","ts"],i=["mp4","webm","ogg","mov","avi"],d=["mp3","wav","ogg","aac","m4a"];return o.includes(n)?"image":n==="pdf"?"pdf":c.includes(n)?"text":i.includes(n)?"video":d.includes(n)?"audio":"unknown"},nr=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`;function Ud({attachment:t,getUrl:s,onClose:r,onDownload:n}){const{t:o}=re.useTranslation("support"),[c,i]=a.useState(1),[d,u]=a.useState(0),[m,x]=a.useState(!0),[p,f]=a.useState(null),[y,h]=a.useState(null),[N,b]=a.useState(!1),[w,g]=a.useState(null),v=a.useRef(null),j=t?ar(t):"unknown";a.useEffect(()=>{if(v.current?.id===t?.id||(v.current=t,w&&URL.revokeObjectURL(w),i(1),u(0),x(!0),f(null),h(null),g(null),b(!1),!t))return;const D=ar(t),U=s(t),C=new AbortController;return D==="text"?Pe.get(U,{signal:C.signal,responseType:"text"}).then(M=>{h(M.data),x(!1)}).catch(M=>{M.name==="CanceledError"||M.code==="ERR_CANCELED"||(f(o("filePreview.loadError","Impossible de charger le fichier")),x(!1))}):D==="image"||D==="video"||D==="audio"?Pe.get(U,{signal:C.signal,responseType:"blob"}).then(M=>{const X=URL.createObjectURL(M.data);g(X),x(!1)}).catch(M=>{M.name==="CanceledError"||M.code==="ERR_CANCELED"||(f(o("filePreview.loadError","Impossible de charger le fichier")),x(!1))}):D==="pdf"?Pe.get(U,{signal:C.signal,responseType:"blob"}).then(M=>{const X=URL.createObjectURL(M.data);g(X),x(!1)}).catch(M=>{M.name==="CanceledError"||M.code==="ERR_CANCELED"||(f(o("filePreview.loadError","Impossible de charger le fichier")),x(!1))}):x(!1),()=>{C.abort()}},[t,s,o]),a.useEffect(()=>()=>{w&&URL.revokeObjectURL(w)},[w]),a.useEffect(()=>{if(!t)return;const D=U=>{U.key==="Escape"&&(N?b(!1):r()),(U.key==="+"||U.key==="=")&&(U.preventDefault(),i(C=>Math.min(C+.25,3))),U.key==="-"&&(U.preventDefault(),i(C=>Math.max(C-.25,.25))),U.key==="r"&&!U.ctrlKey&&!U.metaKey&&(U.preventDefault(),u(C=>(C+90)%360)),U.key==="f"&&(U.preventDefault(),b(C=>!C))};return window.addEventListener("keydown",D),()=>window.removeEventListener("keydown",D)},[t,N,r]);const L=a.useCallback(()=>i(D=>Math.min(D+.25,3)),[]),$=a.useCallback(()=>i(D=>Math.max(D-.25,.25)),[]),k=a.useCallback(()=>u(D=>(D+90)%360),[]);if(!t)return null;const P=()=>{if(m&&j!=="pdf"&&j!=="image"&&j!=="video"&&j!=="audio")return e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-[var(--color-accent-500)]"})});if(p)return e.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center px-8",children:[e.jsx(l.AlertTriangle,{className:"w-12 h-12 text-[var(--warning-text)]"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:p}),e.jsxs("button",{onClick:()=>n(t),className:"btn btn-primary",children:[e.jsx(l.Download,{className:"w-4 h-4 mr-2"}),o("filePreview.download","Télécharger le fichier")]})]});switch(j){case"image":return e.jsx("div",{className:"relative flex items-center justify-center h-full overflow-auto p-4",children:w?e.jsx("img",{src:w,alt:t.fileName,className:"max-w-none transition-transform duration-200",style:{transform:`scale(${c}) rotate(${d}deg)`,maxHeight:N?"90vh":"70vh"},onClick:D=>D.stopPropagation()}):e.jsx("div",{className:"flex items-center justify-center",children:e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-white"})})});case"pdf":return e.jsx("div",{className:"h-full w-full",children:w?e.jsx("iframe",{src:`${w}#toolbar=1&navpanes=0`,className:"w-full h-full border-0 rounded",title:t.fileName}):e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-white"})})});case"text":return e.jsx("div",{className:"h-full overflow-auto p-4",children:e.jsx("pre",{className:"text-sm text-[var(--text-primary)] font-mono whitespace-pre-wrap break-words bg-[var(--bg-secondary)] p-4 rounded-lg",children:y})});case"video":return e.jsx("div",{className:"flex items-center justify-center h-full p-4",children:w?e.jsx("video",{src:w,controls:!0,className:"max-w-full max-h-[70vh] rounded-lg",children:o("filePreview.videoNotSupported","Votre navigateur ne supporte pas la lecture vidéo.")}):e.jsx("div",{className:"flex items-center justify-center",children:e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-white"})})});case"audio":return e.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-6 p-4",children:[e.jsx("div",{className:"w-24 h-24 rounded-full bg-[var(--color-accent-500)]/20 flex items-center justify-center",children:e.jsx(l.File,{className:"w-12 h-12 text-[var(--color-accent-500)]"})}),e.jsx("p",{className:"text-lg font-medium text-[var(--text-primary)]",children:t.fileName}),w?e.jsx("audio",{src:w,controls:!0,className:"w-full max-w-md",children:o("filePreview.audioNotSupported","Votre navigateur ne supporte pas la lecture audio.")}):e.jsx("div",{className:"flex items-center justify-center",children:e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-[var(--color-accent-500)]"})})]});default:return e.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center px-8",children:[e.jsx("div",{className:"w-20 h-20 rounded-xl bg-[var(--bg-secondary)] flex items-center justify-center",children:e.jsx(l.FileText,{className:"w-10 h-10 text-[var(--text-tertiary)]"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-lg font-medium text-[var(--text-primary)] mb-1",children:t.fileName}),e.jsx("p",{className:"text-sm text-[var(--text-tertiary)]",children:nr(t.fileSize)})]}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:o("filePreview.noPreview","Aperçu non disponible pour ce type de fichier")}),e.jsxs("button",{onClick:()=>n(t),className:"btn btn-primary",children:[e.jsx(l.Download,{className:"w-4 h-4 mr-2"}),o("filePreview.download","Télécharger le fichier")]})]})}},A=e.jsxs("div",{className:"fixed inset-0 bg-black/90 backdrop-blur-sm flex flex-col z-[100]",onClick:r,onKeyDown:D=>{D.key==="Escape"&&r()},role:"dialog","aria-modal":"true","aria-label":t.fileName,children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 bg-black/50",onClick:D=>D.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx(l.FileText,{className:"w-5 h-5 text-white/70 flex-shrink-0"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-white font-medium truncate",children:t.fileName}),e.jsx("p",{className:"text-xs text-white/50",children:nr(t.fileSize)})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[j==="image"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:$,className:"p-2 text-white/70 hover:text-white hover:bg-white/10 rounded-lg transition-colors",title:o("filePreview.zoomOut","Zoom arrière (-)")||"Zoom out",children:e.jsx(l.ZoomOut,{className:"w-5 h-5"})}),e.jsxs("span",{className:"text-white/70 text-sm min-w-[3rem] text-center",children:[Math.round(c*100),"%"]}),e.jsx("button",{onClick:L,className:"p-2 text-white/70 hover:text-white hover:bg-white/10 rounded-lg transition-colors",title:o("filePreview.zoomIn","Zoom avant (+)")||"Zoom in",children:e.jsx(l.ZoomIn,{className:"w-5 h-5"})}),e.jsx("button",{onClick:k,className:"p-2 text-white/70 hover:text-white hover:bg-white/10 rounded-lg transition-colors",title:o("filePreview.rotate","Rotation (R)")||"Rotate",children:e.jsx(l.RotateCw,{className:"w-5 h-5"})}),e.jsx("div",{className:"w-px h-6 bg-white/20 mx-1"})]}),e.jsx("button",{onClick:()=>b(D=>!D),className:"p-2 text-white/70 hover:text-white hover:bg-white/10 rounded-lg transition-colors",title:o("filePreview.fullscreen","Plein écran (F)")||"Fullscreen",children:N?e.jsx(l.Minimize2,{className:"w-5 h-5"}):e.jsx(l.Maximize2,{className:"w-5 h-5"})}),e.jsx("button",{onClick:()=>n(t),className:"p-2 text-white/70 hover:text-white hover:bg-white/10 rounded-lg transition-colors",title:o("filePreview.download","Télécharger")||"Download",children:e.jsx(l.Download,{className:"w-5 h-5"})}),e.jsx("button",{onClick:r,className:"p-2 text-white/70 hover:text-white hover:bg-white/10 rounded-lg transition-colors",title:o("common.close","Fermer (Échap)")||"Close",children:e.jsx(l.X,{className:"w-5 h-5"})})]})]}),e.jsx("div",{className:"flex-1 overflow-hidden",onClick:D=>D.stopPropagation(),children:P()}),e.jsx("div",{className:"px-4 py-2 bg-black/50 text-center",onClick:D=>D.stopPropagation(),children:e.jsx("p",{className:"text-xs text-white/40",children:o("filePreview.shortcuts","Raccourcis: Échap pour fermer • +/- pour zoomer • R pour rotation • F pour plein écran")})})]});return Ft.createPortal(A,document.body)}const or={Low:{bg:"var(--info-bg)",text:"var(--info-text)"},Medium:{bg:"var(--warning-bg)",text:"var(--warning-text)"},High:{bg:"var(--error-bg)",text:"var(--error-text)"},Critical:{bg:"var(--error-text)",text:"white"}},qd=t=>t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`,ir=t=>t?.startsWith("image/")||!1;function Bd({src:t,alt:s,className:r,onClick:n}){const[o,c]=a.useState(null),[i,d]=a.useState(!0),[u,m]=a.useState(!1);return a.useEffect(()=>{let x=!0;const p=new AbortController;return Pe.get(t,{responseType:"blob",signal:p.signal}).then(f=>{if(x){const y=URL.createObjectURL(f.data);c(y),d(!1)}}).catch(()=>{x&&(m(!0),d(!1))}),()=>{x=!1,p.abort(),o&&URL.revokeObjectURL(o)}},[t]),i?e.jsx("div",{className:`flex items-center justify-center bg-[var(--bg-secondary)] ${r}`,children:e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin text-[var(--text-tertiary)]"})}):u||!o?e.jsx("div",{className:`flex items-center justify-center bg-[var(--bg-secondary)] ${r}`,children:e.jsx(l.Image,{className:"w-4 h-4 text-[var(--text-tertiary)]"})}):e.jsx("img",{src:o,alt:s,className:r,onClick:n})}const zd={Created:{icon:l.Plus,color:"var(--success-text)"},StatusChanged:{icon:l.Edit,color:"var(--info-text)"},Assigned:{icon:l.UserCheck,color:"var(--color-accent-600)"},Unassigned:{icon:l.User,color:"var(--warning-text)"},Commented:{icon:l.MessageSquare,color:"var(--text-secondary)"},PriorityChanged:{icon:l.AlertTriangle,color:"var(--warning-text)"},Resolved:{icon:l.CheckCircle,color:"var(--success-text)"},Closed:{icon:l.XCircle,color:"var(--text-tertiary)"},Reopened:{icon:l.RotateCcw,color:"var(--warning-text)"},Escalated:{icon:l.ArrowUpCircle,color:"var(--error-text)"},Started:{icon:l.Play,color:"var(--info-text)"},Paused:{icon:l.Pause,color:"var(--warning-text)"}},Kd=(t,s)=>{const r=new Date(t),o=new Date().getTime()-r.getTime(),c=Math.floor(o/6e4),i=Math.floor(o/36e5),d=Math.floor(o/864e5);return c<1?s("sidebar.timeAgo.justNow",{defaultValue:"Just now"}):c<60?s("sidebar.timeAgo.minutes",{count:c}):i<24?s("sidebar.timeAgo.hours",{count:i}):d<7?s("sidebar.timeAgo.days",{count:d}):r.toLocaleDateString(void 0,{day:"numeric",month:"short"})},Gd=10*1024*1024,lr=[".pdf",".doc",".docx",".xls",".xlsx",".txt",".csv",".zip",".png",".jpg",".jpeg",".gif",".webp"];function ut({section:t,icon:s,title:r,count:n,isExpanded:o,onToggle:c}){return e.jsxs("button",{onClick:()=>c(t),className:"w-full flex items-center gap-2 py-2 px-3 hover:bg-[var(--bg-secondary)] transition-colors rounded-lg",children:[o?e.jsx(l.ChevronDown,{className:"w-4 h-4 text-[var(--text-tertiary)]"}):e.jsx(l.ChevronRight,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx(s,{className:"w-4 h-4 text-[var(--color-accent-600)]"}),e.jsx("span",{className:"font-medium text-sm flex-1 text-left",children:r}),n!==void 0&&n>0&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded-full bg-[var(--bg-tertiary)] text-[var(--text-secondary)]",children:n})]})}function Oa({ticket:t,attachments:s,activities:r,isSupport:n,saving:o,uploading:c,layout:i="compact",onAssign:d,onStatusChange:u,onResolve:m,onCloseTicket:x,onReopen:p,onEscalate:f,onDownloadAttachment:y,onUploadAttachment:h,getAttachmentUrl:N}){const{t:b}=re.useTranslation("support"),[w,g]=a.useState(new Set(i==="grid"?["info","system","errors","attachments","actions","history"]:["info","attachments","actions"])),[v,j]=a.useState(null),[L,$]=a.useState(!1),[k,P]=a.useState(null),A=a.useRef(null),D=a.useCallback(E=>{if(E.type.startsWith("image/"))return!0;const K="."+E.name.split(".").pop()?.toLowerCase();return lr.includes(K)},[]),U=a.useCallback(async E=>{if(!(!E||!h)){P(null);for(let K=0;K<E.length;K++){const Q=E[K];if(Q.size>Gd){P(b("sidebar.fileTooLarge","File too large (max 10 MB)"));continue}if(!D(Q)){P(b("sidebar.fileTypeNotAllowed","File type not allowed"));continue}try{await h(Q)}catch{P(b("sidebar.uploadError","Upload failed"))}}}},[h,D,b]),C=a.useCallback(E=>{E.preventDefault(),E.stopPropagation()},[]),M=a.useCallback(E=>{E.preventDefault(),E.stopPropagation(),$(!0)},[]),X=a.useCallback(E=>{E.preventDefault(),E.stopPropagation(),$(!1)},[]),R=a.useCallback(E=>{E.preventDefault(),E.stopPropagation(),$(!1),U(E.dataTransfer.files)},[U]),B=s.filter(E=>ir(E.contentType)),J=s.filter(E=>!ir(E.contentType)),G=t.clientContext,Y=a.useCallback(E=>{g(K=>{const Q=new Set(K);return Q.has(E)?Q.delete(E):Q.add(E),Q})},[]),ge=t.status==="Closed"||t.status==="Rejected",z=i==="grid",F=z?"bg-[var(--bg-card)] rounded-lg border border-[var(--border-color)] overflow-hidden":"px-2 py-1 border-b border-[var(--border-color)]";return e.jsxs("div",{className:z?"":"h-full flex flex-col bg-[var(--bg-card)] overflow-hidden",children:[e.jsxs("div",{className:z?"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4":"flex-1 overflow-y-auto",children:[e.jsxs("div",{className:F,children:[e.jsx(ut,{section:"info",icon:l.FileText,title:b("details.info","Informations"),isExpanded:w.has("info"),onToggle:Y}),w.has("info")&&e.jsx("div",{className:"px-3 pb-3",children:e.jsxs("dl",{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("dt",{className:"text-[var(--text-tertiary)]",children:b("sidebar.type","Type")}),e.jsx("dd",{className:"font-medium",children:b(`tickets.types.${t.type}`,{defaultValue:t.type})})]}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("dt",{className:"text-[var(--text-tertiary)]",children:b("sidebar.priority","Priority")}),e.jsx("dd",{children:e.jsx("span",{className:"inline-block px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:or[t.priority]?.bg,color:or[t.priority]?.text},children:b(`tickets.priorities.${t.priority}`,{defaultValue:t.priority})})})]}),n&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("dt",{className:"text-[var(--text-tertiary)]",children:b("sidebar.createdBy","Created by")}),e.jsx("dd",{children:t.createdByName||b("sidebar.unknown","Unknown")})]}),e.jsxs("div",{className:"flex justify-between items-start",children:[e.jsx("dt",{className:"text-[var(--text-tertiary)]",children:b("sidebar.assignedTo","Assigned to")}),e.jsxs("dd",{className:"flex flex-col items-end gap-1",children:[(t?.assignees?.length??0)>0?e.jsx("div",{className:"space-y-1",children:t?.assignees?.map(E=>e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"text-sm",children:E.fullName}),E.isPrimary&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 bg-[var(--color-accent-600)] text-white rounded-md",children:b("sidebar.primary","primary")}),E.assignedViaGroupName&&e.jsxs("span",{className:"text-xs px-1.5 py-0.5 bg-[var(--bg-secondary)] text-[var(--text-secondary)] rounded-md",children:["(",b("sidebar.viaGroup",{groupName:E.assignedViaGroupName}),")"]})]},E.userId))}):e.jsx("span",{className:"text-sm",children:b("sidebar.unassigned","Unassigned")}),d&&e.jsx("button",{onClick:d,className:"p-1 hover:bg-[var(--bg-secondary)] rounded mt-1",children:e.jsx(l.UserPlus,{className:"w-3.5 h-3.5 text-[var(--color-accent-600)]"})})]})]})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("dt",{className:"text-[var(--text-tertiary)]",children:b("sidebar.createdAt","Created")}),e.jsx("dd",{className:"text-xs",children:new Date(t.createdAt).toLocaleString()})]}),t.updatedAt&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("dt",{className:"text-[var(--text-tertiary)]",children:b("sidebar.updatedAt","Updated")}),e.jsx("dd",{className:"text-xs",children:new Date(t.updatedAt).toLocaleString()})]})]})})]}),n&&G&&e.jsxs("div",{className:F,children:[e.jsx(ut,{section:"system",icon:l.Monitor,title:b("details.systemInfo","Infos système"),isExpanded:w.has("system"),onToggle:Y}),w.has("system")&&e.jsxs("div",{className:"px-3 pb-3 space-y-2",children:[G?.sourceUrl&&e.jsxs("div",{className:"p-2 bg-[var(--bg-secondary)] rounded-lg",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-[var(--text-tertiary)] mb-1",children:[e.jsx(l.Globe,{className:"w-3 h-3"}),b("sidebar.url","URL")]}),e.jsx("p",{className:"text-xs font-mono break-all",children:G.sourceUrl})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[G.browser&&e.jsxs("div",{className:"p-2 bg-[var(--bg-secondary)] rounded-lg",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-[var(--text-tertiary)] mb-1",children:[e.jsx(l.Globe,{className:"w-3 h-3"}),b("sidebar.browser","Browser")]}),e.jsx("p",{className:"text-xs font-medium",children:G.browser.name}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)]",children:G.browser.version})]}),G.os&&e.jsxs("div",{className:"p-2 bg-[var(--bg-secondary)] rounded-lg",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-[var(--text-tertiary)] mb-1",children:[e.jsx(l.Laptop,{className:"w-3 h-3"}),b("sidebar.os","OS")]}),e.jsx("p",{className:"text-xs font-medium",children:G.os.name}),e.jsx("p",{className:"text-xs text-[var(--text-tertiary)]",children:G.os.version})]})]}),G.device&&e.jsxs("div",{className:"p-2 bg-[var(--bg-secondary)] rounded-lg",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-[var(--text-tertiary)] mb-1",children:[e.jsx(l.Smartphone,{className:"w-3 h-3"}),b("sidebar.device","Device")]}),e.jsxs("p",{className:"text-xs font-medium",children:[G.device.type||b("sidebar.defaultDeviceType","Desktop"),G.device.screenResolution&&` • ${G.device.screenResolution}`]})]})]})]}),n&&G&&(G?.recentErrors?.length??0)>0&&e.jsxs("div",{className:F,children:[e.jsx(ut,{section:"errors",icon:l.Bug,title:b("details.errors","Erreurs"),count:G?.recentErrors?.length??0,isExpanded:w.has("errors"),onToggle:Y}),w.has("errors")&&e.jsx("div",{className:"px-3 pb-3 space-y-2",children:G?.recentErrors?.slice(0,3).map((E,K)=>e.jsxs("div",{className:"p-2 bg-[var(--error-bg)]/30 border border-[var(--error-border)] rounded-lg",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[e.jsx(l.AlertTriangle,{className:"w-3 h-3 text-[var(--error-text)]"}),E.component&&e.jsx("span",{className:"text-xs px-1 py-0.5 bg-[var(--bg-secondary)] rounded",children:E.component})]}),e.jsx("p",{className:"text-xs font-medium text-[var(--error-text)] line-clamp-2",children:E.message})]},`error-${K}`))})]}),e.jsxs("div",{className:F,children:[e.jsx(ut,{section:"attachments",icon:l.File,title:b("details.attachments","Pièces jointes"),count:s.length,isExpanded:w.has("attachments"),onToggle:Y}),w.has("attachments")&&e.jsxs("div",{className:"px-3 pb-3",children:[B.length>0&&e.jsxs("div",{className:"mb-3",children:[e.jsxs("p",{className:"text-xs text-[var(--text-tertiary)] mb-2 flex items-center gap-1",children:[e.jsx(l.Image,{className:"w-3 h-3"}),b("sidebar.images","Images")," (",B.length,")"]}),e.jsx("div",{className:"grid grid-cols-3 gap-1.5",children:B.map(E=>e.jsxs("button",{type:"button",className:"relative cursor-pointer rounded overflow-hidden border border-[var(--border-color)] aspect-square group",onClick:()=>j(E),children:[e.jsx(Bd,{src:N(E),alt:E.fileName,className:"w-full h-full object-cover"}),e.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/30 transition-colors flex items-center justify-center",children:e.jsx(l.Eye,{className:"w-5 h-5 text-white opacity-0 group-hover:opacity-100 transition-opacity"})})]},E.id))})]}),J.length>0&&e.jsxs("div",{className:"mb-3",children:[e.jsxs("p",{className:"text-xs text-[var(--text-tertiary)] mb-2 flex items-center gap-1",children:[e.jsx(l.FileText,{className:"w-3 h-3"}),b("sidebar.documents","Documents")," (",J.length,")"]}),e.jsx("div",{className:"space-y-1.5",children:J.map(E=>e.jsxs("div",{className:"flex items-center gap-2 w-full p-2 bg-[var(--bg-secondary)] rounded-lg hover:bg-[var(--bg-tertiary)] transition-colors group",children:[e.jsxs("button",{onClick:()=>j(E),className:"flex items-center gap-2 flex-1 min-w-0 text-left",children:[e.jsx(l.FileText,{className:"w-4 h-4 text-[var(--text-secondary)] flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"text-xs block truncate",children:E.fileName}),e.jsx("span",{className:"text-[10px] text-[var(--text-tertiary)]",children:qd(E.fileSize)})]})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("button",{onClick:()=>j(E),className:"p-1 rounded hover:bg-[var(--bg-primary)] transition-colors opacity-0 group-hover:opacity-100",title:b("filePreview.view","Aperçu")||"View",children:e.jsx(l.Eye,{className:"w-3.5 h-3.5 text-[var(--color-accent-500)]"})}),e.jsx("button",{onClick:()=>y(E),className:"p-1 rounded hover:bg-[var(--bg-primary)] transition-colors",title:b("filePreview.download","Télécharger")||"Download",children:e.jsx(l.Download,{className:"w-3.5 h-3.5 text-[var(--text-tertiary)]"})})]})]},E.id))})]}),n&&!ge&&h&&e.jsxs("div",{children:[e.jsx("input",{ref:A,type:"file",multiple:!0,onChange:E=>U(E.target.files),accept:lr.join(","),className:"hidden"}),e.jsx("div",{className:`border-2 border-dashed rounded-lg p-3 text-center transition-colors cursor-pointer ${L?"border-[var(--color-accent-500)] bg-[var(--color-accent-500)]/10":"border-[var(--border-color)] hover:border-[var(--color-accent-500)]"}`,onClick:()=>A.current?.click(),onKeyDown:E=>{(E.key==="Enter"||E.key===" ")&&(E.preventDefault(),A.current?.click())},role:"button",tabIndex:0,onDragOver:C,onDragEnter:M,onDragLeave:X,onDrop:R,children:c?e.jsxs("div",{className:"flex items-center justify-center gap-2 py-1",children:[e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin text-[var(--color-accent-500)]"}),e.jsx("span",{className:"text-xs text-[var(--text-secondary)]",children:b("sidebar.uploading","Uploading...")})]}):e.jsxs(e.Fragment,{children:[e.jsx(l.Plus,{className:"w-5 h-5 mx-auto mb-1 text-[var(--text-tertiary)]"}),e.jsx("p",{className:"text-xs text-[var(--text-secondary)]",children:L?b("sidebar.dropHere","Drop here"):b("sidebar.addFile","Add a file")})]})}),k&&e.jsx("p",{className:"mt-2 text-xs text-[var(--error-text)]",children:k})]}),s.length===0&&(!n||ge||!h)&&e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] text-center py-2",children:b("sidebar.noAttachments","No attachments")})]})]}),n&&!z&&e.jsxs("div",{className:F,children:[e.jsx(ut,{section:"actions",icon:l.User,title:b("details.actions","Actions"),isExpanded:w.has("actions"),onToggle:Y}),w.has("actions")&&e.jsxs("div",{className:"px-3 pb-3 space-y-2",children:[t.status==="Open"&&u&&e.jsx("button",{onClick:()=>u("InProgress"),disabled:o,className:"btn btn-secondary w-full text-sm py-2",children:b("sidebar.startProcessing","Start processing")}),t.status==="InProgress"&&e.jsxs(e.Fragment,{children:[u&&e.jsx("button",{onClick:()=>u("OnHold"),disabled:o,className:"btn btn-secondary w-full text-sm py-2",children:b("sidebar.putOnHold","Put on hold")}),m&&e.jsxs("button",{onClick:m,disabled:o,className:"btn btn-primary w-full text-sm py-2",children:[e.jsx(l.CheckCircle,{className:"w-4 h-4 mr-2"}),b("sidebar.resolve","Resolve")]})]}),t.status==="OnHold"&&u&&e.jsx("button",{onClick:()=>u("InProgress"),disabled:o,className:"btn btn-secondary w-full text-sm py-2",children:b("sidebar.resume","Resume")}),t.status==="Resolved"&&x&&e.jsxs("button",{onClick:x,disabled:o,className:"btn btn-primary w-full text-sm py-2",children:[e.jsx(l.XCircle,{className:"w-4 h-4 mr-2"}),b("sidebar.closeTicket","Close ticket")]}),(t.status==="Closed"||t.status==="Resolved")&&p&&e.jsxs("button",{onClick:p,disabled:o,className:"btn btn-secondary w-full text-sm py-2",children:[e.jsx(l.RotateCcw,{className:"w-4 h-4 mr-2"}),b("sidebar.reopen","Reopen")]}),!ge&&f&&e.jsxs("button",{onClick:f,disabled:o,className:"btn w-full text-sm py-2 border border-[var(--warning-border)] bg-[var(--warning-bg)] text-[var(--warning-text)] hover:bg-[var(--warning-border)]",children:[e.jsx(l.ArrowUpCircle,{className:"w-4 h-4 mr-2"}),b("sidebar.escalate","Escalate")]}),o&&e.jsx("div",{className:"flex items-center justify-center py-2",children:e.jsx(l.Loader2,{className:"w-5 h-5 animate-spin text-[var(--color-primary-600)]"})})]})]}),n&&r.length>0&&e.jsxs("div",{className:z?F:"px-2 py-1",children:[e.jsx(ut,{section:"history",icon:l.History,title:b("details.history","History"),count:r.length,isExpanded:w.has("history"),onToggle:Y}),w.has("history")&&e.jsx("div",{className:"px-3 pb-3",children:e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute left-3 top-2 bottom-2 w-0.5 bg-[var(--border-color)]"}),e.jsx("div",{className:"space-y-3",children:r.slice(0,10).map((E,K)=>{const Q=zd[E.action]||{icon:l.Edit,color:"var(--text-secondary)"},ee=Q.icon,se=b(`history.actions.${E.action}`,{defaultValue:E.action});return e.jsxs("div",{className:"relative flex gap-3 pl-1",children:[e.jsx("div",{className:"relative z-10 w-5 h-5 rounded-full flex items-center justify-center bg-[var(--bg-card)] border border-[var(--border-color)]",style:{color:Q.color},children:e.jsx(ee,{className:"w-3 h-3"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("p",{className:"text-xs font-medium text-[var(--text-primary)]",children:[se,E.newValue&&e.jsxs("span",{className:"text-[var(--text-secondary)] font-normal",children:[" → ",E.newValue]})]}),e.jsx("p",{className:"text-[10px] text-[var(--text-tertiary)]",children:Kd(E.createdAt,b)})]})]},`activity-${E.action}-${K}`)})}),r.length>10&&e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] text-center mt-3",children:b("sidebar.moreActivities",{count:r.length-10})})]})})]})]}),e.jsx(Ud,{attachment:v,getUrl:N,onClose:()=>j(null),onDownload:y})]})}const mt={Proposed:{border:"border-blue-500",bg:"bg-blue-50",text:"text-blue-900"},Approved:{border:"border-green-500",bg:"bg-green-50",text:"text-green-900"},Rejected:{border:"border-red-500",bg:"bg-red-50",text:"text-red-900"},Superseded:{border:"border-gray-400",bg:"bg-gray-50",text:"text-gray-700"}},cr={Proposed:l.Clock,Approved:l.CheckCircle,Rejected:l.XCircle,Superseded:l.AlertCircle};function Hd({ticketId:t,solutions:s,activeSolution:r,mode:n,onProposeSolution:o,onApproveSolution:c,onRejectSolution:i,isLoading:d}){const{t:u}=re.useTranslation("support"),[m,x]=a.useState(!1),[p,f]=a.useState(""),[y,h]=a.useState(!1),[N,b]=a.useState(""),[w,g]=a.useState(!1),[v,j]=a.useState(!1),L=a.useCallback(async()=>{if(!(!p.trim()||!o)){x(!0);try{await o(p),f("")}finally{x(!1)}}},[p,o]),$=a.useCallback(()=>{g(!0)},[]),k=a.useCallback(async()=>{if(!(!N.trim()||!i)){h(!0);try{await i(N),b(""),g(!1)}finally{h(!1)}}},[N,i]),P=A=>{if(!A.autoCloseAt)return null;const D=new Date(A.autoCloseAt),U=new Date,C=D.getTime()-U.getTime(),M=Math.ceil(C/(1e3*60*60*24));return M>0?M:0};return s.length===0&&n==="support"&&o?e.jsxs("div",{className:"bg-[var(--bg-card)] rounded-lg border border-[var(--border-color)] p-4",children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:u("solution.proposeSolution","Propose Solution")}),e.jsx("textarea",{value:p,onChange:A=>f(A.target.value),placeholder:u("solution.enterSolution","Enter solution..."),className:"w-full p-3 border border-[var(--border-color)] rounded-lg bg-[var(--bg-primary)] text-[var(--text-primary)] placeholder-[var(--text-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] resize-none",rows:4,disabled:m||d}),e.jsx("div",{className:"mt-3 flex gap-2 justify-end",children:e.jsx("button",{onClick:L,disabled:!p.trim()||m||d,className:"btn btn-primary flex items-center gap-2",children:m?e.jsxs(e.Fragment,{children:[e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}),u("solution.proposeSolution","Propose Solution")]}):e.jsxs(e.Fragment,{children:[e.jsx(l.Send,{className:"w-4 h-4"}),u("solution.proposeSolution","Propose Solution")]})})})]}):e.jsxs("div",{className:"space-y-4",children:[r&&e.jsxs("div",{className:`rounded-lg border-2 p-4 ${mt[r.status].border} ${mt[r.status].bg}`,children:[e.jsx("div",{className:"flex items-start justify-between mb-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{const A=cr[r.status];return e.jsx(A,{className:`w-5 h-5 ${mt[r.status].text}`})})(),e.jsxs("div",{children:[e.jsx("h4",{className:`font-semibold ${mt[r.status].text}`,children:u(`solution.status.${r.status.toLowerCase()}`,r.status)}),e.jsxs("p",{className:"text-sm opacity-75",children:[u("solution.solutionNumber","Solution #"),r.solutionNumber," - ",u("solution.proposedBy","Proposed by")," ",r.proposedByUserName||"Unknown"]})]})]})}),e.jsx("div",{className:"bg-white/50 rounded p-3 mb-3 max-h-32 overflow-y-auto",children:e.jsx("p",{className:"text-sm whitespace-pre-wrap",children:r.content})}),r.status==="Proposed"&&r.autoCloseAt&&e.jsx("div",{className:"mb-3 p-2 bg-yellow-100/50 border-l-2 border-yellow-500 rounded",children:e.jsxs("p",{className:"text-sm",children:[u("solution.autoCloseWarning","Will be auto-approved in")," ",e.jsxs("strong",{children:[P(r)," ",u("solution.autoCloseCountdown","days")]}),r.autoCloseWarningSent&&e.jsxs(e.Fragment,{children:[" (",u("solution.warningEmailSent","warning email sent"),")"]})]})}),r.status==="Approved"&&e.jsxs("p",{className:"text-sm",children:[u("solution.approvedBy","Approved by")," ",r.approvedByUserName||"Unknown"," on ",r.approvedAt&&new Date(r.approvedAt).toLocaleDateString()]}),r.status==="Rejected"&&e.jsxs("div",{children:[e.jsxs("p",{className:"text-sm mb-2",children:[u("solution.rejectedBy","Rejected by")," ",r.rejectedByUserName||"Unknown"," on ",r.rejectedAt&&new Date(r.rejectedAt).toLocaleDateString()]}),r.rejectionReason&&e.jsxs("p",{className:"text-sm bg-white/30 p-2 rounded italic",children:[u("solution.rejectionReason","Reason"),": ",r.rejectionReason]})]}),n==="client"&&r.status==="Proposed"&&e.jsxs("div",{className:"mt-3 flex gap-2 justify-end",children:[e.jsx("button",{onClick:$,disabled:y||d,className:"btn btn-secondary text-sm py-1.5",children:u("solution.rejectSolution","Reject")}),e.jsx("button",{onClick:c,disabled:y||d||!c,className:"btn btn-primary text-sm py-1.5 flex items-center gap-2",children:d?e.jsxs(e.Fragment,{children:[e.jsx(l.Loader2,{className:"w-3 h-3 animate-spin"}),u("solution.acceptSolution","Approve")]}):e.jsxs(e.Fragment,{children:[e.jsx(l.CheckCircle,{className:"w-3 h-3"}),u("solution.acceptSolution","Approve")]})})]})]}),n==="support"&&o&&!r&&e.jsxs("div",{className:"bg-[var(--bg-card)] rounded-lg border border-[var(--border-color)] p-4",children:[e.jsx("h4",{className:"font-semibold mb-3",children:u("solution.proposeSolution","Propose Solution")}),e.jsx("textarea",{value:p,onChange:A=>f(A.target.value),placeholder:u("solution.enterSolution","Enter solution..."),className:"w-full p-3 border border-[var(--border-color)] rounded-lg bg-[var(--bg-primary)] text-[var(--text-primary)] placeholder-[var(--text-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] resize-none",rows:4,disabled:m||d}),e.jsx("div",{className:"mt-3 flex gap-2 justify-end",children:e.jsx("button",{onClick:L,disabled:!p.trim()||m||d,className:"btn btn-primary flex items-center gap-2",children:m?e.jsxs(e.Fragment,{children:[e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}),u("solution.proposeSolution","Propose Solution")]}):e.jsxs(e.Fragment,{children:[e.jsx(l.Send,{className:"w-4 h-4"}),u("solution.proposeSolution","Propose Solution")]})})})]}),s.length>1&&e.jsxs("div",{className:"bg-[var(--bg-card)] rounded-lg border border-[var(--border-color)] overflow-hidden",children:[e.jsxs("button",{onClick:()=>j(!v),className:"w-full flex items-center gap-2 p-4 hover:bg-[var(--bg-secondary)] transition-colors",children:[v?e.jsx(l.ChevronDown,{className:"w-4 h-4 text-[var(--text-tertiary)]"}):e.jsx(l.ChevronRight,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsxs("h4",{className:"font-semibold",children:[u("solution.solutionHistory","Solution History")," (",s.length,")"]})]}),v&&e.jsx("div",{className:"border-t border-[var(--border-color)] p-4 space-y-3",children:s.map(A=>e.jsxs("div",{className:`rounded-lg border p-3 ${mt[A.status].border}`,children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{const D=cr[A.status];return e.jsx(D,{className:`w-4 h-4 ${mt[A.status].text}`})})(),e.jsx("span",{className:"text-sm font-medium",children:u(`solution.status.${A.status.toLowerCase()}`,A.status)}),e.jsxs("span",{className:"text-xs text-[var(--text-tertiary)]",children:["#",A.solutionNumber]})]}),e.jsx("span",{className:"text-xs text-[var(--text-tertiary)]",children:new Date(A.proposedAt).toLocaleDateString()})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-2 line-clamp-2",children:A.content}),e.jsxs("p",{className:"text-xs text-[var(--text-tertiary)]",children:[u("solution.proposedBy","Proposed by")," ",A.proposedByUserName||"Unknown"]})]},A.id))})]}),s.length===0&&n==="client"&&e.jsx("div",{className:"text-center py-6 text-[var(--text-tertiary)]",children:e.jsx("p",{children:u("solution.noSolutions","No solutions proposed yet")})}),w&&e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",children:e.jsxs("div",{className:"bg-[var(--bg-card)] rounded-lg shadow-lg p-6 w-96 max-w-[90vw]",children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:u("solution.rejectSolution","Reject Solution")}),e.jsx("textarea",{value:N,onChange:A=>b(A.target.value),placeholder:u("solution.enterRejectReason","Enter reason for rejection..."),className:"w-full p-3 border border-[var(--border-color)] rounded-lg bg-[var(--bg-primary)] text-[var(--text-primary)] placeholder-[var(--text-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--color-accent-500)] resize-none",rows:4,disabled:y}),e.jsxs("div",{className:"mt-4 flex gap-2 justify-end",children:[e.jsx("button",{onClick:()=>g(!1),disabled:y,className:"btn btn-secondary",children:u("common:cancel","Cancel")}),e.jsx("button",{onClick:k,disabled:!N.trim()||y,className:"btn btn-primary flex items-center gap-2",children:y?e.jsxs(e.Fragment,{children:[e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}),u("solution.rejectSolution","Reject")]}):e.jsxs(e.Fragment,{children:[e.jsx(l.XCircle,{className:"w-4 h-4"}),u("solution.rejectSolution","Reject")]})})]})]})})]})}const Vd={getCached:t=>I.get(`/api/support/ai-routing/cached/${t}`)},Fa={analyze:t=>I.get(`/api/support/ai-routing/analyze/${t}`)},_a={summarize:t=>I.post(`/api/support/ai-routing/summarize/${t}`)},Ua={applyRouting:(t,s)=>I.post(`/api/support/ai-routing/apply/${t}`,s)},dr=Object.freeze(Object.defineProperty({__proto__:null,analyzeApi:Fa,cachedAiApi:Vd,routingApi:Ua,summarizeApi:_a},Symbol.toStringTag,{value:"Module"}));function qa({classification:t}){const{t:s}=re.useTranslation("support");if(!t)return null;const r=o=>o>.8?"bg-[var(--success-bg)] text-[var(--success-text)]":o>.5?"bg-[var(--warning-bg)] text-[var(--warning-text)]":"bg-[var(--error-bg)] text-[var(--error-text)]",n=o=>o>.8?s("aiClassification.confidence.high"):o>.5?s("aiClassification.confidence.medium"):s("aiClassification.confidence.low");return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"px-3 py-1 rounded-full text-xs font-medium bg-[var(--info-bg)] text-[var(--info-text)]",children:s(`tickets.types.${t.suggestedType}`)}),e.jsx("span",{className:"px-3 py-1 rounded-full text-xs font-medium bg-[var(--warning-bg)] text-[var(--warning-text)]",children:s(`tickets.priorities.${t.suggestedPriority}`)}),e.jsxs("span",{className:`px-3 py-1 rounded-full text-xs font-medium ${r(t.confidenceScore)}`,children:[n(t.confidenceScore)," (",Math.round(t.confidenceScore*100),"%)"]})]})}function Ba(t){const[s,r]=a.useState(t?.initialData??null),[n,o]=a.useState(!1),[c,i]=a.useState(null),d=a.useRef(null),u=a.useRef(!1);a.useEffect(()=>(u.current=!1,()=>{u.current=!0,d.current?.abort()}),[]);const m=a.useCallback(async f=>{d.current?.abort();const y=new AbortController;d.current=y,o(!0),i(null);try{const h=await f(y.signal);!u.current&&!y.signal.aborted&&r(h)}catch(h){!u.current&&!y.signal.aborted&&i(h instanceof Error?h.message:"Unknown error")}finally{!u.current&&!y.signal.aborted&&o(!1)}},[]),x=a.useCallback(()=>{d.current?.abort(),u.current||o(!1)},[]),p=a.useCallback(()=>{r(null),i(null),o(!1)},[]);return{data:s,loading:n,error:c,execute:m,cancel:x,reset:p}}function Wd({ticketId:t,cachedClassification:s,cachedRouting:r,cachedGeneratedAt:n,processing:o,onProcessingStart:c,onProcessingEnd:i}){const{t:d}=re.useTranslation("support"),u=s||r?{classification:s??null,routingSuggestion:r??null,isAiAvailable:!0,errorCode:null,errorMessage:null}:void 0,{data:m,loading:x,error:p,execute:f,reset:y}=Ba({initialData:u}),[h,N]=a.useState(!1),b=a.useCallback(async()=>{c?.(),await f(async()=>{const j=await Fa.analyze(t);return i?.(),j})},[t,f,c,i]),w=a.useCallback(async()=>{if(m?.routingSuggestion)try{N(!0);const j={assignToUserId:m.routingSuggestion.suggestedAgents[0]?.userId,assignToGroupId:m.routingSuggestion.suggestedGroupId??void 0,applyPriorityAdjustment:m.routingSuggestion.priorityAdjustment!==null};await Ua.applyRouting(t,j),y()}catch{}finally{N(!1)}},[t,m,y]);if(p&&!m)return e.jsx("div",{className:"card p-4 bg-[var(--error-bg)]/10 border border-[var(--error-border)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(l.AlertCircle,{className:"w-5 h-5 text-[var(--error-text)] flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm text-[var(--error-text)] font-medium mb-1",children:d("aiRouting.error")}),e.jsx("p",{className:"text-xs text-[var(--text-secondary)]",children:p}),e.jsxs("button",{onClick:b,disabled:x,className:"btn btn-secondary btn-sm mt-2 flex items-center gap-1",children:[e.jsx(l.RefreshCw,{className:"w-3 h-3"}),d("common:actions.retry")]})]})]})});if(!m)return o?e.jsx("div",{className:"card p-4 bg-[var(--info-bg)]/10 border border-[var(--info-border)]",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(l.Loader2,{className:"w-5 h-5 animate-spin text-[var(--info-text)] flex-shrink-0"}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:d("aiRouting.processing")})]})}):e.jsxs("button",{onClick:b,disabled:x,className:"btn btn-secondary btn-sm flex items-center gap-2",children:[x?e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}):e.jsx(l.Sparkles,{className:"w-4 h-4"}),d("aiRouting.analyze")]});if(x&&!m)return e.jsx("div",{className:"card p-6 flex items-center justify-center",children:e.jsx(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--color-primary-600)]"})});if(!m.isAiAvailable){const j=m.errorCode?`aiRouting.errors.${m.errorCode}`:null,L=j&&d(j)!==j?d(j):m.errorMessage??d("aiRouting.notConfigured");return e.jsx("div",{className:"card p-4 bg-[var(--warning-bg)]/10 border border-[var(--warning-border)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(l.AlertCircle,{className:"w-5 h-5 text-[var(--warning-text)] flex-shrink-0 mt-0.5"}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:L})]})})}if(!m.classification&&!m.routingSuggestion)return e.jsx("div",{className:"card p-4 bg-[var(--error-bg)]/10 border border-[var(--error-border)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(l.AlertCircle,{className:"w-5 h-5 text-[var(--error-text)] flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm text-[var(--error-text)] font-medium mb-1",children:d("aiRouting.error")}),e.jsx("p",{className:"text-xs text-[var(--text-secondary)]",children:m.errorMessage??d("aiRouting.notAvailable")}),e.jsxs("button",{onClick:b,disabled:x,className:"btn btn-secondary btn-sm mt-2 flex items-center gap-1",children:[e.jsx(l.RefreshCw,{className:"w-3 h-3"}),d("common:actions.retry")]})]})]})});const g=m?.routingSuggestion,v=n&&!x?new Date(n):null;return e.jsx("div",{className:"card p-6 bg-[var(--info-bg)]/10 border border-[var(--info-border)]",children:e.jsxs("div",{className:"space-y-4",children:[m?.errorMessage&&e.jsxs("div",{className:"flex items-start gap-2 text-xs text-[var(--warning-text)] bg-[var(--warning-bg)]/20 rounded p-2",children:[e.jsx(l.AlertCircle,{className:"w-4 h-4 flex-shrink-0 mt-0.5"}),e.jsx("p",{children:m.errorMessage})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(l.Sparkles,{className:"w-5 h-5 text-[var(--info-text)] flex-shrink-0 mt-1"}),e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("h3",{className:"font-semibold text-sm",children:d("aiRouting.suggestedRouting")}),e.jsxs("button",{onClick:b,disabled:x,className:"btn btn-secondary btn-sm flex items-center gap-1",title:d("aiRouting.refresh"),children:[x?e.jsx(l.Loader2,{className:"w-3 h-3 animate-spin"}):e.jsx(l.RefreshCw,{className:"w-3 h-3"}),d("aiRouting.refresh")]})]}),v&&e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-3",children:d("aiRouting.generatedAt",{date:v.toLocaleString()})}),e.jsxs("div",{className:"space-y-3",children:[m?.classification&&e.jsx(qa,{classification:m.classification}),(g?.suggestedAgents?.length??0)>0&&e.jsxs("div",{className:"text-sm",children:[e.jsx("p",{className:"text-[var(--text-secondary)] mb-2",children:d("aiRouting.suggestedAgents")}),e.jsx("div",{className:"space-y-1",children:g?.suggestedAgents?.map(j=>e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"font-medium",children:j.userName||j.userId}),e.jsxs("span",{className:"text-xs text-[var(--text-tertiary)]",children:[Math.round(j.matchScore*100),"%"]})]},j.userId))})]}),g?.suggestedGroupName&&e.jsxs("div",{className:"text-sm",children:[e.jsx("p",{className:"text-[var(--text-secondary)] mb-1",children:d("aiRouting.suggestedGroup")}),e.jsx("p",{className:"font-medium",children:g.suggestedGroupName})]}),g?.reasoning&&e.jsxs("div",{className:"text-sm",children:[e.jsx("p",{className:"text-[var(--text-secondary)] mb-1",children:d("aiRouting.reasoning")}),e.jsx("p",{className:"italic",children:g.reasoning})]}),e.jsx("div",{className:"pt-3 border-t border-[var(--border-color)] flex gap-2",children:g&&e.jsxs("button",{onClick:w,disabled:h,className:"btn btn-primary btn-sm flex items-center gap-2 flex-1 justify-center",children:[h?e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}):e.jsx(l.Check,{className:"w-4 h-4"}),d("aiRouting.apply")]})})]})]})]})]})})}function Xd({ticketId:t,cachedSummary:s,cachedGeneratedAt:r,processing:n,onProcessingStart:o,onProcessingEnd:c}){const{t:i}=re.useTranslation("support"),d=s?{summary:s,isAiAvailable:!0,errorCode:null,errorMessage:null}:void 0,{data:u,loading:m,error:x,execute:p}=Ba({initialData:d}),f=a.useCallback(async()=>{o?.(),await p(async()=>{const N=await _a.summarize(t);return c?.(),N})},[t,p,o,c]);if(x&&!u)return e.jsx("div",{className:"card p-4 bg-[var(--error-bg)]/10 border border-[var(--error-border)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(l.AlertCircle,{className:"w-5 h-5 text-[var(--error-text)] flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm text-[var(--error-text)] font-medium mb-1",children:i("aiSummary.error")}),e.jsx("p",{className:"text-xs text-[var(--text-secondary)]",children:x}),e.jsxs("button",{onClick:f,disabled:m,className:"btn btn-secondary btn-sm mt-2 flex items-center gap-1",children:[e.jsx(l.RefreshCw,{className:"w-3 h-3"}),i("common:actions.retry")]})]})]})});if(!u)return n?e.jsx("div",{className:"card p-4 bg-[var(--info-bg)]/10 border border-[var(--info-border)]",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(l.Loader2,{className:"w-5 h-5 animate-spin text-[var(--info-text)] flex-shrink-0"}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:i("aiSummary.processing")})]})}):e.jsxs("button",{onClick:f,disabled:m,className:"btn btn-secondary btn-sm flex items-center gap-2",children:[m?e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}):e.jsx(l.Zap,{className:"w-4 h-4"}),i("aiSummary.generate")]});if(m&&!u)return e.jsx("div",{className:"card p-6 flex items-center justify-center",children:e.jsx(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--color-primary-600)]"})});if(!u.isAiAvailable){const N=u.errorCode?`aiRouting.errors.${u.errorCode}`:null,b=N&&i(N)!==N?i(N):u.errorMessage??i("aiRouting.notConfigured");return e.jsx("div",{className:"card p-4 bg-[var(--warning-bg)]/10 border border-[var(--warning-border)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(l.AlertCircle,{className:"w-5 h-5 text-[var(--warning-text)] flex-shrink-0 mt-0.5"}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:b})]})})}if(!u.summary){const N=u.errorCode?`aiSummary.errors.${u.errorCode}`:null,b=N&&i(N)!==N?i(N):u.errorMessage??i("aiSummary.error");return e.jsx("div",{className:"card p-4 bg-[var(--error-bg)]/10 border border-[var(--error-border)]",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(l.AlertCircle,{className:"w-5 h-5 text-[var(--error-text)] flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm text-[var(--error-text)] font-medium mb-1",children:i("aiSummary.error")}),e.jsx("p",{className:"text-xs text-[var(--text-secondary)]",children:b}),e.jsxs("button",{onClick:f,disabled:m,className:"btn btn-secondary btn-sm mt-2 flex items-center gap-1",children:[e.jsx(l.RefreshCw,{className:"w-3 h-3"}),i("common:actions.retry")]})]})]})})}const y=u.summary,h=r&&!m?new Date(r):null;return e.jsxs("div",{className:"card p-6 bg-[var(--bg-secondary)]",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h3",{className:"font-semibold flex items-center gap-2",children:[e.jsx(l.Zap,{className:"w-5 h-5"}),i("aiSummary.title")]}),e.jsxs("button",{onClick:f,disabled:m,className:"btn btn-secondary btn-sm flex items-center gap-1",title:i("aiSummary.refresh"),children:[m?e.jsx(l.Loader2,{className:"w-3 h-3 animate-spin"}):e.jsx(l.RefreshCw,{className:"w-3 h-3"}),i("aiSummary.refresh")]})]}),h&&e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-3",children:i("aiSummary.generatedAt",{date:h.toLocaleString()})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-2 font-medium",children:i("aiSummary.summary")}),e.jsx("p",{className:"text-sm",children:y.summary})]}),y.keyPoints.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-2 font-medium",children:i("aiSummary.keyPoints")}),e.jsx("ul",{className:"list-disc list-inside space-y-1",children:y.keyPoints.map((N,b)=>e.jsx("li",{className:"text-sm",children:N},`point-${b}`))})]}),y.sentiment&&e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-2 font-medium",children:i("aiSummary.sentiment")}),e.jsx("p",{className:"text-sm",children:y.sentiment})]}),(y.blockers?.length??0)>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-2 font-medium",children:i("aiSummary.blockers")}),e.jsx("ul",{className:"space-y-2",children:y.blockers?.map((N,b)=>e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-xs px-2 py-1 rounded bg-[var(--warning-bg)] text-[var(--warning-text)] flex-shrink-0 mt-0.5",children:b+1}),e.jsx("span",{className:"text-sm",children:N})]},`blocker-${b}`))})]})]})]})}const Yd={getAll:()=>I.get("/api/support/assignment"),getById:t=>I.get(`/api/support/assignment/${t}`),create:t=>I.post("/api/support/assignment",t),update:(t,s)=>I.put(`/api/support/assignment/${t}`,s),delete:t=>I.delete(`/api/support/assignment/${t}`),activate:t=>I.patch(`/api/support/assignment/${t}/activate`),deactivate:t=>I.patch(`/api/support/assignment/${t}/deactivate`)},Jd={getAll:()=>I.get("/api/support/assignment/skills"),getByAgent:t=>I.get("/api/support/assignment/skills",{params:{userId:t}}),update:(t,s)=>I.put(`/api/support/assignment/skills/${t}`,s)},Qd={getByAgent:t=>I.get(`/api/support/assignment/availability/${t}`),update:(t,s)=>I.put(`/api/support/assignment/availability/${t}`,s)},Zd={getByTicket:(t,s=1,r=50)=>I.get("/api/support/assignment/logs",{params:{ticketId:t,page:s,pageSize:r}})},eu={getByAgent:t=>I.get(`/api/support/assignment/workload/${t}`),getAll:()=>I.get("/api/support/assignment/workload")},tu={Open:"statusDescriptions.Open",InProgress:"statusDescriptions.InProgress",OnHold:"statusDescriptions.OnHold",Resolved:"statusDescriptions.Resolved",Closed:"statusDescriptions.Closed",Rejected:"statusDescriptions.Rejected"};function su({activeTab:t,commentCount:s,isSupport:r,assigneeCount:n,onTabChange:o,t:c}){const i=[{id:"conversation",icon:l.MessageSquare,label:c("tabs.conversation"),badge:s},{id:"description",icon:l.FileText,label:c("tabs.description"),badge:0},{id:"information",icon:l.Info,label:c("tabs.information"),badge:0},...r?[{id:"assignment",icon:l.Users,label:c("tabs.assignment"),badge:n},{id:"ai",icon:l.Sparkles,label:c("tabs.ai"),badge:0}]:[]];return e.jsx("div",{className:"flex-shrink-0 flex border-b border-[var(--border-color)] bg-[var(--bg-card)]",children:i.map(({id:d,icon:u,label:m,badge:x})=>e.jsxs("button",{onClick:()=>o(d),className:`flex items-center gap-2 px-4 py-2.5 text-sm font-medium transition-colors border-b-2 ${t===d?"border-[var(--color-accent-600)] text-[var(--color-accent-600)]":"border-transparent text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--border-color)]"}`,children:[e.jsx(u,{className:"w-4 h-4"}),m,x>0&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded-full bg-[var(--bg-tertiary)] text-[var(--text-secondary)]",children:x})]},d))})}function ru({ticket:t,isSupport:s,satisfaction:r,showRatingForm:n,ratingValue:o,ratingComment:c,submittingRating:i,onShowRatingForm:d,onRatingChange:u,onCommentChange:m,onCancelRating:x,onSubmitRating:p,t:f}){return e.jsxs(e.Fragment,{children:[!s&&e.jsx("div",{className:"mt-3 p-3 rounded-lg bg-[var(--bg-secondary)] border border-[var(--border-color)]",children:e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:f(tu[t.status]||"statusDescriptions.InProgress")})}),t.resolution&&e.jsxs("div",{className:"mt-3 p-4 rounded-lg bg-[var(--success-bg)] border border-[var(--success-border)]",children:[e.jsxs("h3",{className:"font-medium flex items-center gap-2 text-[var(--success-text)] mb-1",children:[e.jsx(l.CheckCircle,{className:"w-4 h-4"}),f("resolution.title","Résolution")]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap",children:t.resolution})]}),!s&&(t.status==="Resolved"||t.status==="Closed")&&e.jsx("div",{className:"mt-3 p-4 rounded-lg bg-[var(--bg-secondary)] border border-[var(--border-color)]",children:e.jsx(Dd,{satisfaction:r,showRatingForm:n,ratingValue:o,ratingComment:c,submittingRating:i,onShowForm:d,onRatingChange:u,onCommentChange:m,onCancel:x,onSubmit:p,t:f})})]})}function au({activeTab:t,ticket:s,activities:r,isSupport:n,isClosed:o,isReadOnly:c,isConnected:i,currentUserName:d,saving:u,uploading:m,onAddComment:x,onDownloadAttachment:p,onUploadAttachment:f,onStatusChange:y,onAssign:h,onResolve:N,onClose:b,onReopen:w,onEscalate:g,getAttachmentUrl:v,onProposeSolution:j,onApproveSolution:L,onRejectSolution:$,t:k}){const P=a.useMemo(()=>{if(!s)return;const A=s;return{ticketNumber:s.ticketNumber??"",ticketTitle:s.title??"",userName:A.createdBy?.fullName??"",userFirstName:A.createdBy?.fullName?.split(" ")[0]??"",userLastName:A.createdBy?.fullName?.split(" ").slice(1).join(" ")??"",userEmail:A.createdBy?.email??"",priority:s.priority??"",type:s.type??"",status:s.status??"",agentName:A.assignedTo?.fullName??"",agentFirstName:A.assignedTo?.fullName?.split(" ")[0]??"",createdAt:s.createdAt?new Date(s.createdAt).toLocaleDateString():"",resolvedAt:s.resolvedAt?new Date(s.resolvedAt).toLocaleDateString():"",resolution:s.resolution??""}},[s]);return t==="description"?e.jsx("div",{className:"h-full overflow-y-auto p-6 bg-[var(--bg-primary)]",children:s.description?e.jsx("div",{className:"prose prose-sm max-w-none text-[var(--text-primary)] leading-relaxed [&_a]:text-[var(--color-accent-600)] [&_a]:underline",dangerouslySetInnerHTML:{__html:nn.sanitize(s.description)}}):e.jsx("p",{className:"text-[var(--text-tertiary)] italic",children:k("tabs.noDescription")})}):t==="conversation"?e.jsxs("div",{className:"h-full flex flex-col",children:[(s.activeSolution||s.hasPendingSolution||n&&!o&&s.status!=="Closed")&&e.jsx("div",{className:"p-4 border-b border-[var(--border-color)]",children:e.jsx(Hd,{ticketId:s.id,solutions:s.solutions??[],activeSolution:s.activeSolution,mode:n?"support":"client",onProposeSolution:!c&&n?j:void 0,onApproveSolution:c?void 0:L,onRejectSolution:c?void 0:$,isLoading:u})}),e.jsx("div",{className:"flex-1 min-h-0",children:e.jsx(Ma,{ticketId:s.id,comments:s.comments,activities:r.map(A=>({id:A.id,action:A.action,oldValue:A.oldValue??null,newValue:A.newValue??null,changedByUserName:"changedByUserName"in A?A.changedByUserName:null,createdAt:A.createdAt})),attachments:s.attachments,isSupport:n,isClosed:o||c,isConnected:i,currentUserName:d,ticketVariables:P,onAddComment:x,onDownloadAttachment:p,getAttachmentUrl:v})})]}):t==="assignment"?e.jsx(nu,{ticket:s,canAssign:!c&&!!h,onAssign:h,t:k}):t==="ai"?e.jsx(iu,{ticket:s,t:k}):e.jsx("div",{className:"h-full overflow-y-auto",children:e.jsx("div",{className:"space-y-6 p-6",children:e.jsx(Oa,{ticket:s,attachments:s.attachments,activities:r.map(A=>({action:A.action,newValue:A.newValue,createdAt:A.createdAt})),isSupport:n,saving:u,uploading:m,isReadOnly:c,layout:"grid",onAssign:c?void 0:h,onStatusChange:c?void 0:y,onResolve:c?void 0:N,onCloseTicket:c?void 0:b,onReopen:c?void 0:w,onEscalate:c?void 0:g,onDownloadAttachment:p,onUploadAttachment:c?void 0:f,getAttachmentUrl:v})})})}function nu({ticket:t,canAssign:s,onAssign:r,t:n}){const[o,c]=a.useState([]),[i,d]=a.useState(!1);a.useEffect(()=>{t?.id&&(d(!0),Zd.getByTicket(t.id).then(m=>c(m)).catch(()=>c([])).finally(()=>d(!1)))},[t?.id]);const u=t.assignees??[];return e.jsx("div",{className:"h-full overflow-y-auto p-6",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"card p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)]",children:n("tabs.assignmentCurrentAssignees")}),s&&r&&e.jsx("button",{onClick:r,className:"text-xs px-3 py-1.5 rounded-md bg-[var(--color-accent-600)] text-white hover:bg-[var(--color-accent-700)] transition-colors",children:n("tabs.assignmentAssign")})]}),u.length===0?e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] italic",children:n("tabs.assignmentNoAssignees")}):e.jsx("div",{className:"space-y-2",children:u.map(m=>e.jsxs("div",{className:"flex items-center gap-3 p-2 rounded-md bg-[var(--bg-secondary)]",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-[var(--color-accent-100)] text-[var(--color-accent-700)] flex items-center justify-center text-xs font-medium",children:(m.fullName||m.email||"?").charAt(0).toUpperCase()}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-sm font-medium text-[var(--text-primary)] truncate",children:m.fullName||m.email}),m.assignedViaGroupName&&e.jsx("div",{className:"text-xs text-[var(--text-tertiary)]",children:n("tabs.assignmentViaGroup",{group:m.assignedViaGroupName})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[m.isPrimary&&e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-[var(--info-bg)] text-[var(--info-text)]",children:n("tabs.assignmentPrimary")}),m.assignedAt&&e.jsx("span",{className:"text-xs text-[var(--text-tertiary)]",children:new Date(m.assignedAt).toLocaleDateString()})]})]},m.userId))})]}),e.jsxs("div",{className:"card p-4",children:[e.jsx("h3",{className:"font-semibold text-sm text-[var(--text-primary)] mb-4",children:n("tabs.assignmentLogs")}),i&&e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(l.Loader2,{className:"w-5 h-5 animate-spin text-[var(--text-tertiary)]"})}),!i&&o.length===0&&e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] italic",children:n("tabs.assignmentNoLogs")}),!i&&o.length>0&&e.jsx("div",{className:"space-y-2",children:o.map(m=>e.jsxs("div",{className:"flex items-start gap-3 p-2 rounded-md border border-[var(--border-color)] bg-[var(--bg-primary)]",children:[e.jsx("div",{className:`mt-0.5 w-2 h-2 rounded-full flex-shrink-0 ${m.success?"bg-[var(--success-text)]":"bg-[var(--error-text)]"}`}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"text-sm text-[var(--text-primary)]",children:[e.jsx("span",{className:"font-medium",children:m.strategyUsed}),m.reason&&e.jsxs("span",{className:"text-[var(--text-secondary)]",children:[" — ",m.reason]})]}),e.jsx("div",{className:"text-xs text-[var(--text-tertiary)] mt-0.5",children:new Date(m.createdAt).toLocaleString()})]}),e.jsx("span",{className:`text-xs px-2 py-0.5 rounded-full ${m.success?"bg-[var(--success-bg)] text-[var(--success-text)]":"bg-[var(--error-bg)] text-[var(--error-text)]"}`,children:m.success?n("tabs.assignmentSuccess"):n("tabs.assignmentFailed")})]},m.id))})]})]})})}const ou=12e4;function ur(t){const s=sessionStorage.getItem(t);return s?Date.now()-Number(s)>ou?(sessionStorage.removeItem(t),!1):!0:!1}function iu({ticket:t,t:s}){const[r,n]=a.useState(null),[o,c]=a.useState(!0),i=`ai_routing_${t.id}`,d=`ai_summary_${t.id}`,[u,m]=a.useState(()=>ur(i)),[x,p]=a.useState(()=>ur(d));a.useEffect(()=>{let b=!1;return(async()=>{try{const{cachedAiApi:g}=await Promise.resolve().then(()=>dr),v=await g.getCached(t.id);b||(n(v),v.routingSuggestion&&(sessionStorage.removeItem(i),m(!1)),v.summary&&(sessionStorage.removeItem(d),p(!1)))}catch{}finally{b||c(!1)}})(),()=>{b=!0}},[t.id,i,d]),a.useEffect(()=>{if(!u&&!x)return;let b=!1;const g=setInterval(async()=>{try{const{cachedAiApi:v}=await Promise.resolve().then(()=>dr),j=await v.getCached(t.id);if(b)return;n(j),u&&j.routingSuggestion&&(sessionStorage.removeItem(i),m(!1)),x&&j.summary&&(sessionStorage.removeItem(d),p(!1))}catch{}},3e3);return()=>{b=!0,clearInterval(g)}},[u,x,t.id,i,d]);const f=a.useCallback(()=>{sessionStorage.setItem(i,Date.now().toString()),m(!0)},[i]),y=a.useCallback(()=>{sessionStorage.removeItem(i),m(!1)},[i]),h=a.useCallback(()=>{sessionStorage.setItem(d,Date.now().toString()),p(!0)},[d]),N=a.useCallback(()=>{sessionStorage.removeItem(d),p(!1)},[d]);return o?e.jsx("div",{className:"h-full overflow-y-auto p-6 flex items-center justify-center",children:e.jsx(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--color-primary-600)]"})}):e.jsx("div",{className:"h-full overflow-y-auto p-6",children:e.jsxs("div",{className:"space-y-4",children:[(t.aiClassification||r?.classification)&&e.jsxs("div",{className:"card p-4",children:[e.jsx("h3",{className:"font-semibold text-sm mb-3 text-[var(--text-primary)]",children:s("aiClassification.title")}),e.jsx(qa,{classification:t.aiClassification||r?.classification})]}),e.jsx(Wd,{ticketId:t.id,cachedClassification:r?.classification,cachedRouting:r?.routingSuggestion,cachedGeneratedAt:r?.routingSuggestionGeneratedAt,processing:u,onProcessingStart:f,onProcessingEnd:y}),e.jsx(Xd,{ticketId:t.id,cachedSummary:r?.summary,cachedGeneratedAt:r?.summaryGeneratedAt,processing:x,onProcessingStart:h,onProcessingEnd:N})]})})}const lu=["conversation","description","information","assignment","ai"];function cu(t){return{id:t.id,ticketNumber:t.ticketNumber,title:t.title,description:t.description,type:t.type,status:t.status,priority:t.priority,createdByName:t.createdBy?.fullName,assignedToName:t.assignedTo?.fullName,resolution:t.resolution,resolvedAt:t.resolvedAt,closedAt:t.closedAt,assignees:t.assignees,comments:t.comments.map(s=>({id:s.id,userName:s.userName,content:s.content,isInternal:s.isInternal,isEdited:s.isEdited,createdAt:s.createdAt})),attachments:t.attachments.map(s=>({id:s.id,fileName:s.fileName,contentType:s.contentType,fileSize:s.fileSize,createdAt:s.createdAt})),createdAt:t.createdAt,updatedAt:t.updatedAt,clientContext:t.clientContext,externalProvider:t.externalProvider,externalId:t.externalId,externalUrl:t.externalUrl,isExternallyManaged:t.isExternallyManaged,solutions:t.solutions,activeSolution:t.activeSolution,hasPendingSolution:t.hasPendingSolution}}function du(t){return{id:t.id,ticketNumber:t.ticketNumber,title:t.title,description:t.description,type:t.type,status:t.status,priority:t.priority,resolution:t.resolution,resolvedAt:t.resolvedAt,closedAt:t.closedAt,comments:t.comments.map(s=>({id:s.id,userName:s.userName,content:s.content,isInternal:!1,isEdited:s.isEdited,createdAt:s.createdAt})),attachments:t.attachments.map(s=>({id:s.id,fileName:s.fileName,fileSize:s.fileSize,createdAt:s.createdAt})),createdAt:t.createdAt,updatedAt:t.updatedAt,solutions:t.solutions,activeSolution:t.activeSolution,hasPendingSolution:t.hasPendingSolution}}function mr(t,s){return s==="support"?cu(t):du(t)}const uu=()=>{const[t,s]=a.useState(null),[r,n]=a.useState(!0),[o,c]=a.useState(!1),[i,d]=a.useState(!1),[u,m]=a.useState(null),[x,p]=a.useState([]),[f,y]=a.useState(!1),[h,N]=a.useState({title:"",priority:"Medium"}),[b,w]=a.useState(!1),[g,v]=a.useState(!1),[j,L]=a.useState(!1),[$,k]=a.useState(""),[P,A]=a.useState("Supervisor"),[D,U]=a.useState(""),[C,M]=a.useState([]),[X,R]=a.useState([]),[B,J]=a.useState([]),[G,Y]=a.useState(!1),[ge,z]=a.useState(""),[F,E]=a.useState(""),[K,Q]=a.useState([]),[ee,se]=a.useState(!1),[ce,fe]=a.useState("users"),[H,ie]=a.useState(null),[ue,pe]=a.useState(!1),[be,q]=a.useState(0),[Z,te]=a.useState(""),[ne,de]=a.useState(!1);return{ticket:t,setTicket:s,loading:r,setLoading:n,saving:o,setSaving:c,uploading:i,setUploading:d,error:u,setError:m,activities:x,setActivities:p,isEditing:f,setIsEditing:y,editForm:h,setEditForm:N,showAssignModal:b,setShowAssignModal:w,showResolveModal:g,setShowResolveModal:v,showEscalateModal:j,setShowEscalateModal:L,resolution:$,setResolution:k,escalationLevel:P,setEscalationLevel:A,escalationReason:D,setEscalationReason:U,users:C,setUsers:M,selectedUserIds:X,setSelectedUserIds:R,selectedGroupIds:B,setSelectedGroupIds:J,loadingUsers:G,setLoadingUsers:Y,userSearchQuery:ge,setUserSearchQuery:z,groupSearchQuery:F,setGroupSearchQuery:E,groups:K,setGroups:Q,loadingGroups:ee,setLoadingGroups:se,assignModalTab:ce,setAssignModalTab:fe,satisfaction:H,setSatisfaction:ie,showRatingForm:ue,setShowRatingForm:pe,ratingValue:be,setRatingValue:q,ratingComment:Z,setRatingComment:te,submittingRating:ne,setSubmittingRating:de}},mu=(t,s)=>{const r=s;return t?r?.email||"":(r?.firstName&&r?.lastName?`${r.firstName} ${r.lastName}`:r?.email)||""},xu=(t,s,r)=>{const n=s.get("tab");t==="conversation"?n&&(s.delete("tab"),r(s,{replace:!0})):n!==t&&r({tab:t},{replace:!0})},pu=(t,s)=>{const r=t.get("tab");return r&&s.includes(r)?r:"conversation"};function hu({ticket:t,isSupport:s,isEditing:r,saving:n,editForm:o,error:c,onEditToggle:i,onSave:d,onEditFormChange:u,onErrorClear:m,t:x}){return e.jsxs("div",{className:"flex-shrink-0 border-b border-[var(--border-color)] bg-[var(--bg-card)] px-4 py-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{onClick:()=>window.history.back(),className:"btn btn-ghost p-2",children:e.jsx(l.ArrowLeft,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("span",{className:"font-mono text-sm text-[var(--text-secondary)]",children:t.ticketNumber}),t.externalId&&t.externalUrl&&e.jsxs("a",{href:t.externalUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--info-bg)] text-[var(--info-text)] border border-[var(--info-border)] hover:opacity-80",children:[e.jsx(l.ExternalLink,{className:"w-3 h-3"}),"GLPI #",t.externalId]}),e.jsx(Mt,{status:ds[t.status]||"pending",label:t.status}),e.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{backgroundColor:rr[t.priority]?.bg,color:rr[t.priority]?.text},children:t.priority})]}),s&&r?e.jsx("input",{type:"text",value:o.title,onChange:p=>u({...o,title:p.target.value}),className:"input w-full text-lg font-bold"}):e.jsx("h1",{className:"text-lg font-bold truncate",children:t.title})]}),e.jsx("div",{className:"flex items-center gap-2",children:s&&r?e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>i(!1),className:"btn btn-ghost p-2",children:e.jsx(l.X,{className:"w-5 h-5"})}),e.jsx("button",{onClick:d,disabled:n,className:"btn btn-primary",children:n?e.jsx(l.Loader2,{className:"w-4 h-4 animate-spin"}):e.jsx(l.Save,{className:"w-4 h-4"})})]}):e.jsx(e.Fragment,{children:s&&!t.isExternallyManaged&&e.jsx("button",{onClick:()=>i(!0),className:"btn btn-ghost p-2",title:"Modifier",children:e.jsx(l.Edit2,{className:"w-5 h-5"})})})})]}),c&&e.jsxs("div",{className:"mt-3 p-3 rounded-lg bg-[var(--error-bg)] text-[var(--error-text)] flex items-center gap-2",children:[e.jsx(l.AlertTriangle,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{className:"text-sm flex-1",children:c}),e.jsx("button",{onClick:m,className:"p-1 hover:bg-[var(--error-border)] rounded",children:e.jsx(l.X,{className:"w-4 h-4"})})]}),t.isExternallyManaged&&e.jsxs("div",{className:"mt-3 p-3 rounded-lg bg-[var(--info-bg)] border border-[var(--info-border)] flex items-center gap-3",children:[e.jsx(l.ShieldAlert,{className:"w-5 h-5 text-[var(--info-text)] flex-shrink-0"}),e.jsx("div",{className:"flex-1",children:e.jsx("p",{className:"text-sm font-medium text-[var(--info-text)]",children:x("glpi.readOnlyBanner","This ticket is managed by GLPI and is read-only.")})}),t.externalUrl&&e.jsxs("a",{href:t.externalUrl,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm bg-[var(--info-bg)] text-[var(--info-text)] border border-[var(--info-border)] hover:opacity-80 flex items-center gap-1.5",children:[e.jsx(l.ExternalLink,{className:"w-4 h-4"}),x("glpi.viewInGlpi","View in GLPI")]})]})]})}function gu({mode:t}){const{id:s}=S.useParams(),r=S.useNavigate(),{t:n}=re.useTranslation("support"),{user:o,hasPermission:c}=Re(),[i,d]=S.useSearchParams(),{isGlpi:u}=Ps(),m=t==="support",x=mu(m,o),[p,f]=a.useState(()=>pu(i,lu));a.useEffect(()=>{xu(p,i,d)},[p,i,d]);const y=uu(),{ticket:h,setTicket:N,loading:b,setLoading:w,saving:g,setSaving:v,uploading:j,setUploading:L,error:$,setError:k,activities:P,setActivities:A,isEditing:D,setIsEditing:U,editForm:C,setEditForm:M,showAssignModal:X,setShowAssignModal:R,showResolveModal:B,setShowResolveModal:J,showEscalateModal:G,setShowEscalateModal:Y,resolution:ge,setResolution:z,escalationLevel:F,setEscalationLevel:E,escalationReason:K,setEscalationReason:Q,users:ee,setUsers:se,selectedUserIds:ce,setSelectedUserIds:fe,selectedGroupIds:H,setSelectedGroupIds:ie,loadingUsers:ue,setLoadingUsers:pe,userSearchQuery:be,setUserSearchQuery:q,groupSearchQuery:Z,setGroupSearchQuery:te,groups:ne,setGroups:de,loadingGroups:Ne,setLoadingGroups:ae,assignModalTab:he,setAssignModalTab:ve,satisfaction:Ee,setSatisfaction:ye,showRatingForm:Ce,setShowRatingForm:ke,ratingValue:Ie,setRatingValue:Me,ratingComment:Xe,setRatingComment:Ze,submittingRating:rt,setSubmittingRating:at}=y,nt=a.useCallback(async()=>{if(s)try{const W=m?await je.tickets.getActivities(s,50):await Ue.getActivities(s,50);A(W)}catch(W){console.error("Failed to load activities",W)}},[s,m,A]),Ct=a.useCallback(async()=>{if(!(!s||m))try{const W=await Ue.getSatisfaction(s);ye(W)}catch(W){console.error("Failed to load satisfaction",W)}},[s,m,ye]),T=a.useCallback(async()=>{if(s)try{if(w(!0),k(null),m){const W=await je.tickets.getById(s);if(!W){N(null);return}N(mr(W,t)),M({title:W.title,priority:W.priority})}else{const W=await Ue.getById(s);if(!W){N(null);return}N(mr(W,t)),Ct()}nt()}catch(W){k(n("error.loadFailed","Impossible de charger le ticket")),console.error(W)}finally{w(!1)}},[s,m,t,nt,Ct,n,M,k,w,N]),le=a.useCallback(W=>{if(W.ticketId===s){if(!m&&W.isInternal)return;N(xe=>!xe||xe.comments.some(Fe=>Fe.id===W.id)?xe:{...xe,comments:[...xe.comments,{id:W.id,userName:W.userName,content:W.content,isInternal:W.isInternal,isEdited:W.isEdited,createdAt:W.createdAt}]})}},[s,m,N]),Se=a.useCallback(W=>{W.ticketId===s&&T()},[s,T]),{isConnected:Te}=ca({ticketId:s,onCommentAdded:le,onTicketUpdated:Se});a.useEffect(()=>{T()},[T]),a.useEffect(()=>{(async()=>{if(!(!X||ee.length>0||!m))try{pe(!0);const xe=await I.get("/api/support/tickets/assignable-users"),Fe=Array.isArray(xe)?xe:[];se(Fe.map($e=>({id:$e.id,email:$e.email,fullName:`${$e.firstName} ${$e.lastName}`}))),(h?.assignees?.length??0)>0&&h?.assignees&&fe(h.assignees.map($e=>$e.userId))}catch(xe){console.error("Failed to load users",xe)}finally{pe(!1)}})()},[X,ee.length,m,h?.assignees,pe,fe,se]),a.useEffect(()=>{(async()=>{if(!(!X||!m))try{ae(!0);const xe=await I.get("/api/support/tickets/assignable-groups"),Fe=Array.isArray(xe)?xe:[];de(Fe.map($e=>({id:$e.id,name:$e.name,memberCount:$e.memberCount})))}catch(xe){console.error("Failed to load groups",xe)}finally{ae(!1)}})()},[X,m,de,ae]);const Oe=async()=>{if(!(!s||!m))try{v(!0),await je.tickets.update(s,{title:C.title,priority:C.priority,description:h?.description||""}),await T(),U(!1)}catch{k(n("error.updateFailed","Impossible de mettre à jour le ticket"))}finally{v(!1)}},ot=async W=>{if(!(!s||!m))try{v(!0),await je.tickets.updateStatus(s,W),await T()}catch{k(n("error.statusFailed","Impossible de changer le statut"))}finally{v(!1)}},it=async()=>{if(!(!s||!m))try{v(!0),await je.tickets.assign(s,ce.length>0?ce[0]:null,ce.length>0?ce:void 0,H.length>0?H:void 0),await T(),R(!1),fe([]),ie([]),ve("users")}catch{k(n("error.assignFailed","Impossible d'assigner le ticket"))}finally{v(!1)}},za=async()=>{if(!(!s||!ge.trim()||!m))try{v(!0),await je.tickets.proposeSolution(s,ge),await T(),J(!1),z("")}catch{k(n("error.resolveFailed","Impossible de proposer une solution"))}finally{v(!1)}},Ka=async W=>{if(s)try{v(!0),m&&await je.tickets.proposeSolution(s,W),await T()}catch{k(n("error.resolveFailed","Impossible de proposer une solution"))}finally{v(!1)}},Ga=async()=>{if(s)try{v(!0),m?await je.tickets.approveSolution(s):await Ue.approveSolution(s),await T()}catch{k(n("error.approveFailed","Impossible d'approuver la solution"))}finally{v(!1)}},Ha=async W=>{if(s)try{v(!0),m?await je.tickets.rejectSolution(s,W):await Ue.rejectSolution(s,W),await T()}catch{k(n("error.rejectFailed","Impossible de rejeter la solution"))}finally{v(!1)}},As=async()=>{if(!(!s||!m))try{v(!0),await je.tickets.close(s),await T()}catch{k(n("error.closeFailed","Impossible de fermer le ticket"))}finally{v(!1)}},Ts=async()=>{if(!(!s||!m))try{v(!0),await je.tickets.reopen(s),await T()}catch{k(n("error.reopenFailed","Impossible de réouvrir le ticket"))}finally{v(!1)}},Va=async()=>{if(!(!s||!m||!F))try{v(!0),await ha.escalateTicket(s,F,K||void 0),await T(),Y(!1),E("Supervisor"),Q("")}catch{k(n("error.escalateFailed","Failed to escalate ticket"))}finally{v(!1)}},Wa=async(W,xe)=>{!s||!W.trim()||(m?await je.tickets.addComment(s,{content:W,isInternal:xe}):await Ue.addComment(s,W),await T())},Xa=async()=>{if(!(!s||Ie===0||m))try{at(!0);const W=await Ue.submitSatisfaction(s,{rating:Ie,comment:Xe.trim()||void 0});ye(W),ke(!1),Me(0),Ze("")}catch(W){k(W instanceof Error?W.message:n("error.ratingFailed","Failed to submit rating"))}finally{at(!1)}},Ya=async W=>{if(s)try{const xe=m?await je.tickets.downloadAttachment(s,W.id):await Ue.downloadAttachment(s,W.id),Fe=window.URL.createObjectURL(xe),$e=document.createElement("a");$e.href=Fe,$e.setAttribute("download",W.fileName),document.body.appendChild($e),$e.click(),$e.remove(),window.URL.revokeObjectURL(Fe)}catch{k(n("error.downloadFailed","Impossible de télécharger le fichier"))}},Ja=async W=>{if(!(!s||!m))try{L(!0),await je.tickets.uploadAttachment(s,W),await T()}catch(xe){throw k(n("error.uploadFailed","Failed to upload file")),xe}finally{L(!1)}},Qa=W=>s?m?je.tickets.getAttachmentUrl(s,W.id):`/api/support/my-tickets/${s}/attachments/${W.id}`:"",Za=a.useMemo(()=>{if(!be.trim())return ee;const W=be.toLowerCase();return ee.filter(xe=>xe.fullName.toLowerCase().includes(W)||xe.email.toLowerCase().includes(W))},[ee,be]),en=a.useCallback(W=>{fe(xe=>xe.includes(W)?xe.filter(Fe=>Fe!==W):[...xe,W])},[fe]),tn=a.useCallback(W=>{ie(xe=>xe.includes(W)?xe.filter(Fe=>Fe!==W):[...xe,W])},[ie]);if(b)return e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-[var(--color-primary-600)]"})});if(!h)return e.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[e.jsx(l.AlertTriangle,{className:"w-12 h-12 mb-4 text-[var(--text-tertiary)]"}),e.jsx("p",{className:"text-[var(--text-secondary)] mb-4",children:n("error.notFound","Ticket non trouvé")}),e.jsx("button",{onClick:()=>r(-1),className:"btn btn-secondary",children:n("common.goBack","Retour")})]});const sn=h.status==="Closed"||h.status==="Rejected",et=u||!!h.isExternallyManaged,Rs=!et&&c("support.tickets.assign");return e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsx(hu,{ticket:h,isSupport:m,isEditing:D,saving:g,editForm:C,error:$,onEditToggle:U,onSave:Oe,onEditFormChange:M,onErrorClear:()=>k(null),t:n}),e.jsxs("div",{className:"flex-shrink-0",children:[e.jsx(ru,{ticket:h,isSupport:m,satisfaction:Ee,showRatingForm:Ce,ratingValue:Ie,ratingComment:Xe,submittingRating:rt,onShowRatingForm:()=>ke(!0),onRatingChange:Me,onCommentChange:Ze,onCancelRating:()=>{ke(!1),Me(0),Ze("")},onSubmitRating:Xa,t:n}),e.jsx($d,{currentStatus:h.status,createdAt:h.createdAt,resolvedAt:h.resolvedAt,closedAt:h.closedAt,activities:P.map(W=>({action:W.action,newValue:W.newValue,createdAt:W.createdAt})),isSupport:m,saving:g,assignees:h.assignees,onAssign:Rs?()=>R(!0):void 0,onStatusChange:et?void 0:ot,onResolve:et?void 0:()=>J(!0),onCloseTicket:et?void 0:As,onReopen:et?void 0:Ts,onEscalate:et?void 0:()=>Y(!0)})]}),e.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[e.jsx(su,{activeTab:p,commentCount:h.comments.length,isSupport:m,assigneeCount:h.assignees?.length??0,onTabChange:f,t:n}),e.jsx("div",{className:"flex-1 min-h-0",children:e.jsx(au,{activeTab:p,ticket:h,activities:P,isSupport:m,isClosed:sn,isReadOnly:et,isConnected:Te,currentUserName:x,saving:g,uploading:j,onAddComment:Wa,onDownloadAttachment:Ya,onUploadAttachment:Ja,onStatusChange:ot,onAssign:Rs?()=>R(!0):void 0,onResolve:()=>J(!0),onClose:As,onReopen:Ts,onEscalate:()=>Y(!0),getAttachmentUrl:Qa,onProposeSolution:Ka,onApproveSolution:Ga,onRejectSolution:Ha,t:n})})]}),e.jsx(Md,{show:m&&B,resolution:ge,saving:g,onResolutionChange:z,onClose:()=>J(!1),onResolve:za,t:n}),e.jsx(Od,{show:m&&X,filteredUsers:Za,selectedUserIds:ce,selectedGroupIds:H,groups:ne,userSearchQuery:be,groupSearchQuery:Z,loadingUsers:ue,loadingGroups:Ne,saving:g,activeTab:he,onUserSearchChange:q,onGroupSearchChange:te,onSelectUser:en,onSelectGroup:tn,onTabChange:ve,onClose:()=>{R(!1),fe([]),ie([]),ve("users"),q(""),te("")},onAssign:it,t:n}),e.jsx(_d,{show:m&&G,escalationLevel:F,escalationReason:K,saving:g,onLevelChange:E,onReasonChange:Q,onClose:()=>Y(!1),onEscalate:Va,t:n})]})}const xr="support_tickets_view_mode",fu={Open:["InProgress","OnHold","Rejected"],InProgress:["OnHold","Resolved","Rejected"],OnHold:["InProgress","Resolved","Open"],Resolved:["Closed","Open"],Closed:["Open"],Rejected:["Open"]};function pr(t,s){return t===s?!1:fu[t]?.includes(s)??!1}const ss={Low:"var(--info-bg)",Medium:"var(--warning-bg)",High:"var(--error-bg)",Critical:"var(--error-text)"};function bu({mode:t,showDrafts:s=!1,basePath:r,title:n,subtitle:o,createPath:c}){const{t:i}=re.useTranslation(["support","admin","common"]),d=S.useNavigate(),{currentTenant:u,userTenants:m,hasMultipleTenants:x,isGlobalView:p}=De(),{isGlpi:f}=Ps(),[y,h]=a.useState([]),[N,b]=a.useState(null),[w,g]=a.useState(!0),[v,j]=a.useState(1),[L,$]=a.useState(1),[k,P]=a.useState(0),[A,D]=a.useState(""),[U,C]=a.useState(""),[M,X]=a.useState(""),[R,B]=a.useState(""),[J,G]=a.useState(""),[Y,ge]=a.useState(()=>localStorage.getItem(xr)||"table"),[z,F]=a.useState(!1),[E,K]=a.useState([]),[Q,ee]=a.useState(!0),[se,ce]=a.useState(null),[fe,H]=a.useState(null),[ie,ue]=a.useState(null),pe=(t==="admin"||t==="assigned")&&(x||p),be=a.useCallback(async()=>{try{g(!0);const T={page:v,pageSize:20,search:A||void 0,status:U||void 0,type:M||void 0,priority:R||void 0,tenantId:J||void 0};let le;t==="admin"?le=await je.tickets.getAll(T):t==="assigned"?le=await je.tickets.getMyTickets(T):le=await Ue.getAll(T),h(le?.items??[]),$(le?.totalPages??1),P(le?.totalCount??0)}catch(T){console.error("Failed to load tickets:",T),h([]),$(1),P(0)}finally{g(!1)}},[t,v,A,U,M,R,J]),q=a.useCallback(async()=>{try{let T;t==="admin"?T=await je.tickets.getStats(J||void 0):t==="assigned"?T=await je.tickets.getMyAssignedStats():T=await Ue.getStats(),b(T)}catch(T){console.error("Failed to load stats:",T)}},[t,J]);a.useEffect(()=>{be()},[be]),a.useEffect(()=>{q()},[q]),a.useEffect(()=>{if(s){const T=Ke.getAllDrafts();K(T)}},[s]),a.useEffect(()=>{localStorage.setItem(xr,Y)},[Y]);const Z=T=>{Ke.deleteDraft(T),K(Ke.getAllDrafts())},te=T=>{d(`${c}?draft=${T.id}`)},ne=T=>{const Se=new Date().getTime()-T.getTime(),Te=Math.floor(Se/6e4),Oe=Math.floor(Se/36e5),ot=Math.floor(Se/864e5);return Te<1?i("common:time.justNow","Just now"):Te<60?i("common:time.minutesAgo",{count:Te}):Oe<24?i("common:time.hoursAgo",{count:Oe}):i("common:time.daysAgo",{count:ot})},de=T=>{T.preventDefault(),j(1),be()},Ne=T=>{f||ce(T)},ae=()=>{ce(null),H(null)},he=(T,le)=>{T.preventDefault(),H(le)},ve=()=>{H(null)},Ee=T=>se?pr(se.status,T):!1,ye=async(T,le)=>{if(T.preventDefault(),ue(null),!se||se.status===le){ce(null),H(null);return}if(!pr(se.status,le)){ue(i("list.invalidTransition",{from:i(`tickets.statuses.${se.status}`),to:i(`tickets.statuses.${le}`)})),ce(null),H(null),setTimeout(()=>ue(null),4e3);return}try{h(Se=>Se.map(Te=>Te.id===se.id?{...Te,status:le}:Te)),(t==="admin"||t==="assigned")&&await je.tickets.updateStatus(se.id,le),q(),be()}catch(Se){console.error("Failed to update ticket status:",Se);const Te=Se?.response?.data?.message||Se?.response?.data?.detail||"";ue(Te||i("list.statusUpdateFailed")),setTimeout(()=>ue(null),4e3),be()}finally{ce(null),H(null)}},Ce=async T=>{if(confirm(i("list.confirmDelete",{number:T.ticketNumber})))try{await je.tickets.delete(T.id),be(),q()}catch(le){console.error("Failed to delete ticket:",le)}},ke=T=>`${r}/${T}`,Ie=T=>{if(!pe)return null;const le="tenantId"in T?T.tenantId??null:null,Se="tenantName"in T?T.tenantName??null:null,Te=js(le,u?.id??null);return Te==="global"?e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 border border-purple-200 dark:border-purple-700",children:"System"}):Te==="current"?e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--bg-secondary)] text-[var(--text-secondary)] border border-[var(--border-color)] truncate max-w-[120px]",children:Se}):e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 border border-blue-200 dark:border-blue-700 font-medium truncate max-w-[120px]",children:Se})},Me=()=>{if(!N)return null;const T=N,le=N,Se=t==="admin"||t==="assigned",Te=Se?[{label:i("list.stats.total"),value:T.total,color:"blue"},{label:i("list.stats.open"),value:T.open,color:"yellow"},{label:i("list.stats.inProgress"),value:T.inProgress,color:"blue"},{label:i("list.stats.onHold"),value:T.onHold,color:"yellow"},{label:i("list.stats.resolved"),value:T.resolved,color:"green"},{label:i("list.stats.closed"),value:T.closed,color:"neutral"},{label:i("list.stats.critical"),value:T.critical,color:"red"},{label:i("list.stats.highPriority"),value:T.highPriority,color:"yellow"}]:[{label:i("list.stats.total"),value:le.total,color:"blue"},{label:i("list.stats.open"),value:le.open,color:"yellow"},{label:i("list.stats.inProgress"),value:le.inProgress,color:"blue"},{label:i("list.stats.resolved"),value:le.resolved,color:"green"},{label:i("list.stats.closed"),value:le.closed,color:"neutral"}],Oe={blue:"bg-[var(--info-bg)] text-[var(--info-text)] border-[var(--info-border)]",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)]",neutral:"bg-[var(--bg-secondary)] text-[var(--text-primary)] border-[var(--border-color)]"},ot=Se?"lg:grid-cols-8":"lg:grid-cols-5";return e.jsx("div",{className:`grid grid-cols-2 md:grid-cols-4 ${ot} gap-4 mb-6`,children:Te.map(it=>e.jsxs("div",{className:`card p-4 text-center border ${Oe[it.color]}`,children:[e.jsx("div",{className:"text-2xl font-bold",children:it.value}),e.jsx("div",{className:"text-sm opacity-80",children:it.label})]},it.label))})},Xe=()=>e.jsxs("div",{className:"card overflow-hidden",children:[e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-color)]",children:[e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.number")}),pe&&e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.tenant","Workspace")}),e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.title")}),e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.type")}),e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.status")}),e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.priority")}),e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.assignee")}),e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.comments")}),e.jsx("th",{className:"text-left p-4 font-medium",children:i("list.table.created")}),e.jsx("th",{className:"text-right p-4 font-medium",children:i("list.table.actions")})]})}),e.jsx("tbody",{children:y.map(T=>e.jsxs("tr",{className:"border-b border-[var(--border-color)] hover:bg-[var(--bg-hover)] cursor-pointer",onClick:()=>d(ke(T.id)),children:[e.jsx("td",{className:"p-4",children:e.jsx("span",{className:"font-mono text-sm",children:T.ticketNumber})}),pe&&e.jsx("td",{className:"p-4",children:Ie(T)}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"font-medium",children:T.title}),T.isExternallyManaged&&e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--info-bg)] text-[var(--info-text)] border border-[var(--info-border)]",children:"GLPI"})]})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:"text-sm",children:i(`tickets.types.${T.type}`,{defaultValue:T.type})})}),e.jsx("td",{className:"p-4",children:e.jsx(Mt,{status:ds[T.status]||"pending",label:i(`tickets.statuses.${T.status}`,{defaultValue:T.status})})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:"px-2 py-1 rounded-[var(--radius-badge)] text-xs font-medium",style:{backgroundColor:ss[T.priority],color:T.priority==="Critical"?"white":"inherit"},children:i(`tickets.priorities.${T.priority}`,{defaultValue:T.priority})})}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm",children:"assignedToName"in T&&T.assignedToName||"-"}),"assigneeCount"in T&&T.assigneeCount>1&&e.jsxs("span",{className:"ml-1 text-xs px-1.5 py-0.5 rounded-full bg-[var(--bg-tertiary)] text-[var(--text-secondary)]",children:["+",T.assigneeCount-1]})]})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:"text-sm",children:T.commentCount})}),e.jsx("td",{className:"p-4",children:e.jsx("span",{className:"text-sm text-[var(--text-secondary)]",children:new Date(T.createdAt).toLocaleDateString()})}),e.jsx("td",{className:"p-4 text-right",onClick:le=>le.stopPropagation(),children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx("button",{onClick:()=>d(ke(T.id)),className:"btn btn-ghost p-2",title:i("list.actions.view"),children:e.jsx(l.Eye,{className:"w-4 h-4"})}),T.externalUrl&&e.jsx("a",{href:T.externalUrl,target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost p-2 text-[var(--info-text)]",title:"Open in GLPI",onClick:le=>le.stopPropagation(),children:e.jsx(l.ExternalLink,{className:"w-4 h-4"})}),t==="admin"&&!f&&e.jsx("button",{onClick:()=>Ce(T),disabled:T.isExternallyManaged,className:"btn btn-ghost p-2 text-[var(--error-text)] disabled:opacity-50 disabled:cursor-not-allowed",title:T.isExternallyManaged?"Cannot delete externally managed tickets":i("list.actions.delete"),children:e.jsx(l.Trash2,{className:"w-4 h-4"})})]})})]},T.id))})]}),y.length===0&&!w&&e.jsxs("div",{className:"p-8 text-center text-[var(--text-secondary)]",children:[e.jsx(l.Headphones,{className:"w-12 h-12 mx-auto mb-4 opacity-50"}),e.jsxs("p",{children:[t==="admin"&&i("list.empty.admin"),t==="assigned"&&i("list.empty.assigned"),t==="user"&&i("list.empty.user")]}),t==="user"&&!f&&e.jsxs("button",{onClick:()=>d(c),className:"btn btn-primary mt-4",children:[e.jsx(l.Plus,{className:"w-4 h-4 mr-2"}),i("list.empty.createFirst")]})]})]}),Ze=()=>e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:[y.map(T=>e.jsxs("button",{type:"button",className:"card p-4 hover:shadow-lg cursor-pointer transition-shadow text-left w-full",onClick:()=>d(ke(T.id)),children:[e.jsxs("div",{className:"flex items-start justify-between mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-mono text-sm text-[var(--text-secondary)]",children:T.ticketNumber}),Ie(T)]}),e.jsx(Mt,{status:ds[T.status]||"pending",label:i(`tickets.statuses.${T.status}`,{defaultValue:T.status})})]}),e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("h3",{className:"font-medium line-clamp-2 flex-1",children:T.title}),T.isExternallyManaged&&e.jsx("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--info-bg)] text-[var(--info-text)] border border-[var(--info-border)] whitespace-nowrap",children:"GLPI"})]}),e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx("span",{className:"text-xs px-2 py-1 rounded-[var(--radius-badge)] bg-[var(--bg-secondary)]",children:i(`tickets.types.${T.type}`,{defaultValue:T.type})}),e.jsx("span",{className:"text-xs px-2 py-1 rounded-[var(--radius-badge)]",style:{backgroundColor:ss[T.priority],color:T.priority==="Critical"?"white":"inherit"},children:i(`tickets.priorities.${T.priority}`,{defaultValue:T.priority})})]}),e.jsxs("div",{className:"flex items-center justify-between text-sm text-[var(--text-secondary)]",children:[e.jsx("span",{children:new Date(T.createdAt).toLocaleDateString()}),e.jsx("span",{children:i("list.comments_other",{count:T.commentCount})})]})]},T.id)),y.length===0&&!w&&e.jsxs("div",{className:"col-span-full card p-12 text-center",children:[e.jsx(l.Headphones,{className:"w-12 h-12 mx-auto mb-4 opacity-50"}),e.jsxs("p",{className:"text-[var(--text-secondary)]",children:[t==="admin"&&i("list.empty.admin"),t==="assigned"&&i("list.empty.assigned"),t==="user"&&i("list.empty.user")]}),t==="user"&&!f&&e.jsxs("button",{onClick:()=>d(c),className:"btn btn-primary mt-4",children:[e.jsx(l.Plus,{className:"w-4 h-4 mr-2"}),i("list.empty.createFirst")]})]})]}),rt=T=>e.jsxs(ka,{onClick:()=>d(ke(T.id)),isDragging:se?.id===T.id,onDragStart:()=>Ne(T),onDragEnd:ae,children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-[var(--text-secondary)] mb-1",children:[e.jsx("span",{children:T.ticketNumber}),Ie(T)]}),e.jsx("div",{className:"font-medium mb-2 line-clamp-2",children:T.title}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-[var(--radius-badge)]",style:{backgroundColor:ss[T.priority],color:T.priority==="Critical"?"white":"inherit"},children:i(`tickets.priorities.${T.priority}`,{defaultValue:T.priority})}),e.jsx("span",{className:"text-xs text-[var(--text-secondary)]",children:i("list.comments_other",{count:T.commentCount})})]})]},T.id),at=()=>{const T=[{status:"Open",label:i("tickets.statuses.Open"),color:"warning"},{status:"InProgress",label:i("tickets.statuses.InProgress"),color:"default"},{status:"OnHold",label:i("tickets.statuses.OnHold"),color:"warning"},{status:"Resolved",label:i("tickets.statuses.Resolved"),color:"success"},{status:"Closed",label:i("tickets.statuses.Closed"),color:"default"}];return e.jsxs("div",{className:"space-y-3",children:[ie&&e.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-[var(--radius-card)] bg-[var(--error-bg)] border border-[var(--error-border)]",children:[e.jsx("span",{className:"text-sm text-[var(--error-text)]",children:ie}),e.jsx("button",{onClick:()=>ue(null),className:"ml-auto text-[var(--error-text)] hover:opacity-70",children:"×"})]}),e.jsx("div",{className:"flex gap-4 overflow-x-auto pb-4",children:T.map(le=>{const Se=y.filter(Oe=>Oe.status===le.status),Te=se!=null&&!Ee(le.status)&&se.status!==le.status;return e.jsx(Ca,{title:le.label,count:Se.length,color:le.color,isDragOver:fe===le.status,isDropDisabled:Te,onDragOver:Oe=>he(Oe,le.status),onDragLeave:ve,onDrop:Oe=>ye(Oe,le.status),children:Se.map(rt)},le.status)})})]})},nt=()=>!s||E.length===0?null:e.jsxs("div",{className:"card p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l.FileEdit,{className:"w-5 h-5 text-[var(--warning-text)]"}),e.jsx("h2",{className:"font-semibold",children:i("common:drafts.title","Drafts")}),e.jsx("span",{className:"px-2 py-0.5 text-xs bg-[var(--warning-bg)] text-[var(--warning-text)] rounded-full",children:E.length})]}),e.jsx("button",{onClick:()=>ee(!Q),className:"btn btn-ghost text-sm",children:Q?i("common:actions.hide","Hide"):i("common:actions.show","Show")})]}),Q&&e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:E.map(T=>e.jsx("button",{type:"button",className:"p-3 bg-[var(--bg-secondary)] rounded-lg border border-[var(--warning-border)] hover:border-[var(--warning-text)] transition-colors cursor-pointer text-left w-full",onClick:()=>te(T),children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"font-medium truncate",children:T.title||i("common:drafts.untitled","Untitled draft")}),e.jsxs("div",{className:"flex items-center gap-2 mt-1 text-xs text-[var(--text-secondary)] flex-wrap",children:[T.tenantName&&e.jsx("span",{className:"px-1.5 py-0.5 bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded truncate max-w-[120px]",children:T.tenantName}),T.type&&e.jsx("span",{className:"px-1.5 py-0.5 bg-[var(--bg-tertiary)] rounded",children:i(`tickets.types.${T.type}`,{defaultValue:T.type})}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(l.Clock,{className:"w-3 h-3"}),ne(T.updatedAt)]})]})]}),e.jsx("button",{onClick:le=>{le.stopPropagation(),Z(T.id)},className:"p-1 hover:bg-[var(--error-bg)] rounded text-[var(--text-secondary)] hover:text-[var(--error-text)]",title:i("common:actions.delete","Delete"),children:e.jsx(l.X,{className:"w-4 h-4"})})]})},T.id))})]}),Ct=()=>t==="admin"||t==="assigned"?pe?"md:grid-cols-4":"md:grid-cols-3":"md:grid-cols-2";return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[e.jsx(l.Headphones,{className:"w-6 h-6"}),n]}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:o})]}),!f&&e.jsxs("button",{onClick:()=>d(c),className:"btn btn-primary flex items-center gap-2",children:[e.jsx(l.Plus,{className:"w-4 h-4"}),i("list.newTicket")]})]}),Me(),nt(),e.jsxs("div",{className:"flex flex-col md:flex-row gap-4",children:[e.jsxs("form",{onSubmit:de,className:"flex-1 flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(l.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--text-secondary)]"}),e.jsx("input",{type:"text",placeholder:i("list.searchPlaceholder"),value:A,onChange:T=>D(T.target.value),className:"input w-full pl-10"})]}),e.jsx("button",{type:"submit",className:"btn btn-secondary",children:i("list.search")})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:()=>F(!z),className:`btn ${z?"btn-primary":"btn-secondary"} flex items-center gap-2`,children:[e.jsx(l.Filter,{className:"w-4 h-4"}),i("list.filters")]}),e.jsx(Sa,{viewMode:Y,onChange:ge})]})]}),z&&e.jsxs("div",{className:`card p-4 grid grid-cols-1 ${Ct()} gap-4`,children:[pe&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-1",children:i("list.filter.tenant","Workspace")}),e.jsxs("select",{value:J,onChange:T=>{G(T.target.value),j(1)},className:"input w-full",children:[e.jsx("option",{value:"",children:i("list.filter.allTenants","All Workspaces")}),m.filter(T=>T.status==="Active").map(T=>e.jsx("option",{value:T.id,children:T.name},T.id))]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-1",children:i("list.filter.status")}),e.jsxs("select",{value:U,onChange:T=>{C(T.target.value),j(1)},className:"input w-full",children:[e.jsx("option",{value:"",children:i("list.filter.allStatuses")}),e.jsx("option",{value:"Open",children:i("tickets.statuses.Open")}),e.jsx("option",{value:"InProgress",children:i("tickets.statuses.InProgress")}),e.jsx("option",{value:"OnHold",children:i("tickets.statuses.OnHold")}),e.jsx("option",{value:"Resolved",children:i("tickets.statuses.Resolved")}),e.jsx("option",{value:"Closed",children:i("tickets.statuses.Closed")})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-1",children:i("list.filter.type")}),e.jsxs("select",{value:M,onChange:T=>{X(T.target.value),j(1)},className:"input w-full",children:[e.jsx("option",{value:"",children:i("list.filter.allTypes")}),e.jsx("option",{value:"Bug",children:i("tickets.types.Bug")}),e.jsx("option",{value:"FeatureRequest",children:i("tickets.types.FeatureRequest")}),e.jsx("option",{value:"ApplicationRequest",children:i("tickets.types.ApplicationRequest")}),e.jsx("option",{value:"Support",children:i("tickets.types.Support")}),e.jsx("option",{value:"Question",children:i("tickets.types.Question")})]})]}),(t==="admin"||t==="assigned")&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium mb-1",children:i("list.filter.priority")}),e.jsxs("select",{value:R,onChange:T=>{B(T.target.value),j(1)},className:"input w-full",children:[e.jsx("option",{value:"",children:i("list.filter.allPriorities")}),e.jsx("option",{value:"Low",children:i("tickets.priorities.Low")}),e.jsx("option",{value:"Medium",children:i("tickets.priorities.Medium")}),e.jsx("option",{value:"High",children:i("tickets.priorities.High")}),e.jsx("option",{value:"Critical",children:i("tickets.priorities.Critical")})]})]})]}),w?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(l.Loader2,{className:"w-8 h-8 animate-spin text-[var(--color-primary-600)]"})}):e.jsxs(e.Fragment,{children:[Y==="table"&&Xe(),Y==="cards"&&Ze(),Y==="kanban"&&at()]}),!w&&L>1&&e.jsx(Pa,{page:v,totalPages:L,totalCount:k,onPageChange:j})]})}exports.ActivityTimeline=zc;exports.AdminSidebar=zi;exports.AppHeader=st;exports.AppLayout=ja;exports.AppSwitcher=ma;exports.AuthLayout=fi;exports.AuthProvider=Pr;exports.Avatar=Ei;exports.Breadcrumb=Si;exports.CreateTicketButton=ba;exports.DataTable=Pi;exports.DataView=Ai;exports.DocPanelProvider=ra;exports.DocsLayout=Na;exports.DynamicRouter=_c;exports.EntityCard=Ss;exports.ErrorFallback=Hr;exports.ExtendablePage=fo;exports.ExtensionProvider=ea;exports.FavoritesBar=Bc;exports.FavoritesModal=$a;exports.FavoritesProvider=$r;exports.FeatureGate=Ji;exports.FeatureRouteGuard=Cs;exports.Fill=Jr;exports.Footer=ws;exports.GlobalErrorBoundary=Vr;exports.Header=Ns;exports.KanbanBoard=Di;exports.KanbanCard=ka;exports.KanbanColumn=Ca;exports.LanguageSwitcher=ys;exports.LicenseActivationDialog=Ta;exports.LicenseContentBanner=ya;exports.LicenseGuard=Ea;exports.LicenseProvider=Er;exports.LicenseStatusBadge=Qi;exports.ModuleSidebar=va;exports.NetworkError=xs;exports.NotificationBell=ga;exports.PAGE_KEYS=_;exports.PageHeader=Mi;exports.PageRegistry=O;exports.Pagination=Pa;exports.PermissionMatrix=Oi;exports.ProtectedRoute=Ra;exports.ProviderCard=Li;exports.PublicLayout=wa;exports.RoleBadge=Ii;exports.RouteErrorBoundary=Yi;exports.SessionProvider=Gr;exports.SessionWarningModal=Kr;exports.SidebarProvider=Or;exports.SignalRProvider=qr;exports.SlaBadge=nd;exports.Slot=Yr;exports.SlotFillProvider=Xr;exports.SmartStackProvider=vo;exports.StatusBadge=Mt;exports.TemplateCard=$i;exports.ThemeCustomizer=Ui;exports.ThemeProvider=wr;exports.ThemeSwitcher=Ht;exports.TicketConversation=Ma;exports.TicketDetailView=gu;exports.TicketSidebar=Oa;exports.TicketsListView=bu;exports.Tooltip=fa;exports.UnderDevelopment=Aa;exports.UnlockReason=pn;exports.UserSidebar=Ki;exports.ViewToggle=Sa;exports.WILDCARD_PERMISSION=Cr;exports.adminApi=we;exports.api=I;exports.apiClient=Pe;exports.authApi=Dt;exports.availabilityApi=Qd;exports.browserInfoService=aa;exports.changeLanguage=hs;exports.createAdminApi=vr;exports.createSlotFill=co;exports.dashboardApi=Yo;exports.detectDeviceType=Ia;exports.errorContextService=It;exports.generateUUID=ps;exports.getClientIpAddress=La;exports.getTenantBadgeVariant=js;exports.hasAllLicenseFeatures=Ar;exports.hasFullAccess=$t;exports.hasPermission=kr;exports.hasRouteAccess=gs;exports.i18nReady=jr;exports.logService=Le;exports.matchesWildcard=qt;exports.myTicketsApi=Ue;exports.notificationsApi=tt;exports.parseUserAgent=xc;exports.rulesApi=Yd;exports.skillsApi=Jd;exports.slaApi=ha;exports.supportApi=je;exports.templatesApi=Et;exports.tenantAnalyticsApi=cs;exports.ticketDraftService=Ke;exports.useActivePage=go;exports.useAuth=Re;exports.useClientContext=No;exports.useCollapsibleState=wo;exports.useDocPanel=Gt;exports.useEntityPermissions=da;exports.useExtensions=St;exports.useFavorites=Ge;exports.useFeatureConfig=Ut;exports.useFormFieldExtensions=mo;exports.useHasExtension=xo;exports.useLicense=Be;exports.useNavigation=Ae;exports.usePageOverride=Kt;exports.usePageTracking=ia;exports.usePermissionMatrix=To;exports.usePermissionSync=Ro;exports.useRouteConfig=Do;exports.useSessionMonitor=zr;exports.useSidebar=Bt;exports.useSignalR=la;exports.useSignalRContext=Br;exports.useSlotFill=Wr;exports.useSlotHasContent=lo;exports.useTableColumnExtensions=uo;exports.useTenant=De;exports.useTenantUrl=Qe;exports.useTheme=wt;exports.useTicketSignalR=ca;exports.useTicketingProvider=Ps;exports.useUserPermissions=Fo;exports.userApi=_t;exports.withPageOverride=ho;exports.workloadApi=eu;
|
|
48
|
-
//# sourceMappingURL=index-
|
|
48
|
+
//# sourceMappingURL=index-BDRogQH_.js.map
|