@atlashub/smartstack 3.10.0 → 3.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1016) hide show
  1. package/dist/AiDocPage-CM7j_50_.cjs.map +1 -1
  2. package/dist/AiDocPage-rnKBvVof.js.map +1 -1
  3. package/dist/ArchitecturePage-Cn_XCDAo.cjs.map +1 -1
  4. package/dist/ArchitecturePage-DNwzHKk0.js.map +1 -1
  5. package/dist/{AuthCallbackPage-Cu74zAX1.js → AuthCallbackPage-CoJi12d0.js} +2 -2
  6. package/dist/AuthCallbackPage-CoJi12d0.js.map +1 -0
  7. package/dist/{AuthCallbackPage-Bv2Cyn80.cjs → AuthCallbackPage-D_g2VCjj.cjs} +2 -2
  8. package/dist/AuthCallbackPage-D_g2VCjj.cjs.map +1 -0
  9. package/dist/{BaIndexPage-Dkp_Eixx.js → BaIndexPage-B5scAEin.js} +2 -2
  10. package/dist/BaIndexPage-B5scAEin.js.map +1 -0
  11. package/dist/BaIndexPage-C3osYS_6.cjs +2 -0
  12. package/dist/BaIndexPage-C3osYS_6.cjs.map +1 -0
  13. package/dist/BaViewerPage-BPucPOSy.cjs +2 -0
  14. package/dist/BaViewerPage-BPucPOSy.cjs.map +1 -0
  15. package/dist/{BaViewerPage-DxD0eZm-.js → BaViewerPage-TL6IHeQx.js} +26 -26
  16. package/dist/BaViewerPage-TL6IHeQx.js.map +1 -0
  17. package/dist/{ConfirmEmailPage-su3Fvl0e.cjs → ConfirmEmailPage-B3mrPUvg.cjs} +2 -2
  18. package/dist/ConfirmEmailPage-B3mrPUvg.cjs.map +1 -0
  19. package/dist/{ConfirmEmailPage-BTp8J0pw.js → ConfirmEmailPage-DDp2IPE_.js} +2 -2
  20. package/dist/ConfirmEmailPage-DDp2IPE_.js.map +1 -0
  21. package/dist/CrossSchemaFkPage-BchJFOmH.js.map +1 -1
  22. package/dist/CrossSchemaFkPage-DqFNORYd.cjs.map +1 -1
  23. package/dist/{DatabasePage-DFIK8cSM.js → DatabasePage-BnaX9sis.js} +44 -48
  24. package/dist/DatabasePage-BnaX9sis.js.map +1 -0
  25. package/dist/DatabasePage-DAzb3FnS.cjs +2 -0
  26. package/dist/DatabasePage-DAzb3FnS.cjs.map +1 -0
  27. package/dist/DeveloperIndexPage-CtBfD2JI.cjs.map +1 -1
  28. package/dist/DeveloperIndexPage-D4zD_pop.js.map +1 -1
  29. package/dist/{DocRenderer-CcEn1iaa.js → DocRenderer-C5pM9SWP.js} +99 -94
  30. package/dist/DocRenderer-C5pM9SWP.js.map +1 -0
  31. package/dist/DocRenderer-D7hi9Oa-.cjs +2 -0
  32. package/dist/DocRenderer-D7hi9Oa-.cjs.map +1 -0
  33. package/dist/DocsIndexPage-BD6OOCak.js.map +1 -1
  34. package/dist/DocsIndexPage-BPfi0FQD.cjs.map +1 -1
  35. package/dist/{DualDbContextPage-BujD_coN.js → DualDbContextPage-CVBjCvGp.js} +2 -2
  36. package/dist/DualDbContextPage-CVBjCvGp.js.map +1 -0
  37. package/dist/{DualDbContextPage--Qk-qEgD.cjs → DualDbContextPage-Dz8NAewk.cjs} +2 -2
  38. package/dist/DualDbContextPage-Dz8NAewk.cjs.map +1 -0
  39. package/dist/{ForceChangePasswordPage-kEFsb5Aq.cjs → ForceChangePasswordPage-BqNyswSy.cjs} +2 -2
  40. package/dist/ForceChangePasswordPage-BqNyswSy.cjs.map +1 -0
  41. package/dist/{ForceChangePasswordPage-ClENqzCH.js → ForceChangePasswordPage-DkpGGEn7.js} +2 -2
  42. package/dist/ForceChangePasswordPage-DkpGGEn7.js.map +1 -0
  43. package/dist/{ForgotPasswordPage--Wl0Vxbv.cjs → ForgotPasswordPage-C7mySa8O.cjs} +2 -2
  44. package/dist/ForgotPasswordPage-C7mySa8O.cjs.map +1 -0
  45. package/dist/{ForgotPasswordPage-BEgvV5f-.js → ForgotPasswordPage-Dmi6wpMM.js} +2 -2
  46. package/dist/ForgotPasswordPage-Dmi6wpMM.js.map +1 -0
  47. package/dist/InfrastructurePage-D4ZjLzI_.cjs.map +1 -1
  48. package/dist/InfrastructurePage-q_y1z8T_.js.map +1 -1
  49. package/dist/InstallationPage-BJ-GBVPp.cjs.map +1 -1
  50. package/dist/InstallationPage-CXKmzZuN.js.map +1 -1
  51. package/dist/ModulesPage-B3p8e07v.js.map +1 -1
  52. package/dist/ModulesPage-lz8DUm3X.cjs.map +1 -1
  53. package/dist/{OnboardingWizardPage-Bx1UlTbr.js → OnboardingWizardPage-BeCNpdPL.js} +2 -2
  54. package/dist/OnboardingWizardPage-BeCNpdPL.js.map +1 -0
  55. package/dist/{OnboardingWizardPage-C7vendrq.cjs → OnboardingWizardPage-CgEpUx9X.cjs} +2 -2
  56. package/dist/OnboardingWizardPage-CgEpUx9X.cjs.map +1 -0
  57. package/dist/{RegisterPage-DKr8quRk.cjs → RegisterPage-BejbbAl9.cjs} +2 -2
  58. package/dist/RegisterPage-BejbbAl9.cjs.map +1 -0
  59. package/dist/{RegisterPage-BzV0sCTe.js → RegisterPage-CcuYYRBS.js} +2 -2
  60. package/dist/RegisterPage-CcuYYRBS.js.map +1 -0
  61. package/dist/{ResetPasswordPage-x4do1o-j.cjs → ResetPasswordPage-7brP8dT7.cjs} +2 -2
  62. package/dist/ResetPasswordPage-7brP8dT7.cjs.map +1 -0
  63. package/dist/{ResetPasswordPage-DphmJrcJ.js → ResetPasswordPage-BX3wnSSM.js} +2 -2
  64. package/dist/ResetPasswordPage-BX3wnSSM.js.map +1 -0
  65. package/dist/SettingsDocPage-DYXvb3M-.js.map +1 -1
  66. package/dist/SettingsDocPage-Dqj8KzOa.cjs.map +1 -1
  67. package/dist/SlaDocPage-D44QWNY8.cjs.map +1 -1
  68. package/dist/SlaDocPage-hLFLqLVa.js.map +1 -1
  69. package/dist/SmartStackPresentationPage-52Nb7F0X.cjs.map +1 -1
  70. package/dist/SmartStackPresentationPage-D3ku9GtQ.js.map +1 -1
  71. package/dist/{SupportDashboardDocPage-CLotzEwA.js → SupportDashboardDocPage-CG_Ahacx.js} +2 -2
  72. package/dist/SupportDashboardDocPage-CG_Ahacx.js.map +1 -0
  73. package/dist/{SupportDashboardDocPage-DpgGq5Mm.cjs → SupportDashboardDocPage-DfV-9_8r.cjs} +2 -2
  74. package/dist/SupportDashboardDocPage-DfV-9_8r.cjs.map +1 -0
  75. package/dist/{SupportEscalationDocPage-B-_ChfdN.js → SupportEscalationDocPage-C481D7pF.js} +2 -2
  76. package/dist/SupportEscalationDocPage-C481D7pF.js.map +1 -0
  77. package/dist/{SupportEscalationDocPage-WXkAQr8k.cjs → SupportEscalationDocPage-C65oCDZL.cjs} +2 -2
  78. package/dist/SupportEscalationDocPage-C65oCDZL.cjs.map +1 -0
  79. package/dist/SupportIndexPage-Bb0giRKn.js.map +1 -1
  80. package/dist/SupportIndexPage-CsDQ35Cu.cjs.map +1 -1
  81. package/dist/{SupportMyTicketsDocPage-DeRUdAIi.js → SupportMyTicketsDocPage-D2f6DaKb.js} +2 -2
  82. package/dist/SupportMyTicketsDocPage-D2f6DaKb.js.map +1 -0
  83. package/dist/{SupportMyTicketsDocPage-jE1UMaIY.cjs → SupportMyTicketsDocPage-Dbp6XBnH.cjs} +2 -2
  84. package/dist/SupportMyTicketsDocPage-Dbp6XBnH.cjs.map +1 -0
  85. package/dist/{SupportTemplatesDocPage-ajO-cHmK.cjs → SupportTemplatesDocPage-BkeDpR-8.cjs} +2 -2
  86. package/dist/SupportTemplatesDocPage-BkeDpR-8.cjs.map +1 -0
  87. package/dist/{SupportTemplatesDocPage-C8ZLzFJc.js → SupportTemplatesDocPage-sCKQlZFJ.js} +2 -2
  88. package/dist/SupportTemplatesDocPage-sCKQlZFJ.js.map +1 -0
  89. package/dist/{SupportTicketsDocPage-C_ybDTjC.cjs → SupportTicketsDocPage-B_603CpY.cjs} +2 -2
  90. package/dist/SupportTicketsDocPage-B_603CpY.cjs.map +1 -0
  91. package/dist/{SupportTicketsDocPage-DQhHfa6J.js → SupportTicketsDocPage-ClBa3qeY.js} +2 -2
  92. package/dist/SupportTicketsDocPage-ClBa3qeY.js.map +1 -0
  93. package/dist/TeamsIntegrationPage-BwhBcPAK.js.map +1 -1
  94. package/dist/TeamsIntegrationPage-DXj5MDRS.cjs.map +1 -1
  95. package/dist/ThemeDocPage-B6x55uSE.cjs.map +1 -1
  96. package/dist/ThemeDocPage-xkMbvMJG.js.map +1 -1
  97. package/dist/UserIndexPage-DSDfRWFx.js.map +1 -1
  98. package/dist/UserIndexPage-DahU6wzK.cjs.map +1 -1
  99. package/dist/components/ThemeSync.d.ts +2 -1
  100. package/dist/components/ThemeSync.d.ts.map +1 -1
  101. package/dist/components/auth/PermissionSyncHandler.d.ts +2 -1
  102. package/dist/components/auth/PermissionSyncHandler.d.ts.map +1 -1
  103. package/dist/components/dashboard/ApplicationActivityPieChart.d.ts +1 -1
  104. package/dist/components/dashboard/ApplicationActivityPieChart.d.ts.map +1 -1
  105. package/dist/components/dashboard/ApplicationUsageChart.d.ts +3 -2
  106. package/dist/components/dashboard/ApplicationUsageChart.d.ts.map +1 -1
  107. package/dist/components/dashboard/CurrentSessionCard.d.ts +3 -2
  108. package/dist/components/dashboard/CurrentSessionCard.d.ts.map +1 -1
  109. package/dist/components/dashboard/DeviceBreakdownChart.d.ts +1 -1
  110. package/dist/components/dashboard/DeviceBreakdownChart.d.ts.map +1 -1
  111. package/dist/components/dashboard/DeviceStatsCard.d.ts +3 -2
  112. package/dist/components/dashboard/DeviceStatsCard.d.ts.map +1 -1
  113. package/dist/components/dashboard/EngagementMetricsCard.d.ts +1 -1
  114. package/dist/components/dashboard/EngagementMetricsCard.d.ts.map +1 -1
  115. package/dist/components/dashboard/HierarchyDrillDownChart.d.ts +2 -2
  116. package/dist/components/dashboard/HierarchyDrillDownChart.d.ts.map +1 -1
  117. package/dist/components/dashboard/HourlyUsageChart.d.ts +3 -2
  118. package/dist/components/dashboard/HourlyUsageChart.d.ts.map +1 -1
  119. package/dist/components/dashboard/LoginErrorsTable.d.ts +3 -2
  120. package/dist/components/dashboard/LoginErrorsTable.d.ts.map +1 -1
  121. package/dist/components/dashboard/ModulePopularityChart.d.ts +2 -2
  122. package/dist/components/dashboard/ModulePopularityChart.d.ts.map +1 -1
  123. package/dist/components/dashboard/SessionAnalyticsChart.d.ts +3 -2
  124. package/dist/components/dashboard/SessionAnalyticsChart.d.ts.map +1 -1
  125. package/dist/components/dashboard/TenantActivityPieChart.d.ts +2 -2
  126. package/dist/components/dashboard/TenantActivityPieChart.d.ts.map +1 -1
  127. package/dist/components/dashboard/TenantPopularityChart.d.ts +2 -2
  128. package/dist/components/dashboard/TenantPopularityChart.d.ts.map +1 -1
  129. package/dist/components/dashboard/TenantUsageTrendChart.d.ts +2 -2
  130. package/dist/components/dashboard/TenantUsageTrendChart.d.ts.map +1 -1
  131. package/dist/components/dashboard/UsageTrendChart.d.ts +2 -2
  132. package/dist/components/dashboard/UsageTrendChart.d.ts.map +1 -1
  133. package/dist/components/dashboard/WeeklyUsageChart.d.ts +3 -2
  134. package/dist/components/dashboard/WeeklyUsageChart.d.ts.map +1 -1
  135. package/dist/components/docs/DocRenderer.d.ts +6 -5
  136. package/dist/components/docs/DocRenderer.d.ts.map +1 -1
  137. package/dist/components/docs/DocsSearch.d.ts +5 -4
  138. package/dist/components/docs/DocsSearch.d.ts.map +1 -1
  139. package/dist/components/email/EmailEditor.d.ts +7 -6
  140. package/dist/components/email/EmailEditor.d.ts.map +1 -1
  141. package/dist/components/errors/AccessDenied.d.ts +8 -7
  142. package/dist/components/errors/AccessDenied.d.ts.map +1 -1
  143. package/dist/components/errors/ErrorFallback.d.ts +4 -3
  144. package/dist/components/errors/ErrorFallback.d.ts.map +1 -1
  145. package/dist/components/errors/GlobalErrorBoundary.d.ts +3 -2
  146. package/dist/components/errors/GlobalErrorBoundary.d.ts.map +1 -1
  147. package/dist/components/errors/NoActiveWorkspace.d.ts +2 -1
  148. package/dist/components/errors/NoActiveWorkspace.d.ts.map +1 -1
  149. package/dist/components/errors/RouteErrorBoundary.d.ts +3 -2
  150. package/dist/components/errors/RouteErrorBoundary.d.ts.map +1 -1
  151. package/dist/components/favorites/FavoritesBar.d.ts +3 -2
  152. package/dist/components/favorites/FavoritesBar.d.ts.map +1 -1
  153. package/dist/components/favorites/FavoritesModal.d.ts +4 -3
  154. package/dist/components/favorites/FavoritesModal.d.ts.map +1 -1
  155. package/dist/components/layout/AdminHeader.d.ts +3 -2
  156. package/dist/components/layout/AdminHeader.d.ts.map +1 -1
  157. package/dist/components/layout/AdminSidebar.d.ts +4 -3
  158. package/dist/components/layout/AdminSidebar.d.ts.map +1 -1
  159. package/dist/components/layout/AppHeader.d.ts +3 -2
  160. package/dist/components/layout/AppHeader.d.ts.map +1 -1
  161. package/dist/components/layout/BusinessHeader.d.ts +3 -2
  162. package/dist/components/layout/BusinessHeader.d.ts.map +1 -1
  163. package/dist/components/layout/Footer.d.ts +2 -1
  164. package/dist/components/layout/Footer.d.ts.map +1 -1
  165. package/dist/components/layout/Header.d.ts +2 -1
  166. package/dist/components/layout/Header.d.ts.map +1 -1
  167. package/dist/components/layout/ModuleSidebar.d.ts +4 -3
  168. package/dist/components/layout/ModuleSidebar.d.ts.map +1 -1
  169. package/dist/components/layout/ResizableMainContent.d.ts +3 -2
  170. package/dist/components/layout/ResizableMainContent.d.ts.map +1 -1
  171. package/dist/components/layout/UserHeader.d.ts +3 -2
  172. package/dist/components/layout/UserHeader.d.ts.map +1 -1
  173. package/dist/components/layout/UserSidebar.d.ts +4 -3
  174. package/dist/components/layout/UserSidebar.d.ts.map +1 -1
  175. package/dist/components/license/FeatureGate.d.ts +6 -6
  176. package/dist/components/license/FeatureGate.d.ts.map +1 -1
  177. package/dist/components/license/FeatureRouteGuard.d.ts +3 -2
  178. package/dist/components/license/FeatureRouteGuard.d.ts.map +1 -1
  179. package/dist/components/license/LicenseActivationDialog.d.ts +4 -3
  180. package/dist/components/license/LicenseActivationDialog.d.ts.map +1 -1
  181. package/dist/components/license/LicenseAlertBanner.d.ts +2 -1
  182. package/dist/components/license/LicenseAlertBanner.d.ts.map +1 -1
  183. package/dist/components/license/LicenseBlockOverlay.d.ts +2 -1
  184. package/dist/components/license/LicenseBlockOverlay.d.ts.map +1 -1
  185. package/dist/components/license/LicenseContentBanner.d.ts +2 -1
  186. package/dist/components/license/LicenseContentBanner.d.ts.map +1 -1
  187. package/dist/components/license/LicenseGuard.d.ts +2 -1
  188. package/dist/components/license/LicenseGuard.d.ts.map +1 -1
  189. package/dist/components/license/LicenseStatusBadge.d.ts +3 -2
  190. package/dist/components/license/LicenseStatusBadge.d.ts.map +1 -1
  191. package/dist/components/notifications/NotificationBell.d.ts +2 -1
  192. package/dist/components/notifications/NotificationBell.d.ts.map +1 -1
  193. package/dist/components/platform/administration/ApplicationAccessCustomizeDrawer.d.ts +9 -8
  194. package/dist/components/platform/administration/ApplicationAccessCustomizeDrawer.d.ts.map +1 -1
  195. package/dist/components/platform/administration/ApplicationCard.d.ts +8 -8
  196. package/dist/components/platform/administration/ApplicationCard.d.ts.map +1 -1
  197. package/dist/components/platform/administration/ConflictDiffView.d.ts +4 -3
  198. package/dist/components/platform/administration/ConflictDiffView.d.ts.map +1 -1
  199. package/dist/components/platform/administration/EntraGroupRoleAssignment.d.ts +8 -7
  200. package/dist/components/platform/administration/EntraGroupRoleAssignment.d.ts.map +1 -1
  201. package/dist/components/platform/administration/GroupApplicationsTab.d.ts +4 -3
  202. package/dist/components/platform/administration/GroupApplicationsTab.d.ts.map +1 -1
  203. package/dist/components/platform/administration/GroupMembersTab.d.ts +5 -4
  204. package/dist/components/platform/administration/GroupMembersTab.d.ts.map +1 -1
  205. package/dist/components/platform/administration/GroupPermissionsView.d.ts +3 -2
  206. package/dist/components/platform/administration/GroupPermissionsView.d.ts.map +1 -1
  207. package/dist/components/platform/administration/GroupRoleAssignment.d.ts +10 -9
  208. package/dist/components/platform/administration/GroupRoleAssignment.d.ts.map +1 -1
  209. package/dist/components/platform/administration/GroupTenantsTab.d.ts +4 -3
  210. package/dist/components/platform/administration/GroupTenantsTab.d.ts.map +1 -1
  211. package/dist/components/platform/administration/PermissionDrillDownBar.d.ts +8 -7
  212. package/dist/components/platform/administration/PermissionDrillDownBar.d.ts.map +1 -1
  213. package/dist/components/platform/administration/PermissionMatrixFilters.d.ts +10 -9
  214. package/dist/components/platform/administration/PermissionMatrixFilters.d.ts.map +1 -1
  215. package/dist/components/platform/administration/PermissionMatrixTable.d.ts +15 -14
  216. package/dist/components/platform/administration/PermissionMatrixTable.d.ts.map +1 -1
  217. package/dist/components/platform/administration/PermissionPopover.d.ts +12 -11
  218. package/dist/components/platform/administration/PermissionPopover.d.ts.map +1 -1
  219. package/dist/components/platform/administration/TenantAccessCustomizeDrawer.d.ts +8 -7
  220. package/dist/components/platform/administration/TenantAccessCustomizeDrawer.d.ts.map +1 -1
  221. package/dist/components/platform/administration/TenantEntraTab.d.ts +5 -4
  222. package/dist/components/platform/administration/TenantEntraTab.d.ts.map +1 -1
  223. package/dist/components/platform/administration/UserGroupsTab.d.ts +4 -3
  224. package/dist/components/platform/administration/UserGroupsTab.d.ts.map +1 -1
  225. package/dist/components/platform/administration/UserRoleAssignment.d.ts +13 -12
  226. package/dist/components/platform/administration/UserRoleAssignment.d.ts.map +1 -1
  227. package/dist/components/platform/administration/access-requests/AccessRequestApprovalModal.d.ts +8 -7
  228. package/dist/components/platform/administration/access-requests/AccessRequestApprovalModal.d.ts.map +1 -1
  229. package/dist/components/platform/administration/access-requests/AccessRequestStatusBadge.d.ts +3 -2
  230. package/dist/components/platform/administration/access-requests/AccessRequestStatusBadge.d.ts.map +1 -1
  231. package/dist/components/platform/administration/access-requests/AccessRequestsListTab.d.ts +6 -5
  232. package/dist/components/platform/administration/access-requests/AccessRequestsListTab.d.ts.map +1 -1
  233. package/dist/components/platform/administration/access-requests/RequestAccessButton.d.ts +6 -5
  234. package/dist/components/platform/administration/access-requests/RequestAccessButton.d.ts.map +1 -1
  235. package/dist/components/platform/administration/ai/AiModelsTab.d.ts +6 -5
  236. package/dist/components/platform/administration/ai/AiModelsTab.d.ts.map +1 -1
  237. package/dist/components/platform/administration/ai/AiProfilesTab.d.ts +18 -17
  238. package/dist/components/platform/administration/ai/AiProfilesTab.d.ts.map +1 -1
  239. package/dist/components/platform/administration/ai/AiProvidersTab.d.ts +3 -2
  240. package/dist/components/platform/administration/ai/AiProvidersTab.d.ts.map +1 -1
  241. package/dist/components/platform/administration/ai/PromptTestPanel.d.ts +4 -3
  242. package/dist/components/platform/administration/ai/PromptTestPanel.d.ts.map +1 -1
  243. package/dist/components/platform/administration/applications/ApplicationAccessTab.d.ts +4 -3
  244. package/dist/components/platform/administration/applications/ApplicationAccessTab.d.ts.map +1 -1
  245. package/dist/components/platform/administration/applications/ApplicationInfoTab.d.ts +16 -16
  246. package/dist/components/platform/administration/applications/ApplicationInfoTab.d.ts.map +1 -1
  247. package/dist/components/platform/administration/applications/ApplicationModulesTab.d.ts +30 -29
  248. package/dist/components/platform/administration/applications/ApplicationModulesTab.d.ts.map +1 -1
  249. package/dist/components/platform/administration/applications/ApplicationPermissionsTab.d.ts +5 -4
  250. package/dist/components/platform/administration/applications/ApplicationPermissionsTab.d.ts.map +1 -1
  251. package/dist/components/platform/administration/applications/ApplicationPublicationTab.d.ts +49 -49
  252. package/dist/components/platform/administration/applications/ApplicationPublicationTab.d.ts.map +1 -1
  253. package/dist/components/platform/administration/entra/ConflictCard.d.ts +5 -4
  254. package/dist/components/platform/administration/entra/ConflictCard.d.ts.map +1 -1
  255. package/dist/components/platform/administration/entra/ResolutionModal.d.ts +6 -5
  256. package/dist/components/platform/administration/entra/ResolutionModal.d.ts.map +1 -1
  257. package/dist/components/platform/administration/organisations/CreateOrganisationForm.d.ts +8 -7
  258. package/dist/components/platform/administration/organisations/CreateOrganisationForm.d.ts.map +1 -1
  259. package/dist/components/platform/administration/permissions/GroupPermissionMatrix.d.ts +6 -5
  260. package/dist/components/platform/administration/permissions/GroupPermissionMatrix.d.ts.map +1 -1
  261. package/dist/components/platform/administration/permissions/PermissionStatusIndicator.d.ts +6 -5
  262. package/dist/components/platform/administration/permissions/PermissionStatusIndicator.d.ts.map +1 -1
  263. package/dist/components/platform/administration/permissions/RolePermissionMatrix.d.ts +3 -2
  264. package/dist/components/platform/administration/permissions/RolePermissionMatrix.d.ts.map +1 -1
  265. package/dist/components/platform/administration/permissions/UserPermissionMatrix.d.ts +5 -4
  266. package/dist/components/platform/administration/permissions/UserPermissionMatrix.d.ts.map +1 -1
  267. package/dist/components/platform/administration/settings/SettingsHistoryModal.d.ts +2 -1
  268. package/dist/components/platform/administration/settings/SettingsHistoryModal.d.ts.map +1 -1
  269. package/dist/components/platform/administration/tenants/TenantApplicationsTab.d.ts +55 -54
  270. package/dist/components/platform/administration/tenants/TenantApplicationsTab.d.ts.map +1 -1
  271. package/dist/components/platform/administration/tenants/TenantGroupsTab.d.ts +8 -7
  272. package/dist/components/platform/administration/tenants/TenantGroupsTab.d.ts.map +1 -1
  273. package/dist/components/platform/administration/tenants/TenantMembersTab.d.ts +8 -7
  274. package/dist/components/platform/administration/tenants/TenantMembersTab.d.ts.map +1 -1
  275. package/dist/components/platform/administration/tenants/TenantOverviewTab.d.ts +12 -11
  276. package/dist/components/platform/administration/tenants/TenantOverviewTab.d.ts.map +1 -1
  277. package/dist/components/platform/administration/tenants/TenantRolesTab.d.ts +2 -1
  278. package/dist/components/platform/administration/tenants/TenantRolesTab.d.ts.map +1 -1
  279. package/dist/components/platform/administration/tenants/TenantSupportSettingsTab.d.ts +4 -3
  280. package/dist/components/platform/administration/tenants/TenantSupportSettingsTab.d.ts.map +1 -1
  281. package/dist/components/platform/administration/users/UserActivitySessionsTab.d.ts +8 -7
  282. package/dist/components/platform/administration/users/UserActivitySessionsTab.d.ts.map +1 -1
  283. package/dist/components/platform/administration/users/UserApplicationsTab.d.ts +4 -3
  284. package/dist/components/platform/administration/users/UserApplicationsTab.d.ts.map +1 -1
  285. package/dist/components/platform/administration/users/UserHistoryTab.d.ts +7 -6
  286. package/dist/components/platform/administration/users/UserHistoryTab.d.ts.map +1 -1
  287. package/dist/components/platform/administration/users/UserInfoTab.d.ts +15 -14
  288. package/dist/components/platform/administration/users/UserInfoTab.d.ts.map +1 -1
  289. package/dist/components/platform/administration/users/UserSecurityTab.d.ts +23 -22
  290. package/dist/components/platform/administration/users/UserSecurityTab.d.ts.map +1 -1
  291. package/dist/components/platform/administration/users/UserTenantsTab.d.ts +22 -21
  292. package/dist/components/platform/administration/users/UserTenantsTab.d.ts.map +1 -1
  293. package/dist/components/platform/administration/workflows/WorkflowStepsEditor.d.ts +6 -5
  294. package/dist/components/platform/administration/workflows/WorkflowStepsEditor.d.ts.map +1 -1
  295. package/dist/components/platform/api/external-apps/ExternalAppAuditTab.d.ts +1 -1
  296. package/dist/components/platform/api/external-apps/ExternalAppAuditTab.d.ts.map +1 -1
  297. package/dist/components/platform/api/external-apps/ExternalAppExportsTab.d.ts +6 -5
  298. package/dist/components/platform/api/external-apps/ExternalAppExportsTab.d.ts.map +1 -1
  299. package/dist/components/platform/api/external-apps/ExternalAppInfoTab.d.ts +6 -5
  300. package/dist/components/platform/api/external-apps/ExternalAppInfoTab.d.ts.map +1 -1
  301. package/dist/components/platform/api/external-apps/ExternalAppKeysTab.d.ts +6 -5
  302. package/dist/components/platform/api/external-apps/ExternalAppKeysTab.d.ts.map +1 -1
  303. package/dist/components/platform/api/external-apps/ExternalAppPromptTab.d.ts +3 -2
  304. package/dist/components/platform/api/external-apps/ExternalAppPromptTab.d.ts.map +1 -1
  305. package/dist/components/platform/api/external-apps/ExternalAppRolesTab.d.ts +6 -5
  306. package/dist/components/platform/api/external-apps/ExternalAppRolesTab.d.ts.map +1 -1
  307. package/dist/components/platform/support/ActivityTimeline.d.ts +5 -4
  308. package/dist/components/platform/support/ActivityTimeline.d.ts.map +1 -1
  309. package/dist/components/platform/support/AiClassificationBadge.d.ts +7 -6
  310. package/dist/components/platform/support/AiClassificationBadge.d.ts.map +1 -1
  311. package/dist/components/platform/support/AiRoutingSuggestionPanel.d.ts +9 -8
  312. package/dist/components/platform/support/AiRoutingSuggestionPanel.d.ts.map +1 -1
  313. package/dist/components/platform/support/AiTicketSummary.d.ts +8 -7
  314. package/dist/components/platform/support/AiTicketSummary.d.ts.map +1 -1
  315. package/dist/components/platform/support/FilePreviewModal.d.ts +6 -5
  316. package/dist/components/platform/support/FilePreviewModal.d.ts.map +1 -1
  317. package/dist/components/platform/support/ScreenshotAnnotator.d.ts +6 -5
  318. package/dist/components/platform/support/ScreenshotAnnotator.d.ts.map +1 -1
  319. package/dist/components/platform/support/SlaBadge.d.ts +12 -11
  320. package/dist/components/platform/support/SlaBadge.d.ts.map +1 -1
  321. package/dist/components/platform/support/TemplatePicker.d.ts +6 -5
  322. package/dist/components/platform/support/TemplatePicker.d.ts.map +1 -1
  323. package/dist/components/platform/support/TicketConversation.d.ts +31 -30
  324. package/dist/components/platform/support/TicketConversation.d.ts.map +1 -1
  325. package/dist/components/platform/support/TicketDetailView.d.ts +3 -2
  326. package/dist/components/platform/support/TicketDetailView.d.ts.map +1 -1
  327. package/dist/components/platform/support/TicketSidebar.d.ts +19 -18
  328. package/dist/components/platform/support/TicketSidebar.d.ts.map +1 -1
  329. package/dist/components/platform/support/TicketSolutionPanel.d.ts +10 -9
  330. package/dist/components/platform/support/TicketSolutionPanel.d.ts.map +1 -1
  331. package/dist/components/platform/support/TicketWorkflow.d.ts +10 -9
  332. package/dist/components/platform/support/TicketWorkflow.d.ts.map +1 -1
  333. package/dist/components/platform/support/TicketWorkflowHorizontal.d.ts +19 -18
  334. package/dist/components/platform/support/TicketWorkflowHorizontal.d.ts.map +1 -1
  335. package/dist/components/platform/support/TicketsListView.d.ts +8 -7
  336. package/dist/components/platform/support/TicketsListView.d.ts.map +1 -1
  337. package/dist/components/routing/DocRoutes.d.ts +1 -1
  338. package/dist/components/routing/DocRoutes.d.ts.map +1 -1
  339. package/dist/components/routing/DynamicRouter.d.ts +2 -1
  340. package/dist/components/routing/DynamicRouter.d.ts.map +1 -1
  341. package/dist/components/routing/ProtectedRoute.d.ts +2 -1
  342. package/dist/components/routing/ProtectedRoute.d.ts.map +1 -1
  343. package/dist/components/routing/TenantNavigate.d.ts +4 -3
  344. package/dist/components/routing/TenantNavigate.d.ts.map +1 -1
  345. package/dist/components/routing/TenantRouteWrapper.d.ts +2 -1
  346. package/dist/components/routing/TenantRouteWrapper.d.ts.map +1 -1
  347. package/dist/components/session/SessionProvider.d.ts +2 -1
  348. package/dist/components/session/SessionProvider.d.ts.map +1 -1
  349. package/dist/components/session/SessionWarningModal.d.ts +6 -5
  350. package/dist/components/session/SessionWarningModal.d.ts.map +1 -1
  351. package/dist/components/tenants/TenantCard.d.ts +13 -12
  352. package/dist/components/tenants/TenantCard.d.ts.map +1 -1
  353. package/dist/components/tickets/CreateTicketButton.d.ts +4 -3
  354. package/dist/components/tickets/CreateTicketButton.d.ts.map +1 -1
  355. package/dist/components/tracking/PageTracker.d.ts +2 -1
  356. package/dist/components/tracking/PageTracker.d.ts.map +1 -1
  357. package/dist/components/tracking/TenantTracker.d.ts +2 -1
  358. package/dist/components/tracking/TenantTracker.d.ts.map +1 -1
  359. package/dist/components/ui/AppSwitcher.d.ts +2 -1
  360. package/dist/components/ui/AppSwitcher.d.ts.map +1 -1
  361. package/dist/components/ui/AvatarMenu.d.ts +2 -1
  362. package/dist/components/ui/AvatarMenu.d.ts.map +1 -1
  363. package/dist/components/ui/Breadcrumb.d.ts +7 -6
  364. package/dist/components/ui/Breadcrumb.d.ts.map +1 -1
  365. package/dist/components/ui/ConfirmModal.d.ts +11 -11
  366. package/dist/components/ui/ConfirmModal.d.ts.map +1 -1
  367. package/dist/components/ui/DataTable.d.ts +2 -1
  368. package/dist/components/ui/DataTable.d.ts.map +1 -1
  369. package/dist/components/ui/DataView.d.ts +54 -53
  370. package/dist/components/ui/DataView.d.ts.map +1 -1
  371. package/dist/components/ui/DocEdgeButton.d.ts +2 -1
  372. package/dist/components/ui/DocEdgeButton.d.ts.map +1 -1
  373. package/dist/components/ui/DocPanel.d.ts +2 -1
  374. package/dist/components/ui/DocPanel.d.ts.map +1 -1
  375. package/dist/components/ui/DocToggleButton.d.ts +4 -3
  376. package/dist/components/ui/DocToggleButton.d.ts.map +1 -1
  377. package/dist/components/ui/Drawer.d.ts +9 -8
  378. package/dist/components/ui/Drawer.d.ts.map +1 -1
  379. package/dist/components/ui/EntityCard.d.ts +75 -74
  380. package/dist/components/ui/EntityCard.d.ts.map +1 -1
  381. package/dist/components/ui/KanbanBoard.d.ts +23 -22
  382. package/dist/components/ui/KanbanBoard.d.ts.map +1 -1
  383. package/dist/components/ui/LanguageSwitcher.d.ts +2 -1
  384. package/dist/components/ui/LanguageSwitcher.d.ts.map +1 -1
  385. package/dist/components/ui/PageHeader.d.ts +6 -6
  386. package/dist/components/ui/PageHeader.d.ts.map +1 -1
  387. package/dist/components/ui/PageLoader.d.ts +2 -1
  388. package/dist/components/ui/PageLoader.d.ts.map +1 -1
  389. package/dist/components/ui/PermissionMatrix.d.ts +2 -1
  390. package/dist/components/ui/PermissionMatrix.d.ts.map +1 -1
  391. package/dist/components/ui/ProtectedButton.d.ts +9 -8
  392. package/dist/components/ui/ProtectedButton.d.ts.map +1 -1
  393. package/dist/components/ui/RestrictedModuleBanner.d.ts +2 -1
  394. package/dist/components/ui/RestrictedModuleBanner.d.ts.map +1 -1
  395. package/dist/components/ui/ScopeBanner.d.ts +5 -4
  396. package/dist/components/ui/ScopeBanner.d.ts.map +1 -1
  397. package/dist/components/ui/SelectWithOther.d.ts +10 -9
  398. package/dist/components/ui/SelectWithOther.d.ts.map +1 -1
  399. package/dist/components/ui/SortableList.d.ts +6 -5
  400. package/dist/components/ui/SortableList.d.ts.map +1 -1
  401. package/dist/components/ui/TenantScopeFilter.d.ts +8 -7
  402. package/dist/components/ui/TenantScopeFilter.d.ts.map +1 -1
  403. package/dist/components/ui/TenantScopeSelector.d.ts +8 -7
  404. package/dist/components/ui/TenantScopeSelector.d.ts.map +1 -1
  405. package/dist/components/ui/TenantSelector.d.ts +2 -1
  406. package/dist/components/ui/TenantSelector.d.ts.map +1 -1
  407. package/dist/components/ui/ThemeCustomizer.d.ts +5 -4
  408. package/dist/components/ui/ThemeCustomizer.d.ts.map +1 -1
  409. package/dist/components/ui/ThemeScopeSelector.d.ts +3 -2
  410. package/dist/components/ui/ThemeScopeSelector.d.ts.map +1 -1
  411. package/dist/components/ui/ThemeSwitcher.d.ts +2 -1
  412. package/dist/components/ui/ThemeSwitcher.d.ts.map +1 -1
  413. package/dist/components/ui/Tooltip.d.ts +14 -13
  414. package/dist/components/ui/Tooltip.d.ts.map +1 -1
  415. package/dist/components/ui/UnderDevelopment.d.ts +8 -7
  416. package/dist/components/ui/UnderDevelopment.d.ts.map +1 -1
  417. package/dist/components/ui/UnlockAccountModal.d.ts +6 -5
  418. package/dist/components/ui/UnlockAccountModal.d.ts.map +1 -1
  419. package/dist/components/ui/ViewModeToggle.d.ts +4 -3
  420. package/dist/components/ui/ViewModeToggle.d.ts.map +1 -1
  421. package/dist/contexts/AuthContext.d.ts +2 -1
  422. package/dist/contexts/AuthContext.d.ts.map +1 -1
  423. package/dist/contexts/DocPanelContext.d.ts +2 -1
  424. package/dist/contexts/DocPanelContext.d.ts.map +1 -1
  425. package/dist/contexts/FavoritesContext.d.ts +2 -1
  426. package/dist/contexts/FavoritesContext.d.ts.map +1 -1
  427. package/dist/contexts/FeatureConfigContext.d.ts +3 -2
  428. package/dist/contexts/FeatureConfigContext.d.ts.map +1 -1
  429. package/dist/contexts/LicenseContext.d.ts +2 -1
  430. package/dist/contexts/LicenseContext.d.ts.map +1 -1
  431. package/dist/contexts/NavigationContext.d.ts +2 -1
  432. package/dist/contexts/NavigationContext.d.ts.map +1 -1
  433. package/dist/contexts/SidebarContext.d.ts +2 -1
  434. package/dist/contexts/SidebarContext.d.ts.map +1 -1
  435. package/dist/contexts/SignalRContext.d.ts +2 -1
  436. package/dist/contexts/SignalRContext.d.ts.map +1 -1
  437. package/dist/contexts/TenantContext.d.ts +2 -1
  438. package/dist/contexts/TenantContext.d.ts.map +1 -1
  439. package/dist/contexts/ThemeContext.d.ts +2 -1
  440. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  441. package/dist/extensions/ExtensionContext.d.ts +4 -3
  442. package/dist/extensions/ExtensionContext.d.ts.map +1 -1
  443. package/dist/extensions/PageRegistry.d.ts +6 -5
  444. package/dist/extensions/PageRegistry.d.ts.map +1 -1
  445. package/dist/extensions/SlotFill.d.ts +13 -13
  446. package/dist/extensions/SlotFill.d.ts.map +1 -1
  447. package/dist/extensions/types.d.ts +10 -10
  448. package/dist/extensions/types.d.ts.map +1 -1
  449. package/dist/hooks/useAccessRequestActions.d.ts.map +1 -1
  450. package/dist/hooks/useAccessRequests.d.ts.map +1 -1
  451. package/dist/hooks/useAdminTenants.d.ts.map +1 -1
  452. package/dist/hooks/useClientContext.d.ts.map +1 -1
  453. package/dist/hooks/useCollapsibleState.d.ts.map +1 -1
  454. package/dist/hooks/useCreateSupportTicket.d.ts +23 -21
  455. package/dist/hooks/useCreateSupportTicket.d.ts.map +1 -1
  456. package/dist/hooks/useLocale.d.ts.map +1 -1
  457. package/dist/hooks/useLoginForm.d.ts +5 -4
  458. package/dist/hooks/useLoginForm.d.ts.map +1 -1
  459. package/dist/hooks/useNotifications.d.ts.map +1 -1
  460. package/dist/hooks/usePageTracking.d.ts.map +1 -1
  461. package/dist/hooks/usePagination.d.ts +1 -1
  462. package/dist/hooks/usePagination.d.ts.map +1 -1
  463. package/dist/hooks/usePermissionSync.d.ts +2 -1
  464. package/dist/hooks/usePermissionSync.d.ts.map +1 -1
  465. package/dist/hooks/useRestrictedModuleCheck.d.ts.map +1 -1
  466. package/dist/hooks/useSessionMonitor.d.ts +7 -5
  467. package/dist/hooks/useSessionMonitor.d.ts.map +1 -1
  468. package/dist/hooks/useSettingsSection.d.ts.map +1 -1
  469. package/dist/hooks/useSignalR.d.ts.map +1 -1
  470. package/dist/hooks/useTenantCreateForm.d.ts +24 -22
  471. package/dist/hooks/useTenantCreateForm.d.ts.map +1 -1
  472. package/dist/hooks/useTenantFavorites.d.ts.map +1 -1
  473. package/dist/hooks/useTenantFilters.d.ts.map +1 -1
  474. package/dist/hooks/useTenantTracking.d.ts.map +1 -1
  475. package/dist/hooks/useTicketSignalR.d.ts.map +1 -1
  476. package/dist/hooks/useUserAccessRequests.d.ts.map +1 -1
  477. package/dist/i18n/config.d.ts +1 -1
  478. package/dist/i18n/config.d.ts.map +1 -1
  479. package/dist/{index-DGeNdATi.js → index-3lcyR754.js} +2 -2
  480. package/dist/{index-DGeNdATi.js.map → index-3lcyR754.js.map} +1 -1
  481. package/dist/{index-DJXny6rD.cjs → index-AM9K908G.cjs} +2 -2
  482. package/dist/{index-DJXny6rD.cjs.map → index-AM9K908G.cjs.map} +1 -1
  483. package/dist/{index-ASxPhrgZ.cjs → index-BASU1QDx.cjs} +2 -2
  484. package/dist/index-BASU1QDx.cjs.map +1 -0
  485. package/dist/{index-ChVCBF4t.js → index-BBFFDXgT.js} +2 -2
  486. package/dist/{index-ChVCBF4t.js.map → index-BBFFDXgT.js.map} +1 -1
  487. package/dist/{index-C54HbULX.cjs → index-BBQMnq4P.cjs} +2 -2
  488. package/dist/index-BBQMnq4P.cjs.map +1 -0
  489. package/dist/{index-CUISVUMx.js → index-BEOtfRxa.js} +16 -16
  490. package/dist/index-BEOtfRxa.js.map +1 -0
  491. package/dist/{index-D4u23zHI.js → index-BEeLN5ui.js} +24 -24
  492. package/dist/index-BEeLN5ui.js.map +1 -0
  493. package/dist/{index-Du4fQfix.cjs → index-BEpBEF5G.cjs} +2 -2
  494. package/dist/index-BEpBEF5G.cjs.map +1 -0
  495. package/dist/{index-BlHDI4zj.js → index-BIB3FxMF.js} +14 -14
  496. package/dist/index-BIB3FxMF.js.map +1 -0
  497. package/dist/{index-Txfokhn3.cjs → index-BVUCDL0k.cjs} +2 -2
  498. package/dist/index-BVUCDL0k.cjs.map +1 -0
  499. package/dist/{index-jpSTOjXU.js → index-BYYgvEcO.js} +17 -17
  500. package/dist/index-BYYgvEcO.js.map +1 -0
  501. package/dist/{index-CU66n-zU.js → index-B_lFRwmY.js} +13 -13
  502. package/dist/index-B_lFRwmY.js.map +1 -0
  503. package/dist/{index-Blfc9wKG.js → index-Bbd3D6A4.js} +8 -8
  504. package/dist/index-Bbd3D6A4.js.map +1 -0
  505. package/dist/index-BfMaHuWh.cjs +48 -0
  506. package/dist/index-BfMaHuWh.cjs.map +1 -0
  507. package/dist/index-C0AgM8YN.cjs.map +1 -1
  508. package/dist/index-C0rFTzxZ.cjs +2 -0
  509. package/dist/index-C0rFTzxZ.cjs.map +1 -0
  510. package/dist/{index-By0u9UFY.js → index-CCS0saZk.js} +10 -10
  511. package/dist/index-CCS0saZk.js.map +1 -0
  512. package/dist/{index-C40Dlolq.js → index-CID51vRa.js} +28 -28
  513. package/dist/index-CID51vRa.js.map +1 -0
  514. package/dist/index-CO5QP9C1.cjs +2 -0
  515. package/dist/index-CO5QP9C1.cjs.map +1 -0
  516. package/dist/{index-CI1DJrFE.js → index-CaI6ZbEo.js} +12 -12
  517. package/dist/index-CaI6ZbEo.js.map +1 -0
  518. package/dist/{index-DKRiN1hJ.cjs → index-CaLDUVLs.cjs} +2 -2
  519. package/dist/{index-DKRiN1hJ.cjs.map → index-CaLDUVLs.cjs.map} +1 -1
  520. package/dist/index-CdORB0b4.cjs.map +1 -1
  521. package/dist/{index-Dxau-XnQ.cjs → index-Cdu0fSs8.cjs} +2 -2
  522. package/dist/index-Cdu0fSs8.cjs.map +1 -0
  523. package/dist/{index-Bup-dL1l.cjs → index-CiAIT31Y.cjs} +2 -2
  524. package/dist/{index-Bup-dL1l.cjs.map → index-CiAIT31Y.cjs.map} +1 -1
  525. package/dist/{index-ClIOix1g.js → index-ClrwWu9J.js} +2 -2
  526. package/dist/{index-ClIOix1g.js.map → index-ClrwWu9J.js.map} +1 -1
  527. package/dist/{index-DdsLBKHV.cjs → index-CtcTcQqt.cjs} +2 -2
  528. package/dist/{index-DdsLBKHV.cjs.map → index-CtcTcQqt.cjs.map} +1 -1
  529. package/dist/{index-DM5ogbum.js → index-CzCt3Aan.js} +2 -2
  530. package/dist/{index-DM5ogbum.js.map → index-CzCt3Aan.js.map} +1 -1
  531. package/dist/index-D1WPBG1_.cjs +2 -0
  532. package/dist/index-D1WPBG1_.cjs.map +1 -0
  533. package/dist/{index-Dsbkiw3B.js → index-DA3kbmS5.js} +2 -2
  534. package/dist/{index-Dsbkiw3B.js.map → index-DA3kbmS5.js.map} +1 -1
  535. package/dist/{index-D6zlXbv_.js → index-DE40yc39.js} +2 -2
  536. package/dist/{index-D6zlXbv_.js.map → index-DE40yc39.js.map} +1 -1
  537. package/dist/{index-DmuVa7Ye.cjs → index-DIuoVYFu.cjs} +2 -2
  538. package/dist/index-DIuoVYFu.cjs.map +1 -0
  539. package/dist/{index-DDJTWztK.cjs → index-DLSMVKFE.cjs} +2 -2
  540. package/dist/{index-DDJTWztK.cjs.map → index-DLSMVKFE.cjs.map} +1 -1
  541. package/dist/index-DQBVnnd6.cjs +2 -0
  542. package/dist/index-DQBVnnd6.cjs.map +1 -0
  543. package/dist/{index-BYhFG50Z.cjs → index-DRT2wvEs.cjs} +2 -2
  544. package/dist/index-DRT2wvEs.cjs.map +1 -0
  545. package/dist/{index-Cv7iWoG8.js → index-DRc5qb2I.js} +15 -15
  546. package/dist/index-DRc5qb2I.js.map +1 -0
  547. package/dist/index-DTAZtzQ6.js.map +1 -1
  548. package/dist/{index-BnWMDCRU.cjs → index-DYJbiXHU.cjs} +2 -2
  549. package/dist/index-DYJbiXHU.cjs.map +1 -0
  550. package/dist/{index-D8xuGyjU.js → index-DhVauF9E.js} +16 -16
  551. package/dist/index-DhVauF9E.js.map +1 -0
  552. package/dist/index-DiQ2SDvl.js.map +1 -1
  553. package/dist/{index-BcO3pBlL.js → index-Dm5ZLB9x.js} +14 -14
  554. package/dist/index-Dm5ZLB9x.js.map +1 -0
  555. package/dist/{index-CBOLnJkG.cjs → index-HWG-CG1i.cjs} +2 -2
  556. package/dist/index-HWG-CG1i.cjs.map +1 -0
  557. package/dist/{index-0Jhdcj59.js → index-Kn_ynW2m.js} +3298 -3200
  558. package/dist/index-Kn_ynW2m.js.map +1 -0
  559. package/dist/{index-B2rKKVDN.js → index-L994YeGJ.js} +7 -7
  560. package/dist/index-L994YeGJ.js.map +1 -0
  561. package/dist/{index-1tvWzIw0.cjs → index-OhzFdH9N.cjs} +2 -2
  562. package/dist/{index-1tvWzIw0.cjs.map → index-OhzFdH9N.cjs.map} +1 -1
  563. package/dist/{index-CnmIX2MY.js → index-Z6aHkjiA.js} +23 -20
  564. package/dist/index-Z6aHkjiA.js.map +1 -0
  565. package/dist/index-p2jNjCTo.cjs +2 -0
  566. package/dist/index-p2jNjCTo.cjs.map +1 -0
  567. package/dist/{index-DwATtWun.js → index-vUb_gIjC.js} +11 -11
  568. package/dist/index-vUb_gIjC.js.map +1 -0
  569. package/dist/{index-eAHjmtzn.cjs → index-xCGnOlox.cjs} +2 -2
  570. package/dist/index-xCGnOlox.cjs.map +1 -0
  571. package/dist/layouts/AdminLayout.d.ts +2 -1
  572. package/dist/layouts/AdminLayout.d.ts.map +1 -1
  573. package/dist/layouts/AppLayout.d.ts +2 -1
  574. package/dist/layouts/AppLayout.d.ts.map +1 -1
  575. package/dist/layouts/AuthLayout.d.ts +2 -1
  576. package/dist/layouts/AuthLayout.d.ts.map +1 -1
  577. package/dist/layouts/BusinessLayout.d.ts +2 -1
  578. package/dist/layouts/BusinessLayout.d.ts.map +1 -1
  579. package/dist/layouts/DocsLayout.d.ts +2 -1
  580. package/dist/layouts/DocsLayout.d.ts.map +1 -1
  581. package/dist/layouts/PublicLayout.d.ts +2 -1
  582. package/dist/layouts/PublicLayout.d.ts.map +1 -1
  583. package/dist/layouts/UserLayout.d.ts +2 -1
  584. package/dist/layouts/UserLayout.d.ts.map +1 -1
  585. package/dist/pages/ApplicationsPage.d.ts +2 -1
  586. package/dist/pages/ApplicationsPage.d.ts.map +1 -1
  587. package/dist/pages/HomePage.d.ts +2 -1
  588. package/dist/pages/HomePage.d.ts.map +1 -1
  589. package/dist/pages/LoginPage.d.ts +2 -1
  590. package/dist/pages/LoginPage.d.ts.map +1 -1
  591. package/dist/pages/NotFoundPage.d.ts +2 -1
  592. package/dist/pages/NotFoundPage.d.ts.map +1 -1
  593. package/dist/pages/auth/AuthCallbackPage.d.ts +2 -1
  594. package/dist/pages/auth/AuthCallbackPage.d.ts.map +1 -1
  595. package/dist/pages/auth/ConfirmEmailPage.d.ts +2 -1
  596. package/dist/pages/auth/ConfirmEmailPage.d.ts.map +1 -1
  597. package/dist/pages/auth/ForceChangePasswordPage.d.ts +2 -1
  598. package/dist/pages/auth/ForceChangePasswordPage.d.ts.map +1 -1
  599. package/dist/pages/auth/ForgotPasswordPage.d.ts +2 -1
  600. package/dist/pages/auth/ForgotPasswordPage.d.ts.map +1 -1
  601. package/dist/pages/auth/OnboardingWizardPage.d.ts +2 -1
  602. package/dist/pages/auth/OnboardingWizardPage.d.ts.map +1 -1
  603. package/dist/pages/auth/RegisterPage.d.ts +2 -1
  604. package/dist/pages/auth/RegisterPage.d.ts.map +1 -1
  605. package/dist/pages/auth/ResetPasswordPage.d.ts +2 -1
  606. package/dist/pages/auth/ResetPasswordPage.d.ts.map +1 -1
  607. package/dist/pages/business/BusinessApplicationsGridPage.d.ts +2 -1
  608. package/dist/pages/business/BusinessApplicationsGridPage.d.ts.map +1 -1
  609. package/dist/pages/docs/business/platform/administration/ai/index.d.ts +2 -1
  610. package/dist/pages/docs/business/platform/administration/ai/index.d.ts.map +1 -1
  611. package/dist/pages/docs/business/platform/administration/applications/index.d.ts +2 -1
  612. package/dist/pages/docs/business/platform/administration/applications/index.d.ts.map +1 -1
  613. package/dist/pages/docs/business/platform/administration/configuration/index.d.ts +2 -1
  614. package/dist/pages/docs/business/platform/administration/configuration/index.d.ts.map +1 -1
  615. package/dist/pages/docs/business/platform/administration/configuration/license/index.d.ts +2 -1
  616. package/dist/pages/docs/business/platform/administration/configuration/license/index.d.ts.map +1 -1
  617. package/dist/pages/docs/business/platform/administration/entra/index.d.ts +2 -1
  618. package/dist/pages/docs/business/platform/administration/entra/index.d.ts.map +1 -1
  619. package/dist/pages/docs/business/platform/administration/permissions/assignments/index.d.ts +2 -1
  620. package/dist/pages/docs/business/platform/administration/permissions/assignments/index.d.ts.map +1 -1
  621. package/dist/pages/docs/business/platform/administration/permissions/index.d.ts +2 -1
  622. package/dist/pages/docs/business/platform/administration/permissions/index.d.ts.map +1 -1
  623. package/dist/pages/docs/business/platform/administration/tenants/access-requests/index.d.ts +2 -1
  624. package/dist/pages/docs/business/platform/administration/tenants/access-requests/index.d.ts.map +1 -1
  625. package/dist/pages/docs/business/platform/administration/tenants/applications/index.d.ts +2 -1
  626. package/dist/pages/docs/business/platform/administration/tenants/applications/index.d.ts.map +1 -1
  627. package/dist/pages/docs/business/platform/administration/tenants/business/index.d.ts +2 -1
  628. package/dist/pages/docs/business/platform/administration/tenants/business/index.d.ts.map +1 -1
  629. package/dist/pages/docs/business/platform/administration/tenants/index.d.ts +2 -1
  630. package/dist/pages/docs/business/platform/administration/tenants/index.d.ts.map +1 -1
  631. package/dist/pages/docs/business/platform/administration/tenants/organisations/index.d.ts +2 -1
  632. package/dist/pages/docs/business/platform/administration/tenants/organisations/index.d.ts.map +1 -1
  633. package/dist/pages/docs/business/platform/administration/tenants/other/index.d.ts +2 -1
  634. package/dist/pages/docs/business/platform/administration/tenants/other/index.d.ts.map +1 -1
  635. package/dist/pages/docs/business/platform/administration/tenants/personal/index.d.ts +2 -1
  636. package/dist/pages/docs/business/platform/administration/tenants/personal/index.d.ts.map +1 -1
  637. package/dist/pages/docs/business/platform/administration/tenants/template/index.d.ts +2 -1
  638. package/dist/pages/docs/business/platform/administration/tenants/template/index.d.ts.map +1 -1
  639. package/dist/pages/docs/business/platform/administration/users/dashboard/index.d.ts +2 -1
  640. package/dist/pages/docs/business/platform/administration/users/dashboard/index.d.ts.map +1 -1
  641. package/dist/pages/docs/business/platform/administration/users/groups/index.d.ts +2 -1
  642. package/dist/pages/docs/business/platform/administration/users/groups/index.d.ts.map +1 -1
  643. package/dist/pages/docs/business/platform/administration/users/index.d.ts +2 -1
  644. package/dist/pages/docs/business/platform/administration/users/index.d.ts.map +1 -1
  645. package/dist/pages/docs/business/platform/administration/users/references/index.d.ts +2 -1
  646. package/dist/pages/docs/business/platform/administration/users/references/index.d.ts.map +1 -1
  647. package/dist/pages/docs/business/platform/administration/workflows/index.d.ts +2 -1
  648. package/dist/pages/docs/business/platform/administration/workflows/index.d.ts.map +1 -1
  649. package/dist/pages/docs/business/platform/support/tickets/index.d.ts +2 -1
  650. package/dist/pages/docs/business/platform/support/tickets/index.d.ts.map +1 -1
  651. package/dist/pages/notifications/NotificationsPage.d.ts +2 -1
  652. package/dist/pages/notifications/NotificationsPage.d.ts.map +1 -1
  653. package/dist/pages/personal/myspace/MyAccessRequestsPage.d.ts +2 -1
  654. package/dist/pages/personal/myspace/MyAccessRequestsPage.d.ts.map +1 -1
  655. package/dist/pages/personal/myspace/MyTenantsPage.d.ts +2 -1
  656. package/dist/pages/personal/myspace/MyTenantsPage.d.ts.map +1 -1
  657. package/dist/pages/personal/myspace/PortalDashboardPage.d.ts +2 -1
  658. package/dist/pages/personal/myspace/PortalDashboardPage.d.ts.map +1 -1
  659. package/dist/pages/personal/myspace/PreferencesPage.d.ts +2 -1
  660. package/dist/pages/personal/myspace/PreferencesPage.d.ts.map +1 -1
  661. package/dist/pages/personal/myspace/ProfilePage.d.ts +2 -1
  662. package/dist/pages/personal/myspace/ProfilePage.d.ts.map +1 -1
  663. package/dist/pages/personal/myspace/UserDashboardPage.d.ts +2 -1
  664. package/dist/pages/personal/myspace/UserDashboardPage.d.ts.map +1 -1
  665. package/dist/pages/platform/administration/DashboardPage.d.ts +2 -1
  666. package/dist/pages/platform/administration/DashboardPage.d.ts.map +1 -1
  667. package/dist/pages/platform/administration/ai/AiAgentDetailPage.d.ts +2 -1
  668. package/dist/pages/platform/administration/ai/AiAgentDetailPage.d.ts.map +1 -1
  669. package/dist/pages/platform/administration/ai/AiAgentEditPage.d.ts +2 -1
  670. package/dist/pages/platform/administration/ai/AiAgentEditPage.d.ts.map +1 -1
  671. package/dist/pages/platform/administration/ai/AiAgentsPage.d.ts +2 -1
  672. package/dist/pages/platform/administration/ai/AiAgentsPage.d.ts.map +1 -1
  673. package/dist/pages/platform/administration/ai/AiBlockDefinitionDetailPage.d.ts +2 -1
  674. package/dist/pages/platform/administration/ai/AiBlockDefinitionDetailPage.d.ts.map +1 -1
  675. package/dist/pages/platform/administration/ai/AiBlockDefinitionEditPage.d.ts +2 -1
  676. package/dist/pages/platform/administration/ai/AiBlockDefinitionEditPage.d.ts.map +1 -1
  677. package/dist/pages/platform/administration/ai/AiBlockDefinitionsListPage.d.ts +2 -1
  678. package/dist/pages/platform/administration/ai/AiBlockDefinitionsListPage.d.ts.map +1 -1
  679. package/dist/pages/platform/administration/ai/AiDashboardPage.d.ts +2 -1
  680. package/dist/pages/platform/administration/ai/AiDashboardPage.d.ts.map +1 -1
  681. package/dist/pages/platform/administration/ai/AiMonitoringPage.d.ts +2 -1
  682. package/dist/pages/platform/administration/ai/AiMonitoringPage.d.ts.map +1 -1
  683. package/dist/pages/platform/administration/ai/AiPromptsListPage.d.ts +2 -1
  684. package/dist/pages/platform/administration/ai/AiPromptsListPage.d.ts.map +1 -1
  685. package/dist/pages/platform/administration/ai/AiPromptsPage.d.ts +2 -1
  686. package/dist/pages/platform/administration/ai/AiPromptsPage.d.ts.map +1 -1
  687. package/dist/pages/platform/administration/ai/AiSettingsPage.d.ts +2 -1
  688. package/dist/pages/platform/administration/ai/AiSettingsPage.d.ts.map +1 -1
  689. package/dist/pages/platform/administration/ai/AiSkillsDetailPage.d.ts +2 -1
  690. package/dist/pages/platform/administration/ai/AiSkillsDetailPage.d.ts.map +1 -1
  691. package/dist/pages/platform/administration/ai/AiSkillsEditPage.d.ts +2 -1
  692. package/dist/pages/platform/administration/ai/AiSkillsEditPage.d.ts.map +1 -1
  693. package/dist/pages/platform/administration/applications/ApplicationDetailPage.d.ts +2 -1
  694. package/dist/pages/platform/administration/applications/ApplicationDetailPage.d.ts.map +1 -1
  695. package/dist/pages/platform/administration/applications/ApplicationsGridPage.d.ts +2 -1
  696. package/dist/pages/platform/administration/applications/ApplicationsGridPage.d.ts.map +1 -1
  697. package/dist/pages/platform/administration/applications/ApplicationsListPage.d.ts.map +1 -1
  698. package/dist/pages/platform/administration/applications/NavigationAppsPage.d.ts +2 -1
  699. package/dist/pages/platform/administration/applications/NavigationAppsPage.d.ts.map +1 -1
  700. package/dist/pages/platform/administration/configuration/appsettings/AppSettingsPage.d.ts +2 -1
  701. package/dist/pages/platform/administration/configuration/appsettings/AppSettingsPage.d.ts.map +1 -1
  702. package/dist/pages/platform/administration/configuration/appsettings/AuthenticationSection.d.ts +2 -1
  703. package/dist/pages/platform/administration/configuration/appsettings/AuthenticationSection.d.ts.map +1 -1
  704. package/dist/pages/platform/administration/configuration/appsettings/EmailSection.d.ts +2 -1
  705. package/dist/pages/platform/administration/configuration/appsettings/EmailSection.d.ts.map +1 -1
  706. package/dist/pages/platform/administration/configuration/appsettings/EntraSection.d.ts +2 -1
  707. package/dist/pages/platform/administration/configuration/appsettings/EntraSection.d.ts.map +1 -1
  708. package/dist/pages/platform/administration/configuration/appsettings/InfrastructureSection.d.ts +2 -1
  709. package/dist/pages/platform/administration/configuration/appsettings/InfrastructureSection.d.ts.map +1 -1
  710. package/dist/pages/platform/administration/configuration/appsettings/LoggingSection.d.ts +2 -1
  711. package/dist/pages/platform/administration/configuration/appsettings/LoggingSection.d.ts.map +1 -1
  712. package/dist/pages/platform/administration/configuration/license/LicenseManagementPage.d.ts +2 -1
  713. package/dist/pages/platform/administration/configuration/license/LicenseManagementPage.d.ts.map +1 -1
  714. package/dist/pages/platform/administration/configuration/settings/FileUploadSettingsSection.d.ts +2 -1
  715. package/dist/pages/platform/administration/configuration/settings/FileUploadSettingsSection.d.ts.map +1 -1
  716. package/dist/pages/platform/administration/configuration/settings/GeneralSettingsSection.d.ts +2 -1
  717. package/dist/pages/platform/administration/configuration/settings/GeneralSettingsSection.d.ts.map +1 -1
  718. package/dist/pages/platform/administration/configuration/settings/LegalFileSettingsSection.d.ts +2 -1
  719. package/dist/pages/platform/administration/configuration/settings/LegalFileSettingsSection.d.ts.map +1 -1
  720. package/dist/pages/platform/administration/configuration/settings/SettingsPage.d.ts +2 -1
  721. package/dist/pages/platform/administration/configuration/settings/SettingsPage.d.ts.map +1 -1
  722. package/dist/pages/platform/administration/configuration/settings/StorageInfoSection.d.ts +2 -1
  723. package/dist/pages/platform/administration/configuration/settings/StorageInfoSection.d.ts.map +1 -1
  724. package/dist/pages/platform/administration/entra/EntraConflictsPage.d.ts +2 -1
  725. package/dist/pages/platform/administration/entra/EntraConflictsPage.d.ts.map +1 -1
  726. package/dist/pages/platform/administration/entra/EntraDashboardPage.d.ts +2 -1
  727. package/dist/pages/platform/administration/entra/EntraDashboardPage.d.ts.map +1 -1
  728. package/dist/pages/platform/administration/entra/EntraGroupsPage.d.ts +2 -1
  729. package/dist/pages/platform/administration/entra/EntraGroupsPage.d.ts.map +1 -1
  730. package/dist/pages/platform/administration/entra/EntraSettingsPage.d.ts +2 -1
  731. package/dist/pages/platform/administration/entra/EntraSettingsPage.d.ts.map +1 -1
  732. package/dist/pages/platform/administration/entra/EntraUsersPage.d.ts +2 -1
  733. package/dist/pages/platform/administration/entra/EntraUsersPage.d.ts.map +1 -1
  734. package/dist/pages/platform/administration/permissions/AssignmentsPage.d.ts +2 -1
  735. package/dist/pages/platform/administration/permissions/AssignmentsPage.d.ts.map +1 -1
  736. package/dist/pages/platform/administration/permissions/PermissionDetailPage.d.ts +2 -1
  737. package/dist/pages/platform/administration/permissions/PermissionDetailPage.d.ts.map +1 -1
  738. package/dist/pages/platform/administration/permissions/PermissionsPage.d.ts +2 -1
  739. package/dist/pages/platform/administration/permissions/PermissionsPage.d.ts.map +1 -1
  740. package/dist/pages/platform/administration/permissions/RoleDetailPage.d.ts +2 -1
  741. package/dist/pages/platform/administration/permissions/RoleDetailPage.d.ts.map +1 -1
  742. package/dist/pages/platform/administration/permissions/RolesPage.d.ts +2 -1
  743. package/dist/pages/platform/administration/permissions/RolesPage.d.ts.map +1 -1
  744. package/dist/pages/platform/administration/tenants/OrganisationCreatePage.d.ts +2 -1
  745. package/dist/pages/platform/administration/tenants/OrganisationCreatePage.d.ts.map +1 -1
  746. package/dist/pages/platform/administration/tenants/OrganisationDetailPage.d.ts +2 -1
  747. package/dist/pages/platform/administration/tenants/OrganisationDetailPage.d.ts.map +1 -1
  748. package/dist/pages/platform/administration/tenants/OrganisationsListPage.d.ts +2 -1
  749. package/dist/pages/platform/administration/tenants/OrganisationsListPage.d.ts.map +1 -1
  750. package/dist/pages/platform/administration/tenants/TenantAccessRequestsPage.d.ts +2 -1
  751. package/dist/pages/platform/administration/tenants/TenantAccessRequestsPage.d.ts.map +1 -1
  752. package/dist/pages/platform/administration/tenants/TenantCreatePage.d.ts +2 -1
  753. package/dist/pages/platform/administration/tenants/TenantCreatePage.d.ts.map +1 -1
  754. package/dist/pages/platform/administration/tenants/TenantDetailPage.d.ts +2 -1
  755. package/dist/pages/platform/administration/tenants/TenantDetailPage.d.ts.map +1 -1
  756. package/dist/pages/platform/administration/tenants/TenantSettingsPage.d.ts +2 -1
  757. package/dist/pages/platform/administration/tenants/TenantSettingsPage.d.ts.map +1 -1
  758. package/dist/pages/platform/administration/tenants/TenantTemplateCreatePage.d.ts +2 -1
  759. package/dist/pages/platform/administration/tenants/TenantTemplateCreatePage.d.ts.map +1 -1
  760. package/dist/pages/platform/administration/tenants/TenantTemplateDetailPage.d.ts +2 -1
  761. package/dist/pages/platform/administration/tenants/TenantTemplateDetailPage.d.ts.map +1 -1
  762. package/dist/pages/platform/administration/tenants/TenantsBusinessPage.d.ts +2 -1
  763. package/dist/pages/platform/administration/tenants/TenantsBusinessPage.d.ts.map +1 -1
  764. package/dist/pages/platform/administration/tenants/TenantsDashboardPage.d.ts +2 -1
  765. package/dist/pages/platform/administration/tenants/TenantsDashboardPage.d.ts.map +1 -1
  766. package/dist/pages/platform/administration/tenants/TenantsOtherPage.d.ts +2 -1
  767. package/dist/pages/platform/administration/tenants/TenantsOtherPage.d.ts.map +1 -1
  768. package/dist/pages/platform/administration/tenants/TenantsPage.d.ts +4 -3
  769. package/dist/pages/platform/administration/tenants/TenantsPage.d.ts.map +1 -1
  770. package/dist/pages/platform/administration/tenants/TenantsPersonalPage.d.ts +2 -1
  771. package/dist/pages/platform/administration/tenants/TenantsPersonalPage.d.ts.map +1 -1
  772. package/dist/pages/platform/administration/tenants/TenantsSystemPage.d.ts +2 -1
  773. package/dist/pages/platform/administration/tenants/TenantsSystemPage.d.ts.map +1 -1
  774. package/dist/pages/platform/administration/tenants/TenantsTemplatePage.d.ts +2 -1
  775. package/dist/pages/platform/administration/tenants/TenantsTemplatePage.d.ts.map +1 -1
  776. package/dist/pages/platform/administration/users/GroupDetailPage.d.ts +2 -1
  777. package/dist/pages/platform/administration/users/GroupDetailPage.d.ts.map +1 -1
  778. package/dist/pages/platform/administration/users/ReferencesManagementPage.d.ts +2 -1
  779. package/dist/pages/platform/administration/users/ReferencesManagementPage.d.ts.map +1 -1
  780. package/dist/pages/platform/administration/users/ReferencesPage.d.ts +2 -1
  781. package/dist/pages/platform/administration/users/ReferencesPage.d.ts.map +1 -1
  782. package/dist/pages/platform/administration/users/UserDetailPage.d.ts +2 -1
  783. package/dist/pages/platform/administration/users/UserDetailPage.d.ts.map +1 -1
  784. package/dist/pages/platform/administration/users/UsersGroupsPage.d.ts +2 -1
  785. package/dist/pages/platform/administration/users/UsersGroupsPage.d.ts.map +1 -1
  786. package/dist/pages/platform/administration/users/UsersPage.d.ts +2 -1
  787. package/dist/pages/platform/administration/users/UsersPage.d.ts.map +1 -1
  788. package/dist/pages/platform/administration/workflows/EmailTemplateCreatePage.d.ts +2 -1
  789. package/dist/pages/platform/administration/workflows/EmailTemplateCreatePage.d.ts.map +1 -1
  790. package/dist/pages/platform/administration/workflows/EmailTemplateDetailPage.d.ts +2 -1
  791. package/dist/pages/platform/administration/workflows/EmailTemplateDetailPage.d.ts.map +1 -1
  792. package/dist/pages/platform/administration/workflows/EmailTemplateEditPage.d.ts +2 -1
  793. package/dist/pages/platform/administration/workflows/EmailTemplateEditPage.d.ts.map +1 -1
  794. package/dist/pages/platform/administration/workflows/EmailTemplatesListPage.d.ts +2 -1
  795. package/dist/pages/platform/administration/workflows/EmailTemplatesListPage.d.ts.map +1 -1
  796. package/dist/pages/platform/administration/workflows/SmsTemplatesListPage.d.ts +2 -1
  797. package/dist/pages/platform/administration/workflows/SmsTemplatesListPage.d.ts.map +1 -1
  798. package/dist/pages/platform/administration/workflows/WorkflowCreatePage.d.ts +2 -1
  799. package/dist/pages/platform/administration/workflows/WorkflowCreatePage.d.ts.map +1 -1
  800. package/dist/pages/platform/administration/workflows/WorkflowDetailPage.d.ts +2 -1
  801. package/dist/pages/platform/administration/workflows/WorkflowDetailPage.d.ts.map +1 -1
  802. package/dist/pages/platform/administration/workflows/WorkflowEditPage.d.ts +2 -1
  803. package/dist/pages/platform/administration/workflows/WorkflowEditPage.d.ts.map +1 -1
  804. package/dist/pages/platform/administration/workflows/WorkflowHistoryPage.d.ts +2 -1
  805. package/dist/pages/platform/administration/workflows/WorkflowHistoryPage.d.ts.map +1 -1
  806. package/dist/pages/platform/administration/workflows/WorkflowsListPage.d.ts +2 -1
  807. package/dist/pages/platform/administration/workflows/WorkflowsListPage.d.ts.map +1 -1
  808. package/dist/pages/platform/administration/workflows/WorkflowsTriggersPage.d.ts +2 -1
  809. package/dist/pages/platform/administration/workflows/WorkflowsTriggersPage.d.ts.map +1 -1
  810. package/dist/pages/platform/api/apis/ApiCatalogDetailPage.d.ts +2 -1
  811. package/dist/pages/platform/api/apis/ApiCatalogDetailPage.d.ts.map +1 -1
  812. package/dist/pages/platform/api/apis/ApiCatalogPage.d.ts +2 -1
  813. package/dist/pages/platform/api/apis/ApiCatalogPage.d.ts.map +1 -1
  814. package/dist/pages/platform/api/external-apps/ExternalAppDetailPage.d.ts +2 -1
  815. package/dist/pages/platform/api/external-apps/ExternalAppDetailPage.d.ts.map +1 -1
  816. package/dist/pages/platform/api/external-apps/ExternalAppsListPage.d.ts.map +1 -1
  817. package/dist/pages/platform/support/AgentSkillsPage.d.ts +2 -1
  818. package/dist/pages/platform/support/AgentSkillsPage.d.ts.map +1 -1
  819. package/dist/pages/platform/support/AgentWorkloadPage.d.ts +2 -1
  820. package/dist/pages/platform/support/AgentWorkloadPage.d.ts.map +1 -1
  821. package/dist/pages/platform/support/AssignmentRulesPage.d.ts +2 -1
  822. package/dist/pages/platform/support/AssignmentRulesPage.d.ts.map +1 -1
  823. package/dist/pages/platform/support/CreateSupportTicketPage.d.ts +2 -1
  824. package/dist/pages/platform/support/CreateSupportTicketPage.d.ts.map +1 -1
  825. package/dist/pages/platform/support/DashboardPage.d.ts +2 -1
  826. package/dist/pages/platform/support/DashboardPage.d.ts.map +1 -1
  827. package/dist/pages/platform/support/EscalationConfigPage.d.ts +2 -1
  828. package/dist/pages/platform/support/EscalationConfigPage.d.ts.map +1 -1
  829. package/dist/pages/platform/support/MyAgentTicketsPage.d.ts +2 -1
  830. package/dist/pages/platform/support/MyAgentTicketsPage.d.ts.map +1 -1
  831. package/dist/pages/platform/support/MyTicketsPage.d.ts +2 -1
  832. package/dist/pages/platform/support/MyTicketsPage.d.ts.map +1 -1
  833. package/dist/pages/platform/support/SlaConfigPage.d.ts +2 -1
  834. package/dist/pages/platform/support/SlaConfigPage.d.ts.map +1 -1
  835. package/dist/pages/platform/support/SupportPermissionsPage.d.ts +2 -1
  836. package/dist/pages/platform/support/SupportPermissionsPage.d.ts.map +1 -1
  837. package/dist/pages/platform/support/TemplatesPage.d.ts +2 -1
  838. package/dist/pages/platform/support/TemplatesPage.d.ts.map +1 -1
  839. package/dist/pages/platform/support/TestBugPage.d.ts +2 -1
  840. package/dist/pages/platform/support/TestBugPage.d.ts.map +1 -1
  841. package/dist/pages/platform/support/TicketDetailPage.d.ts +2 -1
  842. package/dist/pages/platform/support/TicketDetailPage.d.ts.map +1 -1
  843. package/dist/pages/platform/support/TicketsPage.d.ts +2 -1
  844. package/dist/pages/platform/support/TicketsPage.d.ts.map +1 -1
  845. package/dist/pages/platform/support/UserCreateTicketPage.d.ts +2 -1
  846. package/dist/pages/platform/support/UserCreateTicketPage.d.ts.map +1 -1
  847. package/dist/pages/platform/support/UserTicketDetailPage.d.ts +2 -1
  848. package/dist/pages/platform/support/UserTicketDetailPage.d.ts.map +1 -1
  849. package/dist/pages/system/docs/DocsIndexPage.d.ts +2 -1
  850. package/dist/pages/system/docs/DocsIndexPage.d.ts.map +1 -1
  851. package/dist/pages/system/docs/SmartStackPresentationPage.d.ts +2 -1
  852. package/dist/pages/system/docs/SmartStackPresentationPage.d.ts.map +1 -1
  853. package/dist/pages/system/docs/ba/BaIndexPage.d.ts +2 -1
  854. package/dist/pages/system/docs/ba/BaIndexPage.d.ts.map +1 -1
  855. package/dist/pages/system/docs/ba/BaViewerPage.d.ts +2 -1
  856. package/dist/pages/system/docs/ba/BaViewerPage.d.ts.map +1 -1
  857. package/dist/pages/system/docs/ba/components/CadrageTab.d.ts +3 -2
  858. package/dist/pages/system/docs/ba/components/CadrageTab.d.ts.map +1 -1
  859. package/dist/pages/system/docs/ba/components/SpecificationTab.d.ts +4 -3
  860. package/dist/pages/system/docs/ba/components/SpecificationTab.d.ts.map +1 -1
  861. package/dist/pages/system/docs/ba/components/SyntheseTab.d.ts +3 -2
  862. package/dist/pages/system/docs/ba/components/SyntheseTab.d.ts.map +1 -1
  863. package/dist/pages/system/docs/developer/CrossSchemaFkPage.d.ts +2 -1
  864. package/dist/pages/system/docs/developer/CrossSchemaFkPage.d.ts.map +1 -1
  865. package/dist/pages/system/docs/developer/DatabasePage.d.ts +2 -1
  866. package/dist/pages/system/docs/developer/DatabasePage.d.ts.map +1 -1
  867. package/dist/pages/system/docs/developer/DeveloperIndexPage.d.ts +2 -1
  868. package/dist/pages/system/docs/developer/DeveloperIndexPage.d.ts.map +1 -1
  869. package/dist/pages/system/docs/developer/DualDbContextPage.d.ts +2 -1
  870. package/dist/pages/system/docs/developer/DualDbContextPage.d.ts.map +1 -1
  871. package/dist/pages/system/docs/developer/InfrastructurePage.d.ts +2 -1
  872. package/dist/pages/system/docs/developer/InfrastructurePage.d.ts.map +1 -1
  873. package/dist/pages/system/docs/developer/InstallationPage.d.ts +2 -1
  874. package/dist/pages/system/docs/developer/InstallationPage.d.ts.map +1 -1
  875. package/dist/pages/system/docs/developer/TeamsIntegrationPage.d.ts +2 -1
  876. package/dist/pages/system/docs/developer/TeamsIntegrationPage.d.ts.map +1 -1
  877. package/dist/pages/system/docs/developer/tenants/MultiTenantModePage.d.ts +2 -1
  878. package/dist/pages/system/docs/developer/tenants/MultiTenantModePage.d.ts.map +1 -1
  879. package/dist/pages/system/docs/developer/tenants/TenantB2CPage.d.ts +2 -1
  880. package/dist/pages/system/docs/developer/tenants/TenantB2CPage.d.ts.map +1 -1
  881. package/dist/pages/system/docs/developer/tenants/TenantIndexPage.d.ts +2 -1
  882. package/dist/pages/system/docs/developer/tenants/TenantIndexPage.d.ts.map +1 -1
  883. package/dist/pages/system/docs/developer/testing/SecurityTestingPage.d.ts +2 -1
  884. package/dist/pages/system/docs/developer/testing/SecurityTestingPage.d.ts.map +1 -1
  885. package/dist/pages/system/docs/user/AiDocPage.d.ts +2 -1
  886. package/dist/pages/system/docs/user/AiDocPage.d.ts.map +1 -1
  887. package/dist/pages/system/docs/user/ArchitecturePage.d.ts +2 -1
  888. package/dist/pages/system/docs/user/ArchitecturePage.d.ts.map +1 -1
  889. package/dist/pages/system/docs/user/ModulesPage.d.ts +2 -1
  890. package/dist/pages/system/docs/user/ModulesPage.d.ts.map +1 -1
  891. package/dist/pages/system/docs/user/SettingsDocPage.d.ts +2 -1
  892. package/dist/pages/system/docs/user/SettingsDocPage.d.ts.map +1 -1
  893. package/dist/pages/system/docs/user/SlaDocPage.d.ts +2 -1
  894. package/dist/pages/system/docs/user/SlaDocPage.d.ts.map +1 -1
  895. package/dist/pages/system/docs/user/SupportDashboardDocPage.d.ts +2 -1
  896. package/dist/pages/system/docs/user/SupportDashboardDocPage.d.ts.map +1 -1
  897. package/dist/pages/system/docs/user/SupportEscalationDocPage.d.ts +2 -1
  898. package/dist/pages/system/docs/user/SupportEscalationDocPage.d.ts.map +1 -1
  899. package/dist/pages/system/docs/user/SupportIndexPage.d.ts +2 -1
  900. package/dist/pages/system/docs/user/SupportIndexPage.d.ts.map +1 -1
  901. package/dist/pages/system/docs/user/SupportMyTicketsDocPage.d.ts +2 -1
  902. package/dist/pages/system/docs/user/SupportMyTicketsDocPage.d.ts.map +1 -1
  903. package/dist/pages/system/docs/user/SupportTemplatesDocPage.d.ts +2 -1
  904. package/dist/pages/system/docs/user/SupportTemplatesDocPage.d.ts.map +1 -1
  905. package/dist/pages/system/docs/user/SupportTicketsDocPage.d.ts +2 -1
  906. package/dist/pages/system/docs/user/SupportTicketsDocPage.d.ts.map +1 -1
  907. package/dist/pages/system/docs/user/ThemeDocPage.d.ts +2 -1
  908. package/dist/pages/system/docs/user/ThemeDocPage.d.ts.map +1 -1
  909. package/dist/pages/system/docs/user/UserIndexPage.d.ts +2 -1
  910. package/dist/pages/system/docs/user/UserIndexPage.d.ts.map +1 -1
  911. package/dist/provider/SmartStackProvider.d.ts +4 -3
  912. package/dist/provider/SmartStackProvider.d.ts.map +1 -1
  913. package/dist/services/api/adminApi/applications.d.ts +4 -1
  914. package/dist/services/api/adminApi/applications.d.ts.map +1 -1
  915. package/dist/services/api/adminApi/dashboard.d.ts +4 -1
  916. package/dist/services/api/adminApi/dashboard.d.ts.map +1 -1
  917. package/dist/services/api/adminApi/externalApps.d.ts +7 -2
  918. package/dist/services/api/adminApi/externalApps.d.ts.map +1 -1
  919. package/dist/services/api/adminApi/index.d.ts.map +1 -1
  920. package/dist/services/api/adminApi/roles.d.ts +7 -2
  921. package/dist/services/api/adminApi/roles.d.ts.map +1 -1
  922. package/dist/services/api/adminApi/settings.d.ts +7 -2
  923. package/dist/services/api/adminApi/settings.d.ts.map +1 -1
  924. package/dist/services/api/adminApi/tenants.d.ts +13 -4
  925. package/dist/services/api/adminApi/tenants.d.ts.map +1 -1
  926. package/dist/services/api/adminApi/users.d.ts +3 -1
  927. package/dist/services/api/adminApi/users.d.ts.map +1 -1
  928. package/dist/services/api/groupsApi.d.ts +4 -1
  929. package/dist/services/api/groupsApi.d.ts.map +1 -1
  930. package/dist/services/api/referencesApi.d.ts +4 -1
  931. package/dist/services/api/referencesApi.d.ts.map +1 -1
  932. package/dist/services/logging/logService.d.ts.map +1 -1
  933. package/dist/smartstack.cjs +1 -1
  934. package/dist/smartstack.js +1 -1
  935. package/dist/styles.css +1 -1
  936. package/dist/utils/deviceDetection.d.ts.map +1 -1
  937. package/dist/utils/renderLucideIcon.d.ts +2 -1
  938. package/dist/utils/renderLucideIcon.d.ts.map +1 -1
  939. package/dist/utils/tenantUrl.d.ts.map +1 -1
  940. package/package.json +1 -1
  941. package/dist/AuthCallbackPage-Bv2Cyn80.cjs.map +0 -1
  942. package/dist/AuthCallbackPage-Cu74zAX1.js.map +0 -1
  943. package/dist/BaIndexPage-BhdOX87v.cjs +0 -2
  944. package/dist/BaIndexPage-BhdOX87v.cjs.map +0 -1
  945. package/dist/BaIndexPage-Dkp_Eixx.js.map +0 -1
  946. package/dist/BaViewerPage-DxD0eZm-.js.map +0 -1
  947. package/dist/BaViewerPage-SYgjCF7x.cjs +0 -2
  948. package/dist/BaViewerPage-SYgjCF7x.cjs.map +0 -1
  949. package/dist/ConfirmEmailPage-BTp8J0pw.js.map +0 -1
  950. package/dist/ConfirmEmailPage-su3Fvl0e.cjs.map +0 -1
  951. package/dist/DatabasePage-CRq_-Yo2.cjs +0 -2
  952. package/dist/DatabasePage-CRq_-Yo2.cjs.map +0 -1
  953. package/dist/DatabasePage-DFIK8cSM.js.map +0 -1
  954. package/dist/DocRenderer-B-1NdDfC.cjs +0 -2
  955. package/dist/DocRenderer-B-1NdDfC.cjs.map +0 -1
  956. package/dist/DocRenderer-CcEn1iaa.js.map +0 -1
  957. package/dist/DualDbContextPage--Qk-qEgD.cjs.map +0 -1
  958. package/dist/DualDbContextPage-BujD_coN.js.map +0 -1
  959. package/dist/ForceChangePasswordPage-ClENqzCH.js.map +0 -1
  960. package/dist/ForceChangePasswordPage-kEFsb5Aq.cjs.map +0 -1
  961. package/dist/ForgotPasswordPage--Wl0Vxbv.cjs.map +0 -1
  962. package/dist/ForgotPasswordPage-BEgvV5f-.js.map +0 -1
  963. package/dist/OnboardingWizardPage-Bx1UlTbr.js.map +0 -1
  964. package/dist/OnboardingWizardPage-C7vendrq.cjs.map +0 -1
  965. package/dist/RegisterPage-BzV0sCTe.js.map +0 -1
  966. package/dist/RegisterPage-DKr8quRk.cjs.map +0 -1
  967. package/dist/ResetPasswordPage-DphmJrcJ.js.map +0 -1
  968. package/dist/ResetPasswordPage-x4do1o-j.cjs.map +0 -1
  969. package/dist/SupportDashboardDocPage-CLotzEwA.js.map +0 -1
  970. package/dist/SupportDashboardDocPage-DpgGq5Mm.cjs.map +0 -1
  971. package/dist/SupportEscalationDocPage-B-_ChfdN.js.map +0 -1
  972. package/dist/SupportEscalationDocPage-WXkAQr8k.cjs.map +0 -1
  973. package/dist/SupportMyTicketsDocPage-DeRUdAIi.js.map +0 -1
  974. package/dist/SupportMyTicketsDocPage-jE1UMaIY.cjs.map +0 -1
  975. package/dist/SupportTemplatesDocPage-C8ZLzFJc.js.map +0 -1
  976. package/dist/SupportTemplatesDocPage-ajO-cHmK.cjs.map +0 -1
  977. package/dist/SupportTicketsDocPage-C_ybDTjC.cjs.map +0 -1
  978. package/dist/SupportTicketsDocPage-DQhHfa6J.js.map +0 -1
  979. package/dist/index-0Jhdcj59.js.map +0 -1
  980. package/dist/index-ASxPhrgZ.cjs.map +0 -1
  981. package/dist/index-B2rKKVDN.js.map +0 -1
  982. package/dist/index-BP5i2CQo.cjs +0 -2
  983. package/dist/index-BP5i2CQo.cjs.map +0 -1
  984. package/dist/index-BYhFG50Z.cjs.map +0 -1
  985. package/dist/index-BcO3pBlL.js.map +0 -1
  986. package/dist/index-BlHDI4zj.js.map +0 -1
  987. package/dist/index-Blfc9wKG.js.map +0 -1
  988. package/dist/index-BnWMDCRU.cjs.map +0 -1
  989. package/dist/index-By0u9UFY.js.map +0 -1
  990. package/dist/index-C40Dlolq.js.map +0 -1
  991. package/dist/index-C54HbULX.cjs.map +0 -1
  992. package/dist/index-C6C5XmVj.cjs +0 -48
  993. package/dist/index-C6C5XmVj.cjs.map +0 -1
  994. package/dist/index-C9BaizLE.cjs +0 -2
  995. package/dist/index-C9BaizLE.cjs.map +0 -1
  996. package/dist/index-CBOLnJkG.cjs.map +0 -1
  997. package/dist/index-CI1DJrFE.js.map +0 -1
  998. package/dist/index-CU66n-zU.js.map +0 -1
  999. package/dist/index-CUISVUMx.js.map +0 -1
  1000. package/dist/index-CnmIX2MY.js.map +0 -1
  1001. package/dist/index-CtcdHE_9.cjs +0 -2
  1002. package/dist/index-CtcdHE_9.cjs.map +0 -1
  1003. package/dist/index-Cv7iWoG8.js.map +0 -1
  1004. package/dist/index-D4u23zHI.js.map +0 -1
  1005. package/dist/index-D8xuGyjU.js.map +0 -1
  1006. package/dist/index-DKK07NF1.cjs +0 -2
  1007. package/dist/index-DKK07NF1.cjs.map +0 -1
  1008. package/dist/index-DmuVa7Ye.cjs.map +0 -1
  1009. package/dist/index-Du4fQfix.cjs.map +0 -1
  1010. package/dist/index-DwATtWun.js.map +0 -1
  1011. package/dist/index-Dxau-XnQ.cjs.map +0 -1
  1012. package/dist/index-Txfokhn3.cjs.map +0 -1
  1013. package/dist/index-ZVUUUZmv.cjs +0 -2
  1014. package/dist/index-ZVUUUZmv.cjs.map +0 -1
  1015. package/dist/index-eAHjmtzn.cjs.map +0 -1
  1016. package/dist/index-jpSTOjXU.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ArchitecturePage-Cn_XCDAo.cjs","sources":["../src/pages/system/docs/user/ArchitecturePage.tsx"],"sourcesContent":["import { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Layers, ArrowRight, AppWindow, Blocks, FolderTree, FileCode, ChevronRight } from 'lucide-react';\r\n\r\ninterface LevelInfo {\r\n level: number;\r\n name: string;\r\n icon: React.ElementType;\r\n description: string;\r\n example: string;\r\n routeExample: string;\r\n permissionExample: string;\r\n color: string;\r\n}\r\n\r\nconst levels: LevelInfo[] = [\r\n {\r\n level: 1,\r\n name: 'Application',\r\n icon: AppWindow,\r\n description: 'Le niveau le plus haut de la hierarchie. Regroupe des fonctionnalites liees. Chaque application a ses propres roles et permissions.',\r\n example: 'Administration, Support, MySpace',\r\n routeExample: '/administration/...',\r\n permissionExample: 'administration.*',\r\n color: 'from-blue-500 to-cyan-500',\r\n },\r\n {\r\n level: 2,\r\n name: 'Module',\r\n icon: Blocks,\r\n description: 'Unite fonctionnelle avec une page UI dediee. Represente une fonctionnalite specifique accessible via le menu.',\r\n example: 'Users, Roles, Permissions, Profile',\r\n routeExample: '/administration/users',\r\n permissionExample: 'administration.users.read',\r\n color: 'from-green-500 to-emerald-500',\r\n },\r\n {\r\n level: 3,\r\n name: 'Section',\r\n icon: FolderTree,\r\n description: 'Sous-division d\\'un module pour organiser des fonctionnalites complexes. Reserve pour les extensions futures.',\r\n example: 'Settings, Advanced, Reports',\r\n routeExample: '/administration/users/settings',\r\n permissionExample: 'administration.users.settings.*',\r\n color: 'from-yellow-500 to-orange-500',\r\n },\r\n {\r\n level: 4,\r\n name: 'Resource',\r\n icon: FileCode,\r\n description: 'Element individuel au sein d\\'une section. Niveau le plus granulaire pour les permissions.',\r\n example: 'Export, Import, Bulk-actions',\r\n routeExample: '/administration/users/settings/export',\r\n permissionExample: 'administration.users.settings.export.execute',\r\n color: 'from-red-500 to-rose-500',\r\n },\r\n];\r\n\r\nconst currentStructure = [\r\n {\r\n name: 'Administration',\r\n code: 'administration',\r\n zone: 'Platform',\r\n modules: ['users', 'permissions', 'applications'],\r\n color: 'from-purple-500 to-pink-500',\r\n },\r\n {\r\n name: 'Support',\r\n code: 'support',\r\n zone: 'Platform',\r\n modules: ['dashboard', 'tickets', 'my-tickets', 'admin'],\r\n color: 'from-blue-500 to-cyan-500',\r\n },\r\n {\r\n name: 'MySpace',\r\n code: 'myspace',\r\n zone: 'Personal',\r\n modules: ['profile', 'preferences'],\r\n color: 'from-green-500 to-emerald-500',\r\n },\r\n {\r\n name: 'Support (User)',\r\n code: 'support',\r\n zone: 'Platform',\r\n modules: ['my-tickets', 'my-tickets/create'],\r\n color: 'from-orange-500 to-amber-500',\r\n },\r\n];\r\n\r\nexport function ArchitecturePage() {\r\n const { t } = useTranslation('docs');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Breadcrumb */}\r\n <div className=\"flex items-center gap-2 text-sm text-[var(--text-secondary)]\">\r\n <Link to=\"/system/docs\" className=\"hover:text-[var(--color-primary-600)]\">{t('breadcrumb.documentation')}</Link>\r\n <span>/</span>\r\n <Link to=\"/system/docs/user\" className=\"hover:text-[var(--color-primary-600)]\">{t('breadcrumb.user')}</Link>\r\n <span>/</span>\r\n <span>{t('breadcrumb.architecture')}</span>\r\n </div>\r\n\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <Layers className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('architecture.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('architecture.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Key Concept */}\r\n <div className=\"card p-6 bg-gradient-to-r from-[var(--color-primary-600)]/10 to-[var(--accent-bg)]\">\r\n <h2 className=\"text-lg font-semibold mb-3\">Concept Cle</h2>\r\n <p className=\"text-[var(--text-secondary)]\">\r\n Les routes de l'application sont <strong>alignees</strong> avec les permissions.\r\n Cela signifie que le chemin d'une page correspond directement au chemin de permission requis.\r\n </p>\r\n <div className=\"mt-4 p-4 bg-[var(--bg-primary)] rounded-lg font-mono text-sm\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-[var(--text-tertiary)]\">Route:</span>\r\n <span>/administration/users</span>\r\n </div>\r\n <div className=\"flex items-center gap-2 mt-2\">\r\n <span className=\"text-[var(--text-tertiary)]\">Permission:</span>\r\n <span>administration.users.read</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* 4 Levels */}\r\n <section className=\"space-y-6\">\r\n <h2 className=\"text-xl font-semibold\">Les 4 Niveaux</h2>\r\n\r\n {levels.map((level, index) => (\r\n <div key={level.level} className=\"card p-6\">\r\n <div className=\"flex items-start gap-4\">\r\n <div className={`w-14 h-14 rounded-xl bg-gradient-to-br ${level.color} flex items-center justify-center flex-shrink-0`}>\r\n <level.icon className=\"w-7 h-7 text-white\" />\r\n </div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex items-center gap-3 mb-2\">\r\n <span className=\"text-sm font-medium text-[var(--text-tertiary)]\">Niveau {level.level}</span>\r\n <h3 className=\"text-xl font-semibold\">{level.name}</h3>\r\n </div>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">{level.description}</p>\r\n\r\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 text-sm\">\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Exemples</div>\r\n <div className=\"font-medium\">{level.example}</div>\r\n </div>\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Route</div>\r\n <code className=\"font-mono text-xs\">{level.routeExample}</code>\r\n </div>\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Permission</div>\r\n <code className=\"font-mono text-xs\">{level.permissionExample}</code>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {index < levels.length - 1 && (\r\n <div className=\"flex justify-center mt-4\">\r\n <ChevronRight className=\"w-6 h-6 text-[var(--text-tertiary)] rotate-90\" />\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n </section>\r\n\r\n {/* Current Structure */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-6\">Structure Actuelle</h2>\r\n\r\n <div className=\"space-y-4\">\r\n {currentStructure.map((app) => (\r\n <div key={app.code} className=\"p-4 bg-blue-500/10 rounded-lg border-l-4 border-blue-500\">\r\n <div className=\"flex items-center gap-2 mb-2\">\r\n <AppWindow className=\"w-5 h-5 text-blue-500\" />\r\n <span className=\"font-semibold text-blue-600 dark:text-blue-400\">{app.name}</span>\r\n <code className=\"text-xs bg-[var(--bg-secondary)] px-2 py-0.5 rounded font-mono\">\r\n /{app.code}\r\n </code>\r\n <span className=\"text-xs px-2 py-0.5 rounded bg-[var(--bg-secondary)] text-[var(--text-tertiary)]\">\r\n {app.zone}\r\n </span>\r\n </div>\r\n\r\n <div className=\"ml-4 flex flex-wrap gap-2\">\r\n {app.modules.map((mod) => (\r\n <div key={mod} className=\"flex items-center gap-1 px-2 py-1 bg-[var(--bg-primary)] rounded text-sm\">\r\n <Blocks className=\"w-3 h-3\" />\r\n <span>{mod}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Permissions Wildcards */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-4\">Permissions Wildcards</h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n Les permissions utilisent le caractere <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">*</code> pour\r\n accorder des acces etendus.\r\n </p>\r\n\r\n <div className=\"space-y-2\">\r\n {[\r\n { pattern: 'administration.*', desc: 'Acces complet a l\\'application Administration' },\r\n { pattern: 'administration.users.*', desc: 'Toutes les actions sur le module Users' },\r\n { pattern: 'administration.users.read', desc: 'Uniquement lecture du module Users' },\r\n ].map((perm) => (\r\n <div key={perm.pattern} className=\"flex items-center gap-4 p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <code className=\"font-mono text-sm text-[var(--color-primary-600)] min-w-[280px]\">{perm.pattern}</code>\r\n <span className=\"text-sm text-[var(--text-secondary)]\">{perm.desc}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Actions */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-4\">Actions Disponibles</h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n Chaque module peut avoir les actions suivantes:\r\n </p>\r\n\r\n <div className=\"grid grid-cols-2 md:grid-cols-3 gap-4\">\r\n {[\r\n { action: 'read', desc: 'Consulter les donnees' },\r\n { action: 'create', desc: 'Creer de nouveaux elements' },\r\n { action: 'update', desc: 'Modifier les elements existants' },\r\n { action: 'delete', desc: 'Supprimer des elements' },\r\n { action: 'assign', desc: 'Assigner des roles/permissions' },\r\n { action: 'execute', desc: 'Executer des actions/workflows' },\r\n ].map((a) => (\r\n <div key={a.action} className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <code className=\"font-mono text-sm text-[var(--color-primary-600)]\">{a.action}</code>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">{a.desc}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Navigation */}\r\n <div className=\"flex justify-between pt-6 border-t border-[var(--border-color)]\">\r\n <Link\r\n to=\"/system/docs/user\"\r\n className=\"flex items-center gap-2 text-[var(--text-secondary)] hover:text-[var(--color-primary-600)]\"\r\n >\r\n <ArrowRight className=\"w-4 h-4 rotate-180\" />\r\n Retour\r\n </Link>\r\n <Link\r\n to=\"/system/docs/user/modules\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n Modules\r\n <ArrowRight className=\"w-4 h-4\" />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["levels","AppWindow","Blocks","FolderTree","FileCode","currentStructure","ArchitecturePage","useTranslation","jsxs","jsx","Link","Layers","level","index","ChevronRight","app","mod","perm","a","ArrowRight"],"mappings":"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"}
1
+ {"version":3,"file":"ArchitecturePage-Cn_XCDAo.cjs","sources":["../src/pages/system/docs/user/ArchitecturePage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Layers, ArrowRight, AppWindow, Blocks, FolderTree, FileCode, ChevronRight } from 'lucide-react';\r\n\r\ninterface LevelInfo {\r\n level: number;\r\n name: string;\r\n icon: React.ElementType;\r\n description: string;\r\n example: string;\r\n routeExample: string;\r\n permissionExample: string;\r\n color: string;\r\n}\r\n\r\nconst levels: LevelInfo[] = [\r\n {\r\n level: 1,\r\n name: 'Application',\r\n icon: AppWindow,\r\n description: 'Le niveau le plus haut de la hierarchie. Regroupe des fonctionnalites liees. Chaque application a ses propres roles et permissions.',\r\n example: 'Administration, Support, MySpace',\r\n routeExample: '/administration/...',\r\n permissionExample: 'administration.*',\r\n color: 'from-blue-500 to-cyan-500',\r\n },\r\n {\r\n level: 2,\r\n name: 'Module',\r\n icon: Blocks,\r\n description: 'Unite fonctionnelle avec une page UI dediee. Represente une fonctionnalite specifique accessible via le menu.',\r\n example: 'Users, Roles, Permissions, Profile',\r\n routeExample: '/administration/users',\r\n permissionExample: 'administration.users.read',\r\n color: 'from-green-500 to-emerald-500',\r\n },\r\n {\r\n level: 3,\r\n name: 'Section',\r\n icon: FolderTree,\r\n description: 'Sous-division d\\'un module pour organiser des fonctionnalites complexes. Reserve pour les extensions futures.',\r\n example: 'Settings, Advanced, Reports',\r\n routeExample: '/administration/users/settings',\r\n permissionExample: 'administration.users.settings.*',\r\n color: 'from-yellow-500 to-orange-500',\r\n },\r\n {\r\n level: 4,\r\n name: 'Resource',\r\n icon: FileCode,\r\n description: 'Element individuel au sein d\\'une section. Niveau le plus granulaire pour les permissions.',\r\n example: 'Export, Import, Bulk-actions',\r\n routeExample: '/administration/users/settings/export',\r\n permissionExample: 'administration.users.settings.export.execute',\r\n color: 'from-red-500 to-rose-500',\r\n },\r\n];\r\n\r\nconst currentStructure = [\r\n {\r\n name: 'Administration',\r\n code: 'administration',\r\n zone: 'Platform',\r\n modules: ['users', 'permissions', 'applications'],\r\n color: 'from-purple-500 to-pink-500',\r\n },\r\n {\r\n name: 'Support',\r\n code: 'support',\r\n zone: 'Platform',\r\n modules: ['dashboard', 'tickets', 'my-tickets', 'admin'],\r\n color: 'from-blue-500 to-cyan-500',\r\n },\r\n {\r\n name: 'MySpace',\r\n code: 'myspace',\r\n zone: 'Personal',\r\n modules: ['profile', 'preferences'],\r\n color: 'from-green-500 to-emerald-500',\r\n },\r\n {\r\n name: 'Support (User)',\r\n code: 'support',\r\n zone: 'Platform',\r\n modules: ['my-tickets', 'my-tickets/create'],\r\n color: 'from-orange-500 to-amber-500',\r\n },\r\n];\r\n\r\nexport function ArchitecturePage(): ReactElement {\r\n const { t } = useTranslation('docs');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Breadcrumb */}\r\n <div className=\"flex items-center gap-2 text-sm text-[var(--text-secondary)]\">\r\n <Link to=\"/system/docs\" className=\"hover:text-[var(--color-primary-600)]\">{t('breadcrumb.documentation')}</Link>\r\n <span>/</span>\r\n <Link to=\"/system/docs/user\" className=\"hover:text-[var(--color-primary-600)]\">{t('breadcrumb.user')}</Link>\r\n <span>/</span>\r\n <span>{t('breadcrumb.architecture')}</span>\r\n </div>\r\n\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <Layers className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('architecture.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('architecture.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Key Concept */}\r\n <div className=\"card p-6 bg-gradient-to-r from-[var(--color-primary-600)]/10 to-[var(--accent-bg)]\">\r\n <h2 className=\"text-lg font-semibold mb-3\">Concept Cle</h2>\r\n <p className=\"text-[var(--text-secondary)]\">\r\n Les routes de l'application sont <strong>alignees</strong> avec les permissions.\r\n Cela signifie que le chemin d'une page correspond directement au chemin de permission requis.\r\n </p>\r\n <div className=\"mt-4 p-4 bg-[var(--bg-primary)] rounded-lg font-mono text-sm\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-[var(--text-tertiary)]\">Route:</span>\r\n <span>/administration/users</span>\r\n </div>\r\n <div className=\"flex items-center gap-2 mt-2\">\r\n <span className=\"text-[var(--text-tertiary)]\">Permission:</span>\r\n <span>administration.users.read</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* 4 Levels */}\r\n <section className=\"space-y-6\">\r\n <h2 className=\"text-xl font-semibold\">Les 4 Niveaux</h2>\r\n\r\n {levels.map((level, index) => (\r\n <div key={level.level} className=\"card p-6\">\r\n <div className=\"flex items-start gap-4\">\r\n <div className={`w-14 h-14 rounded-xl bg-gradient-to-br ${level.color} flex items-center justify-center flex-shrink-0`}>\r\n <level.icon className=\"w-7 h-7 text-white\" />\r\n </div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex items-center gap-3 mb-2\">\r\n <span className=\"text-sm font-medium text-[var(--text-tertiary)]\">Niveau {level.level}</span>\r\n <h3 className=\"text-xl font-semibold\">{level.name}</h3>\r\n </div>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">{level.description}</p>\r\n\r\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 text-sm\">\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Exemples</div>\r\n <div className=\"font-medium\">{level.example}</div>\r\n </div>\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Route</div>\r\n <code className=\"font-mono text-xs\">{level.routeExample}</code>\r\n </div>\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Permission</div>\r\n <code className=\"font-mono text-xs\">{level.permissionExample}</code>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {index < levels.length - 1 && (\r\n <div className=\"flex justify-center mt-4\">\r\n <ChevronRight className=\"w-6 h-6 text-[var(--text-tertiary)] rotate-90\" />\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n </section>\r\n\r\n {/* Current Structure */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-6\">Structure Actuelle</h2>\r\n\r\n <div className=\"space-y-4\">\r\n {currentStructure.map((app) => (\r\n <div key={app.code} className=\"p-4 bg-blue-500/10 rounded-lg border-l-4 border-blue-500\">\r\n <div className=\"flex items-center gap-2 mb-2\">\r\n <AppWindow className=\"w-5 h-5 text-blue-500\" />\r\n <span className=\"font-semibold text-blue-600 dark:text-blue-400\">{app.name}</span>\r\n <code className=\"text-xs bg-[var(--bg-secondary)] px-2 py-0.5 rounded font-mono\">\r\n /{app.code}\r\n </code>\r\n <span className=\"text-xs px-2 py-0.5 rounded bg-[var(--bg-secondary)] text-[var(--text-tertiary)]\">\r\n {app.zone}\r\n </span>\r\n </div>\r\n\r\n <div className=\"ml-4 flex flex-wrap gap-2\">\r\n {app.modules.map((mod) => (\r\n <div key={mod} className=\"flex items-center gap-1 px-2 py-1 bg-[var(--bg-primary)] rounded text-sm\">\r\n <Blocks className=\"w-3 h-3\" />\r\n <span>{mod}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Permissions Wildcards */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-4\">Permissions Wildcards</h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n Les permissions utilisent le caractere <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">*</code> pour\r\n accorder des acces etendus.\r\n </p>\r\n\r\n <div className=\"space-y-2\">\r\n {[\r\n { pattern: 'administration.*', desc: 'Acces complet a l\\'application Administration' },\r\n { pattern: 'administration.users.*', desc: 'Toutes les actions sur le module Users' },\r\n { pattern: 'administration.users.read', desc: 'Uniquement lecture du module Users' },\r\n ].map((perm) => (\r\n <div key={perm.pattern} className=\"flex items-center gap-4 p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <code className=\"font-mono text-sm text-[var(--color-primary-600)] min-w-[280px]\">{perm.pattern}</code>\r\n <span className=\"text-sm text-[var(--text-secondary)]\">{perm.desc}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Actions */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-4\">Actions Disponibles</h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n Chaque module peut avoir les actions suivantes:\r\n </p>\r\n\r\n <div className=\"grid grid-cols-2 md:grid-cols-3 gap-4\">\r\n {[\r\n { action: 'read', desc: 'Consulter les donnees' },\r\n { action: 'create', desc: 'Creer de nouveaux elements' },\r\n { action: 'update', desc: 'Modifier les elements existants' },\r\n { action: 'delete', desc: 'Supprimer des elements' },\r\n { action: 'assign', desc: 'Assigner des roles/permissions' },\r\n { action: 'execute', desc: 'Executer des actions/workflows' },\r\n ].map((a) => (\r\n <div key={a.action} className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <code className=\"font-mono text-sm text-[var(--color-primary-600)]\">{a.action}</code>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">{a.desc}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Navigation */}\r\n <div className=\"flex justify-between pt-6 border-t border-[var(--border-color)]\">\r\n <Link\r\n to=\"/system/docs/user\"\r\n className=\"flex items-center gap-2 text-[var(--text-secondary)] hover:text-[var(--color-primary-600)]\"\r\n >\r\n <ArrowRight className=\"w-4 h-4 rotate-180\" />\r\n Retour\r\n </Link>\r\n <Link\r\n to=\"/system/docs/user/modules\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n Modules\r\n <ArrowRight className=\"w-4 h-4\" />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["levels","AppWindow","Blocks","FolderTree","FileCode","currentStructure","ArchitecturePage","useTranslation","jsxs","jsx","Link","Layers","level","index","ChevronRight","app","mod","perm","a","ArrowRight"],"mappings":"wMAgBMA,EAAsB,CAC1B,CACE,MAAO,EACP,KAAM,cACN,KAAMC,EAAAA,UACN,YAAa,sIACb,QAAS,mCACT,aAAc,sBACd,kBAAmB,mBACnB,MAAO,2BAAA,EAET,CACE,MAAO,EACP,KAAM,SACN,KAAMC,EAAAA,OACN,YAAa,gHACb,QAAS,qCACT,aAAc,wBACd,kBAAmB,4BACnB,MAAO,+BAAA,EAET,CACE,MAAO,EACP,KAAM,UACN,KAAMC,EAAAA,WACN,YAAa,+GACb,QAAS,8BACT,aAAc,iCACd,kBAAmB,kCACnB,MAAO,+BAAA,EAET,CACE,MAAO,EACP,KAAM,WACN,KAAMC,EAAAA,SACN,YAAa,4FACb,QAAS,+BACT,aAAc,wCACd,kBAAmB,+CACnB,MAAO,0BAAA,CAEX,EAEMC,EAAmB,CACvB,CACE,KAAM,iBACN,KAAM,iBACN,KAAM,WACN,QAAS,CAAC,QAAS,cAAe,cAAc,EAChD,MAAO,6BAAA,EAET,CACE,KAAM,UACN,KAAM,UACN,KAAM,WACN,QAAS,CAAC,YAAa,UAAW,aAAc,OAAO,EACvD,MAAO,2BAAA,EAET,CACE,KAAM,UACN,KAAM,UACN,KAAM,WACN,QAAS,CAAC,UAAW,aAAa,EAClC,MAAO,+BAAA,EAET,CACE,KAAM,iBACN,KAAM,UACN,KAAM,WACN,QAAS,CAAC,aAAc,mBAAmB,EAC3C,MAAO,8BAAA,CAEX,EAEO,SAASC,GAAiC,CAC/C,KAAM,CAAE,CAAA,EAAMC,EAAAA,eAAe,MAAM,EAEnC,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,YAEb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,+DACb,SAAA,CAAAC,EAAAA,IAACC,EAAAA,MAAK,GAAG,eAAe,UAAU,wCAAyC,SAAA,EAAE,0BAA0B,EAAE,EACzGD,EAAAA,IAAC,QAAK,SAAA,GAAA,CAAC,EACPA,EAAAA,IAACC,EAAAA,MAAK,GAAG,oBAAoB,UAAU,wCAAyC,SAAA,EAAE,iBAAiB,EAAE,EACrGD,EAAAA,IAAC,QAAK,SAAA,GAAA,CAAC,EACPA,EAAAA,IAAC,OAAA,CAAM,SAAA,EAAE,yBAAyB,CAAA,CAAE,CAAA,EACtC,SAGC,MAAA,CACC,SAAA,CAAAD,EAAAA,KAAC,KAAA,CAAG,UAAU,kDACZ,SAAA,CAAAC,EAAAA,IAACE,EAAAA,OAAA,CAAO,UAAU,yCAAA,CAA0C,EAC3D,EAAE,oBAAoB,CAAA,EACzB,QACC,IAAA,CAAE,UAAU,uCACV,SAAA,EAAE,uBAAuB,CAAA,CAC5B,CAAA,EACF,EAGAH,EAAAA,KAAC,MAAA,CAAI,UAAU,qFACb,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,6BAA6B,SAAA,cAAW,EACtDD,EAAAA,KAAC,IAAA,CAAE,UAAU,+BAA+B,SAAA,CAAA,oCACTC,EAAAA,IAAC,UAAO,SAAA,UAAA,CAAQ,EAAS,sHAAA,EAE5D,EACAD,EAAAA,KAAC,MAAA,CAAI,UAAU,+DACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,8BAA8B,SAAA,SAAM,EACpDA,EAAAA,IAAC,QAAK,SAAA,uBAAA,CAAqB,CAAA,EAC7B,EACAD,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACb,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,8BAA8B,SAAA,cAAW,EACzDA,EAAAA,IAAC,QAAK,SAAA,2BAAA,CAAyB,CAAA,CAAA,CACjC,CAAA,CAAA,CACF,CAAA,EACF,EAGAD,EAAAA,KAAC,UAAA,CAAQ,UAAU,YACjB,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,wBAAwB,SAAA,gBAAa,EAElDT,EAAO,IAAI,CAACY,EAAOC,IAClBL,OAAC,MAAA,CAAsB,UAAU,WAC/B,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,yBACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAW,0CAA0CG,EAAM,KAAK,kDACnE,SAAAH,EAAAA,IAACG,EAAM,KAAN,CAAW,UAAU,oBAAA,CAAqB,EAC7C,EACAJ,EAAAA,KAAC,MAAA,CAAI,UAAU,SACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACb,SAAA,CAAAA,EAAAA,KAAC,OAAA,CAAK,UAAU,kDAAkD,SAAA,CAAA,UAAQI,EAAM,KAAA,EAAM,EACtFH,EAAAA,IAAC,KAAA,CAAG,UAAU,wBAAyB,WAAM,IAAA,CAAK,CAAA,EACpD,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,oCAAqC,WAAM,YAAY,EAEpED,EAAAA,KAAC,MAAA,CAAI,UAAU,gDACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,mCAAmC,SAAA,WAAQ,EAC1DA,EAAAA,IAAC,MAAA,CAAI,UAAU,cAAe,WAAM,OAAA,CAAQ,CAAA,EAC9C,EACAD,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,mCAAmC,SAAA,QAAK,EACvDA,EAAAA,IAAC,OAAA,CAAK,UAAU,oBAAqB,WAAM,YAAA,CAAa,CAAA,EAC1D,EACAD,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,mCAAmC,SAAA,aAAU,EAC5DA,EAAAA,IAAC,OAAA,CAAK,UAAU,oBAAqB,WAAM,iBAAA,CAAkB,CAAA,CAAA,CAC/D,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,EAECI,EAAQb,EAAO,OAAS,GACvBS,EAAAA,IAAC,MAAA,CAAI,UAAU,2BACb,SAAAA,EAAAA,IAACK,EAAAA,aAAA,CAAa,UAAU,+CAAA,CAAgD,CAAA,CAC1E,CAAA,CAAA,EAhCMF,EAAM,KAkChB,CACD,CAAA,EACH,EAGAJ,EAAAA,KAAC,UAAA,CAAQ,UAAU,WACjB,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,6BAA6B,SAAA,qBAAkB,EAE7DA,EAAAA,IAAC,MAAA,CAAI,UAAU,YACZ,SAAAJ,EAAiB,IAAKU,GACrBP,EAAAA,KAAC,MAAA,CAAmB,UAAU,2DAC5B,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACb,SAAA,CAAAC,EAAAA,IAACR,EAAAA,UAAA,CAAU,UAAU,uBAAA,CAAwB,EAC7CQ,EAAAA,IAAC,OAAA,CAAK,UAAU,iDAAkD,WAAI,KAAK,EAC3ED,EAAAA,KAAC,OAAA,CAAK,UAAU,iEAAiE,SAAA,CAAA,IAC7EO,EAAI,IAAA,EACR,EACAN,EAAAA,IAAC,OAAA,CAAK,UAAU,mFACb,WAAI,IAAA,CACP,CAAA,EACF,EAEAA,EAAAA,IAAC,MAAA,CAAI,UAAU,4BACZ,SAAAM,EAAI,QAAQ,IAAKC,GAChBR,EAAAA,KAAC,MAAA,CAAc,UAAU,2EACvB,SAAA,CAAAC,EAAAA,IAACP,EAAAA,OAAA,CAAO,UAAU,SAAA,CAAU,EAC5BO,EAAAA,IAAC,QAAM,SAAAO,CAAA,CAAI,CAAA,CAAA,EAFHA,CAGV,CACD,CAAA,CACH,CAAA,GAnBQD,EAAI,IAoBd,CACD,CAAA,CACH,CAAA,EACF,EAGAP,EAAAA,KAAC,UAAA,CAAQ,UAAU,WACjB,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,6BAA6B,SAAA,wBAAqB,EAChED,EAAAA,KAAC,IAAA,CAAE,UAAU,oCAAoC,SAAA,CAAA,0CACRC,EAAAA,IAAC,OAAA,CAAK,UAAU,wCAAwC,SAAA,IAAC,EAAO,mCAAA,EAEzG,EAEAA,EAAAA,IAAC,MAAA,CAAI,UAAU,YACZ,SAAA,CACC,CAAE,QAAS,mBAAoB,KAAM,8CAAA,EACrC,CAAE,QAAS,yBAA0B,KAAM,wCAAA,EAC3C,CAAE,QAAS,4BAA6B,KAAM,oCAAA,CAAqC,EACnF,IAAKQ,GACLT,EAAAA,KAAC,MAAA,CAAuB,UAAU,kEAChC,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,kEAAmE,SAAAQ,EAAK,QAAQ,EAChGR,EAAAA,IAAC,OAAA,CAAK,UAAU,uCAAwC,WAAK,IAAA,CAAK,CAAA,GAF1DQ,EAAK,OAGf,CACD,CAAA,CACH,CAAA,EACF,EAGAT,EAAAA,KAAC,UAAA,CAAQ,UAAU,WACjB,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,6BAA6B,SAAA,sBAAmB,EAC9DA,EAAAA,IAAC,IAAA,CAAE,UAAU,oCAAoC,SAAA,kDAEjD,EAEAA,EAAAA,IAAC,MAAA,CAAI,UAAU,wCACZ,SAAA,CACC,CAAE,OAAQ,OAAQ,KAAM,uBAAA,EACxB,CAAE,OAAQ,SAAU,KAAM,4BAAA,EAC1B,CAAE,OAAQ,SAAU,KAAM,iCAAA,EAC1B,CAAE,OAAQ,SAAU,KAAM,wBAAA,EAC1B,CAAE,OAAQ,SAAU,KAAM,gCAAA,EAC1B,CAAE,OAAQ,UAAW,KAAM,gCAAA,CAAiC,EAC5D,IAAKS,GACLV,EAAAA,KAAC,MAAA,CAAmB,UAAU,0CAC5B,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,oDAAqD,SAAAS,EAAE,OAAO,EAC9ET,EAAAA,IAAC,IAAA,CAAE,UAAU,4CAA6C,WAAE,IAAA,CAAK,CAAA,GAFzDS,EAAE,MAGZ,CACD,CAAA,CACH,CAAA,EACF,EAGAV,EAAAA,KAAC,MAAA,CAAI,UAAU,kEACb,SAAA,CAAAA,EAAAA,KAACE,EAAAA,KAAA,CACC,GAAG,oBACH,UAAU,6FAEV,SAAA,CAAAD,EAAAA,IAACU,EAAAA,WAAA,CAAW,UAAU,oBAAA,CAAqB,EAAE,QAAA,CAAA,CAAA,EAG/CX,EAAAA,KAACE,EAAAA,KAAA,CACC,GAAG,4BACH,UAAU,0EACX,SAAA,CAAA,UAECD,EAAAA,IAACU,EAAAA,WAAA,CAAW,UAAU,SAAA,CAAU,CAAA,CAAA,CAAA,CAClC,CAAA,CACF,CAAA,EACF,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArchitecturePage-DNwzHKk0.js","sources":["../src/pages/system/docs/user/ArchitecturePage.tsx"],"sourcesContent":["import { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Layers, ArrowRight, AppWindow, Blocks, FolderTree, FileCode, ChevronRight } from 'lucide-react';\r\n\r\ninterface LevelInfo {\r\n level: number;\r\n name: string;\r\n icon: React.ElementType;\r\n description: string;\r\n example: string;\r\n routeExample: string;\r\n permissionExample: string;\r\n color: string;\r\n}\r\n\r\nconst levels: LevelInfo[] = [\r\n {\r\n level: 1,\r\n name: 'Application',\r\n icon: AppWindow,\r\n description: 'Le niveau le plus haut de la hierarchie. Regroupe des fonctionnalites liees. Chaque application a ses propres roles et permissions.',\r\n example: 'Administration, Support, MySpace',\r\n routeExample: '/administration/...',\r\n permissionExample: 'administration.*',\r\n color: 'from-blue-500 to-cyan-500',\r\n },\r\n {\r\n level: 2,\r\n name: 'Module',\r\n icon: Blocks,\r\n description: 'Unite fonctionnelle avec une page UI dediee. Represente une fonctionnalite specifique accessible via le menu.',\r\n example: 'Users, Roles, Permissions, Profile',\r\n routeExample: '/administration/users',\r\n permissionExample: 'administration.users.read',\r\n color: 'from-green-500 to-emerald-500',\r\n },\r\n {\r\n level: 3,\r\n name: 'Section',\r\n icon: FolderTree,\r\n description: 'Sous-division d\\'un module pour organiser des fonctionnalites complexes. Reserve pour les extensions futures.',\r\n example: 'Settings, Advanced, Reports',\r\n routeExample: '/administration/users/settings',\r\n permissionExample: 'administration.users.settings.*',\r\n color: 'from-yellow-500 to-orange-500',\r\n },\r\n {\r\n level: 4,\r\n name: 'Resource',\r\n icon: FileCode,\r\n description: 'Element individuel au sein d\\'une section. Niveau le plus granulaire pour les permissions.',\r\n example: 'Export, Import, Bulk-actions',\r\n routeExample: '/administration/users/settings/export',\r\n permissionExample: 'administration.users.settings.export.execute',\r\n color: 'from-red-500 to-rose-500',\r\n },\r\n];\r\n\r\nconst currentStructure = [\r\n {\r\n name: 'Administration',\r\n code: 'administration',\r\n zone: 'Platform',\r\n modules: ['users', 'permissions', 'applications'],\r\n color: 'from-purple-500 to-pink-500',\r\n },\r\n {\r\n name: 'Support',\r\n code: 'support',\r\n zone: 'Platform',\r\n modules: ['dashboard', 'tickets', 'my-tickets', 'admin'],\r\n color: 'from-blue-500 to-cyan-500',\r\n },\r\n {\r\n name: 'MySpace',\r\n code: 'myspace',\r\n zone: 'Personal',\r\n modules: ['profile', 'preferences'],\r\n color: 'from-green-500 to-emerald-500',\r\n },\r\n {\r\n name: 'Support (User)',\r\n code: 'support',\r\n zone: 'Platform',\r\n modules: ['my-tickets', 'my-tickets/create'],\r\n color: 'from-orange-500 to-amber-500',\r\n },\r\n];\r\n\r\nexport function ArchitecturePage() {\r\n const { t } = useTranslation('docs');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Breadcrumb */}\r\n <div className=\"flex items-center gap-2 text-sm text-[var(--text-secondary)]\">\r\n <Link to=\"/system/docs\" className=\"hover:text-[var(--color-primary-600)]\">{t('breadcrumb.documentation')}</Link>\r\n <span>/</span>\r\n <Link to=\"/system/docs/user\" className=\"hover:text-[var(--color-primary-600)]\">{t('breadcrumb.user')}</Link>\r\n <span>/</span>\r\n <span>{t('breadcrumb.architecture')}</span>\r\n </div>\r\n\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <Layers className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('architecture.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('architecture.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Key Concept */}\r\n <div className=\"card p-6 bg-gradient-to-r from-[var(--color-primary-600)]/10 to-[var(--accent-bg)]\">\r\n <h2 className=\"text-lg font-semibold mb-3\">Concept Cle</h2>\r\n <p className=\"text-[var(--text-secondary)]\">\r\n Les routes de l'application sont <strong>alignees</strong> avec les permissions.\r\n Cela signifie que le chemin d'une page correspond directement au chemin de permission requis.\r\n </p>\r\n <div className=\"mt-4 p-4 bg-[var(--bg-primary)] rounded-lg font-mono text-sm\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-[var(--text-tertiary)]\">Route:</span>\r\n <span>/administration/users</span>\r\n </div>\r\n <div className=\"flex items-center gap-2 mt-2\">\r\n <span className=\"text-[var(--text-tertiary)]\">Permission:</span>\r\n <span>administration.users.read</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* 4 Levels */}\r\n <section className=\"space-y-6\">\r\n <h2 className=\"text-xl font-semibold\">Les 4 Niveaux</h2>\r\n\r\n {levels.map((level, index) => (\r\n <div key={level.level} className=\"card p-6\">\r\n <div className=\"flex items-start gap-4\">\r\n <div className={`w-14 h-14 rounded-xl bg-gradient-to-br ${level.color} flex items-center justify-center flex-shrink-0`}>\r\n <level.icon className=\"w-7 h-7 text-white\" />\r\n </div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex items-center gap-3 mb-2\">\r\n <span className=\"text-sm font-medium text-[var(--text-tertiary)]\">Niveau {level.level}</span>\r\n <h3 className=\"text-xl font-semibold\">{level.name}</h3>\r\n </div>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">{level.description}</p>\r\n\r\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 text-sm\">\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Exemples</div>\r\n <div className=\"font-medium\">{level.example}</div>\r\n </div>\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Route</div>\r\n <code className=\"font-mono text-xs\">{level.routeExample}</code>\r\n </div>\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Permission</div>\r\n <code className=\"font-mono text-xs\">{level.permissionExample}</code>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {index < levels.length - 1 && (\r\n <div className=\"flex justify-center mt-4\">\r\n <ChevronRight className=\"w-6 h-6 text-[var(--text-tertiary)] rotate-90\" />\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n </section>\r\n\r\n {/* Current Structure */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-6\">Structure Actuelle</h2>\r\n\r\n <div className=\"space-y-4\">\r\n {currentStructure.map((app) => (\r\n <div key={app.code} className=\"p-4 bg-blue-500/10 rounded-lg border-l-4 border-blue-500\">\r\n <div className=\"flex items-center gap-2 mb-2\">\r\n <AppWindow className=\"w-5 h-5 text-blue-500\" />\r\n <span className=\"font-semibold text-blue-600 dark:text-blue-400\">{app.name}</span>\r\n <code className=\"text-xs bg-[var(--bg-secondary)] px-2 py-0.5 rounded font-mono\">\r\n /{app.code}\r\n </code>\r\n <span className=\"text-xs px-2 py-0.5 rounded bg-[var(--bg-secondary)] text-[var(--text-tertiary)]\">\r\n {app.zone}\r\n </span>\r\n </div>\r\n\r\n <div className=\"ml-4 flex flex-wrap gap-2\">\r\n {app.modules.map((mod) => (\r\n <div key={mod} className=\"flex items-center gap-1 px-2 py-1 bg-[var(--bg-primary)] rounded text-sm\">\r\n <Blocks className=\"w-3 h-3\" />\r\n <span>{mod}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Permissions Wildcards */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-4\">Permissions Wildcards</h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n Les permissions utilisent le caractere <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">*</code> pour\r\n accorder des acces etendus.\r\n </p>\r\n\r\n <div className=\"space-y-2\">\r\n {[\r\n { pattern: 'administration.*', desc: 'Acces complet a l\\'application Administration' },\r\n { pattern: 'administration.users.*', desc: 'Toutes les actions sur le module Users' },\r\n { pattern: 'administration.users.read', desc: 'Uniquement lecture du module Users' },\r\n ].map((perm) => (\r\n <div key={perm.pattern} className=\"flex items-center gap-4 p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <code className=\"font-mono text-sm text-[var(--color-primary-600)] min-w-[280px]\">{perm.pattern}</code>\r\n <span className=\"text-sm text-[var(--text-secondary)]\">{perm.desc}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Actions */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-4\">Actions Disponibles</h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n Chaque module peut avoir les actions suivantes:\r\n </p>\r\n\r\n <div className=\"grid grid-cols-2 md:grid-cols-3 gap-4\">\r\n {[\r\n { action: 'read', desc: 'Consulter les donnees' },\r\n { action: 'create', desc: 'Creer de nouveaux elements' },\r\n { action: 'update', desc: 'Modifier les elements existants' },\r\n { action: 'delete', desc: 'Supprimer des elements' },\r\n { action: 'assign', desc: 'Assigner des roles/permissions' },\r\n { action: 'execute', desc: 'Executer des actions/workflows' },\r\n ].map((a) => (\r\n <div key={a.action} className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <code className=\"font-mono text-sm text-[var(--color-primary-600)]\">{a.action}</code>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">{a.desc}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Navigation */}\r\n <div className=\"flex justify-between pt-6 border-t border-[var(--border-color)]\">\r\n <Link\r\n to=\"/system/docs/user\"\r\n className=\"flex items-center gap-2 text-[var(--text-secondary)] hover:text-[var(--color-primary-600)]\"\r\n >\r\n <ArrowRight className=\"w-4 h-4 rotate-180\" />\r\n Retour\r\n </Link>\r\n <Link\r\n to=\"/system/docs/user/modules\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n Modules\r\n <ArrowRight className=\"w-4 h-4\" />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["levels","AppWindow","Blocks","FolderTree","FileCode","currentStructure","ArchitecturePage","useTranslation","jsxs","jsx","Link","Layers","level","index","ChevronRight","app","mod","perm","a","ArrowRight"],"mappings":";;;;AAeA,MAAMA,IAAsB;AAAA,EAC1B;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAMC;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,OAAO;AAAA,EAAA;AAEX,GAEMC,IAAmB;AAAA,EACvB;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,SAAS,eAAe,cAAc;AAAA,IAChD,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,aAAa,WAAW,cAAc,OAAO;AAAA,IACvD,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,WAAW,aAAa;AAAA,IAClC,OAAO;AAAA,EAAA;AAAA,EAET;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,cAAc,mBAAmB;AAAA,IAC3C,OAAO;AAAA,EAAA;AAEX;AAEO,SAASC,IAAmB;AACjC,QAAM,EAAE,EAAA,IAAMC,EAAe,MAAM;AAEnC,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,aAEb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,gEACb,UAAA;AAAA,MAAA,gBAAAC,EAACC,KAAK,IAAG,gBAAe,WAAU,yCAAyC,UAAA,EAAE,0BAA0B,GAAE;AAAA,MACzG,gBAAAD,EAAC,UAAK,UAAA,IAAA,CAAC;AAAA,MACP,gBAAAA,EAACC,KAAK,IAAG,qBAAoB,WAAU,yCAAyC,UAAA,EAAE,iBAAiB,GAAE;AAAA,MACrG,gBAAAD,EAAC,UAAK,UAAA,IAAA,CAAC;AAAA,MACP,gBAAAA,EAAC,QAAA,EAAM,UAAA,EAAE,yBAAyB,EAAA,CAAE;AAAA,IAAA,GACtC;AAAA,sBAGC,OAAA,EACC,UAAA;AAAA,MAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,mDACZ,UAAA;AAAA,QAAA,gBAAAC,EAACE,GAAA,EAAO,WAAU,0CAAA,CAA0C;AAAA,QAC3D,EAAE,oBAAoB;AAAA,MAAA,GACzB;AAAA,wBACC,KAAA,EAAE,WAAU,wCACV,UAAA,EAAE,uBAAuB,EAAA,CAC5B;AAAA,IAAA,GACF;AAAA,IAGA,gBAAAH,EAAC,OAAA,EAAI,WAAU,sFACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,MAAA,EAAG,WAAU,8BAA6B,UAAA,eAAW;AAAA,MACtD,gBAAAD,EAAC,KAAA,EAAE,WAAU,gCAA+B,UAAA;AAAA,QAAA;AAAA,QACT,gBAAAC,EAAC,YAAO,UAAA,WAAA,CAAQ;AAAA,QAAS;AAAA,MAAA,GAE5D;AAAA,MACA,gBAAAD,EAAC,OAAA,EAAI,WAAU,gEACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,UAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,+BAA8B,UAAA,UAAM;AAAA,UACpD,gBAAAA,EAAC,UAAK,UAAA,wBAAA,CAAqB;AAAA,QAAA,GAC7B;AAAA,QACA,gBAAAD,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,UAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,+BAA8B,UAAA,eAAW;AAAA,UACzD,gBAAAA,EAAC,UAAK,UAAA,4BAAA,CAAyB;AAAA,QAAA,EAAA,CACjC;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGA,gBAAAD,EAAC,WAAA,EAAQ,WAAU,aACjB,UAAA;AAAA,MAAA,gBAAAC,EAAC,MAAA,EAAG,WAAU,yBAAwB,UAAA,iBAAa;AAAA,MAElDT,EAAO,IAAI,CAACY,GAAOC,MAClB,gBAAAL,EAAC,OAAA,EAAsB,WAAU,YAC/B,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,0BACb,UAAA;AAAA,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAW,0CAA0CG,EAAM,KAAK,mDACnE,UAAA,gBAAAH,EAACG,EAAM,MAAN,EAAW,WAAU,qBAAA,CAAqB,GAC7C;AAAA,UACA,gBAAAJ,EAAC,OAAA,EAAI,WAAU,UACb,UAAA;AAAA,YAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,cAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,mDAAkD,UAAA;AAAA,gBAAA;AAAA,gBAAQI,EAAM;AAAA,cAAA,GAAM;AAAA,cACtF,gBAAAH,EAAC,MAAA,EAAG,WAAU,yBAAyB,YAAM,KAAA,CAAK;AAAA,YAAA,GACpD;AAAA,YACA,gBAAAA,EAAC,KAAA,EAAE,WAAU,qCAAqC,YAAM,aAAY;AAAA,YAEpE,gBAAAD,EAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,cAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,gBAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oCAAmC,UAAA,YAAQ;AAAA,gBAC1D,gBAAAA,EAAC,OAAA,EAAI,WAAU,eAAe,YAAM,QAAA,CAAQ;AAAA,cAAA,GAC9C;AAAA,cACA,gBAAAD,EAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,gBAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oCAAmC,UAAA,SAAK;AAAA,gBACvD,gBAAAA,EAAC,QAAA,EAAK,WAAU,qBAAqB,YAAM,aAAA,CAAa;AAAA,cAAA,GAC1D;AAAA,cACA,gBAAAD,EAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,gBAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oCAAmC,UAAA,cAAU;AAAA,gBAC5D,gBAAAA,EAAC,QAAA,EAAK,WAAU,qBAAqB,YAAM,kBAAA,CAAkB;AAAA,cAAA,EAAA,CAC/D;AAAA,YAAA,EAAA,CACF;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,GACF;AAAA,QAECI,IAAQb,EAAO,SAAS,KACvB,gBAAAS,EAAC,OAAA,EAAI,WAAU,4BACb,UAAA,gBAAAA,EAACK,GAAA,EAAa,WAAU,gDAAA,CAAgD,EAAA,CAC1E;AAAA,MAAA,EAAA,GAhCMF,EAAM,KAkChB,CACD;AAAA,IAAA,GACH;AAAA,IAGA,gBAAAJ,EAAC,WAAA,EAAQ,WAAU,YACjB,UAAA;AAAA,MAAA,gBAAAC,EAAC,MAAA,EAAG,WAAU,8BAA6B,UAAA,sBAAkB;AAAA,MAE7D,gBAAAA,EAAC,OAAA,EAAI,WAAU,aACZ,UAAAJ,EAAiB,IAAI,CAACU,MACrB,gBAAAP,EAAC,OAAA,EAAmB,WAAU,4DAC5B,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,UAAA,gBAAAC,EAACR,GAAA,EAAU,WAAU,wBAAA,CAAwB;AAAA,UAC7C,gBAAAQ,EAAC,QAAA,EAAK,WAAU,kDAAkD,YAAI,MAAK;AAAA,UAC3E,gBAAAD,EAAC,QAAA,EAAK,WAAU,kEAAiE,UAAA;AAAA,YAAA;AAAA,YAC7EO,EAAI;AAAA,UAAA,GACR;AAAA,UACA,gBAAAN,EAAC,QAAA,EAAK,WAAU,oFACb,YAAI,KAAA,CACP;AAAA,QAAA,GACF;AAAA,QAEA,gBAAAA,EAAC,OAAA,EAAI,WAAU,6BACZ,UAAAM,EAAI,QAAQ,IAAI,CAACC,MAChB,gBAAAR,EAAC,OAAA,EAAc,WAAU,4EACvB,UAAA;AAAA,UAAA,gBAAAC,EAACP,GAAA,EAAO,WAAU,UAAA,CAAU;AAAA,UAC5B,gBAAAO,EAAC,UAAM,UAAAO,EAAA,CAAI;AAAA,QAAA,EAAA,GAFHA,CAGV,CACD,EAAA,CACH;AAAA,MAAA,KAnBQD,EAAI,IAoBd,CACD,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAGA,gBAAAP,EAAC,WAAA,EAAQ,WAAU,YACjB,UAAA;AAAA,MAAA,gBAAAC,EAAC,MAAA,EAAG,WAAU,8BAA6B,UAAA,yBAAqB;AAAA,MAChE,gBAAAD,EAAC,KAAA,EAAE,WAAU,qCAAoC,UAAA;AAAA,QAAA;AAAA,QACR,gBAAAC,EAAC,QAAA,EAAK,WAAU,yCAAwC,UAAA,KAAC;AAAA,QAAO;AAAA,MAAA,GAEzG;AAAA,MAEA,gBAAAA,EAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,QACC,EAAE,SAAS,oBAAoB,MAAM,+CAAA;AAAA,QACrC,EAAE,SAAS,0BAA0B,MAAM,yCAAA;AAAA,QAC3C,EAAE,SAAS,6BAA6B,MAAM,qCAAA;AAAA,MAAqC,EACnF,IAAI,CAACQ,MACL,gBAAAT,EAAC,OAAA,EAAuB,WAAU,mEAChC,UAAA;AAAA,QAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,mEAAmE,UAAAQ,EAAK,SAAQ;AAAA,QAChG,gBAAAR,EAAC,QAAA,EAAK,WAAU,wCAAwC,YAAK,KAAA,CAAK;AAAA,MAAA,KAF1DQ,EAAK,OAGf,CACD,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAGA,gBAAAT,EAAC,WAAA,EAAQ,WAAU,YACjB,UAAA;AAAA,MAAA,gBAAAC,EAAC,MAAA,EAAG,WAAU,8BAA6B,UAAA,uBAAmB;AAAA,MAC9D,gBAAAA,EAAC,KAAA,EAAE,WAAU,qCAAoC,UAAA,mDAEjD;AAAA,MAEA,gBAAAA,EAAC,OAAA,EAAI,WAAU,yCACZ,UAAA;AAAA,QACC,EAAE,QAAQ,QAAQ,MAAM,wBAAA;AAAA,QACxB,EAAE,QAAQ,UAAU,MAAM,6BAAA;AAAA,QAC1B,EAAE,QAAQ,UAAU,MAAM,kCAAA;AAAA,QAC1B,EAAE,QAAQ,UAAU,MAAM,yBAAA;AAAA,QAC1B,EAAE,QAAQ,UAAU,MAAM,iCAAA;AAAA,QAC1B,EAAE,QAAQ,WAAW,MAAM,iCAAA;AAAA,MAAiC,EAC5D,IAAI,CAACS,MACL,gBAAAV,EAAC,OAAA,EAAmB,WAAU,2CAC5B,UAAA;AAAA,QAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,qDAAqD,UAAAS,EAAE,QAAO;AAAA,QAC9E,gBAAAT,EAAC,KAAA,EAAE,WAAU,6CAA6C,YAAE,KAAA,CAAK;AAAA,MAAA,KAFzDS,EAAE,MAGZ,CACD,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAGA,gBAAAV,EAAC,OAAA,EAAI,WAAU,mEACb,UAAA;AAAA,MAAA,gBAAAA;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAD,EAACU,GAAA,EAAW,WAAU,qBAAA,CAAqB;AAAA,YAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAG/C,gBAAAX;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,WAAU;AAAA,UACX,UAAA;AAAA,YAAA;AAAA,YAEC,gBAAAD,EAACU,GAAA,EAAW,WAAU,UAAA,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAClC,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"ArchitecturePage-DNwzHKk0.js","sources":["../src/pages/system/docs/user/ArchitecturePage.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Layers, ArrowRight, AppWindow, Blocks, FolderTree, FileCode, ChevronRight } from 'lucide-react';\r\n\r\ninterface LevelInfo {\r\n level: number;\r\n name: string;\r\n icon: React.ElementType;\r\n description: string;\r\n example: string;\r\n routeExample: string;\r\n permissionExample: string;\r\n color: string;\r\n}\r\n\r\nconst levels: LevelInfo[] = [\r\n {\r\n level: 1,\r\n name: 'Application',\r\n icon: AppWindow,\r\n description: 'Le niveau le plus haut de la hierarchie. Regroupe des fonctionnalites liees. Chaque application a ses propres roles et permissions.',\r\n example: 'Administration, Support, MySpace',\r\n routeExample: '/administration/...',\r\n permissionExample: 'administration.*',\r\n color: 'from-blue-500 to-cyan-500',\r\n },\r\n {\r\n level: 2,\r\n name: 'Module',\r\n icon: Blocks,\r\n description: 'Unite fonctionnelle avec une page UI dediee. Represente une fonctionnalite specifique accessible via le menu.',\r\n example: 'Users, Roles, Permissions, Profile',\r\n routeExample: '/administration/users',\r\n permissionExample: 'administration.users.read',\r\n color: 'from-green-500 to-emerald-500',\r\n },\r\n {\r\n level: 3,\r\n name: 'Section',\r\n icon: FolderTree,\r\n description: 'Sous-division d\\'un module pour organiser des fonctionnalites complexes. Reserve pour les extensions futures.',\r\n example: 'Settings, Advanced, Reports',\r\n routeExample: '/administration/users/settings',\r\n permissionExample: 'administration.users.settings.*',\r\n color: 'from-yellow-500 to-orange-500',\r\n },\r\n {\r\n level: 4,\r\n name: 'Resource',\r\n icon: FileCode,\r\n description: 'Element individuel au sein d\\'une section. Niveau le plus granulaire pour les permissions.',\r\n example: 'Export, Import, Bulk-actions',\r\n routeExample: '/administration/users/settings/export',\r\n permissionExample: 'administration.users.settings.export.execute',\r\n color: 'from-red-500 to-rose-500',\r\n },\r\n];\r\n\r\nconst currentStructure = [\r\n {\r\n name: 'Administration',\r\n code: 'administration',\r\n zone: 'Platform',\r\n modules: ['users', 'permissions', 'applications'],\r\n color: 'from-purple-500 to-pink-500',\r\n },\r\n {\r\n name: 'Support',\r\n code: 'support',\r\n zone: 'Platform',\r\n modules: ['dashboard', 'tickets', 'my-tickets', 'admin'],\r\n color: 'from-blue-500 to-cyan-500',\r\n },\r\n {\r\n name: 'MySpace',\r\n code: 'myspace',\r\n zone: 'Personal',\r\n modules: ['profile', 'preferences'],\r\n color: 'from-green-500 to-emerald-500',\r\n },\r\n {\r\n name: 'Support (User)',\r\n code: 'support',\r\n zone: 'Platform',\r\n modules: ['my-tickets', 'my-tickets/create'],\r\n color: 'from-orange-500 to-amber-500',\r\n },\r\n];\r\n\r\nexport function ArchitecturePage(): ReactElement {\r\n const { t } = useTranslation('docs');\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Breadcrumb */}\r\n <div className=\"flex items-center gap-2 text-sm text-[var(--text-secondary)]\">\r\n <Link to=\"/system/docs\" className=\"hover:text-[var(--color-primary-600)]\">{t('breadcrumb.documentation')}</Link>\r\n <span>/</span>\r\n <Link to=\"/system/docs/user\" className=\"hover:text-[var(--color-primary-600)]\">{t('breadcrumb.user')}</Link>\r\n <span>/</span>\r\n <span>{t('breadcrumb.architecture')}</span>\r\n </div>\r\n\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <Layers className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('architecture.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('architecture.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Key Concept */}\r\n <div className=\"card p-6 bg-gradient-to-r from-[var(--color-primary-600)]/10 to-[var(--accent-bg)]\">\r\n <h2 className=\"text-lg font-semibold mb-3\">Concept Cle</h2>\r\n <p className=\"text-[var(--text-secondary)]\">\r\n Les routes de l'application sont <strong>alignees</strong> avec les permissions.\r\n Cela signifie que le chemin d'une page correspond directement au chemin de permission requis.\r\n </p>\r\n <div className=\"mt-4 p-4 bg-[var(--bg-primary)] rounded-lg font-mono text-sm\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-[var(--text-tertiary)]\">Route:</span>\r\n <span>/administration/users</span>\r\n </div>\r\n <div className=\"flex items-center gap-2 mt-2\">\r\n <span className=\"text-[var(--text-tertiary)]\">Permission:</span>\r\n <span>administration.users.read</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* 4 Levels */}\r\n <section className=\"space-y-6\">\r\n <h2 className=\"text-xl font-semibold\">Les 4 Niveaux</h2>\r\n\r\n {levels.map((level, index) => (\r\n <div key={level.level} className=\"card p-6\">\r\n <div className=\"flex items-start gap-4\">\r\n <div className={`w-14 h-14 rounded-xl bg-gradient-to-br ${level.color} flex items-center justify-center flex-shrink-0`}>\r\n <level.icon className=\"w-7 h-7 text-white\" />\r\n </div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex items-center gap-3 mb-2\">\r\n <span className=\"text-sm font-medium text-[var(--text-tertiary)]\">Niveau {level.level}</span>\r\n <h3 className=\"text-xl font-semibold\">{level.name}</h3>\r\n </div>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">{level.description}</p>\r\n\r\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 text-sm\">\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Exemples</div>\r\n <div className=\"font-medium\">{level.example}</div>\r\n </div>\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Route</div>\r\n <code className=\"font-mono text-xs\">{level.routeExample}</code>\r\n </div>\r\n <div className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <div className=\"text-[var(--text-tertiary)] mb-1\">Permission</div>\r\n <code className=\"font-mono text-xs\">{level.permissionExample}</code>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {index < levels.length - 1 && (\r\n <div className=\"flex justify-center mt-4\">\r\n <ChevronRight className=\"w-6 h-6 text-[var(--text-tertiary)] rotate-90\" />\r\n </div>\r\n )}\r\n </div>\r\n ))}\r\n </section>\r\n\r\n {/* Current Structure */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-6\">Structure Actuelle</h2>\r\n\r\n <div className=\"space-y-4\">\r\n {currentStructure.map((app) => (\r\n <div key={app.code} className=\"p-4 bg-blue-500/10 rounded-lg border-l-4 border-blue-500\">\r\n <div className=\"flex items-center gap-2 mb-2\">\r\n <AppWindow className=\"w-5 h-5 text-blue-500\" />\r\n <span className=\"font-semibold text-blue-600 dark:text-blue-400\">{app.name}</span>\r\n <code className=\"text-xs bg-[var(--bg-secondary)] px-2 py-0.5 rounded font-mono\">\r\n /{app.code}\r\n </code>\r\n <span className=\"text-xs px-2 py-0.5 rounded bg-[var(--bg-secondary)] text-[var(--text-tertiary)]\">\r\n {app.zone}\r\n </span>\r\n </div>\r\n\r\n <div className=\"ml-4 flex flex-wrap gap-2\">\r\n {app.modules.map((mod) => (\r\n <div key={mod} className=\"flex items-center gap-1 px-2 py-1 bg-[var(--bg-primary)] rounded text-sm\">\r\n <Blocks className=\"w-3 h-3\" />\r\n <span>{mod}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Permissions Wildcards */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-4\">Permissions Wildcards</h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n Les permissions utilisent le caractere <code className=\"px-1 bg-[var(--bg-secondary)] rounded\">*</code> pour\r\n accorder des acces etendus.\r\n </p>\r\n\r\n <div className=\"space-y-2\">\r\n {[\r\n { pattern: 'administration.*', desc: 'Acces complet a l\\'application Administration' },\r\n { pattern: 'administration.users.*', desc: 'Toutes les actions sur le module Users' },\r\n { pattern: 'administration.users.read', desc: 'Uniquement lecture du module Users' },\r\n ].map((perm) => (\r\n <div key={perm.pattern} className=\"flex items-center gap-4 p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <code className=\"font-mono text-sm text-[var(--color-primary-600)] min-w-[280px]\">{perm.pattern}</code>\r\n <span className=\"text-sm text-[var(--text-secondary)]\">{perm.desc}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Actions */}\r\n <section className=\"card p-6\">\r\n <h2 className=\"text-xl font-semibold mb-4\">Actions Disponibles</h2>\r\n <p className=\"text-[var(--text-secondary)] mb-4\">\r\n Chaque module peut avoir les actions suivantes:\r\n </p>\r\n\r\n <div className=\"grid grid-cols-2 md:grid-cols-3 gap-4\">\r\n {[\r\n { action: 'read', desc: 'Consulter les donnees' },\r\n { action: 'create', desc: 'Creer de nouveaux elements' },\r\n { action: 'update', desc: 'Modifier les elements existants' },\r\n { action: 'delete', desc: 'Supprimer des elements' },\r\n { action: 'assign', desc: 'Assigner des roles/permissions' },\r\n { action: 'execute', desc: 'Executer des actions/workflows' },\r\n ].map((a) => (\r\n <div key={a.action} className=\"p-3 bg-[var(--bg-secondary)] rounded-lg\">\r\n <code className=\"font-mono text-sm text-[var(--color-primary-600)]\">{a.action}</code>\r\n <p className=\"text-sm text-[var(--text-secondary)] mt-1\">{a.desc}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </section>\r\n\r\n {/* Navigation */}\r\n <div className=\"flex justify-between pt-6 border-t border-[var(--border-color)]\">\r\n <Link\r\n to=\"/system/docs/user\"\r\n className=\"flex items-center gap-2 text-[var(--text-secondary)] hover:text-[var(--color-primary-600)]\"\r\n >\r\n <ArrowRight className=\"w-4 h-4 rotate-180\" />\r\n Retour\r\n </Link>\r\n <Link\r\n to=\"/system/docs/user/modules\"\r\n className=\"flex items-center gap-2 text-[var(--color-primary-600)] hover:underline\"\r\n >\r\n Modules\r\n <ArrowRight className=\"w-4 h-4\" />\r\n </Link>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["levels","AppWindow","Blocks","FolderTree","FileCode","currentStructure","ArchitecturePage","useTranslation","jsxs","jsx","Link","Layers","level","index","ChevronRight","app","mod","perm","a","ArrowRight"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as o } from "react/jsx-runtime";
2
2
  import { useState as m, useEffect as p } from "react";
3
3
  import { useSearchParams as x, useNavigate as b } from "react-router-dom";
4
4
  import { Loader2 as v, CheckCircle as y, XCircle as N, AlertCircle as w } from "lucide-react";
5
- import { g as k, d as S, u as C } from "./index-0Jhdcj59.js";
5
+ import { g as k, d as S, u as C } from "./index-Kn_ynW2m.js";
6
6
  const I = {
7
7
  auth_failed: "L'authentification a échoué. Veuillez réessayer.",
8
8
  no_email: "Impossible de récupérer votre adresse email depuis le fournisseur.",
@@ -109,4 +109,4 @@ function V() {
109
109
  export {
110
110
  V as AuthCallbackPage
111
111
  };
112
- //# sourceMappingURL=AuthCallbackPage-Cu74zAX1.js.map
112
+ //# sourceMappingURL=AuthCallbackPage-CoJi12d0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthCallbackPage-CoJi12d0.js","sources":["../src/pages/auth/AuthCallbackPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { useSearchParams, useNavigate } from 'react-router-dom';\r\nimport { Loader2, CheckCircle, XCircle, AlertCircle } from 'lucide-react';\r\nimport { userApi } from '@/services/api/userApi';\r\nimport { getClientIpAddress } from '@/utils/ipDetection';\r\nimport { detectDeviceType } from '@/utils/deviceDetection';\r\n\r\ntype CallbackStatus = 'processing' | 'success' | 'error';\r\n\r\nconst errorMessages: Record<string, string> = {\r\n auth_failed: 'L\\'authentification a échoué. Veuillez réessayer.',\r\n no_email: 'Impossible de récupérer votre adresse email depuis le fournisseur.',\r\n account_disabled: 'Votre compte est désactivé. Contactez l\\'administrateur.',\r\n account_locked: 'Votre compte est verrouillé. Contactez l\\'administrateur.',\r\n internal_error: 'Une erreur interne est survenue. Veuillez réessayer.',\r\n};\r\n\r\nexport function AuthCallbackPage(): ReactElement {\r\n const [searchParams] = useSearchParams();\r\n const navigate = useNavigate();\r\n const [status, setStatus] = useState<CallbackStatus>('processing');\r\n const [errorMessage, setErrorMessage] = useState<string>('');\r\n\r\n useEffect(() => {\r\n const token = searchParams.get('token');\r\n const refreshToken = searchParams.get('refreshToken');\r\n const error = searchParams.get('error');\r\n\r\n if (error) {\r\n setStatus('error');\r\n setErrorMessage(errorMessages[error] || 'Une erreur est survenue lors de l\\'authentification.');\r\n return;\r\n }\r\n\r\n if (token && refreshToken) {\r\n handleSuccessfulAuth(token, refreshToken);\r\n } else {\r\n setStatus('error');\r\n setErrorMessage('Paramètres d\\'authentification manquants.');\r\n }\r\n }, [searchParams]);\r\n\r\n const handleSuccessfulAuth = async (token: string, refreshToken: string) => {\r\n try {\r\n localStorage.setItem('token', token);\r\n localStorage.setItem('refreshToken', refreshToken);\r\n\r\n // Update session with client-side IP address (retrieved via external service like ipify.org)\r\n // This is important for OAuth flows where the server can't reliably get the client IP\r\n try {\r\n const clientIp = await getClientIpAddress();\r\n const deviceType = detectDeviceType();\r\n\r\n if (clientIp || deviceType) {\r\n await fetch(`/api/auth/update-session-client-info`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`,\r\n },\r\n body: JSON.stringify({ clientIp, deviceType }),\r\n });\r\n }\r\n } catch (ipError) {\r\n // Non-critical - continue with the flow even if IP update fails\r\n }\r\n\r\n // Fetch user info\r\n const userResponse = await fetch(`/api/auth/me`, {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n\r\n if (!userResponse.ok) {\r\n throw new Error('Failed to fetch user info');\r\n }\r\n\r\n const user = await userResponse.json();\r\n localStorage.setItem('user', JSON.stringify(user));\r\n\r\n // Check if user needs onboarding\r\n try {\r\n const onboardingResponse = await fetch(`/api/onboarding/status`, {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n\r\n if (onboardingResponse.ok) {\r\n const onboardingData = await onboardingResponse.json();\r\n if (!onboardingData.hasCompletedOnboarding) {\r\n // Redirect to onboarding wizard\r\n setStatus('success');\r\n setTimeout(() => {\r\n window.location.href = '/auth/onboarding';\r\n }, 1500);\r\n return;\r\n }\r\n }\r\n } catch {\r\n // Non-critical - continue with normal flow\r\n }\r\n\r\n // Fetch user preferences\r\n try {\r\n const prefs = await userApi.preferences.get();\r\n const themeConfig = {\r\n mode: prefs.theme || 'dark',\r\n accentColorKey: prefs.accentColorKey || 'indigo',\r\n borderRadius: prefs.borderRadius || {},\r\n itemPaletteKey: prefs.itemPaletteKey || 'neutral',\r\n };\r\n localStorage.setItem('smartstack-theme-config', JSON.stringify(themeConfig));\r\n if (prefs.language) {\r\n localStorage.setItem('i18nextLng', prefs.language);\r\n }\r\n } catch {\r\n // Non-critical - continue with defaults\r\n }\r\n\r\n setStatus('success');\r\n\r\n // Clear stale tenant state so TenantContext uses the user's configured default tenant (Priority 3: isDefault)\r\n localStorage.removeItem('currentTenantId');\r\n localStorage.removeItem('currentTenantSlug');\r\n localStorage.removeItem('isGlobalView');\r\n\r\n // Redirect after showing success\r\n setTimeout(() => {\r\n window.location.href = '/myspace';\r\n }, 1500);\r\n } catch (err) {\r\n console.error('Auth callback error:', err);\r\n setStatus('error');\r\n setErrorMessage('Erreur lors de la finalisation de l\\'authentification.');\r\n }\r\n };\r\n\r\n const handleRetry = () => {\r\n navigate('/login');\r\n };\r\n\r\n return (\r\n <div className=\"min-h-screen flex items-center justify-center bg-[var(--bg-primary)]\">\r\n <div className=\"max-w-md w-full mx-4\">\r\n <div className=\"bg-[var(--bg-secondary)] rounded-2xl p-8 shadow-lg border border-[var(--border-color)]\">\r\n {status === 'processing' && (\r\n <div className=\"text-center\">\r\n <Loader2 className=\"w-16 h-16 mx-auto text-[var(--color-accent-500)] animate-spin mb-4\" />\r\n <h2 className=\"text-xl font-semibold mb-2\">Authentification en cours...</h2>\r\n <p className=\"text-[var(--text-secondary)]\">\r\n Veuillez patienter pendant que nous finalisons votre connexion.\r\n </p>\r\n </div>\r\n )}\r\n\r\n {status === 'success' && (\r\n <div className=\"text-center\">\r\n <div className=\"w-16 h-16 mx-auto bg-green-100 dark:bg-green-900/30 rounded-full flex items-center justify-center mb-4\">\r\n <CheckCircle className=\"w-10 h-10 text-green-600 dark:text-green-400\" />\r\n </div>\r\n <h2 className=\"text-xl font-semibold mb-2\">Connexion réussie !</h2>\r\n <p className=\"text-[var(--text-secondary)]\">\r\n Vous allez être redirigé vers votre espace personnel...\r\n </p>\r\n </div>\r\n )}\r\n\r\n {status === 'error' && (\r\n <div className=\"text-center\">\r\n <div className=\"w-16 h-16 mx-auto bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center mb-4\">\r\n <XCircle className=\"w-10 h-10 text-red-600 dark:text-red-400\" />\r\n </div>\r\n <h2 className=\"text-xl font-semibold mb-2\">Échec de l'authentification</h2>\r\n <div className=\"bg-red-50 dark:bg-red-900/20 rounded-lg p-4 mb-6\">\r\n <div className=\"flex items-start gap-3\">\r\n <AlertCircle className=\"w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5\" />\r\n <p className=\"text-sm text-red-700 dark:text-red-300\">{errorMessage}</p>\r\n </div>\r\n </div>\r\n <button\r\n onClick={handleRetry}\r\n className=\"btn btn-primary w-full\"\r\n >\r\n Retourner à la connexion\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["errorMessages","AuthCallbackPage","searchParams","useSearchParams","navigate","useNavigate","status","setStatus","useState","errorMessage","setErrorMessage","useEffect","token","refreshToken","error","handleSuccessfulAuth","clientIp","getClientIpAddress","deviceType","detectDeviceType","userResponse","user","onboardingResponse","prefs","userApi","themeConfig","err","jsx","jsxs","Loader2","CheckCircle","XCircle","AlertCircle"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("react"),h=require("react-router-dom"),c=require("lucide-react"),m=require("./index-C6C5XmVj.cjs"),v={auth_failed:"L'authentification a échoué. Veuillez réessayer.",no_email:"Impossible de récupérer votre adresse email depuis le fournisseur.",account_disabled:"Votre compte est désactivé. Contactez l'administrateur.",account_locked:"Votre compte est verrouillé. Contactez l'administrateur.",internal_error:"Une erreur interne est survenue. Veuillez réessayer."};function y(){const[o]=h.useSearchParams(),g=h.useNavigate(),[l,a]=u.useState("processing"),[x,d]=u.useState("");u.useEffect(()=>{const r=o.get("token"),i=o.get("refreshToken"),s=o.get("error");if(s){a("error"),d(v[s]||"Une erreur est survenue lors de l'authentification.");return}r&&i?f(r,i):(a("error"),d("Paramètres d'authentification manquants."))},[o]);const f=async(r,i)=>{try{localStorage.setItem("token",r),localStorage.setItem("refreshToken",i);try{const t=await m.getClientIpAddress(),n=m.detectDeviceType();(t||n)&&await fetch("/api/auth/update-session-client-info",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({clientIp:t,deviceType:n})})}catch{}const s=await fetch("/api/auth/me",{headers:{Authorization:`Bearer ${r}`}});if(!s.ok)throw new Error("Failed to fetch user info");const p=await s.json();localStorage.setItem("user",JSON.stringify(p));try{const t=await fetch("/api/onboarding/status",{headers:{Authorization:`Bearer ${r}`}});if(t.ok&&!(await t.json()).hasCompletedOnboarding){a("success"),setTimeout(()=>{window.location.href="/auth/onboarding"},1500);return}}catch{}try{const t=await m.userApi.preferences.get(),n={mode:t.theme||"dark",accentColorKey:t.accentColorKey||"indigo",borderRadius:t.borderRadius||{},itemPaletteKey:t.itemPaletteKey||"neutral"};localStorage.setItem("smartstack-theme-config",JSON.stringify(n)),t.language&&localStorage.setItem("i18nextLng",t.language)}catch{}a("success"),localStorage.removeItem("currentTenantId"),localStorage.removeItem("currentTenantSlug"),localStorage.removeItem("isGlobalView"),setTimeout(()=>{window.location.href="/myspace"},1500)}catch(s){console.error("Auth callback error:",s),a("error"),d("Erreur lors de la finalisation de l'authentification.")}},b=()=>{g("/login")};return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-[var(--bg-primary)]",children:e.jsx("div",{className:"max-w-md w-full mx-4",children:e.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-2xl p-8 shadow-lg border border-[var(--border-color)]",children:[l==="processing"&&e.jsxs("div",{className:"text-center",children:[e.jsx(c.Loader2,{className:"w-16 h-16 mx-auto text-[var(--color-accent-500)] animate-spin mb-4"}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Authentification en cours..."}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:"Veuillez patienter pendant que nous finalisons votre connexion."})]}),l==="success"&&e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"w-16 h-16 mx-auto bg-green-100 dark:bg-green-900/30 rounded-full flex items-center justify-center mb-4",children:e.jsx(c.CheckCircle,{className:"w-10 h-10 text-green-600 dark:text-green-400"})}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Connexion réussie !"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:"Vous allez être redirigé vers votre espace personnel..."})]}),l==="error"&&e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"w-16 h-16 mx-auto bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center mb-4",children:e.jsx(c.XCircle,{className:"w-10 h-10 text-red-600 dark:text-red-400"})}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Échec de l'authentification"}),e.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 rounded-lg p-4 mb-6",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(c.AlertCircle,{className:"w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5"}),e.jsx("p",{className:"text-sm text-red-700 dark:text-red-300",children:x})]})}),e.jsx("button",{onClick:b,className:"btn btn-primary w-full",children:"Retourner à la connexion"})]})]})})})}exports.AuthCallbackPage=y;
2
- //# sourceMappingURL=AuthCallbackPage-Bv2Cyn80.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("react"),h=require("react-router-dom"),c=require("lucide-react"),m=require("./index-BfMaHuWh.cjs"),v={auth_failed:"L'authentification a échoué. Veuillez réessayer.",no_email:"Impossible de récupérer votre adresse email depuis le fournisseur.",account_disabled:"Votre compte est désactivé. Contactez l'administrateur.",account_locked:"Votre compte est verrouillé. Contactez l'administrateur.",internal_error:"Une erreur interne est survenue. Veuillez réessayer."};function y(){const[o]=h.useSearchParams(),g=h.useNavigate(),[l,a]=u.useState("processing"),[x,d]=u.useState("");u.useEffect(()=>{const r=o.get("token"),i=o.get("refreshToken"),s=o.get("error");if(s){a("error"),d(v[s]||"Une erreur est survenue lors de l'authentification.");return}r&&i?f(r,i):(a("error"),d("Paramètres d'authentification manquants."))},[o]);const f=async(r,i)=>{try{localStorage.setItem("token",r),localStorage.setItem("refreshToken",i);try{const t=await m.getClientIpAddress(),n=m.detectDeviceType();(t||n)&&await fetch("/api/auth/update-session-client-info",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r}`},body:JSON.stringify({clientIp:t,deviceType:n})})}catch{}const s=await fetch("/api/auth/me",{headers:{Authorization:`Bearer ${r}`}});if(!s.ok)throw new Error("Failed to fetch user info");const p=await s.json();localStorage.setItem("user",JSON.stringify(p));try{const t=await fetch("/api/onboarding/status",{headers:{Authorization:`Bearer ${r}`}});if(t.ok&&!(await t.json()).hasCompletedOnboarding){a("success"),setTimeout(()=>{window.location.href="/auth/onboarding"},1500);return}}catch{}try{const t=await m.userApi.preferences.get(),n={mode:t.theme||"dark",accentColorKey:t.accentColorKey||"indigo",borderRadius:t.borderRadius||{},itemPaletteKey:t.itemPaletteKey||"neutral"};localStorage.setItem("smartstack-theme-config",JSON.stringify(n)),t.language&&localStorage.setItem("i18nextLng",t.language)}catch{}a("success"),localStorage.removeItem("currentTenantId"),localStorage.removeItem("currentTenantSlug"),localStorage.removeItem("isGlobalView"),setTimeout(()=>{window.location.href="/myspace"},1500)}catch(s){console.error("Auth callback error:",s),a("error"),d("Erreur lors de la finalisation de l'authentification.")}},b=()=>{g("/login")};return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-[var(--bg-primary)]",children:e.jsx("div",{className:"max-w-md w-full mx-4",children:e.jsxs("div",{className:"bg-[var(--bg-secondary)] rounded-2xl p-8 shadow-lg border border-[var(--border-color)]",children:[l==="processing"&&e.jsxs("div",{className:"text-center",children:[e.jsx(c.Loader2,{className:"w-16 h-16 mx-auto text-[var(--color-accent-500)] animate-spin mb-4"}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Authentification en cours..."}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:"Veuillez patienter pendant que nous finalisons votre connexion."})]}),l==="success"&&e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"w-16 h-16 mx-auto bg-green-100 dark:bg-green-900/30 rounded-full flex items-center justify-center mb-4",children:e.jsx(c.CheckCircle,{className:"w-10 h-10 text-green-600 dark:text-green-400"})}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Connexion réussie !"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:"Vous allez être redirigé vers votre espace personnel..."})]}),l==="error"&&e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"w-16 h-16 mx-auto bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center mb-4",children:e.jsx(c.XCircle,{className:"w-10 h-10 text-red-600 dark:text-red-400"})}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Échec de l'authentification"}),e.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 rounded-lg p-4 mb-6",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(c.AlertCircle,{className:"w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5"}),e.jsx("p",{className:"text-sm text-red-700 dark:text-red-300",children:x})]})}),e.jsx("button",{onClick:b,className:"btn btn-primary w-full",children:"Retourner à la connexion"})]})]})})})}exports.AuthCallbackPage=y;
2
+ //# sourceMappingURL=AuthCallbackPage-D_g2VCjj.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthCallbackPage-D_g2VCjj.cjs","sources":["../src/pages/auth/AuthCallbackPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { useSearchParams, useNavigate } from 'react-router-dom';\r\nimport { Loader2, CheckCircle, XCircle, AlertCircle } from 'lucide-react';\r\nimport { userApi } from '@/services/api/userApi';\r\nimport { getClientIpAddress } from '@/utils/ipDetection';\r\nimport { detectDeviceType } from '@/utils/deviceDetection';\r\n\r\ntype CallbackStatus = 'processing' | 'success' | 'error';\r\n\r\nconst errorMessages: Record<string, string> = {\r\n auth_failed: 'L\\'authentification a échoué. Veuillez réessayer.',\r\n no_email: 'Impossible de récupérer votre adresse email depuis le fournisseur.',\r\n account_disabled: 'Votre compte est désactivé. Contactez l\\'administrateur.',\r\n account_locked: 'Votre compte est verrouillé. Contactez l\\'administrateur.',\r\n internal_error: 'Une erreur interne est survenue. Veuillez réessayer.',\r\n};\r\n\r\nexport function AuthCallbackPage(): ReactElement {\r\n const [searchParams] = useSearchParams();\r\n const navigate = useNavigate();\r\n const [status, setStatus] = useState<CallbackStatus>('processing');\r\n const [errorMessage, setErrorMessage] = useState<string>('');\r\n\r\n useEffect(() => {\r\n const token = searchParams.get('token');\r\n const refreshToken = searchParams.get('refreshToken');\r\n const error = searchParams.get('error');\r\n\r\n if (error) {\r\n setStatus('error');\r\n setErrorMessage(errorMessages[error] || 'Une erreur est survenue lors de l\\'authentification.');\r\n return;\r\n }\r\n\r\n if (token && refreshToken) {\r\n handleSuccessfulAuth(token, refreshToken);\r\n } else {\r\n setStatus('error');\r\n setErrorMessage('Paramètres d\\'authentification manquants.');\r\n }\r\n }, [searchParams]);\r\n\r\n const handleSuccessfulAuth = async (token: string, refreshToken: string) => {\r\n try {\r\n localStorage.setItem('token', token);\r\n localStorage.setItem('refreshToken', refreshToken);\r\n\r\n // Update session with client-side IP address (retrieved via external service like ipify.org)\r\n // This is important for OAuth flows where the server can't reliably get the client IP\r\n try {\r\n const clientIp = await getClientIpAddress();\r\n const deviceType = detectDeviceType();\r\n\r\n if (clientIp || deviceType) {\r\n await fetch(`/api/auth/update-session-client-info`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`,\r\n },\r\n body: JSON.stringify({ clientIp, deviceType }),\r\n });\r\n }\r\n } catch (ipError) {\r\n // Non-critical - continue with the flow even if IP update fails\r\n }\r\n\r\n // Fetch user info\r\n const userResponse = await fetch(`/api/auth/me`, {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n\r\n if (!userResponse.ok) {\r\n throw new Error('Failed to fetch user info');\r\n }\r\n\r\n const user = await userResponse.json();\r\n localStorage.setItem('user', JSON.stringify(user));\r\n\r\n // Check if user needs onboarding\r\n try {\r\n const onboardingResponse = await fetch(`/api/onboarding/status`, {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n\r\n if (onboardingResponse.ok) {\r\n const onboardingData = await onboardingResponse.json();\r\n if (!onboardingData.hasCompletedOnboarding) {\r\n // Redirect to onboarding wizard\r\n setStatus('success');\r\n setTimeout(() => {\r\n window.location.href = '/auth/onboarding';\r\n }, 1500);\r\n return;\r\n }\r\n }\r\n } catch {\r\n // Non-critical - continue with normal flow\r\n }\r\n\r\n // Fetch user preferences\r\n try {\r\n const prefs = await userApi.preferences.get();\r\n const themeConfig = {\r\n mode: prefs.theme || 'dark',\r\n accentColorKey: prefs.accentColorKey || 'indigo',\r\n borderRadius: prefs.borderRadius || {},\r\n itemPaletteKey: prefs.itemPaletteKey || 'neutral',\r\n };\r\n localStorage.setItem('smartstack-theme-config', JSON.stringify(themeConfig));\r\n if (prefs.language) {\r\n localStorage.setItem('i18nextLng', prefs.language);\r\n }\r\n } catch {\r\n // Non-critical - continue with defaults\r\n }\r\n\r\n setStatus('success');\r\n\r\n // Clear stale tenant state so TenantContext uses the user's configured default tenant (Priority 3: isDefault)\r\n localStorage.removeItem('currentTenantId');\r\n localStorage.removeItem('currentTenantSlug');\r\n localStorage.removeItem('isGlobalView');\r\n\r\n // Redirect after showing success\r\n setTimeout(() => {\r\n window.location.href = '/myspace';\r\n }, 1500);\r\n } catch (err) {\r\n console.error('Auth callback error:', err);\r\n setStatus('error');\r\n setErrorMessage('Erreur lors de la finalisation de l\\'authentification.');\r\n }\r\n };\r\n\r\n const handleRetry = () => {\r\n navigate('/login');\r\n };\r\n\r\n return (\r\n <div className=\"min-h-screen flex items-center justify-center bg-[var(--bg-primary)]\">\r\n <div className=\"max-w-md w-full mx-4\">\r\n <div className=\"bg-[var(--bg-secondary)] rounded-2xl p-8 shadow-lg border border-[var(--border-color)]\">\r\n {status === 'processing' && (\r\n <div className=\"text-center\">\r\n <Loader2 className=\"w-16 h-16 mx-auto text-[var(--color-accent-500)] animate-spin mb-4\" />\r\n <h2 className=\"text-xl font-semibold mb-2\">Authentification en cours...</h2>\r\n <p className=\"text-[var(--text-secondary)]\">\r\n Veuillez patienter pendant que nous finalisons votre connexion.\r\n </p>\r\n </div>\r\n )}\r\n\r\n {status === 'success' && (\r\n <div className=\"text-center\">\r\n <div className=\"w-16 h-16 mx-auto bg-green-100 dark:bg-green-900/30 rounded-full flex items-center justify-center mb-4\">\r\n <CheckCircle className=\"w-10 h-10 text-green-600 dark:text-green-400\" />\r\n </div>\r\n <h2 className=\"text-xl font-semibold mb-2\">Connexion réussie !</h2>\r\n <p className=\"text-[var(--text-secondary)]\">\r\n Vous allez être redirigé vers votre espace personnel...\r\n </p>\r\n </div>\r\n )}\r\n\r\n {status === 'error' && (\r\n <div className=\"text-center\">\r\n <div className=\"w-16 h-16 mx-auto bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center mb-4\">\r\n <XCircle className=\"w-10 h-10 text-red-600 dark:text-red-400\" />\r\n </div>\r\n <h2 className=\"text-xl font-semibold mb-2\">Échec de l'authentification</h2>\r\n <div className=\"bg-red-50 dark:bg-red-900/20 rounded-lg p-4 mb-6\">\r\n <div className=\"flex items-start gap-3\">\r\n <AlertCircle className=\"w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5\" />\r\n <p className=\"text-sm text-red-700 dark:text-red-300\">{errorMessage}</p>\r\n </div>\r\n </div>\r\n <button\r\n onClick={handleRetry}\r\n className=\"btn btn-primary w-full\"\r\n >\r\n Retourner à la connexion\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["errorMessages","AuthCallbackPage","searchParams","useSearchParams","navigate","useNavigate","status","setStatus","useState","errorMessage","setErrorMessage","useEffect","token","refreshToken","error","handleSuccessfulAuth","clientIp","getClientIpAddress","deviceType","detectDeviceType","userResponse","user","onboardingResponse","prefs","userApi","themeConfig","err","handleRetry","jsx","jsxs","Loader2","CheckCircle","XCircle","AlertCircle"],"mappings":"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"}
@@ -37,7 +37,7 @@ function B() {
37
37
  return h ? /* @__PURE__ */ r("div", { className: "space-y-4 animate-pulse", children: [
38
38
  /* @__PURE__ */ e("div", { className: "h-8 bg-[var(--bg-tertiary)] rounded w-64" }),
39
39
  /* @__PURE__ */ e("div", { className: "h-4 bg-[var(--bg-tertiary)] rounded w-96" }),
40
- /* @__PURE__ */ e("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6 mt-8", children: [1, 2].map((a) => /* @__PURE__ */ e("div", { className: "h-48 bg-[var(--bg-tertiary)] rounded-xl" }, a)) })
40
+ /* @__PURE__ */ e("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6 mt-8", children: [1, 2].map((a) => /* @__PURE__ */ e("div", { className: "h-48 bg-[var(--bg-tertiary)] rounded-xl" }, `card-${a}`)) })
41
41
  ] }) : /* @__PURE__ */ r("div", { className: "space-y-8", children: [
42
42
  /* @__PURE__ */ r("div", { children: [
43
43
  /* @__PURE__ */ r("h1", { className: "text-3xl font-bold mb-4 flex items-center gap-3", children: [
@@ -101,4 +101,4 @@ function B() {
101
101
  export {
102
102
  B as BaIndexPage
103
103
  };
104
- //# sourceMappingURL=BaIndexPage-Dkp_Eixx.js.map
104
+ //# sourceMappingURL=BaIndexPage-B5scAEin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaIndexPage-B5scAEin.js","sources":["../src/pages/system/docs/ba/BaIndexPage.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { BarChart3, ArrowRight, FileText, Clock, AlertCircle } from 'lucide-react';\r\nimport { businessAnalysisApi } from '@/services/api/businessAnalysisApi';\r\nimport type { BaManifest, BaManifestEntry } from '@/types/featureJson';\r\n\r\ninterface AppGroup {\r\n appCode: string;\r\n appName: string;\r\n entries: BaManifestEntry[];\r\n latestUpdate: string;\r\n}\r\n\r\nfunction StatusBadge({ status }: { status: string }) {\r\n const { t } = useTranslation('ba');\r\n const colors: Record<string, string> = {\r\n 'draft': 'bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300',\r\n 'analysed': 'bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300',\r\n 'specified': 'bg-indigo-100 text-indigo-700 dark:bg-indigo-900 dark:text-indigo-300',\r\n 'consolidated': 'bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300',\r\n 'handed-off': 'bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-300',\r\n };\r\n return (\r\n <span className={`px-2 py-0.5 rounded-full text-xs font-medium ${colors[status] || colors.draft}`}>\r\n {t(`status.${status}`, status)}\r\n </span>\r\n );\r\n}\r\n\r\nexport function BaIndexPage(): ReactElement {\r\n const { t } = useTranslation('ba');\r\n const [manifest, setManifest] = useState<BaManifest | null>(null);\r\n const [loading, setLoading] = useState(true);\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n businessAnalysisApi.getManifest()\r\n .then(setManifest)\r\n .catch(() => setError('manifest'))\r\n .finally(() => setLoading(false))\r\n .catch(() => {});\r\n }, []);\r\n\r\n const appGroups = useMemo<AppGroup[]>(() => {\r\n if (!manifest?.analyses) return [];\r\n const grouped = new Map<string, AppGroup>();\r\n for (const entry of manifest.analyses) {\r\n const existing = grouped.get(entry.appCode);\r\n if (existing) {\r\n existing.entries.push(entry);\r\n if (entry.updatedAt > existing.latestUpdate) {\r\n existing.latestUpdate = entry.updatedAt;\r\n }\r\n } else {\r\n grouped.set(entry.appCode, {\r\n appCode: entry.appCode,\r\n appName: entry.appName,\r\n entries: [entry],\r\n latestUpdate: entry.updatedAt,\r\n });\r\n }\r\n }\r\n return Array.from(grouped.values()).sort((a, b) => b.latestUpdate.localeCompare(a.latestUpdate));\r\n }, [manifest]);\r\n\r\n if (loading) {\r\n return (\r\n <div className=\"space-y-4 animate-pulse\">\r\n <div className=\"h-8 bg-[var(--bg-tertiary)] rounded w-64\" />\r\n <div className=\"h-4 bg-[var(--bg-tertiary)] rounded w-96\" />\r\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6 mt-8\">\r\n {[1, 2].map(i => <div key={`card-${i}`} className=\"h-48 bg-[var(--bg-tertiary)] rounded-xl\" />)}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <BarChart3 className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('index.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('index.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Content */}\r\n {error || appGroups.length === 0 ? (\r\n <div className=\"text-center py-16\">\r\n <AlertCircle className=\"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4\" />\r\n <p className=\"text-lg text-[var(--text-secondary)] mb-2\">{t('index.noData')}</p>\r\n <p className=\"text-sm text-[var(--text-tertiary)]\">{t('index.noDataHint')}</p>\r\n </div>\r\n ) : (\r\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\r\n {appGroups.map(group => {\r\n const appEntry = group.entries.find(e => !e.moduleCode);\r\n const moduleEntries = group.entries.filter(e => e.moduleCode);\r\n\r\n return (\r\n <div key={group.appCode} className=\"card p-6 hover:shadow-lg transition-shadow\">\r\n <div className=\"flex items-start gap-4 mb-4\">\r\n <div className=\"w-12 h-12 rounded-xl bg-gradient-to-br from-violet-500 to-purple-600 flex items-center justify-center\">\r\n <BarChart3 className=\"w-6 h-6 text-white\" />\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <h3 className=\"text-lg font-semibold text-[var(--text-primary)] truncate\">\r\n {group.appName}\r\n </h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {appEntry?.featureDescription}\r\n </p>\r\n </div>\r\n {appEntry && <StatusBadge status={appEntry.status} />}\r\n </div>\r\n\r\n {/* Module list */}\r\n {moduleEntries.length > 0 && (\r\n <div className=\"space-y-2 mb-4\">\r\n {moduleEntries.map(entry => (\r\n <Link\r\n key={`${entry.appCode}-${entry.moduleCode}`}\r\n to={`/system/docs/ba/${entry.appCode}/${entry.moduleCode}`}\r\n className=\"flex items-center gap-2 px-3 py-2 rounded-lg hover:bg-[var(--bg-hover)] transition-colors group\"\r\n >\r\n <FileText className=\"w-4 h-4 text-[var(--text-tertiary)]\" />\r\n <span className=\"text-sm text-[var(--text-primary)] flex-1\">\r\n {entry.moduleName || entry.moduleCode}\r\n </span>\r\n <StatusBadge status={entry.status} />\r\n <ArrowRight className=\"w-3 h-3 text-[var(--text-tertiary)] opacity-0 group-hover:opacity-100 transition-opacity\" />\r\n </Link>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {/* Footer */}\r\n <div className=\"flex items-center justify-between pt-3 border-t border-[var(--border-color)]\">\r\n <div className=\"flex items-center gap-2 text-xs text-[var(--text-tertiary)]\">\r\n <Clock className=\"w-3 h-3\" />\r\n {new Date(group.latestUpdate).toLocaleDateString()}\r\n </div>\r\n {appEntry && (\r\n <Link\r\n to={`/system/docs/ba/${group.appCode}`}\r\n className=\"text-sm text-[var(--color-primary-600)] hover:underline flex items-center gap-1\"\r\n >\r\n {t('index.version')} {appEntry.version}\r\n <ArrowRight className=\"w-3 h-3\" />\r\n </Link>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"names":["StatusBadge","status","t","useTranslation","colors","jsx","BaIndexPage","manifest","setManifest","useState","loading","setLoading","error","setError","useEffect","businessAnalysisApi","appGroups","useMemo","grouped","entry","existing","a","b","jsxs","i","BarChart3","AlertCircle","group","appEntry","e","moduleEntries","Link","FileText","ArrowRight","Clock"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),x=require("react-router-dom"),m=require("react-i18next"),l=require("lucide-react"),v=require("./businessAnalysisApi-PHrk-59S.cjs");function p({status:r}){const{t:n}=m.useTranslation("ba"),o={draft:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300",analysed:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",specified:"bg-indigo-100 text-indigo-700 dark:bg-indigo-900 dark:text-indigo-300",consolidated:"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300","handed-off":"bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-300"};return e.jsx("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${o[r]||o.draft}`,children:n(`status.${r}`,r)})}function f(){const{t:r}=m.useTranslation("ba"),[n,o]=d.useState(null),[u,g]=d.useState(!0),[h,b]=d.useState(null);d.useEffect(()=>{v.businessAnalysisApi.getManifest().then(o).catch(()=>b("manifest")).finally(()=>g(!1)).catch(()=>{})},[]);const c=d.useMemo(()=>{if(!n?.analyses)return[];const s=new Map;for(const t of n.analyses){const i=s.get(t.appCode);i?(i.entries.push(t),t.updatedAt>i.latestUpdate&&(i.latestUpdate=t.updatedAt)):s.set(t.appCode,{appCode:t.appCode,appName:t.appName,entries:[t],latestUpdate:t.updatedAt})}return Array.from(s.values()).sort((t,i)=>i.latestUpdate.localeCompare(t.latestUpdate))},[n]);return u?e.jsxs("div",{className:"space-y-4 animate-pulse",children:[e.jsx("div",{className:"h-8 bg-[var(--bg-tertiary)] rounded w-64"}),e.jsx("div",{className:"h-4 bg-[var(--bg-tertiary)] rounded w-96"}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 mt-8",children:[1,2].map(s=>e.jsx("div",{className:"h-48 bg-[var(--bg-tertiary)] rounded-xl"},`card-${s}`))})]}):e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-3xl font-bold mb-4 flex items-center gap-3",children:[e.jsx(l.BarChart3,{className:"w-8 h-8 text-[var(--color-primary-600)]"}),r("index.title")]}),e.jsx("p",{className:"text-lg text-[var(--text-secondary)]",children:r("index.subtitle")})]}),h||c.length===0?e.jsxs("div",{className:"text-center py-16",children:[e.jsx(l.AlertCircle,{className:"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4"}),e.jsx("p",{className:"text-lg text-[var(--text-secondary)] mb-2",children:r("index.noData")}),e.jsx("p",{className:"text-sm text-[var(--text-tertiary)]",children:r("index.noDataHint")})]}):e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:c.map(s=>{const t=s.entries.find(a=>!a.moduleCode),i=s.entries.filter(a=>a.moduleCode);return e.jsxs("div",{className:"card p-6 hover:shadow-lg transition-shadow",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-gradient-to-br from-violet-500 to-purple-600 flex items-center justify-center",children:e.jsx(l.BarChart3,{className:"w-6 h-6 text-white"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-lg font-semibold text-[var(--text-primary)] truncate",children:s.appName}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:t?.featureDescription})]}),t&&e.jsx(p,{status:t.status})]}),i.length>0&&e.jsx("div",{className:"space-y-2 mb-4",children:i.map(a=>e.jsxs(x.Link,{to:`/system/docs/ba/${a.appCode}/${a.moduleCode}`,className:"flex items-center gap-2 px-3 py-2 rounded-lg hover:bg-[var(--bg-hover)] transition-colors group",children:[e.jsx(l.FileText,{className:"w-4 h-4 text-[var(--text-tertiary)]"}),e.jsx("span",{className:"text-sm text-[var(--text-primary)] flex-1",children:a.moduleName||a.moduleCode}),e.jsx(p,{status:a.status}),e.jsx(l.ArrowRight,{className:"w-3 h-3 text-[var(--text-tertiary)] opacity-0 group-hover:opacity-100 transition-opacity"})]},`${a.appCode}-${a.moduleCode}`))}),e.jsxs("div",{className:"flex items-center justify-between pt-3 border-t border-[var(--border-color)]",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-[var(--text-tertiary)]",children:[e.jsx(l.Clock,{className:"w-3 h-3"}),new Date(s.latestUpdate).toLocaleDateString()]}),t&&e.jsxs(x.Link,{to:`/system/docs/ba/${s.appCode}`,className:"text-sm text-[var(--color-primary-600)] hover:underline flex items-center gap-1",children:[r("index.version")," ",t.version,e.jsx(l.ArrowRight,{className:"w-3 h-3"})]})]})]},s.appCode)})})]})}exports.BaIndexPage=f;
2
+ //# sourceMappingURL=BaIndexPage-C3osYS_6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaIndexPage-C3osYS_6.cjs","sources":["../src/pages/system/docs/ba/BaIndexPage.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from 'react';\r\nimport type { ReactElement } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { BarChart3, ArrowRight, FileText, Clock, AlertCircle } from 'lucide-react';\r\nimport { businessAnalysisApi } from '@/services/api/businessAnalysisApi';\r\nimport type { BaManifest, BaManifestEntry } from '@/types/featureJson';\r\n\r\ninterface AppGroup {\r\n appCode: string;\r\n appName: string;\r\n entries: BaManifestEntry[];\r\n latestUpdate: string;\r\n}\r\n\r\nfunction StatusBadge({ status }: { status: string }) {\r\n const { t } = useTranslation('ba');\r\n const colors: Record<string, string> = {\r\n 'draft': 'bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300',\r\n 'analysed': 'bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300',\r\n 'specified': 'bg-indigo-100 text-indigo-700 dark:bg-indigo-900 dark:text-indigo-300',\r\n 'consolidated': 'bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300',\r\n 'handed-off': 'bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-300',\r\n };\r\n return (\r\n <span className={`px-2 py-0.5 rounded-full text-xs font-medium ${colors[status] || colors.draft}`}>\r\n {t(`status.${status}`, status)}\r\n </span>\r\n );\r\n}\r\n\r\nexport function BaIndexPage(): ReactElement {\r\n const { t } = useTranslation('ba');\r\n const [manifest, setManifest] = useState<BaManifest | null>(null);\r\n const [loading, setLoading] = useState(true);\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n businessAnalysisApi.getManifest()\r\n .then(setManifest)\r\n .catch(() => setError('manifest'))\r\n .finally(() => setLoading(false))\r\n .catch(() => {});\r\n }, []);\r\n\r\n const appGroups = useMemo<AppGroup[]>(() => {\r\n if (!manifest?.analyses) return [];\r\n const grouped = new Map<string, AppGroup>();\r\n for (const entry of manifest.analyses) {\r\n const existing = grouped.get(entry.appCode);\r\n if (existing) {\r\n existing.entries.push(entry);\r\n if (entry.updatedAt > existing.latestUpdate) {\r\n existing.latestUpdate = entry.updatedAt;\r\n }\r\n } else {\r\n grouped.set(entry.appCode, {\r\n appCode: entry.appCode,\r\n appName: entry.appName,\r\n entries: [entry],\r\n latestUpdate: entry.updatedAt,\r\n });\r\n }\r\n }\r\n return Array.from(grouped.values()).sort((a, b) => b.latestUpdate.localeCompare(a.latestUpdate));\r\n }, [manifest]);\r\n\r\n if (loading) {\r\n return (\r\n <div className=\"space-y-4 animate-pulse\">\r\n <div className=\"h-8 bg-[var(--bg-tertiary)] rounded w-64\" />\r\n <div className=\"h-4 bg-[var(--bg-tertiary)] rounded w-96\" />\r\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6 mt-8\">\r\n {[1, 2].map(i => <div key={`card-${i}`} className=\"h-48 bg-[var(--bg-tertiary)] rounded-xl\" />)}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"space-y-8\">\r\n {/* Header */}\r\n <div>\r\n <h1 className=\"text-3xl font-bold mb-4 flex items-center gap-3\">\r\n <BarChart3 className=\"w-8 h-8 text-[var(--color-primary-600)]\" />\r\n {t('index.title')}\r\n </h1>\r\n <p className=\"text-lg text-[var(--text-secondary)]\">\r\n {t('index.subtitle')}\r\n </p>\r\n </div>\r\n\r\n {/* Content */}\r\n {error || appGroups.length === 0 ? (\r\n <div className=\"text-center py-16\">\r\n <AlertCircle className=\"w-12 h-12 text-[var(--text-tertiary)] mx-auto mb-4\" />\r\n <p className=\"text-lg text-[var(--text-secondary)] mb-2\">{t('index.noData')}</p>\r\n <p className=\"text-sm text-[var(--text-tertiary)]\">{t('index.noDataHint')}</p>\r\n </div>\r\n ) : (\r\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\r\n {appGroups.map(group => {\r\n const appEntry = group.entries.find(e => !e.moduleCode);\r\n const moduleEntries = group.entries.filter(e => e.moduleCode);\r\n\r\n return (\r\n <div key={group.appCode} className=\"card p-6 hover:shadow-lg transition-shadow\">\r\n <div className=\"flex items-start gap-4 mb-4\">\r\n <div className=\"w-12 h-12 rounded-xl bg-gradient-to-br from-violet-500 to-purple-600 flex items-center justify-center\">\r\n <BarChart3 className=\"w-6 h-6 text-white\" />\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <h3 className=\"text-lg font-semibold text-[var(--text-primary)] truncate\">\r\n {group.appName}\r\n </h3>\r\n <p className=\"text-sm text-[var(--text-secondary)]\">\r\n {appEntry?.featureDescription}\r\n </p>\r\n </div>\r\n {appEntry && <StatusBadge status={appEntry.status} />}\r\n </div>\r\n\r\n {/* Module list */}\r\n {moduleEntries.length > 0 && (\r\n <div className=\"space-y-2 mb-4\">\r\n {moduleEntries.map(entry => (\r\n <Link\r\n key={`${entry.appCode}-${entry.moduleCode}`}\r\n to={`/system/docs/ba/${entry.appCode}/${entry.moduleCode}`}\r\n className=\"flex items-center gap-2 px-3 py-2 rounded-lg hover:bg-[var(--bg-hover)] transition-colors group\"\r\n >\r\n <FileText className=\"w-4 h-4 text-[var(--text-tertiary)]\" />\r\n <span className=\"text-sm text-[var(--text-primary)] flex-1\">\r\n {entry.moduleName || entry.moduleCode}\r\n </span>\r\n <StatusBadge status={entry.status} />\r\n <ArrowRight className=\"w-3 h-3 text-[var(--text-tertiary)] opacity-0 group-hover:opacity-100 transition-opacity\" />\r\n </Link>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {/* Footer */}\r\n <div className=\"flex items-center justify-between pt-3 border-t border-[var(--border-color)]\">\r\n <div className=\"flex items-center gap-2 text-xs text-[var(--text-tertiary)]\">\r\n <Clock className=\"w-3 h-3\" />\r\n {new Date(group.latestUpdate).toLocaleDateString()}\r\n </div>\r\n {appEntry && (\r\n <Link\r\n to={`/system/docs/ba/${group.appCode}`}\r\n className=\"text-sm text-[var(--color-primary-600)] hover:underline flex items-center gap-1\"\r\n >\r\n {t('index.version')} {appEntry.version}\r\n <ArrowRight className=\"w-3 h-3\" />\r\n </Link>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"names":["StatusBadge","status","t","useTranslation","colors","jsx","BaIndexPage","manifest","setManifest","useState","loading","setLoading","error","setError","useEffect","businessAnalysisApi","appGroups","useMemo","grouped","entry","existing","a","b","jsxs","i","BarChart3","AlertCircle","group","appEntry","e","moduleEntries","Link","FileText","ArrowRight","Clock"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),y=require("react-router-dom"),m=require("react-i18next"),i=require("lucide-react"),N=require("./businessAnalysisApi-PHrk-59S.cjs");function b({title:t,items:r,color:s}){return r?.length?e.jsxs("div",{className:`rounded-lg border-l-4 ${s} p-4 bg-[var(--bg-secondary)]`,children:[e.jsx("h4",{className:"text-sm font-semibold mb-2",children:t}),e.jsx("ul",{className:"space-y-1",children:r.map(l=>e.jsxs("li",{className:"text-sm text-[var(--text-secondary)] flex items-start gap-2",children:[e.jsx("span",{className:"mt-1.5 w-1.5 h-1.5 rounded-full bg-current flex-shrink-0"}),l]},l))})]}):null}function f({stakeholder:t}){const{t:r}=m.useTranslation("ba");return e.jsxs("div",{className:"card p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(i.Users,{className:"w-4 h-4 text-[var(--color-primary-600)]"}),e.jsx("h4",{className:"font-medium text-[var(--text-primary)]",children:t.role})]}),t.function&&e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-2",children:t.function}),(t.tasks?.length??0)>0&&e.jsxs("div",{className:"mb-2",children:[e.jsx("p",{className:"text-xs font-medium text-[var(--text-tertiary)] mb-1",children:r("stakeholder.tasks")}),e.jsx("ul",{className:"space-y-0.5",children:t.tasks?.map(s=>e.jsxs("li",{className:"text-sm text-[var(--text-secondary)] flex items-center gap-1.5",children:[e.jsx(i.ArrowRight,{className:"w-3 h-3 text-[var(--text-tertiary)]"}),s]},s))})]}),(t.painPoints?.length??0)>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-[var(--text-tertiary)] mb-1",children:r("stakeholder.painPoints")}),e.jsx("ul",{className:"space-y-0.5",children:t.painPoints?.map(s=>e.jsxs("li",{className:"text-sm text-red-600 dark:text-red-400 flex items-center gap-1.5",children:[e.jsx(i.AlertTriangle,{className:"w-3 h-3"}),s]},s))})]})]})}function w({discovery:t}){const{t:r}=m.useTranslation("ba");return t?e.jsxs("div",{className:"space-y-8",children:[(t.problem||t.asIs||t.toBe)&&e.jsxs("div",{className:"space-y-4",children:[t.problem&&e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold mb-2 flex items-center gap-2",children:[e.jsx(i.Target,{className:"w-5 h-5 text-red-500"}),r("discovery.problem")]}),e.jsx("p",{className:"text-[var(--text-secondary)] bg-[var(--bg-secondary)] rounded-lg p-4 whitespace-pre-wrap",children:t.problem})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[t.asIs&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold mb-2 text-orange-600 dark:text-orange-400",children:r("discovery.asIs")}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] bg-orange-50 dark:bg-orange-950/30 rounded-lg p-4 whitespace-pre-wrap",children:t.asIs})]}),t.toBe&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold mb-2 text-green-600 dark:text-green-400",children:r("discovery.toBe")}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)] bg-green-50 dark:bg-green-950/30 rounded-lg p-4 whitespace-pre-wrap",children:t.toBe})]})]})]}),(t.stakeholders?.length??0)>0&&e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold mb-3 flex items-center gap-2",children:[e.jsx(i.Users,{className:"w-5 h-5 text-[var(--color-primary-600)]"}),r("discovery.stakeholders")]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:t.stakeholders?.map(s=>e.jsx(f,{stakeholder:s},s.role))})]}),t.scope&&e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold mb-3 flex items-center gap-2",children:[e.jsx(i.CheckCircle,{className:"w-5 h-5 text-[var(--color-primary-600)]"}),r("discovery.scope")]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[e.jsx(b,{title:r("scope.mustHave"),items:t.scope.mustHave,color:"border-red-500"}),e.jsx(b,{title:r("scope.shouldHave"),items:t.scope.shouldHave,color:"border-yellow-500"}),e.jsx(b,{title:r("scope.couldHave"),items:t.scope.couldHave,color:"border-blue-500"}),e.jsx(b,{title:r("scope.outOfScope"),items:t.scope.outOfScope,color:"border-gray-400"})]})]})]}):e.jsxs("div",{className:"text-center py-12",children:[e.jsx(i.Target,{className:"w-10 h-10 text-[var(--text-tertiary)] mx-auto mb-3"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:r("discovery.noData")})]})}const k={VAL:"bg-indigo-100 text-indigo-700 dark:bg-indigo-900 dark:text-indigo-300",CALC:"bg-amber-100 text-amber-700 dark:bg-amber-900 dark:text-amber-300",WF:"bg-orange-100 text-orange-700 dark:bg-orange-900 dark:text-orange-300",SEC:"bg-red-100 text-red-700 dark:bg-red-900 dark:text-red-300",DATA:"bg-cyan-100 text-cyan-700 dark:bg-cyan-900 dark:text-cyan-300"},C={must:"bg-red-100 text-red-700 dark:bg-red-900 dark:text-red-300",should:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900 dark:text-yellow-300",could:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300"};function T({uc:t}){const{t:r}=m.useTranslation("ba"),[s,l]=d.useState(!1);return e.jsxs("div",{className:"card p-4",children:[e.jsxs("button",{onClick:()=>l(!s),className:"w-full flex items-start gap-2 text-left",children:[s?e.jsx(i.ChevronDown,{className:"w-4 h-4 mt-0.5 flex-shrink-0"}):e.jsx(i.ChevronRight,{className:"w-4 h-4 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-xs font-mono text-[var(--color-primary-600)]",children:t.id}),e.jsx("span",{className:"font-medium text-[var(--text-primary)]",children:t.name})]}),t.description&&!s&&e.jsx("p",{className:"text-sm text-[var(--text-tertiary)] truncate mt-0.5",children:t.description})]})]}),s&&e.jsxs("div",{className:"mt-3 ml-6 space-y-3 text-sm",children:[t.description&&e.jsx("p",{className:"text-[var(--text-secondary)]",children:t.description}),e.jsxs("div",{className:"flex gap-4 text-xs",children:[e.jsxs("span",{className:"text-[var(--text-tertiary)]",children:[r("useCase.actor"),": ",e.jsx("strong",{children:t.primaryActor})]}),e.jsxs("span",{className:"text-[var(--text-tertiary)]",children:[r("useCase.permission"),": ",e.jsx("code",{className:"bg-[var(--bg-tertiary)] px-1 rounded",children:t.permission})]})]}),(t.preconditions?.length??0)>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-[var(--text-tertiary)] mb-1",children:r("useCase.preconditions")}),e.jsx("ul",{className:"list-disc list-inside text-[var(--text-secondary)]",children:t.preconditions?.map(x=>e.jsx("li",{children:x},x))})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-[var(--text-tertiary)] mb-1",children:r("useCase.mainScenario")}),e.jsx("ol",{className:"list-decimal list-inside text-[var(--text-secondary)] space-y-0.5",children:t.mainScenario.map(x=>e.jsx("li",{children:x},x))})]}),(t.alternativeScenarios?.length??0)>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-[var(--text-tertiary)] mb-1",children:r("useCase.alternatives")}),t.alternativeScenarios?.map(x=>e.jsxs("div",{className:"mb-2",children:[e.jsx("p",{className:"text-xs font-medium text-[var(--text-secondary)]",children:x.name}),e.jsx("ol",{className:"list-decimal list-inside text-[var(--text-secondary)] text-xs",children:x.steps.map(c=>e.jsx("li",{children:c},c))})]},x.name))]}),(t.linkedRules?.length??0)>0&&e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsxs("span",{className:"text-xs text-[var(--text-tertiary)]",children:[r("useCase.linkedRules"),":"]}),t.linkedRules?.map(x=>e.jsx("span",{className:"text-xs font-mono bg-[var(--bg-tertiary)] px-1.5 py-0.5 rounded",children:x},x))]})]})]})}function S({specification:t,analysis:r}){const{t:s}=m.useTranslation("ba"),[l,x]=d.useState("uc"),c=t?.useCases&&t.useCases.length>0,p=r?.businessRules&&r.businessRules.length>0,j=r?.entities&&r.entities.length>0,h=t?.permissionMatrix?.permissions&&t.permissionMatrix.permissions.length>0;if(!c&&!p&&!j&&!h)return e.jsxs("div",{className:"text-center py-12",children:[e.jsx(i.FileText,{className:"w-10 h-10 text-[var(--text-tertiary)] mx-auto mb-3"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:s("specification.noData")})]});const o=[{id:"uc",label:s("specification.useCases"),count:t?.useCases?.length||0,icon:i.BookOpen,show:c},{id:"br",label:s("specification.businessRules"),count:r?.businessRules?.length||0,icon:i.Shield,show:p},{id:"entities",label:s("specification.entities"),count:r?.entities?.length||0,icon:i.Database,show:j},{id:"permissions",label:s("specification.permissions"),count:t?.permissionMatrix?.permissions?.length||0,icon:i.Shield,show:h}].filter(a=>a.show);return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"flex gap-1 border-b border-[var(--border-color)]",children:o.map(a=>e.jsxs("button",{onClick:()=>x(a.id),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors flex items-center gap-2 ${l===a.id?"border-[var(--color-primary-600)] text-[var(--color-primary-600)]":"border-transparent text-[var(--text-tertiary)] hover:text-[var(--text-primary)]"}`,children:[e.jsx(a.icon,{className:"w-4 h-4"}),a.label,e.jsx("span",{className:"text-xs bg-[var(--bg-tertiary)] px-1.5 py-0.5 rounded-full",children:a.count})]},a.id))}),l==="uc"&&t?.useCases&&e.jsx("div",{className:"space-y-3",children:t.useCases.map(a=>e.jsx(T,{uc:a},a.id))}),l==="br"&&r?.businessRules&&e.jsx("div",{className:"space-y-2",children:r.businessRules.map(a=>e.jsxs("div",{className:"card p-4 flex items-start gap-3",children:[e.jsxs("div",{className:"flex-shrink-0 flex flex-col items-center gap-1",children:[e.jsx("span",{className:`text-xs font-medium px-2 py-0.5 rounded ${k[a.category]}`,children:s(`brCategory.${a.category}`)}),e.jsx("span",{className:`text-xs px-2 py-0.5 rounded ${C[a.priority]}`,children:s(`priority.${a.priority}`)})]}),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:"text-xs font-mono text-[var(--color-primary-600)]",children:a.id}),e.jsx("span",{className:"font-medium text-sm text-[var(--text-primary)]",children:a.name})]}),e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:a.statement}),a.entity&&e.jsxs("span",{className:"text-xs text-[var(--text-tertiary)] mt-1 inline-block",children:[s("businessRule.entity"),": ",a.entity]})]})]},a.id))}),l==="entities"&&r?.entities&&e.jsx("div",{className:"space-y-4",children:r.entities.map(a=>e.jsxs("div",{className:"card p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(i.Database,{className:"w-4 h-4 text-[var(--color-primary-600)]"}),e.jsx("h4",{className:"font-medium text-[var(--text-primary)]",children:a.name}),a.type&&e.jsx("span",{className:"text-xs bg-[var(--bg-tertiary)] px-2 py-0.5 rounded",children:a.type})]}),a.description&&e.jsx("p",{className:"text-sm text-[var(--text-secondary)] mb-3",children:a.description}),(a.attributes?.length??0)>0&&e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-color)]",children:[e.jsx("th",{className:"text-left py-1 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:s("entity.name")}),e.jsx("th",{className:"text-left py-1 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:s("entity.type")}),e.jsx("th",{className:"text-center py-1 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:s("entity.required")}),e.jsx("th",{className:"text-center py-1 text-xs font-medium text-[var(--text-tertiary)]",children:s("entity.unique")})]})}),e.jsx("tbody",{children:a.attributes?.map(n=>e.jsxs("tr",{className:"border-b border-[var(--border-color)] last:border-0",children:[e.jsx("td",{className:"py-1.5 pr-4 font-mono text-xs",children:n.name}),e.jsx("td",{className:"py-1.5 pr-4 text-[var(--text-secondary)]",children:n.type}),e.jsx("td",{className:"py-1.5 pr-4 text-center",children:n.required?"✓":""}),e.jsx("td",{className:"py-1.5 text-center",children:n.unique?"✓":""})]},n.name))})]})}),(a.relationships?.length??0)>0&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-[var(--border-color)]",children:[e.jsx("p",{className:"text-xs font-medium text-[var(--text-tertiary)] mb-1",children:s("entity.relationships")}),e.jsx("div",{className:"flex flex-wrap gap-2",children:a.relationships?.map(n=>e.jsxs("span",{className:"text-xs bg-[var(--bg-tertiary)] px-2 py-1 rounded",children:["→ ",n.target," ",e.jsxs("span",{className:"text-[var(--text-tertiary)]",children:["(",n.type,")"]})]},`${n.target}-${n.type}`))})]})]},a.name))}),l==="permissions"&&t?.permissionMatrix&&e.jsxs("div",{className:"space-y-4",children:[t.permissionMatrix.permissions&&e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-color)]",children:[e.jsx("th",{className:"text-left py-2 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:"Permission"}),e.jsx("th",{className:"text-left py-2 text-xs font-medium text-[var(--text-tertiary)]",children:"Description"})]})}),e.jsx("tbody",{children:t.permissionMatrix.permissions.map(a=>e.jsxs("tr",{className:"border-b border-[var(--border-color)] last:border-0",children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-[var(--color-primary-600)]",children:a.path}),e.jsx("td",{className:"py-2 text-[var(--text-secondary)]",children:a.description})]},a.path))})]})}),t.permissionMatrix.roleAssignments&&t.permissionMatrix.roleAssignments.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium mb-2",children:"Role Assignments"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-color)]",children:[e.jsx("th",{className:"text-left py-2 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:"Role"}),e.jsx("th",{className:"text-left py-2 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:"Level"}),e.jsx("th",{className:"text-left py-2 text-xs font-medium text-[var(--text-tertiary)]",children:"Permissions"})]})}),e.jsx("tbody",{children:t.permissionMatrix.roleAssignments.map(a=>e.jsxs("tr",{className:"border-b border-[var(--border-color)] last:border-0",children:[e.jsx("td",{className:"py-2 pr-4 font-medium",children:a.role}),e.jsx("td",{className:"py-2 pr-4",children:e.jsx("span",{className:"text-xs bg-[var(--bg-tertiary)] px-2 py-0.5 rounded",children:a.level})}),e.jsx("td",{className:"py-2",children:e.jsx("div",{className:"flex flex-wrap gap-1",children:a.permissions.map(n=>e.jsx("span",{className:"text-xs font-mono bg-[var(--bg-tertiary)] px-1.5 py-0.5 rounded",children:n},n))})})]},a.role))})]})})]})]})]})}const R={domain:"🏗️",application:"⚙️",infrastructure:"🔧",api:"🌐",frontend:"🖥️",seedData:"🌱",tests:"🧪"};function A({category:t,files:r,t:s}){return r.length?e.jsxs("div",{className:"card p-4",children:[e.jsxs("h4",{className:"text-sm font-semibold mb-2 flex items-center gap-2",children:[e.jsx("span",{children:R[t]||"📁"}),s(`fileCategory.${t}`),e.jsx("span",{className:"text-xs bg-[var(--bg-tertiary)] px-1.5 py-0.5 rounded-full",children:r.length})]}),e.jsx("div",{className:"space-y-1",children:r.map(l=>e.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[e.jsx("code",{className:"text-xs font-mono text-[var(--color-primary-600)] bg-[var(--bg-secondary)] px-1.5 py-0.5 rounded break-all",children:l.path}),l.description&&e.jsx("span",{className:"text-[var(--text-tertiary)] text-xs flex-shrink-0",children:l.description})]},l.path))})]}):null}function $({handoff:t}){const{t:r}=m.useTranslation("ba");return t?e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[t.complexity&&e.jsxs("div",{className:"card p-4 text-center",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-1",children:r("handoff.complexity")}),e.jsx("p",{className:"text-lg font-bold text-[var(--text-primary)]",children:t.complexity})]}),t.implementationStrategy&&e.jsxs("div",{className:"card p-4 text-center",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-1",children:r("handoff.strategy")}),e.jsx("p",{className:"text-lg font-bold text-[var(--text-primary)]",children:t.implementationStrategy})]}),t.totalFiles!=null&&e.jsxs("div",{className:"card p-4 text-center",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-1",children:r("handoff.totalFiles")}),e.jsx("p",{className:"text-lg font-bold text-[var(--color-primary-600)]",children:t.totalFiles})]}),t.totalTasks!=null&&e.jsxs("div",{className:"card p-4 text-center",children:[e.jsx("p",{className:"text-xs text-[var(--text-tertiary)] mb-1",children:r("handoff.totalTasks")}),e.jsx("p",{className:"text-lg font-bold text-[var(--color-primary-600)]",children:t.totalTasks})]})]}),t.filesToCreate&&e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold mb-3 flex items-center gap-2",children:[e.jsx(i.FolderTree,{className:"w-5 h-5 text-[var(--color-primary-600)]"}),r("handoff.filesToCreate")]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:Object.entries(t.filesToCreate).map(([s,l])=>(l?.length??0)>0&&e.jsx(A,{category:s,files:l??[],t:r},s))})]}),(t.apiEndpointSummary?.length??0)>0&&e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold mb-3 flex items-center gap-2",children:[e.jsx(i.Globe,{className:"w-5 h-5 text-[var(--color-primary-600)]"}),r("handoff.apiEndpoints")]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-color)]",children:[e.jsx("th",{className:"text-left py-2 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:"Method"}),e.jsx("th",{className:"text-left py-2 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:"Route"}),e.jsx("th",{className:"text-left py-2 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:"Operation"}),e.jsx("th",{className:"text-left py-2 text-xs font-medium text-[var(--text-tertiary)]",children:"Permission"})]})}),e.jsx("tbody",{children:t.apiEndpointSummary?.map(s=>{const l={GET:"text-green-600",POST:"text-blue-600",PUT:"text-orange-600",PATCH:"text-yellow-600",DELETE:"text-red-600"};return e.jsxs("tr",{className:"border-b border-[var(--border-color)] last:border-0",children:[e.jsx("td",{className:`py-2 pr-4 font-mono text-xs font-bold ${l[s.method]||""}`,children:s.method}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:s.route}),e.jsx("td",{className:"py-2 pr-4 text-[var(--text-secondary)]",children:s.operation}),e.jsx("td",{className:"py-2 font-mono text-xs text-[var(--text-tertiary)]",children:s.permission})]},`${s.method}-${s.route}`)})})]})})]}),(t.brToCodeMapping?.length??0)>0&&e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold mb-3 flex items-center gap-2",children:[e.jsx(i.GitBranch,{className:"w-5 h-5 text-[var(--color-primary-600)]"}),r("handoff.brMapping")]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-color)]",children:[e.jsx("th",{className:"text-left py-2 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:"Rule"}),e.jsx("th",{className:"text-left py-2 pr-4 text-xs font-medium text-[var(--text-tertiary)]",children:"File"}),e.jsx("th",{className:"text-left py-2 text-xs font-medium text-[var(--text-tertiary)]",children:"Method"})]})}),e.jsx("tbody",{children:t.brToCodeMapping?.map(s=>e.jsxs("tr",{className:"border-b border-[var(--border-color)] last:border-0",children:[e.jsxs("td",{className:"py-2 pr-4",children:[e.jsx("span",{className:"font-mono text-xs text-[var(--color-primary-600)]",children:s.ruleId}),s.ruleName&&e.jsx("span",{className:"text-xs text-[var(--text-tertiary)] ml-2",children:s.ruleName})]}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs break-all",children:s.targetFile}),e.jsx("td",{className:"py-2 font-mono text-xs text-[var(--text-secondary)]",children:s.targetMethod})]},`${s.ruleId}-${s.targetFile}`))})]})})]})]}):e.jsxs("div",{className:"text-center py-12",children:[e.jsx(i.Rocket,{className:"w-10 h-10 text-[var(--text-tertiary)] mx-auto mb-3"}),e.jsx("p",{className:"text-[var(--text-secondary)]",children:r("handoff.noData")})]})}const M=[{id:"cadrage",icon:i.Target,labelKey:"tabs.cadrage"},{id:"specification",icon:i.FileText,labelKey:"tabs.specification"},{id:"synthese",icon:i.Rocket,labelKey:"tabs.synthese"}],g={draft:"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300",analysed:"bg-blue-100 text-blue-700 dark:bg-blue-900 dark:text-blue-300",specified:"bg-indigo-100 text-indigo-700 dark:bg-indigo-900 dark:text-indigo-300",consolidated:"bg-purple-100 text-purple-700 dark:bg-purple-900 dark:text-purple-300","handed-off":"bg-green-100 text-green-700 dark:bg-green-900 dark:text-green-300"};function L(){const{appCode:t,moduleCode:r}=y.useParams(),{t:s}=m.useTranslation("ba"),[l,x]=d.useState(null),[c,p]=d.useState(!0),[j,h]=d.useState(null),[o,a]=d.useState("cadrage");return d.useEffect(()=>{p(!0),h(null),N.businessAnalysisApi.getManifest().then(n=>{const v=n.analyses.find(u=>u.appCode===t&&(r?u.moduleCode===r:!u.moduleCode));if(v)return N.businessAnalysisApi.getFeature(v.path);throw new Error("Entry not found in manifest")}).then(x).catch(n=>h(n.message)).finally(()=>p(!1)).catch(()=>{})},[t,r]),c?e.jsx("div",{className:"flex items-center justify-center py-20",children:e.jsx(i.Loader2,{className:"w-8 h-8 animate-spin text-[var(--color-primary-600)]"})}):j||!l?e.jsxs("div",{className:"space-y-4",children:[e.jsxs(y.Link,{to:"/system/docs/ba",className:"text-sm text-[var(--color-primary-600)] hover:underline flex items-center gap-1",children:[e.jsx(i.ArrowLeft,{className:"w-4 h-4"}),s("viewer.backToList")]}),e.jsx("div",{className:"text-center py-12",children:e.jsxs("p",{className:"text-[var(--text-secondary)]",children:["Feature not found: ",t,r?`/${r}`:""]})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs(y.Link,{to:"/system/docs/ba",className:"text-sm text-[var(--color-primary-600)] hover:underline flex items-center gap-1",children:[e.jsx(i.ArrowLeft,{className:"w-4 h-4"}),s("viewer.backToList")]}),e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-[var(--text-primary)]",children:[l.metadata.application,l.metadata.module&&l.metadata.module!==l.metadata.application&&e.jsxs("span",{className:"text-[var(--text-tertiary)]",children:[" / ",l.metadata.module]})]}),e.jsx("p",{className:"text-[var(--text-secondary)] mt-1",children:l.metadata.featureDescription})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[e.jsxs("span",{className:"text-sm text-[var(--text-tertiary)]",children:["v",l.version]}),e.jsx("span",{className:`px-2.5 py-1 rounded-full text-xs font-medium ${g[l.status]||g.draft}`,children:s(`status.${l.status}`,l.status)})]})]}),e.jsx("div",{className:"flex gap-1 border-b border-[var(--border-color)]",children:M.map(n=>e.jsxs("button",{onClick:()=>a(n.id),className:`px-5 py-3 text-sm font-medium border-b-2 transition-colors flex items-center gap-2 ${o===n.id?"border-[var(--color-primary-600)] text-[var(--color-primary-600)]":"border-transparent text-[var(--text-tertiary)] hover:text-[var(--text-primary)]"}`,children:[e.jsx(n.icon,{className:"w-4 h-4"}),s(n.labelKey)]},n.id))}),e.jsxs("div",{children:[o==="cadrage"&&e.jsx(w,{discovery:l.discovery}),o==="specification"&&e.jsx(S,{specification:l.specification,analysis:l.analysis}),o==="synthese"&&e.jsx($,{handoff:l.handoff})]})]})}exports.BaViewerPage=L;
2
+ //# sourceMappingURL=BaViewerPage-BPucPOSy.cjs.map