@strapi/admin 5.57.0 → 5.59.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 (415) hide show
  1. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  2. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  3. package/dist/admin/admin/src/components/ConfirmDialog.js +10 -9
  4. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  5. package/dist/admin/admin/src/components/ConfirmDialog.mjs +10 -9
  6. package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
  7. package/dist/admin/admin/src/components/Filters.js +57 -12
  8. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  9. package/dist/admin/admin/src/components/Filters.mjs +57 -12
  10. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +3 -1
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +3 -1
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
  16. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
  18. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +2 -1
  20. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -1
  22. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/LeftMenu.js +5 -1
  24. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  25. package/dist/admin/admin/src/components/LeftMenu.mjs +5 -1
  26. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/PageHelpers.js +2 -1
  28. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  29. package/dist/admin/admin/src/components/PageHelpers.mjs +2 -1
  30. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/Pagination.js +7 -6
  32. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  33. package/dist/admin/admin/src/components/Pagination.mjs +7 -6
  34. package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/RelativeTime.js +2 -1
  36. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  37. package/dist/admin/admin/src/components/RelativeTime.mjs +2 -1
  38. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/SubNav.js +6 -12
  40. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  41. package/dist/admin/admin/src/components/SubNav.mjs +7 -13
  42. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  43. package/dist/admin/admin/src/components/Table.js +3 -1
  44. package/dist/admin/admin/src/components/Table.js.map +1 -1
  45. package/dist/admin/admin/src/components/Table.mjs +3 -1
  46. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  47. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  48. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  50. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  51. package/dist/admin/admin/src/constants.js +14 -0
  52. package/dist/admin/admin/src/constants.js.map +1 -1
  53. package/dist/admin/admin/src/constants.mjs +14 -0
  54. package/dist/admin/admin/src/constants.mjs.map +1 -1
  55. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  56. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  57. package/dist/admin/admin/src/features/Auth.js +2 -1
  58. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  59. package/dist/admin/admin/src/features/Auth.mjs +2 -1
  60. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  61. package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
  62. package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
  63. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  64. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  65. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +6 -12
  66. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  67. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs +6 -12
  68. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
  69. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  70. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
  72. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  73. package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
  74. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +10 -2
  76. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  77. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +10 -2
  78. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  79. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js +4 -1
  80. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs +4 -1
  82. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -1
  84. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +3 -1
  86. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js +2 -1
  88. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs +2 -1
  90. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +6 -5
  92. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +6 -5
  94. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
  96. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
  98. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js +4 -4
  100. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs +4 -4
  102. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +7 -58
  104. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +7 -58
  106. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js +217 -0
  108. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js.map +1 -0
  109. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs +195 -0
  110. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs.map +1 -0
  111. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  112. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js +185 -0
  114. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js.map +1 -0
  115. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs +162 -0
  116. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs.map +1 -0
  117. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js +342 -0
  118. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js.map +1 -0
  119. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs +320 -0
  120. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs.map +1 -0
  121. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +9 -4
  122. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  123. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +9 -4
  124. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  125. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +15 -9
  126. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  127. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs +15 -9
  128. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  129. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -2
  130. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  131. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +5 -2
  132. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  133. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +2 -1
  134. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  135. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs +2 -1
  136. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  137. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +2 -1
  138. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  139. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +2 -1
  140. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +2 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  143. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +2 -1
  144. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  145. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  146. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
  147. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +3 -1
  148. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +3 -1
  150. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  154. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  156. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +4 -1
  158. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +4 -1
  160. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +18 -3
  162. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +18 -3
  164. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  167. package/dist/admin/admin/src/router.js.map +1 -1
  168. package/dist/admin/admin/src/router.mjs.map +1 -1
  169. package/dist/admin/admin/src/services/admin.js +11 -1
  170. package/dist/admin/admin/src/services/admin.js.map +1 -1
  171. package/dist/admin/admin/src/services/admin.mjs +11 -2
  172. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  173. package/dist/admin/admin/src/services/users.js.map +1 -1
  174. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  175. package/dist/admin/admin/src/translations/en.json.js +71 -4
  176. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  177. package/dist/admin/admin/src/translations/en.json.mjs +71 -4
  178. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  179. package/dist/admin/admin/src/translations/eu.json.js +1 -1
  180. package/dist/admin/admin/src/translations/eu.json.mjs +1 -1
  181. package/dist/admin/admin/src/utils/browserStrapi.js +1 -1
  182. package/dist/admin/admin/src/utils/browserStrapi.js.map +1 -1
  183. package/dist/admin/admin/src/utils/browserStrapi.mjs +1 -1
  184. package/dist/admin/admin/src/utils/browserStrapi.mjs.map +1 -1
  185. package/dist/admin/admin/src/utils/cookies.js +7 -6
  186. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  187. package/dist/admin/admin/src/utils/cookies.mjs +7 -6
  188. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  189. package/dist/admin/admin/src/utils/getFetchClient.js +24 -0
  190. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  191. package/dist/admin/admin/src/utils/getFetchClient.mjs +24 -1
  192. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  193. package/dist/admin/admin/tests/utils.js +2 -1
  194. package/dist/admin/admin/tests/utils.js.map +1 -1
  195. package/dist/admin/admin/tests/utils.mjs +2 -1
  196. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  197. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +52 -22
  198. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  199. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +53 -23
  200. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  201. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +16 -29
  202. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  203. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +18 -31
  204. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  205. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js +473 -0
  206. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js.map +1 -0
  207. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs +471 -0
  208. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs.map +1 -0
  209. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js +2 -0
  210. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
  211. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs +2 -0
  212. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
  213. package/dist/admin/index.js +1 -0
  214. package/dist/admin/index.js.map +1 -1
  215. package/dist/admin/index.mjs +1 -1
  216. package/dist/admin/shared/utils/auth-cookie-path.js +13 -10
  217. package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -1
  218. package/dist/admin/shared/utils/auth-cookie-path.mjs +13 -10
  219. package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -1
  220. package/dist/admin/shared/utils/get-project-type.js +49 -0
  221. package/dist/admin/shared/utils/get-project-type.js.map +1 -0
  222. package/dist/admin/shared/utils/get-project-type.mjs +46 -0
  223. package/dist/admin/shared/utils/get-project-type.mjs.map +1 -0
  224. package/dist/admin/src/components/Filters.d.ts +1 -1
  225. package/dist/admin/src/components/Form.d.ts +1 -1
  226. package/dist/admin/src/constants.d.ts +10 -0
  227. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.d.ts +1 -1
  228. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.d.ts +1 -1
  229. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.d.ts +12 -0
  230. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.d.ts +14 -0
  231. package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.d.ts +2 -0
  232. package/dist/admin/src/services/admin.d.ts +2 -2
  233. package/dist/admin/src/types/permissions.d.ts +1 -0
  234. package/dist/admin/src/utils/cookies.d.ts +7 -6
  235. package/dist/admin/src/utils/getFetchClient.d.ts +25 -0
  236. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +29 -0
  237. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +6 -1
  238. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.d.ts +2 -0
  239. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.d.ts +2 -0
  240. package/dist/ee/server/src/audit-logs/entitlements.d.ts +8 -0
  241. package/dist/ee/server/src/audit-logs/entitlements.d.ts.map +1 -0
  242. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +16 -0
  243. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
  244. package/dist/ee/server/src/controllers/admin.d.ts +36 -10
  245. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  246. package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
  247. package/dist/ee/server/src/controllers/index.d.ts +36 -10
  248. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  249. package/dist/ee/server/src/index.d.ts +36 -10
  250. package/dist/ee/server/src/index.d.ts.map +1 -1
  251. package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -1
  252. package/dist/ee/server/src/validation/role.d.ts.map +1 -1
  253. package/dist/server/ee/server/src/audit-logs/entitlements.js +25 -0
  254. package/dist/server/ee/server/src/audit-logs/entitlements.js.map +1 -0
  255. package/dist/server/ee/server/src/audit-logs/entitlements.mjs +23 -0
  256. package/dist/server/ee/server/src/audit-logs/entitlements.mjs.map +1 -0
  257. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +20 -8
  258. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  259. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +19 -9
  260. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  261. package/dist/server/ee/server/src/audit-logs/utils/csv.js +3 -3
  262. package/dist/server/ee/server/src/audit-logs/utils/csv.js.map +1 -1
  263. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs +3 -3
  264. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs.map +1 -1
  265. package/dist/server/ee/server/src/controllers/admin.js +76 -3
  266. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  267. package/dist/server/ee/server/src/controllers/admin.mjs +76 -3
  268. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  269. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +28 -10
  270. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  271. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +28 -10
  272. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  273. package/dist/server/ee/server/src/index.js +2 -0
  274. package/dist/server/ee/server/src/index.js.map +1 -1
  275. package/dist/server/ee/server/src/index.mjs +2 -0
  276. package/dist/server/ee/server/src/index.mjs.map +1 -1
  277. package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
  278. package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
  279. package/dist/server/ee/server/src/validation/role.js +4 -2
  280. package/dist/server/ee/server/src/validation/role.js.map +1 -1
  281. package/dist/server/ee/server/src/validation/role.mjs +4 -2
  282. package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
  283. package/dist/server/server/src/ai/services/ai.js.map +1 -1
  284. package/dist/server/server/src/ai/services/ai.mjs.map +1 -1
  285. package/dist/server/server/src/audit-logs/auth.js +72 -0
  286. package/dist/server/server/src/audit-logs/auth.js.map +1 -0
  287. package/dist/server/server/src/audit-logs/auth.mjs +67 -0
  288. package/dist/server/server/src/audit-logs/auth.mjs.map +1 -0
  289. package/dist/server/server/src/config/admin-actions.js +7 -0
  290. package/dist/server/server/src/config/admin-actions.js.map +1 -1
  291. package/dist/server/server/src/config/admin-actions.mjs +7 -0
  292. package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
  293. package/dist/server/server/src/controllers/admin.js +17 -12
  294. package/dist/server/server/src/controllers/admin.js.map +1 -1
  295. package/dist/server/server/src/controllers/admin.mjs +17 -12
  296. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  297. package/dist/server/server/src/controllers/authentication.js +34 -8
  298. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  299. package/dist/server/server/src/controllers/authentication.mjs +34 -8
  300. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  301. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  302. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  303. package/dist/server/server/src/register.js +4 -0
  304. package/dist/server/server/src/register.js.map +1 -1
  305. package/dist/server/server/src/register.mjs +4 -0
  306. package/dist/server/server/src/register.mjs.map +1 -1
  307. package/dist/server/server/src/routes/admin.js +18 -0
  308. package/dist/server/server/src/routes/admin.js.map +1 -1
  309. package/dist/server/server/src/routes/admin.mjs +18 -0
  310. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  311. package/dist/server/server/src/services/api-token.js +4 -8
  312. package/dist/server/server/src/services/api-token.js.map +1 -1
  313. package/dist/server/server/src/services/api-token.mjs +4 -8
  314. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  315. package/dist/server/server/src/services/auth.js +4 -2
  316. package/dist/server/server/src/services/auth.js.map +1 -1
  317. package/dist/server/server/src/services/auth.mjs +4 -3
  318. package/dist/server/server/src/services/auth.mjs.map +1 -1
  319. package/dist/server/server/src/services/constants.js +4 -0
  320. package/dist/server/server/src/services/constants.js.map +1 -1
  321. package/dist/server/server/src/services/constants.mjs +4 -0
  322. package/dist/server/server/src/services/constants.mjs.map +1 -1
  323. package/dist/server/server/src/services/debug-dump.js +173 -0
  324. package/dist/server/server/src/services/debug-dump.js.map +1 -0
  325. package/dist/server/server/src/services/debug-dump.mjs +166 -0
  326. package/dist/server/server/src/services/debug-dump.mjs.map +1 -0
  327. package/dist/server/server/src/services/index.js +3 -1
  328. package/dist/server/server/src/services/index.js.map +1 -1
  329. package/dist/server/server/src/services/index.mjs +3 -1
  330. package/dist/server/server/src/services/index.mjs.map +1 -1
  331. package/dist/server/server/src/services/permission/rename-fields.js.map +1 -1
  332. package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -1
  333. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  334. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  335. package/dist/server/server/src/services/role.js +8 -5
  336. package/dist/server/server/src/services/role.js.map +1 -1
  337. package/dist/server/server/src/services/role.mjs +8 -5
  338. package/dist/server/server/src/services/role.mjs.map +1 -1
  339. package/dist/server/server/src/utils/debug-dump/redact.js +197 -0
  340. package/dist/server/server/src/utils/debug-dump/redact.js.map +1 -0
  341. package/dist/server/server/src/utils/debug-dump/redact.mjs +194 -0
  342. package/dist/server/server/src/utils/debug-dump/redact.mjs.map +1 -0
  343. package/dist/server/server/src/validation/admin-tokens.js +4 -4
  344. package/dist/server/server/src/validation/admin-tokens.js.map +1 -1
  345. package/dist/server/server/src/validation/admin-tokens.mjs +4 -4
  346. package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -1
  347. package/dist/server/server/src/validation/api-tokens.js +4 -4
  348. package/dist/server/server/src/validation/api-tokens.js.map +1 -1
  349. package/dist/server/server/src/validation/api-tokens.mjs +4 -4
  350. package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
  351. package/dist/server/server/src/validation/role.js +6 -4
  352. package/dist/server/server/src/validation/role.js.map +1 -1
  353. package/dist/server/server/src/validation/role.mjs +6 -4
  354. package/dist/server/server/src/validation/role.mjs.map +1 -1
  355. package/dist/server/server/src/validation/transfer/token.js +4 -4
  356. package/dist/server/server/src/validation/transfer/token.js.map +1 -1
  357. package/dist/server/server/src/validation/transfer/token.mjs +4 -4
  358. package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
  359. package/dist/server/shared/utils/auth-cookie-path.js +13 -10
  360. package/dist/server/shared/utils/auth-cookie-path.js.map +1 -1
  361. package/dist/server/shared/utils/auth-cookie-path.mjs +13 -10
  362. package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -1
  363. package/dist/server/shared/utils/get-project-type.js +49 -0
  364. package/dist/server/shared/utils/get-project-type.js.map +1 -0
  365. package/dist/server/shared/utils/get-project-type.mjs +46 -0
  366. package/dist/server/shared/utils/get-project-type.mjs.map +1 -0
  367. package/dist/server/shared/utils/session-auth.js +70 -3
  368. package/dist/server/shared/utils/session-auth.js.map +1 -1
  369. package/dist/server/shared/utils/session-auth.mjs +70 -4
  370. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  371. package/dist/server/src/ai/services/ai.d.ts.map +1 -1
  372. package/dist/server/src/audit-logs/auth.d.ts +72 -0
  373. package/dist/server/src/audit-logs/auth.d.ts.map +1 -0
  374. package/dist/server/src/config/admin-actions.d.ts.map +1 -1
  375. package/dist/server/src/controllers/admin.d.ts +3 -0
  376. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  377. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  378. package/dist/server/src/controllers/index.d.ts +3 -0
  379. package/dist/server/src/controllers/index.d.ts.map +1 -1
  380. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  381. package/dist/server/src/index.d.ts +8 -0
  382. package/dist/server/src/index.d.ts.map +1 -1
  383. package/dist/server/src/register.d.ts.map +1 -1
  384. package/dist/server/src/routes/admin.d.ts.map +1 -1
  385. package/dist/server/src/services/auth.d.ts +6 -0
  386. package/dist/server/src/services/auth.d.ts.map +1 -1
  387. package/dist/server/src/services/constants.d.ts +2 -0
  388. package/dist/server/src/services/constants.d.ts.map +1 -1
  389. package/dist/server/src/services/debug-dump.d.ts +9 -0
  390. package/dist/server/src/services/debug-dump.d.ts.map +1 -0
  391. package/dist/server/src/services/index.d.ts +5 -0
  392. package/dist/server/src/services/index.d.ts.map +1 -1
  393. package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -1
  394. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  395. package/dist/server/src/services/role.d.ts.map +1 -1
  396. package/dist/server/src/utils/debug-dump/redact.d.ts +8 -0
  397. package/dist/server/src/utils/debug-dump/redact.d.ts.map +1 -0
  398. package/dist/server/src/validation/role.d.ts.map +1 -1
  399. package/dist/shared/contracts/admin.d.ts +106 -0
  400. package/dist/shared/contracts/admin.d.ts.map +1 -1
  401. package/dist/shared/contracts/transfer.d.ts.map +1 -1
  402. package/dist/shared/utils/__tests__/get-project-type.test.d.ts +1 -0
  403. package/dist/shared/utils/__tests__/get-project-type.test.d.ts.map +1 -0
  404. package/dist/shared/utils/auth-cookie-path.d.ts +13 -10
  405. package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -1
  406. package/dist/shared/utils/get-project-type.d.ts +37 -0
  407. package/dist/shared/utils/get-project-type.d.ts.map +1 -0
  408. package/dist/shared/utils/session-auth.d.ts +16 -0
  409. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  410. package/package.json +8 -8
  411. package/dist/admin/admin/src/utils/getProjectType.js +0 -22
  412. package/dist/admin/admin/src/utils/getProjectType.js.map +0 -1
  413. package/dist/admin/admin/src/utils/getProjectType.mjs +0 -20
  414. package/dist/admin/admin/src/utils/getProjectType.mjs.map +0 -1
  415. package/dist/admin/src/utils/getProjectType.d.ts +0 -16
@@ -0,0 +1,320 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Flex, Typography, Box, Button } from '@strapi/design-system';
4
+ import { PaperPlane, Book, ExternalLink } from '@strapi/icons';
5
+ import { GitHub, Discord } from '@strapi/icons/symbols';
6
+ import { useIntl } from 'react-intl';
7
+ import { styled } from 'styled-components';
8
+ import { getLicensedPlan } from '../../../../../../../shared/utils/get-project-type.mjs';
9
+ import { useTypedSelector } from '../../../../../core/store/hooks.mjs';
10
+ import { useRBAC } from '../../../../../hooks/useRBAC.mjs';
11
+ import { useGetLicenseLimitsQuery } from '../../../../../services/admin.mjs';
12
+ import { DiagnosticSnapshotModal } from './DiagnosticSnapshotModal.mjs';
13
+
14
+ /**
15
+ * Tints every tile icon with the same brand-neutral colour, including the GitHub and Discord
16
+ * marks. Those two are single-path glyphs carrying a hardcoded brand fill (`#24292F`, `#5865F2`),
17
+ * and a `fill` prop only reaches the `<svg>`, which the path's own attribute overrides — but a CSS
18
+ * declaration outranks that presentation attribute, so this wins for all icons uniformly.
19
+ */ const TileIcon = styled.span`
20
+ display: inline-flex;
21
+
22
+ svg,
23
+ svg path {
24
+ fill: ${({ theme })=>theme.colors.primary600};
25
+ }
26
+ `;
27
+ /**
28
+ * The tiles share the card with the diagnostic-snapshot panel, so they only get about half the
29
+ * card's width. A viewport breakpoint therefore fires far too late — the tiles are already
30
+ * cramped while the window is still "large". Sizing off the tile panel itself instead means the
31
+ * 2 -> 1 column switch happens when *these* tiles run out of room, whatever the window is doing.
32
+ */ const TileGrid = styled.div`
33
+ display: flex;
34
+ flex-wrap: wrap;
35
+ gap: ${({ theme })=>theme.spaces[4]};
36
+
37
+ /* The 50% basis caps the row at two tiles however wide the card gets, and min-width is what
38
+ forces the wrap to a single column. Both are measured against this element, so the switch is
39
+ driven by the space the tiles actually have rather than by the viewport. A container query
40
+ would say the same thing more directly, but jsdom cannot parse @container and it breaks the
41
+ admin suite's stylesheet parse (same reason FormLayout in content-manager avoids it). */
42
+ > * {
43
+ flex: 1 1 calc(50% - ${({ theme })=>theme.spaces[4]} / 2);
44
+ min-width: 16rem;
45
+ }
46
+ `;
47
+ const SupportLinkTile = ({ href, icon: Icon, title, description })=>{
48
+ const { formatMessage } = useIntl();
49
+ return /*#__PURE__*/ jsxs(Box, {
50
+ tag: "a",
51
+ href: href,
52
+ target: "_blank",
53
+ rel: "noopener noreferrer",
54
+ // Without this the accessible name is the title and description concatenated, so the tile
55
+ // announces as e.g. "Documentation Guides and API reference" and collides with the
56
+ // same-named Settings nav link. Labelling it also tells screen readers it opens a new tab.
57
+ "aria-label": formatMessage({
58
+ id: 'Settings.application.support.tile-label',
59
+ defaultMessage: 'Open {title} in a new tab'
60
+ }, {
61
+ title: formatMessage(title)
62
+ }),
63
+ display: "block",
64
+ hasRadius: true,
65
+ borderColor: "neutral200",
66
+ padding: 4,
67
+ // The tile is the link, so the anchor's own underline and link colour must not bleed onto
68
+ // the text inside it; every colour below comes from a theme token so both themes match.
69
+ style: {
70
+ textDecoration: 'none'
71
+ },
72
+ children: [
73
+ /*#__PURE__*/ jsxs(Flex, {
74
+ justifyContent: "space-between",
75
+ alignItems: "center",
76
+ children: [
77
+ /*#__PURE__*/ jsx(TileIcon, {
78
+ children: /*#__PURE__*/ jsx(Icon, {
79
+ width: "2rem",
80
+ height: "2rem",
81
+ "aria-hidden": true
82
+ })
83
+ }),
84
+ /*#__PURE__*/ jsx(ExternalLink, {
85
+ fill: "neutral400",
86
+ "aria-hidden": true
87
+ })
88
+ ]
89
+ }),
90
+ /*#__PURE__*/ jsxs(Flex, {
91
+ direction: "column",
92
+ alignItems: "start",
93
+ gap: 1,
94
+ paddingTop: 3,
95
+ children: [
96
+ /*#__PURE__*/ jsx(Typography, {
97
+ fontWeight: "bold",
98
+ textColor: "neutral800",
99
+ children: formatMessage(title)
100
+ }),
101
+ /*#__PURE__*/ jsx(Typography, {
102
+ variant: "pi",
103
+ textColor: "neutral600",
104
+ children: formatMessage(description)
105
+ })
106
+ ]
107
+ })
108
+ ]
109
+ });
110
+ };
111
+ /* -------------------------------------------------------------------------------------------------
112
+ * SupportCard
113
+ * -----------------------------------------------------------------------------------------------*/ const DOCUMENTATION_TILE = {
114
+ id: 'documentation',
115
+ href: 'https://docs.strapi.io',
116
+ icon: Book,
117
+ title: {
118
+ id: 'Settings.application.support.documentation.title',
119
+ defaultMessage: 'Documentation'
120
+ },
121
+ description: {
122
+ id: 'Settings.application.support.documentation.description',
123
+ defaultMessage: 'Guides and API reference'
124
+ }
125
+ };
126
+ const GITHUB_ISSUES_TILE = {
127
+ id: 'github-issues',
128
+ href: 'https://github.com/strapi/strapi/issues',
129
+ icon: GitHub,
130
+ title: {
131
+ id: 'Settings.application.support.github-issues.title',
132
+ defaultMessage: 'GitHub issues'
133
+ },
134
+ description: {
135
+ id: 'Settings.application.support.github-issues.description',
136
+ defaultMessage: 'Report a bug'
137
+ }
138
+ };
139
+ const GITHUB_DISCUSSIONS_TILE = {
140
+ id: 'github-discussions',
141
+ href: 'https://github.com/strapi/strapi/discussions',
142
+ icon: GitHub,
143
+ title: {
144
+ id: 'Settings.application.support.github-discussions.title',
145
+ defaultMessage: 'GitHub discussions'
146
+ },
147
+ description: {
148
+ id: 'Settings.application.support.github-discussions.description',
149
+ defaultMessage: 'Ask a question or propose an idea'
150
+ }
151
+ };
152
+ const DISCORD_TILE = {
153
+ id: 'discord',
154
+ href: 'https://discord.strapi.io',
155
+ icon: Discord,
156
+ title: {
157
+ id: 'Settings.application.support.discord.title',
158
+ defaultMessage: 'Discord'
159
+ },
160
+ description: {
161
+ id: 'Settings.application.support.discord.description',
162
+ defaultMessage: 'Talk to the community in real time'
163
+ }
164
+ };
165
+ const SUPPORT_PORTAL_TILE = {
166
+ id: 'support-portal',
167
+ href: 'https://support.strapi.io',
168
+ icon: PaperPlane,
169
+ title: {
170
+ id: 'Settings.application.support.support-portal.title',
171
+ defaultMessage: 'Support portal'
172
+ },
173
+ description: {
174
+ id: 'Settings.application.support.support-portal.description',
175
+ defaultMessage: 'Open a ticket with the Strapi support'
176
+ }
177
+ };
178
+ const CE_TILES = [
179
+ DOCUMENTATION_TILE,
180
+ GITHUB_ISSUES_TILE,
181
+ GITHUB_DISCUSSIONS_TILE,
182
+ DISCORD_TILE
183
+ ];
184
+ const EE_TILES = [
185
+ SUPPORT_PORTAL_TILE,
186
+ DOCUMENTATION_TILE,
187
+ GITHUB_ISSUES_TILE,
188
+ DISCORD_TILE
189
+ ];
190
+ const SupportCard = ()=>{
191
+ const { formatMessage } = useIntl();
192
+ const [isSnapshotModalOpen, setIsSnapshotModalOpen] = React.useState(false);
193
+ const debugDumpPermissions = useTypedSelector((state)=>state.admin_app.permissions.settings?.['debug-dump']?.main);
194
+ const { allowedActions: { canRead } } = useRBAC(debugDumpPermissions);
195
+ // Keyed on the licensed plan rather than `isEE` so a customer whose license has lapsed keeps
196
+ // the Strapi support portal link, which is exactly what they need at that moment. This only
197
+ // ever swaps which support links are shown; it gates no feature.
198
+ // The authenticated license-limit-information endpoint is EE-only, so a CE instance gets a
199
+ // 404 here; treat that (or any other error/missing data) the same as "no license" (Community).
200
+ // Until the first response, there is no telling which plan this is: painting the Community
201
+ // fallback and then swapping it out would name the wrong plan for a moment.
202
+ const { data: licenseLimitsData, isLoading: isLicenseLoading } = useGetLicenseLimitsQuery();
203
+ const licenseStatus = licenseLimitsData?.data?.licenseStatus ?? 'none';
204
+ const planPriceId = licenseLimitsData?.data?.planPriceId ?? undefined;
205
+ const isTrial = licenseLimitsData?.data?.isTrial ?? false;
206
+ const licensedPlan = getLicensedPlan({
207
+ licenseStatus,
208
+ type: licenseLimitsData?.data?.type,
209
+ planPriceId
210
+ });
211
+ // A trial resolves to a paid plan name, but a trial does not come with Strapi support, so
212
+ // it gets the community channels instead of the support portal.
213
+ const hasStrapiSupport = licensedPlan !== 'Community' && !isTrial;
214
+ const tiles = hasStrapiSupport ? EE_TILES : CE_TILES;
215
+ return /*#__PURE__*/ jsxs(Fragment, {
216
+ children: [
217
+ /*#__PURE__*/ jsxs(Flex, {
218
+ direction: "column",
219
+ alignItems: "stretch",
220
+ gap: 4,
221
+ hasRadius: true,
222
+ background: "neutral0",
223
+ shadow: "tableShadow",
224
+ paddingTop: 6,
225
+ paddingBottom: 6,
226
+ paddingRight: 7,
227
+ paddingLeft: 7,
228
+ children: [
229
+ /*#__PURE__*/ jsxs(Flex, {
230
+ direction: "column",
231
+ alignItems: "start",
232
+ gap: 1,
233
+ children: [
234
+ /*#__PURE__*/ jsx(Typography, {
235
+ variant: "delta",
236
+ tag: "h3",
237
+ children: formatMessage({
238
+ id: 'Settings.application.support.title',
239
+ defaultMessage: 'Support'
240
+ })
241
+ }),
242
+ !isLicenseLoading && /*#__PURE__*/ jsx(Typography, {
243
+ variant: "pi",
244
+ textColor: "neutral600",
245
+ children: formatMessage(hasStrapiSupport ? {
246
+ id: 'Settings.application.support.subtitle.enterprise',
247
+ defaultMessage: 'Contact support, report a bug, or contribute to the Strapi community.'
248
+ } : {
249
+ id: 'Settings.application.support.subtitle.community',
250
+ defaultMessage: 'Ask a question, report a bug, or contribute to the Strapi community.'
251
+ })
252
+ })
253
+ ]
254
+ }),
255
+ !isLicenseLoading && /*#__PURE__*/ jsxs(Flex, {
256
+ alignItems: "stretch",
257
+ gap: 7,
258
+ children: [
259
+ /*#__PURE__*/ jsx(Box, {
260
+ flex: "1 1 0%",
261
+ children: /*#__PURE__*/ jsx(TileGrid, {
262
+ children: tiles.map((tile)=>/*#__PURE__*/ jsx(SupportLinkTile, {
263
+ ...tile
264
+ }, tile.id))
265
+ })
266
+ }),
267
+ canRead && /*#__PURE__*/ jsxs(Fragment, {
268
+ children: [
269
+ /*#__PURE__*/ jsx(Box, {
270
+ background: "neutral150",
271
+ width: "0.1rem"
272
+ }),
273
+ /*#__PURE__*/ jsxs(Flex, {
274
+ direction: "column",
275
+ alignItems: "start",
276
+ gap: 3,
277
+ flex: "1 1 0%",
278
+ children: [
279
+ /*#__PURE__*/ jsx(Typography, {
280
+ variant: "sigma",
281
+ textColor: "neutral600",
282
+ children: formatMessage({
283
+ id: 'Settings.application.support.diagnostic-snapshot.label',
284
+ defaultMessage: 'diagnostic snapshot'
285
+ })
286
+ }),
287
+ /*#__PURE__*/ jsx(Typography, {
288
+ children: formatMessage(hasStrapiSupport ? {
289
+ id: 'Settings.application.support.diagnostic-snapshot.description.enterprise',
290
+ defaultMessage: 'Reporting a bug? A diagnostic snapshot describes how this project is built so it can be reproduced.'
291
+ } : {
292
+ id: 'Settings.application.support.diagnostic-snapshot.description.community',
293
+ defaultMessage: "Reporting a bug? Generate a snapshot of your app's structure so the issue can be reproduced."
294
+ })
295
+ }),
296
+ /*#__PURE__*/ jsx(Button, {
297
+ onClick: ()=>setIsSnapshotModalOpen(true),
298
+ children: formatMessage({
299
+ id: 'Settings.application.support.diagnostic-snapshot.generate',
300
+ defaultMessage: 'Generate snapshot'
301
+ })
302
+ })
303
+ ]
304
+ })
305
+ ]
306
+ })
307
+ ]
308
+ })
309
+ ]
310
+ }),
311
+ /*#__PURE__*/ jsx(DiagnosticSnapshotModal, {
312
+ isOpen: isSnapshotModalOpen,
313
+ onClose: ()=>setIsSnapshotModalOpen(false)
314
+ })
315
+ ]
316
+ });
317
+ };
318
+
319
+ export { SupportCard };
320
+ //# sourceMappingURL=SupportCard.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupportCard.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Typography } from '@strapi/design-system';\nimport { Book, ExternalLink, PaperPlane } from '@strapi/icons';\nimport { Discord, GitHub } from '@strapi/icons/symbols';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getLicensedPlan } from '../../../../../../../shared/utils/get-project-type';\nimport { useTypedSelector } from '../../../../../core/store/hooks';\nimport { useRBAC } from '../../../../../hooks/useRBAC';\nimport { useGetLicenseLimitsQuery } from '../../../../../services/admin';\n\nimport { DiagnosticSnapshotModal } from './DiagnosticSnapshotModal';\n\n/* -------------------------------------------------------------------------------------------------\n * SupportLinkTile\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SupportLinkTileConfig {\n id: string;\n href: string;\n icon: React.ComponentType<React.SVGProps<SVGSVGElement>>;\n title: MessageDescriptor;\n description: MessageDescriptor;\n}\n\n/**\n * Tints every tile icon with the same brand-neutral colour, including the GitHub and Discord\n * marks. Those two are single-path glyphs carrying a hardcoded brand fill (`#24292F`, `#5865F2`),\n * and a `fill` prop only reaches the `<svg>`, which the path's own attribute overrides — but a CSS\n * declaration outranks that presentation attribute, so this wins for all icons uniformly.\n */\nconst TileIcon = styled.span`\n display: inline-flex;\n\n svg,\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\n/**\n * The tiles share the card with the diagnostic-snapshot panel, so they only get about half the\n * card's width. A viewport breakpoint therefore fires far too late — the tiles are already\n * cramped while the window is still \"large\". Sizing off the tile panel itself instead means the\n * 2 -> 1 column switch happens when *these* tiles run out of room, whatever the window is doing.\n */\nconst TileGrid = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: ${({ theme }) => theme.spaces[4]};\n\n /* The 50% basis caps the row at two tiles however wide the card gets, and min-width is what\n forces the wrap to a single column. Both are measured against this element, so the switch is\n driven by the space the tiles actually have rather than by the viewport. A container query\n would say the same thing more directly, but jsdom cannot parse @container and it breaks the\n admin suite's stylesheet parse (same reason FormLayout in content-manager avoids it). */\n > * {\n flex: 1 1 calc(50% - ${({ theme }) => theme.spaces[4]} / 2);\n min-width: 16rem;\n }\n`;\n\nconst SupportLinkTile = ({ href, icon: Icon, title, description }: SupportLinkTileConfig) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box\n tag=\"a\"\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n // Without this the accessible name is the title and description concatenated, so the tile\n // announces as e.g. \"Documentation Guides and API reference\" and collides with the\n // same-named Settings nav link. Labelling it also tells screen readers it opens a new tab.\n aria-label={formatMessage(\n {\n id: 'Settings.application.support.tile-label',\n defaultMessage: 'Open {title} in a new tab',\n },\n { title: formatMessage(title) }\n )}\n display=\"block\"\n hasRadius\n borderColor=\"neutral200\"\n padding={4}\n // The tile is the link, so the anchor's own underline and link colour must not bleed onto\n // the text inside it; every colour below comes from a theme token so both themes match.\n style={{ textDecoration: 'none' }}\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <TileIcon>\n <Icon width=\"2rem\" height=\"2rem\" aria-hidden />\n </TileIcon>\n <ExternalLink fill=\"neutral400\" aria-hidden />\n </Flex>\n <Flex direction=\"column\" alignItems=\"start\" gap={1} paddingTop={3}>\n <Typography fontWeight=\"bold\" textColor=\"neutral800\">\n {formatMessage(title)}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(description)}\n </Typography>\n </Flex>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SupportCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst DOCUMENTATION_TILE: SupportLinkTileConfig = {\n id: 'documentation',\n href: 'https://docs.strapi.io',\n icon: Book,\n title: {\n id: 'Settings.application.support.documentation.title',\n defaultMessage: 'Documentation',\n },\n description: {\n id: 'Settings.application.support.documentation.description',\n defaultMessage: 'Guides and API reference',\n },\n};\n\nconst GITHUB_ISSUES_TILE: SupportLinkTileConfig = {\n id: 'github-issues',\n href: 'https://github.com/strapi/strapi/issues',\n icon: GitHub,\n title: {\n id: 'Settings.application.support.github-issues.title',\n defaultMessage: 'GitHub issues',\n },\n description: {\n id: 'Settings.application.support.github-issues.description',\n defaultMessage: 'Report a bug',\n },\n};\n\nconst GITHUB_DISCUSSIONS_TILE: SupportLinkTileConfig = {\n id: 'github-discussions',\n href: 'https://github.com/strapi/strapi/discussions',\n icon: GitHub,\n title: {\n id: 'Settings.application.support.github-discussions.title',\n defaultMessage: 'GitHub discussions',\n },\n description: {\n id: 'Settings.application.support.github-discussions.description',\n defaultMessage: 'Ask a question or propose an idea',\n },\n};\n\nconst DISCORD_TILE: SupportLinkTileConfig = {\n id: 'discord',\n href: 'https://discord.strapi.io',\n icon: Discord,\n title: { id: 'Settings.application.support.discord.title', defaultMessage: 'Discord' },\n description: {\n id: 'Settings.application.support.discord.description',\n defaultMessage: 'Talk to the community in real time',\n },\n};\n\nconst SUPPORT_PORTAL_TILE: SupportLinkTileConfig = {\n id: 'support-portal',\n href: 'https://support.strapi.io',\n icon: PaperPlane,\n title: {\n id: 'Settings.application.support.support-portal.title',\n defaultMessage: 'Support portal',\n },\n description: {\n id: 'Settings.application.support.support-portal.description',\n defaultMessage: 'Open a ticket with the Strapi support',\n },\n};\n\nconst CE_TILES: SupportLinkTileConfig[] = [\n DOCUMENTATION_TILE,\n GITHUB_ISSUES_TILE,\n GITHUB_DISCUSSIONS_TILE,\n DISCORD_TILE,\n];\n\nconst EE_TILES: SupportLinkTileConfig[] = [\n SUPPORT_PORTAL_TILE,\n DOCUMENTATION_TILE,\n GITHUB_ISSUES_TILE,\n DISCORD_TILE,\n];\n\nconst SupportCard = () => {\n const { formatMessage } = useIntl();\n const [isSnapshotModalOpen, setIsSnapshotModalOpen] = React.useState(false);\n\n const debugDumpPermissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['debug-dump']?.main\n );\n const {\n allowedActions: { canRead },\n } = useRBAC(debugDumpPermissions);\n\n // Keyed on the licensed plan rather than `isEE` so a customer whose license has lapsed keeps\n // the Strapi support portal link, which is exactly what they need at that moment. This only\n // ever swaps which support links are shown; it gates no feature.\n // The authenticated license-limit-information endpoint is EE-only, so a CE instance gets a\n // 404 here; treat that (or any other error/missing data) the same as \"no license\" (Community).\n // Until the first response, there is no telling which plan this is: painting the Community\n // fallback and then swapping it out would name the wrong plan for a moment.\n const { data: licenseLimitsData, isLoading: isLicenseLoading } = useGetLicenseLimitsQuery();\n const licenseStatus = licenseLimitsData?.data?.licenseStatus ?? 'none';\n const planPriceId = licenseLimitsData?.data?.planPriceId ?? undefined;\n const isTrial = licenseLimitsData?.data?.isTrial ?? false;\n const licensedPlan = getLicensedPlan({\n licenseStatus,\n type: licenseLimitsData?.data?.type,\n planPriceId,\n });\n // A trial resolves to a paid plan name, but a trial does not come with Strapi support, so\n // it gets the community channels instead of the support portal.\n const hasStrapiSupport = licensedPlan !== 'Community' && !isTrial;\n const tiles = hasStrapiSupport ? EE_TILES : CE_TILES;\n\n return (\n <>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Flex direction=\"column\" alignItems=\"start\" gap={1}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({ id: 'Settings.application.support.title', defaultMessage: 'Support' })}\n </Typography>\n {!isLicenseLoading && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n hasStrapiSupport\n ? {\n id: 'Settings.application.support.subtitle.enterprise',\n defaultMessage:\n 'Contact support, report a bug, or contribute to the Strapi community.',\n }\n : {\n id: 'Settings.application.support.subtitle.community',\n defaultMessage:\n 'Ask a question, report a bug, or contribute to the Strapi community.',\n }\n )}\n </Typography>\n )}\n </Flex>\n {!isLicenseLoading && (\n <Flex alignItems=\"stretch\" gap={7}>\n <Box flex=\"1 1 0%\">\n <TileGrid>\n {tiles.map((tile) => (\n <SupportLinkTile key={tile.id} {...tile} />\n ))}\n </TileGrid>\n </Box>\n {canRead && (\n <>\n <Box background=\"neutral150\" width=\"0.1rem\" />\n <Flex direction=\"column\" alignItems=\"start\" gap={3} flex=\"1 1 0%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.support.diagnostic-snapshot.label',\n defaultMessage: 'diagnostic snapshot',\n })}\n </Typography>\n <Typography>\n {formatMessage(\n hasStrapiSupport\n ? {\n id: 'Settings.application.support.diagnostic-snapshot.description.enterprise',\n defaultMessage:\n 'Reporting a bug? A diagnostic snapshot describes how this project is built so it can be reproduced.',\n }\n : {\n id: 'Settings.application.support.diagnostic-snapshot.description.community',\n defaultMessage:\n \"Reporting a bug? Generate a snapshot of your app's structure so the issue can be reproduced.\",\n }\n )}\n </Typography>\n <Button onClick={() => setIsSnapshotModalOpen(true)}>\n {formatMessage({\n id: 'Settings.application.support.diagnostic-snapshot.generate',\n defaultMessage: 'Generate snapshot',\n })}\n </Button>\n </Flex>\n </>\n )}\n </Flex>\n )}\n </Flex>\n <DiagnosticSnapshotModal\n isOpen={isSnapshotModalOpen}\n onClose={() => setIsSnapshotModalOpen(false)}\n />\n </>\n );\n};\n\nexport { SupportCard };\n"],"names":["TileIcon","styled","span","theme","colors","primary600","TileGrid","div","spaces","SupportLinkTile","href","icon","Icon","title","description","formatMessage","useIntl","_jsxs","Box","tag","target","rel","aria-label","id","defaultMessage","display","hasRadius","borderColor","padding","style","textDecoration","Flex","justifyContent","alignItems","_jsx","width","height","aria-hidden","ExternalLink","fill","direction","gap","paddingTop","Typography","fontWeight","textColor","variant","DOCUMENTATION_TILE","Book","GITHUB_ISSUES_TILE","GitHub","GITHUB_DISCUSSIONS_TILE","DISCORD_TILE","Discord","SUPPORT_PORTAL_TILE","PaperPlane","CE_TILES","EE_TILES","SupportCard","isSnapshotModalOpen","setIsSnapshotModalOpen","React","useState","debugDumpPermissions","useTypedSelector","state","admin_app","permissions","settings","main","allowedActions","canRead","useRBAC","data","licenseLimitsData","isLoading","isLicenseLoading","useGetLicenseLimitsQuery","licenseStatus","planPriceId","undefined","isTrial","licensedPlan","getLicensedPlan","type","hasStrapiSupport","tiles","_Fragment","background","shadow","paddingBottom","paddingRight","paddingLeft","flex","map","tile","Button","onClick","DiagnosticSnapshotModal","isOpen","onClose"],"mappings":"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"}
@@ -39,7 +39,12 @@ function _interopNamespace(e) {
39
39
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
40
40
  var get__default = /*#__PURE__*/_interopDefault(get);
41
41
 
42
- const CollapsePropertyMatrix = ({ availableActions = [], childrenForm = [], isFormDisabled, label, pathToData, propertyName, subject })=>{
42
+ const EMPTY_AVAILABLE_ACTIONS = [];
43
+ const EMPTY_CHILDREN_FORM = [];
44
+ const EMPTY_ACTION_ROW_CHILDREN_FORM = [];
45
+ const EMPTY_SUB_ACTION_ROW_CHILDREN_FORM = [];
46
+ const EMPTY_HEADERS = [];
47
+ const CollapsePropertyMatrix = ({ availableActions = EMPTY_AVAILABLE_ACTIONS, childrenForm = EMPTY_CHILDREN_FORM, isFormDisabled, label, pathToData, propertyName, subject })=>{
43
48
  const { formatMessage, formatList } = reactIntl.useIntl();
44
49
  const { modifiedData } = usePermissionsDataManager.usePermissionsDataManager();
45
50
  const propertyActions = React__namespace.useMemo(()=>availableActions.map((action)=>{
@@ -111,7 +116,7 @@ const CollapsePropertyMatrix = ({ availableActions = [], childrenForm = [], isFo
111
116
  ]
112
117
  });
113
118
  };
114
- const ActionRow = ({ childrenForm = [], label, isFormDisabled = false, name, required = false, pathToData, propertyActions, propertyName, isOdd = false, subject })=>{
119
+ const ActionRow = ({ childrenForm = EMPTY_ACTION_ROW_CHILDREN_FORM, label, isFormDisabled = false, name, required = false, pathToData, propertyActions, propertyName, isOdd = false, subject })=>{
115
120
  const { formatMessage } = reactIntl.useIntl();
116
121
  const [rowToOpen, setRowToOpen] = React__namespace.useState(null);
117
122
  const { modifiedData, onChangeCollectionTypeLeftActionRowCheckbox, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } = usePermissionsDataManager.usePermissionsDataManager();
@@ -316,7 +321,7 @@ const CarretIcon = styledComponents.styled(icons.CaretDown)`
316
321
  transform: rotate(${({ $isActive })=>$isActive ? '180' : '0'}deg);
317
322
  margin-left: ${({ theme })=>theme.spaces[2]};
318
323
  `;
319
- const SubActionRow = ({ childrenForm = [], isFormDisabled, recursiveLevel, pathToDataFromActionRow, propertyActions, parentName, propertyName, subject })=>{
324
+ const SubActionRow = ({ childrenForm = EMPTY_SUB_ACTION_ROW_CHILDREN_FORM, isFormDisabled, recursiveLevel, pathToDataFromActionRow, propertyActions, parentName, propertyName, subject })=>{
320
325
  const { formatMessage } = reactIntl.useIntl();
321
326
  const { modifiedData, onChangeParentCheckbox, onChangeSimpleCheckbox, checkUserHasPermission } = usePermissionsDataManager.usePermissionsDataManager();
322
327
  const [rowToOpen, setRowToOpen] = React__namespace.useState(null);
@@ -549,7 +554,7 @@ const Svg = styledComponents.styled.svg`
549
554
  fill: ${({ theme, $color })=>theme.colors[$color]};
550
555
  }
551
556
  `;
552
- const Header = ({ headers = [], label })=>{
557
+ const Header = ({ headers = EMPTY_HEADERS, label })=>{
553
558
  const { formatMessage } = reactIntl.useIntl();
554
559
  return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
555
560
  children: [